Понадобилось сделать определенные запросы в БД к множеству таблиц, в имени которых присутствует дата вида ГГГГММ.

START_YYYYMM = '201501'
END_YYYYMM = '201807'
date_cur = datetime.date(int(START_YYYYMM[:4]),int(START_YYYYMM[4:]),1)
end_date = datetime.date(int(END_YYYYMM[:4]),int(END_YYYYMM[4:]),1)
while date_cur < end_date:
    dc_ym = date_cur.strftime('%Y%m')
    print('select * from log_session_1_%s;' % dc_ym)
    try:
        date_cur = date_cur.replace(month=date_cur.month+1)
    except:
        date_cur = date_cur.replace(year=date_cur.year+1, month = 1)
Кинули ссылку на сервис по поиску ломанных wi-fi роутеров.


Проверь - не поломан ли твой! Можно по карте пройтись, но есть и поиск по маку. Хотя если ты знаешь что такое mac-адрес, то скорее всего твой роутер не поломали.
Перевод статьи по методу Ильи Франка.

Источник: ссылка
Structuring (структурирование) a Flask Project 
Introduction
Flask provides (предоставляет) such (такую) great (большую) flexibility (гибкость) when (когда/при) developing a web application, including (включая) the structure of the application. Flask applications can range (варьироваться) from (от) a single file to (к) larger (более крупным) projects with multiple Blueprints (дословно: "эскиз". используется для разделения приложения на части). In this blog post, I’m going to (собираюсь) describe (описать) how I like (как мне нравится) to structure (структурировать) a Flask application using (используя) Blueprints and an Application Factory function. 
For reference (для справки), the project that (который) I created (создал) as part (как часть) of writing (написанного) this blog post is available (доступен) on GitLab: Flask User Management Example.
Structuring a Flask Project

Introduction

Flask provides such great flexibility when developing a web application, including the structure of the application. Flask applications can range from a single file to larger projects with multiple Blueprints. In this blog post, I’m going to describe how I like to structure a Flask application using Blueprints and an Application Factory function.

For reference, the project that I created as part of writing this blog post is available on GitLab: Flask User Management Example.



Перевод по методу Ильи Франка. Сначала часть текста с вставками-переводами, потом без перевода.

Django development (разработка) environment (окружение/среда) (среда разработки) with Docker — A step by step (шаг за шагом) guide (руководство) (пошаговое руководство).

Django development environment with Docker — A step by step guide

About Docker

Docker is the software development and devops ("development и operations" - девопс) tool (инструмент) everyone wants to use for their (своих) projects. It’s a platform that allows (позволит) you to easily create isolated (изолированное) environments (aka Containers - так называемые Контейнеры) that can run specific pieces (определенные части) of software. In other words (другими словами), it provides (предоставит) a lightweight (легкий) mechanism to “virtualize” environments in a host computer (хост).

Docker is the software development and devops tool everyone wants to use for their projects. It’s a platform that allows you to easily create isolated environments (aka Containers) that can run specific pieces of software. In other words, it provides a lightweight mechanism to “virtualize” environments in a host computer.

Являюсь на данный момент судьёй отборочного этапа "Командного чемпионата России" 2018 года. В работу входит в том числе оформление турнирной таблицы. Таблицу я выгружаю из программы "Горефери" в Excel. Затем копирую в свою мега-таблицу с различными формулами. То, что получаю на выходе, публикую в гугл-таблицах. Ну и сегодня случился небольшой казус. 

Опубликовал итоговую таблицу после первого тура. Затем мне сообщили, что у двух команд, вместо "10.5" очков, показывает "11". Давай разбираться. Округляет при делении на два? Не должен, вон у других отображает "0.5" нормально. Копирую формулу в другую ячейку - и там показывает "10.5". Думаю - формат ячейки не тот! Проверяю - общий формат и главное в окне выбора формата издевательски показывает мне "10.5". И тут, дёрнуло меня - делаю колонку шире. Вуа-ля - "10.5", как и должно быть.

Такого я от Excel'я не ожидал. Мало того, что отображал "11", когда не влезало "10.5". Так еще, редиска такая, копировало в буфер обмена тоже "11"!
Gnome Commander открывал по умолчанию pdf в GIMP'е. Раздражало открывать каждый раз через контекстное меню. Наконец в очередной раз, при открытии pdf в gimp'е, раздражение пересилило лень. Итог:

