Серия «IT»

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

Дисклеймер ↓

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

Но в итоге сегодня наша статья наконец-то выходит в свет. Из цензуры — только внимательная рука корректора. Передаем слово Максу Яковлеву.

Привет, Пикабу. Меня зовут Максим, я руковожу отделом сетевых инженеров в Таймвебе. Как вы уже поняли из заголовка, речь пойдет про наш прошлогодний DDoS. Это не стандартный постмортем, а скорее история от первого лица. Расскажу и покажу, каково это было изнутри — жить на энергетиках и пересобрать ядро сети всего за пару месяцев.

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

❯ Некоторое время до


Про Таймвеб вы, скорее всего, знаете. И скорее всего — как про хостинг, работающий по модели shared, с саб-сервисами вроде регистрации доменов, конструктора сайтов и пр. Еще есть облако, выросшее из хостинга, — о нем и пойдет речь.

В 2023 мы начали потихонечку распиливать легаси-сеть хостинга и делать ее похожей на сеть IaaS-провайдера. Но в целом архитектура на момент дня Х была довольно типичной для хостинга: несколько маршрутизаторов, стопка растянутых VLAN, три транзита и пара обменников.

В хостинговом бизнесе объем каналов рассчитывается от объема общего трафика на сеть, плюс запас на случай аварий и атак, обычно не превышающий 10х от трафика в ЧНН. Отсюда выстраивается защита инфраструктуры и клиентов: оценивается максимально ожидаемая совокупная мощность атак, берется небольшой запас и подбираются механизмы противодействия, чтобы и отдельного клиента защитить, и самим при этом не упасть.

Важно понимать, что любой типичный хостинг находится под DDoS-атакой практически 24/7: хоть одного клиента в каждый момент времени да атакуют. Поэтому DDoS для нас — это даже несколько банально. За 17 лет мы повидали много чего и в принципе знаем ключевые (и не только) паттерны, откуда, что, куда и как.

❯ Добрый вечер


14 сентября, ближе к 18:00, в нас влетел очередной DDoS, с которым известно что делать. Отбили — пошли отдыхать. И не успел я допить чай, как атака повторилась, потом опять, а потом еще раз. Каждый раз интервал уменьшался, а объем нарастал.

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

Скриншот от StormWall

Далее для любителей краткого изложения перечислю возникшую причинно-следственную связь по инфраструктуре.

В площадку наливается больше, чем та способна переварить → роутеры перегружаются вплоть до потери сигнализации → мы через OOB блокируем атаку через RTBH/FS или переключаем сеть на сторонний центр очистки трафика → цель атаки меняется в течение пяти минут.

Из дополнительных проблем в СПб: аплинки подключены через свитчи с переподпиской, QOS или не работает, или не хватает буфера → разваливается сигнализация. Дополнительно существуют громадные растянутые VLAN, из-за чего атака на одну подсеть затрагивает огромное количество клиентов. Мониторинг и контрмеры работают слишком медленно.

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

Иногда приходилось расставлять приоритеты

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

❯ Мы накидываем план


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

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

И стратегически: построить свои сети во всех локациях. И собственную защиту.

В первую очередь отказываемся от существующей системы подавления DDoS, потому что она приносит больше вреда, чем пользы. Сетевики начинают спать по очереди, текущий flow-мониторинг меняем на семплированный Inline IPFIX с payload-ом. Таким образом не ждем, пока соберется поток, и принимаем решения за секунды. Этот шаг помог уменьшить среднее время обнаружения каждой атаки: чтобы понять, что она началась и как нужно действовать, нам сначала нужна была пара минут, чуть позже — 15 секунд, а сейчас автоматика реагирует почти мгновенно.

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

Рабочая обстановка

Изначально управление было ручным, чуть позже принятие решений стало автоматизированным: мониторинг научился блокировать DDoS сразу же после обнаружения. В итоге за период с 14 по 20 сентября мы заблокировали более 20 тысяч отдельных паттернов.

В это время по всем каналам — в телеге, в соцсетях, в тикетах — клиенты переживали, ругались и задавали вопросы. И я их прекрасно понимаю. Кстати, о прекрасном:

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

Дорабатываем защиту: делаем ее быстрее, технологичнее, чтобы принимала максимально правильные решения. Разбираем всю старую архитектуру и избыточные куски сети — все под нагрузкой и идущими атаками и так, чтобы воздействие на клиентов было минимальным.
Примерно в это же время атакующие понимают, что мы что-то сделали, поэтому меняют паттерны. Мы стали получать мощные краткосрочные волны трафика, на которые не успевала реагировать ни наша программа, ни большинство предлагаемых на рынке защит: заливало настолько разнообразно и быстро, что наши стыки и некоторые обменники начали складывать в нас сессии по prefix-limit. В эти периоды бывало и такое:

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

❯ Строим свою сеть


Начинаем с Питера. План включал в себя апгрейд маршрутизатора с установкой дополнительных плат и подключение к различным каналам и точкам обмена трафиком. Цель — увеличить пропускную способность: нам нужно было научиться принимать трафик атак и блокировать более точечно, а не просто кидаться блекхолами и снимать префиксы. Кроме того, стало понятно, что объемы атак могут расти и нам нужно будет научиться расширять емкость более оперативно, не проходя весь цикл «найти железо → найти емкость → собрать».

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

Главный роутер в СПб. На скрине MX480 в составе 2xSCBE2, 2xRE-S-2X00x6, 4xMPC7E MRATE

Обычные маршрутизаторы не всегда эффективны для такой деятельности: они обладают слишком сложным и дорогим конвейером обработки трафика, предназначенным для других задач. Исходя из этого мы решили действовать комплексно: помимо расширения каналов и увеличения портовой емкости сервисных и пограничных маршрутизаторов начали внедрять пакетные платформы на базе Juniper PTX. Они хоть и попроще, но в них много дешевых 100G/400G-портов, как раз то, что нам нужно.

Благодаря хорошим отношениям с поставщиками мы смогли быстро найти сетевое оборудование: поставка заняла всего полтора месяца. Для техники такого класса это очень быстро.

В итоге в Питере мы добили емкость по основным направлениям до 500+ гбит, а по автономке у нас сейчас суммарно около терабита. Уже через две недели после этого ситуация в СПб стабилизировалась: емкости хватало, фильтры отрабатывали оперативно. В остальных локациях сеть была арендованная: и в Казахстане, и в Европе. По этой причине параллельно с выравниванием ситуации в Питере у нас появилась новая приоритетная задача: поставить в заграничные локации собственные маршрутизаторы и дотянуться до них из Питера — тянуться решили через M9.

Девятка до сих пор крупнейшая пиринговая точка и сосредоточение телеком-инфраструктуры РФ и СНГ. Кроме основных трасс для всей России, туда же заходят каналы от СНГ — зачастую единственные.

Магистральные каналы между площадками дают несколько преимуществ:

  1. Возможность отправлять и получать трафик через любые другие стыки Таймвеба во всех странах.

  2. Возможность предоставлять клиентам дополнительные сервисы в виде каналов связи.

  3. Наше управление не развалится никогда, даже если внешние стыки в локации будут забиты под полку.

Собственно, начинаем с Казахстана. Протянули канал до девятки и пустили трафик уже через свою сеть.

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

MX204 на девятке, собирает магистрали и внешние линки. Скоро заменим его 960-м и будем забивать сотками

Кстати, с доставкой в Казахстан повезло не с первого раза. На казахской таможне менялся состав — и все встало мертвым грузом. Ситуацию решили творчески: отправили одного из наших сотрудников везти 204. Забавно, что изначально мы собирались отправлять MX104 — довольно старую и давно снятую с поддержки платформу, которой, впрочем, с запасом хватает на нужды этой площадки.

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

MX104 со склада — кусочек истории телекоммуникаций

Но из-за ее громоздкости отправили 204 — и теперь в казахстанском ЦОДе у нас стоит платформа, которой хватит на целый машинный зал облака, а не на наши несколько стоек. На память осталась только фотка со стикером из аэропорта Екб:

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

К декабрю дотянулись и в Европу: теперь у нас есть узлы во Франкфурте и Амстердаме с арендованной магистральной емкостью. Там появились выходы и в интернет — через Tier-1 операторов, и на европейские обменники.

Следующий логичный шаг — перевели площадки в Амстердаме и Польше на свою сеть. Теперь нас никто не отключит в случае атак, как бонус — интернета стало больше и появились выделенные каналы для клиентских выделенных серверов, скоро будут и во всем Клауде. В итоге вы сможете не только заказать себе сервер с 10G-интернетом, но и расширить локальную сеть до любой нашей точки присутствия — с гарантированной полосой и любыми удобными вам настройками.

Раз уж пошли по локациям, то добавлю, что в этом году запустились и в Москве, в IXcellerate. Это Tier-3 с уникальной системой охлаждения по типу «холодная стена». Я там был на экскурсии — наверное, самое интересное, что я видел в России и СНГ, а поездил я немало. Пиво еще вкусное у них было — тоже плюс 🙂

Москва, кстати, у нас сразу же запустилась с нормальной архитектурой: широкие линки на стойку, 200G до девятки, масштабируемый слой агрегации. По умолчанию даем на все виртуальные серверы по гигабиту в секунду вместо 200 мегабит, на всех дедиках доступно 10G/40G по запросу. В результате, если клиентам это необходимо, мы можем дать гораздо больше емкости, чем могли бы в Петербурге еще полгода назад.

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры IT, Timeweb, DDoS, Защита от DDoS, Хостинг, Программирование, Длиннопост

2xQFX5120-32C в IXcellerate

❯ Почему мы не спрятались за подрядчиками


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

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

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

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

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

❯ Что сейчас


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

