Hacker News Digest

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

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

Mark Zuckerberg freezes AI hiring amid bubble fears (telegraph.co.uk) 🔥 Горячее 💬 Длинная дискуссия

Цукерберг останавливает найм в ИИ из-за опасений пузыря
Meta приостанавливает набор сотрудников в отделы искусственного интеллекта, поскольку руководство компании считает, что рынок перегрет.

by pera • 21 августа 2025 г. в 11:04 • 686 points

ОригиналHN

#meta#artificial-intelligence#llm

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

  • Участники сомневаются в стратегии Meta: резкие повороты от метавселенной к ИИ выглядят либо как отсутствие решимости, либо как системные ошибки.
  • Критика «перекупки» талантов: миллиардные контракты и заморозка найма через месяц вызывают вопросы к управлению и оценке ценности ИИ.
  • Некоторые считают, что Meta просто гонится за хайпом и не имеет чёткого плана, а сам ИИ-пузырь может лопнуть.
  • Другие напоминают: заморозка нормальна после масштабного набора, и инвестиции в ИИ — долгосрочная ставка, а не квартальная.

Using Podman, Compose and BuildKit (emersion.fr) 🔥 Горячее

Для сборки Docker Compose-проекта без Docker используются Podman, Docker Compose CLI и BuildKit.

Проблемы

  • Podman предлагает два варианта:
    – официальный docker-compose, но без BuildKit (нет additional_contexts);
    podman-compose, но без !reset, configs и т.д.
  • Постоянно догонять новые фичи Docker Compose не хочется.

Решение

  1. Запускаем официальный docker-compose через Podman

    pacman -S docker-compose docker-buildx
    systemctl --user start podman.socket
    docker context create podman --docker host=unix://$XDG_RUNTIME_DIR/podman/podman.sock
    docker context use podman
    

    Compose автоматически поднимает контейнер buildx_buildkit_default.

  2. Собственный BuildKit-демон (systemd)

    pacman -S buildkit
    systemctl --user start buildkit.service
    docker buildx create --name local unix://$XDG_RUNTIME_DIR/buildkit/rootless
    docker buildx use local
    
  3. Убираем демон: Bake → Bakah

    • docker buildx bake --print >bake.json – экспорт в JSON.
    • Bakah превращает JSON в вызовы Buildah (без демона).
    docker buildx bake --print >bake.json
    bakah --file bake.json
    

Bakah пока без HCL, переменных и прочих продвинутых фич, но достаточно для сложных проектов.

by LaSombra • 21 августа 2025 г. в 10:54 • 288 points

ОригиналHN

#podman#docker-compose#buildkit#docker#buildah#systemd

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

  • Podman предлагает альтернативы Docker-Compose: kube-файлы, systemd-интеграцию и Quadlets, но у compose-режима есть баги (зависимости «убивают» общие сервисы).
  • Многие разработчики всё же возвращаются к Docker/Compose или OrbStack/Colima из-за привычного UX и меньшей борьбы.
  • Для продакшена без Kubernetes рекомендуют Docker Swarm или Quadlets, которые «встраиваются» в systemd.
  • Rootless-режим в Podman работает «из коробки», тогда как в Docker требует ручной настройки.
  • Поддержка multi-arch-сборок и BuildKit в Podman есть, но сложнее, чем у Docker.

Why is D3 so Verbose? (theheasman.com)

D3 кажется многословным, потому что каждая деталь визуализации описывается вручную.
Чтобы нарисовать простой boxplot, потребовалось 194 строки: указываются координаты каждой линии, прямоугольника, осей и подписей. В Excel это делается парой кликов, но D3 не «волшебная кнопка», а низкоуровневый инструмент для SVG.

Плюс такого подхода — абсолютная гибкость: можно создать любую визуализацию, не ограниченную шаблонами. Минусы — много кода и крутая кривая обучения.
Пока я учусь, пишу «вручную», чтобы не пропустить детали; позже код можно сжать собственными функциями или компонентами.

