Channel 11
59 subscribers
74 photos
3 videos
7 files
83 links
Записки дата-грузчика. Мафия, настолки, книги и айти-лайфхаки.

Автор: @squizduos
Download Telegram
Channel 11
Привьет, я эсстонский вируссс, который похакал тебя. Хочешь жить? Переведи $700. Пруфов хака не будет. Интересно даже, кто поведётся.
Всё плохо. Трое человек повелись. Возможно, конечно, это фейковые платежи, созданные самими спамерами, но вряд ли.

Это был краткий гайд «Как, не вставая с дивана, украсть $2100 у наивных людей».
Да, это реальный фрагмент кода из движка DOOM 3.

https://github.com/id-Software/DOOM-3/blob/master/neo/game/gamesys/TypeInfo.cpp#L30
Опробовал тут бюджетные TWS от Xiaomi.

Впечатления пока что отличные. Звук приемлемый, сидят удобно, кейс лежит в кармане и не мешает. Кто хочет попробовать TWS, но не готов тратиться - рекомендую, свою тысячу рублей они оправдывают полностью.
Простите, не сдержался.

Ирония в том, что именно над календарём я и работаю.
Хозяйке на заметку: экспортируем докер-образы в файл.

docker save $TAG | gzip -c > $NAME.tgz

Конечно, Docker и сам умеет экспортировать в файл, но сжимать автоматически — чуть удобнее.

Восстановить образы из файла: gunzip -c $FILE | docker load
Нашел тут прекрасное.

https://github.com/jeffshek/django-drf-antipatterns

Аффтар, к сожалению, не довел до конца свой труд, потому я ему помогу. Это будет несложно - потому что вся Джанга является одним огромным антипаттерном
Нашёл тут прекрасную штуку — локальный поисковик по коду hound.

Часто такое бывает, что нужно поискать не по своему проекту, что и так можно сделать в любой IDE, но и по чужому. Особенно — когда из документации по library_name только несколько упорото написанных примеров от автора, и все крутые фишки раскрываются сторонними разработчиками. Причем если по одному репозиторию ещё можно поискать по GitHub, то вот по нескольким — это пытка. Плюс репозитории с GitHub имеют свойство пропадать, переноситься, в общем, лучше всегда ещё иметь оффлайн-копию, а искать по ней — ещё большее мучение.

И вот тут hound идеален. Написан на Go, ставится в виде одного исполняемого файла (или Docker-образа для эстетов), в папке с заботливо скачанными с интернетов примерами создаётся файл config.json с примерно следующим содержимым:

{
"max-concurrent-indexers" : 2,
"dbpath" : "data",
"health-check-uri" : "/healthz",
"repos" : {
"github-repo" : {
"url" : "https://github.com/author/repo"
},
"local-repo": {
"url" : "file:///home/user/code/examples/author/repo"
}
}
}

И всё просто работает. Для особых ценителей есть поиск по регуляркам и в определенной папке.
RSS для Telegram-каналов [2]

Недавно тут выяснил удивительную вещь: RSS все ёщё жив и кому-то нужен (кроме меня). Эти странные люди — китайцы, и они сделали универсальный агрегатор в RSS из соцсетей под названием RSSHub.

Список поддерживаемых сервисов впечатляет — для программистов есть поддержка GitHub и GitLab (не спрашивайте, зачем); геймерам доступны RSS-ленты из Steam и Nintendo eShop, а для трудящихся масс — Instagram, Twitter, YouTube и Telegram. Для Telegram доступна информация о стикерах и каналах, что позволяет без проблем превратить любой публичный Telegram-канал в ленту.

Формат ссылки на Telegram-канал:
$BASE_URL/telegram/channel/:username .

К примеру, для моего канала ссылка выглядит вот так:
https://rsshub.app/telegram/channel/ch_11

Форматы ссылок и настройки для остальных сервисов есть в документации.

Тестирую уже недели две, пока что брат жив, а каналы даже успеваются читать. Есть только две проблемы: во-первых, китайцы не осилили юникод, и потому часто в названиях статей мелькают китайские иероглифы. Но то фигня. А вот вторая проблема куда серьезнее: сервис хостится на чайнике админа из Heroku, и периодически не работает. В последнее время — всё чаще. К счастью, сервис опенсорсный и я просто поднял свою копию в докере.

Вот она: https://rss.gussi.ga.

Кто захочет поднять самостоятельно — можно вручную, а можно через Docker:
docker run -d --name rsshub -p 1200:1200 diygod/rsshub.

Пользуйтесь — мне самому интересно, сколько пользователей переварит самая дешёвая VPS за 60 рублей в месяц :D
Good news, everyone! Даёшь легалайз скрапинга!

https://habr.com/ru/company/globalsign/blog/466911/

А если серьезно, то всё это дело — какая-то цитадель абсурда.
Напомню, речь идет о данных профилей юзеров LinkedIn.
Юристы в апелляционном суде пытались доказать, что данные, которые:

