Hacker News Digest

Обновлено: 23 ноября 2025 г. в 22:42

Постов: 4474 • Страница 221/448

The Weird Concept of Branchless Programming (sanixdk.xyz)

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

Основная идея заключается в замене условий на манипуляции с битами. Например, вычисление модуля числа без ветвления: с помощью арифметического сдвига вправо на 31 бит получается маска (0 для неотрицательных, -1 для отрицательных), затем применяются сложение и XOR для инверсии знака. Аналогично, функция clamp, ограничивающая значение диапазоном, реализуется через вычитание и побитовое И с маской, что исключает проверки if.

Такой подход не только ускоряет выполнение за счёт линейного потока инструкций, но и повышает детерминированность, что критично в криптографии и высокопроизводительных вычислениях. Хотя код становится менее читаемым, выигрыш в производительности оправдывает его использование в узких местах.

by judicious • 28 сентября 2025 г. в 16:40 • 124 points

ОригиналHN

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

  • Обсуждаются техники и преимущества branchless-программирования для оптимизации кода и избежания штрафов за предсказание переходов.
  • Отмечается, что современные компиляторы и процессоры с продвинутым предсказанием ветвлений часто эффективно преобразуют условные конструкции в безветвевые (например, с помощью cmov).
  • Подчеркивается применение branchless-подходов в криптографии для защиты от атак по времени, а также их критическая важность в GPU-программировании.
  • Упоминаются потенциальные проблемы с неопределенным поведением (UB) и необходимость проверки ассемблерного вывода компилятора при низкоуровневой оптимизации.
  • Затрагиваются исторические и современные особенности архитектур процессоров (x86, ARM, RISC-V) в контексте выполнения условных операций.

Why I'm not rushing to take sides in the RubyGems fiasco (justin.searls.co)

Автор выражает сомнения в однозначности ситуации вокруг конфликта в RubyGems, подчёркивая, что публичная дискуссия сильно упрощена и сводится к нарративу «альтруисты против корпораций», хотя реальность сложнее. Он указывает на давний неразрешённый конфликт между сторонами, где одна активно высказывается публично, а другая хранит молчание, что оставляет рядовых разработчиков в неведении и тревоге.

Ключевая проблема — запутанное управление экосистемой Ruby, разделённое между разными группами: разработчиками языка Ruby, инструментами RubyGems/Bundler и хостингом RubyGems.org. Исторически эти части развивались отдельно, а recentние слияния (например, поглощение Ruby Together Ruby Central в 2022 году) усугубили неразбериху в правах доступа и ответственности, что теперь вылилось в публичный кризис доверия.

by felipemesquita • 28 сентября 2025 г. в 15:48 • 119 points

ОригиналHN

#ruby#rubygems#rubycentral#bundler#opensource#shopify#github

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

  • Обсуждение касается конфликта вокруг RubyGems и Ruby Central, где ключевой фигурой является André Arko, чье поведение и профессиональные действия ставятся под сомнение.
  • Участники отмечают предвзятость и неоднозначность представленных точек зрения, включая мнение Джастина Сёрлса, который, хотя и считается авторитетом, может быть необъективен из-за связей с Shopify.
  • Поднимается вопрос финансирования open-source: должна ли работа оплачиваться пропорционально вкладу, и как действия спонсоров (как в случае с Shopify) влияют на проекты.
  • Обсуждаются юридические и этические аспекты, включая обвинения в плагиате кода и потенциальные судебные разбирательства, что заставляет многих участников избегать публичных комментариев.
  • В целом, дискуссия сводится к необходимости прозрачности и добросовестности со всех сторон для разрешения конфликта и обеспечения устойчивости open-source проектов.

The AI coding trap (chrisloy.dev) 🔥 Горячее 💬 Длинная дискуссия

ИИ-кодинг переворачивает традиционный процесс разработки: вместо долгого обдумывания задачи и последующего написания кода разработчики теперь генерируют код мгновенно с помощью ИИ, а затем тратят время на его осмысление и интеграцию в сложные системы. Это создаёт парадокс — хотя скорость написания кода растёт в разы, общая продуктивность в доставке работающего ПО увеличивается лишь на ~10%, так как основное время уходит на тестирование, исправление ошибок и документацию.

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

by chrisloy • 28 сентября 2025 г. в 15:43 • 620 points

ОригиналHN

