Search
Write a publication
Pull to refresh
0
Василь Бєляєв @VXPread⁠-⁠only

C#, C++, Lua

Send message

Читаем/записываем файл в Андроиде без запроса пермишинсов

Level of difficultyEasy
Reading time2 min
Views8.3K

Считаете, что для чтения файла в андроиде нужен

Manifest.permission.READ_EXTERNAL_STORAGE

Сейчас я раскажу как это сделать совсем без запроса пермишинов.

Читать далее

Варианты беспроводного подключения для приложений интернета вещей — сравнение технологий

Level of difficultyEasy
Reading time5 min
Views5.1K

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

Читать далее

Хотели сделать Alan Wake 2, а вышло…

Level of difficultyEasy
Reading time12 min
Views16K
image

Alan Wake, вышедший на XBOX 360 в США 18-го мая 2010-го, был обречён на релизный провал. Мало того, что игре финской студии Remedy пришлось конкурировать с монументальной и великой Red Dead Redemption от Rockstar, так ещё и проект был исключительно эксклюзивным, да и маркетинг у него был откровенно слабым, ибо триллеры в стиле «Твин Пикс» сложно продать массовой аудитории.

В дальнейшем игра продалась тиражом в не самые значимые 3 миллиона копий. Могла бы и больше, но Nitro Games, отвечавшие за PC-порт Alan Wake, напортачили с настройками графики и достаточно неудобным управлением. Ещё и знаменитый сервис Games for Windows Live в 2012-ом добавлял геймерам немало головной боли.


Одно воспоминание вызывает скрежет на зубах…

В любом случае, момент был упущен. Microsoft как издатель совершенно не верили в мрачную историю о писателе. Означало ли это, что Remedy послушались своих тогдашних хозяев? О нет. Сегодня мы поговорим о двух проектах, которые так или иначе родились из желания финнов сделать Alan Wake 2. Что они хотели, что получилось, и к чему всё это привело. Интригует? Если да, то поехали разбираться.
Читать дальше →

Что бывает, когда в настольный футбол играют разработчики: проапгрейдили не только игру, но и корпоративную культуру

Level of difficultyEasy
Reading time4 min
Views2.3K

Теперь голы считаются автоматически, соперника вызывают на бой через телеграм-бота, а система оповещает звуками «Мортал Комбат» Fight! Расскажу, как провели цифровую трансформацию настольного футбола.

Читать далее

Как создать API в облаке менее чем в 200 строках кода

Level of difficultyHard
Reading time13 min
Views12K
Современные облачные инструменты и пакеты Python стали настолько мощными, что с их помощью можно создать (масштабируемый) облачный API менее чем в 200 строках кода. В этом посте будет рассмотрено, как при помощи lines Google Cloud, Terraform и FastAPI развернуть в облаке полноценный API, через который можно отвечать на запросы.

Репозиторий к этому проекту находится здесь, пользуйтесь им, если захотите опробовать весь код сами.

image

Пример API, возвращающего данные. О том, как его создать, рассказано в этом посте.
Читать дальше →

Превращаем обычный электросчетчик в умный: продолжаем осваивать Samsung SmartThings

Level of difficultyHard
Reading time9 min
Views36K

Вам не кажется, что вручную переписывать цифры с ЖК-экрана на электросчетчике каждый месяц - это немного странное занятие? Все слышали про умные электросчетчики, но не все готовы заплатить несколько тысяч (а счетчик с дистанционным снятием показаний стоит как минимум 15000 рублей). И не факт, что этот электросчетчик нормально встроится в вашу экосистему умного дома, скорее всего там будет свое собственное закрытое приложение.

Как насчет старого доброго DIY? Давайте сделаем свой собственный умный электросчетчик с подключением к любой платформе, которую захотим. И делать мы это будем максимально мягкими методами, без вскрытия корпуса самого счетчика.

Расскажем, как мы подключили электросчетчик «Меркурий» к ESP32 двумя разными способами (через встроенные интерфейсы RS-485 и оптопорт), соединили по Wi-Fi с платформой Samsung Smart Things и получили возможность записывать статистику энергопотребления в реальном времени чтобы оптимизировать свои траты на электроэнергию.

Читать далее

Как мы удвоили разрешение фотографий с помощью камеры Flutter на iOS

Level of difficultyMedium
Reading time5 min
Views3.6K

