Обновить

Разработка

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

Игрушка на елку к Новому году

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

Приветствую, Хабр!

Перед Новым годом для поднятия настроения до праздничного, захотелось сделать что-то необычное и новое. Все мы украшаем елку, ставим на вершину звезду, вешаем на ветки игрушки и ждем Деда Мороза. Женя, 41 годик.

Читать далее

Разбираемся с новой мощной платой Orange Pi 6 Plus на базе Armv9 Cix P1 CD8160

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

Компания Shenzhen Xunlong Software выпустила новую open-source плату на базе 12-ядерного высокопроизводительного процессора Armv9 Cix P1 CD8160. Плата предыдущего поколения Orange PI 5 построена на Rockchip RK3588. Новый процессор Cix P1 состоит из 8 ядер Cortex‑A720 и 4-х Cortex‑A520, и обещает прирост производительности на 300% по сравнению с последним Rockchip RK3588. Ядро Cortex‑A720 было впервые представлено публике в 2023 году и через два года уже готова плата на новых процессорных ядрах. Из коробки работает UEFI/TianoCore EDK II (ED2) с запуском Debian, Android, Windows 11. Под катом разберемся с новой архитектурой Armv9, рассмотрим процессор Cix P1, оценим производительность новой платы и сравним с предыдущим поколением, платой Orange PI 5 Plus.

Читать далее

Конец кремниевой эры: почему квантовые компьютеры — наша последняя надежда

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

Я до сих пор помню тот день, почти два десятилетия назад, когда впервые вскрыла свой системный блок — он начал издавать какой‑то странный шум. Той ночью я сидела, скрестив ноги, на полу своей спальни перед открытым корпусом компьютера и смотрела на крошечные небоскребы, на это подобие города, красиво выстроенное на зеленой плате... Казалось, я наблюдаю за миром, у которого есть свое собственное существование.

Позже я узнала, что этот миниатюрный мир называется материнской платой — главным местом, где всё соединяется и «разговаривает» друг с другом. В то время я не особо понимала, что делают все эти детали, но любопытство брало верх. Я прикасалась к ним с осторожностью, боясь сломать что‑то важное. Шум вентилятора оказался следствием банальной пыли, застрявшей внутри, — вещь простая, но для меня это было настоящим открытием.

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

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

Читать далее

Manim: как создавать математические анимации в стиле 3Blue1Brown с помощью Python

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

Команда Python for Devs подготовила перевод статьи о Manim — Python-инструменте для создания наглядных математических анимаций в стиле 3Blue1Brown. Разбираемся, как с помощью кода визуализировать уравнения, графики и абстрактные идеи так, чтобы они были понятны коллегам, менеджерам и студентам.

Читать далее

Архитектурный квиз: костыль или элегантное решение?

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

Отказоустойчивый и масштабируемый энтерпрайз невозможно спроектировать по книжкам. Одно и то же решение может фигурировать и в best, и в bad practice — и, что забавно, иногда переходит из одного списка в другой. Ещё недавно монолиты считались злом, а теперь снова в моде.

Хотите посмотреть, как знакомые паттерны ведут себя в реальном контексте?

Чтобы показать это на практике, я собрала три инженерных кейса. Каждый оформлен в формате детективного квиза: роль, фабула, вопросы на размышление, разбор и выводы. Попробуйте разобраться в проблеме, пройти тест и определить: где костыль, где инженерный компромисс, а где — настоящая best practice.

Читать далее

Под капотом платежей: чем отличаются ПС «Мир» и СБП

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

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

Читать далее

Как «ИИ» (не)помогает мне разрабатывать игру Creepy Support

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

Уже год я неторопливо разрабатывают свою небольшую инди-игру Creepy Support, о технической части которой я уже рассказывал на Хабре. И недавно меня в очередной раз спросили, «а ты не пробовал использовать «ИИ» для ускорения разработки»? Я начал писать человеку развёрнутый ответ, и в процессе понял, что текст разрастается до небольшого поста...

Читать далее

Всё, что нужно знать про аллокаторы в Rust (и как написать свой)

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

Мне в Rust всегда заходила одна штука. Он довольно быстро приучает не держать в голове мусор из серии «а я точно это освободил??». Большая часть рутины с памятью уезжает в автоматизм языка, и ты можно прям выдохнуть и думать про данные и инварианты, а не про то, где у тебя очередной free потерялся.

Но. Как только начинаешь копать чуть глубже, выясняется, что у Rust есть вполне конкретная рука, которая раздаёт память под все эти Box::new(42), Vec::push и растущие String. Имя этой руке простое: аллокатор. Он отвечает за то, что происходит в куче, и именно через него проходят почти все интересные истории про производительность и поведение памяти.

Читать далее

Изготовление дампера картриджей NES/Famicom

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

В статье расскажу об опыте изготовления и использования дампера NES/Famicom картриджей. Проблемы выбора проекта для реализации, цели и задачи, примеры использования.

Читать далее

Axiom — тестовый фреймворк для Go, которого нам всегда не хватало

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

