воскресенье, 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. Запускаем скрипт от имени рута.

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

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

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


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

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

Тесты знаний на brainbench.com

Каждого программиста время от времени беспокоят вездесущие рекрутеры. Как известно, программисты сейчас в цене и многие компании готовы платить неплохие деньги за привлечение оных в свои ряды. Рекрутры стучатся в почту, в социалки, в скайп. В основном, подход стандартный, как и описание вакансий: "Просторный офис... Интересные проекты... Требования: PHP 5, MySQL... Бла-бла-бла...". Кого-то может такой подход и способен заинтересовать. А я обычно отвечаю, что если захочу сменить место работы, я обязательно свяжусь с ними. Но пару недель назад мне позвонила девушка из компании "Wildix". Она начала разговор с фразы: "Мы ищем крутых PHP разработчиков". В общем после непродолжительного общения выяснилось, что компания ищет PHP разработчиков с переездом в Одессу. Интереса ради я согласился пройти их тесты. И только сегодня нашел время. Для оценки уровня знаний предлагался сет из трех тестов на brainbench.com. О чем, собственно, и хочу рассказать. 

Все тесты на английском языке и состоят из 40 вопросов с вариантами ответов. На каждый ответ дается 3 минуты. Первый тест по SQL (ANSI), на мой взгляд наиболее сложный. С учетом того, что мой небольшой опыт SQL ограничивается СУБД MySQL считаю, что прошел я его достаточно хорошо. Система сообщила, что набрал я 3.39 баллов. А также, что я набрал больше баллов, чем 73% проходивших тест. Немого отдохнув я приступил к тесту по PHP 5.3. И тут меня ждало небольшое разочарование. Первая задача и сразу вопрос по MySQL, потом было еще несколько, потом были задачи по формам и html. Непонятно каким боком это все относится к PHP 5.3. В общем, я считаю это тест абсолютно не показательным. Тем не мене мой результат составил 3.42, что больше, чем у 75% проходивших тест. По javascript тест был наиболее простым на мой взгляд, но учитывая отсутствие какого-нибудь серьезного опыта в этой области, результат составил всего 3.02, что больше, чем результат 54% участников. 

Ну и, напоследок, пару слов о сервисе brainbench. Тут доступно большое количество бесплатных тестов для оценки знаний в самых различных отраслях. По бесплатным тестам можно получить бесплатный электронный сертификат и за сумму порядка 16 у.е. можно получить бумажную копию сертификата. Для компаний предлагается также много сервисов по оценке знаний. В общем, пока еще сам толком не разобрался, какие еще возможности есть, но профиль себе завел. Мой Transcript ID#: 9925861.

вторник, 13 сентября 2011 г.

256

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


К слову, если кто-то хочет мне что-нибудь подарить, подарки можно приурочить к одному из моих профессиональных праздников:
  • 12 апреля, когда Юра в ксомос слетал, я отмечаю День космонавтики, т.к. я учился в ХАИ;
  • 7 мая, когда товарищ Попов изобрел радио, я праздную День связи, т. к. в ХАИ я учился на радиофаке;
  • 19 июля, когда была написана первая программа (между прочим девушкой), можете поздравлять с Международным днем  программиста, т.к. работаю я программистом; 
  • последняя пятница июля - День сисадмина, традиционный праздник всех айтишников;
  • 13 сентября (в високосный год 12 сентября) - 256й день в году - День программиста, в Украине не официальный, но тем не менее;

Всем коллегам желаю стройного и изящного кода без багов! Пусть помагают вам юнит-тесты! Пусть IDE никогда не глючит! А менеджер пусть бережет от "индусского" кода!

И желаю как можно чаще испытывать чувство "Я это сделал!"



ВСЕХ С ПРАЗДНИКОМ! УРА ТОВАРИЩИ!(party)

День программиста — Википедия

Джатака о понимании

Забавный доклад Андрея Аксенова (да, это тот, который Сфинкс написал). Достаточно старенький, но от этого не менее полезный. Для тех, кто может еще не видел.





Все, пошел тренировать ежеминутный дзен :-)

понедельник, 12 сентября 2011 г.

Месяц+ на Toyota Corolla City

Не так давно стал счастливым обладателем Toyota Corolla в комплектации City. Для тех, кто не в курсе, комплектация City немного урезана по сравнению с Terra, и основное отличие в двигателе. City поставляется с двигателем 1,33L. "Она вообще ездит?" это самое безобидное, что я могу услышать от людей, когда узнают объем двигателя. Но этот движок способен выжать аж 105 л.с. Ездить по городу очень комфортно, по трассе бывет проблематично при обгонах, приходится раскручивать двигатель и при этом он сильно шумит или обгон получается плавным. Средний расход по трассе ~6-7 литров,а по городу ~8 л. Это учитывая мой мизерный водительский стаж, обкатку двигателя и езду на повышенных оборотах. Подвеская мягкая, на скорости автомобиль ведет себя послушно.


В восторге я остался и от комплектации. Да, мне не хватает, конечно, управляения магнитолой с руля и климат-контроля. Но, все равно, салон просто шикарный - просторный и удобный, очень эргономичный. В общем, всем кто сомневается, какой приобрести автомоболь до 20 тысяч вечнозеленых, всячески рекомендую присмотреться именно к этому варианту. При выборе альтернативой был KIA Ceed, но японское качество и более солидный внешний вид победили. 

Теперь, пара советов для будущих покупателей. Посадка у автомобиля достатчно низкая, поэтому не поскупитесь и закажите 16-дюймовые колеса вместо 15-дюймовых. В Terra они по умолчанию. Я например на второй день оторвал пластмассовую защиту воздухозаборника. В оправдание себе скажу, что ехал я по полному бездорожью. Поэтому совет номер 2 - установите сразу защиту картера двигателя, неоригинал обойдется всего в 500 гривен. 



Кто-то пугал дорогим ТО. Так вот сравнив регламентные ТО c Hyundai Accent получил суммарно ~13 000 грн у Toyota на 105 тысяч против ~20 000 грн 120 тысяч у Hyundai. Ну и напоследок пару обзоров от экспертов.
 
Обзор №1


Обзор №2

Пробег: 1700 км.