Pull to refresh
16K+
-13
Vitaliy Edifanov@CEOCTO

Artisan Developer

11,2
Rating
5
Subscribers
Send message

Следуй за белым кроликом: пишем VPN на Rust и ищем выход из собственного туннеля

Reading time12 min
Reach and readers14K

Следуй за белым кроликом.

В «Матрице» герои возвращались в реальный мир через телефон. Мне эта идея понравилась настолько, что собственный VPN я назвал PAYPHONE, а в консольном клиенте сделал зелёный дождь из символов. Правда, прежде чем через него удалось выйти в интернет, пришлось разобраться, почему туннель отправляет пакеты самому себе, таймер не срабатывает, а нажатие Ctrl+C не возвращает сеть. Об этом и будет статья — с устройством протокола, фрагментами кода и ошибками, которые обнаружились уже после первого успешного подключения.

Читать далее

Platinum One OS на базе Samsung M52 звонки, смс, Vulkan, Misa

Reading time11 min
Reach and readers9.5K

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

После перезагрузки экран может остаться чёрным. Модем обнаруживает SIM, но не регистрируется в сети. DSP сообщает, что запущен, а ALSA по-прежнему не видит звуковых карт. Трёхмерная модель ассистента отображается, но стоит в T-позе.

На Samsung M52 я прохожу именно этот этап разработки Platinum OS One: превращаю загружающуюся Linux-систему в устройство, которым можно пользоваться как смартфоном. На момент этой статьи на телефоне работают оболочка с Vulkan, сенсорный ввод, Wi-Fi и SSH. SMS, звонки и USSD я проверил на самом устройстве. Misa получила трёхмерный аватар и подключение к своему диалоговому серверу.

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

Ubuntu userspace и аппаратная платформа Samsung

Platinum OS One строится вокруг Ubuntu Base 26.04 LTS и собственных компонентов. Samsung M52 — одна из целевых платформ. Сборочная система должна оставаться общей для разных устройств, а аппаратные особенности приходят из конфигурации платы, ядра, Device Tree и firmware.

На M52 используется vendor-ядро Samsung на базе Linux 5.4. Здесь это практический выбор: значительная часть поддержки дисплея, модема, аудио и камер связана с downstream-драйверами Qualcomm и Samsung.

Читать далее

Разработка Platinum OS на базе Samsung M52

Reading time4 min
Reach and readers6.3K

Начал портировать свою операционную систему Platinum OS на Samsung Galaxy M52. В основе — Ubuntu 26.04 LTS, собственная графическая оболочка, службы и пакеты приложений. Разблокируемый загрузчик телефона позволяет запускать модифицированные загрузочные образы и экспериментировать с Linux на настоящем устройстве.

Читать далее

Своя Linux-based ОС на Rust и QML: опыт создания Platinum OS One

Reading time12 min
Reach and readers8.2K

Полгода назад я решил не кастомизировать очередной Armbian под конкретную плату, а собрать полноценную ОС: свой build-движок уровня Cargo, свою оболочку на QML поверх вложенного Wayland-композитора — и универсальность как главную ставку: одна система для одноплатников, планшетов и ПК. Первая плата — Orange Pi Zero 3W.

В статье — архитектура, где различия между устройствами живут в данных, а не в коде движка; реальный прогон сборки образа с точными цифрами по каждой из 14 стадий; и то, что обычно не показывают в анонсах — три production-краша с разобранными причинами (SIGSEGV в движке QML, AppArmor против snap-песочницы, macOS tar, портящий Wayland-модуль) и три находки первой живой загрузки на настоящем железе.

Читать далее

460 ГБ, свободно 14: археология диска разработчика

Reading time8 min
Reach and readers13K

TL;DR: после каждого проекта на диске остаётся 2–40 ГБ мусора, который никто никогда не убирает. Я раскопал свой Mac (460 ГБ, из них свободно было 14), нашёл около 150 ГБ хлама чисто девелоперского происхождения, по дороге упёрся в неожиданно интересную задачу — как отличить папку build со сборкой от папки build с чем угодно ещё — и в итоге написал себе инструмент. Ниже — вся археология с цифрами и командами, можно повторить руками, ничего не покупая и не скачивая.

Читать далее

Локальный плеер для IOS: Music is Player

Reading time2 min
Reach and readers6.9K

Привет! Я разработчик iOS‑приложения Music Player в компании MediaRise. Хотел поделиться инженерной частью: как мы организовали импорт музыки из Files, автосканирование, защиту от дубликатов и стабильное воспроизведение.

Читать далее

Разработка Moba клон Dota 2 [FUN MODE]

Level of difficultyEasy
Reading time3 min
Reach and readers9.4K

С наступающим!

В юности, когда я увлекался компьютерными играми, играл в Moba Dota ещё на движке Warcraft III. В редакторе карт с помощью макросов и кода хотел сделать своих героев с уникальными умениями. Было интересно разрабатывать и смотреть как мои фантазии воплощаются в жизнь. Но всё же редактор карт накладывал свои ограничения и не так свободно можно было сгенерировать 3d персонажей и внедрить их в проект.

С появлением Dota 2, герои стали более детализированными, умения героев более эффектными, а карта интереснее. Меня это вдохновило на создания своих игр, я пробывал создавать в Unity, Unreal. Но знаний и времени изучить эти движки не было. А знаний по 3D моделингу вообще не было, поэтому игровые проекты я забросил, так как необходимо было разрабатывать более "приземленные" коммерческие проекты: веб сервисы, мобильны приложения и так далее,

С появлением игрового движка Godot, разработка игр получила вторую жизнь. Игры можно делать сразу на все популярные платформы: PC, Mac, IOS, Android, web. Управление объектами сцены можно полностью через код, что очень подкупало, так как редактировать сцены в 3d редакторе не всегда удобно, тыкая по UI, а можно быстро написать код сцены и объектов ней.

Читать далее

Как я писал свою звонилку для видеозвонков

Reading time4 min
Reach and readers13K

Я написал свою альтернативу звонкам в WhatsApp и Telegram — полноценный Android-клиент на WebRTC с поддержкой P2P-аудио и видео, STUN/TURN, сигналингом и собственным UI.

Забудьте про «корпоративные мессенджеры»: проект JOPA Call (👉 «Just One Peer App») работает напрямую, без лишних посредников.

Реализовано: peer-to-peer соединения, fallback через TURN, мини-preview окна камеры, управление потоками и адаптивное видео.

Макс и его «супераппы» могут курить в сторонке — теперь у меня есть свой звонок-клиент, который не зависит от гигантов.

Читать далее

Потоки, горутины, синхронизация и мьютексы в Go

Reading time4 min
Reach and readers20K

Go (Golang) создан для эффективной параллельной и конкурентной работы. Его killer feature — легковесные потоки выполнения, называемые горутины (goroutines), и мощные средства синхронизации. Приглашаю разобраться подробно.

Читать далее

Information

Rating
649-th
Location
Россия
Date of birth
Registered
Activity

Specialization

Технический директор, Генеральный директор
From 500,000 ₽
Ведение переговоров
Разработка ТЗ
Управление людьми
Управление проектами
Оптимизация бизнес-процессов
Информационные технологии