Канал одного Android-разработчика, успевшего поработать в аутсорсинге, Яндексе, Мейле, Snapchat и Flipper Devices. Мысли и годнота. @lionzxy
Будущее уже тут - и не только в IT.
Приехала вот такая бутылка со вкусами. Смысл в том что наливаешь туда простую воду, затем пьешь и на вкус эта простая вода как будто бы с сиропом. На самом деле, "вкус" создаёт колечко у горлышка бутылки, который служит лишь ароматизатором, обманывая наш мозг
Хороший программист старается избегать лишнего кода, потому что лишний код - это лишние тесты, это лишнее место где можно ошибиться. "Лучший код это тот, который не написан" ©
Поэтому разработчики используют кодогенераторы - плагины/скрипты/надстройки, которые генерируют код за программиста. Код, который не надо тестировать и который не захламляет кодовую базу. Самая популярная область для кодогенерации - это ORM для баз данных. Концепция проста - мы пишем один раз структуру данных, а дальше из этой структуры генерируется код для приложения и для базы данных. В одном моем прошлом проекте нам удалось удалить 20,000 строк кода после перехода на ORM, мы сэкономили заказчику несколько миллионов рублей и избавились от бесконечных багов и вылетов.
В мире Android (считай JVM) существуют несколько библиотек для этого. Есть RoomDAO, который генерирует схемы и простые запросы для базы данных из вашего кода. Но сложные запросы или связи нужно писать ручками на SQL. Есть ORMLite, который генерирует все за тебя, включая связи и сложные запросы из вашего кода. И недавно я узнал про обратный подход - генерировать код на kotlin из SQL.
https://cashapp.github.io/sqldelight/
Мое сердце остается с RoomDAO как лучшим, по моему мнению, балансом между сложностью и скоростью, но теперь я знаю на один подход больше.
#resources
Сегодня я узнал про существование виртуальных машин в браузере, которые работают через webasm:
https://copy.sh/v86/
WebAssembly - это способ запускать нативный код в браузере, будь то Rust, Go или другой язык, способный собираться в LLVM. Хотя, например, тот же Kotlin способен сразу собираться в JS. Собственно где-то 5 лет назад я так и сделал - запустил Kotlin прямо в браузере - https://glitchless.surge.sh/
У игры есть мультиплеер, но я его потушил. Вот исходники фронта, вот backend на spring, вот котлин во фронте
Мобильное приложение Flipper теперь доступно публично
Мы опубликовали первую публичную версию мобильного приложения для Флиппера в App Store и PlayMarket.
Оно умеет
* Управлять сохраненными ключами на флиппере: редактировать, удалять, создавать новые
* Отправлять сохраненные ключи другим пользователям любым удобным способом, хоть через Telegram
* Управлять флиппером через screen sharing
Скоро можно будет даже обновлять прошивку на Флиппере через мобильное приложение без компьютера (!!!!)
Это бета-версии, поэтому в них может быть много багов. Нам очень нужен ваш фидбек. Обсуждать приложение здесь на форуме
Скачать для iOS
Скачать для Android
В Telegram есть проблема, из-за которой владельцы каналов могут потерять их, сделав вещь, которая всем кажется безопасной, но на деле такой вообще не является.
Я сообщал об этом на соответствующей платформе ещё полгода назад, но до сих пор не получил никакого ответа. Поэтому я считаю, что могу рассказать об этом всем.
Опросив некоторое количество администраторов каналов и все, они были уверены, что бот с минимальным количеством прав (только добавление участников) не может ничего сделать. Это даже пишется в инструкция к некоторым ботам которых нужно добавить в канал чтобы они выполняли там необходимые действия.
А что, если я вам скажу, что любой бот в администраторах канала может за несколько минут удалить ваш канал? Точнее не совсем канал, а всех подписчиков вашего канала. Для демонстрации проблемы я записал видео демонстрацию, которое доступно ниже.
Как минимум этот пост написан для того, чтобы вы знали, что нельзя добавлять всех подряд ботов в канал, только те, которым точно доверяете и создателей есть репутация. Также я хотел бы чтобы администрация мессенджера добавила отдельные права на возможность банить участников канала ботами как это сделано в группах. По возможности сообщите об этом своим знакомым администраторам каналов.
Бонусом я сделал бота, который делает то же самое, что на видео. Добавьте @ccBoomBot в тестовый канал как администратора с любым набором прав и напишите любое сообщение в канал. Готово, канала больше нет.
На сообщения в личке или в чатах тоже можно ставить реакции. Мне лично изменение очень нравится
Читать полностью…Подъехали результаты хакатона. Внезапно было очень много крутых проектов. Мои любимчики (кроме телеграм клиента) это эмулятор CHIP-8.
Ну а какой проект личном вам нравится вы сможете узнать, прочитав статью по ссылке:
https://habr.com/ru/company/flipperdevices/blog/595325/
Будни Android-разработчика это когда каждый день пишут рекрутеры.
Но такое красивое оформление первый раз.
Авито регулярно радуют своим HR-брендом, очень приятное впечатление создавая раз за разом.
Когда все компании отказались проводить Android Academy, аргументируя это тем что “нам джуны не нужны”, только Avito согласилась, понимая важность HR-бренда, а не ставя KPI на найм здесь и сейчас
Запросил у Google данные, которые обо мне собирают. Сделал это для визуализации моего местоположения через этот сервис.
Поразил размер данных, которые есть на меня у гугла. И это текстовые очень сильно пожатые архивы, которые, как говорит гугл, не всеми системами поддерживаются (т.е. сжатие очень сильное).
Запросить свои данные у гугла можно тут: https://takeout.google.com
Сегодня в 14:50 буду обсуждать с Михаилом Левченко FOMO в Яндексе.
Страх пропустить что-то новое, не успеть за технологиями, остаться позади.
Приходите, будет интересно. Есть возможность задавать вопросы.
https://youtu.be/7BAQHAKtWXU
Как выглядит пейринг Flipper’а. @artmine делает чудеса)
Читать полностью…На этой неделе я буду вести коллективный твиттер - Мобильный разработчик.
Это первый раз, когда я настолько плотно буду публиковать контент. Очень надеюсь что получиться.
По плану на этой неделе будут
- Инсайды с работы во Flipper
- Инсайды с работы в Яндексе/Mailru/Snap (Chromium/Авторизация/Кодеки)
- Много набросов на хайповые темы (так же надо в твиттере, да?)
- Нытье про выгорание и проблемы разрабов. Но это под конец
Идет медведь по вебсайту, видит — тоггл не горит…
Читать полностью…Промокод для Notion на 500$ADALOVELACE
Работает даже с пустым балансом на карте
На самом деле, это не совсем легально, так что пользуйтесь на свое усмотрение: /channel/slashdesigner/724
На dtf нашел ссылки на бесплатную подписку на сервисы Apple. Работает даже для существующих пользователей.
iCloud (50GB, 3 мес): https://redeem.apple.com/mts?retail2021
Apple Music (до 5 мес): https://redeem.apple.com/svasnoymusicinstore
Apple Arcade (до 5 мес): https://redeem.apple.com/svasnoyarcadeinstore
Иногда бывают случаи когда нам нужно печатать текст, не печатая текст. Например, сейчас мне нужно перехватывать нажатие на кнопку backspace на software клавиатуре Android и без невидимых символов сделать это невозможно (по крайней мере, гуглу такие способы неизвестны).
Во многих играх и программах можно использовать невидимые символы для имени или ника.
https://invisible-characters.com/
#resources
У браузеров есть технология для P2P (peer to peer) соединения между двумя клиентами - WebRTC.
Это позволяет чатиться, обмениваться данными и прочим друг с другом без использования сервера.
Почти без использования сервера. Дело в том что для первоначальной установки соединения все-таки требуется сервер, так как требуется “пробить” NAT (грубо говоря, к вашему компьютеру нельзя достучаться из сети просто так).
Так вот - мой коллега, фронтэндер, сделал P2P терминал для Serial порта. Это значит что вы можете открыть свой браузер, подключить устройство к usb и перекинуть этот доступ другому человеку, просто кинув ссылку. И все это работает без своего сервера.
Магия тут заключается в том что в качестве сервера используются announcement сервера Torrent-трекеров. Это те же сервера, которые помогают вам скачивать через .torrent
файлы.
Это просто фантастика! Вот сама библиотека - https://github.com/subins2000/p2pt
Шок контент, на Google IO показали все шесть приложений под WearOS
Читать полностью…На Хабре вышел перевод разбора великолепного exploit'а. Его очень легко пропустить, если оригинал вы не читали, а на Хабре сидите не часто. Но сам хак вызывает уважение.
https://habr.com/ru/company/mvideo/blog/652843/
Великолепный “баг” в Github Actions
Если указывать версии в yaml Github Actions в виде цифр, то при парсинге они сплющиваются (неожиданно) до чисел.
Пример из статьи:
У нас есть версия Ruby 3.0.*
, в Github Actions мы указываем 3.0
Ожидание: Будут качаться версии 3.0.*
Реальность: Качаются все версии, начинающиеся с тройки - 3.*
Все потому, что 3.0
для скрипта приравнивается к обычной тройке. Фикситься это, если версию поместить в кавычки, тогда парситься это будет как строка - '3.0'
Подробнее тут
Удивительно как долго их делали в клиентах. Но теперь в последних бета клиентах телеграма уже можно ставить эмоции. Выглядит вот так:
Читать полностью…Играюсь с Flipper Zero и Midi. Worst synth ever.
Читать полностью…Искал книжку по менеджменту. Большое спасибо, Ozon, что ограждаешь меня от всяких непотребств 😌
Читать полностью…Мы (FlipperDevices) проводим хакатон в Москве.
Это отличная возможность потыкать девайс, которого пока ни у кого нет и пообщаться с командой разработчиков.
Ну или просто вступайте в @FlipperHackathon2021
Подробная информация тут:
https://habr.com/ru/company/flipperdevices/blog/589585/
Telegram меня провел по четырем каналам с криптой, дальше кликать не стал, но чувствую что цепочка бесконечна
Подписывайтесь на маленький и уютный локалхост, тут рекламы нет 🌚
Особо горячий эксклюзив принесу ещё и сюда из твиттера. :) Эволюция Flipper Zero
Читать полностью…Breaking news - Mail.ru Group переименовался в VK Group. Хорошо что Mail.ru поддерживает маленькие кондитерские фабрики:
http://vk.ru/
Подкасты Spotify запустились в России 🇷🇺
Читать полностью…Забавные нюансы офиса в историческом здании (наш офис входит в топ старейших зданий Москвы):
- Каждое утро приходит мужик с ведром и прогоняет воду, чтобы вода горячая вода была и можно было мыть руки. Процесс занимает 30+ минут.
- Наш офисный туалет отмечен на Яндекс картах.
- Офис на третьем этаже, туалет на первом
- Высота ступенек на лестнице разная
- Со стен отваливаются куски
- Кондиционеры только напольные, проветривание только через форточку
- Пробираешься ко входу через толпу туристов
- По пятницам вечером невозможно работать, шум на улице и музыка. Особенно по дням, когда снимают ЧБД (на первом этаже нашего офиса снимают ЧБД)
- Иногда охранник не пускает тебя в твой офис, потому что "у нас закрытое мероприятие, вы не проходите по дресс-коду"
- Твой офис есть в википедии - https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D0%BB%D0%B0%D1%82%D1%8B_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D1%86%D0%B5%D0%B2%D0%B0
Я: Вот бы мне простой пример по общению с BLE-устройствами
Android: вот тебе пример мигания светодиодиком на 1400 строк