Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Создание своего UEFI приложения

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров39K

Привет, Хабр! Мне 16 лет, я студент, учусь на первом курсе колледжа на программиста. Начал увлекаться низкоуровневым программированием на Ассемблере и C/C++

Я заметил что на Хабре есть множество статей о написании своих простых "загрузчиков" для BIOS-MBR, которые выводят на экран "Hello World!". И при этом практически нет ни одной статьи о создании того же самого, но только для UEFI, хотя будущее именно за ним, ведь BIOS уже давно устарел! Это я и хочу исправить в этой статье.

Читать далее
Всего голосов 86: ↑85 и ↓1+84
Комментарии80

Настоящий игровой роутер

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров19K
Гоняем GTA: Vice City на беспроводном роутере TP-Link TL-WDR4900.

Читать дальше →
Всего голосов 73: ↑72 и ↓1+71
Комментарии19

Как за один pet-проект получить два диплома

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров22K

Все же знают серию компьютерных футбольных симуляторов FIFA? Раньше я много играл в эту игру. Кто-то скажет, что это бесполезная трата времени, но я с этим не согласен. Эта игра вдохновила меня на разработку pet-проекта, который стал моим бакалаврским дипломом.

Во время игры в FIFA пользователь видит небольшую карту с местоположением игроков и мяча на поле, данный элемент интерфейса является очень полезной фичей, без которой невозможно представить полноценный игровой процесс. Мне показалось, что данную карту было бы неплохо перенести в реальный мир, используя видеозапись матча и нейросеть. 

Читать далее
Всего голосов 61: ↑61 и ↓0+61
Комментарии22

Кот украл припой. Секретная китайская плата с логическими элементами

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров12K


Привет, Хабр! Сегодняшний радиоконструктор познакомит нас с тремя микросхемами стандартной логики серии 555 (74LS): счетверённым логическим элементом 2И-НЕ К555ЛА3 (74LS00), сдвоенным 4ИЛИ-НЕ К555ЛА1 (74LS20) и счетверённым исключающим 2ИЛИ К555ЛП5 (74LS86).

Кроме набора для сборки экспериментальной платы, китайские методисты предусмотрели интересные экзаменационные задачи по электронике.
Кот не успел сгрызть припой и не пострадал
Всего голосов 62: ↑60 и ↓2+58
Комментарии10

Истории

Нарушаем ограничения файловых систем *NIX

Время на прочтение11 мин
Количество просмотров12K

Все началось с того, что друг показал удивительный артефакт: на флешке в одном каталоге было два файла с идентичным названием. Разгадка, конечно, простая: во всем виноват фотоаппарат, у которого, возможно, меньше проверок в момент записи кадра.

Этот прецедент побудил поискать ответы на несколько вопросов. Можно ли обмануть операционную систему компьютера и нарушить запреты файловых систем? И если это получится, то как отреагирует ОС?

Под катом вас ждет небольшой экскурс в особенности работы файловых систем и набор экспериментов.
Читать дальше →
Всего голосов 74: ↑70 и ↓4+66
Комментарии48

Это слишком опасно для C++

Время на прочтение6 мин
Количество просмотров33K

Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример.

Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer) наподобие Rc.

Поэтому я написал свой тип ошибок, использовал его как вариант ошибок fallible-функций, и продолжил двигаться дальше.

Читать далее
Всего голосов 77: ↑64 и ↓13+51
Комментарии108

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров22K
image


Пожалуй, немалая часть моих читателей так или иначе интересуется DIY-тематикой. И в различных самодельных девайсах порой есть необходимость вывести какую-либо информацию на дисплей, будь это текст, графики или даже какая-то анимация! Для разных задач существуют самые разные дисплеи и в сегодняшнем материале я хотел бы систематизировать и собрать подробнейший гайд об использовании дисплеев с нерабочих мобильных телефонов: какие бывают протоколы и шины данных, как читать схемы устройств и определять контроллеры дисплеев, какие дисплеи стандартизированы, а какие придётся реверсить самому и как быть с подсветкой. В практической части статьи мы подключим дисплей по протоколу MIPI DBI к RP2040 с использованием DMA. Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 110: ↑108 и ↓2+106
Комментарии116

Пришли домой из-за Element

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров52K

Буквально сегодня где-то час назад (в 21:00 по Мск примерно) ко мне в дверь постучались два молодых человека 25 лет примерно, одетые в курточки, качеством явно лучше и дороже, чем у большинства прохожих на улицах моего поволжского города с 300 к населения.

