Hacker News Digest

За сутки: 18 августа 2025 г. в 12:00

Постов: 18

Anna's Archive: An Update from the Team (annas-archive.org)

Мы живы и продолжаем борьбу: усиливаем инфраструктуру и безопасность. С 2022 г. спасли десятки миллионов книг, статей, газет — теперь они защищены от катастроф через торрент-сеть.

Провели крупнейшие скрапы: IA CDL, HathiTrust, DuXiu и др. Опубликовали рекордные метаданные WorldCat и Google Books, чтобы найти и приоритизировать редкие издания.

Партнёрства: два форка LibGen, STC/Nexus, Z-Library — добавили ещё десятки миллионов файлов и зеркалируют наши данные. Один форк LibGen исчез; подробностей нет.

Появился WeLib: зеркалируют нашу коллекцию и форк кода, но не делятся новыми материалами и улучшениями. Не рекомендуем пользоваться.

На серверах сотни терабайт новых коллекций ждут обработки. Нужны волонтёры и пожертвования — бюджет минимален.

Держитесь.
— Anna и команда

by jerheinze • 18 августа 2025 г. в 16:31 • 136 points

ОригиналHN

#torrent#ddos#p2p#cloudflare#z-library#libgen#hathitrust#worldcat#google-books

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

  • Пользователи выражают поддержку Anna’s Archive, называя сайт «одним из последних хороших мест в интернете» и «возможно, величайшим сайтом».
  • Команда Anna’s Archive опубликовала пост, что «жива и бьётся», несмотря на участившиеся атаки, и усиливает безопасность.
  • Некоторые удивлены, что ресурс всё ещё работает, вспоминая аресты, связанные с Z-Library, и блокировку в Бельгии через Cloudflare.
  • Обсуждают необходимость переработки интернета против DDoS, слежки и скрапинга ИИ, но признают компромиссы: дорогие PoW-схемы, сложные P2P-сети и замедленный Tor.
  • Пользователи жалуются, что Libgen больше не работает, и надеются на сохранение Anna’s Archive как источника технической литературы.

Who Invented Backpropagation? (people.idsia.ch)

Кто изобрел обратное распространение ошибки (backpropagation)

Современный backpropagation (BP) впервые опубликовал в 1970 г. финский магистрант Сеппо Линнайнмаа [BP1][R7]; 2020 г. отмечали 50-летие метода. Предшественник — работа Келли 1960 г. [BPA].

BP — это обратный режим автоматического дифференцирования: стоимость вычисления градиента примерно равна стоимости прямого прохода. Линнайнмаа дал алгоритм для произвольных разреженных сетей и привёл код на FORTRAN; все современные фреймворки (TensorFlow и др.) опираются на его метод.

В 1960-е уже применяли цепное правило Лейбница для градиентного спуска в многослойных системах (Келли, Брайсон, Дрейфус и др.), но без учёта эффективности для разреженных сетей.

Первое применение BP к обучению весов нейросетей — Дрейфус 1973 г.; первое NN-специфическое описание — Вербос 1982 г. [BP2] (в диссертации 1974 г. его ещё нет).

Уже в 1967 г. Амари с учеником Сайто обучал пятислойный перцептрон SGD, получая внутренние представления; это было глубокое обучение задолго до 1980-х. Параллельно Ивахненко строил глубокие сети GMDH (с 1965 г.).

К 1985 г. вычисления подешевели в 1000 раз; Румелхарт и др. показали, что BP формирует полезные скрытые представления.

by nothrowaways • 18 августа 2025 г. в 15:50 • 75 points

ОригиналHN

#backpropagation#fortran#tensorflow#neural-networks#deep-learning

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

  • Сторонники Schmidhubera считают, что Нобелевка и Тьюринг не заслужены; остальные напоминают, что награды выносились научным сообществом.
  • История backprop многократно «изобреталась» и «забывалась»; корни уходят в оптимальное управление 1960-х (Kelley, Kalman).
  • Участники спорят, заслуга ли это «просто цепного правила» или именно эффективная реализация для больших сетей.
  • Некоторые проводят аналогии с PID-регуляторами, якобианами в механике и адаптивной фильтрацией.
  • Сам Hinton в обсуждении почти не упоминается, что вызывает обвинения в «детской обиде».