Работы еще много: всю эту новообразовавшуюся сеть нужно резервировать и расширять. На М9 мы взяли целую стойку и собираемся ставить шасси MX960 — с большим запасом на будущее. Оно будет выполнять роль магистральной развязки, принимать внешние стыки и выступать ядром сети дата-центров по Москве, у нас там большие планы. Не забываем и про Северную столицу: платформа PTX10003 станет ядром нового узла на Кантемировской («Радуга»), где будет перемыкать магистрали и стыки с внешними сетями, выступая частью инфраструктуры очистки трафика в Санкт-Петербурге.

Находимся на этапе тестирования с Servicepipe: будем пробовать систему уже тонкой очистки трафика — если атака на клиента не угрожает инфраструктуре, не полностью все блокировать, а принимать трафик атак на себя и отдавать клиенту уже очищенный, вплоть до L7.

Много работы будет по пирингам: думаем, что скоро мы сделаем прямые подключения к Google, AWS, Azure и другим гиперскейлерам. Хотим организовывать серьезные продуктовые преимущества для наших клиентов: если ваш продукт требует очень хорошей связности с мировыми облаками или у вас мультиклауд — мы сможем обеспечить как хорошую связность по интернету, так и выделенные линии, если потребуется.

Для выделенных серверов по части сети у нас получилось очень интересное предложение. По запросу скорости мы даем вплоть до 100—200 гигабит на сервер, так мало кто умеет. Кроме простого интернета — широкий набор сетевых решений: тут и более-менее стандартные L2/L3 VPN на MPLS, и любые манипуляции с внешней маршрутизацией. Для владельцев своих AS соберем транзит, притянем любую популярную точку обмена трафиком. Для тех, кто хочет ими стать, — поможем выпустить ASN, арендовать или купить сети, анонсировать их в мир.

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

❯ И напоследок — неудобный вопрос от маркетинга

Почему не начали делать все это раньше, а триггером стало то, что на нас пришла атака?


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

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


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

Показать полностью 11

Спасти Linux

Спасти Linux Linux, Железо, Timeweb, Перевод, Windows, Компьютер, Познавательно, Длиннопост, YouTube (ссылка)

Некоторое время назад я написал статью, в которой критически высказался о Linux-разработчиках, не желающих поддерживать дистрибутив, если он предназначен для работы на компьютерах, которым более 15 лет. За это я получил немало критики от читателей с Hacker News. Кто-то указывал, что я не понимаю, насколько же это сложно – создать и поддерживать дистрибутив Linux. Были и такие, кто советовали мне просто накатить на старый компьютер старую версию Windows. Я же начал пользоваться Linux в первую очередь для избегания Windows, так как считал её монструозным порождением Билла Гейтса. Фактически, разработчики операционной системы, ранее обещавшие освободить меня от Windows, теперь склоняют меня вернуться к Windows, как только мой компьютер настолько состарится, что им станет неудобно его поддерживать. Ответы, которые я получаю от Linux-разработчиков, явно свидетельствуют, что Linux больше не является операционной системы для технарей-компьютерщиков, желающих сохранить на ходу свои любимые винтажные машины. Напротив, Linux превратился в операционную систему, которую разработчик рассматривает как средство для прокачки карьеры. Те, кому интересно подробнее разобраться в нарастающей дисфункциональности Linux и узнать, почему сложилась такая ситуация, могут посмотреть это видео на YouTube.

Некоторые разработчики советовали мне собрать собственный дистрибутив Linux. Хотел бы я! К сожалению, по паре причин этот вопрос не обсуждается. Во-первых, у меня просто нет на это времени. Слишком много времени у меня уходит на работу по поддержке моих сообществ Cheapskate's Guide и Blue Dwarf. Во-вторых, даже если бы я взялся за создание собственного дистрибутива, то получился бы ISO-образ размером более 1 гигабайта и с репозиторием на десятки гигабайт, а такой крупный софт я просто не мог бы выложить в общее пользование, так как мне было бы слишком дорого передать все эти данные.

Учитывая, что немного найдётся Linux-разработчиков, готовых поддерживать старые версии своих дистрибутивов в рабочем состоянии, единственный разумный с моей точки зрения выход – сохранить мои любимые дистрибутивы на будущее. К счастью, я сохраняю ISO-образы Linux, которым более 15 лет. Сейчас у меня есть резервные жёсткие диски с самыми разнообразными дистрибутивами. Вот неполный список: AntiX 19.4, AntiX 22, AntiX 23, Arch Linux 2020.09.01, Debian 11.3, Debian 11.1.0 Server, DSL 4.4.10, версии 1.2 и 4.4.9 со встроенными DSL, Kali Linux 2022.2, Kodachi Linux 8.15, LibreELEC 8.2, Mint 9, Mint 13, Mint 17, Lubuntu 22.04, MV Linux 21.1, Nano Linux 1.3, OpenElec 8.0.4, OpenWRT 19.07.7 обобщённый, Parrot OS 4.11.3, Parrot OS 5.3, PirateBox, Noobs v2_4_5, OSMC_TGT_rbp2_20190424, Raspberry Pi Buster 2020-05-27, Raspberry Pi Buster Lite 2020-05-27, Raspios Bullseye 2023-5-03, Raspian Buster 2019-07-10, Raspbian Jessie 2017-07-05, Raspbian Stretch 2017-11-29, TAILS 2.2.1, TAILS 4.5, Zenlive Linux 7.0 и Zorin 9 Lite. Большинство из этих версий в Интернете уже не найти. Если бы не моя предусмотрительность, то и у меня не было бы к ним доступа. Для большинства пользователей кроме меня они навсегда утрачены.

Со всеми вышеупомянутыми ISO-образами Linux существует важная проблема: в них содержатся только такие приложения, которые поставляются в виде ISO-файлов. Зачастую в них нет программ для чтения RSS-лент, браузера Lynx, PHP, веб-серверов, nmap, bleachbit, cowsay и fortune, truecrypt или Veracrypt, Unetbootin, macchanger, espeak, hwinfo, cpulimit, thermald, calibre, fbreader, браузера Dillo, браузера Vivaldi, libdvdread4, libdvd-pkg, libdvdnav4, загрузчика yt (теперь yt-dlp), почтового клиента Alpine, pulseaudio и многих других, от которых бы я не отказался. Многие из этих пакетов и сопутствующие им зависимости содержатся в репозиториях вышеупомянутых дистрибутивов. К сожалению, по прошествии многих лет установить их нельзя, поскольку многие репозитории теперь просто не существуют! Также можете не рассчитывать найти многие из библиотек, от которых зависят старые версии этих приложений для Linux.

Очевидное решение – скачивать и сохранять не только ISO-образ каждого дистрибутива Linux, но и его репозитории. Да, это осуществимо, и в Интернете можно найти множество статей, в которых объясняется, как скопировать репозиторий. Но сам процесс скачивания и хранения файлов на десятки гигабайт на множестве резервных жёстких дисков для каждого дистрибутива порой утомляет, особенно, если приходится делать это годами и учитывать такие факторы, как гниение бит и плановые обновления винчестеров.

Теперь, когда многие из моих старых ПК слишком устарели для современного Linux, мне приходится серьёзнее относиться к информации и сохранять не только базовые ISO-образы Linux, но и дополнительные файлы. Немного поразмыслив, я решил пойти по компромиссному пути, между двумя крайностями «сохранять только ISO-образ» и «сохранять ISO и все связанные с ним репозитории». Итак, пока такая возможность ещё не утрачена, я решил сохранять хотя бы по одной версии дистрибутива Linux плюс дополнительные пакеты к нему. Очевидный вариант – а в настоящее время, вероятно, и единственный – работать с AntiX Linux. Я не особенно переживаю за AntiX, поскольку багов в нём хватает. Кроме того, он работает несколько иначе, нежели другие Debian-подобные дистрибутивы. Вероятно, дело в том, что он использует легковесные среды для рабочего стола, в частности, IceWm. Они довольно старые и никогда не стандартизировались до такой степени, до какой принято доводить более современные окружения. К сожалению, не знаю ни одного другого до сих пор поддерживаемого дистрибутива, который бы нормально работал на компьютерах от двадцати лет и старше. Я пробовал несколько «легковесных» дистрибутивов и убеждался, что они просто кишат багами, и пользоваться ими на компьютерах старше 15 лет решительно невозможно.

❯ Устанавливаем AntiX


Я скачал ISO-образ AntiX-23_386_full.iso современной версии AntiX со страницы загрузки AntiX. Это самая «полная» версия, в которой содержится больше всего приложений для работы на ПК. Это 32-битная версия. Кстати, немного найдётся таких Linux-разработчиков, которые до сих пор предоставляют 32-битные версии своих дистрибутивов. Пожалуйста, не надо мне доказывать, что 32-битную версию любого дистрибутива Linux вполне можно скомпилировать из исходного кода. Я не раз безуспешно пытался скомпилировать таким образом хотя бы единичное приложение, поэтому на собственном опыте знаю, насколько маловероятно преуспеть с таким подходом.

Попытался установить AntiX из скачанного ISO-файла на мой компьютер fDell Precision M20, 2004 года выпуска. Эта машина может похвастаться ЦП Pentium M (Centrino) с частотой 1,86 ГГц и 2 ГБ ОЗУ (это для неё максимум). Этот компьютер я купил в 2019 году на барахолке за 20 долларов. Даже если вы совсем новичок в Linux, вам не составит труда установить AntiX, так как установщик в нём включён. К сожалению, я неоднократно и безуспешно пытался поставить его на «жёсткий диск» Precision M20 (за громким названием скрывается карта памяти microSD с адаптером IDE-to-microSD). Всякий раз казалось, будто установка прошла успешно. Я даже проверял систему при помощи Gparted, убеждаясь, что раздел диска действительно создан, с него можно загрузиться, и в него записываются данные. Потом перезагружаюсь – и никакого раздела нет! Короче говоря, мне не удавалось установить на этот компьютер ни одну из версий AntiX, ни 19.4, ни 23, ни через установщик с GUI, ни через командную строку. Теряюсь в догадках, но, возможно, что-то не так с самой microSD-картой или адаптером, поэтому установка и не выходит. Ранее я уже поднимал проблему некачественных установщиков Linux, поэтому здесь не стану снова в неё углубляться.

