Pull to refresh
60
0.1
Vladislav Khorev @Mephi1984

Developer

Send message

Объяснение фильтра Калмана в картинках

Reading time9 min
Views50K
image

Я обязан рассказать вам о фильтре Калмана, потому что он выполняет просто потрясающую задачу.

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

В продаже появился Linux-телефон PinePhone Pro: что он умеет?

Reading time4 min
Views84K

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

Исключения есть, хотя и мало. Но даже среди исключений особняком стоит телефон, который называется PinePhone Pro. Это своего рода усиленная версия Linux-смартфона PinePhone, который можно назвать «PinePhone на стероидах». О его возможностях и характеристиках — ниже. Единственное, что еще стоит добавить — новая модель также может использоваться в качестве рабочей станции, то есть десктопа.
Читать дальше →

Дорожная карта по изучению C++

Reading time6 min
Views134K

Привет!

Представляем вашему вниманию дорожную карту для изучения языка программирования C++. Идея дорожной карты возникла после проведения десятков собеседований молодых разработчиков, которые претендовали на роль Junior Developer C++, но обладали довольно слабой подготовкой по различным причинам.

Заинтересовавшихся приглашаем к прочтению статьи, а также ознакомиться с дорожной картой.

Читать далее

Воссоздаем Minecraft-подобную генерацию мира на Python

Reading time11 min
Views29K

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

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

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

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

Прим. переводчика. Осторожно, в статье много иллюстраций (в том числе анимированных)

Читать далее

Модные видео гличи на C++

Reading time5 min
Views6K

В этой статье рассказывается о способах создания видео фильтров на C++ для разных программ, а так же тут рекламируется моя опенсорс программа SEZE II с интересными эффектами на подобии пиксельной сортировки, эмулятора аналогового ТВ, случайного 3-битного дизеринга и прочим

Читать далее

Способ передачи информации по сильно зашумленному каналу связи

Reading time4 min
Views12K

На физическом уровне для передачи информации используются разные технологии. Например, технологии передачи электрических сигналов по проводам, световых импульсов по оптоволокну, звуковых сигналов по воздуху или под водой, электромагнитных импульсов. У всех технологий существует проблема, связанная с ограничением дальности и качества связи из-за паразитного шума в канале связи. Сигнал может быть настолько зашумлен, что выделить из него информацию кажется невозможным. Проблема отчасти решается с помощью метода синхронного детектирования или накоплением периодического сигнала. Однако, если присутствует существенная НЧ составляющая шума, либо частота полезного сигнала забивается периодическими составляющими шума, эти методы бессильны. Как помочь делу?

Для решения проблемы можно использовать информационные импульсы с псевдослучайным профилем. Например, такие.

Читать далее

Кто реализовал обмен данными по WebRTC с помощью звука

Reading time3 min
Views4.8K

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

Читать далее

Делаем OpenVPN клиент для iOS

Reading time5 min
Views16K
Привет всем!
Давайте рассмотрим как создать собственное приложение, поддерживающее OpenVPN-протокол. Для тех, кто об этом слышит впервые ссылки на обзорные материалы, помимо Википедии, приведены ниже.

С чего начать?


Начнем с фреймворка OpenVPNAdapter — написан на Objective-C, ставится с помощью Pods, Carthage, SPM. Минимальная поддерживаемая версия ОС — 9.0.
После установки необходимо будет добавить Network Extensions для таргета основного приложения, в данном случае нам понадобится пока Packet tunnel опция.

image

Network Extension


Затем добавляем новый таргет — Network Extension.
Сгенерированный после этого класс PacketTunnelProvider приведем к следующему виду:
Читать дальше →

Как поживает PHP сообщество в Дагестане?

Reading time2 min
Views4.2K
image

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

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

Сборка Open Source GTA VC и GTA III в Linux

Reading time4 min
Views31K
image

Скорее всего нет тут такого человека, который бы не играл в GTA (или хотя бы не слышал о ней). Первая 3D версия серии вышла около 20 лет назад. Это была GTA III. Через год вышла GTA: Vice City. Несмотря на это, в эти игры до сих пор не только играют, но и создают моды. Эти игры портированы на множество платформ, но к сожалению, Linux (до недавнего времени) обошли стороной. Единственный вариант поиграть в Linux — был wine. Но недавно все изменилось.
Читать дальше →

Мой первый экзистенциальный кризис случился из-за игры The Sims

Reading time12 min
Views16K

Богатство и известность не делают людей счастливыми. Девочки, мечтавшие в детстве стать звездами, превращаются в старлеток, не выходящих из глубокой депрессии, или умирают от передозировки наркотиков. Богатые пары, обустроившие семейное гнездышко в собственном особняке на берегу океана, расходятся после нескольких лет непрекращающихся ссор. Американский рэпер Канье Уэст в остром маниакальном состоянии мочится на свою статуэтку «Грэмми»…

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

Обо всём этом я узнала из игры The Sims.

Читать далее

Как прийти в небо и стать пилотом

Reading time10 min
Views96K


Привет! Сегодня я расскажу о том, как можно прийти в небо, что нужно для этого сделать, сколько оно все стоит. Также поделюсь своим опытом обучения на частного пилота в Великобритании и развею некоторые мифы, связанные с авиацией. Под катом много текста и фоточек :)

Читать дальше →

Процедурная генерация деревьев методом транспорта питательных веществ

Reading time11 min
Views12K

Примечание: код для этой статьи выложен на мой Github [здесь].

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

