А вот еще постом [livejournal.com profile] jakobz навеяло.

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

Короче. Решение, долженствующее невероятно продвинуть искусство коммуникации железа с драйвером, представляло собой виртуальную машину навроде ACPI, только наколеночную. То есть, из железа, натурально, вычитывались таблицы, которые потом специальный шматок кода, состоявший в основном из switch/case и goto, со скрежетом внутри себя эмулировал.

Все бы ничего, но машину-то делали на коленке, и почему-то забыли предусмотреть там методы коммуникации программы внутри виртуальной машины с хостом. Поэтому, ЛЮБАЯ ошибка, ЛЮБОЙ чих, когда коду что-то не нравилось, обрабатывались единственным доступным способом — ВПАДЕНИЕМ ПРОГРАММЫ В БЕСКОНЕЧНЫЙ ЦИКЛ. То есть, формально говоря, драйвер не вешался, энтот эмулятор там внутри себя чего-то бодро молотил, процессор уверенно грелся и всё такое. Чтобы понять, что что-то идет не так, надо было влезть дебаггером в кишки эмулятора и посмотреть, а по каким, собственно, адресам он ходит. Разумеется, разным ошибкам соответствовали разные адреса, что и было основным методом диагностики. Вишенка на торте: по какой-то прихоти судьбы, ВМ не имела команды "jmp туда-то", и поэтому реализация бесконечного цикла занимала 3-5 команд, причем, почему-то не подряд. То есть, вот прямо так взять и посмотреть что там исполняется местный эквивалент команды "10: goto 10" не получалось, надо было прокручивать в голове последние штуки три команды.

Почему? Да ни почему, because fuck you, that's why. Потому что железячники, которые ничего вокруг, кроме своего байтоёбства не видят. Правильно там в комментах сказали: выгнать и софтваризовать всё.
ОТДЕЛ ДДО УГАН ПОТБ ПФО — не куда-нибудь, а именно туда объявление в маршрутке призывает звонить и сообщать об оставленных в транспорте вещах, предметах, взрывных устройствах и емкостях с отравляющим веществом.
Сижу, балласт починяю. Все дохлое поменял — не заводится. Смотрю схему — не может оно так работать, в смысле вообще.

Ну ок, разбираю еще один такой же, но рабочий. Внутри нашелся неведомый науке зверь, помеченный MJE13003, только звонится как PNP ! Ну еще бы...
...за окном — концерт колокольной музыки. Совсем охуели уже.

PS. До ближайшего рассадника православной культуры метров 600. Не завидую тем, кто живет ближе.
https://www.youtube.com/watch?v=hYxrpHTEEEQ

По ссылке ПОЛКИЛОВАТТА светодиодного света. В качестве велосипедной фары. Жидкостное охлаждение, два килограмма батарей, вот это все...

UPD
плюс еще 400Вт HID-лампочка
https://www.youtube.com/watch?v=w4CiaNgO_Eg
тот же товарищманьяк...
apt-get remove nautilus-clamscan уменьшает потребление памяти наутилусом со 150Мб до 20.
Долбанаты из супа опять сломали livejournal. Теперь он не работает, если браузер запрашивает keep-alive, такое, в частности, происходит в firefox 3.5. Чинится просто: идем в about:config и там ставим network.http.keep-alive.timeout в любое значение, меньше чем 300 (299 вполне подходит).
Пытаюсь ставить и изучать разнообразные системы управления репозиториями apt. Просмотрено: apt-ftparchive, mini-dinstall, reprepro, mini-dak, debpool, debarchiver... Полное ощущение, что открыл банку с червями...

Подход "пишу для себя" во всей красе - каждая, блин, делает восемьдесят процентов необходимого (разные 80%, естественно), остальные двадцать либо в далеко идущих планах, либо в незакрытых с 2005 года багах.

Завтра буду пробовать гугловский debmarshal, если не заведется - воткну apt-ftparchiver+apt-move, приправив перлом, и пусть будущий саппортер этого удавится.

EAN-13

Mar. 14th, 2010 11:45 pm
Люди на полном серьезе обсуждают как прочитать сабжевый код глазами... чтобы им не подсунули 666 бесовщину

Profile

ex0_planet

August 2017

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
272829 3031  

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2017 06:59 am
Powered by Dreamwidth Studios