Search
Write a publication
Pull to refresh
1
0
Send message

Разработка 2-наносекундного излучателя лидара. Тестовое задание от Яндекс.Беспилотники

Reading time10 min
Views45K

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

Читать далее

Разбор тестового задания по электронике в Яндекс

Level of difficultyHard
Reading time9 min
Views45K

Сегодня в очередной раз наткнулся на вакансию старшего инженера - схемотехника в Яндекс. Решил, что это знак и настало время разобрать их тестовое задание. Звучит оно следующим образом:

Читать далее

Отладка приложения, которое не хочет, чтобы его отлаживали

Level of difficultyMedium
Reading time17 min
Views7.8K
Недавно я столкнулся с приложением, которое:

  1. Блокирует прикрепление к нему отладчиков.
  2. Выполняет преждевременный выход при попытках инъецирования кода.
  3. Приводит к вылету телефона целиком, если запустить её со включённым джейлбрейком (!).

По последнему пункту: кто вообще так делает???

Всё, что мы делаем (например, выполняем моддинг TikTok, чтобы он показывал только видео с котиками, или устраняем торможения в чужих приложениях), требует возможности исследования работы приложения.

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

Похоже, это приложение стало на удивление интересной комбинацией всего перечисленного.

Намного более сложной, чем можно было бы ожидать от обычного старого виджет-приложения.
Читать дальше →

Пишем операционную систему на Rust. Страничная организация памяти

Reading time17 min
Views32K
В этой статье представляем страницы, очень распространённую схему управления памятью, которую мы тоже применим в нашей ОС. Статья объясняет, почему необходима изоляция памяти, как работает сегментация, что такое виртуальная память и как страницы решают проблему фрагментации. Также исследуем схему многоуровневых таблиц страниц в архитектуре x86_64.

Этот блог выложен на GitHub. Если у вас какие-то вопросы или проблемы, открывайте там соответствующий запрос.
Читать дальше →

Не все герои носят плащи. Программист-энтузиаст построил кластер Nvidia GeForce 1080 Ti для лечения рака

Reading time8 min
Views21K


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

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

Ниже история программиста, который решил в свободное от работы время сделать полезное для этого мира — спасти жизни людей. Может, его пример кого-то вдохновит.
Читать дальше →

Как SpaceX пишет софт

Reading time11 min
Views34K

Даглас Хёрли и Боб Бенкен в капсуле «Индевор»

Компания SpaceX ведёт стремительную разработку проектов сразу по нескольким направлениям. Первая ступень ракеты Falcon 9 после запуска полезной нагрузки в космос возвращается на Землю для повторного использования, подобное тестируют для прототипов Starship. На МКС корабль Crew Dragon доставляет экипаж, готовится второе поколение грузовиков Dragon. Рой спутников связи Starlink выдаёт больше сотни мегабит в секунду для реальных пользователей открытого бета-теста.

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

Калькулятор? Да его напишет кто угодно

Level of difficultyEasy
Reading time7 min
Views50K

[Прим. пер.: на Хабре уже был перевод этой статьи, но незавершённый примерно на четверть.]

Неправда.

Калькулятор должен показывать результат введённого математического выражения. А это намно-о-ого сложнее, чем кажется.

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

На изображении выше показан калькулятор из iOS.

Заметили что-нибудь?

Он посчитал неправильно.

(10100) + 1 − (10100) равно 1, а не 0.

Android считает правильно. А причина, по которой он это делает, абсолютно безумна.

Читать далее

Уникальные редкие игровые механики в забытых играх

Level of difficultyEasy
Reading time10 min
Views74K

Роль игровой механики в видеоиграх трудно переоценить. Все игры, ставшие культовыми, имели уникальную механику, которую позже стали все копировать.

Время от времени появляется игра, которая показывает что-то новое и по-настоящему революционное. Например, Metal Gear Solid (1998), разработанная Konami, представила игровой процесс, основанный на скрытности, в жанре приключенческого боевика. Игрокам предлагалось избегать конфронтации и придумывать хитрые тактики для прохождения, пробираясь мимо врагов, прячась в картонных коробках и используя гаджеты для отвлечения охранников. Этот акцент на механике скрытности выделил Metal Gear Solid среди других экшн-игр того времени и породил целый поджанр стелс-игр, включая серии Hitman, Splinter Cell и Dishonored.

Но хорошая игровая механика — это лишь часть самой игры. Если повествование и геймплей хромают, то механика, какой бы крутой она ни была, не спасёт. Мы полюбили Super Mario Bros. (1985) не потому что, там впервые появилась механика скольжения персонажа, а из-за того что, это игра подарила нам множество часов весёлых приключений в удивительном мире.

