Hacker News Digest

Обновлено: 28 ноября 2025 г. в 08:55

Постов: 4635 • Страница 301/464

Death to type classes (jappie.me)

Смерть классам типов!

Числа пасутся? Функторы поют? Нет — это ложь элит. 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.

by zeepthee • 12 сентября 2025 г. в 11:46 • 104 points

ОригиналHN

#haskell#backpack#type-classes#functional-programming#modules

Комментарии (67)

  • Обсуждение сфокусировано на статье о Haskell, которая исследует альтернативный способ структурирования кода с использованием расширения Backpack, малоизвестного даже в сообществе Haskell.
  • Многие комментаторы отмечают, что материал сложен для понимания и требует глубоких знаний как Haskell, так и модульной системы OCaml, что делает его недоступным для широкой аудитории.
  • Поднимается вопрос о целевой аудитории: уместно ли публиковать узкоспециализированные посты на платформе с разнородной аудиторией и следует ли ожидать критики от тех, кто не входит в целевую группу.
  • Одна из центральных тем — сравнение подхода Backpack с более традиционными для Haskell концепциями, такими как тип-классы, и обсуждение их преимуществ и недостатков.
  • Некоторые участники дискуссии выражают скептицизм по поводу практической полезности Backpack, отмечая, что он почти не используется в реальных проектах.
  • В комментариях также встречаются шутки и отсылки к мемам о сложности функционального программирования и его концепций (монад, функторов).

PythonBPF – Writing eBPF Programs in Pure Python (xeon.me)

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 и загрузка

Как работает

  1. ast → дерево
  2. llvmlite → LLVM IR
  3. llc → BPF-объект
  4. libbpf → загрузка в ядро

by JNRowe • 12 сентября 2025 г. в 11:29 • 124 points

ОригиналHN

#python#ebpf#llvm#bcc#libbpf#linux#kernel

Комментарии (28)

  • Участники обсуждают инструмент для компиляции Python в eBPF байт-код, который был создан как проект на хакатоне и пока считается «игрушечным».
  • Подчеркивается, что использование LLVM для трансляции в eBPF — более перспективный подход, чем прямое преобразование Python-байткода.
  • Несколько пользователей отмечают отсутствие четких объяснений, что такое eBPF, и предлагают добавить больше документации и примеров.
  • Критикуется идея использования LLM (больших языковых моделей) для генерации eBPF-кода из-за строгой проверки и специфики eBPF.
  • Упоминаются существующие аналогичные проекты для других языков (Java, Node.js) и инструменты из мира BCC.
  • Автор проекта признает, что код находится на ранней стадии и требует значительной доработки.

Becoming the person who does the thing (fredrivett.com)

  • Вера формирует личность; меняется вера — меняешься и ты.
  • До 27 лет я гордился тем, что не хожу в зал: «фитнес — для пустых». Потом понял: тело тоже важно.
  • Начал с коленных отжиманий на полу комнаты; выглядело нелепо, но каждый день голосовал за «я — тот, кто тренируется».
  • Через месяцы — полные подтягивания, через годы — будни без спорта вызывают диссонанс. 20 мин/день, и дело сделано.

Как стать «тем, кто делает»:

  1. Повторяй: «Такие, как мы, делают вот так» (S. Godin).
  2. Каждый поступок — голос за будущего тебя (J. Clear).
  3. Голосуй ежедневно: маленький шаг > нулевой.
  4. Меняется идентичность — меняется жизнь.

Выбери зону, где надо перестать быть «таким, как прежде», и отдай сегодня один голос. Потом ещё один. Медленно, затем вдруг — ты уже «такой, как они».

by fredrivett • 12 сентября 2025 г. в 10:24 • 161 points

ОригиналHN

#personal-development#habit-formation#self-improvement

Комментарии (116)

  • Люди в IT часто пишут «мудрые» посты о жизни, потому что умеют писать, живут в культурe «личного бренда» и чувствуют, что быстро «повидали мир» из-за стремительно меняющихся технологий.
  • Критики считают такие тексты наивными: «сельские 30-летние тоже мудрствуют, просто у них нет блогов, которые вы читаете».
  • Сам пост-саммари: чтобы измениться, не ждите вдохновения — начинайте с крошечных шагов (5 минут спортзала, «половина» запланированной нагрузки) и повторяйте; система важнее цели.

