Learning to read Arthur Whitney's C to become smart (2024) 🔥 Горячее
Автор изучает необычный стиль написания кода Артура Уитни, создателя языков программирования A, K, Q и высокопроизводительных баз данных kdb и Shakti, используемых в финансовой индустрии. Основное внимание уделено компактному интерпретатору языка K размером всего около 50 строк на C, который демонстрирует уникальный подход Уитни к программированию. Код насыщен макросами и использует необычные синтаксические конструкции C, что делает его трудным для понимания, но потенциально эффективным для быстрого восприятия всей логики целиком.
Автор мотивирован изучению этого стиля кода по нескольким причинам: желание писать более компактный код, возможность более быстрого понимания сложных систем при концентрации всей логики в одном месте, а также то, что чтение кода стало важнее его написания в его работе. Интересно, что Уитни использует тип char * как для строк, так и для целых чисел, что является одним из его необычных подходов. Несмотря на первоначальную сложность, автор смог разобраться в большинстве частей кода к концу изучения.
Комментарии (149)
- Код стиля Артура Уитни (Arthur Whitney) — это микро-DSL на препроцессоре C, который вдохновлялся APL; читать его лучше всего, если вы знакомы с APL, иначе он может казаться нечитаемым.
- Подход «сначала напиши, потом сделай это читаемым» противоположен современному подходу «сначала сделай это читаемым, потом напиши код».
- Сторонники и противники такого стиля спорят о том, является ли это «искусством» или «самообфускацией»; в то время как другие считают, что это просто вопрос привычки и что читаемость может быть улучшена с помощью современных инструментов.
- Некоторые комментаторы отмечают, что стиль кода Уитни может быть трудным для чтения, но он также может быть более выразительным и эффективным для тех, кто привык к APL.
- В конце концов, обсуждение пришло к выводу, что важно не только то, как стиль кода влияет на читаемость и поддерживаемость, но и то, как команда работает вместе, чтобы поддерживать и развивать код в течение длительного времени.
State of Terminal Emulators in 2025: The Errant Champions 💬 Длинная дискуссия
В 2025 году обновился инструмент ucs-detect для проверки поддержки Unicode в эмуляторах терминалов, теперь тестирующий DEC Private Modes, sixel-графику, размер пикселей и версию ПО. Методика проверки основана на отправке видимого текста с последующими управляющими последовательностями для определения позиции курсора, с сравнением результатов со стандартом Python wcwidth. Основная проблема эмуляторов — корректное отображение широкого спектра Unicode-символов в фиксированной сетке без нарушения читаемости.
Лидером тестов стал новый эмулятор Ghostty, разработанный с нуля на языке Zig и показавший наилучшую поддержку Unicode. Почти не уступил ему Kitty, реализовавший алгоритм разбиения текста, близкий к спецификации Python wcwidth. Оба эмулятора корректно поддерживают Variation Selector 15. Среди неожиданных результатов — низкая производительность: iTerm2 и Extraterм потребляли чрезмерное количество CPU, а GNOME Terminal на базе VTE работал более 5 часов. Полные результаты доступны на сайте проекта.
Комментарии (226)
- Терминалы варьируются от полной поддержки Unicode до полного отсутствия поддержки, что делает выбор сложным, особенно для пользователей, которым важна поддержка Unicode.
- Некоторые эмуляторы, такие как Konsole, поддерживают широкий спектр Unicode, в то время как другие могут не поддерживать даже базовые символы.
- Пользователи, которым важна поддержка Unicode, должны тщательно выбирать терминал, так как не все эмуляторы поддерживают Unicode.
- Поддержка Unicode в терминалах может варьироваться от полной поддержки до полного отсутствия поддержки, что делает выбор сложным для пользователей, которым важна поддержка Unicode.
The Case Against PGVector 🔥 Горячее
Автор статьи, имея опыт внедрения pgvector в production, утверждает, что существует значительный разрыв между теоретическими преимуществами расширения и реальными сложностями при масштабировании. Многие блог-посты, по его мнению, написаны на основе локальных тестов с небольшими наборами данных (около 10 000 векторов) и упускают критически важные детали. Основные проблемы связаны с выбором индексов — как IVFFlat, так и HNSW имеют существенные недостатки: первый требует предварительного указания количества кластеров, что严重影响 точность и производительность, а второй, несмотря на лучшую точность, создает операционные сложности.
Реальное время поиска практически невозможно обеспечить из-за особенностей обновления индексов, а гибридный поиск требует самостоятельной реализации. Автор отмечает, что для эффективной работы с pgvector нужно глубоко разбираться в планировщике запросов и постоянно искать обходные пути для множественных фильтров. В итоге он приходит к выводу, что специализированные векторные базы данных, вероятно, окажутся дешевле и эффективнее для production-сред, чем попытки адаптировать pgvector для серьезных нагрузок.
Комментарии (132)
- pgvector и подобные расширения PostgreSQL привлекают внимание, но не всегда учитывают, что индекс HNSW может требовать десятки гигабайт RAM и часы на построение, что делает его непрактичным для больших наборов данных.
- Пользователи сталкиваются с проблемой, что не все векторные базы данных поддерживают фильтрацию, что приводит к тому, что применение
WHEREв запросе может вернуть 0 результатов, даже если есть релевантные данные. - Поддержка встроенных типов данных в PostgreSQL не всегда приводит к лучшей производительности, и в некоторых случаях может быть лучше использовать специализированную векторную базу данных.
- Пользователи, которые используют pgvector, должны быть внимательны к тому, что встроенные функции векторных баз данных могут не поддерживать все типы данных, что может привести к ошибкам или неожиданному поведению.
- В то время как pgvector может быть удобен для небольших наборов данных, он не всегда подходит для больших наборов данных, и пользователи должны быть внимательны к ограничениям и не полагаться только на него для всех векторных задач.
Tiny electric motor can produce more than 1,000 horsepower 🔥 Горячее 💬 Длинная дискуссия
Британская компания YASA создала крошечный электродвигатель, превосходящий по мощности четыре двигателя Tesla и на 40% превышающий предыдущий мировой рекорд. Весьма впечатляет, что при весе всего 28 фунтов (12.7 кг) он выдает 1005 л.с. (750 кВт), что эквивалентно мощности двух Tesla Model 3 Performance. Двигатель может непрерывно поддерживать мощность 469-536 л.с., что делает его пригодным для длительной эксплуатации, а не только для коротких всплесков производительности.
По словам CEO Йорга Миски, двигатель имеет в три раза большую плотность производительности по сравнению с ведущими радиальными двигателями, и достигнуты эти показатели без использования экзотических или дорогих материалов. Это делает технологию масштабируруемой для массового производства. Компания уже поставляет свои двигатели для многих дорогих автомобилей, и эта разработка может кардинально изменить будущее электромобилей благодаря улучшению эффективности и снижению веса.
Комментарии (481)
- Mercedes-Benz приобрёл YASA, что вызвало обсуждение о том, что технология может быть «захоронена» вместо того, чтобы быть использована для улучшения транспорта.
- Обсуждение также коснулось того, что вес мотора в 28 фунтов (около 12,7 кг) сравнивается с «маленькой собакой», что вызвало дискуссию о метрике и единицах измерения.
- Участники обсуждения также подняли вопрос о том, что вес мотора может быть не так важен, как кажется, поскольку вес электромобилей в основном определяется батареей, а не мотором.
- Были также высказаны опасения, что технология может быть ограничена только для суперкаров из-за стоимости.
- Некоторые участники также выразили обеспокоенность тем, что компания, которая могла бы производить электромобили, вместо этого была куплена автопроизводителем, что может привести к тому, что технология будет использована только для дорогих автомобилей.
First recording of a dying human brain shows waves similar to memory flashbacks (2022) 🔥 Горячее 💬 Длинная дискуссия
Ученые из университета Луисвилля зафиксировали первую в истории запись активности умирающего мозга человека, показавшую волны, аналогичные тем, что происходят при воспоминании. Эти вспышки активности мозга наблюдались за 30 секунд до наступления смерти и напоминали паттерны, связанные с воспоминаниями о прошлых событиях. Исследование может пролить свет на загадку так называемых "предсмертных видений" и помочь понять, что происходит с сознанием в момент смерти.
Волны активности, похожие на воспоминания, были зарегистрированы в области мозга, связанной с памятью о событиях. Это открытие ставит под вопрос предыдущие представления о том, что мозг прекращает активность сразу после остановки сердца. Исследователи считают, что эти данные могут иметь важные последствия для реаниматологии и понимания природы сознания.
Комментарии (248)
- Различные личные переживания потери сознания: от полного отсутствия воспоминаний до интенсивных флешбэков, искажения времени и "жизни проносящейся перед глазами".
- Научная скептичность: критика выводов на основе единственного случая с эпилептиком, подчеркивание сложности интерпретации данных из-за сопутствующих повреждений мозга.
- Теории о работе мозга: гипотезы о поиске решений в критических ситуациях, возможная роль эндогенного ДМТ, адаптивная функция или побочный эффект нейронной активности.
- Философские интерпретации: обсуждение связи с духовными переживаниями, концепцией рая/ада и вопросом о природе сознания после смерти.
- Эволюционная польза: сомнения в адаптивности подобных переживаний и споры о том, является ли это запрограммированным процессом или случайным явлением.
Simple trick to increase coverage: Lying to users about signal strength 🔥 Горячее
В Android обнаружен скрытый флаг KEY_INFLATE_SIGNAL_STRENGTH_BOOL, позволяющий операторам связи показывать пользователям силу сигнала на одну "полоску" выше, чем она есть в реальности. Этот механизм не задокументирован в официальной документации, но доступен в исходном коде для использования операторами. Как минимум AT&T и Verizon уже включили этот флаг на своих сетях, что позволяет им искусственно улучшать показатели покрытия без реальных улучшений инфраструктуры.
Такие манипуляции вместе с поддельными флагами 5G не способствуют построению доверия между операторами и пользователями. Автор отмечает, что современные мобильные антенны делают эти обманы ненужными, а подобные практики лишь создают ложное впечатление качества связи. Один из комментариев иронично предлагает ввести ф KEY_FIXED_NETWORK_SIGNAL_STRENGTH_INT для всегда максимального показателя сигнала, независимо от реального качества связи.
Комментарии (136)
- Пользователи обсуждают, что индикаторы силы сигнала на телефонах не отражают реальную сеть и могут быть обманчивыми, особенно в слабых зонах покрытия.
- Один участник упомянул, что его телефон показывает 5G, но на самом деле он использует 4G, и что это может быть связано с тем, что операторы хотят показать, что они предоставляют 5G, даже если это не так.
- Другой участник поделился, что в некоторых местах, где он живет, у него есть сигнал, но он не может использовать интернет, и что это может быть связано с тем, что операторы не хотят инвестировать в инфраструктуру, но хотят показать, что они предоставляют хороший сигнал.
- Участники также обсуждают, что иногда телефоны показывают, что у них есть сигнал, но на самом деле они не могут использовать интернет, и что это может быть связано с тем, что операторы не хотят инвестировать в инфраструктуру, но хотят показать, что они предоставляют хороший сигнал.
- Некоторые участники также упомянули, что в некоторых местах, где они живут, у них есть сигнал, но они не могут использовать интернет, и что это может быть связано с тем, что операторы не хотят инвестировать в инфраструктуру, но хотят показать, что они предоставляют хороший сигнал.
Facts about throwing good parties 🔥 Горячее 💬 Длинная дискуссия
Хорошие вечеринки начинаются с спокойствия хозяина — если вы напряжены, гости почувствуют это. Лучше подать простую пиццу от счастливого хозяина, чем изысканные закуски от взволнованного. Приглашайте близких друзей на полчаса раньше, чтобы к началу вечера вы уже наслаждались общением, а не беспокоились о пустом зале. Большинство людей придут только если знают минимум трех гостей, поэтому используйте приложения с видимым списком приглашенных и приглашайте группы по 4-5 человек, которые уже знакомы между собой.
Сохраняйте гендерный баланс (не более 60-40 в любую сторону), иначе гости меньшинства перестанут приходить. Учитывайте, что треть приглашенных может отказаться в последний момент, а пары часто откладывают визиты вместе. Создайте движение по пространству — ставьте еду и напитки в разных концах комнаты, убирайте часть стульев. Ваша главная задача — знакомить гостей друг с другом, даже если это отнимет время у общения с друзьями. Помните: вечеринки — это общественная услуга, где кто-то может встретить будущего лучшего друга или партнера.
Комментарии (323)
- Подготовка к вечеринке — это не только про гостей и еду, но и про то, как ты сам себя чувствуешь; стресс хоста заразит гостей.
- Не стоит планировать слишком детально: лучше оставить пространство для спонтанности и гостей, которые могут принести что-то свое.
- Если ты не хочешь быть единственным, кто приглашает людей, используй существующие группы вместо того, чтобы создавать новые.
- Не стоит забывать, что важно не только количество гостей, но и их качество и то, как они взаимодействуют друг с другом.
Paris had a moving sidewalk in 1900, and a Thomas Edison film captured it (2020) 🔥 Горячее 💬 Длинная дискуссия
В 1900 году на Всемирной выставке в Париже представили удивительное новшество — движущийся тротуар, который поразил даже самых искушенных горожан. Томас Эдисон, заинтересованный этой инновацией, отправил своего продюсера Джеймса Генри Уайта, чтобы заснять тротуар на кинопленку. Уайт снял как минимум 16 фильмов, используя новую технологию панорамного штатива, что придало кадрам особую плавность. В сохранившихся кадрах видно, как дети прыгают в кадр, а мужчина снимает шляпу, возможно, осознавая, что его запечатлевает новая технология.
Тротуар состоял из трех платформ: первая была неподвижной, вторая двигалась с умеренной скоростью, а третья — со скоростью около шести миль в час. Это позволяло посетителям быстро перемещаться по выставке, хотя многие выглядели неловко, не зная, как пользоваться этим изобретением. Как писал корреспондент New York Observer, это была "новинка", которая не только облегчала передвижение, но и доставляла много веселья благодаря своей необычности.
Комментарии (192)
- Исторические движущиеся тротуары (как на Парижской выставке 1900 г.) с несколькими скоростями и движущимися ограждениями воспринимались как футуристическое будущее, вдохновившее научную фантастику (Хайлайн, Азимов, Кларк).
- Современные аналоги (эскалаторы в аэропортах) кажутся менее продуманными из-за отсутствия интегрированных ограждений и сложностей с разворотом конструкций.
- Основные причины исчезновения технологий: сложность интеграции в городскую инфраструктуру, приоритет автомобильного транспорта и неэффективность "транспорта по требованию" для массовых перевозок.
- Участники выражают ностальгию по утраченным футуристическим концепциям и сожалеют о регрессе в городском планировании из-за доминирования автомобилей.
- Идея многоскоростных тротуаров ("дороги должны катиться") остается привлекательной, но реализация сталкивается с практическими и экономическими барьерами.
Linux gamers on Steam cross over the 3% mark 🔥 Горячее 💬 Длинная дискуссия
Доля Linux-геймеров на Steam наконец преодолела психологически важный порог в 3%, достигнув 3.05% по данным опроса за октябрь 2025 года. Этот рост на 0.41% стал возможен благодаря устойчивому тренду и окончанию поддержки Windows 10, что побудило больше пользователей попробовать Linux. Windows по-прежнему доминирует с долей 94.84%, а macOS занимает 2.11%.
Несмотря на скромные на первый взгляд проценты, это уже миллионы пользователей. По последним официальным данным Valve за 2022 год, месячная активная аудитория Steam составляла около 120 миллионов, что означает более 4 миллионов Linux-геймеров. С учетом роста платформы и популярности Steam Deck, продающегося миллионами копиями, реальное число вероятно еще выше. Среди дистрибутивов лидирует SteamOS Holo с 27.18%, за которым следуют Arch Linux (10.32%) и Linux Mint (6.65%).
Комментарии (383)
- Пользователи обсуждают переход с Windows на Linux для игр, отмечая, что большинство игр теперь работает через Proton, и что Steam Deck способствует этому.
- Некоторые упоминают, что единственное, что остаётся в Windows, — это играть в игры с античитом, так как Easy Anti-Cheat и подобные системы не работают под Linux.
- Участники также обсуждают, что, несмотря на то, что Linux-совместимость значительно улучшилась, всё ещё есть проблемы с драйверами, особенно с NVIDIA.
- Некоторые отмечают, что, несмотря на то, что Linux-совместимость значительно улучшилась, всё ещё есть проблемы с драйверами, особенно с NVIDIA.
- Также упоминается, что, хотя большинство игр теперь работает на Linux, всё ещё есть проблемы с некоторыми играми, которые не работают или имеют проблемы.
At the end you use `git bisect`
В работе с monorepo, где ежедневно делаются сотни коммитов, тесты внезапно начали проваливаться. Проблема была в изменении конфигурационного файла, который ссылался на неверный аккаунт, но найти виновника среди множества коммитов вручную было невозможно. Тогда коллега применил git bisect - инструмент, использующий бинарный поиск для локализации проблемного коммита. Это позволило точно определить, где именно был внесен сбойный код, после чего откат этого коммита восстановил работоспособность системы.
В статье приведен наглядный пример репозитория с функцией сложения, где намеренно введена ошибка - преобразование аргументов в строки. Запуск git bisect start, указание "плохого" и "хорошего" коммитов, затем git bisect run ./test_script.sh автоматически проверяет промежуточные версии. Инструмент последовательно тестирует коммиты, сокращая количество проверок вдвое на каждом шаге, и точно находит первый сбойный коммит, где функция add начала возвращать строку вместо числа.
Комментарии (143)
git bisectis a powerful tool for pinpointing the exact commit that introduced a bug, especially in large or poorly tested codebases.- Its real value is in narrowing the search space when you lack the tests or architecture to reason about the code, not in replacing proper testing or code review.
- The discussion exposed a cultural divide: some developers see bisect as a last-ditch rescue tool for when tests or architecture have already failed, while others argue that if you need it, your process has already failed.
- Several commenters pointed out that if you have to reach for bisect, you probably lack tests, logging, or a clear commit history, and the real fix is to improve those, not to rely on bisection.
- The thread also surfaced the point that bisection is only useful if you can reliably detect the bug in every commit; if the bug is non-deterministic or only shows up in production, the tool becomes much less useful.