Интервью с другом, который ездил в Польшу для открытия счета в банке Millennium для привязки к PayPal. Рассказывает что и как нужно делать, а также о нюансах и советы, как не запороть счет при использовании в PayPal.
SSH меню в Mac OS через bitbar и iTerm2
Я долго искал удобный кроссплатформенный SSH клиент для Mac OS, в котором можно было бы использовать те же конфиги, что и на Windows, но спустя всякие Remote Desktop Manager, Royal TS и топовые клиенты так и не нашел то, что мне нужно, смирившись с мыслью о том, что придется все-таки заморачиваться и вводить данные серверов везде по отдельности.
Steam Authenticator через бот в Telegram
Стим любит усложнять жизнь, делая свои велосипеды и двухфакторная аутенфикация через их личное приложение - один из их "любимых" штрихов.
В свое время, чтобы не устанавливать лишний софт себе на телефон, я использовал Steam Desktop Authenticator, который позволял авторизироваться через коды, а также отправлять трейд офферы, но с покупкой MacBook жизнь немного усложнилась – вышеуказанное приложение только для Windows.
Тогда я нашел плагин для Chrome, который умел генерировать коды авторизации, хотя и не умел подтверждать офферы, что не было для меня проблемой. Все было бы хорошо, если бы я мог пользоваться им с телефона, а это было довольно востребовано в моем случае. Кстати, плагин, похоже, удалили с Chrome Store.
Проблемы плагина, мобильного и десктопного приложения решились благодаря Telegram ботам. Телеграм есть везде: и в браузере и на телефонах и на компе, а инфа о генерации 2FA кодов стима есть в открытом доступе, так что я решил написать свой велосипед.
Steam Guard 2FA TOTP
Мой примитивный бот, который только то и умеет, что генерировать коды авторизации. Трейды я все еще подтверждаю через комп, но это так редко мне нужно, что я не чувствую ни капли дискомфорта.
Бот написан на Lua, работает прямо на моем Garry's Mod сервере, требует исключительно shared_secret
и больше ничего. Ни паролей, ни даже стим логина. Даже если я захочу украсть чей-то shared_secret
– я все равно не буду знать чей он, не говоря уже о пароле и никак не смогу его применить.
Вообще, я люблю писать всякие штучки-дрючки, используя один лишь Lua и свой игровой сервер (больной ублюдок). Возможно, вас заинтересуют и другие боты, которые работают рядом с этим :)
LUA Как использовать __mode в метатаблицах
Насчет __mode
совсем недавно узнал как работает. Штука очень классная и полезная.
По-простому объясняя, нужно понимать, что сборщик мусора считает мусором те данные, на которые больше нигде не осталось ссылок.
Сами ссылки ты устанавливаешь, когда например добавляешь данные в таблицу. Пример:
local arr = {}
QWE[1] = arr
Теперь на таблицу arr
установлена одна сильная ссылка. Если сделать QWE[1] = nil
, то ссылок больше не останется и сборщик потом удалит эту табличку
__mode
позволяет устанавливать таблицам инструкцию, что закрепленные за ней ключи или значения не будут создавать сильные ссылки (они называются слабыми)
Если мы сделаем setmetatable(QWE, {__mode = "v"})
(тем самым сказав, что значения таблицы QWE не считаются сильными ссылками) и повторим наш QWE[1] = arr
, то сборщик мусора зачистит наш arr
и при print(QWE[1])
после работы сборщика отпринтит nil
Слабыми можно делать и ключи, тогда нужно указать mode "v". Или и ключи и значения: "kv".
Реальное применение
Я узнал об этом совсем недавно, но успел применить так: в новой версии IGS полностью переписан API framework. Репитер упавших запросов сделан отдельным модулем. Так вот тот репитер повторяет запросы, которые по некоторым причинам провалились, но делает это не более 15 раз.
В качестве счетчика используется ключ-значение таблица, где ключом выступает сама функция, а значением число раз, которое я пытался ее выполнить. Напоминаю, что в Lua функции передаются ссылками. Так вот ключи этой таблицы я сделал слабыми ссылками и если функция удаляется сборщиком где-то из вне, то ее счетчик в таблице так же автоматически очищается и мне не приходится следить за этим "вручную".
Нюансы при разработке дизайна и производстве персональных мундштуков
Рассказ о нюансах, которые возникли при заказе, разработке и производстве персональных мундштуков. Больше всего времени и лишние расходы произошли именно из-за "нюансов"
Недавно мой хороший знакомый открыл свою кальянную и мне захотелось сделать для нее подарок - набор персональных мундштуков.
Заметки о Загребе (Хорватия)
После Праги Загреб был глотком свежего воздуха - именно таким я представлял европейский город еще до первого раза за границей
Хорошие дороги, приветливые люди, маленькие домики, интеграция всяческих технологий во все. Есть даже биткоин терминалы!! Да это же настоящий киберпанк, Карл.
Какую клаву взять? Мои клавы
Просто заметка, беспонтовый пост без смысловой нагрузки для ответа в посте одного закрытого сообщества
RSS из любого Telegram канала
Без навыков программирования, сторонних ботов, смс и регистрации!
TL;DR
Заменяем в этой ссылке последнее слово на адрес вашего канала и используйте его в качестве RSS ссылки: https://rsshub.app/telegram/channel/tlitter
Также вы можете попробовать использовать этот бот: @crssbot, но он вроде медленно обновлял информацию и не поддерживается
Зачем это мне
Вкратце - vk.com/rurage. Сюда временно дублируется содержание моего t.me/tlitter канала
Я почти забросил VK после начала активного использования телеги и даже написал бота, который присылает мне в телегу посты с групп ВК. Но и у меня самого остается несколько групп в VK, в которые мне самому нужно писать. Чтобы не писать в Telegram и группу одновременно, я сделал, чтобы VK сам забирал новые посты с Telegram
Бонус
Сначала я нашел способ просматривать содержимое канала без регистрации и думал, что придется парсить содержимое с такой страницы: https://t.me/s/tlitter. Но страницу можно использовать даже чтобы просто показывать содержимое канала тем, кто не зарегистрирован в телеграме.
Заметки о Праге (Чехия)
Был тут 5-13 июня. Это третья страна, после Венгрии и Турции
Жилье на этот раз нашли через эирбнб и жили втроем в небольшой, но вполне уютной квартирке.
Ghost + Traefik v2 = блог с автообновлением SSL
Этот блог работает внутри Docker контейнера и использует Traefik в качестве reverse proxy для Ghost. Недавно вышла версия v2.0, в которой были изменены некоторые фундаментальные особенности, что требует переконфигурации trafik.toml, acme.json и docker-compose.yml
У Traefik есть официальная инструкция по обновлению, и то ли я дурак, то ли ее стоит доработать, но факт в том, что после получаса вкуривания заново все настроить для меня было гораздо проще и полезнее