Не все индексы одинаково полезны

Каждый разработчик знает, что если запрос тормозит, то надо просто добавить индекс. Контринтуитивна обратная ситуация - чтобы запрос работал быстрее, надо индекс удалить. Вот именно с таким случаем я и столкнулся на работе. Попробуем смоделировать ситуацию. У нас есть всего одна таблица, в которой хранится информация по обработанным задачам. Пользователи дёргают ендпоинт, запускается Celery задача, и результат отправляется на email. Ничего сложного, всего несколько столбцов: id - уникальный ключ task_id - номер задачи user_id - кто запустил started_at - время начала finished_at - время окончания О хранении исторической информации в реляционной БД Вообще, хранить в Postgres данные, которые не меняются - не самая хорошая практика.

Моя любовь к линтерам

Я думаю, все понимают пользу стайлгайдов и оду линтерам не писал только ленивый, так что я собираюсь покинуть их число. За последние 10 лет правила форматирования кода появились у всех языков (а для некоторых даже несколько!). Причина понятна - единообразно написанный код проще читать. Глаз не цепляется за пропущенный пробел или скобку не на той строке. В Go это даже возведено в абсолют - вы не можете форматировать свою программу по-другому.

Правильный запуск python-пакетов

На днях меня попросили посмотреть один странный баг, связанный с запуском приложения. Вот так $ python mymodule интерпретатор валился с ошибкой ModuleNotFoundError: No module named 'http.server'; 'http' is not a package (или ImportError: cannot import name 'server' from partially initialized module 'http' - зависит от того как импортировать http.server). Проблема уходит, если запускать пакет правильно $ python -m mymodule. И вроде бы вопрос закрыт, можно было бы и забить, но что-то меня заставило копнуть глубже и разобраться чем эти 2 команды различаются.

Сбивается время при переключении систем в дуалбуте

У меня на ноутбуке установлено 2 ОС: Linux Mint и Windows 10. Первая - для работы, вторая - для Steam. Переключаюсь поиграть я не так чтобы часто, но в этот раз меня окончательно достал сброс времени при возврате в linux на 3 час, так что я решил всё-таки разобраться в проблеме. Мой часовой пояс Europe/Moscow UTC+3, значит где-то не происходит перевод из datetime with timezone в naive datetime или наоборот. И что же может быть общего между двумя ОС на разных разделах диска?

Заводим Caddy на DigitalOcean с Let's Encrypt

За свои 15 лет в IT я перепробовал разные веб-серверы. Сначала это был Apache (куда же без него), потом перешёл на более лёгкий nginx (а как меня однажды OpenResty спас!). Поразвлекался с lighttpd когда держал дома FreeNAS, даже заводил pet-project под YAWS. И вот в одном из репозиториев увидел новый для себя Caddy. Поспрашивал в местных чатиках кто его использует, и меня убедили, что он уже вполне production-ready. Более того - настраивать ничего не надо, сертификаты сам обновляет, быстрый, всего один бинарник!

Скачиваем оценки с kinopoisk.ru

У меня есть некоторая паранойя касательно моих данных. Мне постоянно кажется, что я могу их потерять. Поэтому, я стараюсь делать бэкапы всего, что только можно: фото, видео, проектов… и рейтинга просмотренных фильмов. Один раз меня это уже спасло - когда внезапно закрылся ImhoNet. Тогда я перебрался на Kinopoisk. И что-то не уверен в правильности своего решения. После того, как он убил аккаунт жены, добавив туда кучу мусора, я решил проверить не случилось ли это с моим, а заодно и сделать бэкап.

Образы в нашей голове

Есть у меня такое хобби - интересоваться как же на самом деле работает наш мозг. И чем больше я знакомлюсь с ним, тем больше он меня удивляет. Насколько это мощный, но в то же время и бажный механизм. Сегодня я остановлюсь на образах. Здесь под образом я понимаю собирательное представление чего-либо: предмета, человека, роли (жены, профессионала) и пр. У которого в свою очередь у каждого свои определения (привет, навешивание ярлыков и ошибки атрибуции).

Почему не iPhone. Моё ИМХО.

Одним из призов за победу в конкурсе приложений VK был iPhone 11. Я решил воспользоваться случаем и попробовать перейти на него. tl;dr Это закончилось фейлом, я вернулся на свой прежний аппарат Xiaomi Mi A2. Первое ощущение, когда вы берёте этот аппарат в руку - он тяжёлый! Мне вспомнилась какая-то Нокия из студенчества. Долговечность, надёжность, в общем, весчъ! И по началу вроде бы ok, но со временем рука начинает уставать. Да, Mi A2 всего на 30г легче, но это заметно.

SPARQL: Получаем данные из Wikipedia правильно

Disclaimer: Текстовая расшифровка лишь частично пересекается с видео. На мастер-классе всё пошло не так :) Здравствуйте, меня зовут Виктор Тыщенко, и сегодня я бы хотел поговорить как можно удобно получать факты из самой большой базы знаний - Wikipedia. Давным давно я увидел игру Puzzle Mercator, которую сделал один из сотрудников Google. Мне очень понравилась идея, так что я решил её скопировать, расширить и доработать. Например, показывать информацию об объектах в отдельном окошке, который бы напоминал инфобокс Wikipedia.

Примеры SPARQL

Страны Европы с флагами 🔗 Населённые пункты Исландии 🔗 Население Германии 🔗 Страны Африки с регионами 🔗 Русские города, основанные с 900 до 1100 г. 🔗