Обновить

Разработка

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

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

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

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

Читать далее

10 тяжёлых истин о работе программиста, про которые никто не предупреждает

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

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

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

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

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

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

Читать далее

Как собрать рентген-аппарат из мотка скотча

Время на прочтение13 мин
Охват и читатели37K
Картинка kjpargeter, Gpointstudio, Freepik

Задумывались ли вы над тем, что прямо под руками, может, даже и сейчас, у вас находится весьма мощный потенциальный источник рентгеновского излучения, о котором мало кто знает, потому что «его надо правильно готовить»? А что, если я скажу вам, что это самый обыкновенный скотч? Да-да, та самая банальная клейкая лента, которой мы упаковываем всё подряд! Тем не менее, в определённых условиях она обладает поразительными свойствами, несмотря на кажущуюся странность такого утверждения…
Читать дальше →

Вас забанила нейросеть: как новый алгоритм Яндекса постепенно выкидывает из поиска региональные СМИ

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

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

Удивительно было, что этот сайт — известное в регионе СМИ, и вопросов к нему со стороны Яндекса не было все восемь лет его существования. Потому что мы и на самом деле нарушениями правил поисковиков не занимаемся. Но сначала я, конечно, подумал, что проблема в нас самих — где‑то спрятался баг или, того хуже, взломали. Однако всё оказалось куда интереснее.

Дело оказалось в новом алгоритме Яндекса, который теперь буквально запрещает писать новости. В нашей области он уже забанил примерно треть независимых региональных СМИ. Причём под удар, на удивление, попали одни из самых качественных. Поэтому я считаю, что проблема здесь не столько в сайтах, сколько в самом алгоритме, создатели которого придумали хорошую идею по борьбе за уникальность контента, но не до конца её протестировали. Почему я пришёл к такому выводу и что конкретно с алгоритмом не так, я здесь и расскажу.

На КПДВ: «Региональный журналист пишет новость» глазами другой нейросети Яндекса — «Шедеврум».

Читать далее

Взламываем транспортные карты: чит на бесконечные деньги

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

Этот парень открыл все турникеты на станции. Вы до сих пор считаете, что все хакеры вредны?

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

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

Читать далее

Взлом YouTube для быстрого скачивания видео

Время на прочтение9 мин
Охват и читатели99K
Мы неоднократно рассказывали о специальном софте, который позволяет скачивать видео с YouTube. Это в первую очередь youtube-dl (yt-dl) и его клоны, такие как yt-dlp и yt-dlc. С ними воюют могучие копирасты, пытаются удалить их из поисковой выдачи, с хостингов, с Github и так далее, по известной схеме «тотальная война».

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

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

О чем нам намекают естественные системы физических единиц

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

Мы привыкли к различным единицам измерения, всяким метрам в секунду и киловатт-часам. В формулы пролезают многочисленные константы - c (скорость света), h (постоянная Планка), G (гравитационная постоянная), k (постоянная Больцмана). Однако оказывается, что для фундаментальной физики куда удобнее принять одну из 'естественных' единиц. Таких систем несколько - но лучше по англ.

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

Наоборот, некоторые системы (Система Си) только запутывают (см. главу "Критика"): Вследствие этого в системе единиц СИ электрическое поле и электрическая индукциямагнитное поле и магнитная индукция (в сущности — различные компоненты тензора электромагнитного поля) имеют разную размерность. Такую ситуацию Д. В. Сивухин характеризует так:

Читать далее

Приходите к нам на завод, у нас тяжело

Время на прочтение10 мин
Охват и читатели144K
Короче, ИТ на заводе — это вам не романтика, особенно в нашем цифровом направлении.

Между «давайте этим займёмся» и «о, смотрите, какая гламурная ML-модель» лежит очень много того, про что не рассказывают. Сейчас расскажу.

Вначале у нас была банда энтузиастов из разных подразделений: несколько человек из ИТ, АСУТП, технологи со знанием статистики — чтобы смотреть с разных углов и видеть всё в целом, насколько это возможно. Начали с оценки перспектив. Они были необъятные — наше производство размером с небольшой город. Стали формироваться подразделения и направления: кто-то пошёл собирать роботов, кто-то в видеоаналитику, кто-то в лайтовый анализ данных, кто-то в самый хардкор — в дата-сатанизм. Работы у нас всегда больше, чем рук.