Привет, меня зовут Сергей, и я мобильный разработчик в компании Brickit. Некоторое время назад мы наконец мигрировали приложения для iOS и Android на общий код на Flutter. Мы были в восторге от результата, но сам переход был далеко не гладким. Одной из важных частей этой авантюры была настройка и использование плагина камеры, что оказалось нетривиальным как на iOS, так и на Android. В этой статье я расскажу о проблеме с недостаточно высоким разрешением фотографий на iOS, немного объясню, как работает оригинальный плагин, и предоставлю наше решение с примерами кода о том, как сделать это лучше. Ссылка на полный код в конце статьи.

Читать далее

Разработка RESTful API: как использовать ExpressJS и другие фреймворки для создания RESTful API

Reading time9 min
Views8K

RESTful API — это одна из самых популярных архитектурных моделей для создания веб-сервисов и приложений. Понимание основных концепций REST и принципов RESTful API играет решающую роль при разработке современных веб-приложений.

Читать далее

Как вести переписку с контрагентами, чтобы вернуть свои деньги, если что-то пойдет не так

Level of difficultyEasy
Reading time3 min
Views5.6K

Никому не хочется заморачиваться с бумажной волокитой: акты, согласования, вот это всё. Хочется заплатить (или получить) денег и сделать результат.

Проблемы возникают, когда контрагент начинает делать что-то не то. Заказчик орёт: "Переделывайте!", подрядчик просит дополнительный аванс. Чтобы подготовиться к такому, важно вести переписку так, чтобы с ней можно было дойти до суда и получить свои деньги.

Узнать, что дальше

Реверс-инжиниринг первых умных часов Seiko UC-2000

Reading time32 min
Views32K


Где-то в конце 1983 — начале 84 года, японская компания Seiko начала продавать первые в истории компьютеризированные часы — Seiko Data-2000 и Seiko UC-2000. Data-2000 имели возможность хранить 2КБ заметок, их нужно было вводить с помощью специальной компактной клавиатуры, которая шла в комплекте. UC-2000, по сути, те же Data-2000 с корпусом другого цвета, но они уже позиционировались как часть Наручной Информационной Системы, которая, среди прочего, включала терминал UC-2200, представляющий из себя компьютер с Z80-совместимым процессором, интерпретатором Бэйсика и термопринтером, но без экрана, в качестве которого использовались часы (как это не странно). Среди прочего, терминал давал возможность загружать на часы приложения со специальных картриджей. Подробнее о линейке ранних умных часов Seiko можно почитать, например, в этой статье. В этом же посте я расскажу, как написал (возможно) первую, за более чем 33 года, программу для этих часов.

Так какой же процессор использовался в играх Brick Game?

Level of difficultyMedium
Reading time6 min
Views34K

На это небольшое исследование меня натолкнула опубликованная недавно на Хабре статья, в которой автор предположил, что в знаменитых "Тетрисах" из 90-х мог использоваться 4-битный микроконтроллер Holtek HT1130. Меня сильно удивило (и мотивировало), что, по всей видимости, до сих пор не снят образ ПЗУ и, соответственно, не написан эмулятор для этой линейки игр.

Заглянем под черную каплю компаунда

Как видели будущее компьютеров в СССР. Часть 2

Reading time9 min
Views19K

В прошлой статье мы остановились на 1970-х годах – поговорили о машине «МИР», портативных компьютерах, которые сегодня мы бы скорее назвали калькуляторами. В этот раз заглянем в 1980-е годы – период, когда в СССР активно занимались популяризацией компьютеров и программирования, когда по всей стране работали над системами, которые мы бы сегодня отнесли к ИИ, когда в школах появились уроки информатики, а дети и подростки, а также их родители, зачитывались произведениями братьев Стругацких.

Разбираемся в теме вместе с Игорем Гальцевым, техническим директором «Инферит Клаудмастер», опыт которого в компьютерах начинается с 1983 года.

Читать далее

Исследуем саундбар Yamaha YAS-109, часть 2

Level of difficultyHard
Reading time12 min
Views13K

Приветствую!

В конце первой части статьи по исследованию саундбара Yamaha я упомянул о плачевном состоянии его безопасности. Но вот то, насколько оно плачевное, я тогда представлял не до конца.

И что, сифонит таки?

Исследуем саундбар Yamaha YAS-109

Level of difficultyHard
Reading time9 min
Views32K

Всем привет!

Краткое предисловие: я счастливый обладатель замечательного саундбара YAS-109 от Yamaha, на момент написания пользуюсь им уже целый год, и всё в целом хорошо. Но однажды я решил узнать: не подслушивает ли меня мой музыкальный друг? Ведь у него есть встроенная поддержка Alexa, а ещё Bluetooth, WiFi, Ethernet и другие прелести… Так и начинается история моего ресёрча.

Читать далее