#llm#programming#software-development#productivity#coding-practices#team-management

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

  • Использование ИИ в программировании требует тщательного планирования и проверки, аналогично традиционной разработке, иначе код становится нестабильным.
  • ИИ эффективен для быстрого создания прототипов и решения рутинных задач (80% работы), но финальную доработку и интеграцию (20%) выполняет человек.
  • Существует риск снижения глубины понимания кода и качества обучения новичков при чрезмерном reliance на ИИ-генерацию.
  • Инструменты ИИ наиболее полезны как "сверхопытные pair-программисты" для обсуждения идей, рефакторинга и поиска решений, а не как автономные кодогенераторы.
  • Текущие ИИ-агенты не заменяют junior-разработчиков, так как не способны к обучению, уточнению требований и обладают ограниченным контекстом системы.

Scm2wasm: A Scheme to WASM compiler in 600 lines of C, making use of WASM GC (git.lain.faith)

Разработан экспериментальный компилятор Scheme в WebAssembly, который автор сам называет «очень плохим» и минималистичным. Он написан преимущественно на C (97.2%) и способен преобразовывать код Scheme в валидный WASM-модуль, который затем можно запускать через Wasmtime.

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

by todsacerdoti • 28 сентября 2025 г. в 15:43 • 172 points

ОригиналHN

#scheme#webassembly#wasm-gc#c#wasmtime#asm.js#compiler#oop

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

  • Упомянуты проекты на WebAssembly: минимальный OOP рантайм, Forth, компилятор в твите и книга о WebAssembly.
  • Обсуждается компилятор Scheme в WebAssembly (Guile Hoot), его особенности и поддержка WASM-GC.
  • Затронуты технические вопросы: возможность использования как интерпретатора, поддержка tail call и call/cc.
  • Отмечается важность самодостаточных инструментов и независимости от платформ.
  • Поднята тема различий между Asm.js и WebAssembly в контексте исторического развития.

NJ theme park puts animatronic dinosaurs on Facebook Marketplace (gizmodo.com)

Тематический парк Field Station: Dinosaurs в Нью-Джерси закрывается в ноябре и выставил своих аниматронных динозавров на продажу через Facebook Marketplace. Цены варьируются от $500 до $2900 за экземпляр — например, спинозавр длиной 52 фута стоит $2900, а анкилозавр — $2100. Некоторые модели оснащены голосовыми модулями и ограниченной подвижностью.

Покупатели должны самостоятельно организовать демонтаж и транспортировку гигантских фигур. Парк, работавший с 2012 года, не смог остаться на плаву даже после участия в реалити-шоу о помощи бизнеса. До закрытия запланированы специальные мероприятия, включая ночные экскурсии и день посещения с собаками.

by ohjeez • 28 сентября 2025 г. в 15:40 • 117 points

ОригиналHN

#facebook-marketplace#animatronics#dinosaurs#parks#ecommerce#meta

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

  • Пользователи обсуждают продажу и покупку аниматронных динозавров, отмечая выгодные предложения и высокую стоимость доставки.
  • Упоминаются различные тематические парки и достопримечательности с динозаврами по всему миру, а также личный опыт их посещения и обслуживания.
  • Обсуждается исторический контекст и ностальгия по старым аттракционам, таким как "Lost World" или динозавры из Pacific Science Center.
  • Затрагиваются практические сложности владения большими конструкциями, включая реакцию соседей или ТСЖ и логистику.
  • Поднимается вопрос о реалистичности моделей, в частности отсутствии перьев у некоторых видов, и предлагаются альтернативные способы их приобретения или создания.

What’s New in PostgreSQL 18 – a Developer’s Perspective (bytebase.com)

PostgreSQL 18 добавляет нативную поддержку UUID v7 через функцию uuidv7(), что позволяет использовать UUID в качестве первичных ключей без потери производительности благодаря их последовательной природе. Это устраняет необходимость в сторонних расширениях или реализации генерации на уровне приложения.

Также введены VIRTUAL generated columns — теперь вычисляемые столбцы по умолчанию генерируются при чтении, а не записи, что экономит место на диске и избегает перезаписи таблиц при их добавлении. Эти изменения упрощают разработку, делая работу с базой данных более гибкой и эффективной.

by datelligence • 28 сентября 2025 г. в 15:27 • 91 points

ОригиналHN

#postgresql#uuid#databases#sql#performance#data-modeling

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

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

She Sent Her iPhone to Apple. Repair Techs Uploaded Her Nudes to Facebook (2021) (vice.com)

Женщина из Орегона отправила iPhone в Apple на ремонт, а сотрудники подрядчика компании выложили её обнажённые фото и видео в её же Facebook. Инцидент произошёл в 2016 году, но стал известен лишь сейчас из-за судебного разбирательства между Apple, ремонтной компанией Pegatron и страховщиком. Apple выплатила пострадавшей многомиллионное возмещение за вторжение в частную жизнь и моральный ущерб.