И на каждой из этих дорожек нас поджидали свои чудеса и сюрпризы.

Вот, к примеру, видеоаналитика:

  • Мы поняли, что ML в 50% задач не нужны. Нужна, например, камера, которая по цвету определяет, где есть железка, и смотрит её геометрию в реальности. Всё. Или другая камера, которая следит, чтобы в нужной зоне ничего не шевелилось.
  • Всё это прекрасно до первого солнечного зайчика. ML отлично показывают себя там, где вам лень строить крышу или ставить прожектор над конвейером.
  • У нас была идея, что мы можем сами в нейросети. Чуть не написали свой сервис для распознавания номеров вагонов. Казалось, делов-то на 20 минут, а у подрядчика это стоит 25 копеек за фото. Сделали свой, сферические вагоны в вакууме он определял хорошо. Потом приехало вот это:

image

А потом внезапно пошёл дождь. Знаете что? Вагоны под дождём становятся мокрыми. Это было неожиданно. Ещё они бывают после снега, битые, немытые, обновлённые криворукими малярами и ПРОЧИЕ. И в солнечных зайчиках тоже.

Мы накалывались на получении данных (кто сказал, что прошивка станка без костылей?), на роботизации, инфраструктуре, связи, на всём. Мы облазили весь завод, испачкались в солидоле, мазуте и масле. Но стали делать то, что должны, — оптимизировать мир.
Читать дальше →

Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках

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


Всем привет! Возможно уже совсем скоро разные новостные и  IT-ресурсы будут подчищать информацию о способах обхода блокировок. А пока этого не случилось, запасаемся полезными гайдами и разворачиваем свои собственные VPN с защищенными от блокировок протоколами. Расскажу как это сделать, как изменилась Amnezia и как мы защитили WireGuard от блокировок.

Читать далее

Попытка получения исходников ядра от производителей, и последующее хамство от них

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

Нарушение лицензии и отказ технической поддержки предоставить исходники — одни из множества неприятностей. Особенно если речь идёт о довольно крупных компаниях, в моём случае — Digma. В этой статье рассказываю, как я пытался получить исходный код ядра Linux, который используется в планшете Digma Plane 4G 1538E.

Читать далее

Так какой же процессор использовался в играх Brick Game?

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

На это небольшое исследование меня натолкнула опубликованная недавно на Хабре статья, в которой автор предположил, что в знаменитых "Тетрисах" из 90-х мог использоваться 4-битный микроконтроллер Holtek HT1130. Меня сильно удивило (и мотивировало), что, по всей видимости, до сих пор не снят образ ПЗУ и, соответственно, не написан эмулятор для этой линейки игр.

Заглянем под черную каплю компаунда

Правда ли то, что национальный корпус русского языка «приватизирован» Яндексом?

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

Где-то неделю назад на Хабре увидел тезис другого автора о том, что мол НКРЯ поддерживается на бюджетные средства, но де-факто контролируется компанией Яндекс, которая ведёт себя как собака на сене и де-факто приватизировала корпус и никому его не даёт. Такое же примерно мнение слышал от людей, обозревающих интернет-тематику, мол национализация убытков, приватизация прибылей.

Статья не очень резонансная (и немного на другую тему) и по сути про неё все бы забыли на следующий день, но есть один нюанс. Почему-то разработчики корпуса даже появились в комментариях этой статьи. Я ответил на комментарий. И потом они появились уже в нашем уютном чатике в Телеграме, но уже с критикой моего комментария. Хм, с чего бы это? Два юзера на Хабре согласились с чем-то в комментариях (эка невидаль!), небожители обычно на такое не реагируют.

У меня сейчас довольно мало понимания, что там вообще происходит, но думаю довольно яркая позиция менеджмента и менеджеров высшего звена Яндекса всем вам известна, не будем ее дублировать, чтобы не нарушать правила Хабра (и прошу быть сдержанным в комментариях). Интерес представляют 3 вопроса. Кто там реально на сене? Кто всё-таки может получить доступ к НКРЯ? И последний, дискуссионный вопрос, а как правильно?

Давайте разберемся!