Как оказалось, это постучались оперуполномоченные из местного МВД. Не предоставив хоть какой-то распечатки, бумаги или постановления, только показав свои удостоверения они начали задавать мутные наводящие вопросы издалека, которые в конечном итоге свелись к вопросу «А не пользуетесь ли вы такими мессенджерами как Signal, Element или Джаббер?»

При этом к Тг, Вайберу и Ватсапу у них никаких вопросов не было. Я даже упомянул старые Майл.ру Агент – тоже 0 реакции. Про Миранду они уже сами «пошутили». Как я понял, у них «там» уже давно и крепко связали хоть сколько-то защищенные мессенджеры с активностью тех преступников, которые занимаются распространением (сами понимаете каких) веществ.

Или же они пытаются сделать вид для внешнего наблюдателя, что только определенная категория людей (преступники) пользуются группой мессенджеров вида «Signal, Element и Джаббер». Или же они сами искренне в это верят.

Заодно напомнили об опасности ознакомления с «недостоверной информации в сети Интернет», после которой люди перечисляют деньги на счет не той команды игроков на серверах Майнкрафта (образно выражаясь).

Сказал им (намекая на потенциальные возможности для раскрытия реальных преступлений), что на доме рядом, например, уже какой по счету месяц висит ссылка, написанная баллончиком на стене. Они от этого отмахнулись, сказав что-то вроде «Это сейчас везде такое».

То есть провели такую воспитательную беседу на пороге моей квартиры в 9 часов вечера. Какая забота в преддверии выборов!

Насколько я знаю, в законах РФ на момент 6 марта 2024 года нет запрета на использование трех относительно защищенных мессенджеров, означенных выше, но я могу ошибаться, т.к. я не юрист. Вроде был какой-то запрет для бизнеса.

Пишу это как крик о помощи и предупреждение всем прочитавшим.

Читать далее
Всего голосов 247: ↑187 и ↓60+127
Комментарии319

Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров22K

Пару недель назад я прочитал о запавшем мне в душу челлендже по обработке миллиарда строк, поэтому захотел решить его на Go.

Я немного опоздал, соревнования проводились в январе. И на Java. Меня не особо интересует Java, зато давно интересует оптимизация кода на Go.

Этот челлендж был очень прост: обработать текстовый файл названий метеорологических станций и температур, и для каждой станции вывести минимальное, среднее и максимальное значение. Чтобы упростить задачу, было ещё несколько ограничений, однако я проигнорировал те, что относятся только к Java.

Читать далее
Всего голосов 66: ↑64 и ↓2+62
Комментарии20

Самое понятное объяснение Специальной теории относительности

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров97K

Специальная теория относительности - удивительная теория, которая опровергла многие представления о мире, в которых человечество не сомневалось всю историю своего существования.

Многие слышали про волшебства вроде замедления времени, сокращения длины, относительности одновременности, парадокса близнецов и т.д., но мало кто понимает почему так происходит. 

В этой статье я хочу наглядно показать, что все это проще, чем кажется на первый взгляд.

Для иллюстраций я написал интерактивный визуализатор СТО, работающий в браузере. Ссылка на него и исходники проекта в конце статьи.

Читать далее
Всего голосов 386: ↑386 и ↓0+386
Комментарии388

Итак, вы унаследовали старую кодовую базу на C++. Что дальше?

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров15K

Вы жили своей обычной жизнью, но внезапно, всё поменялось. Возможно, вы устроились в новое место, сменили команду или из вашей компании ушёл сотрудник.

Теперь вы отвечаете за кодовую базу на C++. Она большая, сложная и своеобразная; достаточно слишком долго на неё посмотреть, как она начинает разваливаться разными интересными способами. Иными словами, это легаси.

Но баги всё равно как-то нужно устранять, а ещё добавлять новые фичи. То есть вам нельзя просто закрыть на неё глаза или что ещё лучше, взорвать её динамитом. Она важна для компании. По крайней мере, для тех, кто платит вам зарплату. А значит, важна для вас.

И что делать теперь?

Не волнуйтесь, у меня такое случалось очень много раз и в разных компаниях (кто-то язвительный может спросить: а разве кодовые базы на C++ бывают какими-то другими?), выход есть, он не особо сложен и поможет вам действительно устранять баги, добавлять фичи, а то и когда-нибудь переписать её.