Когда любая ветвь дерева разделяется, сумма площадей поперечного сечения сохраняется.

Это наблюдение уже было сделано да Винчи. Я решил воспользоваться этим наблюдением, соединить его с транспортно-ориентированной интерпретацией естественного роста деревьев, создать простую модель и нагенерировать в ней деревьев.

В данной статье будет описана эта модель и способ её использования для генерации реалистично выглядящих деревьев с разной морфологией.

При помощи этой методики можно генерировать высококачественные меши деревьев на разных этапах роста в реальном времени и с незначительной тратой вычислительных ресурсов!

Как мы внедрили скрытие аккаунтов в Telegram или #ДуровДобавьДвойноеДно

Reading time8 min
Views220K

Если анимация не воспроизводится, смотрите её здесь.

Здравствуйте, Павел Дуров! Мы надеемся, что Вы нашли время ознакомиться с данным открытым письмом. Мы разработали решение для Telegram-клиента, которое позволяет скрывать аккаунты и открывать их только через уникальный код-пароль (см. анимированное превью). Нет никаких следов присутствия скрытых аккаунтов. Невозможно узнать, есть ли в мессенджере скрытые аккаунты и какое их количество. Решение именуется как «Двойное дно».

Все нюансы были тщательно нами продуманы, а сам Telegram-клиент с точки зрения интерфейса и пользовательского опыта никак не изменился. Практически никаких доработок со стороны команды Telegram не требуется. «Двойное дно» сделано полностью «под ключ», Вам нужно лишь принять наш «Pull Request» в Вашем репозитории. Перед тем как отправить «Pull Request», мы возьмем несколько дней на сбор обратной связи от пользователей, чтобы исправить мелкие недочеты. Для ознакомления Вы можете установить нашу сборку через TestFlight, а если под рукой нет iOS-устройства, то посмотреть видео. Исходный код сборки доступен на GitHub.
Читать дальше →

ALog: плюс один логгер для C++ приложений

Reading time20 min
Views11K

Система логирования ALog первоначально разрабатывалась для использования в серверных приложениях. Первая реализация ALog была выполнена в 2013 году, на тот момент я и подумать не мог, что спустя семь лет буду писать про нее статью на Хабр. Но, видимо, на все воля случая… Сейчас уже и не вспомню, что именно искал на просторах интернета, когда мне на глаза попалась статья Сравнение библиотек логирования. Я решил бегло просмотреть её в ознакомительных целях. По мере знакомства с материалом в голове возникла мысль: "А где же в этом 'табеле о рангах' находится мой логгер?".

Читать далее

Docker is deprecated — и как теперь быть?

Reading time5 min
Views77K

Kubernetes объявил Docker устаревшим и планирует прекратить его использование примерно через год, в версии 1.22 или 1.23. Эта новость вызвала много вопросов и непонимания. В блоге Kubernetes появилось целых две статьи, разъясняющих смысл записи в Changelog (раз и два). Если все обобщить, то для разработчиков (те, которые Dev) ничего не меняется — они все так же могут продолжать использовать docker build для сборки своих контейнеров, а вот для инженеров, ответственных за эксплуатацию кластера (Ops), пришла пора разобраться и освоить несколько новых инструментов.

Читать дальше

Создание псевдотрёхмерной гоночной игры: реализация холмов и готовая игра

Reading time14 min
Views3.5K

Часть 3. Холмы



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

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

В первой части мы использовали закон подобных треугольников для создания трёхмерной перспективной проекции:


… что привело нас к получению уравнений проецирования координаты 3d-мира в координату 2d-экрана.


… но так как тогда мы работали только с прямыми дорогами, мировым координатам нужна была только компонента z, потому что и x, и y были равны нулю.

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

Самый маленький офисный пакет в мире

Reading time8 min
Views36K


Всем нам знаком традиционный офисный пакет — текстовый редактор, электронные таблицы, программа для создания презентаций, возможно, приложение для создания диаграмм или заметок. Всё это мы видим в Microsoft Office и в Google Docs. Все эти программы мощны и объёмны. Но каким будет минимальное количество кода, требуемое для создания офисного пакета?
Читать дальше →

Практическая стеганография. Скрытие информации в изображениях PNG

Reading time5 min
Views60K


На хакерских конкурсах и играх CTF (Capture The Flag) иногда попадаются задачки на стеганографию: вам дают картинку, в которой нужно найти скрытое сообщение. Наверное, самый простой способ спрятать текст в картинке PNG — прописать его в одном из цветовых каналов или в альфа-канале (канал прозрачности). Для выявления подобных «закладок» есть специальные инструменты, такие как stegsolve, pngcheck и stegdetect, иногда конкурсантам приходится вручную повозиться с фильтрами в GIMP или Photoshop.

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

Делаем Linux терминал красивым и удобным

Reading time3 min
Views233K
Все дистрибутивы Linux поставляются с функциональным и кастомизируемым эмулятором терминала. В интернете, а порой даже в самом терминале, есть масса готовых тем, чтоб он красиво выглядел. Однако, чтоб сделать из стандартного терминала (в любом DE, любого дистрибутива) нечто красивое и одновременно удобное и простое в использовании я потратил много времени. Итак, как же сделать дефолтный терминал удобным и приятным в использовании?
Читать дальше →

Information

Rating
3,002-nd
Location
Бишкек, Кыргызстан, Кыргызстан
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Game Developer
Lead
From 550,000 ₽