Обновить

Все потоки

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

Как я написал свой клиент Miracast для шаринга экрана под Linux в 2026 году и погряз в войне за проприетарные байты

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

Как превратить крик души в работающую утилиту и попасть в официальную ArchWiki? Мне 17 лет, и мне просто надоело тянуть HDMI-кабель от ноутбука к телевизору через всю комнату. В этой статье я расскажу, как написал свой стример экрана FluxCast на Python, с какими багами Smart TV пришлось столкнуться и как устроен «слепой» дебаг проприетарного железа по логам пользователей со всего мира.

Читать далее

Новости

Пишу алгоритм FFT на Си для процессора Эльбрус

Уровень сложностиСложный
Время на прочтение127 мин
Охват и читатели14K

Примерно полгода назад я познакомился с VLIW‑процессором Эльбрус-8СВ. На тот момент у меня уже был опыт написания кода на ассемблере для VLIW‑процессора TMS320C66. Поэтому я захотел написать нечто похожее для Эльбруса. А именно, реализовать алгоритм FFT на ассемблере. Но из‑за нехватки документации на инструкции процессора мне пришлось начать с реализации какого‑нибудь простого алгоритма на Си, чтобы изучать его ассемблерный вывод. По результатам той деятельности была написана предыдущая статья.

После написания той статьи я решил попробовать реализовать алгоритм FFT на Си для Эльбруса. Работа ещё не завершена, но определённые успехи уже есть (сравнение с EML присутствует). В этой статье я хочу поделиться полученными на данный момент результатами.

Читать далее

Как один баг чуть не убил марсоход за $400 млн, и почему везде важна конфигурация

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

3 января 2004 года марсоход «Спирит» коснулся поверхности Марса в кратере Гусева. Двадцать один день спустя он перестал отвечать на команды, ушёл в бутлуп и чуть не погиб от своей же операционки. О том, почему инженерам JPL этот инцидент до сих пор снится в кошмарах, как NASA дважды чуть не потеряло марсоходы из-за одной и той же ОС и почему везде важна правильная конфигурация — в статье.

Читать

Мои ученики не умеют читать

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

Поколенческий коллапс в области грамотности измерим, устойчив и, вероятно, будет только ухудшаться. Академическая сфера реагирует на это импровизацией и иногда — истощением, а не структурной перестройкой, которую требует процесс.

Читать далее

Стеклодувное дело. Ранние стеклодувные горелки на жидком топливе

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели10K

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

Читать далее

RuStore качает MAX без спроса и мониторит GPS каждые 5 минут и ему даже не стыдно

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

Привет, Хабр.

С 1 апреля 2024 года RuStore принудительно предустанавливается на все смартфоны, продаваемые в РФ. После недавнего разбора правительственного мессенджера MAX, я декомпилировал APK самого национального стора и проверил его реальное поведение по коду.

нашёл: скрытую подсистему трекинга с записью GPS-координат в локальную SQLite-базу каждые 2 минуты, классический бэкдор для тихой фоновой установки любых пакетов по Push-команде с сервера, слив детальной статистики экранного времени всех ваших приложений, жесткий обход ограничений Android 10+ для сбора несбрасываемых аппаратных IMEI и IMSI, раздачу токенов авторизации VK через AIDL без согласия пользователя, извлечение захардкоженных секретов из C++ библиотек и встроенный движок Касперского с транзитными P2P-узлами и постоянной inotify-слежкой за директорией фото. Все находки сверены с реальным кодом, ссылки на классы и JNI-вызовы внутри.

Читать далее

Мир, который сгорел

Время на прочтение18 мин
Охват и читатели16K

Вы вообще в курсе, что сейчас горите?