Поскольку мои первые попытки установить AntiX на Precision M20 успехом не увенчались, я решил повторить попытку на ноутбуке с обычным твердотельным жёстким диском SATA. Для начала установил компактный твердотельный диск SATA в мой ноутбук Lenovo Thinkpad T500, модель 2008 года, воспользовался при этом утилитой для установки AntiX через командную строку. AntiX установился! К сожалению, по-видимому, мне не удалось бы таким способом установить сверх одного-двух дополнительных пакетов при помощи команды «apt-get install» (уверен, что сначала я выполнил «sudo apt-get update»). В AntiX на этой машине проявлялись и другие неприятные баги, поэтому я подумал, что лучше воспользуюсь другим дистрибутивом Linux.

Несмотря на все эти неудачи, я не отступал. Попытался установить AntiX 23 на ноутбук Dell Inspiron 5100, модель 2002 года, с жёстким диском IDE на 40 ГБ и с 256 МБ ОЗУ. Это самый старый из имеющихся у меня действующих компьютеров. Установщик потребовал, чтобы я выделил ему весь жёсткий диск, но AntiX всё-таки встал. Затем, чтобы сэкономить место, я ужал сегмент с AntiX до 14 ГБ. Для этого я воспользовался Gparted на загрузочной флешке с AntiX, так как Gparted не может ужать сегмент, используемый в настоящий момент. Держал в уме, что нужно сделать перманентную резервную копию этого сегмента и потом попробовать устанавливать её на другие старые компьютеры. Непосредственно после установки дистрибутив занимал около 5 ГБ дискового пространства. Я обновил получившуюся конфигурацию при помощи «sudo apt-get update», а потом приступил к установке дополнительных пакетов.

❯ Добавляем пакеты Linux в AntiX


Как решить, какие именно пакеты Linux устанавливать? Если у вас есть рассчитанные на работу под Linux копии приложений, не содержащие зависимостей, то, теоретически, их можно установить в любой момент (хотя, чтобы максимально перестраховаться, можете поставить их сразу же). Важно установить именно те пакеты Linux, у которых есть по несколько зависимостей, ведущих в репозитории. В данном случае у вас возникает такая дилемма: требуется установить те приложения, которые могут вам понадобиться не только в ближайшем будущем, но, вероятно, и через 10, и через 20 лет. Конечно, непросто сходу определить, что это за приложения. Но можете попробовать установить по одному-два приложения всех основных типов: браузер, читалка для электронных книг, агрегатор новостных лент, офисный пакет, утилиты, т.д.

В качестве первой попытки я установил при помощи «sudo apt-get install» следующие дополнительные пакеты себе на Inspiron 5100:

  • nmap

  • ftp

  • tcpdump

  • iotop

  • nethogs

  • cowsay

  • fortune

  • macchanger

  • bleachbit

  • lynx

  • liferea

  • gedit

  • thermald

  • goldendict

  • mplayer

  • smplayer

  • aspell

  • fbi

  • w3m

  • seamonkey

Установив вышеперечисленные пакеты, я убедился, что все они сохранены на жёстком диске в каталоге /var/cache/apt/archives в формате ".deb". Кроме того, посмотрел с DVD кино через Smplayer. Шло медленно, но работало. С огромными проблемами установил библиотеки, необходимые для просмотра DVD-фильма в ОС Parrot 4.11 и выше. Очевидно, разработчик Parrot OS считает, что больше никто уже не смотрит фильмы с DVD.

Всякий раз при установке дополнительных пакетов в любой дистрибутив Linux, вы рискуете его дестабилизировать. Я не обнаружил никакой явной рассогласованности в работе того AntiX, который сам и установил, но, чтобы с уверенностью полагать, что всё прошло нормально, дистрибутив нужно тестировать неделю или более. Чтобы сохранить эту вполне работоспособную конфигурацию AntiX, я сделал резервную копию 14-гигабайтного сегмента и сохранил её на внешнем диске.

Затем я попытался установить следующие приложения, входящие в оборудованный графическим интерфейсом установщик пакетов для AntiX:

  • pulseaudio

  • Audacious

  • GIMP Basic

  • ImageMagick

  • Handbrake

  • Adobe Reader

  • xfce4-screenshot

  • VLC

Adobe Reader не установился, предположительно, потому, что для него не выполнялись две зависимости, которые мне не удалось подтянуть. Audacious не заработал. Когда я попытался проиграть в Smplayer и VLC фильм с DVD и MP4-файл, ни в одном из четырёх вариантов не было звука, в обеих программах ролики шли очень медленно, а в конце концов зависали. Позже мне удалось заставить VLC зазвучать, но всё равно ни одно из двух этих приложений не стало работать хотя бы так же гладко, как работал Smplayer до установки последнего набора программ. Я даже пытался нарастить ОЗУ на 750 МБ, но это проблем не решило. Я решил перенести резервную 14-гигабайтную копию AntiX на Inspiron 5100, вернувшись таким образом на более работоспособную машину. Пока мне кажется, что чем меньше приложений установлено, тем стабильнее работает вся система, а мне было бы предпочтительнее рассчитывать на уверенное воспроизведение видео, пусть и ценой отказа от некоторых приложений.

Есть два способа перенести файлы ".deb" в каталог /var/cache/apt/archives на другой компьютер, где установлен новый экземпляр AntiX. Первым делом нужно сделать резервные копии всех файлов ".deb", дополнительно к ISO-образу системы AntiX. Затем можно попытаться установить ISO на новый компьютер, скопировав файлы ".deb" в каталог /var/cache/apt/archives на новом компьютере, а затем установив их при помощи «apt-get install». Второй вариант – просто создать файл ".img" и записать в него весь сегмент с AntiX плюс дополнительные пакеты, а затем всё это скопировать на новый компьютер.

Как только я пошёл по первому пути, нарисовалась очевидная проблема. По какой-то причине «apt-get install» не понимала, какие ".deb"-файлы из каталога /var/cache/apt/archives от каких зависят. Не знала, в каком порядке их нужно устанавливать, если только они не лежат в репозитории. Подозреваю, что команда «gdebi -i» может устанавливать отдельно взятые пакеты с зависимостями, а команда «dpkg --unpack» – устанавливать пакеты безотносительно их зависимостей. Но у меня ни с одной ничего не получилось. Путь, на первый взгляд показавшийся простым как с точки зрения установки, так и относительно хранения дополнительных пакетов, не входящих в ISO-образ AntiX, на практике вышел более тернистым.

Таким образом, немного потрепав себе нервы за исследованием первого подхода, я осознал, что не представляю, как методично устанавливать файлы ".deb" в каталог /var/cache/apt/archives. Поэтому решил попробовать второй подход.

Второй подход выглядел так:

  1. Установить AntiX в небольшой сегмент на жёстком диске компьютера (напомню, после установки этот сегмент можно ужать при помощи Gparted);

  2. При помощи «sudo apt-get install» установить любые дополнительные пакеты на мой вкус;

  3. Сделать файл-образ небольшого сегмента (допустим, 14 ГБ) и вынести его на флешку командой «sudo dd if=/dev/sda of=/media/user/usb/AntiX_installed_with_extra_packages.img bs=1M count=14812 conv=notrunc, noerror» (обратите внимание: здесь используется /dev/sda, а не /dev/sda1);

  4. Запустить другой компьютер с загрузочной флешки с Linux, а уже в него вставить флешку, на которой содержится копия только что изготовленного мною образа AntiX;

  5. Скопировать образ AntiX на жёсткий диск нового компьютера при помощи «sudo dd if=/media/user/usb/AntiX_installed_with_extra_packages.img of=/dev/sda bs=1M conv=notrunc,noerror», и, наконец;

  6. Молиться, чтобы конфигурационный файл grub заработал на новом компьютере.

На этапе 3 я воспользовался «count=14812», чтобы скопировать первые 14,5 ГБ с жёсткого диска. Это я сделал лишь чтобы удостовериться, что у меня будет скопирована и главная загрузочная запись, на случай, если её не окажется в сегменте sda1. Если конфигурационный файл grub не заработает на новом компьютере, то придётся поразмыслить, как изменить его, чтобы загрузка прошла. Обратите внимание: я скопировал на новый компьютер лишь 14-гигабайтный сегмент sda1, но в какой-то момент его загрузочная последовательность оборвалась, поэтому и потребовалось указать «count=14812».

Именно вторым способом мне удалось перенести установленный AntiX с компьютера Dell Inspiron 5100 на модели Emachines KAV60 и Compaq Presario V5000. Оба раза всё получилось, даже не пришлось вносить изменений в файл grub.cfg. После того, какую огромную фрустрацию доставил мне первый способ, успех в данном случае практически сподобил меня простить разработчиков Linux и AntiX в частности, хотя, согласитесь, они сделали очень хрупкую операционную систему. Как говорится, осадочек остался.

Если кому-то из вас придётся работать со старым дистрибутивом, обязательно учитывайте эти риски. Конечно же, может быть опасно бороздить Интернет на таком старом софте. Может быть, воспользуйтесь Gemini или другой оверлейной сетью, которая пока не кишит подозрительными личностями (интересно, а существуют ли ещё такие сети?). Может быть, отключите JavaScript в браузере, и такой защиты будет достаточно? Ещё лучше было бы выделить старый компьютер строго для путешествий по Интернету, а на другом компьютере хранить исключительно личные данные. Также работает подход с использованием нескольких загрузочных USB-флешек на одном старом компьютере. Любая старая версия любого дистрибутива Linux отлично подойдёт для оффлайновой работы. В самом деле, а есть ли более удобные варианты для старого компьютера, на котором современный дистрибутив Linux? Может быть, Windows? Нет, я не враг моим старым компьютерам!