Итог: D3 длинный, потому что даёт полный контроль над каждым пикселем.

by TheHeasman • 21 августа 2025 г. в 10:12 • 96 points

ОригиналHN

#d3#svg#javascript#data-visualization#reactjs#solidjs

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

  • D3 — это не «библиотека для графиков», а низкоуровневый инструмент для связывания данных с DOM/SVG через .data().enter/update/exit, что даёт максимальную гибкость, но требует особой ментальной модели.
  • Из-за этого код получается многословным; кто-то считает это читаемостью и «мышечной памятью», кто-то — непреодолимым барьером.
  • Чтобы уменьшить многословность, часть людей берёт лишь вычислительную часть D3 и рендерит через Solid/JSX, React или Observable Plot.
  • Некоторые напоминают: если нужны только статические графики, можно обойтись вообще без JS, а для сложных анимаций и «не-стандартных» визуализаций D3 остаётся почти незаменимым.

The two versions of Parquet (jeronimo.dev)

Две версии Parquet

DuckDB недавно описали, как SQL-движки, не реализовав полностью спецификацию Parquet, тормозят её развитие. То же происходит в экосистеме: после выхода моей библиотеки Carpet я включил v2 по умолчанию, но быстро откатил изменение — устаревший Pandas не читал такие файлы.

Почему v2 не внедрён

Спецификация готова, но нет согласия, какие именно фичи считать «ядром» v2. Обсуждение в apache/parquet-format длится четвёртый год. Смешиваются два независимых направления:

  • новые кодировки (RLE_DICTIONARY, DELTA_BYTE_ARRAY) — ломают только столбец;
  • новая структура страниц (Data Page V2) — ломает весь файл.

Логические типы (например, VARIANT) не привязаны к версии формата.

Альтернативы

В ML-среде Parquet и ORC стали тесны, поэтому появились форматы Nimble (Facebook) и LV2 (LanceDB), но в data-engineering Parquet остаётся королём.

Производительность v2

Достаточно выставить WriterVersion.PARQUET_2_0.

Датасет Алгоритм v1, МБ v2, МБ Δ
Италия без сжатия 564 355 –37 %
Италия SNAPPY 220 198 –10 %
NYC без сжатия 760 511 –33 %
NYC SNAPPY 542 480 –11 %

Новые кодировки лучше уплотняют данные до компрессии, поэтому выигрыш больше у несжатых файлов, а у ZSTD размер даже немного вырос.

by tanelpoder • 21 августа 2025 г. в 09:34 • 193 points

ОригиналHN

#parquet#duckdb#pandas#apache#sql#compression#dataformats#apache-spark#delta-lake#iceberg

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

  • Parquet разделён на две версии: v2 экономит место и ускоряет чтение, но экосистема (Spark, Iceberg, Delta Lake и др.) всё ещё в основном на v1.
  • Справочная реализация — гигантская Java-библиотека с 74 000 строк кода на каждую комбинацию кодировки, что вызывает сомнения в оптимальности.
  • Совместимость между библиотеками (PyArrow, Fastparquet, Spark) долго была проблемой, как и разные версии Scala в Spark.
  • Даже простые оптимизации (мета-данные о сортировке) фактически не используются, а многие разработчики не знали о существовании v2.
  • Несмотря на критику, Parquet всё равно крупный шаг вперёд по сравнению с предыдущими форматами, и вопросы скорее в медленной эволюции стандарта, чем в самой идее.

My other email client is a daemon (feyor.sh)

NetHack при сборке с -DMAIL и OPTIONS=mail может уведомлять о новой почте: демон приносит свиток, при чтении запускается MAILREADER.
Я играю в Emacs-версию и не хочу выходить из неё, поэтому настроил связку mu4e ↔ NetHack.

mu хранит письма в maildir, а NetHack ждёт mbox. Проверяем, появились ли письма за последние 5 минут, и «трогаем» файл /tmp/nh.mbox:

