Часто при разработке ПО встает одна интересная проблема: где взять географические данные?
Обычно всё начинается с простого списка городов, чтобы отличать Васю из Москвы от Маши из Ессентуков. Дальше только лучше — нужны улицы и дома, чтобы можно было автодополнять адрес при заказе. А ещё лучше было бы со статистическими данными... но вот тут мы уже размечтались, всё стоит денег.
Не буду долго рассказывать про то, насколько всё плохо в западном мире с децентрализацией и монополизацией. Просто покажу пример сервиса, который агрегирует (sic!) подписки на сервисы геоданных (ааа!!) за $39 в месяц (беззвучно ору). Если это не пи🤬ец, то я не знаю, что такое пи🤬ец.
А что с бесплатными вариантами? Ну если кратко — они есть и они хуже платных. Вот что предлагает на сегодня выдача Гугла:
1. SimpleMaps раздаёт бесплатно урезанную версию своей платной базы. Правда, ничего выдающегося там нет — всего 13 тысяч городов. Зато бесплатно и легально, под лицензией CC-BY 4.0, то есть и в коммерческой деятельности тоже. Для каждого города доступны координаты, численность населения, площадь, административный статус, коды ISO.
2. В случае России на помощь нам приходит государство — а именно базы ФИАС (Федеральной информационной адресной системы). Теоретически в ней должен быть абсолютно любой адрес, абсолютно любого дома, существующего в России — но это... ммм, не совсем так. Подробный рассказ лежит на Хабре:
«ФИАС и семь смертных граблей разработчика»
Впрочем, она бесплатна, содержит в себе огромное количество данных, даже обновляется и актуализируется — и многие риэлторские сайты используют ФИАС в качестве источника данных. Сам видел.
3. Если же вам нужен в первую очердь список городов, и вы не готовы ради него выгружать 10+ Гб, а SimpleMaps уже мало, взгляните на «Общероссийский классификатор территорий муниципальных образований». В ОКТМО, опять же на бумаге, обязан быть каждый населенный пункт нашей страны. Доступна опять же бесплатно и легально.
4. За пределами России имеет смысл поискать местные правительственные базы данных — вполне возможно, они еще не совсем устарели. Вот, к примеру, «База данных городов Украины» с последним обновлением от 2018 года — проект энтузиаста, содравшего данные из нескольких госБД различной степени тухлости. Достоверность и полнота данных никем не гарантированы, я предупредил.
5. Ну и не стоит забывать про OpenStreetMap — хотя это и просто карта, многие пользователи вносят в неё данные, относящиеся к ГИС. Бесплатно и свободно. Как и в прошлом случае, гарантий достоверности и полноты нет.
Обычно всё начинается с простого списка городов, чтобы отличать Васю из Москвы от Маши из Ессентуков. Дальше только лучше — нужны улицы и дома, чтобы можно было автодополнять адрес при заказе. А ещё лучше было бы со статистическими данными... но вот тут мы уже размечтались, всё стоит денег.
Не буду долго рассказывать про то, насколько всё плохо в западном мире с децентрализацией и монополизацией. Просто покажу пример сервиса, который агрегирует (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 останется на ночной сеанс жесткого БДСМ.
https://fias.nalog.ru/updates.aspx
Искусство экспорта данных из OSM останется на ночной сеанс жесткого БДСМ.
Будущее, которое мы все (не) заслужили.
С нетерпением жду рекламной сети для Python-библиотек.
https://tjournal.ru/tech/113736-javascript-biblioteka-s-otkrytym-ishodnym-kodom-standard-nachala-pokazyvat-reklamu-v-terminale
С нетерпением жду рекламной сети для Python-библиотек.
https://tjournal.ru/tech/113736-javascript-biblioteka-s-otkrytym-ishodnym-kodom-standard-nachala-pokazyvat-reklamu-v-terminale
TJ
JavaScript-библиотека с открытым исходным кодом Standard начала показывать рекламу в терминале — Технологии на TJ
Она является популярным инструментом разработчиков для автоматического исправления кода.
Channel 11
Привьет, я эсстонский вируссс, который похакал тебя. Хочешь жить? Переведи $700. Пруфов хака не будет. Интересно даже, кто поведётся.
Всё плохо. Трое человек повелись. Возможно, конечно, это фейковые платежи, созданные самими спамерами, но вряд ли.
Это был краткий гайд «Как, не вставая с дивана, украсть $2100 у наивных людей».
Это был краткий гайд «Как, не вставая с дивана, украсть $2100 у наивных людей».
Да, это реальный фрагмент кода из движка DOOM 3.
https://github.com/id-Software/DOOM-3/blob/master/neo/game/gamesys/TypeInfo.cpp#L30
https://github.com/id-Software/DOOM-3/blob/master/neo/game/gamesys/TypeInfo.cpp#L30
Хозяйке на заметку: экспортируем докер-образы в файл.
Конечно, Docker и сам умеет экспортировать в файл, но сжимать автоматически — чуть удобнее.
Восстановить образы из файла:
docker save $TAG | gzip -c > $NAME.tgzКонечно, Docker и сам умеет экспортировать в файл, но сжимать автоматически — чуть удобнее.
Восстановить образы из файла:
gunzip -c $FILE | docker loadНашел тут прекрасное.
https://github.com/jeffshek/django-drf-antipatterns
Аффтар, к сожалению, не довел до конца свой труд, потому я ему помогу. Это будет несложно - потому что вся Джанга является одним огромным антипаттерном
https://github.com/jeffshek/django-drf-antipatterns
Аффтар, к сожалению, не довел до конца свой труд, потому я ему помогу. Это будет несложно - потому что вся Джанга является одним огромным антипаттерном
GitHub
jeffshek/django-drf-antipatterns
Django and DRF Antipatterns. Contribute to jeffshek/django-drf-antipatterns development by creating an account on GitHub.
Нашёл тут прекрасную штуку — локальный поисковик по коду hound.
Часто такое бывает, что нужно поискать не по своему проекту, что и так можно сделать в любой IDE, но и по чужому. Особенно — когда из документации по
И вот тут hound идеален. Написан на Go, ставится в виде одного исполняемого файла (или Docker-образа для эстетов), в папке с заботливо скачанными с интернетов примерами создаётся файл config.json с примерно следующим содержимым:
Часто такое бывает, что нужно поискать не по своему проекту, что и так можно сделать в любой 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"
}
}
}
И всё просто работает. Для особых ценителей есть поиск по регуляркам и в определенной папке.GitHub
GitHub - hound-search/hound: Lightning fast code searching made easy
Lightning fast code searching made easy. Contribute to hound-search/hound development by creating an account on GitHub.
RSS для Telegram-каналов [2]
Недавно тут выяснил удивительную вещь: RSS все ёщё жив и кому-то нужен (кроме меня). Эти странные люди — китайцы, и они сделали универсальный агрегатор в RSS из соцсетей под названием RSSHub.
Список поддерживаемых сервисов впечатляет — для программистов есть поддержка GitHub и GitLab (не спрашивайте, зачем); геймерам доступны RSS-ленты из Steam и Nintendo eShop, а для трудящихся масс — Instagram, Twitter, YouTube и Telegram. Для Telegram доступна информация о стикерах и каналах, что позволяет без проблем превратить любой публичный Telegram-канал в ленту.
Формат ссылки на Telegram-канал:
К примеру, для моего канала ссылка выглядит вот так:
https://rsshub.app/telegram/channel/ch_11
Форматы ссылок и настройки для остальных сервисов есть в документации.
Тестирую уже недели две, пока что брат жив, а каналы даже успеваются читать. Есть только две проблемы: во-первых, китайцы не осилили юникод, и потому часто в названиях статей мелькают китайские иероглифы. Но то фигня. А вот вторая проблема куда серьезнее: сервис хостится на чайнике админа из Heroku, и периодически не работает. В последнее время — всё чаще. К счастью, сервис опенсорсный и я просто поднял свою копию в докере.
Вот она: https://rss.gussi.ga.
Кто захочет поднять самостоятельно — можно вручную, а можно через Docker:
Пользуйтесь — мне самому интересно, сколько пользователей переварит самая дешёвая VPS за 60 рублей в месяц :D
Недавно тут выяснил удивительную вещь: 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