Каждая ваша клетка в эту минуту сжигает кислород. Та же реакция, что превращает древесину в пепел, только медленная. То, что мы называем жизнью — это тление внутри объятого пламенем дома. Недавно я пересматривал «Интерстеллар» и поймал себя на мысли: патоген, убивающий культуры и отравляющий воздух, беглецы, ищущие новый дом — это ведь совсем не фантастика. Эта история давно произошла. Очень давно, два с половиной миллиарда лет назад. Только тогда не было Купера, и в космос никто не летал. Да что там космос, жить вне воды было равносильно подвигу — на суше незащищенные клетки сжигал ультрафиолет; озонового слоя еще не было даже в проекте. Но зато в океане жизнь процветала. А потом начала умирать. Медленно, как в фильме. Все больше яда в воде и воздухе, все меньше пищи. И тот мир умер. Убийцы, кстати, до сих пор здесь — зеленеют за окном, плещутся в волнах океана, и делают то же самое, что делали тогда. Наша жизнь сгорает в отравленной ими атмосфере. Свою биохимию мы к этому приспособили, и даже уже не можем без их яда обходиться. А те, другие, приспособиться не смогли.

Я давно хотел рассказать о великой кислородной катастрофе, спалившей первую жизнь с двухмиллиардолетней историей. О том, каким был тот мир, что его погубило. И еще мне интересно, могла в том мире в конце концов появиться цивилизация, способная слетать на Луну, или же та жизнь была обречена с самого начала? Время от времени я буду давать слово умирающему существу. Назову его для удобства Анаэроб. Пусть это будет точка зрения и голос того мира, который погиб. Голос, конечно, вымышленный. Многоклеточные еще не успели появиться, но уже существовали колонии бактерий, маты, научившиеся жить в симбиозе. И что‑то похожее на чувства у такой колонии могло бы быть — медленные химические волны через все тело. Само собой, никаких нервов, лишь реакции на раздражители, свет, тепло и химию. Говорить и писать Анаэроб не умел. Придется мне.

Читать далее

Тайна легендарной Nokia N70: как финны сделали кнопочный смартфон сразу с двумя процессорами

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

Пожалуй одним из самых массовых и известных смартфонов от Nokia был легендарный N70 и его удешевленный собрат в лице N72. Будучи выпущенным в далёком 2005 году, этот миниатюрный кнопочник скрывал в себе функционал полноценного компьютера с достаточно мощным железом, многозадачной операционной системой, поддержкой нормального Web'а и функционалом мультимедийного комбайна. Но немногие знают о том, что у этого смартфона было сразу два процессора...

В сегодняшней статье мы с вами проведем полный анализ схемотехники N70/N72, подробно узнаем о том, за что отвечает каждый чип на плате устройства и как они все вместе работают, какие неисправности преследовали смартфоны Nokia тех лет, а также изучим особенности ОС Symbian. Любите настоящие гиковские Хабратортные статьи, а не ИИ-жвачку, успешный успех и прочий оффтопик? Тогда жду вас под катом!

Читать далее

Удалёнка убивает тело медленно и без предупреждений: два года DevOps-подхода к себе

Время на прочтение12 мин
Охват и читатели18K

Статья про то, как удалёнка незаметно меняет тело. Перед длинными выходными особенно актуально :)

🍔 Это не про «ЗОЖ-героизм» или «срочно всем в зал», а про честную инженерную диагностику собственного режима: где сломались метрики, почему это долго не было видно и что пришлось поменять, чтобы вернуть организм из состояния «вроде работает» к нормальной эксплуатации.

🧘🏼‍♂️ Внутри: удалёнка, движение, питание, спортзал, skinny fat и немного DevOps-подхода к себе.

Заходите, читайте и делитесь своим мнением и опытом ❤️

Читать далее

Фотоэластичность — как «загнуть» свет или нечто другое?

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели11K

Картинка: Д.Ильин, Pajs

Можно ли наблюдать потенциально проблемные места технических конструкций почти невооружённым глазом? Причём буквально на микроуровне, когда ещё ничего не произошло?

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

Причём изначально даже сам объект не демонстрировал каких-то особых свойств к этому. Однако специфическим техническим подходом это вполне можно изменить…

Впервые эффект появления радужной окраски прозрачных объектов был открыт ещё в 1800-х годах шотландским физиком Дэвидом Брюстером, который в ходе своих исследований изобрёл схему поляризации света, располагая стопку стеклянных пластин под углом к свету.

Читать далее

П維чему нейро考ети дел思ют так

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