Axiom — это недостающий тестовый runtime для Go, который добавляет фикстуры, шаги, хуки, retry, плагины, метаданные и структурированное выполнение поверх стандартного testing, оставаясь полностью совместимым с ним. Минимум магии, максимум инфраструктуры.

Читать далее

Снепшот-тестирование SwiftUI View в legacy-проекте: обходим ограничения

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

Снепшот-тестирование — один из немногих надёжных способов контролировать визуальную целостность SwiftUI-компонентов. Но что делать, если ваш проект ограничен Xcode 13.3 и Swift 5.6, а большинство компонентов дизайн-системы обёрнуты в UIViewRepresentable?

Меня зовут Денис Третьяков, я iOS-разработчик в ПСБ. В этой статье расскажу, как мы организовали снепшот-тестирование SwiftUI-компонентов в условиях жёстких ограничений, с какими проблемами столкнулись и как их решили.

Читать далее

Токсичный QA. Быть или не быть?

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

Всем привет, я Саша, инженер по тестированию ПО в Directum. Неотъемлемая часть моей работы — поиск слабых мест, недочетов системы. Фокус на недостатках оставляет отпечаток на образе мысли, взгляде. Работа требует внимания к деталям, определенного перфекционизма.

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

Читать далее

Почему код, сгенерированный ИИ, делает вас плохим программистом

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

Команда AI for Devs подготовила перевод резонансной статьи о том, почему использование кода, сгенерированного ИИ, может сделать разработчика слабее, а не продуктивнее. Автор жёстко критикует AI-ассистентов, рассуждает о деградации навыков, зависимости от инструментов и будущем профессии.

Читать далее

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

Раз, два, три — ёлочка, ГОРИ

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

«А давайте вы сделаете какой-нибудь новогодний рисёч?» — примерно такую задачу поставили нашей Positive Labs этим летом. Поскольку мы любим изучать разнообразные железки, первым делом подумали про умные устройства. А что у нас с Новым Годом обычно ассоциируется? Правильно — новогодняя ёлка. Быстрый поиск в сети показал, что smart-ёлки существуют, и даже не от дядюшки Ляо, а вполне себе серьезной компании. На том и порешили — берем Twinkly Light Tree и смотрим, что там с безопасностью.

Так что же там с безопасностью?

Как я ускорил установку PHP-зависимостей в 5 раз с помощью Go

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

TL;DR

Переписал Composer на Go, получил 3-5x ускорение благодаря параллельной загрузке пакетов и отсутствию PHP runtime overhead. Проект полностью совместим с экосистемой Composer/Packagist (почти, об этом будет подробнее внизу).

Читать далее

Книга «Основы Dart: Community edition» 2-е издание

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

Всем привет!

Завершил обновление предыдущей версии книги и выкладываю в открытый доступ второе издание «Основы Dart: Community edition». От полной версии ее отличает то, что в ней отсутствует глава по разработке тг-ботов на Dart и сквозной проект - игра «Крестики-нолики», которая улучшается практически после каждой главы и сопровождается заданиями на самостоятельную проработку по ее улучшению (своего рода «проект-песочница» из которого я вытряс всю душу и придумал задания, способные привести к знатному подгоранию пятой точки ^_^).

Читать далее

Роутинг в BitrixFramework: учимся управлять маршрутизацией запросов

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

Всем привет! У большинства фреймворков, построенных на паттерне MVC, отсутствуют физические страницы, содержащие в себе логику обработки и детали отображения страницы. Все это держится на плечах контроллера, а роутинг уже сопоставляет используемый URL и необходимый экшен контроллера. Считается, что использование физических страниц для отображения контента — по большой части прерогатива CMS, но на самом деле это заблуждение. В данной статье рассмотрим механику работы роутинга в Битрикс.

Читать далее

Проблемы с которыми я столкнулся при написании рекурсивного парсера journal в Linux

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

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

Читать далее

Как ИИ создает живой профиль: персонализация через постоянное обучение

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

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

В качестве примера снова использую наш проект Linkeon.ru. Это продолжение истории о ценностном поиске людей.

Читать далее

Как летает космическая ракета (на примере РН Союз)? Отвечаем методом структурного моделирования

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

В предыдущей части мы запустили двухступенчатую ракет в космос. Вторая ступень достигла космической скорости по формуле Циолковского и согласно законам Ньютона. Это, конечно, хорошо и правильно, но не совсем. Точнее не совсем правильно. В наших расчетах мы запускали ракету в белый свет, как в копеечку, вертикально вверх. В этом случае первая ступень улетает в открытый космос по инерции и летит, черт знает куда (а черт – потому что бога нет, Гагарин, когда летал, не видел). 

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

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

А для того, чтобы наша ракета была не абстрактная, возьмём данные по ракете «СОЮЗ», к тому же на хабре уже есть решение этой задачи.  Больше спасибо автору, что уже собрал все необходимые данные.  https://habr.com/ru/articles/649961/

Тем, кто первый раз пытается создать структурную модель, и кому покажутся сложными физическая модель сферического коня в вакууме или численное интегрирование обыкновенных дифференциальных уравнений, я рекомендую почитать статью про противоракетную оборону Израиля, где все это объясняется на основе знаний математики 4 класса. https://habr.com/ru/articles/878168/

Читать далее