The code and open-source tools I used to produce a science fiction anthology
Программист Джо Стеч успешно опубликовал антологию научной фантастики "Think Weirder: The Year's Best Science Fiction Ideas", ставшую №1 в категории "Антологии коротких рассказов" на Amazon. Работая неполный день после работы и ухода детей, он применил свои технические навыки для создания эффективного процесса публикации. Он прочитал 391 рассказ 2024 года, прежде чем выбрать окончательные 16 историй от таких авторов, как Грег Иган и Изабель Дж. Ким.
Для управления проектом Стеч использовал YAML-файлы для отслеживания историй, рынков и тем, а также создал Python CLI-инструмент "se.py" для навигации по данным. Он выбрал LaTeX вместо Adobe InDesign для верстки книги, что позволило ему получить профессиональную типографию, воспроизводимость процесса и возможность использования пользовательских шрифтов. Его подход доказал, что программные навыки могут эффективно применяться в книжном издании, даже без специализированного опыта в издательском деле.
Комментарии (33)
- Получение прав на публикации оказалось самой сложной задачей, особенно для перевода "Stars Don't Dream" Chi Hui, требовавшего сложных согласований.
- Для технической реализации использовались различные инструменты: KDP для электронных книг, Typst/ConTeXt для PDF, KeenWrite для обработки Markdown, а SignNow и PayPal для договоров и платежей.
- Некоторые участники отмечали, что не все истории в антологии соответствовали ожиданиям от "интересных идей", например, "Twenty-Four Hours" критиковали за недостаток концептуальной новизны.
- Процесс создания антологии, включая работу с авторами и верстку, был признан достижимым благодаря современным инструментам, несмотря на трудности.
IDEmacs: A Visual Studio Code clone for Emacs 🔥 Горячее
IDEmacs представляет собой набор конфигураций для Emacs, созданный для упрощения входа в этот мощный редактор через имитацию интерфейса популярных IDE. Проект ориентирован на трех основных групп пользователей: программистов, переходящих с других IDE; начинающих Common Lisp и Scheme разработчиков, которым нужна функциональность Emacs без сложной настройки; а также непрограммистов, ищущих полнофункциональный редактор для Org, Markdown или LaTeX.
Ключевая особенность IDEmacs - это сочетание традиционного для Emacs управления с клавиатуры и поддержки GUI с мышью. В отличие от большинства стартовых комплектов для Emacs, здесь не скрываются графические элементы интерфейса, что значительно снижает порог входа для новичков. Проект позиционируется как временное решение ("заплатка") для текущей ситуации, когда Emacs с Sly/Geiser остается лучшей средой разработки для Lisp/Scheme, несмотря на его сложность для начинающих.
Комментарии (116)
- Пользователи спорят о модернизации Emacs: одни хотят сохранить ядро, но обновить UI (giancarlostoro), другие считают устаревший интерфейс фичей (raincole), третьи критикуют производительность (koiueo).
- Альтернативы Emacs обсуждаются активно: VS Code с плагинами (ruguo), OniVim (tiffanyh), Neovim с distant.nvim (pca006132), а также Electron-редакторы с Vim-подобными биндами (trenchpilgrim).
- Удалённая работа через SSH/TRAMP в Emacs возможна (brendyn, v9v), но имеет проблемы с задержками, в отличие от VS Code Remote (pca006132, blubber).
- Клавиатурные комбинации Emacs (C-x, C-c и др.) вызывают поляризацию мнений: одни считают их устаревшими (tom_), другие — неотъемлемой частью (ssivark).
- Сообщество Emacs сопротивляется радикальным изменениям UI, предпочитая кастомизацию через "стартовые пакеты" (ssivark), хотя часть видит в этом контркультурное противодействие прогрессу (stackghost).
AsciiMath
AsciiMath - это простой в использовании язык разметки для математики, который позволяет легко встраивать формулы в веб-страницы. Рекомендуется использовать MathJax для рендеринга - достаточно загрузить скрипт с CDN, и текст в обратных кавычках автоматически преобразуется в математические выражения. Этот метод работает во всех браузерах, в отличие от альтернативного подхода с загрузкой ASCIIMathML.js, который поддерживается только Firefox и Safari.
Синтаксис AsciiMath интуитивно понятен - многие символы имитируют свой вид после рендеринга, например oo для бесконечности. Поддерживаются основные математические операции, греческие буквы, отношения, логические символы и форматирование текста. Для начинающих предусмотрены альтернативные записи в стиле TeX без необходимости использования обратных слэшей.
Комментарии (41)
- AsciiMath критикуется за проблемную обработку пробелов и запятых, что приводит к некорректному отображению формул (например,
o ox x). - Пользователи отмечают преимущества AsciiMath для быстрого набора математических формул в веб-контексте и коде благодаря читаемому ASCII-синтаксису, а также упоминают альтернативы (Typst, Mathup).
- Синтаксис AsciiMath (особенно использование
^для верхних пределов) вызывает споры из-за сходства с LaTeX и неочевидности для новых пользователей. - AsciiMath позиционируется как упрощенный синтаксис для встраивания математики в веб (через MathML/MathJax), а не как прямой конкурент LaTeX.
- Критика LaTeX-подобных синтаксисов как избыточных (например, необходимость
\left,\right,\fracдля простых формул) и призыв к созданию более естественных альтернатив.
Typst: A Possible LaTeX Replacement 🔥 Горячее 💬 Длинная дискуссия
Typst — это новая система вёрстки документов, написанная на Rust и позиционируемая как современная альтернатива LaTeX. Она сохраняет высокое качество вывода, особенно для технических и научных материалов с формулами, таблицами и иллюстрациями, но предлагает более простой синтаксис разметки, быстрое компилирование и удобную кастомизацию. Проект развивается с 2019 года, уже насчитывает сотни контрибьюторов и постепенно получает признание в академической среде.
Ключевые преимущества Typst включают мгновенную работу со шрифтами, интерактивный режим редактирования с автоматической перекомпиляцией и поддержку современных форматов вывода. В отличие от LaTeX, он не требует гигантской установки, проще в освоении и выдаёт понятные ошибки. Хотя замена экосистемы пакетов LaTeX остаётся вызовом, Typst демонстрирует практическую ценность для тех, кто ищет лёгкий и эффективный инструмент для вёрстки.
Комментарии (338)
- Пользователи отмечают значительное преимущество Typst перед LaTeX в скорости компиляции, удобстве синтаксиса и понятности диагностических сообщений.
- Многие перешли на Typst для генерации документов в продакшн-средах (инвойсы, отчёты, книги) благодаря его простоте интеграции с данными (JSON) и программируемости.
- Подчёркивается проблема принятия Typst в научном сообществе из-за доминирования LaTeX-шаблонов журналов и конференций, а также отсутствия полной поддержки инструментов вроде Zotero.
- Некоторые пользователи выражают скептицизм по поводу замены LaTeX для сложных математических формул и опасения по поводу долгосрочного развития и обратной совместимости Typst.
- Typst часто используется как замена Markdown для простых документов и заметок благодаря интуитивному формату и мгновенному предпросмотру.
Комментарии (9)
- Предложены альтернативные проекты (alphaxiv.org, emergentmind.com) и рекомендации по использованию моделей ИИ (Gemini 2.5 Flash).
- Высказаны предложения по улучшению: парсить исходный код LaTeX для точности формул, добавить поддержку Markdown/LaTeX в выводе.
- Обнаружена техническая проблема с обработкой ArXiv ID, содержащих прямой слэш.
- Запрос на добавление короткого демо-ролика и функции выделения конкретных фрагментов текста в ответах.
- Выражена положительная оценка проекта, особенно за возможность ссылаться на конкретные страницы PDF.
Using Emacs Org-Mode With Databases: A getting-started guide
- Репо: шаблон для хранения и анализа данных в Org-mode
- Коммиты: 8, веток: 1, тегов: 0
- Файл: README.org
Комментарии (20)
- Пользователи делятся лайфхаками: org-babel + TRAMP = SQL-запросы на удалённых серверах прямо из Emacs.
- «Бедный SQL-workbench»: писать запросы в .org, вывод писать в /tmp/query-result.org, смотреть результат в соседнем буфере.
- Секьюрити: пароли прячем в ~/.pgpass или PGPASSFILE, чтобы не светить их в org-файле.
- Org-mode превращает студенческие шаблоны в красивые PDF (LaTeX), преподаватели думают, что ты TeX-гений.
- Кто пришёл из Vim — советуют Spacemacs как мостик; кто хочет шарить календарь с не-технической половиной — ищут синхронизацию.
Show HN: Hacker News em dash user leaderboard pre-ChatGPT 🔥 Горячее 💬 Длинная дискуссия
—
Комментарии (247)
- Авторы обсудили лидерборд пользователей HN по количеству «—» в комментариях и быстро перешли к анализу BigQuery-данных, долям и «— на комментарий».
- Подняли тему, что после 2022 г. всплеск может быть связан с ChatGPT, но сомневаются: автозамены macOS/iOS, MS Word и LaTeX "---" давно делают «—» доступным.
- Спорили, стоит ли считать «--», «–» или "---", и предлагали дополнительные метрики: рост после релиза LLM, только «\w—\w», «— на символ» и т. д.
- Некоторые гордились попаданием в список, другие редактируют «—» из текста, опасаясь «охоты на ведьм» за признаками ИИ.
Manim: Animation engine for explanatory math videos 🔥 Горячее
manim — движок анимации от 3Blue1Brown для создания пояснительных математических видео.
Python-библиотека превращает LaTeX-формулы и геометрические объекты в плавные сцены, которые можно рендерить в Full HD или 4K.
Ключевые возможности
- Объектно-ориентированный API: создаёте
Mobject-ы (Math-Objects) и анимируете их методами.animate,.play,.transform. - Встроенные шаблоны: графы, векторы, интегралы, матрицы, 3D-сцены.
- LaTeX-рендеринг: компилирует формулы в реальном времени.
- GPU-ускорение (OpenGL) для сложных сцен.
- CLI и Jupyter: запускайте
manim -pql scene.pyили интерактивно в ноутбуке.
Установка
pip install manim
# или
conda install -c conda-forge manim
Минимальный пример
from manim import *
class HelloMath(Scene):
def construct(self):
eq = MathTex(r"\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}")
self.play(Write(eq))
self.wait()
Ссылки
Комментарии (65)
- Современные LLM отлично генерируют код Manim, экономя время при создании математических видео.
- Пользователи хвалят красоту и понятность роликов 3Blue1Brown и сами делали успешные презентации.
- Актуальная версия библиотеки — community-форк ManimCommunity/manim.
- Ищут аналоги Manim для общих инфографик и моушен-графики (MotionCanvas.io, After Effects и др.).
- Некоторые жалуются на старые проблемы: kwargs-итис и отсутствие типов.
- Есть эксперименты с интерактивной 3D-графикой и автоматическим озвучиванием видео.
How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos 🔥 Горячее 💬 Длинная дискуссия
CodeRabbit: от PR до RCE и доступа к 1 млн репозиториев
CodeRabbit — самое популярное AI-приложение на GitHub Marketplace (1 млн репозиториев, 5 млн PR). При установке он анализирует каждый PR и оставляет AI-комментарии.
Найденные уязвимости
-
RCE через Markdown-рендеринг
- Внутри контейнеров запускается
markdown-itс плагиномmarkdown-it-katex. - Плагин использует
child_process.execбез фильтрации LaTeX-ввода. - Внедрённый в PR
$\input{/etc/passwd}$запускает произвольные команды.
- Внутри контейнеров запускается
-
Утечка токенов
- Внутри контейнеров доступны переменные окружения:
GITHUB_TOKEN,CODERABBIT_API_KEY,DATABASE_URL. - Чтение
/proc/self/environи~/.netrcпозволило получить токены GitHub, JWT-секреты и строку подключения к PostgreSQL.
- Внутри контейнеров доступны переменные окружения:
-
Доступ к 1 млн репозиториев
- Установленный GitHub-App имеет scope
contents:writeво всех подключённых репозиториях. - С помощью украденного токена можно клонировать/писать в приватные репы, создавать PR, коммиты и релизы.
- Установленный GitHub-App имеет scope
Цепочка атаки
- Создаём PR с вредным LaTeX.
- Получаем RCE в контейнере CodeRabbit.
- Считываем секреты.
- Используем токен GitHub для полного доступа к репозиториям.
Меры защиты
- Переход на изолированные sandbox-среды.
- Отключение опасных LaTeX-функций.
- Минимизация scope GitHub-токенов.
Комментарии (217)
- Исследователи нашли RCE в CodeRabbit: Rubocop запускался в проде без песочницы, позволяя выполнять любой код и получить ключи GitHub-приложения.
- Уязвимость дала доступ на запись к ~1 млн репозиториев; компания утверждает, что «данных клиентов не скомпрометировано», но аудита нет.
- Пользователи критикуют отсутствие прозрачности, грубые ошибки в управлении секретами (ключ в ENV) и чрезмерные права GitHub-приложений.
- Главный вывод: анализаторы кода должны запускаться в изолированных средах без доступа к чувствительным переменным, иначе подобные инциденты неизбежны.
I Prefer RST to Markdown (2024)
- Markdown = лёгкая обёртка HTML, rST = промежуточное дерево документа.
- В Markdown картинка:
→ прямое преобразование в<img>. - В rST:
.. image:: img.jpg :alt: alt→ регистрируется обработчик, возвращает объект-узел, который потом рендерится нужным бэкендом. - rST расширяем: добавил
.. figure::, подключил обработчик — готово. - Можно трансформировать дерево до вывода: перенос решений упражнений в конец книги, генерация ссылок, разные стили для HTML, PDF, EPUB.
- Пример:
.. exercise:: Fizzbuzzи.. solution::собираются в одном месте, но при сборке перемещаются вsolutionlist, связываются ссылками, в EPUB открываются всплывающими сносками, в LaTeX — через answers.
Комментарии (81)
- RST мощнее и расширяемее, но синтаксис вызывает отторжение и сложен для новичков.
- Markdown читается и пишется проще, поэтому стал де-факто стандартом, но не хватает возможностей для больших документов.
- MyST, Asciidoc, Djot и Typst предлагают компромисс между простотой и функциональностью, но пока уступают Markdown в распространённости инструментов.
- Парсеры RST доступны в основном на Python, а у Markdown — «каждый реализует свой диалект».
- Для книг и сложной документации RST + Sphinx выигрывают за счёт автогенерации HTML/PDF/EPUB, глоссариев и индексов.