Как использовали компьютеры в СССР. Общение с вычислительным центром

Reading time4 min
Views6.5K

Воспоминания навеяны ностальгией после прочтения этих строк.

Ведущая беседует с компьютером. Она узнаёт у ЭВМ, что в СССР – 3000 вычислительных центров, а их загрузка составляет 12 часов в сутки, хотя работать они могут 23 часа. Учёные предлагают переходить к вычислительным центрам коллективным. 

Практически, это почти что «облако». Стоимость работ в 25-30 раз дешевле, чем в случае с собственными вычислительными центрами, а окупаемость коллективного центра происходит, снова согласно ответу ЭВМ, в три раза быстрее, чем капиталовложения в основное производство.

Читать далее

Как получить плашку совместимости со Steam Deck, не покупая Deck

Reading time3 min
Views6.9K

Пару месяцев назад Steam выложил в Steamworks инструмент для разработчиков, позволяющий отправлять игры на сертификацию: Steam тестирует и проверяет игру, а затем решает, совместима ли она с Steam Deck. Так как я уже реализовал в своей игре поддержку геймпадов, то сразу приступил к делу. Мне понадобилось два месяца переписок со Steam, чтобы он наконец верифицировал полную совместимость игры со Steam Deck. Я не нашёл особо много информации об этом процессе, поэтому захотел поделиться своим опытом, чтобы другим разработчикам не приходилось совершать те же ошибки.

Примечание: у меня нет Deck и я ни разу им не пользовался. Разработка игры целиком зависела от помощи моего фаната и простоты разработки под сам Steam Deck.

Читать далее

Стеганография в файлах формата .m4a

Level of difficultyEasy
Reading time4 min
Views3.5K

Стеганография - это искусство и наука передавать сокрытые данные внутри других, не сокрытых данных.

Подробнее можно прочитать здесь.

Часто, когда говорят о стеганографии, не выходят за рамки LSB в картинках (хотя и в картинках можно сделать нечто более оригинальное ). 

В данном посте мы хотим рассказать о ссылочной стеганографии (принцип ссылочной стеганографии можно почитать тут) в формате .m4a(.mp4).

Общий принцип

Для начала на “пальцах” распишем, как это в целом работает. Любой файл можно зашифровать и представить в base64 текстовом виде. Далее его можно отправить на сервис одноразовых сообщений (например https://onetimesercet.com/ )

Отправив сообщение мы получаем ссылку вида https://onetimesecret.com/secret/jqr1s0o5bvlts8cyice71fvwv0o0ltx 

Затем мы отправляем саму ссылку на сервис сокращения ссылок, и получаем сокращённую ссылку; например для goo.su: https://goo.su/SAsb.

Как видим у нас всего 4 байта, если мы заранее знаем какой сервис используем (в реальной стеганографии разумнее использовать свой сервис), если мы заранее имеем ключ расшифрования (обмен ключей – отдельная задача), то нам достаточно переслать всего 4 байта для передачи искомого файла. 

Это и есть принцип ссылочной стеганографии – мы передаем ссылку на сообщение, а не само сообщение.

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

Читать далее

Запускаем нативную конфигурацию Linux как виртуальную машину при помощи HyperV

Reading time5 min
Views13K
Несколько дней назад я собрал первоклассную рабочую станцию, чтобы возиться с хобби-проектами и играть. Купил себе наилучший и новейший процессор (Ryzen 3900x — 12 ядер, 24 потока), производство AMD, а также 32 ГБ ОЗУ – как говорится, «компромиссы – не для нас». Собрал ПК, оказалось, он просто летает. Сконфигурировал систему так, чтобы в ней можно было одновременно работать с Windows и Linux (PopOS), пользуясь двойной загрузкой. От прошлой сборки у меня сохранился твердотельный диск (SSD), на котором был установлен и сконфигурирован дистрибутив Linux. Там я настроил поисковые роботы для Twitter, а также установил и приспособил для работы другие сервисы. Linux я использовал для задач, где требуется продуктивность, а под Windows в основном играл – впрочем, так и принято.

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

Как настроить GitHub Actions и не заплакать: пошаговая инструкция

Level of difficultyMedium
Reading time5 min
Views15K

Как настроить GitHub Actions и не заплакать: пошаговая инструкция

Привет всем! Меня зовут Виталий, я фронтендер в Mish. Решил недавно освоить полноценный автоматический деплой проекта, чтобы все работало само. Расскажу и вам, что из этого получилось.

В статье буду разговаривать о деплое только фронтенда. Про деплой бэкенда расскажу в следующем материале.

Читать далее

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity