Обновить

Разработка

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

История Rust: от стартапа до продакшена

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


Вокруг Rust в Linux-сообществе до сих пор не утихают жаркие споры. Кто-то считает его спасением, а кто-то — проклятием. В дебатах сталкиваются две позиции: сторонники видят в нем ключ к безопасности и модернизации ядра, противники опасаются усложнения и нарушения традиционных подходов. 

Давайте разберем, как он появился, какие точки роста сделали его рабочим, где он уже побеждает и почему вы его недооцениваете. А также подскажем, как Rust-разработчикам сделать вклад в развитие реального open source-проекта. Детали под катом.

Читать далее

Как найти течь в крыше раньше, чем вы поставите ведра?

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

Привет, Хабр! Меня зовут Алексей, я инженер из ТЕХНОНИКОЛЬ. Большую часть рабочего времени я провожу на крышах зданий, а не в офисе. Потому что я разрабатываю системы, которые защищают здания и людей от всех погодных испытаний: снега, дождя и сосулек.

Вы наверняка видели эту классическую картину: дождь, магазин, посреди зала — парочка ведер, куда методично капает вода с потолка...

Читать далее

MAX без оболочки: Что мы нашли в его APK

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

Недавно появившейся в мессенджер «Макс», наделал много шума. Он является достаточно спорным приложением и мне пришла в голову мысль изучить приложение и посмотреть, а настолько ли опасно оно, как о нем говорят.

Как можно познакомиться с приложением ближе, чем через его код? Тем более, что для исследования android-приложений нам не понадобятся сложные инструменты на подобии IDA или Ghidra, как это бывает с анализом исполняемых файлов.

Для анализа я использовал стандартный, для подобной задачи, набор инструментов: JADX, APKtool, VSCode ну и конечно же Android Studio, куда без него в анализе APK файлов.

Но, прежде чем лезть под капот «Макса» я установил его на эмулятор устройства и посмотрел его функционал и требуемые им разрешения. После того, как я ввел номер телефона и подтвердил его, «Макс» попросил доступ к моим контактам (Рисунок 1). Достаточно стандартное поведение для мессенджера, позволяет находить контакты из списка, зарегистрированных в «Максе».

Читать далее

Как ФБР запустило стартап для наркокартелей и три года читало их переписку — история Anom

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

Наркоторговец из Южной Австралии Доменико Катанзарати был уверен, что провернул сделку века. Он использовал Anom — свой анонимный защищенный смартфон — для координации поставки кокаина, спрятанного внутри промышленного сварочного аппарата.

Катанзарати был спокоен. Anom считался «Роллс-Ройсом» в мире шифрованной связи, его рекомендовали влиятельные люди из криминального мира. Устройство работало на кастомной операционке, а сообщения шифровались так надежно, что, казалось, никакие спецслужбы не вскроют переписку. «Окей, давай заработаем миллионы», — беспечно писал Катанзарати своему подельнику в защищенном чате.

Когда пришло время забирать «сварочник» из порта, получателей ждал сюрприз: груза не было. Через несколько дней Доменико сообщили: «Ваш груз изъят пограничной службой Австралии». Подельники Катанзарати написали в тот же безопасный чат: «Pigs grabbed him» («Менты его взяли»).

Оказалось, каждое сообщение наркоторговца и его подельников читал специальный агент ФБР Маршалл Мьюз в своем кабинете в Сан-Диего. «Безопасный» Anom был тщательно продуманной ловушкой, которую втайне создало и финансировало Федеральное бюро расследований.

Под катом — подробный разбор операции «Троянский щит», одной из самых изощренных цифровых ловушек в истории, основанный на докладах с DEF CON, внутренних документах и свидетельствах участников по обе стороны закона.

Читать далее

МТС: нам плевать на вашу тайну связи?

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

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

Но мало кто знает, что у МТС есть и другой номер: 88002500890. Позвонить на который можно с ЛЮБОГО номера. Еще и бесплатно. И вот какая интересная история случилась.

Читать далее

Не смотрите на % использования процессора при гиперпоточности

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

Этот небольшой этюд служит как бы продолжением статьи "Проценты использования процессора — это ложная метрика". Мы попытаемся копнуть чуть поглубже и более детально разобраться как работает гиперпоточность (или гипертрединг, как его иногда называют).

Читать далее

if err != nil: почему мы (не) любим обработку ошибок в Go? Обзор предложений по её улучшению

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

Привет, Хабр! Меня зовут Павел Агалецкий, я ведущий инженер в платформе Авито. Эта статья на одну из самых холиварных тем, о которой вы могли слышать или читать множество раз. При обсуждении Go, особенно новичками или представителями других языков программирования, камнем преткновения обычно становится проверка ошибок — if err != nil.

Рассказываю, какие есть особенности и нюансы, сравниваю обработку ошибок в Go и других языках. Говорим о подходах к изменению обработки ошибок и обсуждаем последний proposal от Яна Тейлора. А еще разбираемся, почему все предложения отклонялись.

Читать далее

Почему так сложно использовать юмор в играх

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

Комедия — один из наименее развитых жанров в играх. В Steam или Epic Games Store раздел «популярное» заполнен фэнтези, MMORPG и спортивными симуляторами. А вот комедии там даже не упоминаются. Это неудивительно, учитывая сложность интеграции юмора в геймплей. Геймдизайнеру легко заставить кого-то почувствовать себя Рембо, вложив ему в руку виртуальный пистолет. Но как заставить игрока почувствовать себя Чарли Чаплином или Джимом Керри?

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