«Импортозамещение» в видеонаблюдении. Часть вторая: Si-Cam обиделся

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

Представители Si-Cam хотят подать на меня в суд, за то что я вскрыл китайское происхождение их IP-камер, включенных в реестр РЭП как российские.

Читать далее

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

Сбер. Как некрасиво поступить на конкурсе красоты

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

Хабр - не жалобная книга, я знаю. Но тут история про код, с примерами, разбором антипаттернов и всё такое, поэтому я рискну.

Всё началось, когда я узнал про конкурс красоты кода от Сбера. Я как раз хотел поучаствовать в каком-нибудь эпичным конкурсе, а тут как раз он мне и подвернулся, тем более что я - тот человек, которому есть что рассказать про красивый код. Я даже целую статью запилил о том, как писать красивый и понятный код. Так что что я решил, что в данном случае мои шансы на победу - в отличие от остальных конкурсов - всё же больше 0%. Кроме того, я хотел выступить на конференции PiterPy (спойлер: хрен мне), чтобы рассказать там про красивый код и всё такое, поэтому участие в конкурсе и сравнение результатов было бы классным подспорьем.

Что же пошло не так?

Signal Integrity of DDR4

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

Доброго времени суток! Наверное, вы все знакомы с компьютерной оперативной памятью DDRx (где x - поколение). Я бы хотел вам рассказать о ней с точки зрения SI (Signal Integrity - целостность сигналов) и принципов трассировки этого интерфейса.

Читая документацию на различные микросхемы CPU, FPGAs, DSPs, ASICs можно увидеть много различных рекомендаций, так называемых «Rules of Thumb», по трассировке DDR3/4 SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных). Но в ней редко можно встретить информацию почему именно так это необходимо делать. В этой статье я попытаюсь вам объяснить различные способы улучшения SI с точки зрения схемотехники и топологии.

Читать далее

Оживляем тахометр из кабины «Боинга»

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

В ходе просмотра «Расследований авиакатастроф» я не раз задумывался над тем, что хотел бы заполучить в коллекцию что-то из авиационных приборов. И вот, вдохновлённый статьёй полугодовой давности, я таки раздобыл один такой экземпляр. А раз так — самое время разобраться, как его подключить, а заодно и поведать об этом миру.



Итак, в сегодняшней статье разберёмся, как запустить тахометр от пассажирского лайнера Boeing 737-300. Узнаем, как устроены и как работают такие приборы, как ими управлять. Традиционно будет много интересного.
Читать дальше →

Сам написал, сам погонял: как я написал 3D-гонки «на жигулях» за неделю, полностью с нуля?

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

Статьи про инди-разработку игр — это всегда интересно и занимательно. Но статьи про разработку игр с нуля, без каких-либо игровых движков — ещё интереснее! У меня есть небольшой фетиш, заключающийся в разработке минимально играбельных 3D-демок, которые нормально работали бы даже на железе 20-летней давности. Полтора года назад, в мае 2022 года, я написал демку гоночной игры с очень знакомым всем нам сеттингом — жигули, девятки, десятки, и всё это даже с тюнингом! В этой статье я расскажу вам о разработке 3D-игр практически с нуля: рендерер, менеджер ресурсов, загрузка уровней и граф сцены, 3D-звук, ввод и интеграция физического движка. Интересна подробнейшая хаброторная статья о разработке игры с нуля? Тогда добро пожаловать!
Читать дальше →

Запуск Тетриса на осциллографе из 90-х

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

В этой статье я хочу рассказать о том, как я запустил Тетрис на старом цифровом осциллографе. Без пайки и бега по граблям не обошлось... Зачем я это сделал — просто Just for fun.

Читать далее

Исследуем саундбар Yamaha YAS-109

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

Всем привет!

Краткое предисловие: я счастливый обладатель замечательного саундбара YAS-109 от Yamaha, на момент написания пользуюсь им уже целый год, и всё в целом хорошо. Но однажды я решил узнать: не подслушивает ли меня мой музыкальный друг? Ведь у него есть встроенная поддержка Alexa, а ещё Bluetooth, WiFi, Ethernet и другие прелести… Так и начинается история моего ресёрча.

Читать далее

Хороший ретрай, плохой ретрай, или История одного падения

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

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

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

Читать далее