КатегорияДзен

Разработка программных систем по ГОСТ

Кажется, мы стали забывать, как должен выглядеть полный цикл разработки ПО. При разборе старых завалов, был обнаружен артефакт — документы ещё советской научно-исследовательской работы конца 70-х по созданию системы управления разработкой проектов программных комплексов. Это уже сложно достоверно установить, но, возможно, именно она легла в основу ГОСТ 19, разработанного примерно в то же время.

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

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

Эта схема описывает полный цикл жизни ПО — от предложений по разработке системы, написания технического задания (конкретно о нём я как-нибудь обязательно расскажу отдельно: как надо и как не надо писать ТЗ) и составления эскизного проекта до внедрения и сопровождения системы. Такой подход к разработке программных комплексов  полностью согласуется с ГОСТ и активно применялся при создании всех бортовых систем военного назначения. Собственно, всё это и было выстрадано именно из большого опыта решения проблем создания такого ПО.

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

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

Задачки с собеседований

Недавно случайно наткнулся на nplus1 на коммерческую статью, предлагающую решить восемь несложных задачек для прохождения собеседования на должность программиста в банк. Мне стало интересно, что нынче требуют от банковских программистов. К тому же, было приятно немного, так сказать, тряхнуть стариной и пописать пусть и совсем школьные, но формулы. Задачки, конечно, совсем простые (как и бывают на собеседованиях), но я всё-таки решил их разобрать. For teh lulz, ofc. Читать далее

Засилие текстовых протоколов

Я давно наблюдаю в программировании засилие текстовых протоколов обмена. Мода на представление информации в «читаемом человеком» (human readable) виде пошла с языков группы SGML — HTML и XML. Раздутых и переусложнённых, иногда, до идиотизма. Одно время XML стал настолько мейнстримным, что им пытались представить вообще любую передаваемую информацию где бы то ни было. Этот процесс родил, в том числе, таких чудовищ ума как веб-сервисы и SOAP: архитектуры самоконфигурирующихся служб, которые, по факту, никому на самом деле не нужны. Потому, что они всё равно требуют той же самой ручной конфигурации уровнями ниже и выше (адаптации программной архитектуры).

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

Читать далее

Навальный и профессиональные борцы с коррупцией

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

Если хоть немного подумать, это обычная игра на эмоциях: какой же обычный человек в здравом уме будет не за всё хорошее? Этот приём политического самопиара и даже свержения власти известен ещё чуть ли не со времён Древнего Рима, и в политологии называется популизмом — психологической манипуляцией вроде как от имени и в интересах большинства. Как и положено по канонам жанра, предлагаются исключительно простые и идеально понятные простым обывателям схемы: всех посадить, всё отобрать и поделить, сделать всем хорошо.

Даже если бы все эти люди, заимев власть, сделали бы (или попытались бы сделать) ровно так, как говорят, реализовали бы (или, опять же, попытались бы реализовать) все свои простые рецепты счастья, то не поменялось бы ровным счётом ничего. Это предельно ясно уже даже из общих законов физической динамики: чтобы существенно изменить движение такой огромной системы, необходимо приложить хотя бы сопоставимое количество энергии с энергией её собственного движения. Это даже не вдаваясь в подробности реальной динамики таких сложных социальных систем, про баланс центростремительных и центробежных сил и тому подобные мелочи. То, что можно хирургически кардинально перестроить все уровни государственного устройства, начиная от рядовых граждан, за короткий срок усилиями одного человека — полная сказочная фантастика для совсем непритязательного электората.

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

26 марта прошли «массовые» акции протеста сторонников Навального по вышеописанной схеме. И это всё, честно говоря, уже просто навевает зевоту: одно и то же, раз за разом, по тем же самым лекалам и ровно с теми же реакциями от «прогрессивных стран». Задержали несколько сотен людей и какой ужас, их оттаскивали в автозаки! Какая беспредельная жестокость и нечеловеческое коварство подлых властей по отношению к несанкционированному митингу! А вы видели, как разгоняют несанкционированные митинги в Германии или США?.. То-то и оно, происходящее настолько прозрачно и очевидно, что уже даже не увлекает и не развлекает.

А кто руководит движением? Алексей Навальный, человек, который не имея ни внятной команды, ни хоть какого-то опыта административной работы, ни конкретной не-популистской политической программы, уверенно заявляет о своих амбициях стать президентом такой во всех смыслах сложной страны, как Россия. Страшные и беспощадные гонения и преследования которого уже давно напоминают какой-то не очень хороший спектакль.

