воскресенье, 30 октября 2011 г.

Symfony road trip, или Как мы на Symfony Camp ездили





Сегодня утром вернулся из поездки на Symfony Camp 2011. Впечатления отличные, причем не столько от самой конференции, сколько от поездки в целом.


Выезжали в Киев  в четверг вечером. Cам Camp был в суботу, а в пятницу мы еще должны были посетить мастер-класс от Костантина Кудряшова. Туда ехали втроем, и так как билеты покупали заранее, ехали в одном купе. Забавно, но четвертый попутчик оказался также программистом, только на С#. Выпив текилы "за единение родов войск", разговорились о насущных проблемах. Влад, так звали нашего попутчика, был не очень осведомлен о текущем состоянии развития php. Видно было, что в его понимании программисты на php клепают по одному сайту в неделю минимум :-) Нас здорово повеселила его фраза: "Вы вряд ли знаете, что такое Doman Driven Design, вам же это не надо..." Особого желания его разубедить не было, но я думаю, после наших ночных посиделок, он стал гораздо лучшего мнения о php девелоперах. Закончился вечер разговорами о горах, лыжах и сноуборде :-)


Пятничное утро далось тяжело. Спали мы не больше, чем два часа, но настроение было отличное. Перекусив в McDonald's на вокзале, отправились в Киевский офис Ciclum, мастер-класс проходил именно там. Офис Ciclum, конечно, крутой. На этой картинке у левого здания на 20-м этаже своеобразная "тарелка" - это и есть конференц-зал, вид оттуда потрясный. Пока народ подтягивался, успели занять места в первом ряду, выпить кофейка и даже немного попедалить. 


Начался МК с отвалившегося Wi-Fi :-) 40 человек с ноутами просто положили точку доступа. До окончания МК Интернета толком так и не было, несмотря на все попытки решить проблему. Пришлось отложить ноут в сторону и просто слушать. Теперь о содержании МК. В начале было скучно, с настройкой установкой и базовыми понятиями и так уже разобрался к этому времени и нового ничего не услышал. А вот когда началось тестирование при помощи Behat, мне стало интересно. Behat вживую я раньше не видел. Максим с Вадимом откровенно скучали... После обеда Behat закончился, заскучал и я тоже. Интересного больше не было :-) Пафосное название: "Symfony2: от новичка до ниндзя" на поверку оказалось фейком. Впрочем я предполагал, что примерно так и будет, и не особенно расстроился. На следующий день услышал мнение, что если бы вчера на МК были бы люди, которые приехали за свой счет, то они "перегрызли бы горло" за такой МК. Я  хоть и ездил за свой счет, но горло грызть не стал :-) Не могу судить, о том, смогли вынести для себя что-нибудь полезное, те кто не был знаком с symfony2 до этого. Скорее всего да, но по некоторым вопросам из зала было понятно, что люди вообще "не в теме".


После МК я поехал встретиться со своими друзьями. Отдыхали в заведении "Пивной Сомелье", что находится в одном из дворов по улице Саксоганского. Выбор пива там шикарен, а настроение было еще лучше :-) 

Camp в субботу, начался с доклада Кирилла Чебунина, который рассказывал о Service контейнере в Symfony2, было живо и интересно. Видно было, что Кирилл глубоко разобрался в тематике, была новая и интересная информация. Забегая вперед, скажу, что это был лучший доклад на Camp'e :-)


Следующие доклады не порадовали вообще. TestGuy - после Behat смотрелся убого. Классификацию мобильных приложений было слушать откровенно скучно. Докладчик по Redis читал мануал вслух, что очень расстроило. Доклад по Twig был неплох, но лишь как введение для тех, кто Twig еще не использовал. Впрочем автор и не скрывал этого. В конце вечера порадовал доклад Степана Танасийчука. Степан рассказывал о том, как Symfony2 может сэкономить время разработчика. По сути это был обзор must have бандлов для Symfony2. Также немного подсластили впечатление от Camp'a несколько забавных историй от Степана.


В самом конце конференции разыграли пять лицензий на PhpStorm, одну из которых выиграл представитель Харьковской делегации :-) А перед розыгрышем было небольшое обсуждение того, как наиболее безболезненно можно перевести разработчиков с symfony на symfony2.



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


