Свого часу я дуже необережно оновив двіг Кукорами до нестабільної версії LS з trunk’у. Для мене це вилилось в купу часу затраченного на багфікси (так склалось, що відкотитись було неможливо), а для LS в халявні багфікси :). З того часу в директорії /var/www/my/cookorama.net з’явилися три піддерикторії “source”, “source-with-ls-svn”, “source-without-ls-svn”.
Апдейт до нової версії LS виглядає наступним чином:
- Апдейчу з транка LS сорси в “source-with-ls-svn”.
- Розрулюю конфлікти в конфізі і можливо мержу свої багфікси з їхніми.
- Перекидаю DocumentRoot на “source-with-ls-svn” і дивлюся чи все працює.
- Переношу все це діло в “source-without-ls-svn” і тру всі папочки .svn
find . -depth -type d -name '.svn' -execdir rm -rf '{}' \;
- Накочую вміст “source-without-ls-svn” на “source” і перевіряю зміни в конфізі, шаблонах і мовних файлах.
- Тестую Кукораму на локальній машині і якщо все ок, то комічу (Кукорама лежить в окремому репозиторії) і апдейчу продакшн.
Наприкінці березня в Пітері відбудеться конференція присвячена Zend Framework - ZFConf 2010. На головній сторінці оф. сайту можна ознайомитись з списком запланованих доповідей. Дві з них буду читати я ~_^:
Загалом на конференції буде багато цікавих і досвідчених людей (навіть один з розробників Zend Framework!). То ж якщо у вас є бажання потрапити на конференцію - переходьте на сторінку попередньої реєстрації.
Напевно багато php розробників використовують профайлер xdebug для пошуку вузьких місць в своїх аплікухах. Але просто дивитися логи не зручно, тому були створені інструменти для їх візуалізації. Про них я розповім.
Webgrind
Webgrind це набір php скриптів, які можна поставити на локальний чи віддалений веб сервер. Далі все просто - закачуємо лог і дивимося статистику.

Найочевидніший плюс Webgrind’а це мультиплатформенність і простота встановлення.
Показує список функцій які викликалась, кількість викликів (Invocation Count), загальний час витрачений на виклик (Total Self Cost) і загальний час витрачений на виконання (Total Inclusive Cost).
Можна приховати php функції. Можна перейти всередину функції, щоб побачити розгорнуту статистику.
(ще…)
Ідея запустити власний кулінарний проект в нас (ми, це я і Андрій Мануйленко aka Scratch) з’явилася давно. Спочатку думали зробити пошукову систему по рецептам, потім базу рецептів і врешті-решт вирішили робити соціальну мережу. Весною ми зареєстрували домен cookorama.net (користуючись нагодою хочу подякувати Оленці Занічковській aka @HelenkaF за допомогу з придумаванням назви проекту, концепції і слогану) і запустили першу версію сайту на платформі LiveStreet.
(ще…)
Вже майже три тижні пройшло як я почав використовувати FreeBSD. Спочатку на лептопі, а зараз і на десктопі. Все мені подобалось і тільки тема в NetBeans’а була якась не правильна…

Почав копати і накопав ось цей фак Look and Feels in NetBeans.
Якщо вірити тому, що написано, то в Gnome по дефолту повина використовуватись L&F “GTK”. А на ділі в мене NetBeans завантажувався з темою Metalic. Вирішилася ця проблема додаванням –laf GTK до команди запуску. Повністю вона виглядає так:

Таким NetBeans мені подобається більше
Виявляється в FreeВSD можна поставити ZF з портів:
cd /usr/ports/www/zend-framework && make install clean
І, якщо вірити distinfo, то на сьогодні доступна остання стабільна версія ZendFramework-1.8.4. На відміну від Ubuntu, де ZF теж доступний в якості пакету, але оновлюється той пакет з великим запізненням.
Вихід ZF 1.8 порадував нас низкою нових, корисних компонентів. У цій статті я хочу розповісти про практику використання Zend_Navigation для побудови простого меню сайту, карти сайту і хлібних крихт. Особливо хочеться звернути увагу на використання Zend_Navigation в парі з Zend_Acl.
(ще…)
В рамках останньої сесії довелося робити программу для передачі двох сигналів від передавача до приймача через послідовний порт. Генерацію сигналів і графіків робив Буділовський Сергій, а я робив приймач/передавач. В процесі роботи перерив купу форумів і так як тема актуальна вирішив викласти результат в маси.
(ще…)
Для визначення номеру поточної версії фреймворку призначений клас Zend_Version. Він може повертати номер поточної версії:
/**
* Zend Framework version identification - see compareVersion()
*/
const VERSION = '1.8.1';
Або порівнювати номер потрібної вам версії з номером поточної:
/**
* Compare the specified Zend Framework version string $version
* with the current Zend_Version::VERSION of Zend Framework.
*
* @param string $version A version string (e.g. "0.7.1").
* @return boolean -1 if the $version is older,
* 0 if they are the same,
* and +1 if $version is newer.
*
*/
public static function compareVersion($version)
{
return version_compare($version, self::VERSION);
}
От так все просто. Як це використовувати, то вже ваша справа ;).
Десь з місяць назад в мене замовили скрипт антиплагіат модуля. Спочатку я зробив його по алгоритму схожому на текстброкерівський. Але через кілька днів замовник знайшов програму Advego Plagiatus і захотів такий алгоритм як там…
(ще…)