В этой статье я расскажу о том, что оказалось полезным для меня, и о том, чего стоит всячески избегать.
Читать дальше →
Всего голосов 71: ↑70 и ↓1+69
Комментарии26

Графика древности: пятая волна. Новые технологии и 3DO (часть 1/4)

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров8.3K

К началу 1990-х годов, после двадцати лет доминирования на компьютерных и телевизионных экранах, эпоха пиксельной графики и плоских игр подходила к концу. Назревали большие перемены, ведь старая графическая архитектура игровых консолей практически достигла пика своих возможностей, и не была готова к наступающему некст-гену — мультимедиа и трёхмерной графике.

Новые времена потребовали новых решений, и таковые не замедлили появиться. И хотя по прошествии времени эти первые шаги долго воспринимались бледной тенью того, во что они превратились с развитием технологии, похоже, что дрожащие пикселизированные полигоны уже достаточно настоялись, чтобы стать классикой и вернуться в виде моды на ретро.

Как и пиксель-арт до этого, раннее 3D теперь приобрело новое прочтение. В последнее время авторы современных игровых проектов всё чаще целенаправленно обращаются к этой забытой визуальной эстетике полигонального минимализма. Поговорим о том, как всё это начиналось, как было устроено и к чему привело.
Читать дальше →
Всего голосов 60: ↑60 и ↓0+60
Комментарии9

Бобры-п[р]огромисты

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров13K

Эта история навеяна недавним интервью в одну контору, которая считает, что желтые и красные конторы, не такие синие. Все случайные совпадения неслучайны, имена скрыты. Ни один случайный бобёр за время интервью не пострадал.

Бобер-HRобер: я увидела как грызете дерево в соседнем лесу, не хотите перебраться к нам? У нас деревья синие и потолще ваших, зеленые деревья нынче не в моде.
Бобер-погромист: хм, наверное нет, толщина текущих деревьeв меня устраивает.

Бобер-HRобер: ну вы всё-таки приходите, мы заложили пару делянок, где самые опытные бобры будут распиливать очень старую монолитную сосну с ветками длиной 98 см, на доски очень модной нынче длины 23 см, а еще у вас также будет возможность повлиять на толщину досок длиной 26 см.
Бобер-погромист: а вот это интересно, отправляйте соловья.

Через неделю, на комфортабельной полянке где-то в синем лесу.

Senior-Бобер: Итак, вы считаете себя хорошим бобром?
Бобер-погромист: Всё верно. Грызу деревья разной толщины уже лет двадцать.

Lead-Бобер: А ветки какой длины предпочитаете?
Бобер-погромист: Ветки 17см самые вкусные

Бобры идут, бобрам дорогу!
Всего голосов 111: ↑100 и ↓11+89
Комментарии27

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Методика D.I.Y. проекта. Стратегия выживания

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров8.5K

Каждый, кто начинал D.I.Y.-проект, помнит душевный подъём вначале, когда ты полон идей и решимости воплотить их в жизнь, а затем угасание энтузиазма, чем дальше, тем больше. И если в коммерческой разработке вероятность достижения целей проекта в срок и в рамках бюджета и так не очень высока, то вероятность завершения D.I.Y.-проекта хоть с каким-нибудь положительным результатом – ещё ниже. Всегда найдётся что-то более срочное, более важное, да и более выгодное тоже, и выделенные на D.I.Y. деньги и время уйдут туда.

Бывает и так, что энтузиазм не угасает, но после многочисленных безрезультатных попыток и серьёзных материальных вложений становится предельно ясно, что целей D.I.Y.-проекта достичь невозможно. Результатами такого проекта становятся все пять стадий принятия неизбежного, и радостно от этого никому не бывает.

При этом D.I.Y.-проекты нужны для творческой самореализации, а не для того, чтобы быть как тяжёлый чемодан без ручки, который и нести тяжело, и бросить жалко. И этот рассказ о том, как организовать свой проект так, чтобы, с одной стороны, достичь поставленных целей без каких-либо существенных затрат, а с другой, иметь возможность при необходимости закрыть этот проект без всякого сожаления.
Как это работает
Всего голосов 96: ↑91 и ↓5+86
Комментарии25

Как перестать переусложнять и начать жить

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров43K

