СGA работает

Nov. 3rd, 2025 09:45 pm
vak: (Знайка)
[personal profile] vak
Приехали новозеландские адаптеры для видеосигнала EGA/CGA и для клавиатуры XT. Подсоединил к писишке - задышало!

При включении показывает имеющуюся периферию и тестирует память.



После чего выдаёт версию прошивки.



Контроллер диска я вынул, поэтому желает грузиться с флопика.



Упаковка пятидюймовых флопиков у меня припасена, но их же надо ещё записать. Какой-нибудь древний MS-DOS отыскать. В следующий раз. И с дисковым контроллером пора вопрос решать.

И еще Длинноборода

Nov. 4th, 2025 12:20 pm
pargentum: (Default)
[personal profile] pargentum
"Терапию" запустили первого января 1990 года. Чем по сути являлась эта терапия знает каждый россиянин, который жил в 1992 году - полный аналог этой терапии был тогда запущен в России, но со второго января, а не с первого, как в Польше (в католической стране Новый год имеет меньшее значение, чем в постсоветской России, в которой не стали гражданам портить священный похмельный день).
Цены в Польше выросли в январе-феврале в два раза, а потом... инфляция начала резко снижаться, начиная с марта она не превышала 5 процентов в месяц.
Каждый, кто жил в России 1992 года, помнит, во сколько раз выросли цены в январе (мне запомнилось, что примерно раз в десять) и какие темпы инфляции были весь 1992-й год и после.
Старый вопрос. Почему у "пшеков" получилось так, а у нас вот так?
Версии разнятся. Одна крайняя версия опирается на то, что Польша получила от Запада действительно огромные кредиты (Алексашенко сообщает, что в первые два года реформ объем помощи составлял 16 процентов ВВП 1990-го года), а Россия получила декоративные кредиты, неотмену долгов и гранты Сороса


Попоболь Длинноборода по поводу грантов Сороса, конечно, забавна. Но все-таки самое забавное - демонстративное непонимание, откуда берется инфляция.
pargentum: (Default)
[personal profile] pargentum
Стремительное улучшение жизни в России в 2000-е [] это результат благоприятной конъюнктуры в плане нефтяных цен или результат мудрого руководства Путина, усмирившего олигархов и заставившего их платить реальные налоги

Просто картинка

Nov. 3rd, 2025 10:03 pm
pargentum: (Default)
[personal profile] pargentum
pargentum: (Default)
[personal profile] pargentum
https://i-ddragon.livejournal.com/494374.html

Насчет Дивного Нового Мира как торжества мягкой силы я бы поспорил, и вообще много спорного, как на уровне формулировок, так и (кмк) по сути, но нерв в лево-коммунистических идеалах он нащупал.

Кстати, некоторое пересечение с куздризмом, который тоже считал давление соседей хуже государственной диктатуры, но у него был обоснуй, что соседи рядом и достанут (и подтверждал это личным опытом), а государство далеко и не заметит. Кстати, по этой логике мировое государство лучше локального (оно-то еще дальше), но почему-то этот аргумент Куздра обычно игнорировал.

ЗЫ интересно, как у беркемовцев с социальным принуждением? Или они про общину с десятью женами и четырьмя детьми от каждой чисто теоретически рассуждают?
pargentum: (Default)
[personal profile] pargentum
https://vad-nes.livejournal.com/857040.html

Хе хе хе.
kireev: (Default)
[personal profile] kireev
Карта первого тура президентских выборов в Боливии по участкам уже была, а вот аналогичная карта второго тура. Родриго Пас победил Хорхе Кирогу 55% на 45%. И тут уже традиционное разделение на "право-лево", причем, самое сильное даже внутри самих крупнейших городов, а не между регионами.

2025-bolivia-presidential-second-precincts.jpg

Ну и карта по муниципалитетам.

