Эфир «Гик-четверг» на радио EscapeChan, состоявшийся 1 мая 2025 года, под руководством ведущей Светланы Тимофеевны Марченко и участника под псевдонимом Прочерк, был посвящён обсуждению технических и околотехнических тем, включая программирование, разработку графических интерфейсов, работу с базами данных, 3D-графику, а также новостные сюжеты и импровизированные диалоги. Основной акцент был сделан на проблемах и особенностях разработки программного обеспечения, а также на ностальгии по старым технологиям. Эфир сопровождался живым общением через тред на имиджборде EscapeChan и конференцию в Mumble (shiziki.com). Ниже представлено подробное саммари содержимого эфира.
## 1. Вступление и технические проблемы
- **Начало эфира**: Эфир начался с технической заминки — первые 10 минут слушатели слышали только Прочерка, так как голос Светланы Тимофеевны не транслировался. Проблема была замечена благодаря комментариям в треде на EscapeChan. Светлана иронично отметила, что это стало «доброй традицией» шоу.
- **Аудитория**: В пике эфир слушали 8 человек, но стабильно — около 4–5 «невыключенных компьютеров». Ведущие активно призывали слушателей присоединяться к Mumble-конференции для обсуждения «унылого задротства».
## 2. Основные темы обсуждения
### 2.1. Прочерк: JavaScript, Canvas и проблемы веб-разработки
- **Работа с JavaScript и Canvas**: Прочерк поделился, что на этой неделе он экспериментировал с рисованием на HTML Canvas с использованием JavaScript, создавая круги и диаграммы. Ему понравился процесс, так как Canvas предоставляет удобные встроенные функции (например, для растровой заливки и дуг), что избавило от необходимости писать низкоуровневый код. Однако он отметил, что для динамического перерисовывания интерфейса требуется сложная логика, что усложняет разработку.
- **Критика JavaScript**: Прочерк выразил разочарование в JavaScript из-за его нетипизированности, громоздкости фреймворков (React, Webpack) и сложности работы с виртуальным DOM. Он описал, как код для динамических сайтов быстро превращается в «огромное говно», особенно при необходимости перерисовки страниц и управления элементами DOM. Тем не менее, он пока избегает использования фреймворков, что делает процесс ещё более сложным.
- **Синтаксические улучшения**: Прочерк отметил, что современные возможности JavaScript (например, стрелочные функции, методы map для массивов) значительно упрощают код по сравнению с ECMAScript 3 или 2015. Без этих «синтаксических сахаров» объём кода увеличивается в 3–4 раза, а разработка становится менее удобной. Он упомянул Babel и Webpack как инструменты для транскомпиляции современного кода в старые стандарты (например, для Internet Explorer 5).
- **Итог**: Прочерк выразил смешанные чувства — ему нравится рисовать на Canvas, но JavaScript и веб-разработка в целом вызывают у него внутренний дискомфорт.
### 2.2. Светлана Тимофеевна: Разработка GUI и ностальгия по Macromedia Flash
- **Попытки освоить GUI-разработку**: Светлана рассказала, что пытается научиться создавать графические интерфейсы для приложений, но сталкивается с трудностями. Она вспомнила времена Macromedia Flash, когда создание GUI было простым: перетаскивание элементов (кнопок, текстовых полей) на форму, присваивание им имён и написание обработчиков событий через ActionScript (совместимый с ECMAScript). Flash позволял быстро создавать интерфейсы, хотя с точки зрения дизайна они могли выглядеть «страшно».
- **Крах Flash**: Светлана с сарказмом отметила, что после покупки Macromedia компанией Adobe технология Flash была признана «говном» и постепенно уничтожена. Это оставило разработчиков без удобного инструмента для быстрого создания GUI.
- **Godot и GDScript**: В поисках альтернативы Светлана начала изучать игровой движок Godot. Она отметила, что процесс создания интерфейсов в Godot напоминает Flash: перетаскивание контролов на сцену и написание кода двойным кликом. Однако её смущает GDScript — язык, похожий на Python, с отступами и синтаксисом вроде func для функций. Светлана выразила опасения, что освоение GDScript может быть болезненным.
- **Альтернативы**: Прочерк предложил использовать Electron (для веб-приложений) или Borland C++ Builder (для классических GUI). Светлана отвергла Borland из-за устаревшей поддержки OpenGL (версия 1.0 вместо 4.0) и сложностей с написанием собственных обёрток. Electron она также не приняла, так как её задачи требуют высокой производительности, а не веб-технологий.
### 2.3. Работа с графикой и базами данных
- **WebGL и базы данных**: Светлана рассказала о своём проекте — разработке просмотрщика панорам, для которого нужно отображать большие объёмы изображений (200–500 ГБ). Она рассматривала WebGL для работы с графикой, но столкнулась с проблемами CORS при доступе к локальной базе данных (например, CouchDB) через JavaScript. Прочерк предложил настроить Apache для проксирования запросов на тот же порт, чтобы обойти CORS, но Светлана отметила, что это усложняет архитектуру.
- **WebGL vs OpenGL**: Светлана объяснила, что WebGL (основанный на OpenGL ES) требует обязательного использования шейдеров даже для простых операций, таких как копирование пикселей. Это усложняет разработку по сравнению с ранними версиями OpenGL, где дефолтные шейдеры не требовались. Однако WebGL предоставляет удобные загрузчики (loaders) для работы с изображениями (PNG, JPG), которые автоматически обрабатывают форматы и размеры, не кратные степени двойки, что упрощает задачи для «умственно отсталых» (по её выражению) разработчиков.
- **Движки и SDL**: Светлана исследовала игровые движки (Unreal Engine, Unity, Godot) и библиотеки (SDL). Она отвергла Unreal из-за его громоздкости (200 МБ для простого приложения) и Unity из-за отсутствия опыта. Godot привлёк её компактностью (30 МБ), но GDScript вызвал отторжение. SDL она раскритиковала за отсутствие высокоуровневых возможностей (например, GUI, иерархии сцен, освещения), что требует от разработчика «изобретения мира с нуля». Прочерк возразил, что для простых задач (например, просмотр панорам) SDL может быть достаточным, но Светлана устала писать низкоуровневый код, как в молодости.
- **Кроссплатформенность**: Светлана выразила скептицизм по поводу кроссплатформенности, заявив, что её приложения предназначены в первую очередь для неё самой (на Windows 7). Она считает, что кроссплатформенные библиотеки (например, SDL) жертвуют функциональностью ради совместимости, что делает их менее эффективными.
### 2.4. Новости: Zip-бомбы против веб-ботов
- **Светлана как веб-бот**: Светлана поделилась, что на этой неделе скачивала изображения с сайтов со скоростью 300–450 картинок в секунду, используя 20 экзит-нод на локальном компьютере и Raspberry Pi. Она иронично назвала себя «веб-ботом», так как её действия создают нагрузку на серверы.
- **Проблема веб-ботов**: Ведущие обсудили новость о росте активности вредоносных веб-ботов, которые игнорируют robots.txt, используют тысячи IP-адресов и создают паразитную нагрузку на серверы. Светлана отметила, что её боты начали банить вручную — каждое утро её IP блокируются, вероятно, администратором.
- **Zip-бомбы**: В качестве контрмеры против ботов был предложен метод zip-бомб: сервер возвращает сжатые данные (например, с использованием Deflate или Brotli), которые при распаковке занимают огромный объём (10 МБ → 1 ГБ или 81 МБ → 100 ТБ). Такие ловушки размещаются на скрытых ссылках, исключённых из индексации, и срабатывают при глубокой рекурсии ботов. Светлана рассказала, что её бот на базе Tor столкнулся с подобной защитой, и Tor выдал предупреждение о возможной zip-бомбе.
- **Риски**: Метод zip-бомб не рекомендуется для использования, так как сайт может попасть в чёрный список Google и быть помечен как вредоносный в Chrome с включённым Safe Browsing. Прочерк отметил, что многие пользователи неправильно понимают zip-бомбы, путая их с zip-файлами, тогда как сжатие происходит на транспортном уровне.
- **Tor и сжатие**: Ведущие задались вопросом, зачем Tor поддерживает сжатие (Deflate, ZSTD, Brotli), если объёмы данных минимальны. Светлана предположила, что это связано с загрузкой данных о 8000 релеев при бутстрапе.
### 2.5. Ностальгия и старые технологии
- **Windows 98 и ActiveX**: Ведущие вспомнили времена Windows 98, Internet Explorer 5 и программирование на JScript/VBScript с использованием ActiveX. Светлана рассказала, как в юности случайно написала «вирус», который получил доступ к файловой системе и был заблокирован антивирусом Dr.Web, вызвав панику с переходом монитора в текстовый режим.
- **Trinity Desktop Environment (KDE 3.5)**: Эфир завершился новостью о релизе Trinity R14.1.4 — десктоп-окружения, продолжающего развитие KDE 3.5 и Qt3. Светлана с энтузиазмом рассказала, что использует Trinity на своём Raspberry Pi (Raspbian, Debian 10), но расстроилась, узнав, что новая версия прекращает поддержку её дистрибутива. Среди нововведений Trinity: поддержка Unicode-эмодзи, новые обои, темы оформления, улучшения в конфигурации сети, поддержка VPN, вкладки в PDF-просмотрщике и псевдопрозрачность окон. Светлана выразила ностальгию по временам, когда разработка была «весёлой» и «интересной» (2006 год), в отличие от современности.
## 3. Импровизированные темы и юмор
- **Охлаждающее устройство для лета**: Светлана предложила идею носимого устройства для охлаждения тела в жару, состоящего из медных трубок, водяного теплоносителя, элемента Пельтье, радиатора и повербанка. Устройство должно охлаждать шею, подмышки и область лимфоузлов, не создавая большого перепада температур (например, 33°C вместо 37°C). Прочерк скептически отнёсся к идее, указав на низкий КПД элементов Пельтье (120 Вт потребления для отвода нескольких ватт тепла), необходимость мощных батарей и громоздкость радиаторов. Он предложил альтернативу — использовать компрессор от кондиционера в тележке. Светлана настаивала на дешёвой и мобильной версии, которую можно собрать из компонентов с AliExpress.
- **Дизайн «тяночки»**: В треде предложили вместо охлаждающего устройства создать робота-«тяночку». Светлана иронично поддержала идею, упомянув лазерный труборез для создания металлического скелета и синтепон с тканью для обшивки, но отметила, что для этого нужен чистый стол и швейная машинка, которых у неё нет.
- **Комар и лето**: Светлана пожаловалась на появление комара в начале мая, назвав это признаком наступления лета, и выразила недовольство жарой. Участник Ковальчик возразил, что при +10°C о лете говорить рано, а Светлана отметила, что такая погода ей больше по душе.
- **Хибинские горы**: Ковальчик предложил Светлане переехать в Хибинские горы, описав их как место с морем, горами, северным сиянием, полярным днём и интернетом. Светлана заинтересовалась, но попросила подробностей.
- **Модерация EscapeChan**: Ведущие обсуждали посты в треде, включая удалённые модератором сообщения с «секретными фотокарточками». Они пригласили модератора присоединиться к эфиру, но он не появился.
## 4. Итоги и прощание
- **Итоги Прочерка**: Прочерк подвёл итог, что ему понравилось работать с Canvas, но JavaScript и веб-разработка вызывают у него отвращение.
- **Итоги Светланы**: Светлана выразила разочарование низкой активностью слушателей и призвала анончиков приходить на следующие эфиры. Она упомянула, что одна слушательница пожаловалась, что интересные темы обсуждаются только на записи, и пригласила её участвовать в прямом эфире.
- **Заключение**: Эфир завершился на позитивной ноте с новостью о Trinity R14.1.4, которая вызвала у Светланы ностальгию по старым временам. Ведущие попрощались, напомнив о следующей конференции в Mumble через неделю и субботнем эфире.
## Общий стиль и атмосфера
Эфир был насыщен техническими обсуждениями, перемежающимися юмором, сарказмом и ностальгией по старым технологиям. Ведущие использовали неформальный язык с обилием сленга и шуток, что соответствует духу имиджборды EscapeChan. Основной акцент был сделан на проблемах разработки, личных проектах и новостях из мира технологий, с акцентом на трудности современной веб-разработки и преимущества старых инструментов (Flash, KDE 3.5). Взаимодействие с аудиторией через тред добавило интерактивности, хотя активность слушателей была низкой.