September 29th, 2015

404

OTR

Мухаха. У коллеги с соседнего отдела OTR-плагин в джаббере. Вот теперь я уверен в безопасности коммуникаций.

ЗЫ Первый раз в жизни оно сработало "в дикой природе" без предварительных устных договорённостей.
404

Место, где ломается цейтнот

Точнее, наоборот.

Я только что точно поймал место, где "спокойно" отличается от 'asap'. Не совсем аврал и т.д., но когда много конкурирующих дел и надо бы "побыстрее".

В тот момент, когда дописывая в софтинку важный кусок, я решил переделать командную строку на субпарсеры питона.

Так вот:
* Цейтнот: осознать, что никогда не делал субпарсеры, понять, что это "непонятно сколько времени", и пойти известным путём (добавить аргументы и функционал).
* Спокойно: пойти прочитать про argparse ещё раз и сделать на субпарсерах. Или не сделать, если оно окажется неудобным.

Другими словами: цейтнот в первую очередь съедает готовность рисковать временем. Не тратить время, а рисковать - то есть соваться в неизвестные области, которые могут сделать лучше, а могут и просто оказаться "не подходит".

UPD: Ну вот как раз в иллюстрацию. У меня сейчас не цейтнот, так что я сейчас, начав читать про subparser, пойду читать про python namespaces. В цейтноте такая роскошь идёт под нож.
UPD2: Это не питоновские namespace'ы, это всего лишь объект 'Namespace' в argparse'е. Мистика развеяна.
404

питоностилистическое

Поругайте такой код:

    class Mounts():

        mountlist = []

        def __init__(self):
            mountfile = file('/proc/mounts')
            for line in mountfile.readlines():
                dev, path = line.split(' ', 2)[:2]
                self.mountlist.append((dev, path))
            mountfile.close()

        def __contains__(self, obj):
            zipped = zip(self.mountlist)
            return obj in zipped[0] or obj in zipped[1]


(проверяет, что заданный obj есть в /proc/mounts на позиции "диск" или "каталог", сам объект потом в нескольких местах дёргается, так что таки класс, а не функция).