beldmit: (Манул)
Проект о разрешении блокировки сайтов, если они сопротивляются блокировке.

Когда-то давно все адреса сайтов и страниц в интернете передавались открытым текстом. Когда в России вводили блокировки сайтов, предполагалась фильтрация по URL.

Через год после внедрения произошли разоблачения имени Сноудена, и мир быстро завернулся в HTTPS. Теперь URL уже стал недоступен и пришло время блокировки по hostname — благо оно шло открытым текстом для установления соединения, в запросе и в ответном сертификате.

Публичная доступность доменного имени тоже в некотором смысле подставляет клиента и во всех смыслах выдаёт сайт. Поэтому сейчас разрабатываются и внедряются технологии (DNS over TLS, DNS over HTTPS, Encrypted Client Hello), которые прячут от внешнего наблюдателя и hostname.

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

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

Так вот, dear friends (в смысле facebook). Очеловечивание (и субъективацию как противовес объективации) надо заслужить. Человеком является лично знакомый, с которым есть эмоциональные связи. Знакомый без эмоциональных связей (я каждый день киваю медсестре при входе в офис и здороваюсь с кассирами), безусловно, относятся к виду Homo Sapiens и являются людьми. Но от замены на другого такого же для меня не изменится ничего. И с вероятностью 99% от замены меня на другого офисного работника и покупателя для них тоже не изменится ничего. Ну или изменится на уровне "Поменяли, интересно, что стряслось" — я бы так отреагировал на исчезновение дежурящей у соседнего подъезда кошки.

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

Нет, это не значит, что двуногих без перьев можно убивать или нарушать их права. Это значит, что по умолчанию у меня нет вовлечённости в их дела. Она может появиться, например, если с ними начнут делать что-то нехорошее. Или если они сделают что-то нехорошее.

Так что не стоит ожидать, что заработанное личное отношение будет лучше отношения к тому самому двуногому без перьев.
beldmit: (Программизм)
А ведь «Страж-птица» — самый известный рассказ про обучение нейросетей.
beldmit: (Default)
Фродо проснулся в кровати. Первая его мысль была о долгом мучительном кошмаре, после которого вполне простительно поспать подольше (где-то на краю сознания еще колыхались отголоски ужасного сна). А может, он болел? Фродо поднял глаза к потолку, и потолок показался ему странным: собственно, потолка не было, он терялся где-то в полумраке вверху. Мощные открытые потолочные балки украшала затейливая резьба.

— Так и есть,— сказал Фродо. —Лори-Эн, и никаких сомнений!
beldmit: (Default)
Тут (в Dreamwidth) тоже можно настроить отображение чужих записей в своём стиле и не злиться об тех, у кого сочетание цветов ломает глаза.
beldmit: (Default)
Комментарий Алексея Екайкина из Фейсбука отсюда.

Исходная статья.
DOI для SciHub-а: DOI: 10.1126/science.aba6853

Картинка из статьи

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

Всё внимание на верхнюю кривую – это температурная аномалия планеты, реконструированная по изотопному составу фораминифер, относительно современной температуры. Внимательный зритель, однако, углядит, что на правом краю график упирается не в 0, а в -4 градуса. Почему так? Потому что красная линия – это ряд температуры, сглаженный по 1 млн. лет, то есть он включает в себя и межледниковья, и ледниковые периоды. Современная же температура показана зелёной точкой, и она равна 0 °С, как и должно быть. Ну как современная – это средняя аномалия за последние 10 тыс. лет, на самом деле.
О чём этот график говорит? – о том, что в масштабе миллионолетий мы живём в самую холодную эпоху со времён динозавров. На всём своём протяжении кайнозой был очень тёплым периодом в истории планеты. Оптимум эоцена был на 14 градусов теплее нашего нынешнего межледниковья, голоцена, а в палеоцен/эоценовый термический максимум (PETM) температура поднималась на 20 градусов выше современной! И да, это потепление было связано с высоким содержанием парниковых газов в атмосфере.

