Death to type classes
Смерть классам типов!
Числа пасутся? Функторы поют? Нет — это ложь элит. Backpack вместо классов: сигнатуры модулей, а не class.
signature Functor (Functor, map) where
data Functor a
map :: (a→b) → Functor a → Functor b
Реализация для Maybe:
module Functor.Maybe where
type Functor = Maybe
map f (Just x) = Just (f x)
map _ Nothing = Nothing
Cabal: сигнатуры в library, реализации в library impl. Подмена через mixins:
mixins: death (Functor.Sig as Functor.Maybe)
Можно много реализаций в одном проекте: List, Maybe, IO — всё живёт рядом, без {-# LANGUAGE RebindableSyntax #-} не обойтись.
Итог: вместо классов — модули, вместо инстансов — реализации. Композиция через Backpack, а не instance.
Комментарии (67)
- Обсуждение сфокусировано на статье о Haskell, которая исследует альтернативный способ структурирования кода с использованием расширения Backpack, малоизвестного даже в сообществе Haskell.
- Многие комментаторы отмечают, что материал сложен для понимания и требует глубоких знаний как Haskell, так и модульной системы OCaml, что делает его недоступным для широкой аудитории.
- Поднимается вопрос о целевой аудитории: уместно ли публиковать узкоспециализированные посты на платформе с разнородной аудиторией и следует ли ожидать критики от тех, кто не входит в целевую группу.
- Одна из центральных тем — сравнение подхода Backpack с более традиционными для Haskell концепциями, такими как тип-классы, и обсуждение их преимуществ и недостатков.
- Некоторые участники дискуссии выражают скептицизм по поводу практической полезности Backpack, отмечая, что он почти не используется в реальных проектах.
- В комментариях также встречаются шутки и отсылки к мемам о сложности функционального программирования и его концепций (монад, функторов).
PythonBPF – Writing eBPF Programs in Pure Python
PythonBPF – пишем eBPF-программы на чистом Python
(в 2 раза короче)
Что это
Библиотека pip install pythonbpf компилирует Python-код в объектные .o-файлы и загружает их в ядро как обычные eBPF-программы. Репо: GitHub.
Было
Встраивали C в многострочные строки, теряя линтеры и подсветку:
from bcc import BPF
prog = """
int hello(void *ctx) {
bpf_trace_printk("Hello\\n");
return 0;
}
"""
b = BPF(text=prog)
b.attach_kprobe(event="sys_clone", fn_name="hello")
Стало
Тот же функционал — на Python:
from pythonbpf import bpf, section, compile
from pythonbpf.maps import HashMap
from pythonbpf.helpers import ktime
from ctypes import *
@bpf
def last() -> HashMap: # глобальная BPF-мапа
return HashMap(c_uint64, c_uint64, 1)
@bpf
@section("tracepoint/syscalls/sys_enter_execve")
def hello(_: c_void_p) -> c_int32:
print("entered")
return 0
@bpf
@section("tracepoint/syscalls/sys_exit_execve")
def bye(_: c_void_p) -> c_int64:
print("exited")
last().update(0, ktime())
return 0
@bpf
def LICENSE() -> str: # лицензия ядра
return "GPL"
compile() # → .o и загрузка
Как работает
ast→ деревоllvmlite→ LLVM IRllc→ BPF-объектlibbpf→ загрузка в ядро
Комментарии (28)
- Участники обсуждают инструмент для компиляции Python в eBPF байт-код, который был создан как проект на хакатоне и пока считается «игрушечным».
- Подчеркивается, что использование LLVM для трансляции в eBPF — более перспективный подход, чем прямое преобразование Python-байткода.
- Несколько пользователей отмечают отсутствие четких объяснений, что такое eBPF, и предлагают добавить больше документации и примеров.
- Критикуется идея использования LLM (больших языковых моделей) для генерации eBPF-кода из-за строгой проверки и специфики eBPF.
- Упоминаются существующие аналогичные проекты для других языков (Java, Node.js) и инструменты из мира BCC.
- Автор проекта признает, что код находится на ранней стадии и требует значительной доработки.
Becoming the person who does the thing
- Вера формирует личность; меняется вера — меняешься и ты.
- До 27 лет я гордился тем, что не хожу в зал: «фитнес — для пустых». Потом понял: тело тоже важно.
- Начал с коленных отжиманий на полу комнаты; выглядело нелепо, но каждый день голосовал за «я — тот, кто тренируется».
- Через месяцы — полные подтягивания, через годы — будни без спорта вызывают диссонанс. 20 мин/день, и дело сделано.
Как стать «тем, кто делает»:
- Повторяй: «Такие, как мы, делают вот так» (S. Godin).
- Каждый поступок — голос за будущего тебя (J. Clear).
- Голосуй ежедневно: маленький шаг > нулевой.
- Меняется идентичность — меняется жизнь.
Выбери зону, где надо перестать быть «таким, как прежде», и отдай сегодня один голос. Потом ещё один. Медленно, затем вдруг — ты уже «такой, как они».
Комментарии (116)
- Люди в IT часто пишут «мудрые» посты о жизни, потому что умеют писать, живут в культурe «личного бренда» и чувствуют, что быстро «повидали мир» из-за стремительно меняющихся технологий.
- Критики считают такие тексты наивными: «сельские 30-летние тоже мудрствуют, просто у них нет блогов, которые вы читаете».
- Сам пост-саммари: чтобы измениться, не ждите вдохновения — начинайте с крошечных шагов (5 минут спортзала, «половина» запланированной нагрузки) и повторяйте; система важнее цели.
Show HN: I made a generative online drum machine with ClojureScript
Dopeloop.ai — онлайн-барабанная машина для быстрого создания битов.
16 кнопок = 16 шагов. Жми, слышишь — сохраняй.
Библиотека сэмплов: хип-хоп, трап, хаус, драм-н-бейс.
Регулируй темп и громкость, мутируй треки в один клик.
Экспорт WAV или ссылка для шеринга.
Без установки, бесплатно, работает в браузере.
Комментарии (29)
- Движок построен на декларативном аудио-графе (virtual-audio-graph), упрощающем Web Audio API; советуют дополнительно глянуть AudioWorklet.
- UX: кнопку Play просят сделать заметнее, добавить подсветку каждой четвёртой колонки и переключатель цвета фона под n-е доли.
- При генерации нового сэмпла во время воспроизведения нужен «тихий» режим замены, чтобы не сбивать ритм.
- Просят слайдер «вариативности» и возможность задавать нестандартные размеры тактов (например, 2-2-2-3).
- FX хотят, чтобы эффект оставался включённым и копировался в новые ячейки до ручного выключения.
- Интерфейс сделан на ClojureScript (через Reagent/React), код части аудио-утилит выложен: chr15m/cljs-dopeloop.
Rust: A quest for performant, reliable software [video]
- YouTube
О платформе, прессе, авторском праве, контактах, авторах, рекламе, разработчикам.
Условия, конфиденциальность, безопасность, как работает YouTube, тест новых функций, NFL Sunday Ticket.
© 2025 Google LLC
Комментарии (63)
- Участники спорят, «победил» ли Rust: кто-то считает, что язык уже получил признание индустрии и государства, другие — что говорить о победе рано.
- Ключевой аргумент «за» — широкое распространение знаний: после увольнений в Mozilla бывшие разработчики разошлись по большим компаниям, и ни одна корпорация теперь не контролирует язык.
- Главное преимущество Rust называют не безопасность, а юзабилити: понятные ошибки компилятора, привычный синтаксис и рабочие инструменты сделали «функциональное программирование массовым».
- Качество экосистемы вызывает вопросы: 90 % опубликованных крейтов — заброшенные или низкокачественные, поиску мешает отсутствие курации на crates.io.
- Тем не менее число живых, аудированных и развивающихся библиотек растёт экспоненциально, а крупные проекты (ripgrep, wgpu, iroh) уже используются в продакшене.
Qwen3-Next 🔥 Горячее 💬 Длинная дискуссия
Конечно! Пожалуйста, пришлите текст, который нужно перевести и сократить.
Комментарии (198)
- Qwen3-Next: 80B MoE, линейное внимание, MTP без +2 ГБ матриц; 256K контекст, 1M через YaRN.
- На чате 80B-A3B работает как 235B-A22B, быстрее 14B-плотных, укладывается в 64 ГБ ОЗУ.
- Код: GPT-OSS-20B-уровень, ASCII-арт «СпанчБоб» выдаётся без запоминания, MoE-шум заметен.
- Эффективность 10× вызывает споры: Jevons-эффект → тренируют ещё больше, спрос на GPU не падает.
- GGUF/VRAM пока не выложены, цена выше GPT-OSS-120B; ждут open-бенчмарков и офлайн-конвертации.
Debian 13, Postgres, and the US time zones 🔥 Горячее
—
Комментарии (128)
- В Debian 13 исчезли устаревшие зоны
US/*(US/Eastern, US/Pacific и др.); они живут в отдельном пакетеtzdata-legacy. - Переход тихий: в релиз-ноутс ни слова, многие узнали об изменении, когда ПО перестало стартовать или сломались cron-задачи.
- Проблема касается не только Debian: GitLab, PostgreSQL, IB TWS, Racket- библиотеки и др. продолжают использовать старые имена.
- Фикс прост:
apt install tzdata-legacy, либо заменитьUS/ZoneнаAmerica/Cityво всех конфигах и базах. - Спор в треде: кто виноват — Debian (не предупредил), IANA (удалил без шумихи) или сисадмины (20 лет не следили за
backward)?
When Your Father Is a Magician, What Do You Believe?
Когда твой отец — фокусник, во что ты веришь?
Детство, проведённое под влиянием ловкости рук, научило меня скептицизму, любознательности и привычке смотреть глубже видимого.
Мои первые уроки наблюдения происходили не в лаборатории, а в гостиной, где мой отец в смокинге и цилиндре представал «Большим Эдом» — врачом, фокусником, лучником и рассказчиком. Днём он очаровывал пациентов уверенностью, ночью — гостей, доставая монеты из-за ушей или бесконечные шарфы из рукава. Для меня он был и целителем, и иллюзионистом.
Во что верить, если твой отец — фокусник? В детстве граница между реальным и нереальным была размыта. Я хотел верить в кролика из шляпы или парящую лампочку, но постепенно начал замечать швы: скрытую карту, bulge в рукаве. То, что другие принимали за чудо, для меня стало загадкой, требующей разгадки.
Это движимое любопытством, а не цинизмом, я стал ассистентом отца — носил реквизит, rehearsed patter, но также оставался скептиком. Если фокус меня обманывал, я стремился раскрыть его механизм. Иллюзия учила скептицизму, а скептицизм — требованию доказательств. Мало, чтобы что-то выглядело правдой — я хотел знать underlying actuality.
Это отношение распространилось за пределы сцены. Выросший в 1950-е, я видел, как внешний мир тоже погружён в performance: учебные тревоги, маскировавшиеся весельем взрослые. Отец, врач эпохи транквилизаторов, воплощал противоречия — способный к исцелению, но и к grand self-invention.
В этом crucible иллюзии и реальности я формировал свою идентичность не только как сын, но и как будущий учёный. Если магия зависела от обмана, то наука казалась большей магией — она требовала правильных вопросов и ответов evidence.
К adolescence я начал свои crude «эксперименты»: timing горящей спички, взвешивание реактивов, charting ночного неба. Это не была formal science, но несло тот же дух, что и разбор отцовских трюков: look beneath appearances, test hunches, insist that truth — не то, что dazzles, а то, что endures.
Чем глубже я погружался, тем больше видел parallels между магией и разумом. Фокусник misdirects внимание; мозг — тоже. Conjurer эксплуатирует expectation; восприятие — тоже. Иллюзия, на сцене или в коре, зависит от нашей готовности fill in the gaps.
Позже, как neurologist, я вернулся к этим урокам, изучая synesthesia. Пациенты говорили, что цифры и буквы имеют цвета, а вкусы evoke формы. Наука десятилетиями dismissировала такие reports как фантазию. Но меня воспитали относиться к appearances с suspicion, а к testimony — с care. Мальчик, заглядывавший в рукава отца, стал мужчиной, ищущим скрытые механизмы восприятия.
Комментарии (16)
- Отец автора серьёзно относился к магии и проделывал сложные трюки, например, заставлял исчезать деньги и сигаретные пачки.
- Один из пользователей предпочёл жонглирование фокусам, так как оно менее стрессовое и не требует обязательного обмана зрителя.
- Ценятся красивые отношения отца и сына, где сын был ассистентом и скептиком, разгадывавшим трюки, что сравнивается с научным познанием.
- Участники отмечают поэтичность фразы о том, что исчезновение было изучено раньше, чем появление.
- Подчёркивается, что настоящее чудо — в человеческом восприятии, которое конструирует реальность и может быть обмануто или просвещено экспериментом.
- Упоминается, что некоторые трюки слишком хороши, чтобы их показывать, так как они могут разозлить аудиторию, которая предпочитает чувствовать, что может разгадать метод.
- Магия удивляет зрителя один раз, но исполнителя — трижды: при просмотре, разборе метода и собственном успешном исполнении.
- Некоторые комментарии сочли тон обсуждения претенциозным или сравнили его с произведениями Лавкрафта и Джонни Кэша.
The challenge of maintaining curl
- curl: 180 тыс. строк, 1,4 тыс. авторов, 20–25 активных в месяц, один зарплатный разработчик — сам Стенберг.
- Используют 47 брендов авто; спонсоров — 0.
- Компании требуют поддержку, аудиты, соответствие CRA, шлют угрозы «I will slaughter you».
- LLM-боты сыплют ложными баг-репортами, ИИ-скраперы ддосят сайт: 99,99 % трафика — боты.
- Поддержка = одному человеку: безопасность, документация, инфраструктура, иногда фичи.
- Письмо 11-летнего ребёнка — единственное тёплое «спасибо».
Комментарии (46)
- Компании хотят платить за OSS, но бюрократия, налоги и отсутствие «адреса» делают это почти невозможным.
- Поток фейковых «AI-уязвимостей» превратился в охоту за CVE ради резюме и баг-баунти, отнимая время у maintainer’ов.
- curl получил 200 тыс. € от немецкого Sovereign Tech Agency — редкий пример гос-финансирования.
- Утопичная идея «AGPL-шантажа» и GoFundMe мгновенно оборачивается форком и потерей сообщества.
- Нет единого «клоут-индекса» библиотек: кто действительно критичен — видно только изнутри.
The effects of algorithms on the public discourse
Мы поменяли блоги на чёрные ящики и теперь расплачиваемся.
Интернет стал одной бесконечной лентой в закрытых приложениях. Люди исчезли, остались алгоритмы, продающие «вовлечение». Пример: в Instagram почти всё, что вы видите, — не ваш выбор, а выбор машины. Контекст исчез: миллионы незнакомцев в одном котле ругаются за пост, который не поняли. Это размывает смысл и убивает нишевые сообщества.
Как вернуть человечность:
- Читайте RSS-ленты и блоги на BearBlog, Neocities, Write.as.
- Используйте Invidious, Nitter, Libreddit вместо официальных клиентов.
- Создавайте html-страницы, пишите в gemini-сети, сидите в Mastodon и Matrix.
- Делайте закладки вручную, заводите «клубы по интересам» вне алгоритмов.
Перестаньте быть «средним пользователем» — станьте куратором собственного интернета.
Комментарии (74)
- Алгоритмы убили «старый» текстовый интернет: блоги и форумы вытеснены видео и лентами с лайками.
- Кто хочет убрать алгоритм — возвращается к RSS, e-mail-рассылкам, узким форумам и чатам.
- Проблема не в количестве подписчиков, а в открытом поиске: мейнстрим-площадки прячут хронологию и усиливают «рекомендации».
- Религиозные и хоббийные группы показывают, что работает «старомодный» принцип: репутация и сарафан, а не лайки.
- Платные подписки, Gemini, Kagi/Small-Web и домашние RSS-серверы становятся «белыми островами» вне рекламного болота.