The Road That Killed Legend Jenkins Was Working as Designed (strongtowns.org)

27 мая 2025 года в Гастонии, Северная Каролина, семилетний Legend Jenkins с братом шёл к магазину Food Lion и Subway. Отец разрешил, лишь держа их на связи. На обратном пути Legend вышел на West Hudson Boulevard — высокоскоростную магистраль с узкими тротуарами и без безопасных переходов — и был сбит внедорожником. Отец слушал, как это происходит.

Через два дня родителям предъявили обвинение в непредумышленном убийстве, залог — по 1,5 млн долларов каждому, шестерых других детей забрали у них.

Место не предназначено для пешеходов: даже взрослый рискует жизнью. Смерть Legend — не случайность, а статистически неизбежный результат проекта, где человек вне машины — помеха. Планировщики, инженеры, застройщики, чиновники не хотели смерти ребёнка, но создали условия, в которых она неизбежна. Ответственность размыта, поэтому система нашла виноватых — родителей.

by h14h • 18 августа 2025 г. в 15:33 • 91 points

ОригиналHN

#jenkins

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

  • Американские города строятся исключительно под скорость автомобилей, а безопасность пешеходов игнорируется.
  • Подземные переходы и пешеходные мосты исчезли из-за высоких расходов на строительство и обслуживание.
  • Гибель семилетнего ребёнка — предсказуемый результат системы, где пять полос скоростного движения проходят рядом с жилыми комплексами.
  • Обвинение родителей в непредумышленном убийстве вызывает споры: многие считают, что виновата инфраструктура, а не люди.
  • Участники сходятся во мнении: нужно заставить власти нести гражданскую ответственность за опасные дороги и проектировать улицы, безопасные для всех.

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

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

FFmpeg Assembly Language Lessons (github.com)

FFmpeg/asm-lessons — репозиторий с уроками по ассемблеру для FFmpeg.
Цель: научиться писать высокопроизводительные рутины на x86-64, ARM и других архитектурах, ориентированные на мультимедиа-задачи.

Содержание (кратко):

  • Уроки: от базовых инструкций до векторных расширений (SSE/AVX, NEON).
  • Примеры: реализация IDCT, фильтров, цветового преобразования.
  • Тесты: юнит-тесты и бенчмарки для сравнения C vs asm.
  • CI: автоматическая проверка на x86-64 и ARM через GitHub Actions.

Как начать:

  1. Клонируйте репо.
  2. Установите nasm, yasm или llvm-mingw.
  3. Соберите пример: make lesson01.

Полезные ссылки:

by flykespice • 18 августа 2025 г. в 13:39 • 175 points

ОригиналHN

#assembly#ffmpeg#x86#arm#sse#avx#neon#simd#multimedia#github

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

  • Участники восхищаются масштабом FFmpeg и экономией вычислений даже от мелких улучшений.
  • Некоторые ждали более глубоких «жемчужин» из опыта проекта, а не вводный курс по ассемблеру.
  • Предлагают добавить математику и примеры запуска (NASM) прямо в репозиторий.
  • Обсуждают, как находят узкие места: vtune/ufprof для x86, но для ARM инструментов мало.
  • Сомневаются в целесообразности писать LLVM IR вручную вместо архитектурно-специфичного кода.
  • Портативность решается отдельной рукописной сборкой под каждую архитектуру + C-заглушка.