Но если вы сейчас хотите крикнуть «Ага! Смотрите, было теплее, и ничего, Земля это как-то пережила!» - не надо этого делать.

Во-первых, хотя на графике PETM выглядит вертикальной линией (просто потому, что временная шкала тут очень сжата, в одном пикселе этого рисунка – около 50 тыс. лет), на самом деле потепление было не таким уж быстрым: за 20-50 тыс. лет потеплело на 5-8 градусов. То есть скорость потепления была порядка 0,01-0,04 градуса за столетие. У природы было время, чтобы как-то адаптироваться. Скорость же современного потепления – 1,5 градуса за 100 лет, на 2 порядка больше!

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

Ещё из интересного на графике – красная и синяя точки на температурной шкале. Это прогноз потепления на 2300-й год для разных сценариев выбросов СО2. Голубая точка – мало выбросов, температура поднимется на 3 градуса, будем жить, как в миоцене 14 млн. лет назад. Красная точка – много выбросов, потеплеем на 8 градусов, будем жить, как в эоцене 35-40 млн. лет назад. Ледников тогда на Земле почти не было, кстати, Арктика и Антарктида были свободны ото льда.
beldmit: (Программизм)
Если перестало проходить соединение с почтовым сервером из нового Thunderbird, потому что на сервере стоит говно мамонта с TLS 1.0 - вот такой совет спасёт.

Но сервер с такими настройками (не знающий TLS новее 1.0) надо апгрейдить при первой же возможности.
beldmit: (Человеческое лицо)
С удовольствием прочитал "Возвращение в Оксфорд" Дороти Сэйерс. Адекватный перевод, развесистые сноски несколько этнографического плана, среди благодарностей переводчиков - Гоша Кантор и Тоня Калинина.

Начал читать более ранние вещи про того же сэра Питера Уимзи. Впечатления странные.

Во-первых да, sadtranslations. То есть первая книга то ли написана, то ли переведена левой задней ногой. Во второй упоминается Свободное апельсиновое государство.

Во-вторых, там очень сильно ощущается что-то общее с книгами Вудхауса. Кто чьим был эпигоном, сейчас не разобрать. Саша Коробейников в Фейсбуке пишет, что Вудхаус был раньше.

Хочется разобраться, до какой степени конспиративный Советский клуб с кумачовыми занавесками - отражение существующей на тот момент реальности, а в какой гротеск. Миша Левандовский рекомендует биографию Клэр Шеридан.
beldmit: (Манул)
Берём Debian и запускаем torbrowser-launcher последней версии из меню. Он скачивает свежую версию и молча закрывается.

Запускаем его из консоли. Видим, что хряпается он на отсутствии gpg2. То есть зависимости не прописаны.

Ставим gpg2. Скачивает, проверяет сигнатуру. И радостно обламывается с 32 байтами нечитаемого и некопируемого идентификатора кода ошибки, рассказом про устаревший ключ и предложением жаловаться на github разработчика.

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

Вишенка на торте - bad gateway на Флибусте, ради которой всё и затевалось :)
beldmit: (Программизм)
 

Саша Соболев тут написал большой текст в контексте обсуждения пользы обучения программированию на примере C++. Текст правильный, но содержит много тезисов, и поэтому отвечать я буду на него примерно потезисно.


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


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


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


Я в принципе согласен, но адекватный уровень понимания для каждого языка и предметной области разный. Если ты пишешь на JavaScript/CSS, то до железа ты не доберёшься близко к совсем, и тебе не актуальны процессорные кеши, но крайне актуально знание размеров экрана и то, как в какой системе отображаются твои виджеты. А на C, да ещё выжимая каждую операцию досуха ради быстродействия, тебе надо знать, например, про векторные инструкции процессоров.

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