Show HN: I made a generative online drum machine with ClojureScript (dopeloop.ai)

Dopeloop.ai — онлайн-барабанная машина для быстрого создания битов.
16 кнопок = 16 шагов. Жми, слышишь — сохраняй.
Библиотека сэмплов: хип-хоп, трап, хаус, драм-н-бейс.
Регулируй темп и громкость, мутируй треки в один клик.
Экспорт WAV или ссылка для шеринга.
Без установки, бесплатно, работает в браузере.

by chr15m • 12 сентября 2025 г. в 08:44 • 156 points

ОригиналHN

#clojurescript#reagent#reactjs#web-audio-api#virtual-audio-graph#audioworklet#drum-machine#music-production#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.com)

  • YouTube
    О платформе, прессе, авторском праве, контактах, авторах, рекламе, разработчикам.
    Условия, конфиденциальность, безопасность, как работает YouTube, тест новых функций, NFL Sunday Ticket.
    © 2025 Google LLC

by raphlinus • 12 сентября 2025 г. в 07:58 • 134 points

ОригиналHN

#rust#functional-programming#crates.io#ripgrep#wgpu#iroh#youtube

Комментарии (63)

  • Участники спорят, «победил» ли Rust: кто-то считает, что язык уже получил признание индустрии и государства, другие — что говорить о победе рано.
  • Ключевой аргумент «за» — широкое распространение знаний: после увольнений в Mozilla бывшие разработчики разошлись по большим компаниям, и ни одна корпорация теперь не контролирует язык.
  • Главное преимущество Rust называют не безопасность, а юзабилити: понятные ошибки компилятора, привычный синтаксис и рабочие инструменты сделали «функциональное программирование массовым».
  • Качество экосистемы вызывает вопросы: 90 % опубликованных крейтов — заброшенные или низкокачественные, поиску мешает отсутствие курации на crates.io.
  • Тем не менее число живых, аудированных и развивающихся библиотек растёт экспоненциально, а крупные проекты (ripgrep, wgpu, iroh) уже используются в продакшене.

Qwen3-Next (qwen.ai) 🔥 Горячее 💬 Длинная дискуссия

Конечно! Пожалуйста, пришлите текст, который нужно перевести и сократить.

by tosh • 12 сентября 2025 г. в 06:32 • 516 points

ОригиналHN

#qwen#moe#gpu#gpt-oss#gguf#vram#jevons-effect#offline-conversion