Texas law gives grid operator power to disconnect data centers during crisis (utilitydive.com)

  • Суть: закон SB 6, подписанный губернатором Техаса, обязывает крупные потребители (ЦОД ≥ 75 МВт) снижать нагрузку при аварийных отключениях ERCOT.
  • Добровольная программа: те же объекты могут участвовать в demand response, получая компенсацию за переход на резервное питание.
  • Дополнительно: новые правила присоединения, плата за техобследование, прозрачность расходов и возможность колокации с генерирующими мощностями.

by walterbell • 18 августа 2025 г. в 13:34 • 97 points

ОригиналHN

#ercot#demand-response#data-centers#grid-management#energy-policy#texas#power-grid#backup-power

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

  • Участники считают, что центры обработки данных (ЦОД) должны выдерживать отключения: у них есть дизель-генераторы, контракты на топливо и практика ежеквартальных нагрузочных тестов.
  • Спорят, насколько допустимо принудительно ограничивать крупных потребителей: одни видят в этом справедливое распределение ресурсов «люди в первую очередь», другие опасаются политического давления и произвола.
  • Критикуют текущий «свободный» рынок электроэнергии в Техасе: он не учитывает долгосрочную надёжность и выталкивает инвесторов, готовых платить за резерв.
  • Упоминают, что биткойн-майнинг может быстро отключаться и тем самым «балансировать» сеть, но многие считают такую «помощь» избыточным созданием спроса.
  • Поднимают вопросы логистики: при массовых авариях может не хватить дизеля и времени доставки, а EPA ограничивает часы работы генераторов.
  • Резюмируют: если сервис действительно критичен, заказчик сам должен требовать SLA с дублированием и отказоустойчивостью, а не полагаться на исключения из правил.

Vibe coding tips and tricks (github.com)

Основы

  • Определите цель: чётко сформулируйте задачу перед генерацией кода.
  • Начинайте с README: описание проекта помогает ИИ и команде.
  • Используйте шаблоны: готовые структуры (FastAPI, React) экономят время.

Промпты

  • Контекст: указывайте язык, фреймворк, стиль (PEP8, camelCase).
  • Мелкие задачи: дробите фичи на куски по 50–100 строк.
  • Примеры: прикладывайте JSON-ответы или SQL-запросы.
  • Итерации: улучшайте код по одному аспекту за раз.

Рабочий процесс

  • Сессии: 30-минутные циклы «запрос-ревью-запуск».
  • Git-коммиты после каждого шага для отката.
  • Линтеры/тесты сразу: pytest, eslint, mypy.
  • Code Review: проверяйте всё, даже «очевидное».

Инструменты

  • Copilot Chat в IDE для быстрых правок.
  • Cursor / Windsurf для многофайлового рефакторинга.
  • Playwright для e2e-спек, сгенерированных из текста.
  • Docker для воспроизводимого окружения.

Качество

  • Типы: добавляйте аннотации (TypedDict, Pydantic).
  • Док-строки: пишите для всех публичных функций.
  • Тесты: покрывайте критические пути ≥80 %.
  • Логи: структурированные (structlog) для отладки.

Безопасность

  • Секреты: проверяйте .env и git history.
  • OWASP Top 10: сканируйте зависимости (pip-audit, npm audit).
  • RBAC: реализуйте роли и разрешения сразу.

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

  • Профилирование: cProfile, py-spy для горячих точек.
  • Кеш: Redis для частых запросов.
  • CDN для статики фронтенда.

Деплой

  • CI/CD: GitHub Actions → Docker → ECS/Fargate.
  • Feature flags для постепенного релиза.
  • Мониторинг: CloudWatch + Grafana.

Советы

  • Не доверяйте 100 %: всегда читайте сгенерированный код.
  • Учитесь у ИИ: спрашивайте «почему так» для роста навыков.

by mooreds • 18 августа 2025 г. в 12:57 • 107 points

ОригиналHN