Поэтому существуют игры, которые игроки не приняли или забыли, но у которых была великолепная игровая механика. В свое время разработчики игр приветствовали всевозможные нестандартные решения, как в плане механики, так и в плане визуальных эффектов. Это породило игры с уникальными механиками. По разным причинам эти механики не получили должного развития, они не получили новую жизнь в других играх. Но они были очень потрясающими, чтобы о них просто так забыть.
Читать дальше →

Книга: «Blue Fox: взлом и реверс-инжиниринг ARM»

Reading time10 min
Views3.2K
Привет, Хаброжители!

Что такое реверс-инжиниринг?

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

Конечно же, сегодня мы расскажем о новой книге «Blue Fox: взлом и реверс-инжиниринг ARM», которая поможет разобраться во внутреннем устройстве архитектуры ARM и реверс-инжениринге.
Читать дальше →

Взгляд на звук через спектрограмму

Level of difficultyEasy
Reading time6 min
Views14K
Я хочу познакомить вас со взглядом на звук как на спектр и побудить на самостоятельные акустические эксперименты. Вам не потребуется никаких денежных затрат, так как все опыты будем проводить в бесплатной программе Audacity. Представление звука в виде спектрограммы может найти множество применений, например, для диагностики работы механизмов, в анализе тембров инструментов, сэмплов, синтезаторов. Статья рассчитана на новичков.

Спектрограмма звука скрипки. Автор: Omegatron.

Моё увлечение акустикой началось с проекта, когда я хотел сделать анимацию северного сияния, которая бы реагировала на музыку. Я использовал фрагмент классического произведения Баха. Открыл его в программе Audacity в режиме отображения спектрограммы, и внимание сразу привлекли волнообразные штрихи. Так на спектре выглядит исполнительский приём вибрато, смысл которого в переменном изменении тона при игре на музыкальном инструменте.
Смотреть картинку, слушать пластинку

Cisco VSS: страх и ненависть на работе

Reading time6 min
Views52K
Данный пост я написал в порыве негодования и недоумения от того, как сетевое оборудование от мирового лидера в данном сегменте может сильно и неожиданно портить жизнь production-процессам и нам – сетевым админам.
Я работаю в государственной организации. Ядром нашей сетевой инфраструктуры является VSS-пара, собранная из двух коммутаторов Cisco Catalyst 6509E под управлением супервизоров VS-S720-10G-3C с версией IOS 12.2-33.SXI6 (s72033-adventerprisek9_wan-mz.122-33.SXI6.bin) на борту. Наша сетевая инфраструктура является полностью production и должна быть доступна практически 24*7*365. Какие-либо профилактические работы, предполагающие малейший останов предоставляемых сервисов, мы должны заранее согласовывать и выполнять в ночное время. Чаще всего это ночные квартальные профилактики. Об одной из таких профилактик я хочу рассказать. И я искренне не хочу, чтобы с вами повторилась моя история.
Читать дальше →

Все знают, где ты находишься

Level of difficultyEasy
Reading time10 min
Views64K

Недавно я прочитал о масштабной утечке геолокационных данных из Gravy Analytics, благодаря которой стало известно, что более двух тысяч приложений из AppStore и Google Play тайно собирали геолокационные данные пользователей без их согласия. И часто об этом не знали даже разработчики.

Я изучил список (ссылка) и обнаружил как минимум три приложения, установленные на моём iPhone. Проверьте сами!

У меня возникла идея: попробовать отследить себя снаружи, то есть купить свои геолокационные данные, утёкшие через какое-нибудь приложение.
Читать дальше →

Конец программирования в том виде, в котором мы его знаем

Level of difficultyEasy
Reading time17 min
Views127K

В СМИ много говорят о том, что разработчики ПО скоро потеряют работу из-за ИИ. Я в это не верю.

Это не конец программирования. Это конец программирования в том виде, в котором мы его знаем сегодня.

Читать далее

AI, FreeRTOS и Linux в кармане: возможности LicheeRV Nano

Level of difficultyMedium
Reading time63 min
Views13K

В этой статье речь пойдет о разработке под отладочную плату LicheeRV Nano - компактное устройство размером с две пятирублевые монеты, но обладающее впечатляющими возможностями.

Плата способна одновременно запускать Linux и FreeRTOS, выполнять инференс нейронных сетей (будет разобран запуск YOLO в 100 FPS и LLama2.c) благодаря встоенному NPU с производительностью 1 TOPS, а также управлять периферийными устройствами: GPIO, I2C, UART, SPI, CSI камерой, Wi-Fi, Bluetooth и Ethernet.

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