Мое наблюдение состоит в том, что мы — разработчики и продукты, сильно переусложняем, осознанно или нет, но всякие «„Архитектурные комитеты“, „Планирования“, „Апрувы у 50 отделов“ и деплои в 2-часовые окна, простыни текста сопровождающие простейшие фичи — это просто какой‑то бич современной разработки. Умные дяди с 20 летним опытом за плечами, с невозмутимыми лицами сутки напролет на созвонах обсасывают простейшие вещи вроде замены кнопки. Что это? Следствие усложнения программного обеспечения или засилие не тех людей не на тех местах? Или следствие входа в индустрию новичков, стремящихся простое сделать сложным?

В статье мы разберем что такое „переусложнение“, дадим ему определение и на реальных примерах разберем во что это выражается и как с этим бороться.

Читать далее
Всего голосов 72: ↑65 и ↓7+58
Комментарии173

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров8.3K
Приветствую всех!
Месяц с небольшим назад я рассказывал о таком девайсе как МС6205. Тема подобных экранов меня заинтересовала, и вот ко мне в руки попал другой экземпляр, однострочный и с более простым управлением. Тем не менее, несмотря на схожий вид, внутри он устроен совершенно иначе — если в МС6205 был матричный индикатор, то тут используется панель с самосканированием. Как же оно работает и как это запустить? Давайте разбираться.



Итак, в сегодняшней статье поговорим о семействе советских текстовых индикаторов ПИУ. Узнаем, как они устроены и как работают. Попутно поговорим о текстовых газоразрядных дисплеях с самосканированием. Традиционно будет много интересного.
Читать дальше →
Всего голосов 90: ↑90 и ↓0+90
Комментарии33

Что это за устройство у меня в комнате?

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров49K
Примерно год назад я переехал в новую квартиру. Одной из причин её выбора стал возраст здания. Строить его закончили в 2015 году, что гарантировало неплохую теплоизоляцию на зиму, а также кучу приятных мелочей наподобие Ethernet-разъёмов в каждой комнате. Однако в квартире обнаружилась одна деталь, слишком новая и умная для меня. Вот эта:


Очевидно, что это некий сенсорный экран, но не было никаких указаний на то, чем он управляет. Арендодатель понятия не имел, что это. На устройстве не было ни кнопок, ни надписей, лишь крошечный жёлтый огонёк, дающий понять, что у него есть питание.
Читать дальше →
Всего голосов 149: ↑146 и ↓3+143
Комментарии128

Правило 16 байт: развенчиваем миф о производительности структур в C#

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров14K

По умолчанию, при передаче в метод или при возврате из метода, экземпляры значимых типов копируются, когда как экземпляры ссылочных типов передаются по ссылке. В 2008 году была выпущена книга «Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries»‎. В этой книге рекомендовалось не использовать структуры размером больше 16 байт, поскольку, очевидно, структуры большего размера копируются медленнее. Несмотря на то, что прошло уже 16 лет, в сообществе C# разработчиков до сих пор популярно мнение, что производительность структур размером больше 16 байт хуже. Даже Google на запрос «recommended structure size c#» говорит, что это не более 16 байт. В этой статье мы попробуем докопаться до правды.

Читать далее
Всего голосов 54: ↑53 и ↓1+52
Комментарии32

Как мы научили YandexGPT пересказывать видео

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров14K

Порой бывает сложно перематывать длинный ролик в надежде найти хоть что-то интересное или тот самый момент из Shorts. Или иногда хочется за ночь узнать, о чём шла речь на паре научных конференций. Для этого в Браузере есть волшебная кнопка — «Пересказать», которая экономит время и помогает лучше понять, стоит ли смотреть видео, есть ли в нём полезная информация, и сразу перейти к интересующей части.

Сегодня я расскажу про модель, которая быстро перескажет видео любой длины и покажет таймкоды для каждой части. Под катом — история о том, как мы смогли выйти за лимиты контекста модели и научить её пересказывать даже очень длинные видео.

Читать далее
Всего голосов 63: ↑63 и ↓0+63
Комментарии63

SDR приемник GPS на микроконтроллере

Уровень сложностиСредний
Время на прочтение28 мин
Количество просмотров20K

В этой статье я расскажу о том, как я делал самодельный SDR GPS приемник на микроконтроллере. SDR в данном случае означает, что приемник не содержит готовых GPS-модулей или специализированных микросхем для обработки GPS сигналов - вся обработка "сырых" данных выполняется в реальном времени на микроконтроллере (STM32 или ESP32).
Зачем я это сделал — просто Just for fun, плюс - получение опыта.

Читать далее
Всего голосов 162: ↑161 и ↓1+160
Комментарии209