April 15th, 2014
nem

Делюсь с вами простым способом занедорого увеличить свободное место на вашем ноутбуке.

Одно время моим основным рабочим инструментом был Macbook Air с 64Gb SSD. Жить можно на самом деле, но временами поджимало конечно.

Ну вообще говоря, рецепт на фоточке. Покупаете себе такую флэшку, втыкаете в USB-порт - и у вас есть еще 64 гига.

Вынимать флэшку совсем не обязательно. Из-за своего размера у нее нет шансов отломаться при переноске ноута в рюкзаке или еще как бы то ни было.

Да, одним свободным USB-портом у вас станет меньше.

Да, флэшка сильно медленней вашего SSD. Но не надо туда складывать что-то с чем вы активно работаете. Там самое место архивным документам, видео, музыке, фоточкам.

P.S. Я слышал, что уже есть MicroSD на 128гб. Если кто-то видел флэшку такого же размера, как на фото на 128гб, поделитесь ссылкой. 

April 14th, 2014
nem

Всех рельсоразработчиков скоро заменят скриптом

На самом деле не всех конечно. Но какой-то процент точно :)

В общем, мне пришел инвайт на Prelang. Зайдите, посмотрите интереса ради.

Ребята сделали сервис, с помощью которого можно склепать простенькое rails-приложение за 5 минут. Процесс выглядит так: натыкиваешь себе модельки и плагины нужные, генерится приложение в отдельной репе, git clone, bundle install, rake db:migrate, и все готово. 

Не сказать что это прямо сейчас дает вагоны ценности, но например отсуствие необходимости конфигурировать devise и bootstrap - уже хлеб.

Ну и да, это в потенциале способно зарулить потребности заказчика с того же одеска, которому нужен клон AirBnb за 500 баксов.

Такой заказчик с удовольствием отнесет свои кровные в Prelang, вместо того чтобы тратить время на:

  • отбор исполнителя
  • митинги и разъяснение требований
  • а потом и выслушивание объяснений, почему все не готово и глючит.

Давайте посмотрим, что Prelang дает прямо сейчас:

  • модели, поля, ассоциации, все пироги: https://cloudup.com/c0Isjx3oZhf
  • куча разных плагинов типа devise, scaffolding, bootstrap: https://cloudup.com/c68WFbWlkfq
  • чистенький код на выходе по заветам DHH. Самый что ни на есть rails-way.
  • очень порадовали атомарные коммиты в сгенерированной репе: https://cloudup.com/c-SvCR-MFpt

Вывод один: развивайтесь или умрите ;) Учитесь наносить ценность на гораздо более высоком уровне, нежели написание примитивных active-record моделей, формочек и контроллеров для их обработки.

P.S. Если вам нужен инвайт, напишите мне письмо на inem@bk.ru

December 5th, 2013
nem

Про руби и HappyDev

Тут все руки не доходии написать про немаловажное.

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

Я начал копать в эту тему и насобирал кучу всего. Все круто, но часто попадаются готовые рецепты, которые без понимания принципов малополезны :\

Едем дальше. Этим летом на UlCamp’13 мне довелось познакомиться с Кириллом Мокевниным и Николаем Рыжиковым, которые в рамках баркэмпа вместе с Сашей Бындю на пальцах рассказали и объяснили основные принципы DDD.

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

Лучшая иллюстрация на тему DDD: https://cloudup.com/cSrYSDJs7cB

Я на DDD натыкался еще пару лет назад, но все примеры были на .NET, так что у меня не хватило напору через это пробраться и я забил. А тут вот ребята, оказывается тему раскурили и применили к руби и рельсе.

Через время был еще клевый hangout с Кириллом и Николаем на тему моделей и persistence в рельсе, который я всем рекоммендую посмотреть: http://www.youtube.com/watch?v=QNnewJ-lzdc

Так вот, к чему я. Так сложилось что и Кирилл и Николай приедут на HappyDev’13, выступят с докладами, и будут доступны для общения в течение обоих дней.

Короче говоря, если вы живете в Омске и пишите код на руби, но не идете на нынешний HappyDev - вы идиот :) Ничего личного :)

July 1st, 2013
nem

Архитектура, рефакторинг, реорганизация кода, single responsibility principle в Rails

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

7 Patterns to Refactor Fat ActiveRecord Models

Making ActiveRecord Models Thin

Single Responsibility Principle and Rails

Single Responsibility Principle on Rails Explained

SOLID Ruby: Single Responsibility Principle

SOLID Ruby: Dependency Inversion Principle

Extreme isolation in web apps

Refactoring with Hexagonal Rails

Posts about Hexagonal Architecture

Datamappify - Compose, decouple and manage domain logic and data persistence separately

http://railscasts.com/episodes/416-form-objects - an approach to separate form handling from active-record models

http://railscasts.com/episodes/398-service-objects - good example of how to split up one huge model to number of small classes with single resposobilites

Принципы ООП дизайна

ActiveRecord inheritance and contexts

Strive for Simplicity

Objectify

Removing notifications from callbacks

May 21st, 2013
nem

Базовый набор менеджера

Начало истории здесь.

Вот такой набор техник и инструментов получился пока что у меня. Он наверняка еще будет видоизменяться, а к самим техникам будут появляться ссылки на карточки.

