Babel is why I keep blogging with Emacs
Автор испытывает двойственные чувства к своему блогинговому процессу в Emacs. С одной стороны, он завидует простым статическим генераторам сайтов, которые можно написать за пару тысяч строк кода и полностью контролировать. С другой, он продолжает использовать Org mode со встроенной публикацией, несмотря на её сложность и непрозрачность — экспортный код Org составляет свыше 20 000 строк, что делает его глубокое понимание практически невозможным.
Ключевая причина, по которой он не переходит на простой кастомный движок — это Babel, мощная система Org для выполнения кода прямо во время экспорта. Она позволяет запускать блоки кода на множестве языков, вставлять результаты (включая таблицы и изображения) в статью и использовать сессии для переиспользования данных. Это незаменимо для одновременной работы с данными, графиками и текстом, особенно в R.
Таким образом, несмотря на желание упростить процесс, необходимость в функциональности Babel перевешивает — её реализация с нуля заняла бы месяцы, что неприемлемо при ограниченном времени. Автор смиряется с сложностью Emacs, ценя его уникальные возможности.
Комментарии (71)
- Участники обсуждают использование Emacs и Org-mode для ведения блогов, включая выполнение кода через Babel и экспорт в различные форматы.
- Многие перешли на статические генераторы сайтов (Hugo, Zola, Pelican, Astro) из-за простоты или ограничений Org-mode, но некоторые интегрируют его через ox-hugo.
- Поднимаются вопросы о недостатках привязки разметки к редактору, преимуществах чистого Markdown и альтернативах вроде Pandoc или Quarto.
- Некоторые предпочитают минималистичные подходы: публикация сырых текстовых файлов или использование собственных скриптов для загрузки на S3.
- Отмечаются сложности с поддержкой формул, интерактивностью и зависимостями в различных инструментах.
Why I chose Lua for this blog
Автор перевел свой блог с Racket на Lua, чтобы снизить сложность и обеспечить долгосрочную стабильность. Основная причина — разочарование в быстро меняющихся экосистемах вроде JavaScript и Ruby, где постоянные обновления и ломающие изменения усложняют поддержку. Lua привлек медленным развитием: между версиями 5.1 (2006) и 5.4 (2020) различия минимальны, а язык требует лишь компилятора C89.
Блог работает по старинке — через CGI-скрипты, с SQLite в качестве базы и шаблонизацией Mustache. Несмотря на кажущуюся архаичность, автор ценит простоту, минимальное количество зависимостей (около десяти) и возможность писать собственные легковесные библиотеки. Ключевой вывод: блог — это пространство для экспериментов, где можно отказаться от модных инструментов в пользу того, что действительно работает и приносит удовольствие.
Комментарии (135)
- Предложение возродить создание собственных движков для блогов как учебного проекта для инженеров из-за его низкого риска и возможностей для экспериментов.
- Обсуждение выбора Lua как стабильного и минималистичного языка для веб-разработки, несмотря на его недостатки (1-based индексация, разрыв между версиями, мало стандартных библиотек).
- Критика сложности современных стеков для блогов и аргументы в пользу простых решений: статические генераторы (Hugo), чистый HTML или минимальные скрипты (Python, Lua).
- Упоминание альтернативных технологий и подходов: Redbean, Perl, Caddy, XSLT, Web Components, Fennel, OpenResty и другие.
- Подчёркивание важности личного выбора, удовольствия от процесса и независимости от внешних сервисов при создании блога.
This blog is running on a recycled Google Pixel 5 (2024) 🔥 Горячее
Блог работает на переработанном Google Pixel 5
Вдохновившись постами в Mastodon о сайтах на ESP32 и Android-солнечных панелях, решил запустить блог с телефона. Успешно: вы это читаете.
Железо
- Google Pixel 5, от Verizon, без разблокировки загрузчика.
- Поддержка USB-OTG и Ethernet-адаптера.
- Питание: 100 Вт солнечная панель + Jackery 160 Вт — сайт полностью автономен.
Софт
Termux + Hugo из репозитория. Пакеты: git, screen, openssh, hugo, dufs (веб-загрузка файлов).
Сервисы: sshd, cronie через sv-enable.
Опыт
Первые сутки — разные версии Hugo и контроль заряда. Сейчас всё стабильно и быстро; внешне не отличить от VPS.
Планы: не трогать, пока не сломается.
Комментарии (137)
- Автор запустил личный блог на старом Google Pixel 5, питая его от солнечной панели и аккумулятора, чтобы продемонстрировать энергоэффективность и повторное использование техники.
- Участники отмечают, что современные ARM-смартфоны потребляют <5 Вт против 50–100 Вт у x86-сервера, что экономит до 800 кВт·ч в год.
- Обсуждаются риски: старые аккумуляторы при 24/7 работе могут «раздуться» и вызвать пожар, поэтому предлагаются варианты безбатарейного питания по USB-PD.
- Вопросы безопасности: Pixel 5 уже не получает обновлений, а Termux-окружение может ломаться из-за несовместимости пакетов.
- Некоторые считают идею интересной, но для статического сайта дешевле и надёжнее использовать GitHub Pages или S3.