Category: происшествия

Category was added automatically. Read all entries about "происшествия".

Буллет

Век назад в технических документах, справочниках и т.д. элементы списков отмечались обычным длинным тире:

— Пункт раз.
— Пункт два.
— Пункт три.

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

☞ Пункт раз.
☞ Пункт два.
☞ Пункт три.

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

‣ Пункт раз.
‣ Пункт два.
‣ Пункт три.

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

• Пункт раз.
• Пункт два.
• Пункт три.

Так NASA окончательно устранило даже шанс возможности риска потенциальной угрозы.

Иногда кажется, что Россия не может отправить космонавтов на Луну не столько потому, что Путин и Рогозин, сколько потому, что ЕСКД до сих пор требует для элементов списка длинное тире. Это уже не только символ начала списка, это символ игнорирования мирового опыта и невнимательности к предпосылкам предпосылок.

Куда-то делась беларусская любовь к порядку?

Сначала полиция явно получила приказ не охранять порядок, а охранять Луку.

Потом полиция не послала на три буквы отдавателя такого приказа, а взяла под козырёк.

А в результате произошла очень плохая для страны вещь: некоторых полицейских избили и разоружили. Такого не должно быть. Вот вообще. Я сейчас скажу циничную мысль, за которую мне тут накидают, но для страны было бы лучше, если бы эти полисы кого-то поубивали, но оружие не сдали. Потому что если вот так, то это лишает полицию должного уважения к ней и это придаёт уличным столкновениям карнавальный характер, а при такой массовости это запросто станет трагедией не для Лукашенко, а для страны. Война ведь тоже имеет карнавальный характер.

Преступлением Лукашенко является то, что он старательно создал все предпосылки для такого безобразия.

Дело "Сети" как дуромер

"Показывая силу слабым, ты показываешь слабость сильным". Сажая людей на длительные сроки, но стесняясь при этом даже огласить приговор целиком, государство показывает свою неуверенность в компетентности своей самой разрекламированной структуры --- ФСБ, оно же то самое "Кей-Джи-Би", воспетое десятилетиями работы западной прессы и десятками голливудских фильмов.

В Штатах уже давно проблема с качеством аналитики по бывшему СССР (одно из самых сложных требований к русскоговорящей голове в ЦРУ --- умение сносно выговаривать в словах звук "Ы"). Но всё-таки они не полные идиоты. Они могут отличить способность наших "силовиков" к серьёзной работе от готовности к симбурде и халтуре. (В конце концов, по симбурде и халтуре они и сами консультировать могут.) И прямо сейчас, с учётом разницы во времени, кто-то из них уже оформил несложный вывод и несёт его в первую инстанцию: ФСБ деградировало почти до уровня СБУ, можно начинать работать, проблем будет не больше, чем на Украине.

BIO_reset()



Несмотря на приставку "BIO", это не про биологию, а на 3/4 про программирование, и на 1/4 про жизнь. BIO_reset() --- маленькая служебная процедура, используемая почти в любой программе, имеющей дело с шифрованием. Она командует подсистеме шифрования, что её надо прекратить обрабатывать указанный поток данных, вернуться к его началу, и подготовиться к его обработке, как будто ничего раньше и не было. "Кнопка перемотки на начало", в общем. И её использование не вызывает ни малейших проблем даже для начинающего программиста --- один оператор BIO_reset(X), и можно начинать делать с X какие-то более интересные вещи.

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

Проходят годы, и уже вполне состоявшийся эксперт попадает в бригаду других экспертов, которые уже не первый год пишут проект мирового уровня. И вот в один прекрасный день он вписывает в очередной "шифровальный" кусок старую добрую знакомую BIO_reset(). Но он уже не тот чайник, который не знал про возможность отказа, и не тот "хорошист", который знал, но относился к этому как к непредсказуемому "злому року". Он уже знает про все возможные причины такого отказа и знает, что коллеги-эксперты сделали всё необходимое, чтобы их исключить: через процедуры Азиза не могут проскользнуть неправильные данные, монитор Ивана обеспечил наличие всех нужных ресурсов, Патрик перепроверил все библиотеки, а Пол давным-давно наладил сеть так, что это вошло в мировой стандарт. В таких "тепличных" условиях BIO_reset() правильно сработает всегда. И ещё этот эксперт знает по горькому опыту, чужому и своему, что в любой строчке программы могут случайно оказаться ошибки, в том числе и в строках, предназначенных для обработки отказов. Чем меньше кода, тем меньше и ошибок, и эксперт с чистой совестью пишет BIO_reset() без лишних проверок, зато с комментарием "здесь проверки не нужны, всё заведомо будет в порядке".

Проходит ещё пол-жизни. Тот начинающий я, и тот опытный я, и тот эксперт, только-только пришедший в проект --- они уже в далёком прошлом. Вы представляете, что такое 10 лет в одном программистском проекте, бить лбом одну стену, хоть и в разных её местах? А 15? А ещё побольше? Хо-хо, я тоже когда-то думал, что представляю заранее. Мы уже давно не работаем над проектом, мы живём в нём. Коллеги успевают жениться, развестить, вырастить детей, пережить кто 9/11, а кто три госпереворота в Бишкеке. Кто-то вложился в cтуденческую шарагу под названием, как её, Facebook, но потом решил, что облажался, и убежал оттуда обратно в кэш, облажавшись уже по-настоящему, на десятки мегабаксов. В честь кого-то назвали самый лучший сорт марихуаны. Ещё они успевают попасть насмерть под машину, словить рак, ослепнуть... в общем, продемонстрировать не только то, что "человек смертен внезапно", это полбеды, но человек внезапно теряет контроль над "своим" проектом. А вот это уже совсем плохо, ведь из всей моей работы только один этот проект и останется хоть как-то в памяти человечества. Цедерквист --- это который "The Cederqvist", а вот Иван Михайлов --- это который SPARQL в Virtuoso. Будет ведь обидно, если после меня проект начнут курочить менее аккуратно, он начнёт терять нынешнюю красоту и прочность, и обнаружится, что такого риска "попадания в менее заботливые руки" я не предусмотрел.

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