суббота, 13 октября 2012 г.

Unity - не так страшен черт, как его малюют

Когда Canonical сделала Unity дефолтным десктопом, многие убунтуводы были разочарованы и метнулись в сторону Linux Mint и других альтернатив, в том числе и я. Тогда я снес Убунту с ноутбука и поставил Mint, но на работе остался компутер с Ubuntu, так я стал постепенно привыкать к Unity. Прошли месяцы, и я настолько привык к Unity, что снес Mint с ноутбука и опять поставил Ubuntu.

Я Ненавижу Scrum Planning

Жил-был один большой Проект, и писали его несколько поколений программистов. Шли годы, и проект стал настолько сложным и настолько большим, что уже не помещался в человеческой памяти. По  критериям, таким как количество строк кода, количество подсистем, сложность которая в теории систем определяется как количество подсистем и связей между ними, время билда, количество юз-кейсов, количество тест-кейсов, количество разных технологий,  очевидно что это уже не простая система, а очень сложная. Чтобы что-то сделать, нужно провести несколько дней а то и неделю, разбираясь в требованиях, а потом в коде. Разобравшись в спецификациях и существующем коде, можно осуществить разбивку на мелкие подзадачи для внесения изменений в систему,  например, если на реализацию функционала нужно 30 дней, то количество подзадач может быть 40-50, а на анализ и планирование может уйти  неделя.

Девелоперы решили использовать Scrum planning,  идея его в том чтобы собрать всю команду и дать им карты в руки, пусть обсудят задачи и выставят приблизительные оценки.  Планирование  происходит в митинг румe, у девелоперов нет ноутбуков, и в код они не смотрят. За несколько часов невозможно вьехать в тему, к тому же существует много способов решить одну задачу, и обсуждать и оценивать каждую из 40 или 50 под-задач можно по 10 минут,  получается что  вся команда должна ровести примерно 8 часов в митинг-руме, не учитывая перерывы на обед и кофе-брейки. Что интересно, только один человек (или два) будет реализовывать данную задачу и немного в теме, остальные 4 кидают карты с оценками которые получают пытаясь прочесть выражение лица тех людей, которые в теме, чтобы демонстрировать что они тоже involved и pro-active. Допустим, в команде 6 девелоперов, два из них в теме, остальные 4 не в теме. Все кидают карты с оценками, те двое, которые представляют себе код который им прийдется изменять, кидают карты с точными оценками, остальные 3 с не-точными, то есть вносят погрешности. С таким же успехом можно бросать кости и смотреть какая цифра на верхней грани.

Существует определенный порог сложности. Количественные изменения переходят в качественные, и система начинает жить по другим законам. Планирование методом наскока с картами перестает быть эффективным,  лучший результат дает  waterfall, сначала анализ, потом планирование и кодирование , потом стабилизация. Не нужно часами держать всю команду в митинг руме , достаточно коротко обсудить задачу со всеми членами команды, выделить один-два человека на задачу,  и пусть они дальше сами планируют свои действия. Planning poker пусть идет в сад.

суббота, 6 октября 2012 г.

Проблемы с eСryptFS

Ubuntu дает возможность шифровать home folder, при этом используется eСryptFS.  Я включил эту опцию на двух моих компьютерах и через несколько месяцев на обоих возникли проблемы, IntelliJ Idea стала глючить. Это выглядело как будто на диске появились плохие секторы,  Idea все время говорила что index corrupted. Переиндексация не помогала. hg verify находил ошибки в репозитории.   В cистемом логе было много записей о том, что eСryptFS не может расшифровать блок.

Пришлось отключить  шифрование и проблемы исчезли. Возможно ограничение на длину имени файла в eCryptFS было превышено. Поэтому лучше  не шифровать весь home folder.

Вот линк на статью "Howto: disable eCryptFS".

понедельник, 16 апреля 2012 г.

GWT или jQuery ?

Этот вопрос для меня носит cовершенно не теоретический, а вполне практический аспект, потому что на работе я использовал обе технологии, и уже набралось достаточно материала для обобщения. В чем сила GWT ? Cила GWT заключается в том, что вместо JavaScript используется Java, а Java - это компилируемый язык со всеми вытекающими последствиями, то есть возможность проверять код в фазе компиляции, можно безопасно рефакторить код. В чем слабость GWT ? Слабость GWT заключается в том, что время разработки увеличивается, потому что компиляция GWT кода в JavaScript занимает определенное время, и вы уже не можете просто сохранить и отрефрешить страницу в браузере, нужно обязательно дождаться, пока ваш измененный Java код cкомпилится в JavaScript. Вторая особенность GWT - это плохая документация, особенно для библиотек GWT Dispatch и Gin. Третья особенность GWT - ваш Java код распухает в обьеме, это обусловлено тем, что еквивалентный JavaScript всегда будет в 5 раз меньше. Мое субьективное ощущение разработки на GWT: весь день непрервывно стучишь по клавиатуре :). Можно найти намного больше GUI компонентов для jQuery, чем для GWT, потому что базовые GWT компоненты, которые сделал Google, работают всегда, остальные GWT компоненты, которые сделаны другими компаниями, могут глючить в разных браузерах, и обычному человеку очень тяжело, практически невозможно разобраться как работает GWT Java to JavaScript компилятор, если возникнет такая необходимость.

Я пришел к выводу, что использовать GWT оправданно только если ваша web страница уже не web страница, а rich GUI, например, текстовый редактор типа Google Docs, или Gmail, или онлайн редактор изображений, вроде PhotoShop. Хотя я не уверен насчет Gmail, потому что знаю, что есть аналог Gmail, который сделан на ExtJS. Я уверен, что 99 процентов веб сайтов могут обойтись без GWT.

Лично мне намного быстрее и проще писать на jQuery используя JavaScript MVC на клиенте и Spring MVC на сервере.

среда, 8 февраля 2012 г.

Linux: работаем из дома

Иногда возникает необходимость работать из дома. Проблема заключается в том, что на работе я работаю над сложной системой, которая состоит из многих подсистем, и пока дома это все настроишь, то пройдет час, а то и два часа. Поэтому выгоднее законектиться из дома в оффис и девелопить на воркcтейшене, который находится в оффисе.
Сначала я пробовал конектиться по SSH c ключем -X. К сожалению, IntelliJ Idea генерит так много операций по X11 протоколу, что просто не успевает передавать и отрисовывать вовремя. Потом я
пробовал использовать VNC, но скорость работы VNC меня не устраивает. VNC работает быстрее, чем X11-протокол, но иногда тупит. Поискал и нашел альтернативу, называется NoMachine NX. Это надстройка над X11 протоколом, которая работает значительно шустрее, чем просто X11. Сейчас конектюсь из дома в оффис, никаких торомозов.

пятница, 3 февраля 2012 г.

Good bye, Ubuntu !

I have been in love with Ubuntu since 2006, and I was a happy user until October 2011 when Canonical released version 11.10 and stopped to support Gnome 2. Being a Gnome guy I had to use Gnome 3 or Unity, because KDE an XFCE are not options for me. Unity is definitely not a desktop environment I want to use. Gnome 3 desktop in Ubuntu is ugly. I've been using Gnome 2 with Compiz for years. Gnome 2 is a perfect desktop environment, and I loved it and got used to it. Gnome 3 in Ubuntu 11.10 looks ugly. The contrast between polished Gnome 2 and ugly Gnome 3 was the main reason why I decided to switch to Linux Mint. So today I installed Mint in place of Ubuntu on my notebook, and I am happy again. I have the same feeling I had back in 2006 when I installed Ubuntu for the first time.