Если вы хоть раз тестировали локальную модель (да и нелокальную тоже) и замечали, как она посреди нормального текста вдруг выдает иероглиф, то заголовок статьи вам не покажется странным. И к концу будет ясно, что именно происходит когда ИИ-шка вам подсовывает иероглифы.

Статью я решил поделить на два уровня. Первая часть (без которой сложно понять вторую) — для тех, кто слышал слово «эмбеддинг», но не трогал его руками: разберем на пальцах и со стрелочками, что модель держит внутри своего цифрового серого вещества, в общем объясню простые вещи простыми словами. Вторая часть — для тех, кому интересно копнуть чуть дальше базы: туда я поместил grokking, фурье-частоты и суперпозицию, и там мы вытащим реальное пространство обученной модели и посмотрим, как оно устроено. 

Читать далее

Моя жизнь с матричным принтером

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели18K

РЕТРОКОМПЬЮТИНГ

Всё началось со смерти давнего друга. Но не волнуйтесь: этот друг теперь живее всех живых, хорошо себя чувствует и служит мне верой и правдой.

Это классический матричный принтер Epson MX-80 F/T III. Он был первым принтером, который я купил, где-то в 1982 или в 1983 году, и стоил он мне гораздо больше, чем я мог себе позволить. Даже после того, как он перестал быть моим основным принтером — сначала его заменило невероятно громкое лепестковое печатающее устройство, а потом лазерный принтер Epson, который я «приобрёл» на своей должности составителя обзоров продуктов — он продолжал служить мне в нишевых ситуациях.

Его основной задачей стала печать этикеток для моей библиотеки 35-миллиметровых цветных слайдов. У меня есть база данных, созданная на основе ПО Eagle компании Emerald Bay (это своего рода более удобная версия dBase), и мне было гораздо проще печатать этикетки программно на матричном принтере, чем возиться с листами этикеток на лазерном. Именно такой функциональности мне не хватает.

Читать далее

Алиасинг памяти в C++: прошлое, настоящее, будущее

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

Привет, Хабр! Меня зовут Владислав, я разрабатываю компиляторы в YADRO. В этой статье я расскажу вам про алиасинг памяти в C++: как он развивался, к чему пришел сейчас и что комитет по стандартизации языка думает делать с алиасингом в будущем. По пути я немного затрону алиасинг в других языках, рассмотрю связанные случаи undefined behavior, а также пропозалы C++, которые, как ожидалось, проблемы с алиасингом решат.

Читать далее

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

Ломаем ещё один терминал Сбербанка

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

После прошлой статьи я каждый день заходил на барахолки и искал ещё одну версию терминала «Сбера». Это более новая модель под названием Kozen P10F, её часто можно видеть в киосках самообслуживания и на кассах магазинов. Чем же она отличается от квадратного терминала? Можно ли накатить свою прошивку? Что же у неё внутри?

Можно узнать далее в статье

«Я не смог устоять»: как один человек в 1965-м добавил null, и оставил индустрии счёт на миллиард долларов

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели20K

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

Звали его сэр Чарльз Энтони Ричард Хоар. Для друзей — Тони. Для пары поколений студентов — C. A. R. Hoare, тот самый, что в 26 лет придумал quicksort, выиграв у начальника спор на шесть пенсов. Тьюринговская премия 1980 года, логика Хоара, CSP, на которой потом выросла половина теории конкурентности. Большая, красивая, почти безупречная карьера.

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

Это null.

Есть расхожий сюжет: коварная индустрия наплодила багов, а гениальные инженеры героически с ними борются. Красиво. И, как обычно, неправда. Потому что самый дорогой баг в истории софта добавил не злодей и не нерадивый джун. Его добавил один из умнейших людей в истории computer science. 

Вот про эту историю и поговорим.

Читать далее

Как двери издеваются над программистами

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели25K

Каждый раз, когда техно-энтузиасты на Хабре начинают петь оды ИИ, который вот-вот заменит всех разработчиков, меня охватывает легкий скепсис. Дело в том, что многие простые задачи совсем не так просты, как кажутся нейросетям или продакту. Знаменитое: “да что там делать, вон ИИ отдай, к вечеру уже на прод зальете”, обычно открывает такую кроличью нору, что проваливаться и падать там можно неделями, а приземление оказывается очень болезненным. 

