Skip to content

pipenv: python packaging tool

pipenv demo
pipenv призван упростить управление виртуальным окружением и зависимостями для python проектов.

Больше не нужно вручную собирать requirements.txt, все нужные библиотеки после установки, автоматически добавляются Pipfile, который содержит настройки всего проекта. При необходимости можно легко и удобно лочить, конкретные версии библиотек.

Те кто много работал со связкой pip + virtualenv должны оценить pipenv по достоинству.

sshportal: удобный доступ в DMZ

Не знаю как вам, а мне часто приходилось пробираться внутрь DMZ сети, через разные публично доступные серверы. Причины для этого могут быть разные, не работает VPN, фильтруется трафик в отеле и т.д. Обычно всё решалось в итоге через SSH туннели или SSH с одной машину на другую.

sshportal представляет собой простой способ организации доступа по SSH внутрь DMZ сети. По сути это всё те же самые ssh туннели, но централизованные и более удобные в управлении.
Более подробную доку можно посмотреть на гитхабе.

Мысли о подходе к изучению/обученю

Когда работаешь в команде, то очень важно чтобы вся команда находилась в одном контексте. Часто бывает, что когда кто-то один из команды прочитает новую книгу о какой-нибудь новой методологии, то он волей не волей начинает мыслить её канонами, но, к сожалению, остальная часть команды этого может не понимать и применение методологии никак не помогает «новоиспеченному адепту» понять необходимость её использования или соответствия собственным задачам.
В моем опыте было очень много примеров, когда одну и ту же книгу члены команды читали в разные периоды времени, им не удавалось погрузиться в единый контекст и использовать новые знания. Но когда все в команде прочитывали книгу до конца и имели одинаковое понимание контекста, то исчезало недопонимание в восприятии идей других членов команды. При наличии схожих знаний и общего контекста гораздо легче понять мотивацию других участников и воспринимать такие идеи становится гораздо легче и они выглядят более понятными. В современном мире мы обрабатываем так много различной информации из различных источников, что всего и не упомнишь.
Если ты руководишь несколькими разными командами с различной функциональностью, например, UX и программисты, то всегда хочется понимать в каком состоянии находится тот или иной контекст, синхронизированы ли знания ребят, в какую сторону перевес, почему это происходит. Вы как руководитель сами формируете контекст для отдела, саморазвитие отдела очень важное и ответственное дело. Чем лучше и правильнее вы сформируете процесс самообучения, тем быстрее вы сможете адаптировать новых специалистов, а главное меньше тратить на это времени.
Очень важно определять последовательность изучения материалов по той или иной теме, от введения, до глубоких деталей. Предоставив просто список литературы, человек может отранжировать его по заголовкам или любым другим субъективным параметрам, тем самым увеличив время изучения и погружения в контекст.
Структурный и последовательный подход к обучению всегда был самым эффективным, дома ведь тоже строятся с фундамента. Для определения жесткой последовательности изучения материалов необходимо проводить глубокий анализ на как можно большем количестве людей для наиболее объективного определения последовательности изучения материалов

Хак при добавлении Canvas URL в Facebook

Для оптимизации и ускорения работы приложение в социальное сети Facebook хорошей практикой является размещение приложения на CDN, но возникает небольшая проблема при добавлении такого приложения. Для проверки приложения Facebook отправляет POST запрос на указанный Canvas URL, но мало какие CDN правильно отрабатывают такие запросы, я даже не знаю какие обрабатывают их правильно. Ведь для статики по логике не нужны POST запросы. Кто-то для решения этой проблемы размещает индексный файл Canvas URL отдельно от всей статики, где POST запрос без проблем обрабатывается. Впринципе решение, но приходится отслеживать и синхронизировать два независимых хранилища. Как показала практика эту проблему можно решить при помощи 301 редиректа.
Отправная точка есть, а тут уж каждый может решать как хочет:
1) Использовать сокращатель ссылок, например, bit.ly, который делает 301 редирект на нужную ссылку + помимо этого bit.ly поддерживает SSL, что позволяет нам указывать его и как Secure Canvas URL. Итоговая ссылка, которую пропускает Facebook выглядит так: https://bit.ly:443/shortenhash
2) Ваше приложение не на все 100% состоит из статики, а значит есть сервер где есть какой-нибудь web-server, можно на базе этого сервер реализовать такую же схему как и в первом пункте

