Hacker News Digest

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

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

Heroku Support for .NET 10 (heroku.com)

Предоставленный фрагмент содержит навигационное меню сайта Heroku, но не содержит самой статьи о поддержке .NET 10 LTS. В разделе "Languages" упоминается .NET как один из поддерживаемых языков, но нет конкретной информации о версии 10 LTS или детальных технических деталей.

В меню также есть ссылки на различные продукты Heroku, включая Heroku Platform, Heroku AI, Heroku Data Services, Heroku Enterprise и Heroku Elements Marketplace, что указывает на широкий спектр услуг платформы. Однако без доступа к полной статье о поддержке .NET 10 LTS невозможно предоставить точный пересказ её содержания.

by runesoerensen • 11 ноября 2025 г. в 22:18 • 100 points

ОригиналHN

#heroku#aws#vercel#netlify#dotnet#cloud-native-buildpacks

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

  • Обсуждение началось с жалоб на стоимость Heroku, которая оказалась выше AWS даже с учетом DevOps-инженера.
  • Участники вспомнили, что Heroku когда-то был первым выбором для MVP и мелких проектов, но теперь у них есть альтернативы вроде Vercel и Netlify.
  • Разговор перешел к тому, что экосистема .NET и инструменты вроде Cloud Native Buildpacks всё ещё открыты и могут быть использованы где угодно.
  • Несколько человек отметили, что даже несмотря на то, что Heroku всё ещё работает, он уже давно не является конкурентоспособным вариантом для большинства проектов.

Ditch your (mut)ex, you deserve better (chrispenner.ca)

Современные компьютеры имеют несколько ядер, но инструменты синхронизации, такие как мьютексы и семафоры, практически не эволюционировали с момента их создания. Автор утверждает, что управление разделяемым состоянием между потоками остается сложной задачей, и приводит пример банковского счета с операциями пополнения и снятия средств. В многопоточном режиме возникает проблема гонки данных: когда два потока одновременно пытаются снять деньги с одного счета, каждый может проверить баланс, увидеть достаточное количество средств, но после снятия обоими потоками итоговый баланс станет отрицательным.

Эта ошибка особенно коварна, так как она возникает при добавлении многопоточности в ранее корректный код. Автор подчеркивает, что даже простая проверка баланса может прерваться планировщиком потоков, что приводит к некорректным результатам. Статья демонстрирует, как эволюция однопоточного приложения в многопоточное может introduce критические ошибки в совершенно无关 частях кода без каких-либо изменений в этих частях.

by commandersaki • 11 ноября 2025 г. в 22:11 • 110 points

ОригиналHN

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

  • Проблемы традиционных мьютексов (раздельность с данными, сложность композиции) решаются в Rust объединением мьютекса и данных, что упрощает код и обеспечивает статические гарантии.
  • STM (Software Transactional Memory) предлагается как альтернатива с лучшей композицией, с примерами в Haskell и поддержкой в Kotlin, Rust, Scala, Clojure и других языках.
  • STM не решает проблему дедлоков и не всегда подходит; альтернативы включают избегание общего изменяемого состояния (акторные модели, каналы) или его использование в случаях, где необходимо для производительности.
  • Исторический контекст: влияние Haskell, эксперименты с аппаратной поддержкой (Intel x86) и современные тенденции, включая критику отставания от первоначальных амбиций в области языков программирования.

I didn't reverse-engineer the protocol for my blood pressure monitor in 24 hours (james.belchamber.com) 🔥 Горячее

После прививки от гриппа автору предложили 24-часовой мониторинг давления с устройством Microlife WatchBP O3, которое автоматически измеряет давление каждые 30 минут днём и 60 ночью. Обнаружив micro-USB порт на устройстве, он решил анализировать данные без использования официального Windows-приложения WatchBP Analyzer. Устройство распознавалось в Linux как hidraw, но для доступа к данным потребовался запуск Windows в виртуальной машине через Gnome Boxes с перенаправлением USB-устройства.

Анализируя трафик между хостом и устройством через Wireshark и usbmon, автор обнаружил, что данные передаются в 32-байтных пакетах. Первый байт указывает количество значащих битов в пакете, третий байт кодирует систолическое давление, четвёртый — диастолическое, а пятый — пульс. Например, пакет 05 0a 89 71 43 9b соответствовал давлению 137/113 и пульсу 67. Однако полной расшифровки протокола не удалось — остались неопределёнными второй и шестой байты, а также отсутствовали метки времени и данные об Oscillometric signal peak pressure (OPP).