#fastapi#reactjs#pytest#eslint#mypy#docker#redis#github-actions#aws#github

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

  • «Vibe-coding» превратился из мема в маркетинговый термин, но участники спорят о его определении: одни считают, что это «просто пиши спеки и не смотри код», другие — что это «полное доверие ИИ без ревью».
  • Многие подчеркивают: если ты проверяешь каждую строчку, это уже не vibe-coding, а обычная разработка с ИИ-помощником.
  • Популярный совет «тщательно изучай сгенерированный код» вызывает критику как противоречие самой идее «вайб-программирования».
  • Участники жалуются на устаревшую документацию, «ядро контекста» и то, что ИИ часто не следует длинным детальным спецификациям.
  • Итоговое мнение: «Don’t go full vibe coder» — лучше использовать ИИ как парного программиста, но оставаться критическим ревьюером.

When you're asking AI chatbots for answers, they're data-mining you (theregister.com)

  • Security: киберпреступность, патчи, исследования, CSO
  • Off-Prem: edge + IoT, канал, PaaS/IaaS, SaaS
  • On-Prem: системы, хранение, сети, HPC, персональные технологии, CxO, госсектор
  • Software: ИИ + ML, приложения, БД, DevOps, ОС, виртуализация
  • Offbeat: дебаты, колонки, наука, юмор, юр. новости, блоги
  • Спецпроекты: месяц облачной инфраструктуры, сети ЦОД, хранение, европейские суперкомпьютеры, ИИ-инфраструктура, RSAC, разработка ИИ, аварийное восстановление, GTC Nvidia, ransomware, будущее ЦОД, кибербезопасность, VMware Explore
  • Vendor Voice: Siemens + AWS, Mendix + AWS, финансовые потоки, BigQuery, AWS Global Partner Security, GE Vernova
  • Ресурсы: whitepapers, вебинары, рассылки

by rntn • 18 августа 2025 г. в 11:58 • 117 points

ОригиналHN

#llm#machine-learning#iot#cloud#aws#cybersecurity#devops#database

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

  • Все, что вы отправляете в онлайн-сервисы (AI, почта, соцсети), сохраняется навсегда и может быть использовано против вас.
  • Большинству пользователей всё равно: удобство «бесплатных» сервисов перевешивает риски.
  • Есть альтернатива — локальные модели (Ollama, LM Studio, Oobabooga), но они требуют мощного железа и навыков.
  • Даже если вы не пользуетесь сервисом, друзья могут передать ваши данные через чат-ботов.
  • Пока не появится жёсткое регулирование, единственный надёжный способ — не делиться чувствительной информацией и минимизировать использование облачных AI.

LLMs and coding agents are a security nightmare (garymarcus.substack.com)

by flail • 18 августа 2025 г. в 11:04 • 136 points

ОригиналHN

#llm#code-review#security#code#devops

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

  • Поддержали идею RRT: не использовать LLM в критичных местах, ограничивать права и отслеживать вход/выход.
  • Спорят, виноваты ли LLM в росте уязвимостей или это та же человеческая невнимательность, только ускоренная большим объёмом кода.
  • Локальные модели и строгие code-review рассматриваются как частичное решение, но не панацея.
  • Ключевой риск — давление «делай быстрее» приводит к меньшему тестированию и усталости ревьюеров.
  • Сравнение с автопилотами: LLM-генерация кода может стать безопаснее среднего разработчика, но пока не лучше экспертов.

Website is served from nine Neovim buffers on my old ThinkPad (vim.gabornyeki.com)

Кратко: плагин nvim-web-server на чистом Lua отдаёт HTTP-запросы прямо из открытых буферов Neovim, без внешних зависимостей, с нативной поддержкой Djot и быстрее Nginx.

Почему так быстро?

  • Однозадачность: только статика.
  • libuv + асинхронный I/O Neovim.
  • LuaJIT: NaN-тегинг, отсутствие boxing чисел, allocation sinking.
  • aiohttp тормозит из-за парсера на чистом Python и boxing в CPython.

Бенчмарк, RPS (среднее):

сервер 1 50 100 200 400
nvim-web-server 3981 15284 15124 14476 14446
Nginx 4451 11306 11576 10011 10461
aiohttp 6391 8477 8448 7696 7132