Этот случай демонстрирует, что даже при жёстком контроле Apple над ремонтной инфраструкторией гарантировать конфиденциальность невозможно. Компания годами лоббирует ограничение доступа к ремонту, аргументируя это рисками для безопасности, но здесь утечка произошла внутри её собственной цепочки. Пользователи часто вынуждены отправлять устройства в непрозрачные сервисные центры, лишаясь контроля над личными данными. Открытый рынок ремонта позволил бы людям выбирать проверенных мастеров или чинить устройства самостоятельно.

by janandonly • 28 сентября 2025 г. в 15:09 • 79 points

ОригиналHN

#apple#iphone#privacy#data-breach#pegatron#facebook#meta

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

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

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

  • Предложены инструменты для конвертации HTML в PDF: браузерные решения (headless Chrome, Puppeteer, Playwright), open-source (WeasyPrint, Gotenberg, Pandoc) и коммерческие (Prince XML).
  • Обсуждаются нюансы: важность настройки print CSS для корректной пагинации, возможность обхода браузера через прямую генерацию PDF (Apache PDFBox, Typst).
  • Упомянуты альтернативы: архивация страниц в единый HTML-файл (SingleFile), конвертация из Markdown (KeenWrite), обратная задача — PDF в HTML для доступности.
  • Отмечена надежность браузерного подхода для сложных версток, но также ресурсоемкость и сложность поддержки такого решения.
  • WeasyPrint получил несколько положительных отзывов за стабильность и простоту интеграции, особенно в Django-средах.

Show HN: Toolbrew – Free little tools without signups or ads (toolbrew.co)

Библиотека toolbrew предлагает набор чистых и полезных инструментов для разработчиков, фокусируясь на удобстве использования и минималистичном дизайне. Включает утилиты для работы с текстом, данными, кодом и веб-разработкой, такие как конвертеры, генераторы и анализаторы. Все инструменты открыты для модификации и интеграции в проекты.

Особенность — отсутствие лишних зависимостей и простота внедрения, что ускоряет рабочий процесс. Например, можно быстро форматировать JSON, шифровать строки или проверять валидность кода. Практический вывод: снижает потребность в поиске разрозненных сервисов, экономя время.

by andreisergo • 28 сентября 2025 г. в 14:40 • 236 points

ОригиналHN

#json#web-development#utilities#code-analysis#data-processing#open-source#pdf#ssh

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

  • Пользователи обсуждают полезные онлайн-инструменты (CyberChef, easyinvoicepdf, cobalt.tools, simonwillison.net) и делятся своими проектами.
  • Поднимаются вопросы безопасности и доверия к сторонним инструментам, а также желание видеть больше информации об их надежности.
  • Предлагаются идеи для новых функций: улучшение мобильного интерфейса, добавление поиска, агрегатора инструментов, генератора QR-кодов без трекеров.
  • Обсуждаются конкретные технические нужды: мерж PDF, проверка ссылок, генерация SSH-ключей, сетевые утилиты.
  • Отмечается проблема с YouTube-загрузчиком и predatory-моделями монетизации некоторых сервисов (например, QR-кодов).

A replica of Citizen Quartz watch based on Harel's paper introducing statecharts (andyjakubowski.github.io)

Статья рассказывает о Citizen Watch — японской компании, известной производством высококачественных часов. Она подчёркивает инновационный подход бренда, включая использование экологичных технологий, таких как световые батареи Eco-Drive, которые заряжаются от любого источника света. Это делает часы удобными и долговечными, устраняя необходимость в замене батареек.

Также упоминается приверженность компании устойчивому развитию и корпоративной социальной ответственности. Citizen активно участвует в экологических инициативах и поддерживает глобальные проекты, что укрепляет её репутацию не только как производителя точных приборов времени, но и как социально ориентированного бренда.

by all2 • 28 сентября 2025 г. в 14:00 • 121 points

ОригиналHN

#statecharts#xstate#stately#state-machine#citizen#eco-drive

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

  • Участники делятся опытом создания подобных проектов на XState и обсуждают преимущества визуализации состояний через Stately Editor.
  • Рекомендуется классическая работа Харела по Statecharts как полезное расширение для проектирования систем на основе state machine.
  • Отмечается эстетичный дизайн страницы и поднимаются технические вопросы, такие как быстрая разрядка батареи и неточное отображение её уровня.
  • Обсуждаются сложности и разногласия в современных реализациях statecharts, а также потенциальные улучшения, например, добавление новых типов guard-условий.
  • Высказываются идеи о создании графического редактора statecharts, реализованного самими statecharts.