Сбор требований

  • Vision
  • Персонажи
  • Один день
  • Story Mapping
  • Impact Mapping
  • Т.З.
  • Дерево реальности
  • Customer journey

Планирование

  • Roadmap
  • Критический путь
  • Критическая цепь
  • Заложить буфера

Оценка сроков

  • Planning poker
  • Экспертная оценка
  • Одна-две-три точки
  • Дорофеевский метод

Приоритезация

  • Срочноважность
  • Важнопонятность
  • Buy a feature
  • 100% зрение

Процессы

  • Scrum
  • Kanban
  • Waterfall
  • RUP

May 21st, 2013
nem

Пилюли для менеджера

Три года назад я написал пост под названием “Пилюли для программиста”. С тех пор род моей деятельности поменялся довольно сильно. То, чем я сейчас занимаюсь, проще всего описать словом “менеджер”. На самом деле это дикая смесь из аналитака, продакт-овнера, проджект-менеджера, скрам-мастера и наверняка, чего-то еще.

В 7bits мы обычно берем молодых неиспорченных новичков, и растим из них программистов.

С менеджерами сложнее. Хороший менеджер - опытный менеджер, имеющий за плечами и успехи, и провалы. Но вот таких опытных мы как-то опасаемся звать из-за боязни нарушить экосистему внутри компании. А сами растить менеджеров пока не научились.

Да и вообще, спроси меня - что есть идеальный менеджер, и я отвечу: “Отсутствие менеджера”. 

Но понятно что просто выкинуть роль менеджера из уравнения не получится. Кто-то должен собирать требования, обеспечивать выполнение проекта в срок, общаться с заказчиком и так далее.

Идеальная ситуация - команда должна сама обладать всеми вышеперечисленными компетенциями. Но как к этому прийти? 

Со стороны, глядя на работу менеджера может показаться, что он все делает “по наитию”, руководствуется какими-то своими соображениями, недоступными остальным.

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

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

Я решил “сдампить” свой мозг. Вот что получилось:

Для каждой методики есть короткое описание плюс объяснение какую она собственно задачу может помочь решить и в какой ситуации возможное ее применение.

Вот так это выглядит в черновом варианте:

image image

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

Еще один способ использования: выбрать только то, что подходит для текущего проекта. Это может сделать сам менеджер. Команде при этом не нужно метаться в условиях неопределенности - нужно брать и применять конкретные методики.

Обязательно должно быть некоторое количество пустых карточек, которые можно будет заполнить самостоятельно.

В идеале на карточке должен быть QR-код, считав который можно попасть на страницу с подробной информацией о данной технике, ссылки на книги, доклады, посты в блогах.

Вообще, у меня закралось подозрение, что почти любую специализацию можно “разложить” подобным же образом. Нетрудно представить себе разложенные таким образом cкрам, креативные методики, или работу над стартапом. Или вообще, взять книжку любую бизнесовую, и расфигачить ее на такие отдельные карточки.

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

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

P.P.S. Пока что придумалось спорное название “Раступлятор” для всего этого. Если у вас есть идеи получше, буду рад выслушать :)

Заполнить форму

October 18th, 2012
nem

Lean Startup Conference в Омске?

Есть возможность замутить бесплатную трансляцию Lean Startup Conference в офисе 7bits, например. Если кто не в курсе, что это такое - это двухдневное мероприятие(3-4 декабря) с супер-мега-крутыми спикерами с ценой билета при очном поcещении от 300 до 2000 долларов.

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

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

Даже если просто раздумываете, пишите мне в скайп: ivan.nemytchenko, в почту: inem@bk.ru или кидайте свой email в комменты. Напоминаю, заявку надо подать до завтра.

Срок подачи заявки продлили до 23 октября. Регистрация желающих посмотреть трансляцию здесь: http://leanstartupcoomsk.eventbrite.com/

April 30th, 2012
nem

Решаем проблему сбора подписей

В чем проблема-то вообще?

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

Решение

В инете делаем страничку, на которой можно заполнить свои паспортные данные + телефон для связи, можно email еще. Все это записывается в базу.

Человек приходит в пункт сбора подписей - там его данные могут распечатать - у них есть доступ к базе. можно распечатывать хоть по одному человеку на подписной лист - человеку остается только поставить дату и подпись.

Решаем сразу три проблемы:

  1. Уменьшаем время на заполнение подписного листа
  2. Боремся с ленью и пофигизмом - попу же отрывать надо, а тут человек вовлекается не отходя от привычного компьютера.
  3. Самое главное - уходим из непредсказуемого и враждебного оффлайна в привычный онлайн. Страничка легко промоутируется привычними средствами. Расшаривается по соцсетям, ретвитится и т.п. Можно даже какой-то игровой элемент ввести - считать например кто сколько кого привел. Как итог - мы в онлайне набираем нужное число народу. Остается людей замотивировать(по email, sms) прийти к пунктам сбора подписей, ну и поездить за самыми ленивыми и неуловимыми по городу.

Неопределенная задача сводится к двум шагам, которые вполне себе детерминированны.

Заодно это и база сторонников на будущее собирается.

P.S. Сделать основу можно за несколько часов. Обрастить мясом за сутки. Время еще есть.

P.P.S. Мне тут намекнули, что не все просто с подписными листами. И наверняка я не все тонкости процесса понимаю. К сожалению ни кого в теме пока поймать не удалось. Anybody?

Loading tweets...

@inem