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

Автор: @squizduos
Download Telegram
Часто при разработке ПО встает одна интересная проблема: где взять географические данные?

Обычно всё начинается с простого списка городов, чтобы отличать Васю из Москвы от Маши из Ессентуков. Дальше только лучше — нужны улицы и дома, чтобы можно было автодополнять адрес при заказе. А ещё лучше было бы со статистическими данными... но вот тут мы уже размечтались, всё стоит денег.

Не буду долго рассказывать про то, насколько всё плохо в западном мире с децентрализацией и монополизацией. Просто покажу пример сервиса, который агрегирует (sic!) подписки на сервисы геоданных (ааа!!) за $39 в месяц (беззвучно ору). Если это не пи🤬ец, то я не знаю, что такое пи🤬ец.

А что с бесплатными вариантами? Ну если кратко — они есть и они хуже платных. Вот что предлагает на сегодня выдача Гугла:

1. SimpleMaps раздаёт бесплатно урезанную версию своей платной базы. Правда, ничего выдающегося там нет — всего 13 тысяч городов. Зато бесплатно и легально, под лицензией CC-BY 4.0, то есть и в коммерческой деятельности тоже. Для каждого города доступны координаты, численность населения, площадь, административный статус, коды ISO.

2. В случае России на помощь нам приходит государство — а именно базы ФИАС (Федеральной информационной адресной системы). Теоретически в ней должен быть абсолютно любой адрес, абсолютно любого дома, существующего в России — но это... ммм, не совсем так. Подробный рассказ лежит на Хабре:

«ФИАС и семь смертных граблей разработчика»

Впрочем, она бесплатна, содержит в себе огромное количество данных, даже обновляется и актуализируется — и многие риэлторские сайты используют ФИАС в качестве источника данных. Сам видел.

3. Если же вам нужен в первую очердь список городов, и вы не готовы ради него выгружать 10+ Гб, а SimpleMaps уже мало, взгляните на «Общероссийский классификатор территорий муниципальных образований». В ОКТМО, опять же на бумаге, обязан быть каждый населенный пункт нашей страны. Доступна опять же бесплатно и легально.

4. За пределами России имеет смысл поискать местные правительственные базы данных — вполне возможно, они еще не совсем устарели. Вот, к примеру, «База данных городов Украины» с последним обновлением от 2018 года — проект энтузиаста, содравшего данные из нескольких госБД различной степени тухлости. Достоверность и полнота данных никем не гарантированы, я предупредил.

5. Ну и не стоит забывать про OpenStreetMap — хотя это и просто карта, многие пользователи вносят в неё данные, относящиеся к ГИС. Бесплатно и свободно. Как и в прошлом случае, гарантий достоверности и полноты нет.
P.S. ОКТМО, SimpleMaps и «Базу данных городов Украины» выложу в приложениях к посту. ФИАС в телеграм не влез никак (7 Гб!), его дампы и дельта-обновления вы можете скачать по ссылке:

https://fias.nalog.ru/updates.aspx

Искусство экспорта данных из OSM останется на ночной сеанс жесткого БДСМ.
Когда решил автоматизировать написание новостей.
Новые истории с чудесное.it
Новости свободного ПО
Потому что для мемов существует ВК и Telegram
Привьет, я эсстонский вируссс, который похакал тебя. Хочешь жить? Переведи $700. Пруфов хака не будет.

Интересно даже, кто поведётся.
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