by jamesbelchamber • 11 ноября 2025 г. в 21:25 • 316 points

ОригиналHN

#reverse-engineering#protocol-analysis#wireshark#usb#hidraw#gnome-boxes#linux#windows

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

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

Ultima VII Revisited (github.com)

Разработчики создают новый движок для классической RPG Ultima VII The Black Gate, предлагая альтернативу оригинальному коду. Проект открыт и доступен на GitHub, что позволяет сообществу вносить вклад в развитие. Цель - сохранить дух оригинала, но с современными улучшениями игрового процесса.

Новый движок представляет собой полностью переработанную версию с улучшенным углом обзора камеры, что значительно улучшает визуальный опыт. Разработчики обещают сохранить аутентичность оригинала, добавив при этом современные функции управления и оптимизации. В долгосрочных планах поддержка расширения Serpent Isle, что сделает проект полным переосмыслением всей игровой вселенной Ultima VII.

by erickhill • 11 ноября 2025 г. в 21:18 • 215 points

ОригиналHN

#ultima-vii#game-development#open-source#game-engine#3d-graphics#rpg#github

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

  • @pixelpoet выражает большой энтузиазм по проекту, называя U7 своей любимой игрой и упоминая BG3 как современный пример желаемого геймплея.
  • @khedoros1 задает ключевой вопрос о различиях проекта с Exult, который является ванильной reimplementацией оригинала.
  • Основное отличие заключается в визуальном подходе: проект ближе к "3D Ultima VII" с ротируемыми видами, в отличие от Exult, сохраняющего графику оригинала.
  • Проект предлагает повышенную интерактивность по сравнению с оригиналом и Exult.
  • Видео демонстрируют эти различия в визуальном стиле и геймплейных взаимодействиях.

X5.1 solar flare, G4 geomagnetic storm watch (spaceweatherlive.com) 🔥 Горячее

by sva_ • 11 ноября 2025 г. в 21:18 • 383 points

ОригиналHN

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

'I have a headache' is the best translation for 'I have a headache' and 'I have a headache' at the dinner table, and 'I have a headache' are all related to dinner. 'I have dinner' is a common sentence to say at the dinner table in English. 'I have a headache' is a common phrase in English. 'I have a headache' is also an English sentence with the same meaning as 'I have a headache'. 'I have a headache' means 'I have a headache' in English. 'I have a headache' means 'I have a headache' is an English sentence. 'Do you speak English?' 'Yes, I do.' That is what I said. And I said, 'I have a headache' in English. That's what I said when you asked me what I said when you asked me what I said. Then I said, 'I have a headache' and I said, 'I have a headache' is what I said. I also said, 'I have a headache' in English. It was a sentence in English. 'How are you?' 'I'm fine.' 'Good.' 'Good night.' And then I said, 'I had a headache' and went to sleep. It was a good night. 'Good night.'

But I am not sure if I said that or not because I was tired. I was tired. That's why I went to bed. Good night. Now, I am going to sleep.

So, that's it.

What do you think? I think I will go to bed now. Good night.

Now, I will go to bed. Good night. I am going to sleep now. I'm tired.

So, that is the story about how I went to bed. I hope I will have a good sleep.

So, I will have a good night's sleep. Good night.

So, that's what I said.

In a few minutes, I will be asleep.

Now, I will go to sleep.

Good night.

That's all.

But wait, what did I say?

I said, 'I am going to sleep now. Good night. I will see you tomorrow morning. I will have a good night's sleep.

That's what I said.

And that's the end of the story.

Now, I am going to bed.

Good night.

So, that's what I said.

Now, I will say good night.

And that's the end of the story.

So, good night.

But, wait, I am going to sleep now.

Good night.

So, that is the end.

So, good night.

And that's the end of the story.

So, good night.

Now, I am going to bed.

Good night.

So, good night.

So, I will go to sleep now.

Good night.

So, good night.

So, that is the end.

So, I am going to sleep.

Good night.

So, good night.

So, that is the end of the story.

So, good night.

So, good night.

So, good night.

So, I will see you tomorrow.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So, good night.

So,

Collaboration sucks (newsletter.posthog.com) 🔥 Горячее 💬 Длинная дискуссия