'/home/username/.local/share/applications/mimeinfo.cache'
[MIME Cache]
application/pdf=evince.desktop
в той же папке создать файл 'evince.desktop':
[Desktop Entry]
Name=pdf viewer
MimeType=application/pdf;application/x-pdf;
Exec='/usr/bin/evince'
Type=Application
Terminal=false
Сейчас нормально открывает. Посмотрю еще - не потрёт ли перезагрузке. Если ничего не допишу сюда в течение пары дней - значит не трёт.

"Техника, блин!"

17.9.17
Представляю свой первый литературный опыт. Критику приветствую.

"Техника, блин!"

Пришел с работы уставший. Стряхнул ботинки на шузклинер. С привычным тихим жужжанием ботинки заехали в нишу для чистки, сушки и намазывания кремом. Утром меня будут ждать, как новые. Прошел в гостиную и устало плюхнулся на диван. Настроение паршивое. На работе завал, и добирался до дома долго. И ведь надо было случайно согласиться на обновление автопилота во время поездки. Совсем они уже там рехнулись в этом Гуглософте, чтобы такое предлагать во время движения. Пришлось ждать на обочине полчаса. В рекламе обещают обновления за 5 минут, но это на 16G, а в нашей провинции всё еще 13G. А после обновления еще и настройки своих мест сбились и никак не хотели синхронизироваться. Пришлось вручную настраивать. Техника, блин!

Чтобы немного развеяться решил посмотреть фильм. Положил ладонь на сканер. На экране высветились показатели настроения - 5 основных шкал и итог. Так и есть, паршивое, -45 баллов. Из текущей фильмотеки ничего не подошло. И неудивительно: -45 это за гранью для меня. Появилось предложение сгенерировать из имеющихся. Для основы предложили три: "Матрица", "Побег из Шоушенка" и "Реальная любовь". Прочитав последний вариант, сильно удивился. Комедийную мелодраму предлагает переделать под -45 баллов. Что же там такое должно получиться? Из любопытства запустил генерирование, и пошел на кухню за ужином. Открыл мульти-шкаф - там уже меня ждал горячий аппетитный стейк ... с пастой. Аппарат на удивление быстро стал учитывать мои вкусы. Консультант говорил, что его через 2 месяца стало устраивать меню. А у меня уже через 10 дней какие-то чудеса показывает. По калориям вопросов нет - арифметика. Но вкус! Я, конечно, не сильно притязателен к пище, но он уже чуть ли не желания мои угадывает. Ведь пока ехал, у меня действительно возникала мысль о стейке. Но паста?! К стейку?! Действительно, чужой алгоритм - потёмки. Техника, блин!

Закинув всё на поднос, вернулся в гостиную. Оставалось 2% до окончания генерация фильма. Уселся поудобнее и приступил к ужину. Тем временем свет в комнате приглушился до минимума и на экране появились знакомые заставки. Махнул рукой, чтобы пропустить. Ну вот и первые отличия - музыка стала мрачнее. Я погрузился в просмотр.

Когда появились титры, свет стал ярче. Я аж заморгал - всё забываю настроить плавность возвращения нормальной яркости после окончания фильма. Кто же задаёт такие настройки по-умолчанию?! Заметил, что всё еще держу вилку с куском остывшего стейка, а на тарелке еще пол-порции. Придется идти греть. Вот же умудрились переделать. В виде триллера я еще "Реальную любовь" не смотрел. Зашло на ура. Приятно было наблюдать знакомых персонажей в новых перипетиях сюжета. При чем по внешности и мимике изменения были незначительные. Больше всех, как обычно досталось Кире Найтли. По-моему, движку явно не нравится её настоящая актерская игра. Но тут с ним сложно спорить. По привычке нажал на сохранение в коллекцию, хотя редко возвращаюсь к сохраненным - предпочитаю генерировать под текущее настроение. Иногда и отличий немного, но всегда замечаю их с одобрением. А в прошлый раз это кино, помню, с друзьями смотрели под пиво, так там генератор учёл наше коллективное настроение и переделал его в нигерскую идиотскую комедию - при появлении негритянки, с чертами, напоминающую всё ту же Киру Найтли - лежали все. Техника, блин!

Автор: Лазарев Илья
Когда требуется создать словарь списков в цикле, то при решении в лоб приходится проверять - создан ли уже список и можно туда добавлять новый элемент или надо его сначала создать.

Например, имеем данные:


Получаем из него словарь методом, описанным выше:


А сейчас получим тот же результат с помощью метода .setdefault():


Из справки: "dict.setdefault(key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None)."