Читать далее

Почему в Linux «Всё есть файл»? Или почему гениальные абстракции UNIX настолько гениальны

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

– Ваш терминал и ваше интернет соединение – это файл!
– Да что вы такое говорите?
– Скажите ещё, что и мышка в моей руке или жёсткий диск – это тоже файл.
– Абсолютно верно!

На самом деле, с точки зрения Linux – это так.

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

Читать далее

Где поток ненужного софта? Почему заявления об ИИ-ассистентах не сходятся

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

Я в бешенстве. Я реально зол. Зол настолько, что хочется сносить чужие песочные замки, зарядить Дэниэлю ЛаРуссо по физиономии и поливать его грязью перед его девушкойa.

Вообще-то я не из тех, кого легко разозлить, но ситуация в индустрии достала окончательно.

Читать далее

Xfce и «автоматический» диалог

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

Сейчас будет еще одна «трешевая» история из мира открытого ПО, из тех что не рассказывают детям, дамам и сотрудникам ППС.

Читать далее

Терминал — ваш лучший друг: 5 утилит командной строки, которые заменят вам GUI

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

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

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

Читать далее

Next.js меня окончательно достал

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

Наконец, настал этот момент, и я решился написать статью. Давно хотел, но как-то не хватало мотивации. А ведь, знаете, как говорят: «гнев — лучший мотиватор». Есть же такое выражение?

Предыстория

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

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

Читать далее

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

Fallout 2 на Unity

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

Привет всем поклонникам вселенной Fallout, особенно её первых двух частей. Сегодня речь пойдёт о Fallout 2 — попытки перенести вторую часть Fallout предпринимались не единожды. Есть вот такой интересный ремейк, а ещё есть группа энтузиастов, пытающихся перенести вторую часть Fallout на движок Fallout 4. Я не знаю, в каком статусе находятся эти проекты; подозреваю, что воз и ныне там. Как бы то ни было, намерения самые что ни на есть благие. В этот раз я хочу представить очередную попытку перенести Fallout 2 в 3D, на этот раз на движок Unity.

Почему Unity?

Изначально мой выбор пал на Unreal Engine 5, так как уровень графики и богатый API движка впечатляют. Но я быстро понял, что Unreal Engine 5 — это выбор для AAA-проектов либо для полноценных команд, которые уже собраны и готовы работать. В то время как Unity идеально подходит для энтузиастов-одиночек. Дополнительным обстоятельством послужил мой ноутбук — Unreal Engine 5 он банально не тянет, даже редактор работает со скрипом. В итоге звёзды сошлись и указали на Unity: выбор сделан.

Читать далее

Кубистая планета — делаем шарообразный мир в стиле Minecraft

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

Вооружившись игровым движком Unity, я написал техническое демо, в котором пытаюсь наложить кубические воксели Minecraft на шарообразное тело (планету). Планета генерируется процедурно, и её можно полностью разрушить. Игроки могут расставлять или убирать разные блоки, которых насчитывается более 20 типов.

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

Читать далее

Как не попасть на штраф РКН из-за персональных данных на своем сайте

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

2025 год оказался богат на поправки в законодательство о персональных данных. Одна часть изменений вступила в силу весной, другая — летом, а некоторые начали действовать только с 1 сентября.

Привет, Хабр! На связи Алёна, аналитик по информационной безопасности в Selectel. В этой статье разберем, что делать владельцам интернет-ресурсов, чтобы избежать штрафов и других санкций. Материал основан на моем опыте работы с регулятором и анализе его публичных разъяснений.

Читать далее

Как я слил 400 000 рублей и пол года свободного времени на стартап, который никому не нужен

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

В начале 2025 года мне в голову пришла идея запустить свой проект.

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

Я тоже несколько месяцев жил именно так. И даже радовался тому, что вкладываю в это свои собственные деньги.

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

Читать далее

Как спроектировать кэш-библиотеку нового поколения и не умереть?

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

Всем привет! Меня зовут Алексей Майшев, я работаю Go-инженером в Авито. В этой статье рассказываю, как мы проектировали и разрабатывали кэш-библиотеку следующего поколения для Go — otter

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

Читать далее

Как устроена память внутри микропроцессора и при чем тут компиляторы

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

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

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

Читать далее

Вайб-кодинг глазами старого разработчика

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

Здорово, когда ты получаешь готовое работающее приложение с одного запроса. Пусть даже долго оттачиваемого, как меч самурая. Это апофеоз одновременно профессионализма и лени: ты смог сформулировать задачу так, что ИИ тебя понял и с первого раза сделал всё верно.

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

Эта статья содержит разбор эксперимента по вайб-кодингу, проведённого oldschool-разработчиком с 20+ летним стажем (Assembler, 1C, C/C++, Go, Pascal, Perl, PL/SQL, Python). Я покажу:

• В каких случаях вайб-кодеру достаточно минимальных знаний предмета, а в каких необходимы экспертные навыки и опыт?

• Что изменилось в инструментах вайб-кодинга за текущий год, и что изменится в ближайшем будущем?

• Сравним обычные и «премиум» языковые модели.

• Поймём, есть ли предел у диалога с ИИ-ассистентом, и как понять, что он достигнут?

Читать далее