Автор утверждает, что изречение "Если хочешь идти быстро - иди один; если хочешь идти далеко - иди вместе" медленно убивает компании. Он сравнивает сотрудничество с вождением автомобиля: полезно получать навигационную помощь, но вредно постоянно менять водителей или получать комментарии о вождении. В компании PostHog ценят принцип "ты - водитель", нанимают хороших специалистов и не мешают им работать, но избыточное сотрудничество замедляет работу, снижает мотивацию и уверенность.

Причины избыточного сотрудничества включают желание быть полезным, недостаточную конкретность в запросах обратной связи и отсутствие ясности в определении ответственного. Автор предлагает решения: по умолчанию отправлять код (pull requests), а не обсуждать в Slack, и сокращать количество участников в обсуждениях. В компании даже подсчитали 175 упоминаний фразы "давайте обсудим" в Slack, что свидетельствует о проблеме.

by Kinrany • 11 ноября 2025 г. в 20:27 • 404 points

ОригиналHN

#posthog#collaboration#agile#team-management#product-development

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

  • Обсуждение в основном вращается вокруг вопроса, когда коллаборация становится вредной: отсутствие четкого владельца решения, размывание ответственности, «bikeshedding» и замедление процесса.
  • Участники спорят, где именно граница между полезной обратной связью и «параноем» в стиле «дайте мне знать, что вы думаете об этом» и «почему вы не сделали это так, как я бы хотел».
  • Некоторые участники подчеркивают, что не всякая коллаборация вредна — только та, что не имеет четкой структуры и владельца решения.
  • Обсуждение также затрагивает тему, что важно различать «коллаборация» (которая может быть полезной) и «безконтрольная коллаборация» (которая может быть вредной).

The terminal of the future (jyn.dev) 🔥 Горячее

Современные терминалы ограничены решениями, принятыми ещё в 1980-х, и состоят из четырёх компонентов: эмулятора терминала, псевдотерминала (PTY), оболочки (shell) и запускаемых программ. Автор отмечает, что внутренняя структура терминалов — это "куча", где многие решения невозможно изменить из-за исторического наследия. В качестве примера приводится цитата Джулии Эванс: "Внутренности терминалов — это беспорядок. Большая часть этого именно такая, потому что так кто-то решил в 80-х, и теперь это невозможно изменить".

В качестве альтернативы традиционному терминалу автор предлагает использовать Jupyter Notebook как модель для будущего терминала, предлагающую такие возможности, как высококачественное рендеринг изображений, функцию "перезапустить с начала" и возможность редактирования представлений кода и вывода. Статья описывает четыре этапа создания такого терминала: транзакционную семантику, постоянные сессии, структурированный RPC и интерфейс, похожий на Jupyter.

by miguelraz • 11 ноября 2025 г. в 20:11 • 282 points

ОригиналHN

#terminal#jupyter#pty#shell#rpc

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

  • Обсуждение охватывает широкий спектр тем: от философских вопросов о том, что такое терминал и каким он должен быть, до конкретных технических деталей, таких как поддержка изображений, буферов и сессий.
  • Участники обсуждают, какие функции действительно необходимы, и какие являются излишеством, и как они могли бы быть реализованы без нарушения обратной совместимости.
  • Обсуждаются такие темы как встроенная поддержка редактора, возможность встроенной поддержки графики и мультимедиа, и как эти функции могли бы быть реализованы без нарушения существующих стандартов.
  • Участники также обсуждают, какие функции могли бы быть реализованы в будущем, и какие из них уже реализованы в других системах, таких как Jupyter и Emacs.
  • Обсуждается, какие функции могли бы быть реализованы в будущем, и какие из них уже реализованы в других системах, таких как Jupyter и Emacs.

A modern 35mm film scanner for home (soke.engineering) 💬 Длинная дискуссия

Knokke представляет собой новый высокоскоростной сканер 35 мм пленки, который позиционируется как "новая эра сканирования". Устройство предлагает впечатляющие характеристики: разрешение 4064 DPI, динамический диапазон 120 дБ и глубину цвета 48 бит, при этом способно отсканировать всю катушку всего за несколько минут. Сканирование происходит с помощью кастомной оптики и современного сенсора, что обеспечивает высочайшее качество при доступной цене.

Сканер работает на собственном программном обеспечении Korova — легком приложении на C++, нативном для Linux, macOS и Windows. Это позволяет отказаться от устаревших ПК и использовать современный plug-and-workflow. Каждому кадру можно задать индивидуальные настройки, которые повторяются при последующих сканированиях для консистентных результатов. Цена запуска составит €999, включая и сканер, и программное обеспечение.

