Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
На dxdt.ru много лет работает сервис, который позволяет отрисовывать предложения LaTeX, переданные в параметрах URL, в картинки GIF, тут же возвращаемые сервером – то есть, можно указать в коде страницы тег img и результат запроса картинки по URL из src отобразит формулу. Раньше это было очень актуально в вебе, сейчас – менее актуально: появились другие технологии для отображения формул на веб-страницах. Тем не менее, сервис продолжает использоваться, потому что на многих внешних сайтах и форумах указаны URL картинок. Я даже оставил для URL сервиса рисования LaTeX возможность использовать HTTP – без S. Это связано с тем, что старые ссылки, естественно, повсеместно используют http://, а HTTP-перенаправление, в теории, может помешать отображению картинки. Но, наверное, всё же придётся добавить перенаправление с заменой протокола на HTTPS и для этих URL. В принципе, современные браузеры могли бы автоматически пробовать подключиться по HTTPS, тем более, что в DNS присутствует соответствующая запись. Но есть сомнения насчёт вспомогательных сервисов, которые могут извлекать картинку по HTTP и потом куда-то её копировать локально – не факт, что они умеют в HTTPS.
Интересно, что иногда ссылку указывали даже с префиксом www., хотя, насколько я помню, он никогда не был основным адресом для сайта; видимо, вводили автоматически. Но с www. – несколько проще, там изначально перенаправление на dxdt.ru, как и сейчас, поэтому, если раньше работало, то должно сохраниться. Собственно, с префикса www. сейчас веб-сервер перенаправляет именно на https://.
Комментировать »
К прошлой записке на тему переводов с древнегреческого, где речь о том, какие собаки описаны в гомеровском произведении – белые или проворные (κύνας ἀργούς). Интересно, что тот же самый фрагмент из “Илиады” приводит в пример Аристотель в своей статье “Об искусстве поэзии”. Аристотель упоминает не собак, а “мулов” (οὐρῆας), которые в тексте Гомера указаны раньше, но это буквально соседние слова и то же самое предложение. А именно, Аполлон там стрелами “мулов же прежде настиг и собак проворных/белых” (дословный перевод исходника – οὐρῆας μὲν πρῶτον ἐπῴχετο καὶ κύνας ἀργούς). Аристотель предполагает, что “мулами” Гомер называет охрану и это просто такой поэтический приём, который объясняет, почему “мулы” первыми пострадали: потому что это не мулы, а охрана, видимо, выставленная на подступах и, таким образом, подвернувшаяся мчащемуся с Олимпа Аполлону раньше других. Ну и у подразделений охраны вполне могли быть собаки, пусть даже и проворные. Впрочем, это только одна из возможных трактовок. К тому же, как я понимаю, предположение Аристотеля о превращении “мулов” в “стражей” считается сейчас сомнительным, так что собаки могут оставаться белыми – “придёт серенький волчок”, как говорится.
Комментировать »
В самом начале текста “Илиады” есть эпизод, в котором Аполлон обстреливает греческое войско, при этом в качестве первых целей, поражённых стрелами Аполлона (инфекцией, естественно), указаны вьючные животные и – собаки. В доступном исходном тексте про собак сказано, буквально, κύνας ἀργούς. “Собак” здесь – это κύνας (κύων), а вот их характеристику – ἀργούς – переводят по-разному, что выглядит довольно занимательно. Так, в русском переводе Н. И. Гнедича использовано весьма необычное слово “празднобродных” (“и псов празднобродных”), но в комментариях можно встретить, что вообще-то собаки “проворные”. Французский перевод (Leconte de Lisle) тоже обозначает собак как “проворных, быстрых” (rapide). В английских переводах характеристика собак в данном фрагменте либо вообще опускается (Pope), либо переводится тоже как “проворные” (“swift” – Buckley) и как “быстроногие” (“fleet” – Lang, Leaf, Myers).
При этом в комментариях к изданию перевода Бакли (Buckley) указано, что можно перевести и как “белые”. Действительно, в словаре – ἀργός, по первому значению, “белый, блистающий, яркий”; а второе значение – “быстрый, резвый, проворный” (словарь Дворецкого), но, опять же, с прямой отсылкой к собакам из эпического произведения Гомера. А есть и третье значение – бездеятельный, вялый, медленный, – однако указано, что этот вариант – от ἀεργία (“леность, безделье”); в этом варианте слово повсеместно используется у древнегреческих авторов, что, видимо, объясняет “празднобродных” собак.
В общем, больше похоже, что собаки там всё же либо белого цвета, либо просто “бледные”, но в том смысле, что слабые. Потому что, по сюжету, они заболели сразу после вьючных мулов, но раньше людей. С одной стороны, собакам белого цвета предпочтение могли отдавать древнегреческие пастухи, поскольку такую собаку гораздо проще издали отличить от волка, с другой стороны – довольно логичным выглядит и предположение, что белые собаки считались более слабыми в плане выносливости (а может, таковыми и являлись – подобный взгляд распространён и сейчас).
“Аргоистые” собаки в “Илиаде” ещё встречаются. Например, в выражении “быстрые псы (κύνες ἀργοὶ) его прежде изгложут” (Гнедич). Почему глодать должны именно “быстрые псы” – из контекста (военные советы Полидамаса “шлемоблещущему Гектору” об обороне городов) не очень понятно. Впрочем, как и то, почему животные должны быть именно белыми (или “бледными”? тогда, хотя бы, можно предположить, что речь о слабых, больных псах).
(Заметка, конечно, никоим образом не претендует на статус “филологического комментария”, просто, данный момент с “бледными собаками” показался мне занятным.)
Комментировать »
На одном из серверов, certbot, запускаемый по таймеру systemd, неожиданно сумел обновить сертификаты. Почему неожиданно? Потому что, как показало исследование логов, раньше этому certbot-у успешно мешал работающий там же веб-сервис: этот веб-сервис занимает 80/tcp, на который настроен и “респондер ACME/DCV” (проверка права управления доменом) в certbot; так что certbot, вообще-то, не мог штатным образом обновлять сертификаты (упомянутый веб-сервис имеет собственное подобие веб-сервера, которому не ведомо понятие web root, кроме прочего); попытка certbot-а поднять собственный веб-сервер, чтобы ответить на запрос из Let’s Encrypt, наталкивалась на занятость соответствующего интерфейса по нужному номеру порта. И поэтому сертификаты обновлялись совсем другим способом, хоть и через certbot. Но таймер-то продолжал работать. А тут на днях штатный веб-сервис отвалилися, 80/tcp стал доступен и – certbot успел самостоятельно перевыпустить сертификаты. Вот как бывает. Прописывайте, как говорится, параметры в конфигурационные файлы правильно, корректно настраивайте таймеры, это позволит избежать неожиданных проявлений деятельности “искусственного интеллекта”.
Комментарии (1) »
В заметке про практику 3D-печати я писал, что иногда использую Blender для того, чтобы реализовать “виртуальный предпросмотр” модели. Blender – это полнофункциональный и очень богатый по возможностям пакет для 3D-графики, собственно, один из немногих существующих. Естественно, применительно к 3D-печати – используется только малая часть возможностей. (Да, Blender применяют и в качестве инструментария для проектирования, но мне на этом направлении больше подходит OpenSCAD.) Вот, ниже, пример визуализации (Blender), использующий эффект прозрачности.

