Recursive macros in C, demystified (once the ugly crying stops)
В статье разбираются рекурсивные макросы в C, которые автор называет самой неприятной частью языка, несмотря на его 60-летнюю историю успеха. Макросы критически важны для многих систем, так как позволяют абстрагировать сложность, добавлять проверки и обеспечивать безопасность, но их система имеет серьёзные ограничения. Основная проблема: макросы в C не поддерживают рекурсию, что, по мнению автора, могло быть как случайностью эволюции системы, так и сознательным решением для предотвращения бесконечных циклов компиляции.
Автор мотивирует необходимость рекурсивных макросов возможностью обрабатывать переменное количество аргументов, что особенно ценно для создания безопасных вариадических функций. Цель статьи — создать макрос, считающий количество аргументов, что позволит автоматически добавлять проверки и избегать ошибок, связанных с ручным подсчётом. Хотя система макросов кажется устаревшей, она остаётся единственным механизмом компиляции времени в C, делая изучение этих техник важным для разработчиков.
Комментарии (58)
- Обсуждение охватывает историю и ограничения препроцессора C, включая его влияние на языки C и C++, а также затрагивает вопросы безопасности (DoS-риски) и читаемости кода.
- Участники обсуждают, что препроцессор не предназначен для сложной метапрограммирования, и что современные языки предлагают более безопасные и выразительные альтернативы.
- Также обсуждается, что хотя препроцессор и может быть использован для продвинутых задач метапрограммирования, он требует нестандартных и сложных приемов, что делает его использование непрактичным и потенциально опасным.
- Некоторые участники упоминают, что препроцессор может быть использован для создания сложных макросов, которые могут быть использованы для создания DSL или для экспериментов с синтаксисом языка, хотя это может быть опасным.
- В целом, обсуждение подчеркивает, что хотя препроцессор может быть использован для сложных задач, он не предназначен для этого и что современные языки предлагают более безопасные и выразительные средства для решения таких задач.
My fan worked fine, so I gave it WiFi
Ellis Clayton создал полностью обратимую модификацию для вентилятора Vornado 633DC, добавив ему управление через WiFi. Проект скрыт внутри корпуса вентилятора, не оставляя видимых изменений. Для реализации автор использовал ESPHome с внешним компонентом, а все схемы, BoM и PCB-дизайн доступны на OSHWLab, исходный код — на GitHub.
Исследование началось с разбора вентилятора, где были обнаружены два ключевых компонента: преобразователь AC-DC и небольшая плата с потенциометром для управления скоростью. Автор выяснил, что изменение сопротивления между двумя выводами потенциометра регулирует скорость мотора. Для решения этой задачи была использована цифровая версия потенциометра (digipot), которая имитирует функции аналогового аналога, но управляется цифровым сигналом. После успешного тестирования на макетной плате было разработано компактное PCB, которое полностью помещается в корпус вентилятора, сохраняя оригинальные разъемы и систему крепления.
Комментарии (75)
- ESPHome и Home Assistant позволяют «облачным» устройствам стать «умными» без подписки на облако, но вендоры всё равно стремятся монетизировать это через подписки и рекламу.
- Стоимость платы с полной сборкой от JLCPCB оказалась меньше 20 долларов, что делает проект доступным для DIY.
- Пользователи отмечают, что вентиляторы с механическими переключателями скоростей не могут быть автоматизированы без вмешательства в устройство, в то время как «умные» вентиляторы не могут быть использованы с умными розетками.
- Некоторые участники обсуждения поделились ссылкой на готовый конфиг ESPHome для Honeywell-фильтров, что делает возможным подключение их к Home Assistant без всякого хардварного вмешательства.
Bluetooth 6.2 – more responsive, improves security, USB comms, and testing
Bluetooth 6.2 представила значительные улучшения: сокращение минимального интервала соединения с 7.5 мс до 375 мкс для более быстрой реакции, особенно в устройствах HID, AR/VR и игровых приложениях. Новая защита от атак на основе амплитуды RF повысит безопасность для автомобильных, умных дома и промышленных устройств, а режим пакетной сериализации упростит интеграцию LE Audio в USB устройствах.
Спецификация также включает улучшения режима тестирования BLE, позволяющие выполнять RF PHY тесты по воздуху без кабелей. Интересно, что Bluetooth SIG перешел на график выпуска раз в полгода — предыдущая версия 6.1 вышла всего 6 месяцев назад. Эти изменения отражают растущие требования к низколатентным и безопасным беспроводным соединениям в современных устройствах.
Комментарии (135)
- Пользователи жалуются на качество микрофона в Bluetooth-устройствах, особенно в сравнении с AirPods и другими устройствами Apple.
- Сообщается, что Bluetooth-устройства не могут подключаться к более чем двум устройствам одновременно без значительного ухудшения качества звука.
- Несколько участников обсуждения отмечают, что большинство Bluetooth-наушников не поддерживают качественный звук при использовании микрофона.
- Некоторые участники подчеркивают, что даже дорогие наушники не могут сравниться с обычной гарнитурой, подключенной через 3.5 мм разъем или USB-C.
- Один из участников упоминает, что большинство современных Bluetooth-наушников не поддерживают качественный звук при использовании микрофона, и что это может быть связано с самой спецификацией Bluetooth-аудио.
The Basic Laws of Human Stupidity (1987) [pdf]
Первый закон человеческой глупости гласит: все без исключения недооценивают количество глупых людей вокруг. Как бы высоко мы ни оценивали интеллект окружающих, нас постоянно удивляет, когда ранее считавшиеся разумными люди оказываются глупыми, а глупые индивиды появляются в самых неподходящих местах и в самый неподходящий момент. Автор использует символ å для обозначения доли глупцов в популяции, подчеркивая, что любые оценки будут заниженными.
Второй закон утверждает: вероятность глупости человека не зависит от его других качеств. Глупость, по мнению автора, — врожденная черта, как цвет волос или группа крови, равномерно распределенная среди всех людей. Исследования в университетах показали, что процент глупцов (å) одинаков среди рабочих, служащих, студентов, профессоров и даже нобелевских лауреатов. Этот закон опровергает представление о том, что образование или среда определяют интеллект, демонстрируя поразительную силу природы.
Комментарии (63)
- Обсуждение вращается вокруг определения «глупости» и «тупости» — от классического определения Каттани до споров о том, что считать «глупым» поведение: намеренный вред, неспособность к саморефлексии или просто неудачная попытка что-то улучшить.
- Участники приводят примеры от политики до личных взаимоотношений, где «глупость» может быть как врожденной, так и вызвана обстоятельствами.
- Обсуждается, что «глупость» — это не обязательно недостаток интеллекта, а может быть просто неправильное применение знаний или нежелание их применять.
- Также поднимается вопрос о том, что если «глупость» — это не только характеристика личности, но и может быть вызвана внешними факторами, такими как недостаток информации или мотивации.
Комментарии (7)
Would be interesting to combine it with Reasoning In the Latent Space: feed the vector from the output layer of transformer back to input.Obviously, you can't do it in pre-training. But you can add it later as an optional 'extra' vector, I think. E.g. `input_embedding + MLP(prev_
A Lost IBM PC/at Model? Analyzing a Newfound Old Bios
На eBay обнаружили два набора EPROM от IBM, один из которых оказался неизвестной версией BIOS для PC/AT. Чипы с датами 1985 года и номером модели FCh (характерным для PC/AT) не совпадают с тремя известными ревизиями BIOS этой системы. Их содержимое существенно отличается, а внутренние номера (6480442/6480441) и дата 03/08/85 не соответствуют ни одной документированной версии. Это может указывать на редкую модель вроде AT/370, 3270 AT/G(X) или промышленного 7532, либо на прототип.
Второй набор чипов (датированный 25/05/90) оказался ранней версией BIOS для PS/2 Model 35 SX/40 SX (ревизия 2), содержащей скрытые VGA-шрифты. Оба набора сохранены в репозитории для дальнейшего анализа. Найденные чипы подчеркивают, что история ранних IBM-совместимых систем ещё не полностью изучена, а подобные находки помогают восстановить утраченные фрагменты компьютерного наследия.
Комментарии (14)
- Обсуждение началось с ностальгии по старому оборудованию и переходе к современным технологиям, включая упоминание о том, что IBM AT/370 был упомянут как возможный источник путаницы, но в итоге признан маловероятным.
- Участники обсуждали, что BIOS в старых системах был ограничен 640К, в то время как IBM AT/370 имел 512К встроенной памяти, что вызывает вопросы о совместимости.
- Были упомянуты технические детали, такие как 256-цветный VGA и 16-цветный CGA, а также то, что 8088 MPH демонстрирует возможности старого оборудования.
- Участники также обсудили, что VPN и прокси могут вызывать проблемы с доступом к блогу, и что это может быть причиной, по которой некоторые читатели не могут получить доступ к статье.
- В конце обсуждение завершилось благодарностями за статью и обсуждением того, что читатели все еще интересуются такими темами, несмотря на то, что технологии продолжают развиваться.
Solarpunk is happening in Africa 🔥 Горячее 💬 Длинная дискуссия
—
Комментарии (531)
- Солнечные панели и аккумуляторы в Африке и других регионах слабой инфраструктуры — это не просто «зелёная энергия», а фактически новая модель развития: пропускаем стадию централизованной электросети и переходим к распределённому электроснабжению. Это влияет на всё: от бытового потребления до микро- и малых предпринимательства. Это также влияет на глобальные цепочки поставок и политику в отношении к климату.
New gel restores dental enamel and could revolutionise tooth repair 🔥 Горячее 💬 Длинная дискуссия
Ученые из Ноттингемского университета разработали белковый гель, способный восстанавливать зубную эмаль — первый материал, реально регенерирующий этот минерал. Гель наносится как обычные фторидные покрытия, но работает иначе: он создает прочный слой, который впитывает кальций и фосфат из слюны, запуская эпитаксиальную минерализацию. Этот процесс организует рост новых кристаллов, интегрируя их с естественной тканью и восстанавливая структуру и свойства здоровой эмали. Электронная микроскопия подтверждает регенерацию кристаллов за две недели.
Проблемы с эмалью, от которых страдает почти 50% населения мира, приводят к кариесу, чувствительности и потере зубов. В отличие от существующих средств, лишь смягчающих симптомы, новый гель не просто укрепляет, а восстанавливает ткань. Он также может формировать эмальподобный слой на обнаженном дентине, леча чувствительность и улучшая адгезию пломб. Как отметил ведущий автор исследования доктор Абшар Хасан, регенерированная эмаль демонстрирует такие же механические свойства, что и здоровая, выдерживая жевание и чистку. Технология уже商业化уется через стартап Mintech-Bio.
Комментарии (214)
- Обсуждение показало, что большинство участников скептически настроены к новым «прорывам» в стоматологии, считая их либо маркетинговыми уловками, либо недостижимыми в обозримом будущем.
- Участники подчеркнули, что большинство «сенсационных» публикаций о «регенерации эмали» или «восстановлении зубов» не сопровождаются доступным продуктом, и что подобные заявления часто не подтверждаются.
- Также было отмечено, что даже если технология и будет когда-нибудь реализована, она, скорее всего, окажется дорогой и не покрывается страховкой.
- Некоторые участники выразили обеспокоенность тем, что вместо того, чтобы публиковать препринты, исследователи и СМИ могли бы сосредоточиться на более практичных вещах, таких как снижение стоимости стоматологических услуг и улучшение доступа к ним.
- В конце концов, было высказано мнение, что если бы кто-то действительно хотел бы «вылечить зубы» вместо того, чтобы публиковать статьи о «регенерации эмали», он бы уже давно сделал это.
Internet Archive's legal fights are over, but its founder mourns what was lost
Internet Archive недавно отметил сохранение триллионной веб-страницы, получив признание от города Сан-Франциско и статус федеральной депозитарной библиотеки. Несмотря на эти достижения, организация только что вышла из многолетних судебных разбирательств по авторским правам, которые привели к удалению более 500 000 книг из проекта "Open Library". Основатель Brewster Kahle отметил: "Мы выжили, но это уничтожило библиотеку".
Kahle с 1996 года стремился превратить Internet Archive в цифровую Библиотеку Александрии, предвидя юридические проблемы, но веря, что Wayback Machine изменит понимание авторских прав. Он считает, что споры были не с создателями, а с крупными медиакомпаниями, которые хотят большего, чем предоставляет авторское право. Сейчас Archive не сталкивается с крупными исками, но Kahle сожалеет, что мир стал "глупее" после опустошения Open Library, и ищет новые пути развития.
Комментарии (94)
- Пользователи обсуждают, что Internet Archive (IA) сталкивается с юридическим давлением издателей, что привело к удалению сотен тысяч книг из Open Library, и что это может быть связано с тем, что IA не может позволить себе защищать их в суде, как это делают крупные корпорации.
- Участники обсуждения подчеркивают, что критика IA за «National Emergency Library» инициативу в период пандемии COVID-19, когда библиотеки были закрыты, была неуместной, поскольку она была направлена на обеспечение доступа к книгам для тех, кто не может физически получить к ним доступ.
- Участники также обсуждают, что критика IA за «National Emergency Library» не учитывает, что IA не предоставляет книги в полном объеме, а лишь ограниченный доступ в форме, который не отличается от того, что предоставляют другие библиотеки, использующие цифровое кредитование.
- Участники также обсуждают, что критика IA за использование книг для обучения ИИ-моделей не учитывает, что такое использование не является уникальным для IA и что подобное использование происходит и в других местах.
Show HN: See chords as flags – Visual harmony of top composers on musescore
К сожалению, у меня нет полного содержимого статьи "Rawl: Visual Music Theory" для создания точного пересказа. Вы предоставили только заголовок и сообщение о необходимости включить JavaScript для запуска приложения.
Для создания качественного саммари в формате Markdown (~170 слов) мне нужен полный текст статьи или, как минимум, основные тезисы, ключевые идеи и важные детали, которые стоит включить в пересказ.
Пожалуйста, предоставьте больше информации о содержании статьи, и я с удовольствием создам для вас точный и лаконичный пересказ.
Комментарии (27)
- Визуализация в виде "пианино-ролла" упрощает анализ аккордов и каденций, но жертвует почти всей остальной информацией нотного стана.
- Цветовое кодирование основано на тональности, а не на абсолютной высоте; транспозиция меняет цвета, но не влияет на функциональную роль нот.
- Пользователи обсуждают, какие компромиссы между полнотой и читабельностью наиболее приемлемы, и какие еще инструменты могли бы помочь в анализе музыки.