Если мне скажут, что в России многое организовано и делается плохо, я безусловно соглашусь. Но если мне скажут, что для исправления этого я должен торговать лицом на массовках с Навальным — я сразу пошлю бездельника к чёрту.

Русские дороги как проявление гуманизма

Иногда складывается отчётливое ощущение, что в России дороги в городах и между специально оставляют в четвертьвековых выбоинах, а иногда и нарочито делают новые под видом ремонта. Поддерживают их в таком состоянии, в котором по ним невозможна езда быстрее 40-50, а то и 20 километров в час.

А «какой русский не любит быстрой езды»?.. Можно написать диссертацию по философии на тему «русские дороги как высшее проявление гуманизма».

Альдейгьюборг

«В скандинавских источниках XIV века княжествами Гардарики (Руси) называются Хольмгард (Holmgarðr), Кэнугард (Kœnugarðr) и Палтескья (Pallteskja), а также Альдейгьюборг (Aldeigjuborg), Смалескья (Smaleskja), Сурсдалар (Súrsdalar), Морамар (Móramar) и Радстофа (Ráðstofa).»

Хольмгард — Новгород;
Кэнугард — Киев;
Палтескья — Полоцк;
Альдейгьюборг — Ладога;
Смалескья — Смоленск;
Сурсдалар — Суздаль;
Морамар — Муром;
Радстофа — Ростов.

Называть города так, как они называются? Слишком просто!

Предвыборная ответственность

В предвыборную пору по телевизору и в соцрекламе на биллбордах нам постоянно внушают ответственность за выборы, за будущее страны, детей, внуков, правнуков чуть ли не до десятого колена. А какая реальная ответственность лежит на тех, кого люди должны выбирать? Ведь именно от них, в конечном счёте, напрямую зависит реализация всех этих заманчивых программ, а не от тех, кто их выбирает. Да, по сути, никакой. Считается, что если выбранный человек плохо работал на своём посту, то его не выберут в следующий раз (это через четыре-то года), ну-ну.

В Гражданском кодексе РФ есть такие интересные понятия, как «оферта» и «публичный договор». Нормы закона, соответствующие этим понятиям замечательно применимы, например, к рекламе. И хотя в целом рекламу не считают офертой, а, скорее, «приглашением», в судебной практике есть немало случаев, когда особенно злостную рекламу, осознанно вводящую в заблуждение относительно существенных условий, признавали офертой, то есть, по сути, публичным договором, который влечёт за собой юридическую ответственность рекламодателя.

Было бы очень здорово применить эти же нормы к предвыборным обещалкам. Они идеально подходят под определения ГК РФ, и вовсе не являются «приглашением к переговорам», в отличие от обычной рекламы. Более того, интересным было бы ужесточение ответственности по предвыборным программам до уголовной (ну в самом деле — будущее Страны же!). При этом, если невыполнение предвыборных обещаний действительно связано с обстоятельствами непреодолимой силы, это всегда может установить суд в рабочем порядке.

Не построил дорогу за год — в тюрьму. Не увеличил пенсию до 1000 долларов — в тюрьму. Не обеспечил детей местами в детском саду, а так же средней школе в радиусе 1 километра от места проживания (это я сейчас цитирую пафосную агитку одного из кандидатов) — в тюрьму. Романтика!

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

Зарплаты в России, которую мы потеряли

После денежной реформы Витте 1897 года, вводящей золотой стандарт, 1 рубль был приравнян к 0,774234 граммам чистого золота. Сегодня курс Сбербанка составляет 2460 рублей за 1 грамм.

При прямом пересчёте получим 1 дореволюционный рубль = 1904,6 современных рубля.

Средняя зарплата рабочего низкой квалификации в Российской Империи считается равной 14,5 рублей (10-15 рублей), что после пересчёта составит 27 616 современных рублей. Низшие государственные чины (учителя мл. классов, работники почты и т.д.) получали примерно 20 рублей (38 092 совр. руб.) Фельдшеры получали 35 рублей (66 661 совр. рубль), врачи — 80 рублей (152 368 совр. руб.).

Можно подумать: «вот она, Россия, которую мы потеряли!» Но пойдем дальше: соимость свежего батона ржаного хлеба — 4 копейки (76,2 современных рубля), а белого — 7 копеек, то есть 133,3 совр. рубля. 1 килограмм картофеля свежего урожая стоил 15 копеек (285,7 совр. рублей), 1 литр молока — 14 копеек (266,6 совр. рублей), килограмм кускового сахара рафинада — 60 копеек (1 142,8 совр. рубля), килограмм сливочного масла — 1 рубль 40 копеек (2 666,4 совр. рублей), килограмм зернового кофе — 2 рубля, что составляет 3 809,2 современных рублей. Да-да.

