?

Log in

No account? Create an account

Заповедник репрессивной психиатрии

Субботники по наведению порядка
metaclass
Вот такие факсы по предприятиям Минска рассылает исполком: http://www.cacodaemon.org/content/Fax00007504.gif
Безотносительно к сугубо белорусском майндфаку на тему "мест захоронений" и "великой отечественной войны" - как подобные мероприятия (наведение порядка и уборка срача в общественных местах) организованы в более цивилизованных странах?
И привлекают ли там к этому общественность и не имеющие к этому делу отношения организации или тупо есть специальные уборщики, которым платят из городского бюджета?
Или там просто не принято засирать общественные места в таких масштабах?

Проклятая тема
metaclass
Как известно, в программировании есть несколько проклятых тем. Т.е. задач, которые сами по себе просты, но их общего (повторно-используемого, кросс-платформенного, не заставляющего глаза течь кровью) решения не бывает и приходится каждый раз мутить какие-то велосипеды.
Одна из таких тем: прерывание длительных и блокирующих операций. Смежная - показ прогресса для таких операций. Вот, например, в контексте скалы: http://ru-scala.livejournal.com/36634.html
Почему эта тема проклята?
Во-первых, прерывание означает либо два потока, либо callback изнутри операции, вызывающий проверку наличия ввода от пользователя (Application.DoEvents/Application.ProcessMessages). Средний разработчик от многопоточности и callback бежит как от огня.
Во-вторых, i/o операции изначально сами по себе блокирующие. Всякие там чтения из сокетов, файлов(на сгнившей файловой системе примонтированной с выключенного сервера), rs232-портов с забытыми таймаутами и прочего зла. Реализация асинхронного i/o - жесточайшее уныние, что с overlapped, что с completion ports, что с select и прочими epoll.
В уютной сишечьке или недалеко от них ушедших C++ и Delphi - это по крайней мере, помещается в мозг, в дотнетах же, жабах, рантаймах хаскеля и прочих порождениях геенны огненной - либо авторы рантайма озаботились прерыванием операций, либо изобретение велосипеда вырождается в чад угара и лавирования между GC и разными уровнями представления данных.
Во-третьих, "у меня на столе все работает". Когда сервера не выключаются, сеть работает, диски без бэдов и железо отвечает вовремя - операции отрабатывают быстро, или можно их выполнять мелкими блоками и проверять какие-нибудь флаги отмены.

В-четверых, часто эти операции завернуты в десятки слоев чужих библиотек, например, "выполнение запроса к БД и выборка неизвестного количества миллионов записей, потому что база не знает сколько записей подпадает под условие". Если повезет - метод "прервать и свалится с исключением в потоке выполнения запроса" будет в API и даже после его применения внутренние структуры данных не превратятся в кашу. Если нет - то только убивать себя о стену.

Жесткий технофетишизм
metaclass
http://arstechnica.com/science/2013/04/how-nasa-brought-the-monstrous-f-1-moon-rocket-back-to-life/
Разобрать и превратить в CAD-модель двигатель от Сатурна-5, да еще завести от него турбину насоса.
110-метровые ракеты, дикой мощности двигатели, сборка их ручной сваркой в 60х года и на 3D-принтере сейчас. Редкостный позитив.