Hacker News Digest

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

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

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, а не на диске, и что всё равно всё закешируется.

The End of Handwriting (wired.com) 💬 Длинная дискуссия

Почему рукописное писать всё ещё важно

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

  • Ностальгия vs польза
    Легенда о монахинях и линейках не объясняет, почему рукопись ценна. Главное — не красота, а нейрокогнитивные эффекты: моторная память активирует зоны мозга, отвечающие за чтение и понимание.

  • Дети и девайсы
    Исследование Карен Рэй (2021) показало: «цифровые аборигены» хуже развивают мелкую моторику, что замедляет овладение письмом в детсаду. Планшет не заменяет карандаш на этапе формирования навыков.

  • Курсив: спорный must-have
    Законы, обязывающие учить курсив, вызывают споры. Большинство экспертов считают: важен сам процесс письма, а не конкретный стиль.

  • Профессиональный взгляд
    Журналисты, инженеры и программисты всё реже пишут от руки, но в обучении этот навык остаётся ключом к грамотности. Пока неясно, что теряет мозг, если пропустить этап «рука-буква».

Вывод: рукописное письмо не умирает — оно трансформируется из повседневного инструмента в фундаментальный навык раннего развития, без которого рискуем ослабить базу для чтения и мышления.

by beardyw • 18 августа 2025 г. в 10:37 • 104 points

ОригиналHN

#cognitive-science#neuroscience#education#handwriting#motor-skills#memory#writing#digital-technology#child-development

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

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

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 • 172 points

ОригиналHN

#python#pexpect#cli#tmux#bash#api#openapi#websocket#yaml

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

  • Участники спорят, нужен ли MCP (Model Context Protocol): кто-то считает его лишним слоем, другие — полезным способом дать LLM структурированные инструменты.
  • Критика: MCP ограничивает агента набором команд, не решает безопасность, дублирует OpenAPI и заставляет LLM учиться новому формату вместо bash/API.
  • Альтернативы: прямое обращение к HTTP/CLI/WebSocket (UTCP), YAML-описание тулов (hooks_mcp), eval в песочнице (runjs, Bubblewrap).
  • Практические проблемы: при 100+ тулов агент путается; приходится писать кучу обвязок вместо «просто вызвать API».
  • Общий вывод: MCP пока выглядит сыро, требует лишних усилий и не даёт очевидных преимуществ перед строками/bash/API.

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 • 279 points

ОригиналHN

#medical#ophthalmology#eye-surgery#lasik#icl#prk#smile#ortho-k

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

  • Обсуждение сосредоточено на новом методе «молекулярной хирургии» для коррекции зрения без лазера.
  • Участники сравнивают его с LASIK, PRK, SMILE и Ortho-K, отмечая меньшую травматичность и потенциальную обратимость.
  • Поднимаются вопросы о применении при астигматизме, кератоконусе, ночных ореолах и возрастной дальнозоркости.
  • Некоторые делятся личным опытом: кто-то прошёл PRK и жалуется на сухость, кто-то не кандидат из-за тонкой роговицы.
  • Упоминаются альтернативы — ICL, интрастромальные кольца, склеральные линзы.
  • Есть скепсис: «очковая индустрия» может тормозить внедрение, а название метода пугает.

Rails Charts Using ECharts from Apache (github.com)

rails_charts — гем для Rails, строит графики через Apache eCharts.
Поддерживает Bar, Line, Pie, Scatter, Radar, Candlestick, Heatmap, Treemap, Funnel, Gauge, Tree, Sunburst, Sankey, Boxplot, Parallel, Graph, Liquidfill.

Установка

# Gemfile
gem "rails_charts"

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

<%= line_chart User.group_by_day(:created_at).count %>
<%= bar_chart Order.group(:status).count %>
<%= pie_chart Product.group(:category).sum(:price) %>

Настройка

# config/initializers/rails_charts.rb
RailsCharts.configure do |config|
  config.height = 400
  config.width  = '100%'
  config.theme  = 'dark' # light | dark
end

Примеры

  • Line
<%= line_chart(
      User.group_by_month(:created_at).count,
      title: 'Новые пользователи',
      xtitle: 'Месяц',
      ytitle: 'Кол-во'
    ) %>
  • Candlestick
<%= candlestick_chart(
      Stock.pluck(:date, :open, :close, :low, :high),
      title: 'Цены акций'
    ) %>
  • Heatmap
<%= heatmap_chart(
      Visit.group(:day_of_week, :hour).count,
      title: 'Посещения по часам'
    ) %>

Форматы данных

  • Hash
  • Array
  • ActiveRecord::Relation

Доп. опции

  • height, width, colors, library (любые параметры eCharts)
  • theme: 'dark' — встроенные темы
  • defer: true — отложенная загрузка

Лицензия

MIT

by amalinovic • 18 августа 2025 г. в 09:00 • 77 points

ОригиналHN

#ruby#rails#echarts#data-visualization#gems#graphing#github

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

  • Gem вдохновлён Chartkick, но добавляет недостающие типы диаграмм и больше кастомизации.
  • Пользователи отмечают «календарную» диаграмму как интересную, интересуются настройкой цветов и тултипов.
  • Если нужны новые типы графиков, библиотека выглядит достойной альтернативой Chartkick.

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

  • GeoToy — это «Shadertoy для геометрии»: вместо цвета пикселя функция возвращает вершины, поэтому куб рисуется 36 вызовами, а не 921 600.
  • Похож на DSL для 3D-моделей; пример «temple» помогает быстрее понять синтаксис.
  • Материалы задаются не кодом, а через UI (три пиктограммы → «materials») и используют трипланарное отображение без UV.
  • Анимации пока нет, но пользователи просят добавить переменную вроде iTime из Shadertoy.
  • Проект вызывает ассоциации с Structure Synth и geometry-шейдерами, но последние считаются трудными для оптимизации.

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 • 575 points