Читать далее

Декодирование телефонного сигнала из фильма Pink Floyd: «The Wall»

Level of difficultyMedium
Reading time5 min
Views24K

Люблю загадки… Недавно меня попросили расшифровать сигнал телефонного вызова из фильма «The Wall» 1982 года, снятого по мотивам одноимённого альбома Pink Floyd. Услышать сигнал вызова можно в этой сцене, когда главный персонаж, Пинк, звонит в Лондон с таксофона в Лос-Анджелесе.

Вот этот пятисекундный аудиоклип:
Читать дальше →

Случайный PCB-art, «сломавший головы» сотням студентов-электронщиков

Level of difficultyEasy
Reading time7 min
Views29K
image

Так случилось, что в 2017 году на «добровольных началах» я стал разработчиком задания демонстрационного экзамена по электронике для выпускников колледжей. Специфика самого экзамена заслуживает отдельного обсуждения, мы коснемся ее совсем кратко. В этой статье я хочу рассказать о проектировании электронной схемы, которая легла в основу экзамена.

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

Горе от ума – почему рост знаний приводит к росту страданий

Reading time19 min
Views101K

Психика – довольно парадоксальная вещь, которая подчиняется иной логике, нежели к которой мы привыкли. Несмотря на то, что главная функция психики – это обеспечение выживания индивида, на основе «субъективного отражения объективной реальности», иногда она работает против этой цели. И я говорю сейчас не про экстремальные варианты, вроде появления сверхидеи о питании солнечным светом и не про религиозные суициды во благо вечной жизни. Нет, я говорю об… учёбе, саморазвитии и познании мира.

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

Я достаточно давно изучаю особенности психики и личности как IT-специалистов, так и людей «от головы» в целом. И про особенности их личности писал ряд статей (часть 1, часть 2, часть 3, часть 4). Но сейчас, когда выборка стала больше и количество наблюдений кратно возросло, мне хочется копнуть чуть глубже и посмотреть не просто на личностные особенности, а на механизмы формирования этих особенностей у людей, обладающих эрудицией, интеллектом и способностью к абстрактному мышлению на более высоком уровне, чем в «среднем по больнице».

Взгрустнуть с пользой

Обход SSH Keystroke Obfuscation

Level of difficultyMedium
Reading time10 min
Views4.7K

В OpenSSH версии 9.5 были добавлены меры предотвращения keystroke timing‑атаки за счет анализа трафика. Патч включал добавление обфускации таймингов нажатий клавиш в клиенте SSH. Согласно информации о релизе, эта функция «пытается скрыть тайминги между нажатиями за счет отправки трафика взаимодействия через фиксированные интервалы времени (по умолчанию — 20 мс), когда отправляется малое количество данных». Также отправляются фейковые chaff‑пакеты после последнего нажатия, что значительно усложняет анализ трафика, скрывая реальные нажатия среди потока искусственных пакетов. Эта функция может настраиваться с помощью опции ObscureKeystrokeTiming в конфигурации SSH.

Я исследовал влияние использования анализа задержек между нажатиями клавиш для определения отправляемых внутри сессии SSH команд клиентом в рамках моей бакалаврской диссертации. В ходе этого я обнаружил способ обхода этого метода обфускации, работающий вплоть до текущего релиза. Я оповестил разработчиков 24 апреля и получил ответ от самого Дэмьена Миллера (разработчик, добавивший данный патч), но, к сожалению, дальнейшая переписка была проигнорирована. Отсюда и публикация данной статьи.

Читать далее

Чем заняться после программирования

Level of difficultyEasy
Reading time6 min
Views36K


Деньги ≠ счастье, по крайней мере в выборе профессии. Согласно опросу Лондонской школы экономики и политических наук, среди всех профессий наименее счастливы работники банковской сферы и IT. (Очевидно, в опроснике не было редких и очень тяжёлых профессий вроде шахтёров, например).

Там же приведён список «самых счастливых» профессий. Это прямой ответ на вопрос, чем заняться вместо программирования, когда «айтишка» стала уже совсем невыносимой.
Читать дальше →

Приключения с Xbox 360: долгий путь к RGH3

Level of difficultyMedium
Reading time36 min
Views20K

Несколько лет назад я подумал, что эра Xbox 360 прошла, исследования забиыты, и потихоньку начал избавляться от наследия студенческих времён - приставки продал, запчасти раздал, на форумы залезать перестал. Но у вселенной были совершенно другие планы, стоившие мне нескольких месяцев бессонных ночей…

Читать далее

Information

Rating
Does not participate
Registered
Activity