February 6, 2014

О Cassandra на русском

В своем проекте не так давно мы начали использовать Cassandra в роли базы данных. Вся информация о кассандре на английском. Для меня не составляет это никаких сложностей, но  уверен что найдется много желающих изучить эту БД и у кого есть сложности с пониманием информации и документации на английском. Поэтому я решил написать несколько статей о Cassandra.

Если у вас есть пожелания по определенным вопросам которые необходимо покрыть прошу оставляйте их в комментариях к этому посту.

Вот небольшой список тем для покрытия которые пришли сразу в голову:
  • Почему мы выбрали Cassadndra в роли основной БД.
  • Как устроена Cassandra. Структура данных.
  • CQL или Thrift. Какая между ними разница.
  • Индексы.
Темы расположены в случайном порядке что не гарантирует порядок выхода статей.
Ваши пожелания и вопросы касающиеся кассандры приветствуются.

January 30, 2014

10 правил успеха в работе и в жизни

Вот нашел такой списочек. Очень хороший списочек. Каждый тут найдет что-то новое и уж точно полезное.

1. Вылезайте из своей зоны комфорта и держитесь от неё подальше.
Когда мы находимся в своей зоне комфорта, не происходит ничего, что имело бы значение. Люди часто говорят: «Мне важна стабильность». Мой ответ на это прост: «Стабильность для мертвецов».

2. Никогда не сдавайтесь.
С первой попытки почти никогда и ничего не получается. Если то, что вы делаете, не работает, это не значит, что так будет и дальше. Это значит всего лишь то, что вы выбрали неправильный подход. Если бы это было просто, этим бы занимались абсолютно все, и у вас не было бы шанса отличиться.

3. Всегда двигайтесь вперёд.
Никогда не прекращайте развиваться. Никогда не прекращайте совершенствоваться. Никогда не прекращайте заниматься чем-нибудь новым. В тот момент, когда вы перестанете пытаться сделать своё дело лучше, оно начинает погибать. Поставьте себе цель становиться лучше каждый день, пусть даже в чем-то малом. Руководствуйтесь японской концепцией кайдзен: небольшие ежедневные улучшения в результате приводят к большому успеху.

4. Принимайте решения быстро.
Запомните слова генерала Джорджа Паттона: «Молниеносно выполненный план сегодня в тысячу раз лучше идеального плана на завтра».

5. Измеряйте всё, что для вас значимо.
Клянусь, это работает. Всё, что постоянно учитывается, измеряется и наблюдается, становится лучше.

6. Все, что оставлено без присмотра, разрушается.
Если вы хотите отыскать еще неизвестные вам проблемы, тщательно присмотритесь к вещам, на которые давно не обращали внимания. Я вам гарантирую, что именно там и окажутся проблемы.

7. Следите за своими конкурентами, но еще внимательнее следите за собственным делом.
Когда вы изучаете своих конкурентов, помните, что издалека всё кажется идеальным. Даже планета Земля, если достаточно далеко от неё отлететь, выглядит как мирное место.

8. Никогда и никому не давайте себя запугать.
В нашем правовом обществе, в условиях равенства, у вас столько же прав заниматься своим делом, сколько и у всех остальных — при условии, конечно, что ваше дело не противозаконно.

9. Не ждите от жизни справедливости.
Жизнь несправедлива. Поблажки будут, только если вы сами себе их устроите. Вы достигнете цели только тогда, когда перестанете размышлять о справедливости.

10. Решайте сами свои проблемы.
Как только вы сможете сами находить ответы на свои вопросы, вы станете конкурентоспособны. Масура Ибука, один из основателей Sony, сформулировал это правило наилучшим образом: «Вы никогда не добьётесь успеха в науке, бизнесе или чём-либо другом, если будете следовать за остальными». Есть еще старая восточная пословица, которую я часто вспоминаю по этому поводу: «Мудрый человек — сам себе советник».

September 30, 2013

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

Сегодня наткнулся на очень инетересный вопрос в Quora. Человек задал вопрос "А правда ли что Netflix делит все своих подписчиков на 10 групп и на каждую группу назначает внутреннюю команду которая занимается увеличением показателей лояльности этих подписчиков".

Первый и единственный ответ от директора по продуктам в Netflix. И краткий ответ НЕТ. А ведь какая хорошая идея в самом вопросе? :) Только для этого должен быть довольно большой продукт и возможность нанять хотябы 3 человека или команды которые будут соревноваться между собой. Надо будет попробовать.

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 только примитивные типы. Видимо это причина его медленной работы.