ОригиналHN

#html#nodejs#dom#offline-apps

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

  • Hyperclay — это NodeJS-сервер + клиентская библиотека, которая сохраняет изменения DOM прямо в исходный .html-файл, обновляя его на лету.
  • Идея вызывает ассоциации с TiddlyWiki, Webstrates и даже HTA-архивами Windows 98, но делает акцент на многопользовательской работе и версионировании.
  • Участники обсуждают проблемы локального file:// (CORS, модули), безопасность, ограничения iOS и то, что без сервера изменения не сохраняются.
  • Некоторые делятся своими однофайловыми решениями: шифровальщик, Asteroids, «твиттер» на git-коммитах и т.д.
  • Сообщество просит открытый код, нормальную документацию и понятную схему версионирования/обновления приложений.

The Block Stacking Problem (sites.pitt.edu)

1. Введение
Поставим однородные блоки шириной 2 ед. на край стола. Казалось бы, существует предел, насколько далеко можно выдвинуть верхний блок, не опрокинув всю башню. Однако оказывается, что при достаточном количестве блоков выдвижение может быть сколь угодно большим. Это вызывает удивление: почему башня не падает?

2. Три загадки

  • Загадка 1 (4 блока). Четвёртый блок можно так расположить, что он полностью окажется за краем стола.
  • Загадка 2 (10 блоков). При большем числе блоков выдвижение растёт без ограничения.
  • Загадка 3. Можно ли «перейти к пределу» и получить бесконечную башню, бесконечно выступающую за стол? Ответ оказывается парадоксальным: либо башни не будет вовсе, либо она не выйдет за край.

3. Принципы равновесия

  • Моменты сил и центр масс определяют устойчивость.
  • Система устойчива, если вертикаль, проходящая через общий центр масс, пересекает опорную поверхность.

4. Пример из 4 блоков

  • Верхний блок: выдвигаем на ½ ширины.
  • Два верхних: их общий центр масс должен быть над краем второго блока → суммарное смещение ½ + ¼ = ¾.
  • Три верхних: добавляем 1/6 → 11/12.
  • Все четыре: добавляем 1/8 → суммарное смещение крайнего блока 25/12 ≈ 2.08 > 2.

5. Общая формула для n блоков
Смещение k-го блока (сверху):
[ d_k = \frac{1}{2k} ]
Суммарное смещение верхнего блока:
[ D_n = \sum_{k=1}^{n} \frac{1}{2k} = \frac{1}{2}H_n ]
где ( H_n ) — n-е гармоническое число. Поскольку ( H_n \sim \ln n ), выдвижение растёт неограниченно.

6. Логарифмическое приближение

  • ( D_n \approx \frac{1}{2}\ln n ).
  • Доля блоков, полностью выступающих за край, стремится к 0.
  • Центры масс под-стеков располагаются логарифмически.

7. Бесконечная башня?

  • Проблема: при ( n \to \infty ) высота башни тоже стремится к бесконечности.
  • Круги: если заменить блоки на круги, можно получить бесконечную башню конечной высоты, но она не выйдет за край стола.
  • Переиндексация: при другой нумерации блоков можно построить «широкую» бесконечную башню, но она будет лежать полностью на столе.

8. Заключение
Физика позволяет конечным башням выступать сколь угодно далеко. Однако попытка «перейти к пределу» приводит к парадоксам: либо башня исчезает, либо не выходит за край.

by lisper • 18 августа 2025 г. в 06:01 • 112 points

ОригиналHN

#physics#mathematics#harmonic-series#overhang-problem#center-of-mass#moment-of-force

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

  • Участники обсуждают задачу о максимальном свесе стопки блоков и её вариации.
  • Отмечают, что в 2007 г. найдены «оптимальные» решения, а также упоминают смежную задачу Overhang Problem без ограничения «один блок на уровень».
  • Поднимают вопросы о влиянии размеров блоков, коэффициента трения и возможности «спрятать» блок полностью под столом.
  • Хвалят стиль статьи: автор делится интуицией, а не хвастается знаниями, и обсуждают, насколько трудно писать так просто о сложном.
  • Делятся ссылками на свежие видео (Bazett, Lamb), где рассматриваются параболические «улучшенные» стопки и расчёты крутящих моментов.

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 • 231 points

ОригиналHN

#systemd#security#linux#hardening#service#privileges

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

  • Предложена утилита shh, которая по логам strace автоматически подбирает параметры hardening для systemd-сервисов.
  • Комментаторы отмечают, что дистрибутивы не включают жёсткие настройки по умолчанию: боятся сломать edge-case’ы и получить поток баг-репортов.
  • Обсуждается идея общего репозитория с готовыми «жёсткими» unit-файлами для популярных сервисов.
  • Утилита systemd-analyze security и встроенный механизм credentials systemd названы полезными инструментами повышения безопасности.
  • Несколько человек поправили: правильное написание — «systemd», а не «SystemD».