❯ Заключение

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


Спасти Linux Linux, Железо, Timeweb, Перевод, Windows, Компьютер, Познавательно, Длиннопост, YouTube (ссылка)

Показать полностью 2

Как проклятие невидимой стены ждало меня 20 лет

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Когда на меня накатывает хандра, я бросаю всё и пилю свой игровой движок. Это неблагодарное занятие, но меня прёт.

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

И вот я тут спустя 5 лет.

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

Это не моё видео, но оно очень точно передаёт, как у меня происходит разработка:

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

Ну и вот про одну такую ошибку я хотел поговорить. Есть такой движок — ODE (Open Dynamics Engine). Он появился где-то в палеолите, динозавры его накодили, от документации остались только царапины на скалах. Но он работает, он простой в использовании, и у него есть сишные заголовки, поэтому я мог просто написать враппер на Nim и использовать его в своём движке. В Nim вообще ни хрена нету, поэтому канонический способ — это взять какую-нибудь библиотеку из Си, научиться её вызывать, а потом говорить всем, что ты написал крутую программу на Nim.

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

Разумеется, если вы не планируете делать Minecraft, то вам может понадобиться что-то поинтересней, чем кубик. В ODE есть специальный класс Trimesh, который как раз позволяет вам сделать сложную геометрию. Фактически, вы можете создать любое тело из набора треугольников. Типа такого:

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

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

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Я создал треугольник, он успешно отрисовался на сцене, я начал ходить по миру… и обнаружил, что треугольник не в том месте, где нарисован, а где-то непонятно где.

Так и появилась эта дурацкая невидимая стена.

Фактически, я мог ходить по сцене, и где-то я упирался в тот самый треугольник, который вообще-то должен был быть там, где нарисован. Я в принципе даже что-то такое и ожидал, потому что, как я уже где-то писал, только три раза в своей жизни я написал код, который заработал с первого раза. Наверняка я где-то перепутал координату — вместо X передал Y, или наоборот, ну что-нибудь такое. Эти программисты, вы знаете!

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

И тут я вспомнил эту недалёкую женщину из заЩИТников! Если кто не знает, она сделалась невидимой и решила спрятаться в дожде. Отличный план, надёжный, как швейцарские часы:

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Я подумал, что это прям мой случай, и решил полить свою стену дождём, чтобы увидеть её. Дождя у меня не было, зато были кубики, поэтому я создал штук 50 и стал кидать их вниз. При касании стены они к ней прилипали, и я мог видеть её очертания. А когда что-то видишь — отлаживать в разы легче!

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

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

Если нужно где-то найти таких же неудачников, как я, то самое лучшее место для этого — интернет. И я нашёл его — единственного человека, который отстрадал своё и рассказал об этом. Представляете, в 2006 году у какого-то чувака из Германии пятая точка горела точно так же, как у меня сейчас! Не знаю, что он выкурил (похоже, что исходники), но, ОКАЗЫВЕТСЯ, физический движок ожидает от вас трёхмерные точки, но передавать их надо как четырёхмерный вектор, просто в четвертой координате надо поставить мусор, типа так: [x1, y1, z1, 0, x2, y2, z2, 0, ...]. Скажите, как по const dReal* Vertices я должен понять, что там ждут в гости четырёхмерные вершины?

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост


За что я люблю опенсорс — можно всегда докопаться до истоков всего. Я полез в исходники, и вот что обнаружил.

В 2003 году пришёл Russel Smith и добавил всю эту функциональность с trimesh collisions, в том числе интересующую меня строчку:

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Тут всё понятно, потому что в определении чётко говорится, что dVector3 — это четырёхмерный вектор (есть некий шарм в этой логике).

А потом через пару месяцев врывается Erwin Coumans и переписывает так, чтобы тип был непонятен:

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост
Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

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

Я переписываю код с добавлением четвертой координаты, и все начинает работать.

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Такие дела.

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

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


Не только лишь все могут смотреть в будущее, но вы сможете, если подпишетесь на мой уютненький канал Блог Погромиста.

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

Показать полностью 9 1

Байки погромиста. Если кто-то скажет, что программирование — это скучно

Автор: kesn

Оригинальный материал

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Детектив kesn всегда готов помочь!

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

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

❯ Функция не выполняется

Попросил меня как-то клиент отладить его скрипт. Говорит, не работает. Невероятно!

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Я, когда клиент говорит, что ничего не работает

Скрипт секретный — ну как, для трейдинга на бирже, и принесёт миллионы денег, конечно же, но только когда заработает без ошибок. Поэтому клиент не пересылает мне его, а запускает screen share и делает, что я ему говорю. То ещё удовольствие, но хозяин-барин — оплата почасовая.

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

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

Осложнялось всё тем, что отлаживать через клиента — ну такое. Он может запустить скрипт, но вот отладчик для него - страшное слово, и максимум, на что можно рассчитывать — это поставить print() в нужных местах. Разгадка оказалась проста: где-то в середине функции, там, где это было менее всего заметно, вместо return клиент написал yield. А в питоне yield — это магическое слово, которое превращает функцию в генератор, а все return ... - в как бы raise StopIteration(...), и вместо результата возвращается итератор, и выполнение кода останавливается до следующего обращения... Короче говоря, всего-навсего одним ключевым словом клиент полностью раздолбал логику своей программы. Маэстро!

❯ Как ловить эксепшн из генератора

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

Вот, например, кусок кода:

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно
Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Тут у меня есть функция cache.apply(), которая берет quota_chunks, делает с ними какой-то вжух-вжух и возвращает новые quota_chunks. Я нарисовал диаграмму, чтобы изобразить этот процесс в более понятной форме.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

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

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

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

Именно это тут и случилось. Я вызвал этот генератор и проверил, что он отработал без ошибок, но на самом деле генератор отработал совершенно в другом месте — там, где вызывается spy() — и именно там он и упал.

А знаете как я это отловил? В тестах. Поэтому пишите тесты.

❯ Строго по инструкции

Клиенты бывают разные: какие-то умеют немножко в HTML и frontend, а некоторые из наших клиентов умеют в backend. Один из таких клиентов часто сам писал backend логику и давал нам её на проверку, чтобы мы ему исправили баги, а может быть где-то сделали рефакторинг или code review.

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

И вот клиент взял нашу инструкцию и начал следовать тому, что там написано, слово в слово. Надо понимать, что разработчики обычно пытаются понять, что они делают (по крайней мере я на это надеюсь). Соответственно, те, кто читал этот скрипт, понимали, что должно быть сделано, и в случае, если у них, например, вместо pip используется poetry, а вместо apt-get у них pacman (i use arch btw), то они заменяли соответствующие команды.

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

«Изи фикс» — подумал я, созвонился с клиентом объяснил, что нужно делать, и хотел отключаться... когда возникла ещё одна ошибка. Оказывается, в инструкции был косяк, и при выполнении команды шелл делал подстановку, когда видел $SOMETHING — то есть не было экранирования. Мы исправили и это, и буквально через несколько секунд всплыл ещё один косяк. А потом ещё. И ещё.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Где-то через час я сказал клиенту, что пусть он всё бросит и я задеплою всё сам, а потом мы обновим ридми. Было стыдно.

❯ Ответочка

Когда-то я работал на интернет-магазин, и мы заметили, что у нас появляются фейковые заказы каждые утро и вечер. Сначала мы не смекнули, что к чему, но потом поняли фишку: идентификаторы заказа у нас были обычные IDшки из Postgres, поэтому конкурент мог сделать заказ утром (номер заказа 10), сделать заказ вечером (номер заказа 15) и просто вычесть второй номер заказа из первого и получить количество заказов, которые мы получили за день (15 - 10 = 5). Я до сих пор часто нахожу эту ошибку во многих проектах, и примерно могу оценить размер этих проектов.

Эту ошибку легко исправить: достаточно заменить последовательные ID на случайные — например, вместо номера заказа использовать timestamp или UUID.

Но сам факт мониторинга нашего магазина конкурентом меня здорово раззадорил, и я полез к нему на сайт что-нибудь тоже искать.

Мой девиз — «кто ищет тот всегда найдёт» (посмотрите мои статьи про уязвимости на хабре - 1, 2). Так и тут, я искал и обнаружил, что конкурент выкладывает розничные прайсы публично, а вот оптовые — только для зарегистрированных и проверенных партнёров. Сам файл он раздаёт nginx'ом с адреса вроде http://some-site.com/files/розничный_прайс.xls. А если так, то, скорее всего, никакой аутентификации при помощи бэкенда для самого файла нет, а значит, можно попробовать найти оптовый прайс.

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

❯ Скрапинг со скоростью света

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

Программа начала просто летать! Вот как это делают сеньоры! Саенс, бич!

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Слева направо: саенс, бич

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

Поэтому если всё работает слишком хорошо, то, возможно, всё очень плохо.

❯ Бог рефакторинга

Пришел ко мне клиент и говорит: Саня, давай позумимся и посмотрим, что-то вебхук отвалился и ничего не принимает.

Ну я такой про себя «опять клиент что-то сломал, бывает», полез туда смотреть. Глядел-глядел, глаз вообще ни за что не цеплялся. Ошибок в sentry не было. Потом нашёл вот такой код:

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

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

К несчастью, у меня стоит расширение git lens, которое пишет, кто именно написал каждую строчку кода. Я в основном использую это, когда вижу какую-то хрень: если автор кода — чувак из наших, то, скорей всего, это я тупой и что-то не понимаю в задумке автора; в других же случаях это, как правило, обычный плохой код.

И вот я смотрю, а этот код написал... я сам. Вот так я примерно выглядел:

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Самое смешное, что в оригинале клиент написал рабочий код, потом пришёл я всё рефакторить и случайно сломал. Я много раз извинялся перед клиентом. Ух, до сих пор стыдно.

