Локалхост (Никита Куликов)
Ну все, реакции в Telegram
Удивительно как долго их делали в клиентах. Но теперь в последних бета клиентах телеграма уже можно ставить эмоции. Выглядит вот так:
🍌1
Локалхост (Никита Куликов)
Удивительно как долго их делали в клиентах. Но теперь в последних бета клиентах телеграма уже можно ставить эмоции. Выглядит вот так:
На сообщения в личке или в чатах тоже можно ставить реакции. Мне лично изменение очень нравится
🔥3👍2
Вам нравится добавление эмоций?
Anonymous Poll
27%
Да, давно ждал
25%
Да, приятная неожиданность
18%
Все равно
15%
Нет, мне не нравится
15%
Мимкрокодил
Великолепный “баг” в Github Actions
Если указывать версии в yaml Github Actions в виде цифр, то при парсинге они сплющиваются (неожиданно) до чисел.
Пример из статьи:
У нас есть версия Ruby
Ожидание: Будут качаться версии
Реальность: Качаются все версии, начинающиеся с тройки -
Все потому, что
Подробнее тут
Если указывать версии в yaml Github Actions в виде цифр, то при парсинге они сплющиваются (неожиданно) до чисел.
Пример из статьи:
У нас есть версия Ruby
3.0.*, в Github Actions мы указываем 3.0Ожидание: Будут качаться версии
3.0.*Реальность: Качаются все версии, начинающиеся с тройки -
3.*Все потому, что
3.0 для скрипта приравнивается к обычной тройке. Фикситься это, если версию поместить в кавычки, тогда парситься это будет как строка - '3.0'Подробнее тут
Bibliographic Wilderness
Github Action setup-ruby needs to quote ‘3.0’ or will end up with ruby 3.1
You may be running builds in Github Actions using the setup-ruby action to install a chosen version of ruby, looking something like this: – name: Set up Ruby uses: ruby/setup-ruby@v1 with: ru…
Forwarded from Ly 💜
В Telegram есть проблема, из-за которой владельцы каналов могут потерять их, сделав вещь, которая всем кажется безопасной, но на деле такой вообще не является.
Я сообщал об этом на соответствующей платформе ещё полгода назад, но до сих пор не получил никакого ответа. Поэтому я считаю, что могу рассказать об этом всем.
Опросив некоторое количество администраторов каналов и все, они были уверены, что бот с минимальным количеством прав (только добавление участников) не может ничего сделать. Это даже пишется в инструкция к некоторым ботам которых нужно добавить в канал чтобы они выполняли там необходимые действия.
А что, если я вам скажу, что любой бот в администраторах канала может за несколько минут удалить ваш канал? Точнее не совсем канал, а всех подписчиков вашего канала. Для демонстрации проблемы я записал видео демонстрацию, которое доступно ниже.
Как минимум этот пост написан для того, чтобы вы знали, что нельзя добавлять всех подряд ботов в канал, только те, которым точно доверяете и создателей есть репутация. Также я хотел бы чтобы администрация мессенджера добавила отдельные права на возможность банить участников канала ботами как это сделано в группах. По возможности сообщите об этом своим знакомым администраторам каналов.
Бонусом я сделал бота, который делает то же самое, что на видео. Добавьте @ccBoomBot в тестовый канал как администратора с любым набором прав и напишите любое сообщение в канал. Готово, канала больше нет.
Я сообщал об этом на соответствующей платформе ещё полгода назад, но до сих пор не получил никакого ответа. Поэтому я считаю, что могу рассказать об этом всем.
Опросив некоторое количество администраторов каналов и все, они были уверены, что бот с минимальным количеством прав (только добавление участников) не может ничего сделать. Это даже пишется в инструкция к некоторым ботам которых нужно добавить в канал чтобы они выполняли там необходимые действия.
А что, если я вам скажу, что любой бот в администраторах канала может за несколько минут удалить ваш канал? Точнее не совсем канал, а всех подписчиков вашего канала. Для демонстрации проблемы я записал видео демонстрацию, которое доступно ниже.
Как минимум этот пост написан для того, чтобы вы знали, что нельзя добавлять всех подряд ботов в канал, только те, которым точно доверяете и создателей есть репутация. Также я хотел бы чтобы администрация мессенджера добавила отдельные права на возможность банить участников канала ботами как это сделано в группах. По возможности сообщите об этом своим знакомым администраторам каналов.
Бонусом я сделал бота, который делает то же самое, что на видео. Добавьте @ccBoomBot в тестовый канал как администратора с любым набором прав и напишите любое сообщение в канал. Готово, канала больше нет.
Telegram
Yūri 🇺🇦 💜 Ly
👨💻 Tech enthusiast & creative 🔍 Discover on telegra.ph/ly-02-27 or my website yuri.ly
👍7😱7🔥1
На Хабре вышел перевод разбора великолепного exploit'а. Его очень легко пропустить, если оригинал вы не читали, а на Хабре сидите не часто. Но сам хак вызывает уважение.
https://habr.com/ru/company/mvideo/blog/652843/
https://habr.com/ru/company/mvideo/blog/652843/
Хабр
Как графический формат прошлого века привёл к zero-click exploit в iOS
Тема информационной безопасности в сфере интересов команды М.Видео и Эльдорадо, поэтому делимся с вами очередным интересным переводным тематическим материалом. В начале 2022 года Citizen Lab удалось...
👍2
Forwarded from Zhovner Hub
Мобильное приложение Flipper теперь доступно публично
Мы опубликовали первую публичную версию мобильного приложения для Флиппера в App Store и PlayMarket.
Оно умеет
* Управлять сохраненными ключами на флиппере: редактировать, удалять, создавать новые
* Отправлять сохраненные ключи другим пользователям любым удобным способом, хоть через Telegram
* Управлять флиппером через screen sharing
Скоро можно будет даже обновлять прошивку на Флиппере через мобильное приложение без компьютера (!!!!)
Это бета-версии, поэтому в них может быть много багов. Нам очень нужен ваш фидбек. Обсуждать приложение здесь на форуме
Скачать для iOS
Скачать для Android
Мы опубликовали первую публичную версию мобильного приложения для Флиппера в App Store и PlayMarket.
Оно умеет
* Управлять сохраненными ключами на флиппере: редактировать, удалять, создавать новые
* Отправлять сохраненные ключи другим пользователям любым удобным способом, хоть через Telegram
* Управлять флиппером через screen sharing
Скоро можно будет даже обновлять прошивку на Флиппере через мобильное приложение без компьютера (!!!!)
Это бета-версии, поэтому в них может быть много багов. Нам очень нужен ваш фидбек. Обсуждать приложение здесь на форуме
Скачать для iOS
Скачать для Android
🔥10
Сегодня я узнал про существование виртуальных машин в браузере, которые работают через webasm:
https://copy.sh/v86/
WebAssembly - это способ запускать нативный код в браузере, будь то Rust, Go или другой язык, способный собираться в LLVM. Хотя, например, тот же Kotlin способен сразу собираться в JS. Собственно где-то 5 лет назад я так и сделал - запустил Kotlin прямо в браузере - https://glitchless.surge.sh/
У игры есть мультиплеер, но я его потушил. Вот исходники фронта, вот backend на spring, вот котлин во фронте
https://copy.sh/v86/
WebAssembly - это способ запускать нативный код в браузере, будь то Rust, Go или другой язык, способный собираться в LLVM. Хотя, например, тот же Kotlin способен сразу собираться в JS. Собственно где-то 5 лет назад я так и сделал - запустил Kotlin прямо в браузере - https://glitchless.surge.sh/
У игры есть мультиплеер, но я его потушил. Вот исходники фронта, вот backend на spring, вот котлин во фронте
🔥11
У браузеров есть технология для P2P (peer to peer) соединения между двумя клиентами - WebRTC.
Это позволяет чатиться, обмениваться данными и прочим друг с другом без использования сервера.
Почти без использования сервера. Дело в том что для первоначальной установки соединения все-таки требуется сервер, так как требуется “пробить” NAT (грубо говоря, к вашему компьютеру нельзя достучаться из сети просто так).
Так вот - мой коллега, фронтэндер, сделал P2P терминал для Serial порта. Это значит что вы можете открыть свой браузер, подключить устройство к usb и перекинуть этот доступ другому человеку, просто кинув ссылку. И все это работает без своего сервера.
Магия тут заключается в том что в качестве сервера используются announcement сервера Torrent-трекеров. Это те же сервера, которые помогают вам скачивать через
Это просто фантастика! Вот сама библиотека - https://github.com/subins2000/p2pt
Это позволяет чатиться, обмениваться данными и прочим друг с другом без использования сервера.
Почти без использования сервера. Дело в том что для первоначальной установки соединения все-таки требуется сервер, так как требуется “пробить” NAT (грубо говоря, к вашему компьютеру нельзя достучаться из сети просто так).
Так вот - мой коллега, фронтэндер, сделал P2P терминал для Serial порта. Это значит что вы можете открыть свой браузер, подключить устройство к usb и перекинуть этот доступ другому человеку, просто кинув ссылку. И все это работает без своего сервера.
Магия тут заключается в том что в качестве сервера используются announcement сервера Torrent-трекеров. Это те же сервера, которые помогают вам скачивать через
.torrent файлы. Это просто фантастика! Вот сама библиотека - https://github.com/subins2000/p2pt
👍20❤🔥3🔥2🤯1
Хороший программист старается избегать лишнего кода, потому что лишний код - это лишние тесты, это лишнее место где можно ошибиться. "Лучший код это тот, который не написан" ©
Поэтому разработчики используют кодогенераторы - плагины/скрипты/надстройки, которые генерируют код за программиста. Код, который не надо тестировать и который не захламляет кодовую базу. Самая популярная область для кодогенерации - это ORM для баз данных. Концепция проста - мы пишем один раз структуру данных, а дальше из этой структуры генерируется код для приложения и для базы данных. В одном моем прошлом проекте нам удалось удалить 20,000 строк кода после перехода на ORM, мы сэкономили заказчику несколько миллионов рублей и избавились от бесконечных багов и вылетов.
В мире Android (считай JVM) существуют несколько библиотек для этого. Есть RoomDAO, который генерирует схемы и простые запросы для базы данных из вашего кода. Но сложные запросы или связи нужно писать ручками на SQL. Есть ORMLite, который генерирует все за тебя, включая связи и сложные запросы из вашего кода. И недавно я узнал про обратный подход - генерировать код на kotlin из SQL.
https://cashapp.github.io/sqldelight/
Мое сердце остается с RoomDAO как лучшим, по моему мнению, балансом между сложностью и скоростью, но теперь я знаю на один подход больше.
#resources
Поэтому разработчики используют кодогенераторы - плагины/скрипты/надстройки, которые генерируют код за программиста. Код, который не надо тестировать и который не захламляет кодовую базу. Самая популярная область для кодогенерации - это ORM для баз данных. Концепция проста - мы пишем один раз структуру данных, а дальше из этой структуры генерируется код для приложения и для базы данных. В одном моем прошлом проекте нам удалось удалить 20,000 строк кода после перехода на ORM, мы сэкономили заказчику несколько миллионов рублей и избавились от бесконечных багов и вылетов.
В мире Android (считай JVM) существуют несколько библиотек для этого. Есть RoomDAO, который генерирует схемы и простые запросы для базы данных из вашего кода. Но сложные запросы или связи нужно писать ручками на SQL. Есть ORMLite, который генерирует все за тебя, включая связи и сложные запросы из вашего кода. И недавно я узнал про обратный подход - генерировать код на kotlin из SQL.
https://cashapp.github.io/sqldelight/
Мое сердце остается с RoomDAO как лучшим, по моему мнению, балансом между сложностью и скоростью, но теперь я знаю на один подход больше.
#resources
😱3👍1
Иногда бывают случаи когда нам нужно печатать текст, не печатая текст. Например, сейчас мне нужно перехватывать нажатие на кнопку backspace на software клавиатуре Android и без невидимых символов сделать это невозможно (по крайней мере, гуглу такие способы неизвестны).
Во многих играх и программах можно использовать невидимые символы для имени или ника.
https://invisible-characters.com/
#resources
Во многих играх и программах можно использовать невидимые символы для имени или ника.
https://invisible-characters.com/
#resources
Invisible-Characters
Unicode characters you can not see
Unicode characters you can not see -Invisible Characters
👍7
Будущее уже тут - и не только в IT.
Приехала вот такая бутылка со вкусами. Смысл в том что наливаешь туда простую воду, затем пьешь и на вкус эта простая вода как будто бы с сиропом. На самом деле, "вкус" создаёт колечко у горлышка бутылки, который служит лишь ароматизатором, обманывая наш мозг
Приехала вот такая бутылка со вкусами. Смысл в том что наливаешь туда простую воду, затем пьешь и на вкус эта простая вода как будто бы с сиропом. На самом деле, "вкус" создаёт колечко у горлышка бутылки, который служит лишь ароматизатором, обманывая наш мозг
🤔13🤯13👍3🔥1🥰1🌚1
Пропущенный семестр.
В мире программирования есть общепринятые вещи, которые должен знать любой программист. И вроде все вокруг это знают и ты откуда-то это знаешь (если у тебя много опыта), но нигде про это не рассказывают, так как думают что это очевидные вещи.
Это не правильно и MIT решила сделать курс "The Missing Semester". Туда входит работа с консолью, консольные редакторы, Git, debugging, безопасность/криптография и так далее. Иными словами, все то что вы должны знать (как программист):
https://missing.csail.mit.edu/
По идеям этого курса @experimentalchill читал лекции в ВШЭ, которые я репостил ранее тут. Вот ссылка на YouTube-плейлист:
https://www.youtube.com/playlist?list=PLEwK9wdS5g0r13k64sdM2Zyr2GNxEH7Ou
Почему-то люди очень удивляются когда ты или кто-то еще не знает, казалось бы, "примитивных" вещей. Очень хорошо что есть такие курсы. Может быть вы еще знаете курсы с подобной философией?
В мире программирования есть общепринятые вещи, которые должен знать любой программист. И вроде все вокруг это знают и ты откуда-то это знаешь (если у тебя много опыта), но нигде про это не рассказывают, так как думают что это очевидные вещи.
Это не правильно и MIT решила сделать курс "The Missing Semester". Туда входит работа с консолью, консольные редакторы, Git, debugging, безопасность/криптография и так далее. Иными словами, все то что вы должны знать (как программист):
https://missing.csail.mit.edu/
По идеям этого курса @experimentalchill читал лекции в ВШЭ, которые я репостил ранее тут. Вот ссылка на YouTube-плейлист:
https://www.youtube.com/playlist?list=PLEwK9wdS5g0r13k64sdM2Zyr2GNxEH7Ou
Почему-то люди очень удивляются когда ты или кто-то еще не знает, казалось бы, "примитивных" вещей. Очень хорошо что есть такие курсы. Может быть вы еще знаете курсы с подобной философией?
Telegram
Локалхост
Сезон преподавания от меня потихоньку заканчивается. В этом году, как я уже писал, получилось прочитать два курса на ФКН ВШЭ.
1. Распределённые системы, плейлист (вместе с лекциями), вёл семинары, рассказывал студентам про продакшен, какой-то опыт, пытался…
1. Распределённые системы, плейлист (вместе с лекциями), вёл семинары, рассказывал студентам про продакшен, какой-то опыт, пытался…
👍23🔥8❤5
Очередной сервис отправил тестовые пуши всем пользователям. Это, очевидно, ошибка, да, но не человека, а процессов. Что можно сделать чтобы такого избежать:
- Использовать в качестве тестовых пушей настоящие продуктовые
- Ограничить доступ к рассылкам и сделать их доступными только для ограниченного числа людей и с аппрувами. Продовые ключи для пушей хранить в ключнице на сервере и не давать программистам
- Добавить механизм на андроид "отката" пушей, когда пушом можно удалить прыдудщий пуш из трея
Многие готовые сервисы по рассылке пушей и так заставляют эти пункты выполнять. Я, например, в таком и работал когда-то (libNotify в mail.ru). А какие тестовые пуши видели вы?
- Использовать в качестве тестовых пушей настоящие продуктовые
- Ограничить доступ к рассылкам и сделать их доступными только для ограниченного числа людей и с аппрувами. Продовые ключи для пушей хранить в ключнице на сервере и не давать программистам
- Добавить механизм на андроид "отката" пушей, когда пушом можно удалить прыдудщий пуш из трея
Многие готовые сервисы по рассылке пушей и так заставляют эти пункты выполнять. Я, например, в таком и работал когда-то (libNotify в mail.ru). А какие тестовые пуши видели вы?
⚡12🤡3🍌3
Это просто отвал башки - кто-то на Flipper смог портировать Doom
https://www.youtube.com/watch?v=lbNFdDEDLy0
https://www.youtube.com/watch?v=lbNFdDEDLy0
🔥14