Что полезного вынес я из двухдневной поездки в Киев?


  1. Behat.
  2. Текстовый редактор Sublime Text 2, которым пользовался Кудряшов - крутая штука.
  3. Новые знания о Service контейнере в symfony2.
  4. Сэт рекомендованных бандлов.
  5. Хороший отдых и отличное настроение.
  6. А, еще надолго останутся в памяти такие "термины" как "проперсистить пропертя" и "проинхеритить до синих веников" :-)




Поеду ли я еще на Symfony Camp?


  • Да, конечно же, да!

воскресенье, 16 октября 2011 г.

Все побежали и я побежал, или Размышления вслух о выборе IDE

IDE, наверное, самый важный инструмент в работе программиста. Впрочем, некоторые их не любят и пользуются простым текстовым редактором, вроде, gedit, notepad++ или даже консольным vim. Аргумент в пользу текстового редактора, конечно же может быть только один. Обычно редактор гораздо менее прожорливый, чем IDE. 


Впрочем, в марте 2009 мне пришлось около месяца работать на ноутбуке с WinXP на котором был установлен процессор с тактовой частотой 1 ГГц и памятью 512 Мб. Свой я перед этим благополучно забыл в попоутке, положив рядом с собой на сидение. Так вот, на этом ноутбуке мне удавалось работать используя NetBeans + Firefox. Правда на это время приходилось отключать даже explorer :-)

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

Первое, что мне нравится - экономия времени на установке и настройке множества плагинов для текстового редактора. На базовую настройку IDE уходит не более 30 минут. Интегрированная среда, она потому и интегрированная, что там уже есть все необходимое для разработки :-) Кроме того, "фишек", в IDE все равно получится больше. 

Второе, что не менее важно для меня - я использую один и тот инструмент под всеми операционными системами. В то время, как я не смогу пользоваться notepad++ под Linux, а gedit не будет работать в Windows. Это важно для меня, т.к. у меня три ОС только дома. MacOS на ноуте, Windiows и Ubuntu на десктопе. Осталось только фрю на работе поставить для полного счастья :-)

Третий аргумент  в пользу IDE, наличие отладчика. Продолжать можно долго, я думаю вы поняли уже, что "плюшек" в IDE гораздо больше, чем в текстовом редакторе.

Первой моей IDE был Eclipse PDT, потом пробовал ZendStudio. Полтора года работал в NetBeans. Много хорошего слышал о PhpStorm, а недавно, после восторженных отзывов многих коллег, решил его попробовать.

Хочу теперь поделиться впечатлениями. Их можно описать одним словом "Супер!". На мой взгляд, это лучшая IDE на текущий момент. PhpStorm очень быстр, есть все необходимые фичи и даже больше. Я первый раз стал делать коммиты в svn используя IDE, а не консольный клиент :-) 

Забавный факт, в выдаче Яндкса по запросу "PhpStorm" на первом месте ссылка на rutracker, а не на официальный сайт компании.

Да, IDE платная, персональная лицензия стоит 99 у. е., лицензия для компании обойдется в 199 у.е., но есть еще и бесплатная лицензия для open source разработчиков и для учебных заведений. В общем, цены очень демократичные.

Закончить хочется фразой из знаменитой рекламы с Малаховым: "Вы все еще кипятите? Тогда мы идем к вам!"



воскресенье, 9 октября 2011 г.

Как увеличить производительность MySQL в 5 раз

В дев режиме не составит труда увеличить производительность MySQL в пять раз. Все что нужно сделать - переместить базы данных в оперативную память. К примеру, в моем последнем проекте билд выполнялся за 5 минут. А после перемещения баз в оперативку - всего за 50-55 секунд. 


В общем, как сделать по шагам:


1. Копируем базы данных во временное хранилище:
 sudo cp /var/lib/mysql /var/lib/mysql.tmp -R
2. Создаем скриптик такого содержания:#!/bin/bash
set -e
cd /var/lib
mount tmpfs mysql -t tmpfs -o size=300M
cp mysql.tmp/* mysql -r
chown mysql:mysql -R mysql
/etc/init.d/mysql restart

Я назвал его mysqltomemory. "size=300M" - тут указываем необходимый размер раздела под базы.


3. Ложим скрипт в /usr/bin и помечаем как исполнимый.

4. Запускаем скрипт от имени рута.

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

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

Да надеюсь, что всем понятно, что не стоит такого делать на продакшене :-)


З.Ы. Спасибо, Жене Афоничеву. Идея принадлежит ему.