beldmit: (Программизм)
"Чем заняться в программировании человеку, который не знает математику на уровне начальной школы?" спрашивает коллега.

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

Но да, площадь треугольника или прямоугольника - методически годная задача. И проверять удобно. Как, например, все 100500 тригонометрических уравнений, которые я в школе решал - легко сгенерить, можно проверить, никакого практического смысла.
beldmit: (Программизм)
Я понял, что бы я хотел вот от этого ChatGPT. Это, конечно, нифига не интеллект. Но это — хрень, которая работает без ошибок и не задалбывается от рутины.

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

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

Что мы сделали в Red Hat с протоколом SCP
Моя борьба с турецкой локалью
beldmit: (Программизм)
Некоторое время назад в венгерском поезде подхватил при логине в WiFi их страницу, которая прогружалась при подключении ко всем WiFi с captive portal до того, как показать, собственно, captive portal. Приходилось прокликивать, что раздражало.

В общем, застряла эта дрянь в кеше системного компонента html viewer. Чтобы до него добраться, в моём Xiaomi надо включить показ системных приложений, и дальше чистить кеш штатным способом.

Больше ничего похожего не видел, но подозреваю, что кривые руки или злой умысел неуникальны. Так что вот, может, кому пригодится.
beldmit: (Default)
Вчера вечером в фейсбук запостили картинку тамошнего автоперевода. По версии фейсбука, это был фильм «Три фундука для пепельницы». Я понял, что к нему необходимо срочно придумать сюжет. У меня пока получилось так.

Резчик по дереву с маленького тихоокеанского островка после очередного визита туристов находит в куче мусора скорлупки от неизвестных ему видов ореха. Представив, как этот орех будет смотреться в виде декоративных деталей, он замышляет путешествие туда, где эти орехи растут. Только там он сможет выбрать необходимые несколько экземпляров для украшения заказанного ему подарка — пепельницы.
beldmit: (Программизм)
Каждой атаке положен официальный сайт. Вот, например.

Если использовать уникодные символы управления направлением вывода текста (слева направо интерпретировать кусок текста или справа налево), то можно добиться эффекта, когда человек, который ревьюит pull-request, увидит одно, а компилятор - совсем другое.
beldmit: (Программизм)
Довольно смелое утверждение от технарей, которое я слышал от нескольких разумных людей. Будь у фейсбука второй DNS, внешний по отношению к первому, не было бы покладания.

Хрен. Проблема не в DNS самом по себе. А в том, что второй DNS у компании такого масштаба должен быть полностью подконтрольным Facebook организационно, иначе соблазн для хакеров будет огромный, но автономным от основного. Нет, это не аутсорсится. Проще всего это сделать через два независимых DNS-отдела, да ещё и с независимой инфраструктурой, но кто же это будет делать. Ну и мелочи - держать эти DNS-ы в синхронном состоянии.
beldmit: (Любовь к ближним)
Блог об информационной безопасности уже некоторое время как не веду, но не могу молчать.

Azure устанавливала своего управляющего агента на Linux-машины. Работал агент под рутом. В агенте нашли Remote code execution, причём смешной: удаляешь из управляющего запроса заголовок Auth — и всё, заходи кто хочет, бери что хочешь.

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

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

Когда Нина отправляла вещи из Москвы, свой комп она отправила, а мой — нет. Затрудняюсь сказать, чем и о чём я тогда думал. В итоге комп до меня доехал только примерно неделю назад. Без хвостов и WiFi. Хвост питания и мониторный хвост VGA я купил, потому что Display Port-а у меня на видеокарте нету.

USB Wi-Fi у меня был. Но при втыкании «корова доится, но не даёт молока» — сеть видится, но не соединяется. Вскрытие показало, что на 2.4 ГГц тут жизни нет. На 5 есть.

Купил адаптер D-Link AC600 в ближайшем магазине. У Нины на винде он не завёлся. Он, зараза, совмещён с USB-флешкой с собственным драйвером, которого нет на 10-ке. Драйвер надо поставить, а флешку — отмонтировать. При мигании питания это будет тот ещё квест, поскольку монитор держать при компе не планирую. Под линуксом, разумеется, драйвер потребовал сборки, то есть через этот квест придётся проходить при каждом апгрейде ядра. В общем, надо брать что-то проще и незатейливее.

Финальным аккордом был запуск Thunderbird через X forwarding. Сначала оно потребовало этот X forwarding явно включить. Потом стало мееееедленно показывать главное окно.

Пошёл гуглить. Увидел рекомендацию поиграть с шифрами (нафиг), использовать опцию -Y вместо -X для форвардинга (примерно ноль эмоций) и предложение включить компрессию потока (-С). Про компрессию на stackoverflow обещали, что она всё только затормозит, но внезапно она дала живительный эффект, и Thunderbird стал отображать письма за разумное время.

В общем, осталось купить какой-то более вменяемый WiFi-ный свисток, который не будет требовать umount-а для выполнения основной функции, и золотой ключик у меня в кармане. Снабжать комп индивидуальным монитором смысла, видимо, нет. Советы по тому, какой WiFi-свисток с поддержкой 5 ГГц подключить, приветствуются.
beldmit: (Default)
Уф. Прошёл квест "смени страну в Google Play", потому что без него не ставилось приложение от T-Mobile. А там это, сладкое слово "халява", безлимитный интернет до конца лета (не знаю уж, что там мелкими буквами, но вроде не ужас), но активация только через приложение.

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

