localhost_ru | Unsorted

Telegram-канал localhost_ru - Локалхост (Никита Куликов)

2030

Канал одного Android-разработчика, успевшего поработать в аутсорсинге, Яндексе, Мейле, Snapchat и Flipper Devices. Мысли и годнота. @lionzxy

Subscribe to a channel

Локалхост (Никита Куликов)

Сегодня выходит очень классное инди. Я играл в демку и следил за игрой с дня анонса (см.реплай). Сомневаюсь что у разраба есть бюджет на рекламу, так что тем кому нравится например 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

Почему-то люди очень удивляются когда ты или кто-то еще не знает, казалось бы, "примитивных" вещей. Очень хорошо что есть такие курсы. Может быть вы еще знаете курсы с подобной философией?

Читать полностью…
Subscribe to a channel