vak: (Бодхидхарма)
[personal profile] vak
Производитель выдал команду на удалённое отключение для отключения умного пылесоса после того, как инженер заблокировал ему сбор данных. Пользователь восстанавливает его с помощью специального оборудования и скриптов Python для автономной работы.

Умный пылесос был удалённо заблокирован из-за отсутствия сбора данных.

Инженер заинтересовался работой своего умного пылесоса iLife A11 и начал отслеживать сетевой трафик, исходящий от устройства. Тогда он заметил, что тот постоянно отправляет производителю журналы и данные телеметрии, на что он не давал своего согласия. Пользователь, Харишанкар, решил заблокировать IP-адреса серверов телеметрии в своей сети, оставив прошивку и серверы OTA открытыми. Его умный гаджет работал какое-то время, но вскоре перестал включаться. После долгого расследования он обнаружил, что устройству была выдана команда на удалённое отключение.

Он несколько раз отправлял его в сервисный центр, где специалисты включали его и не находили никаких проблем с пылесосом. Когда пылесос вернули, он проработал несколько дней, а затем снова перестал загружаться. После нескольких раундов переговоров сервисный центр, вероятно, устал и просто перестал принимать его, заявив, что гарантия не действует. Поэтому он решил разобрать устройство, чтобы определить причину поломки и попытаться восстановить его работоспособность.

Поскольку A11 был умным устройством, он был оснащен чипсетом AllWinner A33 с операционной системой TinaLinux, а также микроконтроллером GD32F103 для управления множеством датчиков, включая лидар, гироскопы и энкодеры. Он подключил разъёмы к печатной плате и написал скрипты на Python для управления ими с помощью компьютера, с целью индивидуальной проверки каждого компонента и выявления неисправностей. Затем он собрал джойстик на Raspberry Pi для ручного управления пылесосом, доказав, что с оборудованием всё в порядке.



После этого он изучил его программное обеспечение и операционную систему, и именно здесь он обнаружил мрачную правду: его умный пылесос был кошмаром безопасности и чёрной дырой для его личных данных. Прежде всего, Android Debug Bridge, предоставляющий ему полный root-доступ к пылесосу, не был защищён никаким паролем или шифрованием. Производитель добавил импровизированный протокол безопасности, убрав важный файл, из-за чего пылесос отключался вскоре после загрузки, но Харишанкар легко обошёл его. Затем он обнаружил, что пылесос использует Google Cartographer для построения трёхмерной карты его дома в режиме реального времени.

В этом нет ничего необычного. В конце концов, это умный пылесос, и ему нужны эти данные для навигации по дому. Однако беспокоит то, что он отправлял все эти данные на сервер производителя. Вполне логично, что устройство отправляет эти данные производителю, поскольку его встроенная система на кристалле недостаточно мощна для обработки всех этих данных. Однако, похоже, iLife не согласовала это со своими клиентами. Более того, инженер сделал одно тревожное открытие: в логах своего неработающего умного пылесоса он обнаружил команду с меткой времени, точно совпадающей со временем остановки устройства. Это была явно команда на завершение работы, и после того, как он отменил её и перезагрузил устройство, оно снова ожило.



Итак, почему A11 работал в сервисном центре, но отказывался работать дома? Техники переустанавливали прошивку умного пылесоса, удаляя код отключения, а затем подключали его к открытой сети, восстанавливая нормальную работу. Но как только он снова подключался к сети, в которой были заблокированы серверы телеметрии, он удалённо блокировался, поскольку не мог связаться с серверами производителя. Поскольку он заблокировал сбор данных устройства, производитель решил просто полностью отключить его. «Кто-то — или что-то — удалённо дал команду на отключение», — говорит Харишанкар. «Будь то намеренное наказание или автоматическое принуждение к «соблюдению правил», результат был один и тот же: потребительское устройство напало на своего владельца».