❯ Детектив kesn и тайна ssh

Говорят мне как-то: клиент, с которым мы работали год назад, восстал из мертвых, и теперь ему нужно перенести и обновить проект в AWS. Вон там наш девопс написал какие-то скрипты сто лет назад, возьми их и задеплой.

Я человек простой, мне сказали задеплоить — я и задеплою, хоть на AWS, хоть на тапок.

Запускаю я скрипт, он всё делает, и теперь я хочу зайти на сервер и вручную проверить, что всё работает. И тут всё заверте...

Сначала пробую ssh -i ключ root@ip. Не работает. Потом вспоминаю, что юзер в AWS обычно ec2-user, поэтому пробую ssh -i key ec2-user@ip. Не работает. Может, там авторизация не по ключу? Пробую ssh ec2-user@ip. Не работает. Сделал dig, попробовал подключиться не напрямую, а через load balancer. Согласен, тупая затея.

Пошел в дэшборд AWS смотреть настройки файрволла. Вижу два странных айпишника. Очень странно. Беру первый, проверяю геолокацию по ip. По локации понимаю, что это, кажется, статический ip девопса. Какого хрена? У нас же есть бастион, и все соединения должны проходить через него... Проверяю второй ip из файрволла. О, так это же и есть бастион. Ну отлично, теперь делов-то — добавить всю эту конфигурацию с бастионом в .ssh/config, чтобы в будущем было легко подключиться. Лезу в конфиг, а там уже есть эта конфигурация.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

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

❯ Ошибка платежа

На sentry прилетел отчёт об ошибке, попросили посмотреть. Стал разбираться. Мой код двухгодичной давности.

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

Единственное, что я не учел — что клиент может просто всё забросить, ничего не отменяя. И вот на протяжении года наш сельдерей-разнорабочий (celery worker) запускался, пытался списать у клиента деньги, получал отлуп, жаловался в sentry, и засыпал, чтобы назватра всё повторилось, и так каждый день, без конца и края.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

❯ Лёгким движением руки сэкономить кучу денег

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

  • Чувак хостил видео на aws s3 и раздавал через амазоновский CDN. Выходило $655 в месяц. Потом нашёл BunnyCDN, я перенастроил приложение (заменил где-то 4 строчки минуты за две), и внезапно с новым CDN в месяц стало уходить только $70. Ну не эпично ли за пару строчек кода?

  • Клиент платил сотни долларов за жирный инстанс Elasticsearch на AWS. Почему — я хз. Потом он заподозрил неладное. Мы замерили реальную нагрузку и перенесли Elastic на одну из самых дешёвых машин в digital ocean, за которую клиент теперь платит $24 в месяц. Профит!

  • У клиента было много файлов на s3, платил он тоже много. Потом перенесли всё на b2, там даже делать почти ничего не надо — у них интерфейс совместим с s3. Получили экономию раза в 4.

❯ От судьбы не уйдёшь

У нас есть шаблон для новых проектов на cookiecutter. Он удобен тем, что если мы что-то меняем в шаблоне, то можем легко обновить проекты клиентов при помощи cruft.

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

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

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Прошло много месяцев, и угадайте, кого они наняли, чтобы разрешить все конфликты и залить их ветку в мастер?

Ага, меня.

❯ Детектив kesn и поиски пароля

Настраивал я как-то инстанс elasticsearch. Там была отдельная машина, я на ней с помощью docker разворачивал ElasticSearch. Сначала делал всё в ручном режиме, проверял, потом писал скрипт для автоматизации. Для начала просто запустил сервер без всего, потом начал разбираться с авторизацией.

В эластике есть специальный скрипт — elasticsearch-setup-passwords — он настраивает пароли. Ну я его запустил, он мне выдал списки паролей для apm_system, kibana_system, kibana, logstash_system, beats_system, remote_monitoring_user и, собсна, elastic. И хотя мне показалось, что паролей было слишком мало и вообще-то для приличной поисковой системы их должна быть хотя бы сотня, но пароль для elastic был, я его забил в систему автоматизации и пошёл дальше настраивать. Дальше было SSL — не знаю, почему это не встроено (наверно, потому что если не будет https, то и взламывать elastic будет сложнее, а куда без этого!). Ну я пошёл в гугол и говорю: пацаны, сертификаты для эластика привезли? Когда я заикнулся про letsencrypt, они мне сказали, что у нас тут не загнивающий запад и мы сами сертификаты делаем, свои собственные. Короче, прям на официальной странице лежит огроменный docker-compose.yml, в котором вжух-вжух, сертификаты настраиваются, конфиги генерируются. Я его скопировал, применил, всё заработало, и я добавил это в автоматизацию.

Через несколько дней (когда я ужё наполовину всё забыл) мне вдруг понадобилось всё снести и настроить заново (спасибо, digital ocean, за то, что не умеешь даунскейлить диски!). Я запустил скрипт автоматизации, всё развернулось, и тут я вспомнил, что вроде как пароль генерируется сам и его можно узнать, если запустить elasticsearch-setup-passwords. Ну я полез на машину, чтобы запустить эту команду — а она не работает! Сначала был не тот url инстанса, пришлось узнать, что есть опция --url. Окей, теперь не хочет подключаться, т.к. кастомные сертификаты. Как добавить сертификаты? Прописать их в elasticsearch.yml. Читаю доки и там говорится:

All of these settings can be added to the elasticsearch.yml configuration file, ...

ура! так просто!

... with the exception of the secure settings

ffuuuuuuuuu...

which you add to the Elasticsearch keystore. For more information about creating and updating the Elasticsearch keystore, see Secure settings

Ну я полез читать, что за Elasticsearch keystore и зачем он нужен, и даже прочитал про bootstrap password и keystore passphrase. Мне показалось, что ещё чуть-чуть, и я дойду до чтения про большой взрыв и основы зарождения вселенной, а ведь я просто хотел узнать пароль от эластика!

Тут я бросаю взгяд на docker-compose.yml, и вижу, что там везде мелькает $ELASTIC_PASSWORD, и оказывается всё это время пароль был у меня в настройках и я сам его задавал!

Сказочный... эээ... патруль!

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

❯ Как дропнуть продакшен-базу

Клиенты любят нанимать фрилансеров или брать сотрудников в штаты, чтобы они работали над фичами — потому что нанимать нашу компанию достаточно накладно >:)

Ну и вот как-то клиент нанял стороннего разработчика, чтобы он перенёс систему поиска с эластика на postgres full-text search. Он сделал это именно так, как делал я лет 7 назад. Следите за руками:

  • Огромная ветка с кучей коммитов

  • В коммитах смешались изменения в БД и рефакторинг логики нескольких почти не связанных приложений

  • Миграции не откатывались

  • Тестов не было

  • Бэкапов перед деплоем сделано не было (хотя это одна команда)

  • Не было переключателя «новая система / старая система», то есть старую систему просто вынесли нафиг и заменили новой

  • Не было оговорено временное окно для безопасного деплоя

То есть это прям классическая, железная точка невозврата. Угадайте, что случилось.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

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

Я откатил git revision на сервере на рабочий коммит, а СЕО зашёл в админку Digital Ocean и восстановил снэпшот базы данных, назвав его production-db-backup-Mar-24. Всё запустилось. Из-за использования снэпшота мы потеряли немного новых данных, но ничего критичного.

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

Через много месяцев (да, много историй именно после этого и начинаются) клиент говорит: а чё это за production-backup-Mar-24, давайте её удалим. Как же здорово, что он спросил у нас. Потому что программист клиента на самом деле ничего не починил, а просто свалил в закат, и вся инфра осталась в этом «пофикшенном» состоянии. И база использовалась резервная. Поэтому удалять нужно было сломанную БД с названием production, а рабочей была именно production-backup-Mar-24.

Такие дела.

❯ Детектив kesn и загадочные тормоза

Серьёзно, я уже подумываю написать книгу про похождения детектива kesn'а.

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

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

Потом до меня допёрло.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Чем больше я добавлял отладочной инфы, тем больше был оверхед. То есть я делал программу быстрее, но отладочная инфа делала программу медленнее.

Ха-ха. Я выключил отладочную инфу, и всё залетало. Ну и дурак!

Если вам понравилась эта статья, то посмотрите вот эту, она тоже весёлая: Погромист. Мои самые эпичные провалы за всю карьеру.

Если вам понравился я лично, как умная и образованная гиена, то вот моя тележка: Блог погромиста

Подпишись на наш блог, чтобы не пропустить новые интересные посты!

Показать полностью 14

Сообразим на троих. Троичные компьютеры

Автор: Alkash-kolyadun

Оригинальный материал

Сообразим на троих. Троичные компьютеры IT, Познавательно, Научпоп, Наука, Timeweb, Квантовый компьютер, Длиннопост

В повседневной жизни мы используем десятичную систему счисления. Почему именно её — это вопрос отдельный. В конце концов, существуют системы с основанием 12 (по фалангам пальцев без большого), 5 (пальцы на одной руке), 20, 60 и так далее. В компьютерах всё несколько проще — там (можно даже сказать, «Традиционно») используется двоичная система, как самая лёгкая для воплощения. Есть ток — нету тока. Есть отверстие в перфокарте — нет отверстия. Ноль или единица. Короче говоря, «да» или «нет» — третьего не дано. А что будет, если дать? Об этом и поговорим.

Собственно, существуют две возможности «дать» это самое третье: в виде «0, 1, 2» или в виде «-1, 0, 1». Первая система называется несимметричной, вторая — симметричной. Само по себе введение троичной системы счисления выгодно тем, что экономичность хранения данных для каждого разряда выше, чем для любой другой системы счисления. Связано это с тем, что, как говорится, «God counts by E», и наиболее экономичной является система с основанием, равным числу Эйлера (доказательство ищите на стр. 37), а тройка ближе к Е, чем двойка.
Но это ещё не всё — если несимметричная система является просто «расширением» двоичной, позволяя хранить в одной ячейке больше информации, то у симметричной системы выгод гораздо больше.