Комментарии (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 (rachelbythebay.com) 🔥 Горячее

by move-on-by • 12 сентября 2025 г. в 02:33 • 253 points

ОригиналHN

#debian#postgresql#cron#tzdata#iana#timezones

Комментарии (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? (thereader.mitpress.mit.edu)

Когда твой отец — фокусник, во что ты веришь?

Детство, проведённое под влиянием ловкости рук, научило меня скептицизму, любознательности и привычке смотреть глубже видимого.

Мои первые уроки наблюдения происходили не в лаборатории, а в гостиной, где мой отец в смокинге и цилиндре представал «Большим Эдом» — врачом, фокусником, лучником и рассказчиком. Днём он очаровывал пациентов уверенностью, ночью — гостей, доставая монеты из-за ушей или бесконечные шарфы из рукава. Для меня он был и целителем, и иллюзионистом.

Во что верить, если твой отец — фокусник? В детстве граница между реальным и нереальным была размыта. Я хотел верить в кролика из шляпы или парящую лампочку, но постепенно начал замечать швы: скрытую карту, 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. Мальчик, заглядывавший в рукава отца, стал мужчиной, ищущим скрытые механизмы восприятия.

by pseudolus • 12 сентября 2025 г. в 02:28 • 78 points

ОригиналHN

#neurology#science#perception#cognitive-science#neuroscience

Комментарии (16)

  • Отец автора серьёзно относился к магии и проделывал сложные трюки, например, заставлял исчезать деньги и сигаретные пачки.
  • Один из пользователей предпочёл жонглирование фокусам, так как оно менее стрессовое и не требует обязательного обмана зрителя.
  • Ценятся красивые отношения отца и сына, где сын был ассистентом и скептиком, разгадывавшим трюки, что сравнивается с научным познанием.
  • Участники отмечают поэтичность фразы о том, что исчезновение было изучено раньше, чем появление.
  • Подчёркивается, что настоящее чудо — в человеческом восприятии, которое конструирует реальность и может быть обмануто или просвещено экспериментом.
  • Упоминается, что некоторые трюки слишком хороши, чтобы их показывать, так как они могут разозлить аудиторию, которая предпочитает чувствовать, что может разгадать метод.
  • Магия удивляет зрителя один раз, но исполнителя — трижды: при просмотре, разборе метода и собственном успешном исполнении.
  • Некоторые комментарии сочли тон обсуждения претенциозным или сравнили его с произведениями Лавкрафта и Джонни Кэша.

The challenge of maintaining curl (lwn.net)

  • curl: 180 тыс. строк, 1,4 тыс. авторов, 20–25 активных в месяц, один зарплатный разработчик — сам Стенберг.
  • Используют 47 брендов авто; спонсоров — 0.
  • Компании требуют поддержку, аудиты, соответствие CRA, шлют угрозы «I will slaughter you».
  • LLM-боты сыплют ложными баг-репортами, ИИ-скраперы ддосят сайт: 99,99 % трафика — боты.
  • Поддержка = одному человеку: безопасность, документация, инфраструктура, иногда фичи.
  • Письмо 11-летнего ребёнка — единственное тёплое «спасибо».

by signa11 • 12 сентября 2025 г. в 01:42 • 161 points

ОригиналHN

#curl#open-source#maintenance#security#cve#oss#llm#http

Комментарии (46)

  • Компании хотят платить за OSS, но бюрократия, налоги и отсутствие «адреса» делают это почти невозможным.
  • Поток фейковых «AI-уязвимостей» превратился в охоту за CVE ради резюме и баг-баунти, отнимая время у maintainer’ов.
  • curl получил 200 тыс. € от немецкого Sovereign Tech Agency — редкий пример гос-финансирования.
  • Утопичная идея «AGPL-шантажа» и GoFundMe мгновенно оборачивается форком и потерей сообщества.
  • Нет единого «клоут-индекса» библиотек: кто действительно критичен — видно только изнутри.

The effects of algorithms on the public discourse (tekhne.dev)

Мы поменяли блоги на чёрные ящики и теперь расплачиваемся.

Интернет стал одной бесконечной лентой в закрытых приложениях. Люди исчезли, остались алгоритмы, продающие «вовлечение». Пример: в Instagram почти всё, что вы видите, — не ваш выбор, а выбор машины. Контекст исчез: миллионы незнакомцев в одном котле ругаются за пост, который не поняли. Это размывает смысл и убивает нишевые сообщества.

Как вернуть человечность:

  • Читайте RSS-ленты и блоги на BearBlog, Neocities, Write.as.
  • Используйте Invidious, Nitter, Libreddit вместо официальных клиентов.
  • Создавайте html-страницы, пишите в gemini-сети, сидите в Mastodon и Matrix.
  • Делайте закладки вручную, заводите «клубы по интересам» вне алгоритмов.

Перестаньте быть «средним пользователем» — станьте куратором собственного интернета.

by Improvement • 12 сентября 2025 г. в 00:39 • 148 points

ОригиналHN

#rss#bearblog#neocities#write.as#invidious#nitter#libreddit#gemini#mastodon#matrix

Комментарии (74)

  • Алгоритмы убили «старый» текстовый интернет: блоги и форумы вытеснены видео и лентами с лайками.
  • Кто хочет убрать алгоритм — возвращается к RSS, e-mail-рассылкам, узким форумам и чатам.
  • Проблема не в количестве подписчиков, а в открытом поиске: мейнстрим-площадки прячут хронологию и усиливают «рекомендации».
  • Религиозные и хоббийные группы показывают, что работает «старомодный» принцип: репутация и сарафан, а не лайки.
  • Платные подписки, Gemini, Kagi/Small-Web и домашние RSS-серверы становятся «белыми островами» вне рекламного болота.