Про́клятый огонь, или Магия препроцессора C
Задавались ли вы когда-нибудь вопросом, можно ли полноценно программировать при помощи директивы #define в языке C? Полнота по Тьюрингу шаблонов C++ известна весьма широко, например, люди пишут трассировщики лучей, делающие все вычисления во время компиляции (вместо времени исполнения). А как обстоят дела с препроцессором C? Вопрос оказался сильно нетривиальнее.
⚡ Новости к этому часу
🦅 Реестр воинского учёта будут создавать не на базе «Гостеха», а на инфраструктурной облачной платформе «Гособлако»
📉 Доля параллельного импорта в общем объёме поставок ноутбуков в Россию снизилась на 20%, а планшетов — на 13%
🪙 Microsoft Copilot использует GPT-4 Turbo с платным доступом, что позволяет сэкономить $20 на подписке
💻 Parallels Desktop теперь может запускать Arm-версию Windows 11 на M3
🟠 НАСА выделило финансирование на создание прототипа самолёта MAGGIE для поиска воды на Марсе (ФОТО)
💿 Solidigm стала принимать заказы на серверные SSD объёмом 61,44 Тбайт
📊 Innostage представила тренды и статистику по утечкам у российских компаний за 2023 год
🛰 Главный конструктор Российской орбитальной станции сообщил детали разработки эскизного проекта
🐍 Во Флориде зооэнтузиасты начали активно использовать электрические велосипеды для охоты на инвазивных питонов
#новости
«Я исходил из предположения о том, что кто‑то, спеша вывести в свет свой новый сверкающий проект, срежет путь и забудет реализовать в нём адекватную систему безопасности.
Интуиция меня не подвела. Всё оказалось даже хуже, чем я мог себе представить»
Как за один заход хакнуть половину американских сетей фастфуда
Нельзя писать безопасный код на C++ без санитайзеров
В этой статье автор рассказывает о трёх интересных случаях Undefined Behavior, с которыми столкнулся при разработке на С++. Опытным разработчикам примеры из статьи вряд ли будут полезны, а вот новички узнают, как не стоит писать код на C++.
У меня зазвонил Репка-фон: делаем телефон на базе Repka Pi 3 с применением модуля SIM868
Это четвёртая статья серии, посвящённой модулю GSM/GPRS/GNSS Bluetooth HAT, способному добавить в ваше IoT-устройство или другое оборудование функции мобильного телефона. Настало время превратить модуль GSM/GPRS/GNSS Bluetooth HAT, созданный на базе SIM868, в самый настоящий телефон, способный звонить и принимать звонки.
Разбираем самый маленький PNG в мире
Самый миниатюрный PNG в мире весит 67 байт и представляет собой один чёрный пиксель. Рассмотрим этот файл подробнее, а также узнаем о принципе работы формата PNG.
На прошедшей неделе мы реализовывали большую языковую модель на SQL, ковыряли малоизвестные особенности C и C++, искали бэкдор в радиосвязи TETRA и выясняли, почему Google Play Protect посчитал 2ГИС вредоносным ПО.
Лучшие публикации недели (15-21 января 2024)
Не Китай, так Индия: производители мощных GPU поставляют всё больше продукции индийскому бизнесу. Что происходит?
Вот уже несколько лет многие IT-компании из Китая находятся под жёсткими санкциями США. Экспортные ограничения не дают возможности производителям, которые работают с технологиями США, поставлять современную продукцию в КНР. В первую очередь под запретом находятся мощные GPU от Nvidia и других вендоров, поскольку эти системы применяются для отрасли искусственного интеллекта.
Терпят ли производители убытки? Возможно, у кого-то и наблюдаются проблемы, но Nvidia явно не из их числа. Кроме того, что компания выпускает адаптированные версии GPU для Китая, искусственно ограничивая некоторые возможности своей продукции, у производителя есть и другие «оптовые» покупатели — например, Индия. Поговорим о ситуации, которая сложилась на рынке.
▫️Прозрачные телевизоры от Samsung и LG
▫️Holobox
▫️Игровая консоль от MSI
▫️Rabbit R1
▫️Умное кольцо Evie Ring
▫️Робот-повар I-Robo
Говорим про самые интересные устройства и системы, которые показали на технологической выставке CES 2024
«Меня зовут Алексей Матюнин, я ведущий программист команды разработки ML Platform в компании VK Cloud. Расскажу, почему мы решили делать Spark в Kubernetes, с какими сложностями столкнулись и как их обходили, а также что получили в итоге»
Как сделать Spark в Kubernetes простым в использовании
Четыре типажа программистов
Все разработчики делятся на четыре больших типажа, и каждому из этих типажей есть своя область применения. Попытка направить неправильный типаж на решение неподходящих для него задач ведёт к провалу (неэффективная работа, или сотрудник покидает команду). Давайте узнаем, почему так.
#хабраархив
«В целом это слишком трудоёмкая работа для нишевого эксплойта видеоигры, которым я даже не собирался пользоваться. Но в том, чтобы сманипулировать чем-то на первый взгляд случайным для получения нужного результата, было настоящее волшебство; я походил на фокусника, вытянувшего четыре туза из перетасованной колоды»
Когда Random совсем не случаен
Поделка в стиле 2000-х: блютус-колонка с пультом, MP3, ЧМ-радио и эффектами
Какие подводные камни таит в себе копеечный китайский модуль и как их преодолеть? Как сделать усилитель дешёвых компьютерных колонок менее чувствительным к помехам по питанию? Как устроен расширитель стереобазы, он же Surround Sound или «трёхмерный звук»? Как заставить маленькую моноблочную стереосистему звучать ещё объёмнее при помощи цифровых линий задержки?
Обо всём этом расскажет один маленький проект, начавшийся десять лет назад и не законченный до сих пор
Стажировки в компаниях на Хабр Карьере.
Frontend developer (Vue.js) в МСтрой. Можно удаленно. От 99 999 ₽.
Программист 1С в ГК Автоимпорт. Можно удаленно. От 110 000 ₽.
RTL-разработчик в Мотив Нейроморфные технологии. Новосибирск. Неполный день. От 50 000 ₽.
JavaScript-разработчик в вАйТи. Неполный день. Можно удаленно. 5000 — 25 000 ₽.
Специалист отдела поддержки в РС Тех. Тверь. От 35 000 ₽.
Больше вакансий
#intern
Как спроектировать базу данных регулярного UX-исследования: полный гайд на примере одного продукта
В организации любого исследования важны системность, логичность и наглядность. А когда речь идёт о регулярном, то есть периодическом исследовании, роль этих качеств становится особенно очевидна. Исследуя что-либо на длинной дистанции, к примеру, в течение нескольких лет, мы нуждаемся в инструменте, который позволяет хранить массивы данных, быстро обращаться к результатам разных волн исследования, отслеживать проблемы и делать корректные выводы.
Оптимальное решение в такой ситуации — создание и поддержка единой базы данных. В этой статье на примере отдельного продукта пошагово рассказано, как её спроектировать.
Советские игровые автоматы: ностальгический гейминг с запахом резины. Часть первая. Как родился «Морской бой»?
Многие старшие миллениалы, не говоря уже о более старших поколениях, впервые познакомились с играми на экране или на специальном устройстве либо посредством «Ну, погоди!» и других устройств «Электроники», либо на аркадных игровых автоматах. Уже в 90-е годы они повсеместно ушли в историю, но для советских детей 70-х и особенно 80-х годов они были отлично знакомым, популярным и местами даже культовым развлечением. Вспомним о том, какими были советские игровые автоматы, и заодно разберёмся, откуда они возникли.
Стабильный релиз Wine 9.0? Спустя год он всё-таки появился!
Разработчики внесли несколько тысяч изменений, так что здесь есть что обсудить. Основные нововведения — архитектура WoW64 для запуска 32-разрядных программ в 64-разрядном окружении, интеграция архитектуры ARM64, а также добавление драйвера для поддержки Wayland.
Вакансии в тестировании на Хабр Карьере.
Инженер по тестированию в СПОРТСОФТ. Неполный день. Можно удаленно. 60 000 — 80 000 ₽.
QA-тестировщик в Ситимобил. Санкт-Петербург. 100 000 — 140 000 ₽.
QA-инженер в Data Chemistry Lab. Санкт-Петербург. 100 000 — 200 000 ₽.
QA-инженер в 3VO Inc. Можно удаленно. До 1450 $.
Manual QA engineer в Кавычки. Можно удаленно. 70 000 — 120 000 ₽.
Больше вакансий
#middle #quality_assurance
CompletableFuture: глубокое погружение
java.util.concurrent.CompletableFuture — класс не новый. Он предстал перед нами во всём своём величии в 2014-м году вместе с выпуском Java 8. Много лет с тех пор прошло, а проще он не стал. Разберём внутреннее устройство и неочевидные нюансы работы с этим классом.
Специалисты исследовательского центра интеллектуальной робототехники Корейского института науки и технологий создали портативный экзоскелет MOONWALK‑Omni. По словам разработчиков, устройство облегчает ходьбу и подъём в гору.
Разработка представляет собой пояс с четырьмя мощными приводами. Эти приводы крепятся к бёдрам, помогают балансировать и повышают силу ног на 30% за счёт дополнительной тяги. Разработчики заявили вес MOONWALK‑Omni в 2 кг. Также создатели утверждают, что взрослый человек может надеть экзоскелет менее чем за 10 секунд без посторонней помощи.
В новом экзоскелете предусмотрен искусственный интеллект, анализирующий походку пользователя в режиме реального времени. ИИ обеспечивает безопасную и эффективную поддержку мышц в различных условиях ходьбы, включая пологие склоны, неровные каменистые тропы, крутые деревянные лестницы и неровные каменные ступени.
⚡ Новости к этому часу
❌ Элизабет Холмс запретили участвовать в федеральных программах здравоохранения на 90 лет
🍏 Apple открыла предзаказ Vision Pro
🪫 Лунной станции JAXA SLIM грозит отключение из-за нехватки энергии
⚠️ Tesla предупредила о необходимости постоянной чистки от любых загрязнений кузова Cybertruck из нержавеющей стали
❌ AMD убрала с процессоров Ryzen маркировку о тайваньском происхождении чипов
🛰 НАСА рассказало о причинах аварии во время миссии Peregrine (ФОТО)
📥 Google упростила отказ от подписки на электронные письма
🛸 НАСА восстановило радиоконтакт с «Индженьюити» после пропадания связи во время вертикального полёта №72
👀 Произошла утечка спецификаций нового поколения процессоров Intel Arrow Lake-S, в нём будет до 24 ядер и 32 потоков
👨💻 Начался приём заявок на отсрочку от весеннего призыва 2024 года для IТ-специалистов
#новости
«Познакомившись с практиками экстремального программирования ещё в начале карьеры, позже я стал внедрять их в свои команды. По моим наблюдениям, они позволяют улучшить качество кода, ускорить подготовку релизов и в целом сделать процессы более гладкими. Если вам интересно узнать, почему и как, — эта статья для вас»
Экстремальные практики программирования: что, как и зачем
Прокачиваем навыки в сфере ML: что изучать в 2024-м
Чтобы грамотно использовать инструменты для работы с AI- и ML-задачами, нужно приобрести необходимо знания и навыки. Поможет разобраться в машинном обучении и инструментах для работы с ML-моделями подборка новых и высокооценённых специализированных курсов, книг и других тематических материалов.
«В недавнем времени получилось так, что у меня появилось пару интересных проектов где одна из составных частей — микроконтроллер STM32. И каждый раз при смене ноутбука или ОС на домашнем компе приходится настраивать окружение для разработки каждый раз как в первый раз. Плюсом, последние проекты, которые я делал для STM32, я выполнял в Windows, в демо-версии Keil uVision. Но поскольку я давно и основательно переехал в Linux — появилась необходимость основательно разобраться и изложить процесс настройки окружения для будущих применений»
STM32. Подготавливаем среду разработки в Linux
Ручная работа со стеклом: резка трубчатых заготовок, бутылок
Обычно мастер-самодельщик сталкивается в своей работе со стеклом листовым. Цилиндрические заготовки — стеклянные палочки, капилляры, трубочки, трубки и ТРУБЫ — могут использоваться в техническом творчестве или декоративно-прикладном искусстве при работах экзотических. Очень популярная задача — резка стеклянной тары (банок, бутылок). И, конечно, стеклянное приборостроение, дела стеклодувные. Область бытия, где разносортные и разнокалиберные трубочки и палочки — основные заготовки для любых, даже самых сложных и замысловатых работ. И резка их — первейший навык.
Айтишницы, айда рожать!
По российским законам тотально военнообязанными являются мужчины, в то время как призвать могут только тех женщин, у которых есть военно-учётная специальность. Значит ли это, что целая половина населения и заметное число занятых в ИТ женщин останутся без отеческой заботы правительства?
Нет, нет и ещё раз нет!
Несмотря на мнения отдельных представителей власти о том, что рождение ребёнка это билет в бедность, общий курс заботы правительства о женской части населения уже ясен — всем срочно и много рожать.
«В этом посте я представлю подробный пример математики, используемой внутри модели трансформера, чтобы вы получили хорошее представление о работе модели. Чтобы пост был понятным, я многое упрощу. Мы будем выполнять довольно много вычислений вручную, поэтому снизим размерность модели»
Как работают трансформеры: разбираем математику
«Я долго собирал информацию о том, как организовать свои аккаунты. Как сделать доступ к ним достаточно надёжным и стойким к утере девайсов.
Меня интересовало, как я могу залогиниться туда, где многофакторная авторизация через телефон, в случае потери телефона.
Или как обезопасить себя от забывания мастер-пароля от менеджера паролей? На моей практике я несколько раз забывал пин-код от банковской карты, состоящий из четырёх цифр, после ежедневного использования на протяжении многих месяцев. Мозг — странная штука.
В итоге, спустя месяцы изучения темы, я пришёл к следующему сетапу, который решил описать в виде мануала»
Как содержать пароли: личный сетап
Project Valhalla: эпичный квест Java за перфомансом
Java продолжает наносить ответные удары. В Java 21 релизнулись виртуальные потоки. Теперь есть надежда, что в ближайших версиях двинется к релизу старый и очень ожидаемый JEP-401 aka Project Valhalla. Эта короткая статья описывает проблему, которую решает JEP, и содержит бенчмарк на основе превью фичи из Java 22.
Скачать фильмы за креды без СМС и регистрации: история одного supply chain под Linux
В ходе расследования одного инцидента был обнаружен целый кластер вредоносной активности, нацеленный на операционную систему Linux, который оставался незамеченным как минимум с 2020 года. Дальнейший анализ показал, что вредоносное программное обеспечение выдавало себя за очень популярный мультиплатформенный менеджер загрузок.
Давайте узнаем, как жертвы, сами того не зная, устанавливали себе заражённый Debian-пакет менеджера загрузок с официального сайта