Развёртывание: живёт на старом ThinkPad, 9 буферов — весь сайт.

Безопасность: да, но мелочи мы игнорируем.

by todsacerdoti • 18 августа 2025 г. в 11:03 • 99 points

ОригиналHN

#neovim#lua#lua-jit#libuv#http#web-server#aiohttp#nginx#benchmarks#linode

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

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

MCP doesn't need tools, it needs code (lucumr.pocoo.org)

CLI-инструменты часто зависят от платформы/версии, плохо документированы и ломаются при не-ASCII вводе. Агенты путаются в управлении состоянием (например, tmux-сессиями) и теряют контекст после мелкой ошибки. Каждый вызов ещё тормозит из-за предварительной проверки безопасности.

Композиция в CLI работает через bash: цепочки tmux send-keys, sleep, base64 и т.д. MCP сегодня так не умеет.

Выход — MCP-сервер с одним «убер-инструментом»: Python-интерпретатор, сохраняющий состояние между вызовами. Пример — pexpect-mcp: виртуальное окружение + pexpect, позволяющее скриптами управлять интерактивными CLI-программами. Вместо 30 отдельных MCP-функций достаточно одной, принимающей код.

by the_mitsuhiko • 18 августа 2025 г. в 09:53 • 152 points

ОригиналHN

#python#pexpect#cli#tmux#bash#llm#http#lsp#playwright

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

  • Участники спорят, нужен ли MCP: кто-то считает его лишним слоем, другие — полезным способом дать LLM доступ к инструментам.
  • Критикуют ограниченность MCP («30 команд Playwright») и то, что он не решает проблему безопасности, а лишь описывает API.
  • Предлагают альтернативы: прямое обращение к HTTP/CLI, запуск кода в песочнице, использование LSP-интерфейса вместо строковых grep/sed.
  • Отмечают, что LLM обучены работать со строками и bash, а не с AST или MCP, поэтому «старые» инструменты пока эффективнее.
  • Главные боли: отсутствие дискавери, раздутый контекст, ошибки при большом числе инструментов, непонятные аббревиатуры для новичков.

Electromechanical reshaping, an alternative to laser eye surgery (medicalxpress.com)

Безлазерная альтернатива LASIK: имплантация линзы EVO/ICL

  • Что это: вместо выпаривания роговицы лазером в глаз вводится тонкая факичная линза EVO/ICL, которая работает вместе с собственной хрусталиком пациента.
  • Преимущества:
    – подходит при тонкой роговице и высокой близорукости;
    – сохраняется возможность «отката» (линзу можно извлечь);
    – быстрая реабилитация (чёткое зрение уже на следующий день).
  • Риски: повышенное внутриглазное давление, катаракта, световые ореолы; требуется регулярное наблюдение.
  • Стоимость: 2500–4000 $ за глаз, страховки не покрывают.
  • Кому не подходит: при астигматизме > 6 дптр, глаукоме, возраст < 21 года.

by Gaishan • 18 августа 2025 г. в 09:35 • 171 points

ОригиналHN

#lasik#prk#smile#ophthalmology#eye-surgery#medical-procedure#vision-correction#astigmatism#glaucoma#keratoconus

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

  • Участники обсуждают новую «молекулярную хирургию» для коррекции зрения как альтернативу LASIK/PRK/SMILE.
  • Основные плюсы: нет разрезов, нет лазера, потенциально обратимо, подходит при тонкой роговице и кератоконусе.
  • Минусы: пока только исследования, финансирование заморожено, неясно, поможет ли при астигматизме и ночных ореолах.
  • Некоторые делятся негативным опытом LASIK/PRK: отслойка сетчатки, катаракта, сухость, ореолы.
  • Есть любопытство, подойдёт ли метод для ринопластики и другой хрящевой терапии.

Web apps in a single, portable, self-updating, vanilla HTML file (hyperclay.com) 🔥 Горячее 💬 Длинная дискуссия