а) выложены на всеобщее обозрение (инфа 100%, мои тоже)
б) причём выложены самим владельцем (Linkedin)
в) предназначены для того, чтобы люди их находили

...внезапно нельзя скачивать и вообще парсить.
Потому что private property, и вообще иди нах.

При этом их оппоненты — такие же юристы — добились в суде запрета на противодействие ботам-скраперам.
Судебный запрет, б$%!
Мне даже интересно, будут ли его исполнять, и если нет — как можно заставить исполнить такой запрет.
С праздником, коллеги
Сегодня в рубрике #полезное — очень простой вводный курс по Docker Swarm.

https://dockerswarm.rocks/

В девопс-среде Swarm традиционно не любят, но этот гайд и не предназначен для них. Он — для тех, кто уже перерос россыпь docker-compose.yml на личном сервере (или двух), но не хочет строить высокопроизводительный кластер на сотню хостов ради хостинга блога и парочки телеграм-ботов.

Это как раз мой случай — сейчас я постепенно заканчиваю миграцию основного сервера с nginx-proxy, cadvisor и watchtower на новый стек, с Traefik, Consul и автоматическим обновлением контейнеров.
Channel 11
Сегодня в рубрике #полезное — очень простой вводный курс по Docker Swarm. https://dockerswarm.rocks/ В девопс-среде Swarm традиционно не любят, но этот гайд и не предназначен для них. Он — для тех, кто уже перерос россыпь docker-compose.yml на личном сервере…
Ради попытки сделать кластер я даже арендовал два самых дешёвых VPS за 60 рублей на vdsina.ru.

Это была плохая идея. На VPS за $1 докер сам по себе почти не работает, а кластер вообще не запускается.

Что теперь делать с этими виртуалками - ума не приложу. Если кому-то нужен сервер - пишите в ЛС.
Плохие новости, товарищи.
На рынке самых дешёвых в мире VPN появился новый злодей — VPN99, с тарифом по $0.99 в месяц.

Я всегда считал, что нет смысла покупать VPN, когда его можно настроить на любом сервере самому. Но здесь примечательна цена - дешевле любой VPS-ки и предложений именитых конкурентов типа NordVPN.

Из других плюсов:
— очень любопытный список доступных стран, помимо стандартных для всех США, Великобритании, Германии, Нидерландов, России — Бразилия, Вьетнам, Индонезия, Мексика, Таиланд, Украина, Япония;
— предоставляют PPTP и OpenVPN, фирменный bloatware, простите, софт не нужны;

Я купился именно на список стран и PPTP — Docker у меня не дружит с OpenVPN.

Из минусов:
— запрещён p2p-трафик, по крайней мере, так пишут в FAQ;
— низкая цена доступна при подписке — не забудьте её отключить.
Простите.
Накипело.
Всё, что я имею сказать по поводу куска говна под названием drf-yasg.

Два дня я искал, почему он выводит для нашей публичной апишки девственно чистую OpenAPI схему.
Два.
Сука.
Дня.
А его класс для рендеринга ответов просто не устраивал.
Сообщать пользователю об этом, разумеется, ни к чему, пусть сам поищет, где проблема.

Не пользуйтесь drf-yasg.
Каждый раз, когда ищу Telegram-бота для чего-то интересного, сталкиваюсь с серьезной проблемой — половина, а то и больше ботов, опубликованных во всевозможных каталогах, банально не работает.

Причины разные — но большинство ботов просто заброшены и нигде не хостятся. Причем проверить это невозможно — только руками запускать бот и пробовать.

Я уже планировал писать свой каталог ботов, автоматически проверяющий боты на актуальность но тут наткнулся на Botostore, где это уже сделано. Рекомендую.

UPD: иронично, что у сервиса есть свой Telegram-бот @botostorebot и он не работает 😂
Столкнулся тут с необходимостью поправить множество импортов с кривым порядком в Python. Руками проверять изменения в десяти-двадцати файлах надоело 😊 Всё оказалось довольно просто:

1. Сравниваем текущую ветку и master и находим файлы, в которых были сделаны изменения:

git diff --name-only origin/master | grep '.*\.py'

2. При помощи утилиты isort фиксим импорты:

isort &>/dev/null

3. Фиксим прочие ошибки в code style при помощи autopep8:

autopep8 --in-place --aggressive --aggressive

Простой скрипт, который можно повесить на триггер гита или запускать вручную.
Очень старая история, но я с неё до сих пор ору.

Tiny Tiny RSS: don’t support Nazi sympathisers

Если кратко: у человека возникла проблема с его блогом и Tiny Tiny RSS (self-hosted RSS-ридер). Он пошёл жаловаться в официальный баг-трекер, а там его затроллил человек с лягушонком Пепе на аватарке.

Бедный Пепе у нас, как вы знаете, это символ альт-райтов, а альт-райты это фактически нацисты, а так как тролля не забанили, то разработчики TT-RSS... поддерживают нацистов. Логики в этом я так и не смог найти.

Автор, кстати, работает в британском офисе Google.