Обновить
16K+
-13
Vitaliy Edifanov@CEOCTO

Artisan Developer

11,2
Рейтинг
5
Подписчики
Отправить сообщение

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

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

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

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

Читать далее

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

Время на прочтение11 мин
Охват и читатели9.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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

Информация

В рейтинге
632-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

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