Hyperclay — однофайловые HTML-приложения
Работайте как с глиной: открыли файл, изменили — изменения сохранились. Без сборки, деплоя и фреймворков.

  • Прямое редактирование в браузере: меняете DOM — файл перезаписывает себя через /save.
  • Полная переносимость: скачали HTML — запустили где угодно, офлайн.
  • Версии: каждое сохранение фиксируется, откат в один клик.

Примеры: dev-log, writer, kanban, landing.

Почему это важно

Статические сайты удобны, но изменения исчезают после перезагрузки. Чтобы сделать цифровой объект «физическим» — нужен сервер, БД, API, аккаунты. Hyperclay убирает всё лишнее: UI, логика и данные — в одном самомодифицирующемся HTML-документе.

by pil0u • 18 августа 2025 г. в 06:38 • 499 points

ОригиналHN

#html#dom#nodejs#offline#single-file#self-updating#tiddlywiki#ipfs#cors

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

  • Hyperclay — это NodeJS-сервер + клиентская библиотека, которая позволяет странице «сохранять себя», перезаписывая свой .html-файл после любых изменений DOM.
  • Пользователи спорят: нужен ли сервер вообще, безопасно ли это, как быть с версионированием и синхронизацией между устройствами.
  • Напоминает TiddlyWiki, HTA-файлы Windows 98 и другие однофайловые подходы, но делает акцент на многопользовательской работе и бекенде.
  • Некоторые приводят свои решения: встраивание JSON-стейта в первые строки HTML, генерация «сохранений» через outerHTML, использование Git или IPFS.
  • Главные вопросы: закрытость кода, отсутствие цен, CORS при открытии из file://, поддержка iOS и безопасность при редактировании.

SystemD Service Hardening (roguesecurity.dev)

systemd-харднинг: кратко и по делу

sudo systemd-analyze security показывает «красную» таблицу рисков.
sudo systemd-analyze security имя.service — детально по конкретному юниту.

Колонка Exposure — главный ориентир: чем выше значение, тем больше прав можно отнять.

Как править

  1. sudo systemctl edit имя.service создаст override-файл.
  2. Параметры пишутся в секции [Service] (или [Container] для quadlet).
  3. Сервис не стартует — значит убрал нужное, возвращай.

Часто используемые директивы

Директива Что делает
NoNewPrivileges=true запрет setuid/setgid
PrivateTmp=true изолированный /tmp
ProtectSystem=strict корень только read-only
ProtectHome=true /home, /root недоступны
ReadWritePaths=/var/lib/app белый список для записи
CapabilityBoundingSet=CAP_NET_BIND_SERVICE только нужные capability
SystemCallFilter=@system-service разрешённый набор сисколлов
RestrictAddressFamilies=AF_INET AF_INET6 только нужные семейства сокетов
MemoryDenyWriteExecute=true блок W^X
LockPersonality=true запрет смены personality()
RestrictRealtime=true нельзя захватывать realtime-приоритеты
UMask=0077 файлы создаются 600
RemoveIPC=true чистит SysV IPC при выходе

Пример override

[Service]
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/myapp
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
SystemCallFilter=@system-service
RestrictAddressFamilies=AF_INET AF_INET6
MemoryDenyWriteExecute=true
LockPersonality=true
RestrictRealtime=true
UMask=0077
RemoveIPC=true

Проверь: sudo systemctl daemon-reload && sudo systemctl restart имя.service.

Это не серебряная пуля; подгоняй под каждый сервис и смотри логи.

by todsacerdoti • 18 августа 2025 г. в 04:57 • 196 points

ОригиналHN

