Как неявная кодогенерация съела несколько часов в моей жизни
Сегодня во время разработки приложения я получаю очень странное падение приложения. Согласно ему мы крашимся во время чтения обычной строки. Место это происходит в многопоточном коде и мне пришлось потратить много времени чтобы высказать предположения а почему так может быть.
Спустя множество потраченных часов просмотра логов и кода я поменял стратегию - решил посмотреть генерируемый код. Для этого я взял собранное приложение и декомпилировал его с помощью JADX. И там я увидел что вместо моей красивой строки следующее:
В этот момент я стал что-то подозревать, так как в продакшене таких ошибок ни у кого не было.
Оказалось все это время у меня крашился внутренний механизм LiveLiterals. AndroidStudio самостоятельно подменяет все константы в коде на LiveLiterals. Это сделано чтобы можно было менять константы в коде без пересборки приложения. Удивительно сколько всего себе позволяет текстовый редактор
Сегодня во время разработки приложения я получаю очень странное падение приложения. Согласно ему мы крашимся во время чтения обычной строки. Место это происходит в многопоточном коде и мне пришлось потратить много времени чтобы высказать предположения а почему так может быть.
Спустя множество потраченных часов просмотра логов и кода я поменял стратегию - решил посмотреть генерируемый код. Для этого я взял собранное приложение и декомпилировал его с помощью JADX. И там я увидел что вместо моей красивой строки следующее:
LiveLiterals$FirmwareVersionBuilderApiImplKt.INSTANCE.m9856xc5cc7c0e(). Сама строка в коде выглядит так: " ".В этот момент я стал что-то подозревать, так как в продакшене таких ошибок ни у кого не было.
Оказалось все это время у меня крашился внутренний механизм LiveLiterals. AndroidStudio самостоятельно подменяет все константы в коде на LiveLiterals. Это сделано чтобы можно было менять константы в коде без пересборки приложения. Удивительно сколько всего себе позволяет текстовый редактор
🤯20🕊2
Media is too big
VIEW IN TELEGRAM
Меня пугает то количество Privacy Policy которое нужно принять для игры в https://contexto.me/
🤬4
Мобильные приложения флиппера засветились в ролике у розеткед. Ну все, можно и умирать теперь спокойно.
Ранее флиппер засветился в ролике у другого "деда" рутуба - Усачева, но тут приятно что именно приложения показали)
Ранее флиппер засветился в ролике у другого "деда" рутуба - Усачева, но тут приятно что именно приложения показали)
🔥31❤3
Media is too big
VIEW IN TELEGRAM
Автоматическое тестирование Flipper Zero с помощью OpenCV и лазерного гравера
Тестирование хардвара это ахереть какая сложная задача. Для каждого устройства нужно по сути изобретать новые способы тестирования.
Наша (Flipper Devices) команда QA сейчас впиливает в воркфлоу в Pull Request автоматический прогон тестов. Как на ваших этих софтварных разработках, только для хардвара.
Для этого они используют OpenCV чтобы распознавать элементы на экране флиппера и проверять их наличие+корректность данных.
А затем следующий уровень - станок, который двигает флиппер и проверяет его работу с картами/ридерами или другими внешними сущностями.
Все это выглядит как какой-то космос 🚀
Тестирование хардвара это ахереть какая сложная задача. Для каждого устройства нужно по сути изобретать новые способы тестирования.
Наша (Flipper Devices) команда QA сейчас впиливает в воркфлоу в Pull Request автоматический прогон тестов. Как на ваших этих софтварных разработках, только для хардвара.
Для этого они используют OpenCV чтобы распознавать элементы на экране флиппера и проверять их наличие+корректность данных.
А затем следующий уровень - станок, который двигает флиппер и проверяет его работу с картами/ридерами или другими внешними сущностями.
Все это выглядит как какой-то космос 🚀
🔥34👍5❤🔥1⚡1❤1👎1😱1💩1
Рассказываю как устроены виджеты в Android-приложении для Flipper Zero
На недавней конференции Podlodka Crew выступал с докладом про устройство виджетов, RemoteView и внешнего взаимодействия с окружением.
Доклад с архитектурной направленностью не привязанный к конкретным технологиям. С особенностями работы лаунчеров андроидовских и системных компонентов.
Помимо виджетов ещё упоминаю коммуникацию с WearOS приложением и накидываю штрихи фундамента для интеграции с голосовым помощником от Google - "Hey, Google, emulate my home key with Flipper Mobile App"
https://youtu.be/AS7h8hM9SKk
P. S. Да, звук пососный, я уже исправился и купил себе микрофон, о чем будет следующий пост
На недавней конференции Podlodka Crew выступал с докладом про устройство виджетов, RemoteView и внешнего взаимодействия с окружением.
Доклад с архитектурной направленностью не привязанный к конкретным технологиям. С особенностями работы лаунчеров андроидовских и системных компонентов.
Помимо виджетов ещё упоминаю коммуникацию с WearOS приложением и накидываю штрихи фундамента для интеграции с голосовым помощником от Google - "Hey, Google, emulate my home key with Flipper Mobile App"
https://youtu.be/AS7h8hM9SKk
P. S. Да, звук пососный, я уже исправился и купил себе микрофон, о чем будет следующий пост
YouTube
RemoteView и компаньоны: готовим виджеты и приложение-компаньон для WearOS правильно/Никита Куликов
Расскажем про проблемы построения архитектуры взаимодействия виджета с приложением и приложения-компаньона с приложением. Поговорим о том, как обрабатывать внешние запросы в приложении без боли и с наименьшим количеством багов
Подпишись на канал – каждую…
Подпишись на канал – каждую…
🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
GitHub подготовил видео-итоги года, вот мой.
Кидайте в комментариях свои "открытки")
https://www.githubunwrapped.com/
Кидайте в комментариях свои "открытки")
https://www.githubunwrapped.com/
Иногда я публикую тут #resources - полезные для меня ссылки, которые, возможно, будут полезны для вас.
Вот новая пачка
Поиск авиабилетов:
https://www.lastminute.com/
https://www.skyscanner.net/
В каких странах сколько стоит техника эпл:
https://themacindex.com/
Вот новая пачка
Поиск авиабилетов:
https://www.lastminute.com/
https://www.skyscanner.net/
В каких странах сколько стоит техника эпл:
https://themacindex.com/
lastminute.com
Lastminute holidays, hotels, flights & city breaks | lastminute.com
Plan your next holiday with the official lastminute.com website. We offer amazing late travel deals. Huge savings on Hotels, Flights, Holidays, City Breaks, Spa & more. Book online now & save!
👍7👎1
Завтра меня публично прособеседуют
25 января в 19:00 по Москве будет стрим с собеседованием меня по теме Jetpack Compose. Обычно мои собеседования это рассказ про байки в разработке, полученные в моем опыте. Посмотрим во что выльеться это собеседование 🙂
Запись будет
https://www.youtube.com/watch?v=qb0Ezy-WO_k
25 января в 19:00 по Москве будет стрим с собеседованием меня по теме Jetpack Compose. Обычно мои собеседования это рассказ про байки в разработке, полученные в моем опыте. Посмотрим во что выльеться это собеседование 🙂
Запись будет
https://www.youtube.com/watch?v=qb0Ezy-WO_k
YouTube
Jetpack Compose Battle: Онлайн-собеседования Senior разработчика / Мобильный разработчик
Поддержать канал и задать вопрос на стриме
https://www.donationalerts.com/r/mobiledeveloper
Всем привет! Приглашаю вас принять участие в живом стриме Jetpack Compose Battle, где два синьор разработчика поговорят на тему Jetpack Compose и сравнят свои навыки…
https://www.donationalerts.com/r/mobiledeveloper
Всем привет! Приглашаю вас принять участие в живом стриме Jetpack Compose Battle, где два синьор разработчика поговорят на тему Jetpack Compose и сравнят свои навыки…
🔥10👍1
Forwarded from Меня заставили создать канал
Что думаете о сливе практически всех исходников Яндекса?
Мне наконец приехал SharGeek Storm 2
Покупал я его еще в прошлом году осенью. Мое желание было купить качественный и красивый powerbank который прослужит мне лет пять - до этого powerbank'и xiaomi приходилось менять раз в год, потому что они быстро разряжались.
Этот powerbank:
- Имеет DC out/in с возможностью настройки выходного вольтажа (!)
- Показывает потребление устройства (V/A/W)
- Два usb type-c
- USB Type-A
Итого, он заменяет сразу три устройства: лабораторный БП, повербанк, измеритель мощности
При этом он умеет контролировать отдачу тока, показывать состояние батареи, температуры и прочего. Ну и выглядит как будто бы из 2077 года.
Оч доволен, хоть и это явно overprice - зато прослужит долго и я всегда на него смогу положиться.
Покупал я его еще в прошлом году осенью. Мое желание было купить качественный и красивый powerbank который прослужит мне лет пять - до этого powerbank'и xiaomi приходилось менять раз в год, потому что они быстро разряжались.
Этот powerbank:
- Имеет DC out/in с возможностью настройки выходного вольтажа (!)
- Показывает потребление устройства (V/A/W)
- Два usb type-c
- USB Type-A
Итого, он заменяет сразу три устройства: лабораторный БП, повербанк, измеритель мощности
При этом он умеет контролировать отдачу тока, показывать состояние батареи, температуры и прочего. Ну и выглядит как будто бы из 2077 года.
Оч доволен, хоть и это явно overprice - зато прослужит долго и я всегда на него смогу положиться.
❤17👍4🔥1
⚠️В сеть утекли исходники Flipper Devices⚠️
Сегодня стало известно о публикации исходников прошивки Flipper Zero, исходников мобильных приложений и деcктопного продукта компании - qFlipper.
Качайте пока не удалили: https://github.com/flipperdevices
Сегодня стало известно о публикации исходников прошивки Flipper Zero, исходников мобильных приложений и деcктопного продукта компании - qFlipper.
Качайте пока не удалили: https://github.com/flipperdevices
😁88🤣34😱17🤡17💩5👍2🔥2⚡1👏1🤯1
Media is too big
VIEW IN TELEGRAM
Я поучаствовал в PowerPoint party
Еще в прошлом году меня пригласили на powerpoint party и я согласился прийти. Суть мероприятия - максимально всратые презентациях на максимально всратую тему. Рядом со мной выступали спикеры с такими темами как "оливье vs селедка под шубой", "худшие подарки на новый год" и пр.
Я выступал с темой "почему надо перенести корпоративы в VR". Было всрато и весело, мне понравилось
Еще в прошлом году меня пригласили на powerpoint party и я согласился прийти. Суть мероприятия - максимально всратые презентациях на максимально всратую тему. Рядом со мной выступали спикеры с такими темами как "оливье vs селедка под шубой", "худшие подарки на новый год" и пр.
Я выступал с темой "почему надо перенести корпоративы в VR". Было всрато и весело, мне понравилось
👏23🏆4👎2🔥2😁2🌭1
Как записывать качественный звук в домашних условиях
Так получилось, что я довольно часто где-то выступаю или что-то записываю - будь то лекции, выступления и так далее. За плечами у меня абсолютно точно больше сотни публичных выступлений, если не считать лекций. Основной опыт который я вынес из всего этого - контент первичен, качество формата вторично. Т.е. важно что ты говоришь и абсолютно неважно на какую технику или с каким продакшеном.
Но у всего есть предел. И в моем случае этим пределом стал доклад на Podlodka - абсолютно невыносимый звук.
Стал думать а как же улучшить запись - и выбор пал на Blue Yeti Nano за 69$. Ибо:
- У него есть кардиодный режим (это еще не узконаправленный микрофон, но уже отсекает лишнее эхо)
- У него есть playback (слышишь что говоришь)
- Подключается по USB
Сегодня зашел ровно в ту же коморку где записал тот доклад и сделал несколько семплов:
- Запись звука на микрофон Macbook Air M1 13" 2020
- Запись звука на внешний микрофон наушников
- Запись звука на Blue Yeti в кардиодном режиме
- (!!!) Обработанная через Adobe Podcast самая худшая запись
Все записи я выложил сюда: https://disk.yandex.com/d/ZUS7zbWRiYLz6Q
Каково же было мое удивление когда звук с микрофона макбука (именно он на том видео) стал лучше чем звук на Blue Yeti после прогона через https://podcast.adobe.com/enhance
Итого если у вас нет возможности сделать мини-студию для записи звука:
- Если вы выкладываете контент не в потоке, используйте Adode Podcast Enhance и прочие улучшайзеры
- Если вы выкладываете контент в потоке, попробуйте RTX Voice, Krisp и прочие стартапы
- Только если вам не подошли первые два пункта берите микрофон с узконаправленным потоком, чтобы он ловил только ваш голос
Так получилось, что я довольно часто где-то выступаю или что-то записываю - будь то лекции, выступления и так далее. За плечами у меня абсолютно точно больше сотни публичных выступлений, если не считать лекций. Основной опыт который я вынес из всего этого - контент первичен, качество формата вторично. Т.е. важно что ты говоришь и абсолютно неважно на какую технику или с каким продакшеном.
Но у всего есть предел. И в моем случае этим пределом стал доклад на Podlodka - абсолютно невыносимый звук.
Стал думать а как же улучшить запись - и выбор пал на Blue Yeti Nano за 69$. Ибо:
- У него есть кардиодный режим (это еще не узконаправленный микрофон, но уже отсекает лишнее эхо)
- У него есть playback (слышишь что говоришь)
- Подключается по USB
Сегодня зашел ровно в ту же коморку где записал тот доклад и сделал несколько семплов:
- Запись звука на микрофон Macbook Air M1 13" 2020
- Запись звука на внешний микрофон наушников
- Запись звука на Blue Yeti в кардиодном режиме
- (!!!) Обработанная через Adobe Podcast самая худшая запись
Все записи я выложил сюда: https://disk.yandex.com/d/ZUS7zbWRiYLz6Q
Каково же было мое удивление когда звук с микрофона макбука (именно он на том видео) стал лучше чем звук на Blue Yeti после прогона через https://podcast.adobe.com/enhance
Итого если у вас нет возможности сделать мини-студию для записи звука:
- Если вы выкладываете контент не в потоке, используйте Adode Podcast Enhance и прочие улучшайзеры
- Если вы выкладываете контент в потоке, попробуйте RTX Voice, Krisp и прочие стартапы
- Только если вам не подошли первые два пункта берите микрофон с узконаправленным потоком, чтобы он ловил только ваш голос
👍11