Психологические книги о человеческом поведении

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

Общественное животное (Дэвид Брукс)Общественное животноеОдин из главных научно-популярных бестселлеров последнего времени, книга о том, как наши инстинкты и эмоции формируют наш характер и, в конце концов, определяют всю нашу жизнь — и личную, и общественную. Эта книга о том, почему мы живем именно так. И о том, как начать жить иначе.

Психология влияния. Убеждай. Воздействуй. Защищайся (Роберт Б. Чалдини)Психология влияния. Убеждай. Воздействуй. ЗащищайсяЧто может заставить человека сказать «да»? Каковы принципы и наиболее эффективные приемы влияния и убеждения? Эта книга адресована всем тем, кто по роду своей деятельности должен убеждать, воздействовать, оказывать влияние.

Психология убеждения. 50 доказанных способов быть убедительным (Ноа Гольдштейн, Стив Мартин, Роберт Б. Чалдини)Психология убеждения. 50 доказанных способов быть убедительнымПринято считать, что психология интуитивно понятна любому здравомыслящему человеку, а потому отдельно изучать ее не стоит. Великое заблуждение! Любой человек, изучая стратегии убеждения с научной точки зрения, сможет в разы эффективнее убеждать окружающих и строить отношения с другими людьми.

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

Поведенческая экономика. Почему люди ведут себя иррационально и как заработать на этом (Дэн Ариэли)Поведенческая экономика. Почему люди ведут себя иррационально и как заработать на этом Основу множества экономических теорий, прогнозов и рекомендаций составляла рациональность здравомыслящих людей. На самом деле решения наши нередко иррациональны — причем предсказуемо иррациональны, мы то и дело действуем по одним и тем же неочевидным сценариям.

Вся правда о неправде. Почему и как мы обманываем (Дэн Ариэли)Вся правда о неправде. Почему и как мы обманываемЭта книга способна навести на размышления о правде и лжи, бросить вызов его прежним представлениям о честности и побудить взглянуть на себя без прикрас. Большинство из нас считают себя честными людьми, но на самом деле мы все лжем. Примеры нечестного поведения можно встретить повсюду — в разных городах, учебных аудиториях и на рабочих местах. Никто из нас не имеет иммунитета против лжи, будь то «благая ложь во спасение» или мелкие махинации в отчетах о командировочных расходах.

Сила привычки. Почему мы живем и работаем именно так, а не иначе (Чарлз Дахигг)Сила привычки. Почему мы живем и работаем именно так, а не иначеИзменить свои привычки это не просто и не быстро, но возможно. Что именно в «привычке» заставляет вас поступать так, а не иначе? Или что формирование привычки в чем-то незначимом — ну, например, убирать постель по утрам — кардинально перестраивает образ жизни в целом. Невероятно практичная и умная книга.

Нейромаркетинг. Как влиять на подсознание потребителя (Роджер Дули)Нейромаркетинг. Как влиять на подсознание потребителяВ книге объясняется, как приспособить нейронауку и поведенческие исследования к целям маркетинга и понять закономерности принятия покупательских решений. Нейромаркетинг изучает реакции мозга на различные маркетинговые стимулы, как информационного, так и чувственного плана, чтобы понять, на что реагируют покупатели и почему они принимают те или иные решения. Книга содержит краткие и простые выводы, предлагая основные стратегии работы с покупателями при личных и онлайн-продажах, с использованием печатной рекламы и иных маркетинговых средств.