import mailbox, pathlib, os
from datetime import datetime, timedelta

MAILDIR = os.path.expanduser("~/Mail/personal/INBOX")
MBOX = "/tmp/nh.mbox"

maildir = mailbox.Maildir(MAILDIR)
for msg in maildir:
    if datetime.fromtimestamp(msg.get_date()) > datetime.now() - timedelta(minutes=5):
        pathlib.Path(MBOX).touch()
        break
maildir.close()

Читаем почту через mu4e:

emacsclient -n --eval "(progn (require 'mu4e) (mu4e-context-switch nil \"Personal\") (mu4e-search-bookmark \"maildir:/personal/INBOX AND flag:unread\"))"

emacsclient запускает уже работающий Emacs, избегая блокировки базы mu.

by aebtebeten • 21 августа 2025 г. в 08:54 • 180 points

ОригиналHN

#python#mailbox#emacs#mu4e#nethack#roguelike#mbox#maildir

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

  • Участники восторгаются креативной интеграцией «реального мира» в NetHack через отправку почты прямо из игры.
  • Вспомнили опыт Miiverse в Wind Waker Wii U и предложили добавить такую фичу в Civilization.
  • Подняли вопрос безопасности: корректно ли роняются привилегии перед вызовом mail-команды; подтвердили, что CVE по этой теме уже были.
  • Emacs- и Vim-пользователи поделились советами, как постепенно осваивать Emacs, начиная с одного юз-кейса.
  • Обсудили альтернативные roguelikes: Slashem, Dungeon Crawl Stone Soup и RimWorld.

Australia Post halts transit shipping to US as 'chaotic' tariff deadline looms (abc.net.au)

  • Australia Post временно приостановила транзитные отправки в США из-за вступающих 29 августа тарифов на посылки стоимостью до $800.
  • Ранее такие отправки не облагались налогом; теперь за каждую посылку нужно будет взимать пошлину или фиксированный сбор.
  • Глобальные почтовые операторы называют ситуацию хаотичной: европейские службы тоже приостанавливают доставку в США.
  • Продавцы жалуются на нехватку времени и неясные правила; Australia Post пока не принимает товары, идущие транзитом через Австралию в США.

by breve • 21 августа 2025 г. в 07:56 • 77 points

ОригиналHN

#australia-post#tariffs#logistics#international-trade#european-union#switzerland#china#united-states#india#vietnam

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

  • США считают себя незаменимыми, но это лишь отталкивает Индию, Вьетнам и Китай, заставляя их искать альтернативы.
  • Европейские и другие почтовые службы массово приостанавливают доставку в США из-за новых требований по сбору пошлин.
  • Трамп закрывает лазейку, через которую китайские товары массово поступали на Запад, и в этом он совпадает с позицией ЕС.
  • Некоторые пользователи поддерживают меры, другие критикуют из-за роста цен и ограничений на свободный рынок.
  • ЕС и Швейцария показывают, как можно регулировать импорт без полного разрыва логистики.

Show HN: I replaced vector databases with Git for AI memory (PoC) (github.com)

DiffMem — хранилище памяти для диалоговых ИИ-агентов на базе Git.
Использует коммиты как «снимки» контекста: каждое сообщение = отдельный diff, история полностью версионируется.
Поддерживает ветвление диалогов, откат к любой точке и слияние веток без потери данных.
Работает как лёгкая библиотека Python: pip install diffmem, далее diffmem init, diffmem commit, diffmem checkout.
Внутри — обычный репозиторий Git, поэтому можно пушить на GitHub, делать PR и использовать все привычные инструменты.

by alexmrv • 21 августа 2025 г. в 06:20 • 164 points

ОригиналHN