Это корпус для небольшого устройства на базе Arduino UNO (модель этого микроконтроллера видна внутри) с LCD, тремя кнопками на передней панели и местом установки динамика. Корпус состоит из двух частей, которые печатаются отдельно: основная коробка и лицевая панель – к ней крепятся блок кнопок и LCD (не показаны), а сама панель прикручивается шурупами к коробке.
Дополнение: версия “в стекле”, менее (а может – более) наглядная; распечатать такую, конечно, не выйдет.

Комментировать »
В мае 2021 года опубликована заметка (с картинками, что важно) про 3d-печать “в домашних условиях” – там я рассказываю о своём опыте использования трёх различных принтеров. За прошедшие почти два года появились некоторые дополнения. Так, принтер Anycubic 4Max Pro 2.0 некоторе время назад неожиданно вышел из строя. Сломался подающий механизм экструдера: возможно, сам электродвигатель, а возможно – сгорело что-то в соответствующем драйвере, в деталях я пока что не проверял. Принтер вряд ли отработал больше килограмма пластика к моменту поломки. Отмечу, что данный принтер больше не выпускается. Как и другой из упомянутых в исходной заметке – Anycubic Mega X.
Второй принтер, Mega X, между тем, продолжает проявлять себя с лучшей стороны. Каких-то существенных проблем с ним пока не наблюдалось. Да, пришлось один раз заменить “хотенд” (это горячая часть экструдера – нагревательный элемент и сопло) на новый, поскольку сопло старого перестало хорошо пропускать пластик, а прочистить его не удавалось. Но это пока что единственный сбой. Конечно, нагрузка на принтер небольшая. Сложно сказать, какой именно объём пластика за это время Mega X превратил в распечатки, но соответствующая масса точно превышает семь килограмм. Так что, для бюджетного устройства с большим доступным объёмом печати, надежность уже неплохая, на мой взгляд. Более того, используемая кинематическая схема, похоже, не только отличается надёжностью реализации, но и уверенно обеспечивает вполне достаточную точность печати во всём диапазоне перемещений печатающего узла. Недостатков у Mega X отмечу два: первый (как и в исходной заметке) – невозможно печатать “гибкими пластиками” (Flex); второй – иногда, в процессе замены пластиковой нити, внутри подающего механизма сдвигается втулка, нить застревает, а механизм приходится разбирать, чтобы поправить подачу.
Из пластиков – ничего не поменялось: PLA, как и раньше, остаётся основным, а PETG – редко, для изделий с повышенными требованиям к “износостойкости” (условно) и прочности.
(А вот принтер Wanhao, который упоминается в исходной заметке, так и не используется.)
Комментировать »
Поделюсь текущим состоянием набора “инструментальных” языков программирования, которые использую сейчас. Речь тут именно об использовании на практике. И основной сейчас – Golang, но встречается и Python (см. пояснения ниже), заметное место занимает JavaScript (как ни странно), а вот Perl – напротив, уже не заметен (но всё ещё встречается). А что касается языков уровнем ниже, то ассемблер тоже всё ещё иногда требуется (пример: реализация шифров).
Некоторые детали: Go оказался настолько удобным по конструкциям и сопутствующим инструментам, что заменил (для меня) даже Perl как язык для сиюминутной обработки наборов данных; то есть, Go играет и роль “скриптового языка”, но не только, поскольку на Go написал немало “долгоиграющих” модулей и утилит, в том числе, касающихся приложений криптографии (один из примеров – тестовый сервер TLS 1.3).
Python, фактически, входной язык SAGE (это система компьютерной алгебры, которую я постоянно использую), поэтому сопутствующие вычисления тоже приносят за собой данный язык, но этим объём применения Python, в моём случае, практически полностью исчерпывается. А вот место JavaScript обусловлено клиентскими веб-приложениями, исполняемыми в браузере. Кроме перечисленного, регулярно встречаюсь с Bash (как воплощением shell-скриптов) и Lua. Что касается исчезновения Perl: в своё время я достаточно много кода написал на C, но вот уже лет семь необходимости писать на этом языке не возникало (edit 05/01/23: естественно, кроме Arduino/AVR и пр. – здесь я использую C/C++), за исключением мелких правок кода (это именно в плане что-то заметное написать; читать и немного править написанное на C – приходится постоянно); с Perl-ом, похоже, складывается такая же история.
(Edit 05/01/23: почему-то забыл упомянуть PHP.)
Комментарии (1) »
Поделюсь некоторым практическим опытом любительской 3D-печати. Я пока поработал с тремя разными принтерами. Это бюджетные устройства, все они относятся к типу FDM (FFF), то есть, строят изделие методом последовательного наплавления слоёв пластика: пластиковая нить поступает в подвижную печатающую головку, где пластик расплавляется при помощи нагревательного элемента и выдавливается, формируя очередной слой изделия, – впрочем, думаю, что принцип печати многим хорошо знаком.
Два принтера, которые я использую и сейчас, это Anycubic Mega X и Anycubic 4Max Pro 2.0 (далее – просто 4Max). Третий – Wanhao Duplicator 4S (как я понимаю – больше не выпускается), его я некоторое время назад всё же разобрал с прицелом на модификацию, поскольку и качество печати оставляло желать лучшего, и принтер требовал постоянной настройки и мелкой возни с механической частью. Единственное преимущество этого принтера состоит в том, что там двойной печатающий узел, который, в теории, позволяет печатать двумя типами пластика одновременно. Упомянутый принтер Wanhao вполне можно использовать, но, к сожалению, добиться устойчивого и приемлемого результата с этим устройством весьма непросто, кроме того, сам принтер на настоящий момент сильно устарел. Так что в этой записке речь, в основном, только об упомянутых принтерах Anycubic, которыми я пользуюсь. Эти принтеры, кроме кинематической схемы, отличаются тем, что первый – полностью открытый, а второй имеет закрываемый корпус, с прозрачной крышкой и дверкой.
(Продолжение с картинками.)
Читать полностьюКомментировать »
Нередко приходится встречать картинки под собирательным названием “как видит мир кошка”. Каждая такая картинка подразумевает сравнение с тем, как видит мир человек. Казалось бы, огромный объём данных, пытающихся описывать природу визуального восприятия мира человеком, в том числе, данных “популярных”, типа различных иллюзий, должен сразу поставить любую подобную картинку под сомнение. Человеческое зрительное восприятие связано прежде всего с психикой и предыдущим опытом, только потом – с устройством глаза. Вспомните разные шумные цветовые иллюзии, вроде прений о том, “какого цвета платье на фотографии” или “параллельны ли улицы на этих снимках”. Набор иллюзий у условной кошки – не известен, и уже поэтому представить, как видит мир кошка, не имея опыта конкретной кошки, человеку невозможно.
Вспомните про эксперименты с призматическими очками. Известно, что человеческий глаз даёт перевёрнутое изображение. То, где у мира условный “верх” и условный “низ” – определяет предыдущий опыт. Если взрослому человеку надеть очки, которые переворачивают картинку ещё раз, делая изображение на сетчатке ориентированным “правильно”, то он тут же начинает видеть мир перевёрнутым и испытывает трудности с навигацией по этому миру. Но если очки не снимать, то через несколько дней мозг адаптируется и переворачивает картину мира вновь: проблемы с ориентацией исчезают; до тех пор, конечно, пока подопытный человек не снимет призматические очки. Казалось бы, в данном случае, можно хорошо представить, как видит мир человек в подобных очках: просто показываем перевёрнутую картинку. О реальном же эффекте можно судить только по описанию ощущений, которое даёт испытуемый, и модель с переворотом изображения оказывается весьма грубой. Так, если верить отчётами, у испытуемого возникают переходные периоды, когда изображение переворачивается туда-сюда в результате каких-то манипуляций в поле зрения, например, движений руки или проявления хорошо знакомого феномена: “вещи всегда падают вниз, если их отпустить”. (Этот эффект похож на многие зрительные иллюзии, когда, приложив некоторое мысленное усилие, можно “перевернуть” или “обратить” наблюдаемую картинку.) В общем, оказывается, что другому человеку даже тут представить что-то в деталях, не надевая призматические очки, весьма непросто, а уж тем более, нарисовать точную модель.
А кошка? Предположим, что мозг кошки ещё “подцепляет” к каждому визуальному образу акустическую картинку (у кошек особые уши), а также (например) температурный фон и движение потоков воздуха (вибриссы никто не отменял). Все эти параметры формируют опыт, человеку недоступный, но для кошки – создающий то самое зрительное восприятие мира. Конечно, можно возразить, что акустика, температура объектов, потоки воздуха – это всё не имеет отношения к зрению. Однако, если бы это было так, то и человек в призматических очках всегда видел бы мир перевёрнутым.
Комментарии (1) »


Новый