Парадокс выбора. Почему "больше" значит "меньше" (Барри Шварц)Парадокс выбора. Почему «больше» значит «меньше»Проблема выбора существовала всегда. Буриданов осел выбирал когда-то между двумя стогами сена; современный человек, обладающий свободой воли и большим количеством альтернатив, может запросто впасть в депрессию, выбирая, какие джинсы купить, что съесть или выпить и как провести вечер. Ежедневное принятие решений — как важных, так и самых заурядных — становится все более сложным делом благодаря огромному обилию альтернатив. Парадоксальным образом изобилие ассортимента товаров и услуг ограничивает свободу нашего выбора. Мы привыкли считать, что огромное разнообразие возможностей сулит большее удовлетворение, однако оно может лишать нас свободы, отнимая время и силы, и заставляя подвергать сомнению любые наши решения еще до того, как они приняты. В конечном итоге все это может привести к полной беспомощности, раздражению, постоянному стрессу и даже к тяжелой депрессии.

Вынос мозга! Как маркетологи манипулируют нашим сознанием и заставляют нас покупать то, что им хочется (Мартин Линдстром)Вынос мозга! Как маркетологи манипулируют нашим сознанием и заставляют нас покупать то, что им хочетсяЗнаете ли вы, что маркетологи могут рекламировать свои товары даже детям, находящимся в утробе матери? Знаете ли вы, как маркетинговая кампания популярного бренда водки изменила образ потребления алкоголя в целой стране? Известно ли вам, как розничные сети разжигают панику и страхи перед эпидемиями и катастрофами, чтобы заработать на этом? Знаете ли вы, что зависимость от мобильного телефона сильнее, чем алкогольная и наркотическая зависимость?

Пять причин, которые тормозят развитие стартапа

Сейчас создать стартап гораздо проще чем когда бы то ни было. И однажды начав, вооружившись своими идеями, уникальным видением и персональной мотивацией, вы ощутите быстрый рост и продуктивность, которая будет сопровождать всё начало вашего пути. Но всегда приходит момент, когда ожидания расходятся с реальностью и именно в такие моменты будущее вашего стартапа наиболее уязвимо. Давайте рассмотрим пять основных ошибок, которые могут замедлить развитие вашего стартапа.

1. Ожидание того, что всё будет идеально
Иногда очень трудно сдвинуться с места из-за ожидания того, что всё должно быть сразу идеально.
Вся сложность в том, что идеально быть не может, этому всегда будет что-то мешать. А ведь стартап на то и стартап, что он будет развиваться из идеи и совершенствоваться в процессе развития.

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

3. Делать всё самому
Не пытайтесь всё завязывать на себя одного, делегируйте задачи своим специалистам. Вы не можете знать все области сразу.

4. Становиться слишком серьезным
Принимая всё больше серьезных и даже критических решений, старайтесь оставаться открытым. Это добавит легкости в ваш коллектив.

5. Бояться поражений
Ошибиться можно всегда и не надо за это себя осуждать. Надо быть готовым к поражениям, они неизбежны. Принимая поражения слишком близко, можно перестать принимать решения вновь, так как это заранее будет вас пугать.

Пост по материлам статьи 

Цитата о распределенных вычислениях

Цитата к первой главе третьего издания руководства о Hadoop.

Первопроходцы перевозили тяжести на быках. И если бык не мог сдвинуть бревно, они не пытались вырастить быка побольше. Мы должны стремиться не к повышению мощности отдельных компьютеров, а к повышению численности компьютерных систем. (с) Грейс Хоппер

MongoDB: подсчет количества уникальных значений параметра в коллекции

Появилась необходимость подсчитать количество уникальных значений параметра в коллекции. Сначала был испробован distinct, который успешно справился с формированием отсортированного уникального списка значений, но вот организовать подсчет для этого списка в одном запросе не удалось. Успех был получен при использовании group и reduce:

db.my_collection.group({

    key: {"field": true}, 

    initial: {sum: 0}, 

    reduce: function(doc, prev) { prev.sum += 1}

})

Или как вариант:

db.$cmd.findOne({

    group: { 

        ns: "my_collection", 

        cond: {}, 

        key: {"field": true}, 

        initial: {sum: 0}, 

        $reduce: function(doc, prev) { prev.sum += 1}

        }

})