Вот казалось бы, что сложного, сделать дверь в игре? В 2014 году у Liz England вышло отличное эссе “Проблема Двери”, где Лиза описывает 22 логических вопроса, на которые должен ответить гейм-дизайнер при установке двери в игре. Эссе стало настолько классическим, что в сабредите r/GameDesign автомод прикрепляет ссылку на него в каждый тред. При этом эссе явно выходит за границы геймдева и становится универсальным, показывая, что кажущаяся простота в нашем деле часто не является таковой. Это касается и дверей в игре, и “просто логина на сайте”, и задачи вызова лифта, и визуализации прогресса ожидания и ещё тысячи вещей, необходимость детального продумывания которых менеджментом обычно в расчет не берется.

Читать далее

Опровергнут один из основополагающих принципов авиационной инженерии

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели63K

Аэродинамическое сопротивление является основным барьером для высокоскоростных самолётов, автомобилей и скоростных поездов. Это связано с тем, что конструкция с меньшим аэродинамическим сопротивлением позволяет летательному аппарату развивать более высокие скорости с меньшими затратами энергии.

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

Чем дольше воздух остаётся в состоянии ламинарного течения с низким трением, тем меньше становится сопротивление воздуха, но по мере увеличения скорости воздуха оно всё равно переходит в турбулентное течение. Ключ к уменьшению аэродинамического сопротивления заключается в том, чтобы оттянуть момент этого перехода к турбулентности.

На протяжении более 80 лет основной принцип авиационной инженерии был прост: чтобы уменьшить аэродинамическое сопротивление, поверхность объекта должна быть гладкой. Эта предпосылка основывалась на результатах исследования 1940 года, проведённого японским учёным Ичиро Тани, который продемонстрировал взаимосвязь между шероховатостью поверхности (показателем состояния обработанной поверхности) и переходом к турбулентному течению, утверждая, что шероховатость поверхности, которая была неизбежна при технологиях производства того времени, препятствовала реализации ламинарного течения.

Однако в 1989 году Тани переосмыслил экспериментальные данные по трубам с шероховатой поверхностью, полученные инженером-гидродинамиком Йоханом Никуласе в 1930-х годах, выдвинув предположение, что «шероховатость не обязательно способствует только переходу к турбулентному течению и увеличению сопротивления потоку». Развивая эту идею, исследовательская группа под руководством Ясуаки Кохамы из Тохокского университета в 1990-х годах продемонстрировала, что волокнистые шероховатые поверхности, имеющие мелкие волокнистые неровности, при определённых условиях способствуют задержке перехода.

Читать далее

Загружаемся с Raspberry Pi Pico

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели18K

Я продолжаю освещать работу с USB на Raspberry Pi Pico. В текущей статье хочу привести пример, как можно использовать Raspberry Pi Pico в качестве загрузочного USB-устройства.

Читать далее

Тест народных средств для 3D-сканирования: от муки до сухого шампуня

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели17K

Каждый гордый обладатель 3D-принтера проходит через несколько этапов. Вначале эйфория вида «я напечатал кораблик!». Потом осознание того, что создавать получится лишь то, что уже выложено в Сети. На этом многие останавливаются, так как учиться моделировать самому долго и достаточно сложно. И вот именно это часто становится фактором покупки 3D-сканера. Бюджетных вариантов на рынке навалом — кажется, что дело простое: поводи девайсом вокруг предмета — получи готовую модель. Распечатай — и вот она, копия физического объекта у тебя в руках.

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

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

Читать далее

Как починить блокировку легальных сайтов РКН ТСПУ одной строчкой в Chrome

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

Мне очень хотелось разобраться в этой ситуации с блокировками..
Не мог с Chrome зайти на beget.com - там CDN блокировался. Тыкался тыкался..

Вставляете в строку браузера chrome://flags/

Ищите Cryptography Compliance (CNSA) (#cryptography-compliance-cnsa)

Читать далее
1
23 ...