Перейти к основному содержимому

· 5 мин. чтения

Интервью с другом, который ездил в Польшу для открытия счета в банке Millennium для привязки к PayPal. Рассказывает что и как нужно делать, а также о нюансах и советы, как не запороть счет при использовании в PayPal.

· 3 мин. чтения

Я долго искал удобный кроссплатформенный SSH клиент для Mac OS, в котором можно было бы использовать те же конфиги, что и на Windows, но спустя всякие Remote Desktop Manager, Royal TS и топовые клиенты так и не нашел то, что мне нужно, смирившись с мыслью о том, что придется все-таки заморачиваться и вводить данные серверов везде по отдельности.

· 2 мин. чтения

Стим любит усложнять жизнь, делая свои велосипеды и двухфакторная аутенфикация через их личное приложение - один из их "любимых" штрихов.

В свое время, чтобы не устанавливать лишний софт себе на телефон, я использовал Steam Desktop Authenticator, который позволял авторизироваться через коды, а также отправлять трейд офферы, но с покупкой MacBook жизнь немного усложнилась – вышеуказанное приложение только для Windows.

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


Проблемы плагина, мобильного и десктопного приложения решились благодаря Telegram ботам. Телеграм есть везде: и в браузере и на телефонах и на компе, а инфа о генерации 2FA кодов стима есть в открытом доступе, так что я решил написать свой велосипед.

Steam Guard 2FA TOTP

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

Бот написан на Lua, работает прямо на моем Garry's Mod сервере, требует исключительно shared_secret и больше ничего. Ни паролей, ни даже стим логина. Даже если я захочу украсть чей-то shared_secret – я все равно не буду знать чей он, не говоря уже о пароле и никак не смогу его применить.


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

· 2 мин. чтения

Насчет __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 функции передаются ссылками. Так вот ключи этой таблицы я сделал слабыми ссылками и если функция удаляется сборщиком где-то из вне, то ее счетчик в таблице так же автоматически очищается и мне не приходится следить за этим "вручную".

· 5 мин. чтения

Рассказ о нюансах, которые возникли при заказе, разработке и производстве персональных мундштуков. Больше всего времени и лишние расходы произошли именно из-за "нюансов"

Недавно мой хороший знакомый открыл свою кальянную и мне захотелось сделать для нее подарок - набор персональных мундштуков.

· 2 мин. чтения

После Праги Загреб был глотком свежего воздуха - именно таким я представлял европейский город еще до первого раза за границей

Хорошие дороги, приветливые люди, маленькие домики, интеграция всяческих технологий во все. Есть даже биткоин терминалы!! Да это же настоящий киберпанк, Карл.

· 1 мин. чтения

Без навыков программирования, сторонних ботов, смс и регистрации!

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. Но страницу можно использовать даже чтобы просто показывать содержимое канала тем, кто не зарегистрирован в телеграме.

· 3 мин. чтения

Этот блог работает внутри Docker контейнера и использует Traefik в качестве reverse proxy для Ghost. Недавно вышла версия v2.0, в которой были изменены некоторые фундаментальные особенности, что требует переконфигурации trafik.toml, acme.json и docker-compose.yml

У Traefik есть официальная инструкция по обновлению, и то ли я дурак, то ли ее стоит доработать, но факт в том, что после получаса вкуривания заново все настроить для меня было гораздо проще и полезнее