Одна из таких выгод — это появление значения «0», то есть «не определено». Как правило, 0 передаёт отсутствие значения, а 1 и -1 (иногда вместо цифр используются «+» и «-») — двоичное «да» и «нет». Чем это может быть выгодно? Вообще, зависит от того, как именно задана работа логики. Например, двоичный компьютер столкнувшись с парадоксальным запросом в духе «Второе утверждение истинно — первое утверждение ложно» впадёт в ступор. Троичный компьютер в ответ может просто выдать 0 — он не ответит, но избежит ответа. Или 1 — если работает на «логике парадокса». Ну, и помимо этого многие вопросы можно подвергнуть улучшению — например, не «наличие/отсутствие», а «недостаток/норма/избыток».

Сообразим на троих. Троичные компьютеры IT, Познавательно, Научпоп, Наука, Timeweb, Квантовый компьютер, Длиннопост


— Какой ужасный сон! Повсюду были нули и единицы. И мне показалось, что я увидел двойку!
— Бендер, это просто сон. Двоек не существует.


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

Из предыдущих двух пунктов выходит третий — увеличенная скорость вычислений при пониженном объёме занимаемой памяти. В двоичной системе нужно два разряда, чтобы показать знак числа, а вот в троичной системе нужен только один разряд (собственно, само число). Далее — сложение, самая часто выполняемая операция, которую сильно тормозят переносы из разряда в разряд — в случае двоичной системы они происходят в 50 % случаев, а в троичной (симметричной) системе — в 8 случаях из 27, т. е., примерно в 29,6% случаев. Большая скорость и меньшее количество элементов повышают быстродействие троичной машины примерно в 1,6 раза, и, соответственно, уменьшают энергопотребление.

Сообразим на троих. Троичные компьютеры IT, Познавательно, Научпоп, Наука, Timeweb, Квантовый компьютер, Длиннопост

Ну, или как-то так

Казалось бы, почему такое инженерное «wunderwaffe» не применяется повсеместно? На то есть несколько причин. Самая основная — их особенно-то никто и не разрабатывал. Самым известным примером троичного компьютера является советская «Сетунь» 50-х годов разработки. Уникальна она даже не потому, что является первой троичной ЭВМ (но не первой троичной вычислительной машиной), а потому, что сотрудники лаборатории ЭВМ МГУ собирали её буквально на коленке и из подручных материалов, потому что:

…мы должны были для МГУ получить машину М-2, которую сделали в лаборатории Брука. Но получилась неувязочка. На выборах академиков Сергей Львович Соболев — наш руководитель — проголосовал не за Брука, а за Лебедева. Брук обиделся и машину не дал.

Троичная счётная машина Фаулера — первый троичный калькулятор:

Сообразим на троих. Троичные компьютеры IT, Познавательно, Научпоп, Наука, Timeweb, Квантовый компьютер, Длиннопост