#git#python#llm#machine-learning#vector-databases#bm25#lucene#faiss#rag#github

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

  • Пользователь предложил заменить векторные БД на «агентивный» ретривал: LLM сама выбирает нужные файлы из аннотированного списка; для сотен документов это проще и точнее, чем классический RAG.
  • Критика: такой подход не решает задачи семантического поиска в больших пространствах, для которых и создавались векторные БД.
  • Поддержка: git-файлы удобны для малого объёма (≈100 МБ), а BM25/Lucene/FAISS-flat можно использовать как быструю альтернативу.
  • Предложены улучшения: post-commit-хуки для обновления индекса, гибридные поиски, MCP-сервер, временные knowledge-graph.
  • Автор признаёт, что это PoC для «памяти агентов», а не полноценная замена векторных БД; при интересе готов довести до продакшена.

Python f-string cheat sheets (2022) (fstring.help)

f-строки: быстрый справочник

Числа

number = 4125.6
percent = 0.3738
Результат Шаблон
4125.60 {number:.2f}
4,125.60 {number:,.2f}
04125.60 {number:08.2f}
4125.60 {number: 8.2f}
4.1e+03 {number:.2g}
37% {percent:.0%}
  • .2f — 2 знака после запятой
  • , — разделитель тысяч
  • 08.2f — 8 символов, ведущие нули
  • .2g — 2 значащие цифры

Целые

number = 10
Результат Шаблон
0010 {number:04d}
10 {number: 4d}
10 {number:,}
1010 {number:b}
a {number:x}
A {number:X}
0xa {number:#x}
000a {number:04x}
0000_1010 {number:09_b}
  • 04d — 4 позиции, ведущие нули
  • b, x, X — двоичный, шестнадцатеричный
  • _ — разделитель разрядов

Строки

string = "Python"
Результат Шаблон
Python {string:>20}
Python {string:<20}
Python {string:^20}
0000Python {string:0>10}
  • >, <, ^ — выравнивание
  • 0> — заполнение нулями

Любые объекты

Модификатор Пример Результат
!s {expr!s} строковое представление
!r {expr!r} repr()
!a {expr!a} ASCII-экранирование
= {expr=} expr=repr(expr)
= !s {expr=!s} expr=str(expr)
= .2f {expr=:.2f} expr=4.00

Используйте = для самодокументирующих выражений.

by shlomo_z • 21 августа 2025 г. в 05:08 • 116 points

ОригиналHN

#python#f-strings

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

  • Автор выложил новый онлайн-инструмент для подбора f-строк и упомянул свой чит-лист.
  • Часть участников считает, что f-строки стали слишком сложными и перегружены DSL, уступая простоте % или rjust().
  • Другие защищают f-строки за контекстное размещение переменных и читаемость, особенно при отладке через f"{var=}".
  • Обсуждались альтернативы (printf, Rust, C-style), а также вопросы динамической сборки строк и необходимости string.format.

How to stop feeling lost in tech: the wafflehouse method (yacinemahdid.com)

Метод «Вафельная» — как перестать теряться в IT

Ты не один: десятки студентов и джунов пишут, что «потеряны».
Причины всегда одни: ИИ заберёт работу, учить слишком много, непонятно, нравится ли вообще кодить.
Ответ не в технологиях, а в себе.
Вот 48-часовой алгоритм «Вафельная»:

  1. Возьми два будних дня
    Заболей, отмени встречи, никого не предупреждай. Только ты и тишина.

  2. День 1. «Рвота» мыслей
    Иди в любимое место, где комфортно сидеть часами.
    Без телефона, без ноута.
    Просто пиши от руки всё, что в голове: страхи, желания, образы себя через 5 лет.
    Не редактируй, не ограничивай. Пока листы не кончатся.

  3. День 2. Сортируй
    Прочитай вчерашний поток.
    Выдели три группы:

    • Кто я (ценности, сильные стороны)
    • Что люблю делать (задачи, которые дают энергию)
    • Какой мир вокруг (рынок, люди, кому нужна твоя энергия)

    Сопоставь: где пересечения?
    Запиши 1-2 конкретные роли, которые тебе нравятся (например, «исследователь ИИ в медицине» или «техлид маленькой команды»).

  4. Сделай «минимальный продукт жизни»
    Из ролей выбери одну.
    Сформулируй 3 навыка, без которых она невозможна.
    Запланируй 30-дневный эксперимент: учишь только эти три навыка по 1 часу в день.
    Остальное — шум.

  5. Повторяй каждые 6 месяцев
    Цели меняются. «Вафельная» — не разовая чистка, а регулярное ТО.

Технологии — это инструменты.
Сначала выясни, что ты хочешь построить, а потом уже выбирай молотки.

by research_pie • 21 августа 2025 г. в 01:28 • 103 points

ОригиналHN

#career-development#self-improvement#personal-growth#career-planning#productivity

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

  • Подавляющее большинство комментаторов считают 48-часовой марафон пятилетнего планирования либо неприменимым, либо вредным: требует сверхмотивации, игнорирует неопределённость будущего и часто заканчивается провалом.
  • Некоторые отмечают пользу лишь «дня размышлений без отвлекающих факторов», но предлагают заменить жёсткий план на гибкие короткие шаги и ежедневные привычки.
  • Опытные участники подчёркивают, что жизнь редко идёт по плану: лучше быть готовым к случайным возможностям и регулярно переосмысливать цели.
  • Часть людей, наоборот, рассказывает, что целеустремлённость и визуализация помогли им, но это скорее исключение, чем правило.
  • Итог: метод может сработать для уже дисциплинированных, но для большинства «потерянных» студентов он выглядит чрезмерным, стрессовым и негибким.

A statistical analysis of Rotten Tomatoes (statsignificant.com)

Rotten Tomatoes: стал ли он менее надёжным?

Вступление

В отельных рекламах почти каждый новый фильм теперь «Certified Fresh». Либо человечество перестало снимать плохое кино, либо сама система оценки изменилась. Данные говорят: второе.

Как работает RT

  • Tomatometer = доля «положительных» рецензий критиков.
  • ≥ 60 % = «Fresh», < 60 % = «Rotten».
  • ⅓ американцев проверяют RT перед походом в кино.

Что случилось с оценками

1. Средний балл растёт
С 2000 по 2023 г. средний Tomatometer вырос с 51 % до 75 %.

  • 2000-е: 47 % фильмов ≥ 75 %.
  • 2020-е: уже 74 %.

2. «Rotten» почти исчез
Доля «гнилых» фильмов упала с 43 % (2000) до 12 % (2023).

3. Дисперсия сузилась
Стандартное отклонение снизилось с 28 до 18 пунктов: оценки стали однороднее.

Причины

  • Больше критиков: с 2000 по 2023 г. их число выросло в 3 раза.
  • Софт-ревью: публикации боятся потерять доступ к пресс-показам и дают «слабые положительные» оценки.
  • Стриминги: студии Netflix, Disney+ и др. активно «обрабатывают» критиков.

Пользователи заметили

Разрыв между оценками критиков и зрителей на RT вырос до 20-30 п.п. для блокбастеров.

Вывод

Rotten Tomatoes всё ещё удобен, но «свежесть» перестала быть показателем качества. Теперь это маркетинговый инструмент студий.

by m463 • 21 августа 2025 г. в 00:10 • 208 points

ОригиналHN

#statistical-analysis#rotten-tomatoes#film-ratings#data-analysis#netflix#disney

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

  • Критики и зрители оценивают фильмы по-разному: «100 % свежести» может означать просто «ничего особенного, но сойдёт».
  • Многие перешли с Rotten Tomatoes на IMDb/Metacritic: 7+ на IMDb ≈ хороший фильм, ниже 6 — обычно не стоит времени.
  • RT-оценки легко «прокачать» деньгами и политикой, поэтому «Certified Fresh» перестал быть гарантией качества.
  • Жанр, год, личные предпочтения и даже настроение зрителя важнее любого «среднего балла».
  • Лучший способ выбрать фильм — искать рецензентов «с вашим вкусом» или использовать персонализированные сервисы вроде MovieLens.