В общем, обратиться в поддержку помогло. До почтовой поддержки добраться можно где-то в глубине меню, и оттуда ответил живой человек, и дал сработавший совет: российский платёжный профиль закрыть, аккаунт на устройстве снести и добавить заново. Получилось, но сам бы я до такого не догадался бы (и застремался бы, будем честны).
beldmit: (Программизм)
Конвеевскую «Жизнь» IT-шники нашего поколения знают примерно все. Про Тьюринг-полноту «Жизни» тоже слышали.

Попались несколько красивых ссылок на эту тему, спасибо [livejournal.com profile] maksa за поиски.

Ролик про то, как «Жизнь» смоделировали на «Жизни». В описании видео несколько полезных ссылок.

Описание элементарной ячейки этой вот метамодели

Библиотека, которую для этого моделирования использовали

Логические элементы, построенные на «Жизни»

Тетрис средствами «Жизни»

Вообще безумно прикольно, конечно.
beldmit: (Программизм)
Если кто не заметил, протокол QUIC стандартизован и получил номер RFC 9000. Если его внедрят массово, это даст очень забавный эффект, который мне оценить пока слабо. Он решает проблемы быстродействия и безопасности одновременно, то есть революция будет посильнее, чем TLS 1.3, но TLS 1.3 так и не дорос до 50% сайтов за несколько лет. К сожалению, в OpenSSL QUIC пока не поддерживают (но есть ветка), в Nginx - не знаю. Как к нему прикрутить российскую криптографию, к слову сказать, никто и не думал скорее всего.

Я тем временем посмотрел, как обстоят дела с прочими RFC с тремя нулями на конце. Несколько штук пропущено, 8000 про какой-то конкретный протокол, важность которого оценить не берусь, а ещё несколько - метауровень, определение протоколов Internet в целом. Так что заявка достаточно серьёзная.
beldmit: (Программизм)
Ко вчерашнему посту [personal profile] alexott принёс интересную ссылку с описанием того, что там под капотом. Очень интересно, и какое счастье, что это (пока?) не моя проблема.
beldmit: (Манул)
Нажал на кнопку перевода рекламы в фейсбуке.

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

Если вставить в пост только текст, то получаем следующее:

Kočky to s námi prostě umí, je úplně zbytečné si myslet, že ne. 🐱
Kdo souhlasí, ať se hlásí! 🙋‍♂️
Кошки у нас просто молодцы, совершенно ненужно думать, что нет. 🐱
Кто согласен пожаловаться! 🙋 ♂️

В дриме, кстати, исходный смайлик с человечком показывается как квадратик (то есть нет символа в фонтах) в сочетании с символическим обозначением мужского пола. А в ЖЖ — в исходном виде.
beldmit: (Программизм)
Тут в комментах возник вопрос, чем даркнет отличается от обычного интернета.

Да очень простое различие. Я бы сказал, киберпанковское. Или либертарианское. Или анархистское.

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

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

Уже не в первый раз слышу аргумент "ну ок, выпилили корневой сертификат из браузера - сделаем свой браузер".

Сделаете вы свой браузер. Собирать Мозиллу или Chromium научиться можно, хотя лично я бы этим предпочёл не заниматься, потому что выяснится, что там по 100500 нетривиальных деталей, которые сами разработчики обложили костылями и давно забыли. Но самое интересное тут только начнётся.

Дальше правительству Нагонии и Гориваса придётся обеспечить установку этого добра на все компы и смартфоны. Да, и на тот телефон с Android 6.0 от давно покойной фирмы "Noname Inc" с уставным капиталом 10 юаней. И много куда ещё. Иначе 30% пользователей без любимого YouTube на вас тупо обидятся, даже если они сознательные граждане. В общем, придётся искать баланс между геморроем в разработке и поддержке и долей обиженных пользователей.

При этом Apple, Google и Microsoft вам способствовать в установке этого поделия не будут, а скорее наоборот.

Короче, лояльное население обидится, нелояльное будет сидеть через Tor, ну и сколько-то денег уйдёт. С другой стороны - может, тех денег на что-то более вредное не хватит...
beldmit: (Манул)
Я за компом непрерывно примерно с 1994 года. В 1995 обзавёлся модемом, приобщившись к ФИДО. Потом был интернет через диалап, потом ADSL, сотовые телефоны, GPRS, WiFi, далее везде.

Начиная с 1999 всегда были какие-то моно- или олигополисты на рынке коммуникаций. Они менялись, но суть оставалась прежней. В ICQ, Skype, Telegram, WhatsApp, Viber всё время были "примерно все".

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

То же самое с социальными сетями. Был ЖЖ - и попытка сделать тифаретник оказалась маргинальной. Мой любимый Dreamwidth ценится мной за экспорт в ЖЖ не в последнюю очередь. Успех FB и ВК несмотря на все риски превосходит все распределённые блоги с тысячекратными запасами.

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

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

Profile

beldmit: (Default)
Dmitry Belyavskiy

May 2025

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 14th, 2025 05:56 pm
Powered by Dreamwidth Studios