Помимо обычной «Сетуни» была также разработана «Сетунь-70» — принципиально новая машина со стеками команд и операндов (разработана, что характерно, к 100-летию со дня рождения Ленина). Ни оригинальная, ни 70-я «Сетуни» в большую серию не пошли — оригинал по не до конца понятным причинам весьма прозаично «задушили», а 70-я была единичным экземпляром. А помимо «Сетуни»… не было ничего. Американцы одно время экспериментировали с троичной логикой, и даже добились некоторого прогресса, но до строительства полноценных ЭВМ дело не дошло (максимум — эмулятор троичной логики «Ternac» для двоичной машины, который был написан на FORTRAN'е). В Канаде в 80-х был разработан чип ROM на основе несимметричной троичной логики (похожий чип можно и создать самостоятельно). В 90-х был разработан троичный язык программирования TriINTERCAL — опять же, на основе несимметричной троичной логики. Какие-то разработки ведутся до сих пор, хотя и не являются приоритетными. Другими словами, для их повсеместного применения просто нет ни опыта, ни материальной базы.

Сообразим на троих. Троичные компьютеры IT, Познавательно, Научпоп, Наука, Timeweb, Квантовый компьютер, Длиннопост

Собственно, «Сетунь». Достаточно компактна по сравнению с конкурентами

Из этого идёт вторая проблема — мы просто-напросто привыкли к двоичным компьютерам. Изначально они были гораздо более простым решением (сделать детектор «есть ток — нет тока» было гораздо легче, чем «ток ниже — ток номинальный — ток выше» — а ведь силу тока надо было точно контролировать…). Со временем их стало так много, и они стали так хорошо изучены, что нужды в каких-то более продвинутых системах пока (!) не возникает. Тем более, что все существующие на данный момент компьютерные программы заточены именно на бинарную логику. Если вводить троичные компьютеры в использование, то под них либо нужно писать свои собственные программы (что дорого и долго), либо делать их совместимыми с двоичными — а это не всегда возможно, и, возможно, даже сложнее.

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

Непонятно только, когда и в какую сторону это поле начинать переходить.

Подпишись на наш блог, чтобы не пропустить новые интересные посты!

Показать полностью 5

Как развлекался Линус Торвальдс, каково на вкус виртуальное пиво и причем здесь sisu

Автор: CyberPaul

Оригинальный материал

Как развлекался Линус Торвальдс, каково на вкус виртуальное пиво и причем здесь sisu IT, Познавательно, Timeweb, Linux, Длиннопост, Интернет, Ibm PC, Doom, Косынка, Игры, Windows


Сегодня исполняется 53 года человеку, имя которого знакомо каждому айтишнику. Наверное, в заслугу Линуса Бенедикта Торвальдса можно записать не только создание ядра Linux, но и то обстоятельство, что, несмотря на публичность и широкую известность, он сумел не «забронзоветь» и не превратился в живую икону.

Мы уже пересказывали краткую историю появления Linux, изложенную институтским приятелем и соратником Торвальдса Ларсом Вирзениусом. Основные факты биографии автора ядра Linux хорошо известны — родился в столице Финляндии, городе Хельсинки, в семье журналистов. В возрасте восемнадцати лет поступил в Хельсинкский университет, который окончил в 1996 году со степенью магистра в области кибернетики. В 1991-м, еще будучи студентом, начал разработку собственной операционной системы, которая «выросла» из простого терминала — его Торвальдс писал, чтобы подключаться к университетской машине для чтения новостей USENET. В общем, все это не является секретом и растиражировано множеством различных источников. А подробности частной жизни Торвальдса известны только его близким друзьям.

27 апреля 1998 года Ларс Вирзениус выступил с докладом на конференции Linux Expo, где поделился воспоминаниями о годах совместной учебы с Линусом в университете Хельсинки и работы над ядром Linux. Некоторые отрывки из этих воспоминаний настолько любопытны, что вполне заслуживают отдельного поста. А день рождения Торвальдса — на мой взгляд, отличный повод поделиться ими с читателями Хабра.

Как развлекался Линус Торвальдс, каково на вкус виртуальное пиво и причем здесь sisu IT, Познавательно, Timeweb, Linux, Длиннопост, Интернет, Ibm PC, Doom, Косынка, Игры, Windows

Ларс Вирзениус

«Я стал другом Линуса еще до того, как появился Linux», — рассказывал на конференции Ларс Вирзениус, — «мы познакомились на первом курсе в 1988 году. Когда он начал писать Linux, я, естественно, с интересом и некоторой ревностью следил за происходящим. Вы все знаете Линуса, по крайней мере, вам хорошо известна его репутация. Чудо-ребенок. Мастер программирования. Хакерский бог. Ну, так было не всегда. То, что я собираюсь рассказать дальше, может шокировать самых преданных линуксоидов в этой аудитории, но ничего страшного. Это свободная страна, и в любом случае мне пообещали защиту полиции».

Этими словами Ларс начал свое выступление — и, судя по реакции притихшего зала, продолжения истории все ждали с нетерпением. По словам Вирзениуса, незадолго до того, как Торвальдс начал работу над своим судьбоносным проектом, он знал далеко не все о языке С, и почти ничего — об архитектуре IBM PC. До «трешки» у Линуса был Sinclair QL, однако, по словам Ларса, «как и все британские компьютеры, эта машина была по-своему гениальна, но в то же время непригодна для чего-то по-настоящему серьезного». Линус написал несколько собственных инструментов для разработки софта на этой машине, как минимум, редактор ассемблерного кода. Он также немного модифицировал оборудование QL, заменив сломанную клавиатуру и добавив дисковод для гибких дисков. Когда он купил 386-й компьютер, то первым делом написал драйвер для файловой системы своего QL, чтобы переместить данные на дискетах с «синклера» на PC.

Первые несколько месяцев после покупки IBM-совместимой персоналки Линус посвятил игре Prince of Persia. «Этого я понять не мог», — говорил Вирзениус, — «я имею в виду, что мне до сих пор неясно, зачем вообще нужны компьютерные игры, если это не пасьянс Косынка? Даже несколько лет спустя, когда Linux уже имел успех, у Линуса не прошло странное увлечение такими играми, как Doom и Quake. Он мог гонять монстров часами. Правда, к тому времени он уже овладел некоторыми социальными навыками и знал, что после 12 лет не стоит вслух признаваться в любви к компьютерным играм. Поэтому, когда его спрашивали, чем он занят, Линус обычно отвечал, что занимается отладкой и стресс-тестированием управления памятью в X-сервере, гоняя на своем компе в Doom».

Как развлекался Линус Торвальдс, каково на вкус виртуальное пиво и причем здесь sisu IT, Познавательно, Timeweb, Linux, Длиннопост, Интернет, Ibm PC, Doom, Косынка, Игры, Windows


Одно из важнейших свойств характера Торвальдса, которое подметил Вирзениус — это способность впитывать новые знания буквально на ходу и быстро принимать решения. «Когда Линус решает чему-то научиться, он действительно учится этому, и довольно быстро», — рассказывал Ларс. — «Я помню, как в универе нас однажды спросили о каком-то домашнем задании по математике. Я случайно узнал, что Линус забил на домашку и не сделал ее. Но из свойственного ему упрямства в ответ на вопрос преподавателя он все равно заявил, что сделал эту злосчастную работу. Как назло, преподаватель пожелал, чтобы Линус представил свое решение всей группе. По пути к доске тот прочитал задачу, затем постоял перед доской секунду или две, и написал верное решение. В общем, Торвальдс может быть довольно раздражающим».

Еще одна черта его характера — весьма своеобразное чувство юмора. Вот что об этом рассказывал Вирзениус: «однажды мы вместе с Торвальдсом отправились за границу на какую-то конференцию. Когда я отвлекся, Линус изменил настройки командной оболочки на моей машине таким образом, что, когда я входил в систему, это выглядело так, как будто я использую MS-DOS. Получилось очень весело и забавно, но эта шутка требовала мести.

Когда Линус вышел выпить чего-нибудь покрепче, я создал на его машине псевдоним для startx. Мой alias сначала запускал настоящий startx, а затем выводил сообщение о краше ядра Linux. В первый раз, когда Линус заметил это, он немного забеспокоился, однако сразу вышел из системы и экран очистился слишком быстро, чтобы он успел вдумчиво прочитать сообщение. После второго раза он забеспокоился уже всерьез. На самом деле, я выводил сообщение, которое совершенно не подходило для текущей версии ядра. Он дошел до того, что после третьей перезагрузки все-таки прочитал текст на экране и пробормотал что-то вроде: «Почему оно падает? Оно не может так падать!». Тогда я расхохотался и рассказал ему о своей выходке. Линус почувствовал явное облегчение, но с этого момента больше никогда не шутил со мной».

Как развлекался Линус Торвальдс, каково на вкус виртуальное пиво и причем здесь sisu IT, Познавательно, Timeweb, Linux, Длиннопост, Интернет, Ibm PC, Doom, Косынка, Игры, Windows



Когда речь заходит о том, приносил ли Linux доход своему создателю, Ларс Вирзениус вспоминает историю о виртуальном пиве. «Дела шли своим чередом, и настало время процветания Linux. Успех принес славу, а также материальное вознаграждение, в том числе, денежное. Однако самой первой наградой были не деньги, а виртуальное пиво. Сейчас это расхожее выражение — просто общая фраза, но тогда оно имело вполне конкретный, материальный смысл. Два парня из Оксфорда, Англия, называющие себя Оксфордскими пивными троллями, начали использовать Linux и решили проставиться Линусу пивом. Однако они посчитали нецелесообразным перемещать себя из Оксфорда в Хельсинки, или, наоборот, Линуса в Оксфорд. Поэтому они попросили меня получить деньги по почте, купить на них пива и передать его Линусу. Так что виртуальное пиво – это на самом деле вполне реальные деньги, причем деньги, присланные лично мне.

Линус также получал по почте разные полезные вещицы. Например, пару жестких дисков по 40 мегабайт. Это было очень приятным подарком, который означал, что Линус наконец сможет сохранить несколько резервных копий ядра Linux на всякий случай. Не то, чтобы он этого не делал раньше… В общем, да, не делал. Одна из его известных цитат: «Резервные копии — для слабаков. Настоящие мужчины загружают свои данные на FTP-сервер, и все остальные ребята в интернете копируют их оттуда». В какой-то момент Линус переместил все файлы устройств в /dev и решил снова подключиться к университетскому компьютеру, чтобы отладить свой код эмуляции терминала. Он запустил терминал и велел ему использовать /dev/hda… хотя теперь это должен был быть /dev/ttyS1. Упс! С этого радостного момента главная загрузочная запись на его винчестере начиналась с команды «ATDT» и номера телефона университетского модемного пула. На следующий день он написал код для проверки разрешений в Linux, а подаренные ему жесткие диски наконец-то стали использоваться по назначению».

Как развлекался Линус Торвальдс, каково на вкус виртуальное пиво и причем здесь sisu IT, Познавательно, Timeweb, Linux, Длиннопост, Интернет, Ibm PC, Doom, Косынка, Игры, Windows


Кстати, насчет пива. Нельзя сказать, что этот напиток был у Линуса самым любимым, но он им никогда не пренебрегал. Вирзениус вспоминал: «У одного из студентов, который был на несколько лет старше нас с Линусом, Патрика, имелась сауна в доме, в котором он жил. Он заказывал ее раз в неделю для нашей группы. Вы, извращенцы, которые думаете, что слово «сауна» является синонимом публичного дома, можете перестать воображать оргии: в Финляндии сауны предназначены для купания, лечения, даже медитации, а не для секса. Есть известная фотография Линуса, выглядящего голым и пьющего пиво. Фотография была сделана у Патрика однокурсницей Стиной, а Линус был на самом деле в брюках. Но тогда стоял жаркий летний день, поэтому на нем не было рубашки. Никаких оргий!»

Когда Ларса Вирзениуса спросили, чему он научился за время дружбы с Линусом Торвальдсом, тот ответил: «Самое главное, что я вынес из нашего общения – что буквально каждый человек может изменить ситуацию. Большое, важное достижение состоит из очень длинной серии маленьких шагов. У нас в финском языке есть специальное слово «sisu», оно означает решимость, целеустремленность, твердость духа, храбрость, стойкость. Сами финны считают его выражением своего национального характера. Вот это словечко очень помогает, если вы умны и знаете, что делаете. Помните того 20-летнего парня, который порой нес всякую чепуху в пьяном виде, а также позировал полуголым для фотографий с пивом в сауне? Он не то, чтобы был умнее всех остальных, просто решил не пасовать перед сложностями. Sisu помогает быть глупым и невежественным в правильном смысле, то есть, думать: «эй, я могу это сделать» вместо «это должно быть очень трудно или невозможно сделать».

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

Подпишись на наш блог, чтобы не пропустить новые интересные посты!

Показать полностью 5

Все о доменах-иероглифах

Все о доменах-иероглифах Китай, Домен, Научпоп, Исследования, Познавательно, Длиннопост, Google

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

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

Отметим, что домены-иероглифы активно тестируются международной организацией ICANN. Это корпорация, отвечающая за глобальное распределение адресов внутри телекоммуникационной сети.

Главные факты

Корпорация ICANN была основана 18 сентября 1998 года. Ее специализация направлена на регулирование вопросов, которые непосредственно касаются доменных имен, IР-адресов и технических аспектов деятельности.

Поэтому, в целях посещения web-сайтов, созданных и зарегистрированных на китайском языке, стране необходимо подать заявку в ICANN. Если компания ее одобрит, то это сможет весомо сократить существующий разрыв среди сельских и городских территорий. Доменные имена на разных языках мира, такие как корейский, арабский и другие, компания выдавать уже начала.

Доменные аукционы

Важное место в глобальной сети занимают доменные аукционы. Китай на своем первом аукционе выставил несколько подобных имен. Одними из них являются: www.duomeizi.com, www.maxiaotiao.com, и т.п. Их цена на старте находится в диапазоне от $25 до $3750.

Доменным аукционам предвещают великое будущее, в том числе и Китайская Республика. Многоязычный домен-иероглиф стоит намного дороже, так как он более удобен и прост в использовании. Среди компаний Китая такие домены имеют особый спрос.

На основе проведенных опросов, CNNIC сделала вывод, что такого рода аукционы будут играть большую роль в вопросах китайского бизнеса. Отметим, что с ноября 2000 года регистрацией доменов-иероглифов занимается компания VeriSign Inc.

Основные правила

Существует несколько целей регистрации доменных имен в виде иероглифов на территории Китая. Главными из них являются:

— успешное ведение бизнеса;

— благотворительность.

При создании доменов 1-го уровня на “cn” существуют некоторые правила, а именно:

— количество символов не может быть меньше 3-х и больше 63-х;

— начинаться он должен с буквы или цифры и также заканчиваться;

— при создании доменного имени можно использовать в комбинации латинские буквы, символы, цифры, “тире” и пр.;

— нельзя употреблять “тире” в начале и в конце имени, а также в третьей и четвертой позициях;

не использовать в имени пробел.

Относительно доменов 2-го уровня отметим, что в их наименовании допускается содержание цифр, иероглифов, латиницы и знака “дефис”.

Те имена, которые не прошли регистрацию, включаются в базу данных китайских DNS-серверов. Соответственно, вход в систему управления сайта возможен вручную.

Домены-иероглифы в своем существовании можно разделить на два вида пользования:

— Административное.

— Общее.

Домены общего пользования включают в себя:

— академические и образовательные учреждения;

— финансовые и коммерческие организации;

— государственное, сетевые и общественные объекты.

Отметим, что согласно статистическим данным общее количество доменов-иероглифов составляет свыше 13,3 млн.

Регистрация домена

Чтобы зарегистрировать домен, необходимо обратиться в корпорацию ICANN, которая аккредитовывает соответствующий регистратор, либо воспользоваться услугами реселлера.

Последние работают с регистраторами по контракту и помогают в данном деле на коммерческой основе. Своего рода они являются посредниками, но в этом есть свои преимущества. Реселлеры могут предоставить ряд дополнительных услуг (почтовые ящики, хостинг и пр.). Но контроль над присвоением доменных имен и IP-адресов остается за ICANN.


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

— актуализация данных;

— оплата регистрационных взносов и пр.

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

Оригинал

Подпишись, чтобы не пропустить новые интересные посты!

Показать полностью 1

Говорят, если гуманитарий пройдет это головоломку до конца, он может считать себя технарем

А еще получит ачивку в профиль. Рискнете?

ИГРАТЬ

Манифест информационной безопасности

Манифест информационной безопасности Информационная безопасность, Агрегатор, Защита информации, Длиннопост

Когда в какой-либо индустрии происходит технологический скачок, мы быстро к этому привыкаем и уже с удивлением и легким ужасом вспоминаем “как оно было раньше”.

Рынки развиваются в сторону максимального упрощения бизнес-процессов и автоматизации.

Еще буквально 10-15 лет назад рутинные действия, выглядели совсем иначе:

— Заказ еды домой. Необычная задача, найти работающий на доставку ресторан, позвонить им по телефону, продиктовать заказ, обязательно приготовить наличные без сдачи.

— Оплатить коммунальные услуги, придется идти на почту или в банк, а как иначе?

— Открыть в банке счет. Простоять очередь в отделении в рабочие часы, без этого никак!

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

Примеров может быть множество.

IT кардинально меняло правила игры на рынках, двигало и двигает отрасли вперед. Но за этот период, один из самых близких к IT рынков не изменился! Услуги по информационной безопасности — самый консервативный/отсталый рынок связанный с IT.

Как безопасность может поспевать за отраслями, если не меняется сама?

— Причем тут кадровый голод и в нем ли дело?

— Что с этим нужно делать и причем тут такси?

— Это Манифест нового рынка информационной безопасности.

— Если вам важна безопасность, добро пожаловать под кат!


Прошлое

Давайте вспомним рынок такси 10-15 лет назад. Типичный заказ:

1. Звоним по известному нам номеру таксопарка.

2. Ищем ориентир/вывеску с адресом, сообщаем оператору и сообщаем адрес куда нам ехать.

3. Узнаем примерное время подачи машины и стоимость, НО они могут измениться.

4. Какая приедет машина? С детским ли креслом? Комфортная ли? Неизвестно, можно сказать оператору, но не факт что это будет учтено.

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

6. Кто за рулем? Его рейтинг? Ничего подобного не узнаем.

7. Тревожная кнопка? Если что-то идет не так? Отсутствует.

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

9. Финальная цена может сильно удивить. Спор? Никакой техподдержки, только мы и водитель.

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

11. А привезли именно туда, куда просили? Водитель знает куда подъехать, где финальная точка? Дорогу покажешь? Придется объяснять или искать вместе.

12. Перенести пункт назначения? Об этом лучше и не думать!

Вот такая череда неопределенностей и неудобств, я постарался расписать их все. Сейчас же вспоминать это немного дико, правда? Хотя в глухих районах весь этот алгоритм единственный возможный до сих пор.

Манифест информационной безопасности Информационная безопасность, Агрегатор, Защита информации, Длиннопост

Настоящее

А ваша информационная безопасность (ИБ) не такси из прошлого? Рынок услуг по ИБ по всей стране работает точно также в 2022 году! Да на уровне деревни далекого от цивилизации района. Вот смотрите, со стороны Заказчика:

1. Заказчики чаще всего обращаются к “знакомым” компаниям, если собственных контактов нет, то спрашивают у друзей, а те у своих. Выбор из многих? Практически всегда вслепую.

2. Написание ТЗ — отдельная задача для которой нужен специалист. Донести, что именно вам нужно — бывает крайне сложно, ведь чаще всего вы говорите с посредником (аналог оператора в такси), а не с Исполнителем. Правило испорченного телефона работает тут на “ура”, учтут ли ваши пожелания к машине работе?

3. Кто именно будет выполнять вашу работу? Субподрядчик известной фирмы? Или субподрядчик субподрядчика, о котором вам предпочтут не говорить вовсе? Внештатник субсубподрядчика субподрядчика, которого представят сотрудником первой фирмы, или вовсе вы его не увидите? Такие цепочки могут быть очень длинными, я лично встречал аж 5 звеньев — посредников.

4. Опыт работы финального Исполнителя? Будет отлично “смешан” с опытом компаний посредников. Профессиональные сертификаты — аналогично, что именно за квалификация у того, кто делает работы, вы не узнаете.

5. Любые согласования, например, об окончании одного этапа работ и старте следующего занимают кучу времени, ведь идут по всей цепочке.

6. А, если недовольны качеством работы, с кого спросить? Каждый посредник будет максимально защищать “своего” Исполнителя в цепочке. Расскажет о своем опыте выполнения схожих контрактов, умолчав о другой команде Исполнителей. И закончит общими словами про “лучшие рыночные практики” и что по ТЗ формально выполнено все.

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

8. Стоимость? Почему она значительно отличается у подрядчиков, если в результате услугу делает один и тот же специалист? А тут плата по счетчику за путь, а не за результат. Да и тарифы у всех разные.

С точки зрения Исполнителя — ситуация не менее неопределенная.

1. Что нужно Заказчику, порой понять бывает сложно. ТЗ же написано на свой лад кем-то из посредников. Связаться напрямую — не всегда возможно.

2. А заказ точно легальный? Имеет ли фирма “А”, с которой у Исполнителя договор, право выполнять эти работы у Заказчика, или дело тут темное? Нужно как-то проверить, ведь всю цепочку договоров, скорее всего, не покажут, по экономическим причинам.

3. Точно ли заплатят оговоренную сумму? А если посредника не устроит результат? Дальше только суд, независимую оценку не получить.

4. Заказчик просит обосновать стоимость проекта и называет какую-то большую сумму?
Сложная задача, если весь проект делает один человек и получит за это гораздо меньше, возможно даже ежемесячную зарплату.

5. Согласовать какие-то потенциально рисковые, но важные проверки? Сделать что-то за рамками работ, но что может быть полезно Заказчику? Это столько согласований по пути, что лучше даже не пытаться.

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

В итоге и Заказчик и Исполнитель получают сервис и неопределенность на уровне заказа такси 10-15 лет назад. О какой эффективной работе индустрии может идти речь?

Манифест информационной безопасности Информационная безопасность, Агрегатор, Защита информации, Длиннопост

Также в доковидные времена в ИБ было очень сложно найти удаленную работу. Почему? Все “так привыкли”, даже на вакансиях, способных весь объем работы выполнять удаленно. Консерватизм, в отличии от остального около IT.

Немалую роль играет то, что преимущественно на руководящих позициях находятся люди с “силовым” прошлым, их менталитет и привычки сопротивляются инновациям. Часто люди из этой среды видят в любых изменениях лишь риски, значительно их завышая.

Будущее

Uber — изменил рынок такси, совершил технологический рывок. Монополизировал его в ряде стран, автоматизировал его, но, к сожалению, снизил планку навыков для водителей. Про индусов-водителей в Нью-Йорке знают все.

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

Рынку нужен технологический рывок, нужны гарантии для всех сторон, прозрачность и сервис уровня Uber Elite.

Нужна доверенная третья сторона — гарант. Площадка-агрегатор услуг, которая сможет создать конкурентный, надежный и прозрачный рынок услуг по информационной безопасности.

Главные задачи Площадки-агрегатора:

— Избавить от цепочек посредников, организовать работу Заказчиков и Исполнителей напрямую под контролем Площадки.

— Предоставить экспертное независимое мнение, решение всех спорных вопросов.

— Гарантировать качество предоставляемых услуг.

— Гарантировать легальность предлагаемых заказов.

— Снизить среднюю стоимость работ для Заказчиков, максимизировать вознаграждение Исполнителю.

— Поднять эффективность коммуникаций, снизить простои.

— Предоставить возможность любому профессионалу в ИБ работать на себя.

Созданный новый рынок услуг по информационной безопасности должен сломать, наконец, порочную схему “делают 1000, а их продают 10 000” (Спасибо за цитату Луке Сафонову @LukaSafonov). Это снизит среднюю стоимость услуг по ИБ, сделает их доступнее для малого бизнеса, а значит, повысит уровень защищенности коммерческого сектора в целом.

Почему это возможно?

Стоимость проекта системного-интегратора или ИБ-компании, как правило, на один порядок превышает размер заработной платы специалиста, непосредственно выполняющего данные работы. И все, что ему для этого нужно, это его мозги, ноутбук и интернет. Иногда очень помогает не дешевое ПО, но и тут вопрос решаемый. Да, существуют проектные расходы в виде документационного сопровождения, налогов и стоимости продаж. Но это не стоит 90% стоимости контракта.

Пример:

Александр — Penetration Tester с хорошим бекграундом, он получает заработную плату в 200 тысяч рублей, и за месяц делает 2-3 проекта в уважаемой компании. Сама же компания продает эти проекты по 1,2-1,5 миллиона для крупных Заказчиков. Стоят ли проектные расходы эту разницу? Захотел бы Александр дополнительно работать на себя и выполнять такие же проекты по более низкой цене, но за 80% стоимости на Площадке-агрегаторе? Мой опрос широкого круга безопасников показал, что все хотели бы.

Стоимость услуг Площадки должна быть минимальна, а значит, и расходы.

— без отдела продаж;

— максимум автоматизации бизнес-процессов.

Утопия? Нет, подобные площадки уже начинают появляться во многих отраслях, например:

— Финуслуги и Банки.ру (финансы).

— Booking и travelata (туризм).

— OZON и Амазон (покупки).

— Авто.ру и Дром.ру (Автомобили).

— Фриланс-платформы (IT, но не ИБ).

— И многое другое.

Лучше, чем такси

Манифест информационной безопасности Информационная безопасность, Агрегатор, Защита информации, Длиннопост

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

Уверен, в России все это есть. Время для изменений пришло, рынок должен начать меняться, иначе стагнация и неизбежное фатальное отставание.

Неизбежно окончание эры хаотичного рынка услуг по ИБ, грядет эра порядка.

Оригинал

Подпишись, чтобы не пропустить новые интересные посты!

Показать полностью 3
Отличная работа, все прочитано!