А разгадка проста: мерять надо отношение стоимости жизни к окладу труда. Типичная манипуляция ностальгирующих по Империи — приводить заоблачные дореволюционные зарплаты, забывая упомянуть цены на сливочное масло.

C 2016!

Пока мы тут ещё готовимся, через полчаса Новый год отметят на Байкале, а во Владивостоке уже полчаса как закусывают мандаринами.

Поздравляю всех с наступающим, 2016 годом!

Турция и Су-24

Я не очень горю желанием комментировать акт прямой военной агрессии Турции, но сегодняшняя (уже вчерашняя) информация о том, что ВВС Турции якобы «не знали, что за самолёт» они сбивают меня добила.

Я, как пусть и небольшой, но как-никак экспертик по воздушно-космической отрасли, очень хочу сказать несколько вещей.

Во-первых, о подобных миссиях на границах (если они не секретны, конечно) всегда сообщают заранее заинтересованным сторонам.

Во-вторых, я не верю, что могла отсутствовать связь с экипажем Су. Такое возможно только при серьёзном повреждении подсистем связи.

В третьих, на всех современных самолётах уже давным-давно ставят радиолокационные ответчики (то, что в быту часто называют «свой-чужой»), который конкретно для этой миссии должен быть в обязательном порядке включен как минимум в режиме государственного опознавания именно для того, что бы самолёт мог быть легко идентифицирован, например, ВВС Турции.

В четвёртых, даже если вдруг Юпитер в созвездии Водолея и этого ничего нет (хотя вероятность этого ничтожна), самолёт при перехвате можно опознать просто визуально — посмотрев на него глазами. И страну, и бортовой номер. Даже рукой пилоту помахать и показать «срочно садись».

В пятых, Турция сразу после произошедшего предоставила нотариально заверенный скриншот радарной системы с полным треком сбитого самолёта. То есть, турки внимательно следили за самолётом и его полётом. Ну и как они не могли знать откуда он вылетел, куда летел и что это вообще за самолёт?

В шестых, даже по турецким радарным трекам видно, что сбитый самолёт находился в воздушном пространстве Турции не более 15-18 секунд. Об этом же говорит и то, что самолёт упал в Сирии — такое могло произойти, только если он был сбит либо в Сирии, либо очень недалеко от границы. Десять предупреждений, говорите?..

В седьмых, направление обломков. Точной и подтверждённой информации пока нет, но судя по видео падения (ракурса, с которого оно было записано) и по турецким же трекам, Су летел ОТ Турции, когда был сбит. Кроме того, поражение произошло, судя по всему, на территории Сирии. Информацию о том, что Су был перехвачен над территорией Сирии сообщило немецкое (!) Минобороны. О какой обороне может идти речь, и не нарушили ли ВВС Турции воздушное пространство Сирии, суверенного, вообще говоря, государства? Если подтвердится информация, что перехват произошёл над Сирией, получится, что турецкие ВВС не просто нарушили границу страны, но и, фактически, проводили боевые действия над территорией чужого государства без соответствующего мандата кого-либо, что значительно отягощает их вину.

В восьмых, даже по тем же турецким радарным трекам, видно, что самолёт в воздушном пространстве Турции пролетал над горным хребтом. Видимо, очень ему угрожая.

В девятых, сообщают, что в этот день в районе Хмеймим ветер дул таким образом, что сесть на него (об этом говорилось с самого начала — самолёт возвращался и об этом же свидетельствуют турецкие треки) можно только с севера, влетев на несколько секунд в воздушное пространство Турции. Именно этим объясняются ранние очень громкие заявления Анкары о нарушении их границы, а вовсе не «провокациями Путина». ВВС Турции, как и профильные чиновники, просто не могли не знать об этом.

Из этого всего можно сделать банальный вывод: такое могло произойти только в случае, когда пилоты ВВС Турции поднимались в воздух уже с заданием на уничтожение, а не на перехват и сопровождение. Ну или там работают одни профнепригодные идиоты, во что верится, конечно, с трудом.