Я тут понял, что единственное, для чего C++ хорош в образовательных целях — это для объяснения про классы, темплейты, контейнеры и алгоритмы. Что у нас бывают разные способы хранить кучу плюс-минус однородных данных, и где-то мы за это заплатим неудобством поиска, где-то проблемами со вставкой, где-то чем-то ещё. Но это примерно C++ 2003. Ну то есть это не C++, это C с классами и немного STL. И я не уверен, что C++ — методически самый лучший для этого язык.


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


Вот тут и согласен, и не согласен. Не компетентен судить про Erlang, но по другим языкам — часть граблей программист не заметит, но ими прилетит. 


 Течет память - либа тухлая, другую возьмем! Медленно работает - надо апгрейдиться! Ну а чего вы хотите - оно вот так работает! Скомпилить шаред библиотеку и подключить к своему проекту на Erlang/R/Python? Не ко мне 🙂 Ну хоть понять, что это можно реализовать как полагается на низкоуровневом языке и попросить того, кто умеет! Но это уже детали даже.

Это вполне релевантные детали в целом. А в частности всё сложно. Утечки памяти в современном языке с garbage collector надо очень стараться, чтобы организовать. Критичные по времени места уже реализованы на низкоуровневом языке и оптимизированы. Другой вопрос, что их можно неправильно использовать и править надо именно алгоритм. А для этого ещё и профайлить, о чём и профессионалы не всегда думают. А когда думают, часто получают неожиданный результат в том, где на самом деле находится узкое по времени место.

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


С/С++/Pascal - отличные языки для изучения в школе. А над программерами, которые не считают нужным их знать, позволь мне посмеяться. Я не со зла, просто это действительно смешно.


Я не уверен, что тут надо знать именно языки, а не концепции. O-нотацию, например. А из этой тройки я бы сейчас оставил Паскаль, и сильно концептуально ограниченные подмножества.


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

К сожалению, не все партизанские отряды получили инструкции из столицы, и поэтому потери среди них тоже были велики.
beldmit: (Программизм)
За что я люблю C, так это за невозможность прострелить себе ногу способом «не то имя переменной». Есть масса других, не менее романтических, но этого — нет. У Perl есть use strict и -wc, у Python приходится прикручивать внешние линтеры.

Тут пришлось немного попрограммировать на bash, и после толпы ошибок системы «забыл пробел перед скобкой» я нашёл утилиту shellcheck - линтер для shell-скриптов. Написан на хаскелле, но это я переживу.

Ловит глупые и не очень ошибки. Я его поставил из buster-backports и запускаю с -S warning (в более древних версиях этой опции нет), а то он слишком много говорит. Понимает несколько shell-овских диалектов.
beldmit: (Программизм)
Уволок из диалога с Алексеем Тутубалиным в Фейсбуке

На всякий случай: я не считаю, что сейчас надо заморачиваться именно на ассемблер, большинство C-шных компиляторов сейчас умеют так называемые compiler intrinsics, которые по сути обычные функции с C-шным интерфейсом, но компилируются в ассемблер и работают быстро.

Но, собственно, описание лучше всего на сайте Intel, и там именно ассемблерные команды.

Intel Intrinsics Guide. Очень удобно, можно фильтровать по наборам инструкций. Надо понимать, что часть наборов у AMD и у Intel отличаются. Заморачиваться ли в этом месте вообще на интринсики - дело вкуса.

Intel® 64 and IA-32 Architectures Software Developer Manuals

Как пофиксить торможение при переключении между использованием AVX и SSE

Optimizing subroutines in assembly language. An optimization guide for x86 platforms от Агнера Фога.

Его же сайт, кусок про оптимизацию.
beldmit: (Манул)
От застрявшего в голове мусора надо избавляться. Вот пригрезился в Кимрах каламбур "улица Упырицкого" и просится наружу. На вот, возьми её (наружу) скорей.

А вообще интересная тема постреволюционной романтической топонимики. Как в Рыбинске улицы Яна Гуса, Радищева, Герцена и Плеханова плюс-минус в самом центре. В Кимрах там Урицкий, Ленин, Киров, кажется, тот же Володарский. И внезапно на окраинах декабристы (Пестель и Муравьёв) и в центре Черниговский переулок, явно в честь полка.

