Горюче-сказочные материалы
1.43K subscribers
1.84K photos
77 videos
18 files
2.07K links
Download Telegram
Настоящий годный хороший тестировщик — это не тот, кто может сломать, а тот, кто может подробно описать, как сломал. Хороший тестировщик со временем становится лучшим специалистом по проекту.

Вот вроде бы просто, взять и написано, но этот навык встречается редко, а специально ему нигде толком не учат.
#чешскиепрограммисты
История продолжает раскручиваться. Сайт novinky.cz сообщает, что свеженаписанный макаками ресурс уже был взломан и данные примерно 200-300 людей были слиты.

IT-специалист Ondřej Bárta одним из первых обнаружил уязвимость и рассказал, что сайт совсем не тестировали, бо́льшая часть методов вообще не реализована, в коде мешанина чешских и английских имён, что показывает несогласованность действий участников. «Я понимаю, что это за выходные написали, но есть же какие-то основы», отметил Ondřej.
Почему блокчейн в государстве — это пиар и лажа.

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

Теоретически, блокчейн идеально подходит для ведения реестра операций, он гарантирует, что запись, положенная в цепочку эндцать моментов назад, останется там навсегда. Это может быть, например, операции с недвижимостью. И вот тут ключевая проблема для реального государства: невозможность поменять историю делает весь продукт полностью бесполезным, а менять историю государство захочет обязательно. Поэтому все разговоры о «государственном блокчейне» нужно понимать упрощённо: это не блокчейн.
Когда-то очень-очень давно я выбирал, какой софт использовать для собственного блога. Выбор был в принципе не очень широкий: WordPress и всё. Смотрел на разные варианты в виде статических страниц с динамически подгружаемым комментариями со сторонних сервисов, но там было опасение, что сервисы не проживут долго (это подтвердилось). В итоге решил сам написать простейший движок для собственных нужд, за пару недель сделал и до сих пор вполне нормально работает. 100% под собственные хотелки! Но это так, предисловие.

Первый и самый главный компонент, который я реализовал — это бэкап и восстановление. Вот реально, это самый важный компонент любой системы, который нужно реализовать сразу, он спасёт вас от поломки сервера, от проблем с миграцией, от проблем с апгрейдом.

Теперь после 10+ лет я понимаю, что не хватает ещё одной системы, которую также нужно было прикручивать сразу — полное и всеобъемлющее логирование. Для персонального сайта это не так важно, но для коммерческой системы абсолютно необходимо. Во-первых, владельцы очень любят логи. Во-вторых, это единственный работающий механизм разбора полётов в случае человеческого фейла. Естественно, под фразой «система логирования» я подразумеваю не только сбор, но ещё и качественный просмотр, поиск и анализ логов.

Реализовать эти компоненты на стартовом этапе развития проекта достаточно легко, позднее это станет гораздо сложнее, а потребность в них появится 100%.
При изучении любого сложного подхода по книгам возникает одна и та же проблема: А как проверить, что действительно понял написанное? Хорошо, если есть проверочные упражнения, но и они не дают полной гарантии. И что вообще означает правильное понимание? Полное совпадение по мыслям с автором? Но автор мог ошибиться.

В итоге получается, что какое-то количество прочитавших понимает неправильно, но вполне успешно (по их собственным критериям) подход применяет.
Проект может быть либо завершён, либо нет. «Функционирующий прототип» не означает вообще ничего, его реализация может занять две недели, а потом два года потребуется на «завершение работы». Исключение тут только одно есть: изготовитель чётко следуют отлаженным процессам и у него в «предметном словаре» (domain vocabulary) есть понятие «функционирующий прототип». При этом наблюдатель должен быть знаком с этим словарём и процессами, чтобы верно всё оценивать.

К сожалению, почти всегда понятие «прототип» относится к области маркетинга, чем к предметной части проекта.
Когда учился в аспирантуре, изучал модный в то время Semantic Web, кандидаты фанбойных наук всерьёз считали, что за этим будущее. Но уже было понятно, что в таком виде и в такой предметной области (то есть в вебе) это не выживет.

Сначала коротко, что вообще такое — этот semantic web. Если коротко, то финальная цель — машиночитаемые максимально подробные метаданные у всех документов в интернете, включая картинки, фотографии, веб-сайты, просто файлы, вообще всё, короче, слово документ тут нужно понимать в широком смысле. Машиночитаемые метаданные — это данные о документе: автор, дата создания, история редактирования, контекст. В общем, максимально подробно записанные в стандартном виде данные о содержимом. Примеры: EXIF для фотографий, ID3TAG для mp3, описания word/pdf/xls документов (title, author, description итп).

Ключевых проблем было две.

Во-первых, пользователи не будут никогда заполнять метаданные так, чтобы им можно было автоматически доверять. Можете вспомнить, какой хаос творится в ID3-тегах в мптришечках из интернета, или что записано в поле author почти любого pdf/doc файла.

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

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