Nginx + haproxy + apache ?

Есть задача — построить отказоустойчивый web-кластер высокой доступности.

  • frontend — nginx
  • loadbalancer — haproxy
  • backend — apache

Дано: 2 сервера nginx, 2 сервера haproxy, 4 сервера apache

Но возникает академический интерес в расположении данных элементов в цепочку…

nginx — haproxy — apache ?
round-robin на входе, кеш до haproxy, haproxy распределяет нагрузку по апачам
Смущает round-robin на входе, в остальном вроде идет равномерное распределение нагрузки по апачам

haproxy — nginx — apache ?
Плохие стороны round-robin в рамках haproxy можно заменить keepalived (?)
Балансировка между апачами выглядит не так хорошо как с haproxy

Собственно приглашаю в комменты для обсуждения.

Обзор Kanban досок

Kanban

Наверняка многие из вас уже сталкивались с манифестом Agile методологии, кому-то идея нравится, а для кого-то это хаос. На мой взгляд самым простым и эффективным методом планирования работы является kanban доска, но в случае распределенной команды её эффективное использование крайне затруднительно. Поскольку greenhopper 6.0 от Atlassian, в котором можно будет создавать мультипроектные канбан доски, будет зарелизен не раньше лета, то я решил пройтись по ресурсам, которые доступны уже сейчас. По функционалу они близки друг к другу, опишу совсем кратенько:

  1. Agilezen
    Бесплатный аккаунт очень урезан по возможностям, есть flow-диаграммы, система обмена сообщения для совместной работы.
  2. Kanbantool
    Можно бесплатно использовать одну доску на двух пользователей, есть API, хороший функционал, поддержка touch интерфейсов.
  3. Lean Kit Kanban
    Бесплатно предоставляется 1 доска на 5 пользователей, есть API, возможность import/export, хорошо реализована совместная работа, уведомления, статистика, диаграммы.
  4. Bananascrum
    Бесплатно предоставляется 1 проект на 3 пользователей. Приложение не понравилось в использовании, а в остальном тот же функционал как и у других.
  5. Swift
    Бесплатное бета-тестирование. Крайне богатый функционал и приятная реализация.
  6. flow.io
    Бесплатно предоставляется 1 пользователь на 1 проект, есть api, ведутся часовые снапшоты проектов для отслеживания истории развития проекта. Приятна в использовании.
  7. Hansoft
    Большая и крайне вкусная система, есть триал на 2х пользователей. Функционал лучше разглядывать на сайте, его не описать =)
  8. Kanbanery
    Бесплатно предоставляется 1 доска на 2 пользователя. Полноценно посмотреть не дошли руки.
  9. smartQ
    Есть триал. Красивая реализаци, можно погрузиться в демку.
  10. TargetProcess
    Есть возмжоность интеграции с JIRA. Очень богатый функционал, лучше перейти на их сайт и посмотреть самим =)
  11. VersionOne
    Бесплатно 10 пользователей. Есть возможность интеграции с JIRA. Но как-то не понравилась на тему удобства использования.
  12. Kanbanize
    Приятен в использовании, полностью бесплатен (может по этой причине и приятен=)
  13. Agilo
    Вполне продуманный интерфейс, интересное лицензирование — можно скачать, а можно воспользоваться hosted версией. Бесплатна.
  14. Xplanner-plus
    Бесплатный opensource проект.
  15. Scrumdesk
    Бесплатен для 5 пользователей. На время написания заметки сайт лежал, так что потом что-нибудь напишу.
  16. Seenowdo
    Интересный бесплатный проект, но вот тяжелое и тормозное флеш приложение расстраивает, если вас это не останавливает, то стоит попробовать.
  17. Scrumy
    Бесплатный, но крайне странный.
  18. Ontime
    1 бесплатный пользователь. Толком посмотреть не удалось.
  19. Spaaze
    Это конечно не kanban доска, но по сути её можно использовать вообще для любых целей.