Или, там, улица Красных Мадьяр в Иркутске.

А наверняка и диссер можно защитить...

Update: любопытный текст на эту тему — Очерки домашней топонимики
beldmit: (Манул)
Редкий зверь нетупырь. Живёт на чердаке, но не на всяком. Иногда замещается видом-двойником - тупырём. Для владельца чердака эта замена почти незаметна, но окружающие замечают почти сразу.
beldmit: (Default)
The Sounds a Key Make Can Produce 3D-Printed Replica

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

Красивая физическая модель хорошо известной в криптографии атаки по побочным каналам. Сигнал от шума не очень просто отделить, но при большом количестве попыток — запросто.
beldmit: (Default)
Со своим странным английским (проще обсудить протокол TLS, чем сказать продавцу, что хочу свёклу, морковку и йогурт) и необходимостью писать письма я давно пользуюсь костылём в виде Grammarly. Ловит лишние и пропущенные запятые, забытые артикли и множественное число (моё невнимание меня тут губит), и опечатки. Платную версию не покупал, ничего конфиденциального не пишу (во всяком случае Google большую часть того, что я пишу, видит и так). Рекомендую.

Помимо этого в коллекции ссылок (сам не пользовался):
LanguageTool — тоже пруфридер.

DeepL — какой-то автопереводчик, народ рекламировал как альтернативу Гуглю. С ним дружит Linguee для поиска фраз в контексте и перевода.

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

TERMIUM Plus®, one of the largest terminology and linguistic data banks in the world, gives you access to millions of terms in English, French, Spanish and Portuguese. You can find terms, abbreviations, definitions and usage examples in a wide range of specialized fields. The data bank is an essential tool for understanding an acronym, checking an official title, finding an equivalent in another language, and much more.
beldmit: (Программизм)
Для того, чтобы данные не утекали, в корпорациях внедряют всяко-разные системы. Сейчас на коне протокол TLS, поэтому часто эти системы работают в режиме атаки MITM и расшифровывают трафик. А в ипостаси firewall-а ещё и не пускают в странные места.

В протоколе TLS довольно давно сделали способ сказать, какой из хостов на одном IP-адресе нас интересует. Это называется SNI, передаётся открытым текстом. И поэтому троян идёт на управляющий домен, firewall глядит в SNI, блокирует, все довольны.

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

Делай два: firewall начинает блокировать соединение при несовпадении имени в сертификате и в SNI. Но пакет до контрольного центра всё равно дойдёт.

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

Подробное описание атаки SNIcat
beldmit: (Манул)
— Куда же вы желаете выйти?
— В интернет! — ответил я.
— Это понятно. Но куда именно?
— Я еще не знаю, — сказал я. — Просто в интернет. В Глубокий интернет! В Свободный интернет!
Клерк устало вздохнул.
— Если вы хотите получить общий доступ, вам надо яснее выражать свои мысли. Вы собираетесь пользоваться сервисами в Американском интернете? А может быть, хотите эмигрировать в Китайский интернет? Или в Российский? Или в Индийский?
— Я не думал, что интернет может быть чьей-то юрисдикцией, ответил я.
(Оригинал, если что, Шекли «Я и мои шпики». Актуальный повод — решение Трампа о TikTok как угрозе национальной безопасности США)

Code freeze

Aug. 7th, 2020 09:31 am
beldmit: (Программизм)
С дачи хвастаться было не с руки. Если кто не в курсе, то часть репозиториев с GitHub архивированы и закопаны где-то в вечной мерзлоте. Нет, не вместе с авторами.

В список этих репозиториев вошли openssl (что естественно) и gost-engine (что приятно). А в GitHub коммитерам этого кода дали беджики "Arctic Code Vault Contributor"

Да, бесполезная медалька, но приятно.

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 29th, 2026 07:08 pm
Powered by Dreamwidth Studios