К сожалению, многие другие бренды умных пылесосов используют похожее оборудование, поэтому неудивительно, что у них та же схема. Это, вероятно, особенно актуально для более дешёвых устройств с менее мощным оборудованием и без поддержки периферийных вычислений, а значит, им придётся отправлять данные на какой-то удалённый сервер для обработки. Но поскольку ваша информация переносится на другое устройство, находящееся вне вашего контроля, вы на самом деле не имеете ни малейшего представления о том, что с ней происходит, предоставляя производителю полную свободу действий в использовании ее по своему усмотрению.

Пирожок

Nov. 3rd, 2025 12:01 am
bluedrag: (Default)
[personal profile] bluedrag
шопена или мендельсона
спросил волнуясь дирижёр
увидев как оксана глеба
уныло тащит по земле
pargentum: (Default)
[personal profile] pargentum
Чадаев: Сверчки и шестки означают следующее. Инструменты, которые ранее применялись в основном в отношении тех, кто по ту сторону, будут всё более массово применяться для разного рода внутренних разборок — и здесь преимущество у тех, кто ближе к админресурсу. Условно, не успел ты — успели тебя. Это не есть хорошо, но это абсолютно неизбежно по логике ситуации.

Кстати, даже в этой реплике налицо вранье. Когда система начинает жрать самое себя, никакое знание своего шестка никакому сверчку не поможет. Не успел ты - успели тебя, и это не условно, а совершенно безусловно.

Самое же удивительное, что ни предыдущий опыт, ни простая логика ничему их не научили. Дрочили на сталина, дрочили, и получили. Ешьте, сучки, ешьте полной кружкой Эсмарха, чтоб вы полопались.
vak: (Default)
[personal profile] vak
Чем отличается алгоритм Котлера от алгоритма Хекеля? Вот статья, которая всё объясняет.

https://github.com/sergev/ifcomp/blob/main/Theory.md
pargentum: (Default)
[personal profile] pargentum
Мое обьяснение слово Чифир произошло из понятия Сахар.Само слово сахар происходит из эзотерической сущности корневого слова СА.

Фраза. Просто фраза

Nov. 2nd, 2025 11:35 am
pargentum: (Default)
[personal profile] pargentum
(про генеренный контент на мордокнижии)

трогательных исторических историй в том же стиле. Не про свекровь и невестку, а про Наполеонов и античных философов

И там же рекомендация: Подумайте, чем вы это заслужили. ;-)

ifcomp

Nov. 1st, 2025 12:28 pm
vak: (Default)
[personal profile] vak
Приходится ли вам сравнивать файлы? Риторический вопрос: очевидно, приходится. Я лично команду "git diff" выдаю тысячу раз за день. Всем классический diff хорош, кроме одного: не различает перестановку фрагмента. Показывает только удаления и вставки. Если же часть текста переехала в другое место, diff учитывает его дважды: и как удаление, и как вставку.

Для некоторых применений такое не годится. Представьте, что вы хранитель коллекции ценных документов. И вдруг с одним файлом что-то случилось. Стандартный diff говорит, что всё пропало, документ полностью испорчен. А просто строки перемешались, ничего на самом деле не потеряно. Надо только порядок восстановить. В эпоху перфокарт такое сплошь и рядом происходило, когда колоду рассыпали и собрали впопыхах. Или кто-то решил навести порядок и переставил главы в тексте.

45 лет назад мой коллега Рид Котлер сделал утилиту сравнения файлов: "Text File Comparator". Трудился он тогда молодым студентом на компанию Intermetrics по контракту NASA. Сохранилось упоминание на странице 117 журнала NASA Tech Briefs Winter 1982 Vol. 7, No. 2: https://ntrs.nasa.gov/api/citations/20100028127/downloads/20100028127.pdf

Программа сравнивает два файла и выводит список их различий.

Программа сравнения файлов IFCOMP — это сравнение текстовых файлов для систем, совместимых с IBM OS/VS. IFCOMP принимает на вход два текстовых файла и выводит список их различий в форме псевдообновления. Все различия представлены в виде строк, которые следует удалить, заменить, вставить или переместить в первом входном файле для преобразования его во второй входной файл. Также выводится сводка с указанием количества строк, затронутых каждым типом изменений.