#systemd#linux#security#privilege-management#capabilities#syscalls#linux-security-modules#security-hardening

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

  • Инструмент shh автоматически ужесточает systemd-сервисы, опираясь на профиль strace.
  • Участники хвалят статью за конкретные советы и напоминают, что systemd-analyze security работает и для пользовательских юнитов.
  • Почему дистрибутивы не включают жёсткие настройки по умолчанию: боятся сломать нестандартные сценарии (IPv6, ModemManager и др.).
  • Предложено завести репозиторий с готовыми «жёсткими» unit-файлами для популярных сервисов.
  • Отдельно отмечены механизм credential-management и спор о правильном написании «systemd» (не SystemD).

Google admits anti-competitive conduct involving Google Search in Australia (accc.gov.au) 🔥 Горячее 💬 Длинная дискуссия

Google признал антиконкурентное поведение в Австралии:

  • компания согласилась, что ограничивала выбор поисковой системы на Android-устройствах;
  • подписала обязательство перед ACCC изменить практику и уведомлять пользователей о доступных альтернативах Google Search;
  • обязательство действует 5 лет и подлежит судебному контролю;
  • ACCC считает признание важным шагом к восстановлению конкуренции.

by Improvement • 18 августа 2025 г. в 02:54 • 266 points

ОригиналHN

#google#android#competition-law#search-engines#accc

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

  • Google заплатила Telstra, Optus и TPG, чтобы быть единственным предустановленным поиском на Android-смартфонах в Австралии с декабря 2019 по март 2021.
  • Участники сделки получили долю от рекламной выручки Google; регулятор назвал это антиконкурентным и оштрафовал Google на 55 млн AUD.
  • Комментаторы считают штраф «карманными деньгами» и требуют наказывать процентом от глобального дохода или привлекать к уголовной ответственности.
  • Многие отмечают, что Telstra, Optus и TPG тоже должны быть оштрафованы как сознательные участники схемы.
  • Некоторые пользователи уже перешли на DuckDuckGo, Kagi и другие поисковики, но большинство остаётся «запертым» в экосистеме Google.

Non-Uniform Memory Access (NUMA) is reshaping microservice placement (codemia.io)

Codemia
Подготовка к систем-дизайн-интервью через практику:
Начать | Блог | Системный дизайн

Юридика
Условия | Конфиденциальность | Контакт

Соцсети
Twitter | LinkedIn

by signa11 • 18 августа 2025 г. в 01:40 • 78 points

ОригиналHN

#numa#microservices#hpc#aws#gcp#kubernetes#linux

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

  • Обсуждение подтверждает: для HPC, высоконагруженных и чувствительных к задержкам систем NUMA-распределение критично, и ручное pinning процессов/потоков к нужным узлам остаётся основным способом добиться стабильной производительности.
  • В публичных облаках (AWS, GCP) NUMA-топология скрыта, VM часто выглядят как однонодовые UMA; полезны lscpu, lstopo, cpu-latency, но настроек управления NUMA почти нет.
  • Сообщество делится инструментами: mpibind, sched_ext, DAMON, fake NUMA, идеями эмуляции NUMA даже на Raspberry Pi 5.
  • Kubernetes уже умеет NUMA-affinity, но вручную выбирать 64-ядерный инстанс вместо 96-ядерного (чтобы не пересекать сокеты) всё равно приходится самим.
  • Крайняя альтернатива — односокетные серверы с NPS=1: «равномерно медленно», но без головной боли.

Mangle – a language for deductive database programming (github.com)

Mangle — проект Google на GitHub.
Язык: Go.
Лицензия: Apache-2.0.

Описание
Mangle — это компилятор/интерпретатор логического языка, ориентированного на:

  • анализ и трансформацию графов;
  • декларативные запросы к данным;
  • поддержку Datalog-подобного синтаксиса.

Ключевые особенности

  • Компилирует логические правила в Go-код или исполняет напрямую.
  • Поддерживает рекурсивные запросы и агрегации.
  • Работает с in-memory и persistent-хранилищами.

Установка

go install github.com/google/mangle/cmd/mangle@latest