by QiuChuck • 11 ноября 2025 г. в 19:48 • 232 points

ОригиналHN

#c++#linux#macos#windows

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

  • Стоимость сканера Knokke составляет €999, что вызывает сравнение с ценой на подержанные DSLR-установки и вызывает обсуждение ценообразования.
  • Отсутствие примеров сканов и отсутствие ИК-сенсора для удаления пыли и царапин вызывает критику.
  • Обсуждается, что цена может быть оправдана для энтузиастов, которые ценят дизайн и удобство использования.
  • Некоторые участники обсуждения выражают сожаление, что сканер не поддерживает 120 формат, а также отсутствие автоподатчика.
  • Участники также обсуждают, что стоимость может быть оправдана для тех, кто ищет высокое качество сканирования и готов заплатить за него.

A catalog of side effects (bernsteinbear.com)

Оптимизирующие компиляторы отслеживают эффекты каждой инструкции в промежуточном представлении (IR), которые могут варьироваться от полного отсутствия эффектов до записи в конкретную переменную или полностью неизвестных воздействий. Автор рассматривает эту тему как продолжение предыдущего поста об IR, подчеркивая важность правильных вопросов: не "какой это код?", а "какие эффекты он производит?". Эффекты помогают компилятору определять, можно ли переупорядочивать, дублировать или удалять инструкции, особенно когда речь идет о доступе к памяти, где ключевым фактором является алиасинг (ссылки на один и тот же объект).

В статье представлены два основных подхода к представлению эффектов: битовые множества и списки диапазонов кучи. Автор подробно разбирает пример компилятора Cinder (Python JIT), который использует битсет под названием AliasClass для отслеживания эффектов работы с кучей. Каждый бит в этом множестве представляет отдельное расположение в куче, а операции объединения и пересечения выполняются с помощью побитовых операций. Интересно, что этот подход аналогичен представлению решетки типов в Cinder, где каждый бит неявно представляет множество, а операции над множествами реализованы через битовые операции И и ИЛИ.

by speckx • 11 ноября 2025 г. в 19:44 • 101 points

ОригиналHN

#compiler#jit#cinder#python#memory#bitwise#heap

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

  • Пользователи ожидали, что статья будет про эффект Манделы или уязвимости Spectre из-за заголовка.
  • Один участник отметил, что теперь они случайно прочитали про компиляторы.
  • Завершающий комментарий содержит шутку про "Men in Black" и изменение логотипа Fruit of the Loom.

Agentic pelican on a bicycle (robert-glaser.de)

Роберт Глейзер провел эксперимент, используя агентный цикл «генерация-оценка-улучшение» для создания SVG-изображения пеликана на велосипеде. Модели получали доступ к Chrome DevTools для конвертации SVG в JPG и использовали зрение для самокоррекции. Тестируемые Claude Opus, Sonnet, Haiku, GPT-5 Medium, GPT-5-Codex и Gemini 2.5 Pro делали 4-6 итераций, самостоятельно решая, когда остановиться. Эксперимент основан на бенчмарке Симона Уилльсона, который используют даже лаборатории в маркетинге новых моделей.

Claude Opus добавил цепь и спицы, улучшив механическую достоверность; Sonnet делал тонкие доработки кривых и теней; Haiku за 6 итераций настойчиво исправлял пропорции. GPT-5 Medium и Codex показывали постепенное улучшение, а Gemini 2.5 Pro демонстрировал стабильные результаты. Ключевое открытие: модели способны к самооценке и самокоррекции без детальных указаний, сохраняя дух оригинального абсурдного запроса. Использование единого рендерера обеспечило объективность сравнения.

by todsacerdoti • 11 ноября 2025 г. в 19:40 • 85 points

ОригиналHN

#llm#machine-learning#svg#jpg#generative-ai#iterative-improvement#self-evaluation

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

  • Обсуждение показало, что модели, которые лучше всего справляются с задачей, — это те, которые могут эффективно итеративно улучшать изображение, а не просто добавлять детали.
  • Участники обсуждения отметили, что большинство моделей не способны к качественной ревизии собственных работ, и это может быть связано с тем, что они не могут оценивать собственные результаты.
  • Было высказано предположение, что в будущем может быть введена система, в которой одна модель генерирует изображение, а другая оценивает его и предлагает улучшения.