IFCOMP позволяет игнорировать номера строк и конечные пробелы при сравнении файлов с записями разной длины. IFCOMP может быть очень полезен для мониторинга изменений, вносимых в программное обеспечение, на уровне исходного кода. При таком использовании IFCOMP позволяет проводить прямое сравнение исходного кода для единообразного выявления изменений.

Программа IFCOMP написана на языке XPL (расширенный язык PLI, для которого поставляются исполняемые файлы компилятора) для пакетного выполнения и была реализована на компьютере IBM серии 370 с объёмом центральной памяти около 46 КБ 8-битных байт. IFCOMP была разработана в 1979 году.

Эта программа была написана Ридом С. Котлером из Intermetrics, Inc. для Космического центра имени Джонсона. Для получения дополнительной информации обведите кружком S на карточке запроса COSMIC.
Алгоритм подробно описан в статье: "A Technique for Isolating Differences Between Files", Paul Heckel 1978. 

Исходники на языке XPL утеряны, увы. Но сохранился вариант, переписанный Томом Пенелло на Си. Его я и решил поковырять. С ним Рид мне прислал четыре теста, и они работали. Но на некоторых других файлах программа выдавала внутреннюю ошибку или циклилась. Ошибка там неочевидная.

Я подумал: хороший случай применить ИИ для отладки. Интересно, как неестественный ум справится, скажем Cursor или Cline. Получился увлекательный сеанс. 😀

В целом программирование с помощью современного AI-агента напоминает походовую стратегическую игру. Если помните первую Empire, ещё в текстовом виде. Из неё потом выросла Civilization. Здесь нечто похожее, только без карты и в диалоге. Стратегически плодите и размещаете юнит тесты, и постепенно боретесь за расширение функционала и покрытия.

Благо, ИИ агент теперь удобно встроен в VS Code. Работает с файлами прямо в вашем локальном git-репозитории. Или даже прямо на Гитхабе, вам решать. Компилирует, запускает, пишет документацию, находит причины ошибок посредством юнит тестов, чинит, и по новому кругу. Вы внимательно наблюдаете за "сражением" и адресно вмешиваетесь в критические моменты.

Первый "подход к штанге" мы с Курсором продули. 😀 Для начала насоздавали несколько десятков юнит тестов, из которых больше половины не проходили. Хорошо, значит покрытие приемлемое. После этого несколько часов бились все эти тесты пройти. Курсор кромсал код без жалости. Объём Си-шных текстов увеличился вдвое, но справиться с глюками не удавалось. Стало понятно, что зашли в тупик.

Второй подход я распланировал иначе. Сначала переписываем всё с Си на Си++, чтобы уменьшить базовую сложность кода. Вместо доморощенных строк и примитивного выделения памяти переходим на стандартные строки и контейнеры из библиотеки Си++. После этого начинаем покрывать юнит тестами и отлаживать размеренно, по стадиям. Благо алгоритм имеет чёткое разделение на восемь проходов: от pass1() до pass8().

Главная бага обнаружилась на стадии pass6(). При слиянии двух блоков криво обновлялось дерево. Но проявлялся глюк только на уровне pass8(). Тесты уровней pass6 и pass7 багу не ловили. Курсор пытался "чинить" сначала уровень pass8, потом догадывался вернуться и сделать что-то с pass7, и даже заглядывал с сомнением в pass6, но тут его чутья не хватало. Как только я догадался скомандовать создать юнит тест, воспроизводящий нужную багу на уровне pass6, дело пошло на лад. Починка остального была уже делом техники.

Все исходники здесь: github.com/sergev/ifcomp

Profile

a_shen

August 2024

S M T W T F S
    123
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Nov. 4th, 2025 10:09 am
Powered by Dreamwidth Studios