Канал одного Android-разработчика, успевшего поработать в аутсорсинге, Яндексе, Мейле, Snapchat и Flipper Devices. Мысли и годнота. @lionzxy
Сегодня выходит очень классное инди. Я играл в демку и следил за игрой с дня анонса (см.реплай). Сомневаюсь что у разраба есть бюджет на рекламу, так что тем кому нравится например Gorogoa или другие паззл-механики проиграет https://store.steampowered.com/app/1624540/Storyteller/
(цены пока нет, так что если там будет что-то охуевшее (больше 200 лир), то конечно надо ещё торрента подождать)
Этой весной выступаю на крупнейшей конференции СНГ для мобильных разработчиков - Mobius
Когда-то откладывал деньги со стипендии чтобы накопить на билет, а теперь выступаю там и буду рассказывать про подкапотную магию BLE (Bluetooth Low Energy) и его разгон.
Судя по всему, получился самый подробный и комплексный материал, который есть в интернете по этой теме, особенно в сфере мобильной разработки
https://mobiusconf.com/talks/ee7368d1c05947cead59a410410bea97/
Про девушек и хранение паролей 👩🔒
Аудио зарисовка о том, как мешает в жизни неопрятное хранение своих креденшелзов, документов, бекапов, ключей и все такого.
⚠️В сеть утекли исходники Flipper Devices⚠️
Сегодня стало известно о публикации исходников прошивки Flipper Zero, исходников мобильных приложений и деcктопного продукта компании - qFlipper.
Качайте пока не удалили: https://github.com/flipperdevices
Что думаете о сливе практически всех исходников Яндекса?
Читать полностью…Обновили фоточку на сайте, теперь на ней есть я :)
https://www.flipperdevices.com/
GitHub подготовил видео-итоги года, вот мой.
Кидайте в комментариях свои "открытки")
https://www.githubunwrapped.com/
Автоматическое тестирование Flipper Zero с помощью OpenCV и лазерного гравера
Тестирование хардвара это ахереть какая сложная задача. Для каждого устройства нужно по сути изобретать новые способы тестирования.
Наша (Flipper Devices) команда QA сейчас впиливает в воркфлоу в Pull Request автоматический прогон тестов. Как на ваших этих софтварных разработках, только для хардвара.
Для этого они используют OpenCV чтобы распознавать элементы на экране флиппера и проверять их наличие+корректность данных.
А затем следующий уровень - станок, который двигает флиппер и проверяет его работу с картами/ридерами или другими внешними сущностями.
Все это выглядит как какой-то космос 🚀
Меня пугает то количество Privacy Policy которое нужно принять для игры в https://contexto.me/
Читать полностью…Вот это у парня readme конечно
https://github.com/JayantGoel001
Вышла первая бета-версия Transmission 4.0
Мой любимый торрент-клиент получил большое обновление (возможно, самое большое в истории).
Из основных измений:
- Теперь клиент жрет на 50% меньше CPU, на 75% меньше RAM. И это при том что он и раньше был самым эффективным среди торрент-клиентов
- Сильно обновили веб-версию клиента, переписали полностью - теперь оно имеет мобайл-версию, работает быстрее и весит легче
- Apple Silicon версия для MacOS
- Дефолтные трекеры торрентов
И прочие изменения, накопленные за годы работы над проектом
https://github.com/transmission/transmission/releases/tag/4.0.0-beta.1
Судя по кнопке "Добавить в корзину" и надписи "Доставка курьером - завтра", флипперы приехали в РФ и доступны почти день в день покупки! Берите пока все не раскупили
https://amperka.ru/product/flipper-zero
Вышло интервью со мной про BLE в Android на канале Android Broadcast
https://www.youtube.com/watch?v=DyGe317Gfhk
Моему знакомому фронтэндеру (@vitalystory) пришли пуши от тинькофф с приглашением устроиться на работу.
Забавно что другим стекам типо Android/Backend и прочие такие пуши не пришли.
Это значит что тинькофф каким-то образом вычислил род деятельности и профиль.
Интересно, какие данные использовались для этого? Количество купленных смузи?
Очередной сервис отправил тестовые пуши всем пользователям. Это, очевидно, ошибка, да, но не человека, а процессов. Что можно сделать чтобы такого избежать:
- Использовать в качестве тестовых пушей настоящие продуктовые
- Ограничить доступ к рассылкам и сделать их доступными только для ограниченного числа людей и с аппрувами. Продовые ключи для пушей хранить в ключнице на сервере и не давать программистам
- Добавить механизм на андроид "отката" пушей, когда пушом можно удалить прыдудщий пуш из трея
Многие готовые сервисы по рассылке пушей и так заставляют эти пункты выполнять. Я, например, в таком и работал когда-то (libNotify в mail.ru). А какие тестовые пуши видели вы?
ProtonVPN несколько раз попытался списать у меня деньги, а потом такой - "а, ты из россии, ну тогда фиг с тобой"
Читать полностью…Мы ускорили синхронизацию в приложении для Flipper Zero на порядок
Синхронизация - это важнейший процесс в приложении для Flipper Zero на ряду с обновлением. Без неё взаимодействовать с ключами флиппера в приложении нельзя - эмулировать, делиться ими, редактировать или просматривать.
Раньше пользователи ждали десятки секунд или даже минуты на каждом запуске приложения. Пользователи в шутку называли нас "приложение-спиннер". Это происходило из-за физических ограничений BLE.
Теперь мы с командой прошивки ускорили скорость синхронизации на второй и последующий запуск приложения до почти мгновенной. На прикреплённом видео в одних и тех же условиях синхронизация проходит 01:14 cекунд вместо 11:18 секунд. Т.е ускорение более чем в 10 раз. На большем количестве ключей результат будет лучше.
Мы это сделали благодаря двум оптимизациям:
- Теперь можно получить время обновления хранилища на флиппере. Таким образом мы не проводим синхронизацию если файлы не изменились
- Раньше мы делали один гигантский запрос на флиппер для того чтобы получить базовую информацию о нем - теперь лишняя информация не запрашивается и запрос происходит быстро. Нам потребовался большой рефакторинг для этого
Версия 1.4.2 ещё не вышла, сейчас мы заканчиваем рефакторинг, потом отдадим версию QA и только после этого версия будет доступна всем пользователям
Поход в гости Flipper или уютные закоулки Москвы
Читать полностью…Мне наконец приехал SharGeek Storm 2
Покупал я его еще в прошлом году осенью. Мое желание было купить качественный и красивый powerbank который прослужит мне лет пять - до этого powerbank'и xiaomi приходилось менять раз в год, потому что они быстро разряжались.
Этот powerbank:
- Имеет DC out/in с возможностью настройки выходного вольтажа (!)
- Показывает потребление устройства (V/A/W)
- Два usb type-c
- USB Type-A
Итого, он заменяет сразу три устройства: лабораторный БП, повербанк, измеритель мощности
При этом он умеет контролировать отдачу тока, показывать состояние батареи, температуры и прочего. Ну и выглядит как будто бы из 2077 года.
Оч доволен, хоть и это явно overprice - зато прослужит долго и я всегда на него смогу положиться.
Завтра меня публично прособеседуют
25 января в 19:00 по Москве будет стрим с собеседованием меня по теме Jetpack Compose. Обычно мои собеседования это рассказ про байки в разработке, полученные в моем опыте. Посмотрим во что выльеться это собеседование 🙂
Запись будет
https://www.youtube.com/watch?v=qb0Ezy-WO_k
Иногда я публикую тут #resources - полезные для меня ссылки, которые, возможно, будут полезны для вас.
Вот новая пачка
Поиск авиабилетов:
https://www.lastminute.com/
https://www.skyscanner.net/
В каких странах сколько стоит техника эпл:
https://themacindex.com/
Рассказываю как устроены виджеты в Android-приложении для Flipper Zero
На недавней конференции Podlodka Crew выступал с докладом про устройство виджетов, RemoteView и внешнего взаимодействия с окружением.
Доклад с архитектурной направленностью не привязанный к конкретным технологиям. С особенностями работы лаунчеров андроидовских и системных компонентов.
Помимо виджетов ещё упоминаю коммуникацию с WearOS приложением и накидываю штрихи фундамента для интеграции с голосовым помощником от Google - "Hey, Google, emulate my home key with Flipper Mobile App"
https://youtu.be/AS7h8hM9SKk
P. S. Да, звук пососный, я уже исправился и купил себе микрофон, о чем будет следующий пост
Мобильные приложения флиппера засветились в ролике у розеткед. Ну все, можно и умирать теперь спокойно.
Ранее флиппер засветился в ролике у другого "деда" рутуба - Усачева, но тут приятно что именно приложения показали)
Как неявная кодогенерация съела несколько часов в моей жизни
Сегодня во время разработки приложения я получаю очень странное падение приложения. Согласно ему мы крашимся во время чтения обычной строки. Место это происходит в многопоточном коде и мне пришлось потратить много времени чтобы высказать предположения а почему так может быть.
Спустя множество потраченных часов просмотра логов и кода я поменял стратегию - решил посмотреть генерируемый код. Для этого я взял собранное приложение и декомпилировал его с помощью JADX. И там я увидел что вместо моей красивой строки следующее: LiveLiterals$FirmwareVersionBuilderApiImplKt.INSTANCE.m9856xc5cc7c0e()
. Сама строка в коде выглядит так: " "
.
В этот момент я стал что-то подозревать, так как в продакшене таких ошибок ни у кого не было.
Оказалось все это время у меня крашился внутренний механизм LiveLiterals. AndroidStudio самостоятельно подменяет все константы в коде на LiveLiterals. Это сделано чтобы можно было менять константы в коде без пересборки приложения. Удивительно сколько всего себе позволяет текстовый редактор
Пожалуй это первый раз когда я такое вижу - документация библиотеки в Twitter-треде
Официальный сайт либы в документации говорит что описание либы можно почитать в треде и *ссылка на тред*
История становится чуть менее сюрреалистичнее когда обращаешь внимания на то, что библиотека от Twitter : D
Пацан сказал - пацан сделал... через год 😂 Новая версия онлайн квеста, с кабаками и девушками! Добавил в игру сюжет и размышления героя, чтоб было поинтереснее. Играйте и приглашайте всех из видимой области вселенной 🪐 И да, понадобится комп
P.S. Для тех, кто уже играл в первую версию: пишите "старт".
P.P.S. Задача с API - самая сложная, дальше должно быть попроще 😉
/channel/VoxelQuestBot
Я: Рассказываю студентам как справляться с проблемами гит и какой он простой
Так же я:
А у нас в приложении картинки специально перерисовываются под черную тему! В остальных случаях используется Tint - специальный цветовой фильтр, который перекрашивает все черные линии в белые (если тема темная) или наоборот.
/channel/coffee_party_with/6
Это просто отвал башки - кто-то на Flipper смог портировать Doom
https://www.youtube.com/watch?v=lbNFdDEDLy0
Пропущенный семестр.
В мире программирования есть общепринятые вещи, которые должен знать любой программист. И вроде все вокруг это знают и ты откуда-то это знаешь (если у тебя много опыта), но нигде про это не рассказывают, так как думают что это очевидные вещи.
Это не правильно и MIT решила сделать курс "The Missing Semester". Туда входит работа с консолью, консольные редакторы, Git, debugging, безопасность/криптография и так далее. Иными словами, все то что вы должны знать (как программист):
https://missing.csail.mit.edu/
По идеям этого курса @experimentalchill читал лекции в ВШЭ, которые я репостил ранее тут. Вот ссылка на YouTube-плейлист:
https://www.youtube.com/playlist?list=PLEwK9wdS5g0r13k64sdM2Zyr2GNxEH7Ou
Почему-то люди очень удивляются когда ты или кто-то еще не знает, казалось бы, "примитивных" вещей. Очень хорошо что есть такие курсы. Может быть вы еще знаете курсы с подобной философией?