Mark Zuckerberg freezes AI hiring amid bubble fears 🔥 Горячее 💬 Длинная дискуссия
Цукерберг останавливает найм в ИИ из-за опасений пузыря
Meta приостанавливает набор сотрудников в отделы искусственного интеллекта, поскольку руководство компании считает, что рынок перегрет.
Комментарии (692)
- Участники сомневаются в стратегии Meta: резкие повороты от метавселенной к ИИ выглядят либо как отсутствие решимости, либо как системные ошибки.
- Критика «перекупки» талантов: миллиардные контракты и заморозка найма через месяц вызывают вопросы к управлению и оценке ценности ИИ.
- Некоторые считают, что Meta просто гонится за хайпом и не имеет чёткого плана, а сам ИИ-пузырь может лопнуть.
- Другие напоминают: заморозка нормальна после масштабного набора, и инвестиции в ИИ — долгосрочная ставка, а не квартальная.
Using Podman, Compose and BuildKit 🔥 Горячее
Для сборки Docker Compose-проекта без Docker используются Podman, Docker Compose CLI и BuildKit.
Проблемы
- Podman предлагает два варианта:
– официальныйdocker-compose, но без BuildKit (нетadditional_contexts);
–podman-compose, но без!reset,configsи т.д. - Постоянно догонять новые фичи Docker Compose не хочется.
Решение
-
Запускаем официальный
docker-composeчерез Podmanpacman -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 podmanCompose автоматически поднимает контейнер
buildx_buildkit_default. -
Собственный 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 -
Убираем демон: Bake → Bakah
docker buildx bake --print >bake.json– экспорт в JSON.- Bakah превращает JSON в вызовы Buildah (без демона).
docker buildx bake --print >bake.json bakah --file bake.json
Bakah пока без HCL, переменных и прочих продвинутых фич, но достаточно для сложных проектов.
Комментарии (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?
D3 кажется многословным, потому что каждая деталь визуализации описывается вручную.
Чтобы нарисовать простой boxplot, потребовалось 194 строки: указываются координаты каждой линии, прямоугольника, осей и подписей. В Excel это делается парой кликов, но D3 не «волшебная кнопка», а низкоуровневый инструмент для SVG.
Плюс такого подхода — абсолютная гибкость: можно создать любую визуализацию, не ограниченную шаблонами. Минусы — много кода и крутая кривая обучения.
Пока я учусь, пишу «вручную», чтобы не пропустить детали; позже код можно сжать собственными функциями или компонентами.
Итог: D3 длинный, потому что даёт полный контроль над каждым пикселем.
Комментарии (61)
- D3 — это не «библиотека для графиков», а низкоуровневый инструмент для связывания данных с DOM/SVG через
.data().enter/update/exit, что даёт максимальную гибкость, но требует особой ментальной модели. - Из-за этого код получается многословным; кто-то считает это читаемостью и «мышечной памятью», кто-то — непреодолимым барьером.
- Чтобы уменьшить многословность, часть людей берёт лишь вычислительную часть D3 и рендерит через Solid/JSX, React или Observable Plot.
- Некоторые напоминают: если нужны только статические графики, можно обойтись вообще без JS, а для сложных анимаций и «не-стандартных» визуализаций D3 остаётся почти незаменимым.
The two versions of Parquet
Две версии 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 размер даже немного вырос.
Комментарии (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
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.
Комментарии (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
- Australia Post временно приостановила транзитные отправки в США из-за вступающих 29 августа тарифов на посылки стоимостью до $800.
- Ранее такие отправки не облагались налогом; теперь за каждую посылку нужно будет взимать пошлину или фиксированный сбор.
- Глобальные почтовые операторы называют ситуацию хаотичной: европейские службы тоже приостанавливают доставку в США.
- Продавцы жалуются на нехватку времени и неясные правила; Australia Post пока не принимает товары, идущие транзитом через Австралию в США.
Комментарии (56)
- США считают себя незаменимыми, но это лишь отталкивает Индию, Вьетнам и Китай, заставляя их искать альтернативы.
- Европейские и другие почтовые службы массово приостанавливают доставку в США из-за новых требований по сбору пошлин.
- Трамп закрывает лазейку, через которую китайские товары массово поступали на Запад, и в этом он совпадает с позицией ЕС.
- Некоторые пользователи поддерживают меры, другие критикуют из-за роста цен и ограничений на свободный рынок.
- ЕС и Швейцария показывают, как можно регулировать импорт без полного разрыва логистики.
Show HN: I replaced vector databases with Git for AI memory (PoC)
DiffMem — хранилище памяти для диалоговых ИИ-агентов на базе Git.
Использует коммиты как «снимки» контекста: каждое сообщение = отдельный diff, история полностью версионируется.
Поддерживает ветвление диалогов, откат к любой точке и слияние веток без потери данных.
Работает как лёгкая библиотека Python: pip install diffmem, далее diffmem init, diffmem commit, diffmem checkout.
Внутри — обычный репозиторий Git, поэтому можно пушить на GitHub, делать PR и использовать все привычные инструменты.
Комментарии (39)
- Пользователь предложил заменить векторные БД на «агентивный» ретривал: LLM сама выбирает нужные файлы из аннотированного списка; для сотен документов это проще и точнее, чем классический RAG.
- Критика: такой подход не решает задачи семантического поиска в больших пространствах, для которых и создавались векторные БД.
- Поддержка: git-файлы удобны для малого объёма (≈100 МБ), а BM25/Lucene/FAISS-flat можно использовать как быструю альтернативу.
- Предложены улучшения: post-commit-хуки для обновления индекса, гибридные поиски, MCP-сервер, временные knowledge-graph.
- Автор признаёт, что это PoC для «памяти агентов», а не полноценная замена векторных БД; при интересе готов довести до продакшена.
Python f-string cheat sheets (2022)
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 |
Используйте = для самодокументирующих выражений.
Комментарии (23)
- Автор выложил новый онлайн-инструмент для подбора f-строк и упомянул свой чит-лист.
- Часть участников считает, что f-строки стали слишком сложными и перегружены DSL, уступая простоте % или rjust().
- Другие защищают f-строки за контекстное размещение переменных и читаемость, особенно при отладке через f"{var=}".
- Обсуждались альтернативы (printf, Rust, C-style), а также вопросы динамической сборки строк и необходимости string.format.
How to stop feeling lost in tech: the wafflehouse method
Метод «Вафельная» — как перестать теряться в IT
Ты не один: десятки студентов и джунов пишут, что «потеряны».
Причины всегда одни: ИИ заберёт работу, учить слишком много, непонятно, нравится ли вообще кодить.
Ответ не в технологиях, а в себе.
Вот 48-часовой алгоритм «Вафельная»:
-
Возьми два будних дня
Заболей, отмени встречи, никого не предупреждай. Только ты и тишина. -
День 1. «Рвота» мыслей
Иди в любимое место, где комфортно сидеть часами.
Без телефона, без ноута.
Просто пиши от руки всё, что в голове: страхи, желания, образы себя через 5 лет.
Не редактируй, не ограничивай. Пока листы не кончатся. -
День 2. Сортируй
Прочитай вчерашний поток.
Выдели три группы:- Кто я (ценности, сильные стороны)
- Что люблю делать (задачи, которые дают энергию)
- Какой мир вокруг (рынок, люди, кому нужна твоя энергия)
Сопоставь: где пересечения?
Запиши 1-2 конкретные роли, которые тебе нравятся (например, «исследователь ИИ в медицине» или «техлид маленькой команды»). -
Сделай «минимальный продукт жизни»
Из ролей выбери одну.
Сформулируй 3 навыка, без которых она невозможна.
Запланируй 30-дневный эксперимент: учишь только эти три навыка по 1 часу в день.
Остальное — шум. -
Повторяй каждые 6 месяцев
Цели меняются. «Вафельная» — не разовая чистка, а регулярное ТО.
Технологии — это инструменты.
Сначала выясни, что ты хочешь построить, а потом уже выбирай молотки.
Комментарии (60)
- Подавляющее большинство комментаторов считают 48-часовой марафон пятилетнего планирования либо неприменимым, либо вредным: требует сверхмотивации, игнорирует неопределённость будущего и часто заканчивается провалом.
- Некоторые отмечают пользу лишь «дня размышлений без отвлекающих факторов», но предлагают заменить жёсткий план на гибкие короткие шаги и ежедневные привычки.
- Опытные участники подчёркивают, что жизнь редко идёт по плану: лучше быть готовым к случайным возможностям и регулярно переосмысливать цели.
- Часть людей, наоборот, рассказывает, что целеустремлённость и визуализация помогли им, но это скорее исключение, чем правило.
- Итог: метод может сработать для уже дисциплинированных, но для большинства «потерянных» студентов он выглядит чрезмерным, стрессовым и негибким.
A statistical analysis of Rotten Tomatoes
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 всё ещё удобен, но «свежесть» перестала быть показателем качества. Теперь это маркетинговый инструмент студий.
Комментарии (127)
- Критики и зрители оценивают фильмы по-разному: «100 % свежести» может означать просто «ничего особенного, но сойдёт».
- Многие перешли с Rotten Tomatoes на IMDb/Metacritic: 7+ на IMDb ≈ хороший фильм, ниже 6 — обычно не стоит времени.
- RT-оценки легко «прокачать» деньгами и политикой, поэтому «Certified Fresh» перестал быть гарантией качества.
- Жанр, год, личные предпочтения и даже настроение зрителя важнее любого «среднего балла».
- Лучший способ выбрать фильм — искать рецензентов «с вашим вкусом» или использовать персонализированные сервисы вроде MovieLens.