August 14, 2013

Люди с чувством юмора — умные люди.

В последнее время начал замечать что люди с чувством юмора, те кто в любом момент может выдать хорошую шутку или "подколоть" собеседника это умные люди. Да умные, а не тупые, как может показаться изначально.

Мне кажется что это не просто так и здесь есть зависимость. Дело в том что шутка это маленькая идея, идея того, что сказать и развеселить.  Чтобы придумать шутку, необходимо не только услышать собеседника (даже это многие не умеют), но и представить ситуацию, о которой идет речь в диалоге, более глобально. Именно так приходят идеи. Все точно так же как и с любыми идеями. Нельзя придумать идею о том что сделать с камнем просто смотря на него и не представляя что происходит вокруг вас, какие проблемы у людей (или хотя бы у себя самого)  и т.д. Надо многое знать.

Тот кто шутит в диалоге он делает в разы большую работу чем тот кто просто ведет диалог. Делая больше чем от него требуется в простом диалоге он будет так же поступать и в других делах. Если посмотреть на это с точки зрения компании, то сотрудник-шутник в на много более полезен чем обычный человек который при возможности лучше сделает умное лицо.

У шутящего человека разит мыслительный процесс, у него развит мозг. Шутя он постоянно его тренирует. Поэтому шутите, развивайте свой мозг. Ему нужна тренировка как и любым мышцам организма. Чтобы выделялись мышцы надо их тренировать, качать. Так и с мозгом, чтобы появилось больше извилин, их необходимо тренировать, иначе у вас будет только одна извилина и та на жопе.

August 9, 2013

Python. Сравнение JSON, Pickle и MessagePack для сериализации коллекций.

Сегодня возникла необходимость сохранять коллекции из Python в одной колонке в БД Cassandra. Например простой list со строками. В Pycassa для этого есть возможность создать свой тип данных и довольно легко. Встал вопрос в каком виде сохранять эти объекты.

В Python-е есть стандартный модуль `pickle` для сериализации инстансов любых классов. Кроме того JSON повсюду. Недолго погуглив нашел еще такой проектик как MessagePack который рекламируется как более быстрая и более компактная замена JSON.  Если бы в этом виде нужно было отдавать куда-то наружу то здесь выиграл бы JSON. Но поскольку эта сериализация необходима только в целях хранения в БД то единственное на что нужно посмотреть и сравнить это производительность. 

Для этого создал небольшой тестовый скриптик. Результаты немного удивили.

Результаты работы с листом [1,2,3].

Сериализация Десериализация
pickle 16.3982307911 23.4636600018
json 5.60128283501 4.25825190544
msgpack 1.29555702209 0.362143039703

Еще пробовал лист строк ['1','2','3'] и тапл строк ('1','2','3').  Результаты для MessagePack и JSON оказались примерно такими же, а вот pickle повел себя еще хуже (добавилось 5-7 секунд).

В моем случае выбор очевиден — MessagePack. 

Стоит заметить что pickle может сериализовать любые объекты питона в то время когда json и MessagePack только примитивные типы. Видимо это причина его медленной работы.