Локалхост (Никита Куликов)
2.08K subscribers
186 photos
23 videos
1 file
171 links
Канал одного Android-разработчика, успевшего поработать в аутсорсинге, Яндексе, Мейле, Snapchat и Flipper Devices. Мысли и годнота.
@lionzxy
Download Telegram
Forwarded from Ly 💜
В Telegram есть проблема, из-за которой владельцы каналов могут потерять их, сделав вещь, которая всем кажется безопасной, но на деле такой вообще не является.
Я сообщал об этом на соответствующей платформе ещё полгода назад, но до сих пор не получил никакого ответа. Поэтому я считаю, что могу рассказать об этом всем.

Опросив некоторое количество администраторов каналов и все, они были уверены, что бот с минимальным количеством прав (только добавление участников) не может ничего сделать. Это даже пишется в инструкция к некоторым ботам которых нужно добавить в канал чтобы они выполняли там необходимые действия.

А что, если я вам скажу, что любой бот в администраторах канала может за несколько минут удалить ваш канал? Точнее не совсем канал, а всех подписчиков вашего канала. Для демонстрации проблемы я записал видео демонстрацию, которое доступно ниже.

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

Бонусом я сделал бота, который делает то же самое, что на видео. Добавьте @ccBoomBot в тестовый канал как администратора с любым набором прав и напишите любое сообщение в канал. Готово, канала больше нет.
Forwarded from Zhovner Hub
Мобильное приложение Flipper теперь доступно публично

Мы опубликовали первую публичную версию мобильного приложения для Флиппера в App Store и PlayMarket.

Оно умеет

* Управлять сохраненными ключами на флиппере: редактировать, удалять, создавать новые

* Отправлять сохраненные ключи другим пользователям любым удобным способом, хоть через Telegram

* Управлять флиппером через screen sharing

Скоро можно будет даже обновлять прошивку на Флиппере через мобильное приложение без компьютера (!!!!)

Это бета-версии, поэтому в них может быть много багов. Нам очень нужен ваш фидбек. Обсуждать приложение здесь на форуме


Скачать для iOS

Скачать для Android
Шок контент, на Google IO показали все шесть приложений под WearOS
Подслушивает 👂
Сегодня я узнал про существование виртуальных машин в браузере, которые работают через webasm:
https://copy.sh/v86/

WebAssembly - это способ запускать нативный код в браузере, будь то Rust, Go или другой язык, способный собираться в LLVM. Хотя, например, тот же Kotlin способен сразу собираться в JS. Собственно где-то 5 лет назад я так и сделал - запустил Kotlin прямо в браузере - https://glitchless.surge.sh/

У игры есть мультиплеер, но я его потушил. Вот исходники фронта, вот backend на spring, вот котлин во фронте
Новые реакции?
У браузеров есть технология для P2P (peer to peer) соединения между двумя клиентами - WebRTC.
Это позволяет чатиться, обмениваться данными и прочим друг с другом без использования сервера.

Почти без использования сервера. Дело в том что для первоначальной установки соединения все-таки требуется сервер, так как требуется “пробить” NAT (грубо говоря, к вашему компьютеру нельзя достучаться из сети просто так).

Так вот - мой коллега, фронтэндер, сделал P2P терминал для Serial порта. Это значит что вы можете открыть свой браузер, подключить устройство к usb и перекинуть этот доступ другому человеку, просто кинув ссылку. И все это работает без своего сервера.

Магия тут заключается в том что в качестве сервера используются announcement сервера Torrent-трекеров. Это те же сервера, которые помогают вам скачивать через .torrent файлы.

Это просто фантастика! Вот сама библиотека - https://github.com/subins2000/p2pt
Хороший программист старается избегать лишнего кода, потому что лишний код - это лишние тесты, это лишнее место где можно ошибиться. "Лучший код это тот, который не написан" ©

Поэтому разработчики используют кодогенераторы - плагины/скрипты/надстройки, которые генерируют код за программиста. Код, который не надо тестировать и который не захламляет кодовую базу. Самая популярная область для кодогенерации - это ORM для баз данных. Концепция проста - мы пишем один раз структуру данных, а дальше из этой структуры генерируется код для приложения и для базы данных. В одном моем прошлом проекте нам удалось удалить 20,000 строк кода после перехода на ORM, мы сэкономили заказчику несколько миллионов рублей и избавились от бесконечных багов и вылетов.

В мире Android (считай JVM) существуют несколько библиотек для этого. Есть RoomDAO, который генерирует схемы и простые запросы для базы данных из вашего кода. Но сложные запросы или связи нужно писать ручками на SQL. Есть ORMLite, который генерирует все за тебя, включая связи и сложные запросы из вашего кода. И недавно я узнал про обратный подход - генерировать код на kotlin из SQL.

https://cashapp.github.io/sqldelight/

Мое сердце остается с RoomDAO как лучшим, по моему мнению, балансом между сложностью и скоростью, но теперь я знаю на один подход больше.
#resources
Иногда бывают случаи когда нам нужно печатать текст, не печатая текст. Например, сейчас мне нужно перехватывать нажатие на кнопку backspace на software клавиатуре Android и без невидимых символов сделать это невозможно (по крайней мере, гуглу такие способы неизвестны).

Во многих играх и программах можно использовать невидимые символы для имени или ника.

https://invisible-characters.com/

#resources
Будущее уже тут - и не только в IT.

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

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

Это не правильно и MIT решила сделать курс "The Missing Semester". Туда входит работа с консолью, консольные редакторы, Git, debugging, безопасность/криптография и так далее. Иными словами, все то что вы должны знать (как программист):

https://missing.csail.mit.edu/

По идеям этого курса @experimentalchill читал лекции в ВШЭ, которые я репостил ранее тут. Вот ссылка на YouTube-плейлист:

https://www.youtube.com/playlist?list=PLEwK9wdS5g0r13k64sdM2Zyr2GNxEH7Ou

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

Многие готовые сервисы по рассылке пушей и так заставляют эти пункты выполнять. Я, например, в таком и работал когда-то (libNotify в mail.ru). А какие тестовые пуши видели вы?
Это просто отвал башки - кто-то на Flipper смог портировать Doom

https://www.youtube.com/watch?v=lbNFdDEDLy0
Моему знакомому фронтэндеру (@vitalystory) пришли пуши от тинькофф с приглашением устроиться на работу.
Забавно что другим стекам типо Android/Backend и прочие такие пуши не пришли.

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

https://t.me/coffee_party_with/6