Mesh: I tried Htmx, then ditched it 💬 Длинная дискуссия
HTMX предлагает декларативный подход к веб-разработке через HTML-атрибуты, что могло бы сократить потребность в JavaScript, если бы браузеры поддерживали такие семантики изначально. Однако автор отмечает, что HTMX не предоставляет чёткой структуры, подобной SPA-фреймворкам, что ведёт к риску создания спагетти-кода, как в случае с jQuery.
В ответ на это был создан MESH — фреймворк, сочетающий модульный SSR с гидрацией, где каждый компонент соответствует одному эндпоинту. Это позволяет писать бэкенд с фокусом на HTML, сохраняя ощущение работы с SPA. Для демонстрации использовались Go, Templ и Declarative Shadow DOM, с небольшим хаком для обхода ограничений HTMX внутри теневых DOM. Ключевая идея — обеспечить единственно верный способ структурирования кода, избегая хаоса.
Комментарии (158)
- Обсуждается применимость HTMX для различных типов приложений: отличное решение для многостраничных приложений, но может быть неоптимальным для сложных SPA-подобных интерфейсов с интенсивным взаимодействием (например, drag-and-drop).
- Представлены альтернативные подходы и фреймворки: MESH (один эндпоинт на компонент), Data-Star (обновление по SSE), Blazor, Leptos, а также использование чистого JS или Web Components.
- Поднимаются технические нюансы HTMX: поведение по умолчанию при замене контента (
innerHTML), обработка ошибок, ограничения парсера DOM при работе с Shadow DOM. - Критикуется тенденция добавления абстракций поверх HTMX, что, по мнению части участников, противорит его философии простоты и возврата к истокам.
- Отмечается ценность HTMX и подобных инструментов как реакция на сложность современных JS-фреймворков и возможность быстрой разработки без сборки.
Cache of devices capable of crashing cell network is found in NYC 💬 Длинная дискуссия
—
Комментарии (196)
- Обнаружена крупная анонимная сеть с более чем 100 000 SIM-карт и 300 серверами, способная отправлять 30 млн SMS в минуту и потенциально нарушать работу экстренных служб.
- Участники обсуждают сомнительность связи сети с ООН, так как оборудование было найдено в радиусе 35 миль от штаб-квартиры ООН, что покрывает весь Нью-Йорк, и выражают скептицизм по поводу подачи информации властями.
- Высказываются предположения о реальных целях сети: от рассылки спама и создания аккаунтов для мошенничества до организации DoS-атак на вышки сотовой связи и координации преступной деятельности.
- Отмечается, что аренда помещений и покупка оборудования оставляют финансовый след, что ставит под вопрос полную анонимность операторов, а отсутствие арестов вызывает недоумение.
- Обсуждаются технические аспекты: возможность обнаружения таких сетей операторами связи, использование SIM-карт для звонков на 911 без абонентского плана и сложности поддержки физической инфраструктуры.
Sampling and structured outputs in LLMs
Пользователь Parth Sareen ведёт личный блог и делится своими текстами. Он также предоставляет ссылки на свои профили в GitHub, X (ранее Twitter) и LinkedIn для тех, кто хочет узнать больше о его проектах или профессиональном опыте. Это типичная структура персонального страницы разработчика, где основное внимание уделяется контенту и доступности в социальных сетях.
Комментарии (85)
- Разработка библиотек для структурированного вывода ИИ, таких как Guidance, которые обеспечивают высокую производительность и совместимость с различными моделями.
- Обсуждение проблем качества и надежности структурированного вывода, включая галлюцинации и снижение производительности при жестких ограничениях формата.
- Сравнение подходов: прямое грамматическое ограничение вывода versus постобработка текста с помощью второго ИИ для преобразования в структурированный формат.
- Критика доступности и эффективности инструментов структурированного вывода у крупных провайдеров API и необходимость кастомных грамматик.
- Оптимизация методов маскирования и принудительного выбора токенов для ускорения генерации и обеспечения соответствия грамматике.
Permeable materials in homes act as sponges for harmful chemicals: study
Исследование под руководством Калифорнийского университета в Ирвайне показало, что внутренние поверхности в помещениях действуют как губки, поглощая и удерживая летучие органические соединения (ЛОС) до года. Пористые материалы — от обоев и тканей до дерева и пластика — накапливают вредные химикаты из воздуха, создавая долговременные резервуары загрязнения.
Это означает, что люди могут подвергаться воздействию токсинов даже после устранения первоисточника, через прямой контакт с поверхностями или повторное выделение химикатов в воздух. Учёные использовали масс-спектрометрию для отслеживания движения молекул, обнаружив, что некоторые ЛОС мигрируют глубоко в материалы, drastically замедляя их высвобождение. Практический вывод: обычная уборка и вентиляция могут быть недостаточны для устранения накопленных загрязнителей.
Комментарии (77)
The more we study it, the more we learn how harmful the air inside our homes is.That's why fresh air is key. Crack a window or two open. Buy an air monitor that monitors CO2 (good proxy for overall freshness), VOCs (sometimes these build up much faster than CO2), and PM2.5.If CO2
Go has added Valgrind support 🔥 Горячее
PolyGerrit — это веб-интерфейс для работы с системой контроля версий Gerrit, требующий активации JavaScript в браузере для полноценного функционирования. Без него страница не загрузится корректно, и пользователь увидит только это сообщение с просьбой включить скрипты и обновить страницу. Это стандартное требование для современных веб-приложений, обеспечивающее динамическое взаимодействие, такое как просмотр изменений кода, комментарии и код-ревью.
Комментарии (121)
- Добавлена поддержка Valgrind в Go для тестирования криптографического кода на постоянное время выполнения и отслеживания инициализации памяти.
- Обсуждаются преимущества Valgrind для обнаружения утечек памяти и тонких ошибок, несмотря на наличие других инструментов, таких как ASan/MSan.
- Подчёркивается важность аннотаций для корректного анализа неинициализированной памяти, особенно при использовании unsafe-кода или CGO.
- Высказываются опасения, что эффективность зависит от повсеместного использования инструмента всеми пакетами, чтобы избежать большого количества ложных предупреждений.
- Некоторые пользователи выражают скептицизм, считая необходимость в Valgrind признаком недостатков языка, в то время другие видят в этом мощное дополнение к инструментарию.
YAML document from hell (2023)
YAML позиционируется как удобный для человека формат данных, но на деле оказывается чрезвычайно сложным и полным скрытых ловушек. Его спецификация занимает 10 глав с многоуровневой структурой, в отличие от лаконичного JSON, чья спецификация умещается в шести диаграммах и почти не менялась два десятилетия. YAML активно развивается: версия 1.2 существенно отличается от 1.1, что приводит к разному parsing одних и тех же документов в разных реализациях.
Пример документа с настройками сервера демонстрирует проблемы YAML: числа вида 22:22 могут интерпретироваться как sexagesimal (1342) в версии 1.1, но как строка в 1.2. Якоря (&) и алиасы (*) усложняют чтение, а теги (!) создают угрозу выполнения произвольного кода при загрузке ненадёжных данных. Известная «проблема Норвегии» (неожиданная интерпретация сокращений стран) подчёркивает, что попытки быть «дружелюбным» формат делают его непредсказуемым и опасным.
Комментарии (114)
- Критика YAML за его сложность, неоднозначность и множество подводных камней, таких как проблемы с автоматическим определением типов (например, "no" интерпретируется как
false). - Предложения использовать альтернативы: JSONC, TOML, HCL, Dhall, Jsonnet, CUE или всегда заключать строки в кавычки в YAML для избежания ошибок.
- Обсуждение отдельных проблемных особенностей YAML, таких как якоря/алиасы, сексегесимальные числа и необходимость в линтерах.
- Отмечается, что, несмотря на недостатки, YAML остается популярным из-за удобочитаемости и широкой распространенности.
- Упоминание, что спецификация YAML 1.2 (2009 г.) исправила некоторые проблемы, но многие issues остаются актуальными.
Wild performance tricks
В Wild-линковщике для Rust применяют несколько продвинутых техник оптимизации параллельной работы. Например, используют split_off_mut для безопасного разделения мутабельных срезов Vec<SymbolId> между потоками, что позволяет обрабатывать символы каждого объекта параллельно без блокировок, сохраняя кэш-локальность.
Для инициализации вектора без задержек на основном потоке задействуют крейт sharded-vec-writer: предварительно аллоцируют память, разбивают её на сегменты по числу символов в объектах и заполняют их параллельно через VecWriter, что ускоряет стартовую фазу.
В случаях, когда требуются случайные записи в общий вектор (например, для обработки дубликатов символов в C++), переходят на атомарные операции. Вместо стабильного, но ограниченного AtomicU32::from_mut_slice (только nightly) или постоянного использования атомиков (что снижает производительность), временно преобразуют &[SymbolId] в &[AtomicSymbolId] через unsafe-конверсию, экономя на издержках синхронизации в основном коде.
Комментарии (67)
- Обсуждаются оптимизации Rust, такие как преобразование
VecвIntoIterи обратно для эффективного повторного использования аллокации, что реализовано в стандартной библиотеке как специальный случай. - Высказываются предостережения против некоторых "трюков производительности", например, перемещения аллокации в другой поток для освобождения, из-за особенностей работы аллокаторов и сомнительной выгоды.
- Поднимается вопрос о надёжности оптимизаций компилятора (LLVM) в релизных сборках, которые могут меняться между версиями и сложны для верификации, что контрастирует с медленными debug-сборками.
- Отмечается, что многие трюки направлены на обход ограничений borrow checker для получения разрешения на выполнение операций, а не на решение аппаратных задач производительности.
- Обсуждается преимущество Rust в безопасном параллелизме (например, с Rayon) по сравнению с C/C++, где обеспечение потоковой безопасности значительно сложнее.
Altoids by the Fistful
Коллега делится необычным методом повышения продуктивности: он заедает кошачьи экскременты мятными леденцами Altoids, чтобы полностью заглушить вкус. По его словам, это избавило его от долгих подготовок и уборки, радикально изменив рабочий процесс.
Сцена в баре выглядит сюрреалистично — он демонстрирует процесс с театральной точностью, настаивая на эффективности метода. Несмотря на уверенность рассказчика, у собеседника это вызывает лишь отторжение и потерю аппетита, подчеркивая грань между личной эффективностью и общепринятыми нормами.
Комментарии (89)
- Участники высоко оценили стиль и эмоциональную глубину статьи, назвав её катарсисом и прекрасно написанной прозой.
- Многие разработчики, особенно фронтенд, выразили солидарность с чувством разочарования в своей работе и выгорания.
- Поднята тема о парадоксальной трате времени на чтение длинных материалов при высокой часовой ставке, что вызвало дискуссию о ценности подобного опыта.
- Были высказаны критические замечания о ядовитом мировоззрении автора и использовании текстовых шаблонов в программировании.
- Обсуждение включает отсылки к поп-культуре (The Office, Spirograph, OpenAI) и философские размышления о природе труда.
Delete FROM users WHERE location = 'Iran'; 🔥 Горячее 💬 Длинная дискуссия
Иранский разработчик делится опытом блокировок из-за санкций против страны. Microsoft удалила его приложение EyesGuard из магазина без объяснений, стерев аккаунт и отзывы пользователей. Notion полностью очистил его данные, ответив в поддержке, что услуги недоступны для резидентов Ирана из-за ограничений.
Эти случаи показывают, как санкции ударяют по обычным пользователям, лишая их доступа к инструментам и стирая цифровую историю. Разработчик иронично сравнивает это с SQL-запросом на удаление пользователей по географическому признаку.
Комментарии (577)
- Участники обсуждают негативное влияние санкций на обычных граждан Ирана, блокировку сервисов и цифровую изоляцию, отмечая, что санкции вредят населению, а не правящим elites.
- Поднимается тема двойных стандартов: пользователи критикуют тенденцию обвинять народы "стран-изгоев" в действиях их правительств, в то время как действия западных правительств часто отделяются от ответственности их граждан.
- Высказываются опасения по поводу централизации цифровой инфраструктуры в руках США, что дает им возможность в одностороннем порядке определять, кто может пользоваться услугами, и риски такой модели для пользователей из недружественных стран.
- Обсуждается эффективность санкций: многие участники сомневаются, что санкции достигают заявленных целей по изменению политики правительств, а вместо этого лишь укрепляют режимы и усугубляют положение населения.
- Отмечается сложность ситуации для владельцев бизнесов, которые вынуждены блокировать пользователей из-под санкций из-за юридических рисков и штрафов, даже если они не согласны с такой политикой.
Zoxide: A Better CD Command 🔥 Горячее 💬 Длинная дискуссия
zoxide — это умная замена команды cd, которая запоминает часто посещаемые каталоги и позволяет быстро переходить по ним с помощью частичного совпадения имён. Она поддерживает все основные оболочки, включая bash, zsh и fish, и использует алгоритм ранжирования для предложения наиболее релевантных путей.
Инструмент работает быстрее аналогов вроде autojump, так как написан на Rust, и интегрируется с fzf для интерактивного выбора. Практический бонус — экономия времени при навигации в сложных проектных структурах.
Комментарии (178)
- Критика zoxide за нечёткость работы и потенциальные ошибки при навигации, а также предпочтение встроенного поиска по истории ZSH или комбинации с fzf.
- Положительные отзывы о значительном ускорении навигации и интеграции zoxide в рабочий процесс, особенно в сочетании с другими инструментами (fzf, bat, starship).
- Обсуждение альтернатив и схожих инструментов (autojump, z, navita, CDPATH в bash/zsh), их сравнение с zoxide.
- Варианты настройки и использования zoxide, включая алиасы для cd, флаг basedir и интерактивный режим zi.
- Замечания о том, что для многих пользователей нативные возможности оболочки или другие инструменты покрывают большинство потребностей.