The Case Against PGVector 🔥 Горячее
Автор статьи, имея опыт внедрения pgvector в production, утверждает, что существует значительный разрыв между теоретическими преимуществами расширения и реальными сложностями при масштабировании. Многие блог-посты, по его мнению, написаны на основе локальных тестов с небольшими наборами данных (около 10 000 векторов) и упускают критически важные детали. Основные проблемы связаны с выбором индексов — как IVFFlat, так и HNSW имеют существенные недостатки: первый требует предварительного указания количества кластеров, что严重影响 точность и производительность, а второй, несмотря на лучшую точность, создает операционные сложности.
Реальное время поиска практически невозможно обеспечить из-за особенностей обновления индексов, а гибридный поиск требует самостоятельной реализации. Автор отмечает, что для эффективной работы с pgvector нужно глубоко разбираться в планировщике запросов и постоянно искать обходные пути для множественных фильтров. В итоге он приходит к выводу, что специализированные векторные базы данных, вероятно, окажутся дешевле и эффективнее для production-сред, чем попытки адаптировать pgvector для серьезных нагрузок.
Комментарии (132)
- pgvector и подобные расширения PostgreSQL привлекают внимание, но не всегда учитывают, что индекс HNSW может требовать десятки гигабайт RAM и часы на построение, что делает его непрактичным для больших наборов данных.
- Пользователи сталкиваются с проблемой, что не все векторные базы данных поддерживают фильтрацию, что приводит к тому, что применение
WHEREв запросе может вернуть 0 результатов, даже если есть релевантные данные. - Поддержка встроенных типов данных в PostgreSQL не всегда приводит к лучшей производительности, и в некоторых случаях может быть лучше использовать специализированную векторную базу данных.
- Пользователи, которые используют pgvector, должны быть внимательны к тому, что встроенные функции векторных баз данных могут не поддерживать все типы данных, что может привести к ошибкам или неожиданному поведению.
- В то время как pgvector может быть удобен для небольших наборов данных, он не всегда подходит для больших наборов данных, и пользователи должны быть внимательны к ограничениям и не полагаться только на него для всех векторных задач.
Control structures in programming languages: from goto to algebraic effects
Книга Ксавье Леруа исследует эволюцию управляющих конструкций в языках программирования, от ранних операторов goto до современных алгебраических эффектов. Работа представляет собой историческое путешествие по дизайну языков, уделяя особое внимание механизмам контроля выполнения программ. Книга охватывает структурированное программирование 1960-х, генераторы и корутины в императивных языках, а также продолжения и операторы контроля в функциональных языках.
Книга разделена на четыре части: управляющие конструкции для императивных языков, операторы контроля для функциональных языков, от исключений к алгебраическим эффектам и обработчикам, а также рассуждения о контроле и эффектах. Особую ценность представляют многочисленные примеры кода на разных языках — от Fortran и Algol 60 до OCaml и Haskell. Работа сочетает историю, практические примеры и теорию, предлагая оригинальный сравнительный взгляд на языки программирования и обширное введение в алгебраические эффекты — современную область исследований в PL.
Комментарии (29)
- Критика исключений как "glorified come from", сравнение с POSIX сигналами и setjmp/longjmp.
- Дискуссия о checked исключениях в Java vs подход "ошибки как данные" для ожидаемых сбоев.
- Вопрос производительности алгебраических эффектов и ответ: реализация возможна через монады, оптимизирована в OCaml 5.
- Упоминание Xavier Leroy как автора CompCert, LinuxThreads и ключевой фигуры OCaml/Rocq.
- Шутка про INTERCAL и "come from" как пример необычного синтаксиса.
Update and shut down no longer restarts PC, 25H2 patch addresses decades-old bug
В Windows 11 25H2 исправлена давняя ошибка, из-за которой опция "Обновить и выключить" на самом деле перезагружала компьютер, а не выключала его. Эта десятилетиями существовавшая проблема вызывала путаницу у пользователей, которые ожидали полного выключения системы после установки обновлений.
Исправление стало частью обновления Windows 11 25H2 и теперь система действительно корректно завершает работу после установки обновлений. Это изменение повышает удобство использования и соответствует ожиданиям пользователей от функции "выключить", устраняя необходимость в дополнительных действиях для предотвращения автоматической перезагрузки.
Комментарии (50)
- Microsoft никогда не призналась, что сломала переключатель «Update and shut down» в Windows 10, и только спустя годы признала проблему
- Пользователи годами сталкивались с тем, что «Update and shut down» просто перезагружала систему, не давая обновлениям примениться, и никакого обходного пути не предлагали
- Обсуждение выявило, что даже в 2024 году проблема всё ещё существует, а виновата в ней архитектура файловой системы Windows, которая не позволяет заменять открытые файлы
- Комментаторы отметили, что Linux и другие Unix-подобные системы сталкиваются с аналогичной дилемой, но там выбор стоит между риском несовместимости после обновления и перезагрузкой для применения обновлений
- В конце-концов, никто не может предложить, как обновлять Windows без перезагрузки, в то время как обновление ядра Linux требует лишь перезапуска служб.
Awk Technical Notes (2023)
AWK был спроектирован без сборщика мусора, что делает его реализацию простой, быстрой и предсказуемой по потреблению памяти. Это ограничение запрещает возвращать массивы из функций, разрешая только скалярные значения, хотя массивы можно передавать в функции для модификации. Интересно, что переменные становятся локальными, если добавляются в параметры функции, что также служит механизмом автоматического освобождения ресурсов. Брайан Керниган сожалеет об этом дизайне, но на практике он работает хорошо.
В AWK реализована автовивификация — массивы объявляются простым использованием переменной как массива, а переменные неявно объявляются в зависимости от контекста. Это делает язык идеальным для компактных однострочников. Синтаксис языка содержит любопытные особенности: $ является унарным оператором, который может применяться к выражениям, и единственным оператором, разрешенным слева от присваивания. Для пользовательских функций нельзя ставить пробел перед скобкой, в отличие от встроенных, из-за решения использовать пустой оператор для конкатенации строк.
Комментарии (42)
- Awk часто недооценивают, хотя он может заменять целые пайплайны (cut, grep, sed) и обрабатывать сложные текстовые задачи.
- Его мощь и простота для базовых задач отмечаются, но сложные скрипты могут быть трудны для чтения командой без глубокого знания.
- Ключевые ресурсы для изучения: "More Programming Pearls" и "The AWK Programming Language", а также краткие гайды.
- Практическое применение: от простых one-liners (например, извлечение данных из ls -l) до сложных скриптов (учёт, генераторы сайтов).
- Альтернативы: Python предпочитают за читаемость, а некоторые рекомендуют современные инструменты вместо "wrangling" bytestreams.
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 кг) сравнивается с «маленькой собакой», что вызвало дискуссию о метрике и единицах измерения.
- Участники обсуждения также подняли вопрос о том, что вес мотора может быть не так важен, как кажется, поскольку вес электромобилей в основном определяется батареей, а не мотором.
- Были также высказаны опасения, что технология может быть ограничена только для суперкаров из-за стоимости.
- Некоторые участники также выразили обеспокоенность тем, что компания, которая могла бы производить электромобили, вместо этого была куплена автопроизводителем, что может привести к тому, что технология будет использована только для дорогих автомобилей.
Absurd Workflows: Durable Execution with Just Postgres
Armin Ronacher разработал библиотеку Absurd — решение для создания надежных рабочих процессов, использующее только Postgres без дополнительных сервисов. В ответ на растущий спрос на устойчивое выполнение (durable execution) в эпоху AI-агентов, он создал минималистичную систему на основе единственного SQL-файла. Библиотека решает проблему сохранения состояния при сбоях, используя возможности Postgres для управления очередями и хранения чекпоинтов. Ключевая особенность — деление задач на шаги, которые автоматически восстанавливаются после перезапуска, избегая дублирования работы.
Для AI-агентов Absurd предлагает элегантный подход с автоматической нумерацией повторяющихся шагов. Пример кода демонстрирует задачу с единственным шагом "iteration", которая при повторении превращается в "iteration#2", "iteration#3" и т.д., сохраняя только новые сообщения. Система поддерживает приостановку задач, ожидание событий и автоматическую загрузку состояния из чекпоинтов. Запуск осуществляется через простую функцию absurd.spawn(), а обработка ошибок включает механизм повторов с ограничением попыток.
Комментарии (28)
- Обсуждение в основном вращается вокруг двух тем: длительное выполнение задач (durable execution) и инструментов для этого, таких как Absurd SQL и Temporal, а также их сравнение с другими решениями, включая DBOS и Cadence.
- Участники обсуждают, что такие инструменты как Absurd SQL и Temporal предоставляют простоту и надежность, но могут быть сложны в использовании и требуют дополнительной настройки.
- Также обсуждается, что такие инструменты как Absurd SQL и Temporal могут быть полезны для обеспечения надежности и простоты в работе с агентами и их непредсказуемым поведением.
- Участники также обсуждают, что такие инструменты как Absurd SQL и Temporal могут быть полезны для обеспечения надежности и простоты в работе с агентами и их непредсказуемым поведением.
- В конце обсуждение сосредотачивается на том, что такие инструменты как Absurd SQL и Temporal могут быть полезны для обеспечения надежности и простоты в работе с агентами и их непредсказуемым поведением.
China intimidated UK university to ditch human rights research, documents show
Китай оказывал систематическое давление на Шеффилд Халламский университет, заставляя его прекратить исследования нарушений прав человека, в частности принудительного труда уйгуров в Синьцзяне. По данным BBC, сотрудники университета в Китае получали угрозы от лиц,自称 представляющих службу национальной безопасности, а доступ к сайтам университета из Китая был заблокирован, что наносило финансовый ущерб. Внутреннем документе от июля 2024 года университет признал, что "сохранение бизнеса в Китае и публикация исследования теперь несовместимы".
Когда британское правительство узнало о ситуации, министр иностранных дел Дэвид Ламми официально предупредил китайского коллегу о недопустимости подавления академических свобод. Профессор Лора Мёрфи, чьи исследования стали мишенью, заявила, что академическая свобода была принесена в жертву доступу к китайскому рынку студентов. Китай всегда отрицает обвинения в нарушениях прав человека в Синьцзяне.
Комментарии (41)
- Обсуждение показало, что британские университеты зависят от иностранных студентов, особенно из Китая, как источника финансирования, что вызывает вопросы о независимости и качестве образования.
- Участники обсуждали, что студенты из Китая и других стран, которые платят высокие плату за обучение, часто не соответствуют академическим стандартам, и это вызывает вопросы о справедливости и качестве образования.
- Обсуждение также затронуло влияние иностранных студентов на академическую свободу и независимость университетов, особенно в контексте политики вокруг Синьцзяна и гуманитарных вопросов.
- Некоторые участники выразили обеспокоенность о том, что университеты могут быть использованы для отмывания денег и что это может подорвать их репутацию.
- В конце обсуждение перешло к более широкому вопросу о том, как университеты влияют на политику и наоборот, и как это влияет на общественное мнение и политические решения.
Комментарии (3)
- Пользователь столкнулся с отображением смеси английского и китайского текста при первоначальной загрузке сайта.
- После обновления страницы сайт стал отображать только английский язык.
- Предположение о возможном баге, связанном с куки и настройками локализации.
- Другой пользователь считает это сбоем и отмечает отсутствие китайских переводов для данной страницы.
First recording of a dying human brain shows waves similar to memory flashbacks (2022) 🔥 Горячее 💬 Длинная дискуссия
Ученые из университета Луисвилля зафиксировали первую в истории запись активности умирающего мозга человека, показавшую волны, аналогичные тем, что происходят при воспоминании. Эти вспышки активности мозга наблюдались за 30 секунд до наступления смерти и напоминали паттерны, связанные с воспоминаниями о прошлых событиях. Исследование может пролить свет на загадку так называемых "предсмертных видений" и помочь понять, что происходит с сознанием в момент смерти.
Волны активности, похожие на воспоминания, были зарегистрированы в области мозга, связанной с памятью о событиях. Это открытие ставит под вопрос предыдущие представления о том, что мозг прекращает активность сразу после остановки сердца. Исследователи считают, что эти данные могут иметь важные последствия для реаниматологии и понимания природы сознания.
Комментарии (248)
- Различные личные переживания потери сознания: от полного отсутствия воспоминаний до интенсивных флешбэков, искажения времени и "жизни проносящейся перед глазами".
- Научная скептичность: критика выводов на основе единственного случая с эпилептиком, подчеркивание сложности интерпретации данных из-за сопутствующих повреждений мозга.
- Теории о работе мозга: гипотезы о поиске решений в критических ситуациях, возможная роль эндогенного ДМТ, адаптивная функция или побочный эффект нейронной активности.
- Философские интерпретации: обсуждение связи с духовными переживаниями, концепцией рая/ада и вопросом о природе сознания после смерти.
- Эволюционная польза: сомнения в адаптивности подобных переживаний и споры о том, является ли это запрограммированным процессом или случайным явлением.
Комментарии (11)
- ABCL не поддерживает Android, а Maxima и другие легаси-проекты были удалены из Play Store.
- Пользователи жалуются на производительность ABCL и отсутствие нативных библиотек.
- Некоторые предпочитают NDK-инструменты, чтобы избежать любой зависимости от JVM.
- Проект в браузере выглядит как open-source-альтернатива Mathematica/Maple, но без четкой документации.