I used to work for a mapping & navigation company that offered a traffic API service. It worked by using anonymized cell phone data to predict traffic patterns. I once heard a story that during peak hour, every five minutes or so the jams on a highway would magically disappear then reappear. After some head scratching, turns out there is a train track inbetween the lanes of the highway full of high speed commuters that would cancel out the stationary car commuters.

Перевод: Я работал в картографической компании, которая предлагала API для просмотра дорожного трафика. Сервис анализировал анонимизированные данные сотовых операторов, чтобы предсказать паттерны трафика. И однажды услышал историю, как в час пик каждые пять минут или около того заторы на магистрали волшебным образом исчезали, а затем снова появлялись. Разгадка этой головоломки оказалась в рельсах между полосами магистрали, по которым на высокой скорости ехала электричка со смартфонами, а вокруг стояли в пробке другие смартфоны.
Суда по графикам - эпидемии не допустили. Рост новых подозрений на вирус остановился. Значит через несколько дней развернётся число заболевших, еще через одну-две недели пойдёт вниз смертность. Будем надеятся.

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

А экономические потери компенсируют ударным трудом и сокращением праздников в мае и октябре. И ослаблением юаня.

-конец блока диванной экспертизы-
“Friends don't let friends use cloud hosting”
Напомнили про эпичный баг в твиторе, который один в один повторяет телеграмный. И это по идее должно побудить корпорации что-то сделать с 2FA авторизацией и как минимум сделать емейлы опциональными. Но нет, этого не будет. И даже после новых рекомендаций NIST, в которых, по слухам, MFA via SMS будет явным образом запрещена.
У разработки коробочного продукта есть «приятный» нюанс — постоянно меняющиеся требования. Это неотъемлемая часть процесса, от которой избавиться невозможно в принципе. У вас неизбежно появится однажды покупатель, у которого ваша умная и красивая архитектура даст фатальный сбой.

Например, для продуктов enterprise-рынка почти обязательной фичей является поддержка ActiveDirectory. Но некоторые клиенты не используют AD, поэтому нужна поддержка других конкретных LDAP-серверов. Сразу можете забыть про абстрактный LDAP, это не работает в реальности. И вот вы такой умный сделали всё, а тут приходит клиент, у которого пятьсот тысяч LDAP-групп и тысяча пользователей… Или у которого вся иерархия построена не на группах, а на OU… И всё разваливается полностью. Люди в дизайне LDAP проявляют дивную фантазию.
Рекламная компания Гугол опубликовала отчёт за 2019 год, доход от Google Cloud составил 8,9 млрд долларов, а доход от рекламы — 134,811 млрд. (Для сравнения, амазон на облачных сервисах заработал 35 млрд.)

Всего гугол заработал 161,857 млрд., что на 25 млрд. больше результатов 2018 года.
Товарищ выдвинул теорию, что случится, если все крупные американские компании (google, amazon, facebook, apple, microsoft) одномоментно перестанут нанимать людей: зарплаты обрушатся до среднего уровня, поскольку уровень зарплат держится на таком высоком уровне исключительно из-за конкуренции, которую создают перечисленные компании, нанимая постоянно огромное количество людей. Ну и ещё выдвигает несколько теорий, как эти компании могут пользоваться своим монопольным положением на рынке труда.
Вот иллюстрация из стандарта ISO 15926, на которой показана упрощённая схема жизненного цикла завода. Рамкой я обвёл фазы, которые обычно находятся в фокусе обывателя, а всё остально обычно остаётся за кадром.
Русский язык плохо подходит для изучения современных систем, подходов и парадигм, он всегда будет языком второго сорта, на который разными авторами переводятся тексты с английского. Поэтому литературу на русском лучше всего использовать параллельно с англоязычной, а систему понятий (словарный запаса) сразу строить в мозгу на английском языке.
Системная инженерия, которую мы заслужили.
Изучение новой области часто очень сильно меняет способ мышления. Начинают появляться новые мысли, причём они появляются не обособлено, а бесшовно и логично встраиваются в обычную цепочку размышлений. Многие из таких вещей происходят из философии и философских рассуждений: разница между конкретным и абстрактным, разница между объектом и его описанием, разница между объектом как таковым и его «представлением» (то есть как он ощущается органами чувств).

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

Системная инженерия занимается только рукотворными и материальными системами. Под словом материальный понимается система, занимающая некоторый объём в пространстве и времени. Например, клавиатура, на которой я набираю текст; монитор, на котором я вижу этот текст; новогодний корпоратив, на котором я был в конце декабря 2019 года. Первые два примера обычно воспринимаются адекватно, а насчёт третьего возникает сразу вопрос: а как может быть событие материально? А вот так, оно удовлетворяет всем требованиям: занимает место в пространстве (пансионат «Весёлая белочка») и времени (27 декабря, с 18:00 до 24:00), мероприятие однозначно рукотворное — некие конкретные люди его подготовили, провели и потом ликвидировали.

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

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

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