Это конкретно про самолёт и версии произошедшего. Заниматься политаналитикой я не хочу, это обычно грязное и неблагодарное дело, но надо понимать, что хотя Турция — одна из самых боеспособных и своенравных стран-соседей России, они не решились бы на такое, не будь они в НАТО. И судя по сегодняшним заявлениям от чиновников различных рангов из разных стран, НАТО совсем не оправдало их ожиданий поддержки. Даже США, на ком держится весь Альянс, выразило очень мутную и явно несогласованную позицию. Разница между банальной истиной «Турция имеет право защищать своё воздушное пространство» и конкретным суждением «Турция оборонялась и мы их поддерживаем» колоссальна.

Посмотрим, что будет происходить дальше, но пока, судя по всему, Турция классически выстрелила себе в ногу, дав России casus belli как по учебнику.

Первая премия Гудини для экстрасенсов

Утром, за чашкой кофе, меня застала отличная новость: наконец, супротив бесконечных парадов экстрасенсов и прочих одарённых личностей в СМИ у нас, в России, в этом месяце был учреждён аналог премии Джеймса Рэнди — премия Гудини. Организаторы премии обещают 1.000.000 рублей любому, кто сможет доказать свои паранормальные/экстрасенсорные/сверхчеловеческие способности в условиях корректно поставленного научного эксперимента перед группой учёных-экспертов. Приём заявок от экстресенсорных дарований открыт до 31 декабря 2015 года.

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

Наша премия для магов и колдунов только основана, но интересно посмотреть на почти двадцатилетнюю статистику премии фонда Джеймса Рэнди. Соискателей этой премии в 1.112.000 долларов было очень немало. Приходили и лохозодцы, и предсказатели, и люди с «кожным зрением», маги, пилоты астрала — кого там только не было. Но ни один из них за все 20 лет не смог в условиях научного эксперимента доказать свои сверхспособности — обычно люди либо пытались откровенно обмануть комиссию, либо искренне верили в способности, которых у них нет. Премия так и осталась нетронутой.

Конечно, многие из экстрасенсов просто не идут на проверку, говоря, что «настоящая сила в проверках не нуждается» или придумывая ещё сто причин, но мы-то с вами знаем…

Регулярные выражения: история о длине

Регулярные выражения (англ. regular expression или, кратко, regex) — это такое очень сильное колдунство, созданное для точной, филигранной работы с текстом. Как верный заправский ниндзя из популярных боевиков на вашей службе, хорошо составленное регулярное выражение искусно нашинкует текст на нужные кусочки. Но наспех и плохо составленные регулярные выражения подобны пьянице, который шатается, постоянно спотыкается о текст и кое-как добивается результата. Основной причиной мифической медлительности регэксов в подавляющем большинстве случаев является отнюдь не медленный движок, а именно неумело составленное выражение.

Эта история о том, как всего несколько символов могут так значительно повлиять на производительность.

Читать далее

Модельки Третьего Рейха

В связи с возбуждением уголовного (!) дела о продаже моделек солдат Третьего Рейха в Детском мире на Лубянке (они же там ещё и модели танков Вермахта продают, кощунники!), предлагаю пойти совсем чуть-чуть дальше и ввести запрет вообще на любые изображения всего, что связано с Нацистской Германией.

В фильмах о Великой Отечественной Войне доблестные солдаты РККА будут сражаться с неясными замазанными фигурками, героически штурмовать чёрные прямоугольники ДЗОТов, самоотверженно бросаться с гранатами под зацензуренную технику неизвестной принадлежности. И вот уже всего через поколение дети перестанут понимать, с кем же, собственно, сражался СССР и Союзники во Второй Мировой Войне. А было ли это вообще?..

Предлагаю немного пофантазировать на эту тему.

Читать далее

Герои Украины: наследие Степана Бандеры и ОУН

Степан Бандера (1/I 1909 — 15/X 1959) — пожалуй, самый видный и известный аватар современного украинского национализма, незалежності i державності. Борцы с кровавой Россиюшкой (а также, изначально, с кровавой Польшей) водружают его светлый образ на свой щит уже больше пятидесяти лет и особенно в последнее время, в связи с недавними известными событиями в/на Украине. Вчера, 1 января, в честь дня рождения Бандеры по улицам Киева даже прошло настоящее fackelzug (нем. «факельное шествие»). Кажущееся сходство с похожим факельным шествием в Третьем Рейхе, разумеется, только кажущееся; факелы давно используют в ритуальных обрядах и вообще это просто по приколу.

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

Читать далее

С новым 2015 годом!

Чтож, поздравляю всех с наступающим 2015 годом!

Предлагаю всем подумать о том, насколько огромна наша страна — на Камчатке 1 января наступит уже через час!