Комментарии (20)
- Использование Datalog-подобных систем в разных контекстах: от CozoDB до CodeQL и от Rust до GPU-фреймворков.
- Обсуждение того, какие именно технологии используются в продакшене: от Datomic до CozoDB и от Soufflé до CodeQL.
- Разговор о том, какие технологии используются для запросов к данным: от SQL-подобных до Datalog-подобных.
- Обсуждение того, какие технологии используются для запросов к данным в контексте GPU: CUDA, HIP и SPIR-V.
Show HN: A CSS-Only Terrain Generator 🔥 Горячее
Layoutit Terra - это интерактивный генератор рельефа на CSS, позволяющий создавать разнообразные ландшафты с настраиваемыми параметрами. Инструмент предлагает выбор между типами рельефа (пампы, холмы, горы) и биомами (умеренный, арктический, пустынный), а также контроль над размером мира и покрытием суши. Пользователи могут детально настраивать камеру через параметры вращения, наклона и увеличения, добавляя анимацию к созданным ландшафтам.
Генератор поддерживает экспорт результатов в多种 форматы, включая CSS, высотные карты, VOX, TXT и PNG, что обеспечивает гибкость использования. Функции импорта, отмены/повтора действий, а возможность копировать код для встраивания или открывать его в Codepen упрощают интеграцию в другие проекты. Несмотря на раннюю версию (v0.0.1), Layoutit Terra уже предоставляет мощные возможности для создания детализированных CSS-ландшафтов с минимальными усилиями.
Комментарии (80)
- Пользователи отмечают, что «CSS-only»-демо всё же использует JS для интерактивности, хотя рендеринг ландшафта действительно на 100 % CSS.
- Визуально демо напоминает RCT, SimCity 2000, Populous и другие изометрические «тайкун»-игры, вызывая ностальгию.
- Несколько человек сообщили о проблемах с производительностью: при включённом JS в Firefox 144 и Chrome 131 на Windows 10/11 рендеринг занимает 100-200 мс на обновление кадра, что приводит к просадкам фпс.
- Автор ответил, что в будущих версиях планируется добавить реки и водопады, а также улучшить производительность.
Комментарии (128)
I feel like there are competent, competing visions talking past each other on the subject. There's kind of a spectrum:1. Everything is a monolith. Frontend, backend, dataplane, processing, whatever: it's all one giant, tightly coupled vertically-scaled ball of mud. (This is insan
Chaining FFmpeg with a Browser Agent
Представлен 100X.Bot - платформа "всё-в-одном" для AI-агентов, позиционируемая как решение для масштабирования возможностей искусственного интеллекта. Продукт обещает объединить различные функции AI в единую систему, позволяя пользователям работать с несколькими инструментами искусственного интеллекта через единый интерфейс.
Название платформы "100X" намекает на амбициозную цель - предоставить пользователям возможность повысить эффективность в 100 раз по сравнению с традиционными методами. Хотя конкретные детали функционала не раскрыты, платформа явно нацелена на профессиональных пользователей и бизнес-сегмент, ищущий способы интеграции и оптимизации работы с различными AI-решениями.
Комментарии (52)
- Обсуждение в основном вращается вокруг сложного синтаксиса FFmpeg, его крутого подхода к обработке видео и того, что он остаётся стандартом де-факто, несмотря на это.
- Участники спорят о том, насколько трудным является синтаксис и нуждается ли он в улучшении, или же это просто отражает сложность самого видео.
- Некоторые участники подчеркивают, что FFmpeg — это единственный инструмент, который действительно работает, и что его сложность — это просто отражение сложности самого видео.
- Другие участники утверждают, что существуют альтернативы, такие как GStreamer, но они не получили широкого распространения, потому что FFmpeg остаётся стандартом де-факто.
- Также обсуждается, что LLM и инструменты вроде ChatGPT могут помочь пользователям справляться с синтаксисом FFmpeg, делая его более доступным.
When your hash becomes a string: Hunting Ruby's million-to-one memory bug
Разработчик Ruby-гема Karafka столкнулся с редким, но критическим багом, когда 2700 идентичных ошибок NoMethodError: undefined method 'default' for an instance of String обрушили систему. Ошибка возникала при доступе к elem[:partition] в FFI::Struct, хотя код нигде не использовал метод #default, характерный для Hash.
Исследование показало, что проблема в версиях FFI ниже 1.17.0, где отсутствуют write-барьеры, позволяющие сборщику мусора Ruby освобождать внутренние Hash-объекты. После освобождения память могла перераспределяться под другие объекты, например, строки. Баг проявляется с вероятностью "один к миллиону", но катастрофичен по последствиям. Пользователи использовали Alpine Linux с musl libc, что могло усугубить ситуацию из-за особенностей компиляции и выравнивания структур.
Комментарии (59)
- Обсуждение выявило, что причиной проблемы была давно исправленная ошибка в ffi, а не в Ruby или в коде клиента.
- Участники спора оспаривают, стоит ли считать статью «LLM-шлаком» из-за плохого стиля, даже если сама техническая информация в ней точна.
- Некоторые участники считают, что стиль может быть вызван тем, что автор предпочитает кодить, а не писать, и что технически важная информация была доставлена.
- Другие участники спора отмечают, что статья была полезна и что важно сосредоточиться на техническом содержании, а не на стиле написания.
Комментарии (15)
I have built something similar for kids once, also using tensorflow: a game where you control a goal keeper with your body. Optionally kids (ok and adults) can color the goal keeper(https://dibulo.com/world/frutballTensorflow.js made it easy and it was quite fun to build. I still
When Soviet-made cars roamed Singapore roads
К сожалению, предоставленный фрагмент содержит только навигационную структуру сайта Remember Singapore, но не включает основное содержание статьи "When Soviet-Made Cars Roamed Singapore Roads". В тексте отсутствует ключевая информация о советских автомобилях, их использовании в Сингапуре, историческом контексте или личных воспоминаниях.
Доступны только ссылки на разделы сайта, посвященные заброшенным, отреставрированным, снесенным и забытым местам Сингапура, но сама статья о советских машинах не представлена в предоставленном отрывке. Для получения точного пересказа потребуется полный текст статьи.
Комментарии (69)
- Лада была символом советского автопрома, но качество и надёжность оставляли желать лучшего, что породило множество анекдотов и мемов.
- В СССР и странах Восточной Европы Лада была первым автомобилем для многих семей, но её качество было настолько плохим, что владельцы часто привыкали к тому, что машина может в любой момент сломаться.
- В странах, где Лада была экспортирована, она часто была первым автомобилем для молодых водителей, но её репутация была испорчена из-за плохого качества.
- Несмотря на это, Лада была доступной и простой в обслуживании, что делало её привлекательной для тех, кто не мог позволить себе более дорогие автомобили.
Комментарии (21)
Good progress this month! Good to see it running on Windows now, even if I don't use Windows myself anymore. That'll help boost adoption once it releases. I always wonder why there are no download links. Alpha, beta, something at least. I’m impressed how well Google maps works al
Комментарии (9)
Arena Allocator is great, especially for periodic frame based allocations, e.g. rendering loop, game loop, request handling, etc. You just reset the arena at the end of every frame. It has the feature to reset and retain the memory allocated underneath. It's just a reset of the a
Defeating KASLR by doing nothing at all
Исследователи Project Zero обнаружили уязвимость в защите KASLR на устройствах Android с процессорами arm64. Оказалось, что из-за поддержки горячего подключения памяти (memory hotplug) линейное отображение ядра больше не рандомизируется, а PHYS_OFFSET всегда имеет фиксированное значение 0x80000000. На Pixel-телефонах загрузчик дополнительно распаковывает ядро по одному и тому же физическому адресу (0x80010000) при каждой загрузке, что делает возможным статическое вычисление виртуальных адресов для любых данных ядра.
Эта уязвимость позволяет злоумышленникам с примитивом для произвольной записи обходить KASLR без сложных техник утечки адресов. Исследователь Seth Jenkins продемонстрировал, как с помощью формулы phys_tovirt(x) = ((x) - 0x80000000) | 0xffffff8000000000 можно точно вычислять виртуальные адреса для ядерных структур, таких как modprobe_path. Команда разработала инструмент bpf_arb_read для чтения экспортируемых переменных ядра, что упрощает эксплуатацию этой уязвимости.
Комментарии (7)
- Hendrikto сообщил о двух проблемах: отсутствии рандомизации линейного отображения и статичном физическом адресе загрузки ядра в Pixel, но обе считаются ожидаемым поведением.
- Google Pixel может добавить рандомизацию физических адресов ядра позже, но конкретных планов по устранению проблем нет.
- i-con указывает на параллель с уязвимостью в KVM (проект Rain) и сомневается в необходимости постоянного отображения всей физической памяти.