Здравствуйте, читатели Хабра.
Хочу поднять важную тему, о которой сейчас практически не говорят, — уязвимость LED-панелей. Хотя технически это сложно назвать "взломом" в классическом смысле, речь идет о возможности подключиться к LED-дисплеям и изменить отображаемый на них текст или изображения.
Читать далееСотрудник-клей, тест систем управления проектами, Канбан, CFD, обзор курса от Гугла, замена РП на ИИ, офисные интриги и всё интересное, что писали за последние 2 недели про управление проектами. Мы прочитали все публикации и выбрали для вас самые крутые и полезные. Читайте, сохраняйте и применяйте!
Читать далееПредыдущая часть тут.
Когда коту нечего делать… Когда нечего делать разработчикам Firefox, они что-нибудь меняют в дизайне стартовой страницы. Некоторые такие изменения — однозначно в правильном направлении (например, возможность установить фоны с видами природы), хотя и сделаны тяп-ляп (если уж делать фотобэкграунды, так с автоматической сменой). Но, к сожалению, далеко не все изменения.
После очередного, 139-ого, обновления дизайнеры из Мозиллы порадовали вот такой картинкой:
Привет! Меня зовут Илья, последние 7 лет я занимаюсь фронтендом и наконец решил отметиться на Хабре. Стартую с темы, которая, как кажется, уже успела приесться, но всё ещё вызывает жаркие споры — код ревью (CR). Не смотря на сотни статей и мануалов, каждая команда подходит к этому процессу по‑своему. Хочется зафиксировать и осмыслить собственный опыт, показать, как мы подходили к настройке процесса в реальном проекте, и почему, на мой взгляд, код‑ревью не может быть универсальным, а должен опираться на контекст команды.
В этой статье не будет технических деталей вроде рекомендаций по максимальному количеству строчек в diff‑е или формату названий коммитов. Я хочу подняться на уровень выше и поговорить о целях, ключевых факторах и реальных компромиссах которые встречаются в CR.
Читать далееМы рассмотрим, чем опасны шаблоны для проекта на C++ и как минимизировать эти риски. В оптимизации нам помогут инлайн-файлы, явные инстанциации и даже модули из C++20.
Читать далееВсем привет! Меня зовут Мария Филенкова. В МТС я работаю помощником руководителя: организовываю встречи и стратегические сессии команд, занимаюсь документацией, планирую календарь и командировки, подготавливаю презентации и даже дважды курировала ремонт кабинетов. Словом, многозадачность, срочные поручения и горящие дедлайны для меня обычное дело.
Иногда приходится разрываться между задачами. Раньше я часто переутомлялась и думала, что у меня ничего не получается. До выгорания было бы недалеко, если бы однажды ко мне не пришло внезапное решение. Я вспомнила счастливый момент из детства, который подарил мне заряд энергии и ощущение уверенности в себе. И подумала: а почему бы не рискнуть снова? Так в мою жизнь пришло новое хобби, к которому многие окружающие отнеслись скептически: мол, возраст уже не тот, у тебя нет никакого опыта, зачем тебе это все вообще нужно. Но именно оно помогло мне взглянуть на себя и свою жизнь с нового ракурса, стать увереннее и даже прокачать тайм-менеджмент.
Надеюсь, сегодня мне удастся показать, что осваивать новую (даже совершенно внезапную) сферу никогда не поздно и что работа со своим образом — тоже мощный инструмент саморазвития.
Читать далееКонстантин Евтеев @beginner760собирает Java-код с помощью диктора NVDA, редактирует его в Блокноте и передает на Linux по SSH через самописные bash-скрипты. После потери зрения он не потерял интереса к жизни и желания быть полезным и выстроил собственную инженерную экосистему: оглавления по строкам .txt-файлами, навигация по main и маленьким методам, отладка на слух.
Читать далееЕще раз про gomock и тесты. Практики как можно писать тесты быстро, сохраняя их качество, при этом не лить горючие слезы.
Читать далееВо время отпуска в Турции я наткнулся на древнегреческую надпись в руинах Фаселиса и использовал ChatGPT для расшифровки и реконструкции текста. Статья про то, как нейросети позволяют поиграть в археологические исследования, которые ранее требовали работы узких специалистов.
Читать далееЭта статья о разработке небольшого инструмента для помощи в изучении китайского языка. Приложение позволяет просмотреть иероглифы, внешне похожие на требуемый, что бы разобрать их сходство и различие. Здесь на довольно простом примере показано как формируется архитектура проекта и подбираются основные компоненты (под катом код с комментариями). Для чтения и понимания достаточно минимального знания python и sql запросов.
Читать далееСегодня в любой более-менее серьезной компании, где настроен CI/CD, используется SonarQube. Это уже стандарт де-факто — он умеет проверять определять code smells, измерять цикломатическую сложность, определять дублирование, уровень покрытия тестами, распознавать недостижимый код, подсчитывать размеры методов и классов и многое другое. Настроили, подключил к CI — и вроде бы все хорошо.
Но...
Читать далееРад приветствовать тебя,%username%. В этой статье я поделюсь тем, как создать вращающуюся ручку (в зарубежной литературе именуемой Knob). Далее по тексту я её буду называть «кноб». Перейдём к сути вопроса.
Что меня сподвигло на написание данной статьи, или как я докатился до жизни такой
Когда‑то давно, будучи ещё совсем зелёным и несмышлёным кодером, мне взбрело в голову сделать своё приложение. Моих знаний хватало на какой‑нибудь «Hello, World!», но кое‑что выдать я мог. И на тоот момент мне позарез нужно было реализовать кноб — тот самый круглый регулятор, который можно крутить и он будет менять значения. И как любой уважающий себя программист, я сразу же полез гуглить стековерфлоу и прочее непотребство, дабы найти тот самый рецепт хлеба сладкого ответ на вопрос, который так долго меня волновал. Однако перешерстив весь интернет, ничего путёвого я не нашёл. Расстроившись, я забил на эту идею. Но какие‑то угольки веры в то, что у меня получится это сделать, тлели в моей охолодевшей к этому миру душонке. И вот на днях, когда я начал работать над своим проектом (небольшая программка, если она найдёт отклик в народных массах, то и по ней напишу парочку руководств, но пока что спустимся на землю), мне опять ударила моча в голову с этими кнобами. Тем более, что все предпосылки ведут именно к этому. Они нужны в интерфейсе. Забравшись в православный яндекс и одновременно в бездуховный гугл, я опять наткнулся на мель отсутствия нужной мне информации. Были только решения с какими‑то библиотеками и интересными историями на jQuery. Плюнув на всё и засучив рукава, я вдруг осознал, что этот мир нуждается в моём компетентном и всем так очень нужном мнении (спойлер: нет). Тогда я принялся за gehirnsturm и молниеносно придумал пару решений. Первое заключалось в SVG на основе path, но оно показалось мне чересчур геморройным. Там много JS надо написать, но не надо никаких стилей зато. И вот второе решение отчасти продолжает идею первого, но с некоторыми отличиями: оно немножко проще в том плане, что начальное, конечное и текущее значение, а также шаг уже вмонтированы в него, что существенно сокращало труды мои праведные. Но, как гласит закон сохранения энергии, энергия не приходит и не уходит, она лишь изменяется. Поправьте, если не так. А это значит, что если где‑то стало проще, то где‑то стало сложнее.
Читать далееВсё самое интересное из мира кибербезопасности /** с моими комментариями.
На этой неделе новости про: раскрытие секретной сети ЦРУ; как с помощью ИИ нашли 0-day в ядре linux; ценовое исследование darkweb; про тюремные сроки для дропперов и другие только самые важные и интересные новости этой недели.
Читать далееВ данной статье расскажу реализацию своей идеи датчика толщины филамента на основе USB микроскопа.
Из известных в интернете реализаций датчика толщины нити, мой вариант является “самым, самым”. Датчик самый простой в повторении, самый дешевый и самый точный, но и самый большой из известных.
Известно, что в промышленных условиях нить изготавливается путём выдавливания расплавленного пластика с определённой скоростью в охлаждающую ванну. Сопла для нити диаметром 2,85 мм и 1,75 мм на самом деле имеют одинаковый размер, но нить растягивается больше или меньше, когда выходит из сопла.
Регулируя скорость выдавливания и растягивания, система может производить нить любого желаемого размера на одном и том же диаметре сопла. Как и любая механическая система, она нуждается в постоянной настройке для поддержания этого баланса. Обычно это делается путём измерения нити лазером после её охлаждения и передачи этой информации обратно в систему. У лучших производителей нитей есть несколько лазеров и очень быстрые контуры обратной связи. Некоторые из лучших производителей обеспечивают разницу в толщине между любыми двумя точками нити в пределах +-20 мкм, а некоторые из худших производителей допускают отклонения до +-100 мкм.
При 3D печати пластик подаётся в экструдер принтера с постоянной линейной скоростью, что приводит к изменению объёма пластика, выходящего из сопла в единицу времени. При наилучших условиях мы наблюдаем изменение объёма расплавленного пластика примерно на 1%. При наихудших условиях изменение может составить более 10%.
Читать далееКаждый маркетолог должен знать термины в списке ниже (это минимальная база). С ними действительно проще понимать, о чём говорят коллеги, или просто лучше разбираться со своей деятельностью. Но не нужно забывать: знание слов само по себе денег не приносит.
Читать далееВ мае 2025 года информационная служба Хабра выпустила 850 публикаций (789 новостей и постов, 11 лонгридов и 50 переводов). В этом дайджесте представлены лучшие технические новости, переводы и лонгриды (отдельные большие публикации) инфослужбы Хабра, согласно оценкам пользователей.
Читать далееКак преподаватель, могу сказать, что студентам непросто бывает привести базу данных к какому‑то осмысленному виду (не говоря уже про третью нормальную форму). Во‑первых, нередко «всё связано со всем», во‑вторых, в мало‑мальски сложной (в смысле, комплексной) задаче бывает трудно правильно спроектировать таблицы (то есть определить, какие таблицы должны быть в базе, как они должны быть связаны друг с другом, где и какая информация должна в них храниться). Помогает ли им в этом теория? И да, и нет. Дело в том, что нормализация данных говорит о желаемом виде каждой таблицы, и, преобразуя отдельно взятую таблицу к нормальной форме, мы также что‑то делаем со всей базой данных (добавляем новые таблицы, перемещаем между ними поля, и так далее) — это как сборка кубика Рубика. Второй проблемой здесь является то, что даже база данных, состоящая из единственной таблицы, не приведенной к первой нормальной форме, внезапно, тоже будет работать — криво‑косо, но будет! Теория — штука хорошая, но кое‑чего ей не хватает, а именно — задания точки отсчёта. Ведь для того, чтобы пройти к библиотеке третьей нормальной форме, для начала нужно понимать, где мы находимся.
Пройдёмте, товарищи!Привет! Я Артур Давыдов, бэкенд разработчик в Здравсити. В этой статье хочу рассмотреть поведение defer более детально. Данную статья пишется в целях "попробовать себя", а так же, надеюсь, помочь кому-то разобраться с defer.
Читать далее