Modern Perfect Hashing
Автор обсуждает реализацию идеального хеширования для строк, где известный набор строк отображается в целые числа с отверганием остальных. Критикуется подход с использованием PEXT (из-за больших таблиц, отсутствия на ARM и медленной работы на старых x86), предлагается альтернатива из шахматного программирования — "магические битборды". Метод заключается в умножении значения на магическое число (например, 0x28400000U) и сдвиге верхних бит для получения уникальных индексов. Для строк длиной 4 символа это позволяет создать компактную таблицу с 10 записями, где проверка memcmp гарантирует отсутствие ложных срабатываний.
Для строк разной длины можно выбирать различные битовые диапазоны (16, 32 или 64 бита) или их комбинации. В удачных случаях, как с 24-символьными CSS-ключами, удается найти магическое число, дающее прямую индексацию без промежуточной таблицы. Авторы предпочитают меньшие типы данных для компактности кода и возможности перебора вместо случайного поиска. Подход эффективен для наборов в тысячи строк с допустимым временем компиляции.
Комментарии (17)
- Обсуждение началось с вопроса о том, как создать идеальный хеш-функцию для известного набора ключей, и обсуждение затронуло как теоретические, так и практические аспекты, включая использование gperf и других инструментов.
- Участники обсудили, что вместо попыток создать идеальную хеш-функцию, иногда более практичным решением может быть отказ от совершенства в пользу более простого решения, особенно если набор ключей не полностью известен заранее.
- Также было отмечено, что существуют библиотеки, такие как marisa-trie и другие, которые могут быть использованы для эффективного хранения и поиска больших наборов строк, и что они могут быть использованы вместо попыток создать идеальную хеш-функцию.
- Было также упомянуто, что в некоторых случаях может быть более практично использовать простые, но менее идеальные решения, особенно если это позволяет избежать сложностей, связанных с созданием идеальной хеш-функции.
- В конце обсуждение вернулось к вопросу о том, как лучше всего подходить к проблеме создания идеальной хеш-функции для известного набора ключей, и было высказано мнение, что вместо попыток создать идеальную хеш-функцию, иногда более разумно может быть просто использовать существующие инструменты и библиотеки.
Counter-Strike's player economy is in a multi-billion dollar freefall 🔥 Горячее 💬 Длинная дискуссия
Экономика косметики Counter-Strike потеряла $1.75 млрд (25% стоимости) после обновления Valve от 22 октября. Игра, известная своей бесплатной моделью и рынком предметов стоимостью в миллиарды, столкнулась с обвалом из-за изменения правил trade up контрактов. Теперь редкие ножи и перчатки, которые ранее нельзя было получить таким способом, стали доступны для создания из менее ценных предметов второго высшего уровня.
Рынок реагирует паникой: некоторые ножи, как Doppler Ruby Butterfly Knife, упали в цене с $20,000 до $12,000 за короткий период. За последние 16 часов было продано 15 таких ножей, что свидетельствует о массовом сбросе активов. Это изменение делает ранее эксклюзивные предметы доступными для большего числа игроков, радикально снижая их ценность и разрушая экономическую модель, построенную на ограниченном предложении.
Комментарии (514)
- Valve умышленно изменил редкость предметов, что вызвало обвал цен на скины, и теперь они стоят в 10 раз меньше, чем раньше.
- Это вызвало споры о том, что Valve могла бы предвидеть последствия и что это может быть частью стратегии по избежанию регулирования.
- Обсуждение также затронуло вопрос о том, что игроки, которые тратят огромные суммы на скины, могут быть виновны в отмывании денег, и что Valve могла бы получать долю от этих операций.
- Участники обсуждения также отметили, что цены на скины были искусственно завышены, и что Valve могла бы контролировать рынок, чтобы выгодно для себя.
- Наконец, обсуждение подняло вопрос о том, что игроки, которые тратят такие большие суммы на скины, могут быть виновны в отмывании денег, и что Valve могла бы получать долю от этих операций.
React Flow, open source libraries for node-based UIs with React or Svelte
Библиотеки React Flow и Svelte Flow представляют собой мощные open-source решения для создания интерфейсов на основе узлов. Они готовы к использованию сразу после установки и при этом предлагают практически безграничные возможности кастомизации. React Flow интегрируется с экосистемой React, а Svelte Flow - с фреймворком Svelte, предоставляя разработчикам гибкий выбор технологии для реализации визуальных редакторов, диаграмм и других node-based интерфейсов.
Обе библиотеки отличаются продуманной архитектурой, которая позволяет легко создавать сложные интерактивные графы с поддержкой перетаскивания, соединения узлов и масштабирования. Благодаря открытому исходному коду и активному сообществу, решения постоянно развиваются, получая новые функции и улучшения производительности. Это делает их привлекательным выбором как для небольших проектов, так и для корпоративных приложений, требующих визуального представления данных или процессов.
Комментарии (23)
- React Flow и Svelte Flow — мощные, но гибкие библиотеки для построения node-based UI, активно развиваются и имеют обширную экосистему примеров и документации.
- Пользователи отмечают простоту интеграции, готовность кастомизировать ноды и рёбра, а также активную поддержку сообщества.
- Некоторые упоминают отсутствие React Native и Svelte Native поддержки, но при этом отмечают, что можно обернуть в WebView и использовать в мобильных приложениях.
- Пользователи делятся примерами своих проектов, включая IaC-конструктор, визуализатор GitHub Actions, генератор диаграмм организационной структуры и т.д.
- Библиотека MIT-лицензирована, но коммерческое использование без финансовой поддержки разработчиков может вызвать публичное осуждение.
Automating Algorithm Discovery: A Case Study in MoE Load Balancing
Notion — это универсальное рабочее пространство, объединяющее блокнот, базу данных, задачник и вики в одном приложении. Его главная особенность — гибкая система блоков, которые можно перетаскивать и настраивать под любые нужды, от простых заметок до сложных проектов. Пользователи создают персональные дашборды, управляют задачами, ведут базы знаний и даже строят целые рабочие процессы без кода.
Приложение завоевало популярность благодаря минималистичному дизайну и мощным возможностям кастомизации. По данным компании, у Notion более 20 миллионов пользователей по всему миру, включая команды в таких компаниях, как Airbnb, Disney и Pixar. "Мы хотим создать операционную систему для знаний", — отмечают основатели, подчеркивая амбиции стать платформой для управления информацией любой сложности.
Комментарии (55)
- AI-открытый алгоритм балансировки нагрузки в MoE-моделях оказался в 5 раз быстрее, но вызвал споры о том, действительно ли это «открытие» или просто удачная генерация кода.
- Критика в том, что LLM не «открывает» алгоритмы, а лишь генерирует код, который может быть удачным, и что человеческий экспертизе все еще необходима, чтобы проверить и понять этот код.
- Обсуждение также подняло вопрос о том, что если LLM может предложить алгоритм, то он должен быть в состоянии объяснить, как он работает, и что это может быть критично для безопасности и надежности системы.
- Некоторые комментаторы подчеркнули, что вместо того, чтобы полагаться на «открытие» алгоритма, стоит ли это вообще обсуждать, какие именно критерии безопасности и эффективности мы хотим, чтобы будущие системы могли бы быть устойчивы к подобным «открытиям».
Apple loses UK App Store monopoly case, penalty might near $2B 🔥 Горячее 💬 Длинная дискуссия
Apple проиграла дело о монополии в Великобритании, связанное с App Store, где потенциальный штраф может достичь $2 миллиардов. Суд признал, что политика Apple по контролю над распространением приложений и взиманию комиссий создает недобросовестную конкуренцию на рынке. Компания требовала 30% комиссию с всех транзакций в приложениях, не позволяя разработчикам использовать сторонние платежные системы.
Это решение может стать прецедентом для других стран, где также ведутся расследования против App Store. В прошлом году аналогичные иски были поданы в США и ЕС. Для Apple это означает не только финансовые потери, но и необходимость пересмотреть свою бизнес-модель, которая приносила миллиарные доходы годами. Разработчики надеются, что решение приведет к снижению комиссий и большей свободе в установке цен на свои продукты.
Комментарии (303)
- Apple вынуждена будет открыть iOS для альтернативных магазинов и платёжных систем, что сделает невозможным дальнейшее взимание 30% комиссии.
- Судебное разбирательство в Великобритании, в котором Apple обвиняется в злоупотреблении монопольным положением, может привести к необходимости открыть iOS для конкуренции, что является более важным, чем штраф в 1.85 млрд долларов.
- Обсуждение вокруг того, какой процент комиссии считается «справедливым», не имеет смысла, пока Apple может диктовать условия, потому что это не рыночная цена, а налог на доступ к рынку.
- Даже если Apple продолжит взымать 30% комиссии, это не будет иметь значения, если бы они позволили устанавливать приложения из других источников, как на macOS.
- Судебное разбирательство в Великобритании может привести к тому, что Apple будет вынуждена позволить альтернативные магазины приложений, что является более важным, чем штраф в 1.85 млрд долларов.
How memory maps (mmap) deliver faster file access in Go
Memory maps (mmap) в Go позволяют отображать файлы непосредственно в адресное пространство процесса, избегая копирования данных через буферы. Этот подход устраняет необходимость в системных вызовах read/write, позволяя процессору обращаться к файловой памяти так же, как к обычной памяти. Техника особенно эффективна для больших файлов, когда требуется частый доступ к разным участкам данных, так как mmap обеспечивает постоянное время доступа к любой части файла.
Тесты показали впечатляющие результаты: mmap обеспечивает до 25-кратное ускорение по сравнению с традиционным чтением файлов. В одном эксперименте обработка 1.2GB JSON-файла через заняла 0.4 секунды с mmap против 10 секунд с использованием стандартного пак ioutil. Однако mmap имеет ограничения: он не подходит для очень больших файлов, которые могут не поместиться в виртуальном адресном пространстве, и требует осторожного управления при работе с несколькими процессами. Для оптимальной производительности mmap лучше всего работает с файлами, которые считываются целиком или accessed случайным образом, а не последовательно.
Комментарии (118)
- Обсуждение показало, что mmap не всегда быстрее обычного чтения, особенно при последовательном чтении, и что его преимущество в основном в нишевых сценариях, таких как случайный доступ к большим файлам.
- Участники отметили, что mmap требует осторожности при работе с файлами, которые могут быть изменены или усечены, поскольку это может вызвать ошибки доступа.
- Также было отмечено, что в некоторых ситуациях, таких как чтение из файла в последовательном режиме, обычное чтение может быть предпочтительнее, особенно если файл больше размера оперативной памяти.
- Обсуждение также затронуло влияние различных файловых систем и их взаимодействия с mmap, включая то, что некоторые файловые системы могут не поддерживать mmap или могут вести себя неожиданно при его использовании.
- В конце обсуждение подвело к выводу, что выбор между использованием mmap и обычного чтения должен быть сделан на основе конкретного сценария и требований к производительности, а не на основе предвзятого убеждения в превосходстве одного над другим.
/dev/null is an ACID compliant database 🔥 Горячее 💬 Длинная дискуссия
/dev/null в Unix-системах с юмором представлена как база данных, полностью соответствующая принципам ACID. Атомарность обеспечивается тем, что любые записанные данные либо полностью исчезают, либо не записываются вовсе. Согласованность поддерживается инвариантом пустоты — файл всегда остаётся в одинаковом состоянии, независимо от операций. Изолированность проявляется в том, что множественные процессы могут одновременно писать в /dev/null без конфликтов, так как данные никогда не сохраняются. Долговечность гарантирует, что после сбоя система сохраняет своё главное свойство — полное отсутствие данных.
Эта шуточная статья подчёркивает, что /dev/null идеально соответствует всем требованиям ACID-совместимой базы данных, с единственным недостатком — нулевым объёмом хранения. Автор иронизирует, что для расширения пространства нужно обратиться в "корпоративные продажи", которые на самом деле являются им самим. Этот пример демонстрирует, как технические концепции можно рассматривать с неожиданной и забавной стороны.
Комментарии (168)
- Обсуждение вокруг /dev/null как "база данных" выявило, что это скорее метафора, чем реальная технология, и подчеркнуло важность различать хранилище и СУБД.
- Участники обсуждали, что /dev/null не является базой данных, но при этом подчеркнули, что он обеспечивает ACID-свойства и масштабируемость.
- Были подняты вопросы о масштабируемости, отказоустойчивости и соответствии с ACID, а также о том, что такое "база данных" и как она отличается от просто носителя.
- Участники также обсудили, что /dev/null действительно обеспечивает высокую доступность и согласованность, но не является базой данных в строгом смысле.
When is it better to think without words?
Исследования математика Жака Адамара 1940-х годов показали, что выдающиеся математики решали сложные задачи не через слова, образы или уравнения, а через неформальные ощущения: вибрации в руках, бессмысленные звуки или размытые образы. Этот способ мышления отличался от обычного дняdreaming и представлял собой напряженное, сфокусированное состояние без вербализации.
Подсознательная обработка проблем после интенсивной работы над ними приводит к "озарению" - внезапному появлению решения после периода бессознательного инкубации. Однако Адамар описывал иной процесс: математики сознательно, но без слов удерживали проблему в центре внимания, используя метафорические образы (как "лента переменной толщины" для бесконечных рядов). Это позволяет направлять ментальные ресурсы на решение важных задач, превращая подсознание в бесплатного ассистента.
Комментарии (121)
- Люди с нейродивергентным мышлением описывают мыслительный процесс как визуальный, а не вербальный, что вызывает вопросы о том, как они вообще формулируют и передают идеи без слов.
- Среди участников обсуждения есть те, кто считает, что мышление без слов — это нечто, что может быть развито у любого человека, и что это может быть полезно для решения проблем.
- Обсуждается, что мышление без слов может быть полезно для решения проблем, но также может быть трудно выразить эти мысли словами.
- Участники обсуждения также затрагивают вопрос о том, как мыслительный процесс может влиять на способность к обучению и решению проблем.
FocusTube: A Chrome extension that hides YouTube Shorts 💬 Длинная дискуссия
Разработчик создал расширение FocusTube с целью борьбы с прокрастинацией на YouTube Shorts. Проект основан на идее, что человеческая жизнь слишком ценна, чтобы тратить её на бесконечный просмотр коротких видео. Расширение, вероятно, блокирует или ограничивает доступ к разделу Shorts на YouTube, помогая пользователям вернуть контроль над своим временем и вниманием.
Название проекта "FocusTube" прямо указывает на его цель - вернуть фокус при использовании YouTube. Разработчик подчеркивает важность осознанного использования времени, предлагая простой, но эффективный способ борьбы с одной из самых распространенных форм цифровой зависимости в современном мире.
Комментарии (168)
- Обсуждение показало, что Shorts вызывают у пользователей чувство вины, тревоги и страха за будущее поколений, а также вызывает желание блокировать их всеми доступными средствами.
- Участники обменивались ссылками на расширения и фильтры, которые позволяют скрывать Shorts, и обсуждали, какие именно элементы интерфейса можно скрыть или отключить.
- Некоторые участники поделились личными историями о том, как Shorts влияют на их жизнь и продуктивность, и как они пытаются избежать их влияния.
- Обсуждались различные способы блокировки Shorts, включая использование расширений браузера, изменение настроек YouTube и использование альтернативных клиентов.
- Участники также обсудили, какие именно аспекты Shorts вызывают наибольшее беспокойство, включая их влияние на внимание, фокус и психическое здоровье, и как они могут быть уменьшены или устранены.
Date bug in Rust-based coreutils affects Ubuntu 25.10 automatic updates 💬 Длинная дискуссия
В Ubuntu 25.10 обнаружен баг в Rust-версии команды date из пакета uutils, нарушающий автоматические обновления системы. Проблема затронула облачные развертывания, контейнеры, десктоп и серверные версии. Системы с rust-coreutils версии 0.2.2-0ubuntu2 или ранее подвержены уязвимости, исправленной в версии 0.2.2-0ubuntu2.1. Интересно, что баг не влияет на ручные обновления через apt.
Ubuntu реализует проект "окисления" дистрибутива, переходя на uutils и sudo-rs для версии 25.10, чтобы оценить пригодность Rust-утилит для долгосрочного выпуска в апреле. Этот переход вызвал дискуссию: одни считают, что замена проверенных десятилетиями C-утилит неизбежно приведет к краткосрочным проблемам, другие поддерживают инициативу как необходимую. Также поднимаются вопросы лицензирования MIT вместо GPL и управления проектом uutils.
Комментарии (315)
- Обсуждение вокруг замены GNU coreutils на Rust-версию свелось к тому, что проблема лицензии (GPLv3 vs MIT), а не безопасность, и что в конце концов, как и следовало ожидать, никакой "серьёзной" уязвимости там не было.
- Участники обсуждения отмечают, что даже если бы это была уязвимость, то это была бы не более чем типичная для мейнтейнеров Ubuntu ошибка пакетов, которые не были бы исправлены в нужное время.
- Сообщество высказывает опасения по поводу переписывания критически важных утилит, которые были проверены временем, на новом и потенциально менее стабильном языке программирования.
- Некоторые комментаторы подчеркивают, что обсуждение не касается безопасности, а вопрос лицензии и что это не более чем естественное течение времени и что в конце концов, как и следовало ожидать, никакой "серьёзной" уязвимости там не было.