Быстрый старт

  1. Создай файл example.mgl:
    edge("a", "b").
    edge("b", "c").
    path(X, Y) :- edge(X, Y).
    path(X, Z) :- edge(X, Y), path(Y, Z).
    
  2. Запусти:
    mangle example.mgl --query="path(\"a\", Z)"
    

Документация

by simonpure • 18 августа 2025 г. в 00:55 • 80 points

ОригиналHN

#go#datalog#graph-databases#google#github

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

  • Участники спорят, связан ли новый язык Google с «Deductive Database» из видео 3b1b: одни считают, что это очередной внутренний эксперимент, другие — просто «люди, которые веселятся под крылом Google».
  • Поднимается вопрос, почему почти все инструменты расширяют «ванильный» Datalog: его ограничения делают расширения неизбежными.
  • В треде упоминаются альтернативные языки запросов — PreQL/Trilogy, Malloy, PRQL, PathQuery — и обсуждается, как они соотносятся с SQL и реляционной алгеброй.

Clojure Async Flow Guide (clojure.github.io)

Быстрый старт

Библиотека flow отделяет бизнес-логику от развёртывания: топологии, исполнения, обмена сообщениями, жизненного цикла, мониторинга и обработки ошибок.

step-fn и процессы

Логика описывается функциями step-fn, которые flow заворачивает в процессы, крутящиеся в цикле. step-fn не работают с каналами напрямую и не хранят состояние, поэтому легко тестируются и переиспользуются.

step-fn имеет четыре арности:

describe (step-fn) → descriptor

Возвращает статическое описание :params, :ins, :outs — карты имя → документация. Имена входов и выходов не должны пересекаться.

{:params {:size "Максимальный размер"}
 :ins    {:in  "Входной канал"}
 :outs   {:out "Выходной канал"}}

init (step-fn arg-map) → init-state

Один раз вызывается при старте процесса; превращает параметры из flow-def в начальное состояние.

transition (step-fn state transition) → state'

Вызывается при переходах жизненного цикла (::flow/start, ::flow/stop, ::flow/pause, ::flow/resume). Используется для управления внешними ресурсами.

transform (step-fn state input msg) → [state' {out-id [msgs]}]

Вызывается для каждого входящего сообщения. Возвращает новое состояние и карту выходных сообщений. Выход может быть пустым, но каждое сообщение — не nil. Исключения логируются в :error-chan.

Состояние процесса

Карта с любыми ключами. Дополнительно:

  • ::flow/pid — идентификатор процесса
  • ::flow/in-ports, ::flow/out-ports — карты cid → внешний канал (создаётся в init)
  • ::flow/input-filter — предикат cid для фильтрации входных каналов

Хелперы

  • lift*->step — из f(x) → coll делает step-fn с одним входом и выходом
  • lift1->step — то же, но f(x) → single-value
  • map->step — из карты с ключами :describe, :init, :transition, :transform строит step-fn

Запуск процесса

Функция process принимает step-fn и опции:

  • ::workload:mixed, :io, :compute
  • :compute-timeout-ms — таймаут для :compute (по умолчанию 5000 мс)

by simonpure • 18 августа 2025 г. в 00:52 • 190 points

ОригиналHN

#clojure#core.async#flow#concurrency#functional-programming#jvm#genstage#elixir

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

  • Участники обсуждают, жив ли Clojure: сообщество стабильно, но менее хайповое; NuBank расширяет core-команду и нанимает Developer Advocate.
  • core.async.flow предлагает декларативный, фиксированный граф каналов для «структурированной конкурентности»; ошибки и паузы можно отслеживать, но изменять топологию на лету пока нельзя.
  • Сравнивают с GenStage (Elixir), Manifold, Trio и missionary/electric; можно использовать как OS-, так и green-потоки.
  • JVM-тулчейн вызывает у новичков страх, но Leiningen/deps.edn упрощают работу, а отладка всё же возможна.
  • Clojure-окосистема активно развивается: Babashka, XTDB, Dyna3 и другие проекты; язык недавно получил мажорный релиз и готовится к виртуальным потокам JVM.