Як я ставив SVN & Trac

Виникла в мене потреба в використанні на сервері системи контролю версій і багтрекінг системи. Так як локально я використовую svn, то і на сервері вирішив ставити svn.

SVN або Subversion – вільна централізована система контролю версій. Нещодавно (19 липня 2008) року вийшла нова версія 1.5.

Trac – гарна багтракінгова система і інструмент для керування проектами. Написана на python. В наступній версії обіцяють зробити можливість локалізації через gettext.

Ставив я це все щастя на свій VDS від RuWeb. Керувався офіційною документацією і статтею “Установка и настройка SVN сервера с доступом к репозиториям по http протоколу“. Тільки я налаштовував не як піддомени, а як директорії – http://myprojects.com/svn/ і http://myprojects.com/trac/.

Все поставилось нормально. Спочатку налаштував користувачів, створив групи, роздав права. Потім створив на сервері репозиторій і залив туди останню версію проекта. На локальній машині зробив check out, вніс певні зміни і спробував зробити commit. От тут і почалися приколи: Continue reading

Юніт тести в php за допомогою phpUnit (частина друга)

Це продовження статті “Юніт тести в php за допомогою phpUnit (частина перша)“. В першій частині мені подякували за переклад частини мануалу :). Та будь-ласка. Хоча я не вважаю це просто перекладом. Це конспект в якому є як приклади наведені в мануалі, так і мої власні напрацювання. А про TDD як я вже казав можна почитати на agiledev, або на wikipedia, або в спеціалізованій літературі. Я ще не настільки компетентний, щоб писати власні статті про TDD.

“Я не волшебник. Я только учусь.”

Евгений Львович Шварц

setUp() & tearDown()

Ці методи викликаються відповідно перед початком і після виконання кожного тестового методу. Їх використовують для встановлення тестового класу в певний стан. Розглянемо наступний приклад з офіційного мануалу:
Continue reading

Юніт тести в php за допомогою phpUnit (частина перша)

Про TDD можна почитати на agiledev.ru, а тут я хочу розповісти про створення автоматизованих юніт тестів за допомогою бібліотеки phpUnit.

PEAR::PHPUnit це бібліотека для створення автоматизованих тестів. Автор Sebastian Bergmann. Сайт бібліотеки http://www.phpunit.de.

Інсталюємо phpUnit

Для Widows я качав PHPUnit-3.3.4 з http://pear.phpunit.de/get/.
Копіюємо каталог PHPUnit в каталог PEAR (не забуваємо про include_path).
Continue reading

php, eAccelerator, APC, Xdebug

П’ята година ранку, а я ще за компом…

Почалося все вчора ввечері, коли я випадково натрапив на 49 наблу Котерова “Оптимизируем загрузку PHP-кода в 22 раза, или почему FastCGI не ускоряет PHP“. Там зачепився поглядом за eAccelerator і згадав, що давно хотів на нього подивитися. Скачав, налаштував, запустив. Про результати судив на прикладі живих проектів. Наприклад, для textbroker.ru час виконання скрипта зменшився в 2-4 рази – доволі суттєво. Трошки поцикався, почитав доступну інфу. Гарно, гарно. Тільки треба більше часу виділити, щоб нормально розібратись.

Continue reading

Нові можливості PRO аккаунтів. А толку з того?

Вчора отримав лист від free-lance.ru наступного змісту:

Уважаемые фрилансеры!

Для удобного и эффективного поиска работы на ресурсе Free-lance.ru мы расширили возможности аккакунта PRO. Теперь пользователи с аккаунтом PRO получают новое преимущество . они отображаются в каталоге по 5 специализациям (основная специализация + 4 дополнительные специализации). Continue reading

JavaScript’овий watermark і defaultValue

От елементарна здавалось би фігня.

“До речі ця фігня називається Watermark” (с) Pavlo Stolyar

Але по різному ж можна робити. Наприклад так:

<input type="text" name="s" id="s" size="15" value="Пошук..." onblur="if(this.value=='') this.value='Пошук...'" onfocus="if(this.value=='Пошук...') this.value='';" />

Але це ж плоско. Ні, ну серйозно. В коді треба 3-ри рази написати слово “Пошук…”. Навіщо тоді люди взагалі комп’ютери придумували…
Continue reading

Hello world! Або комплекс початкових заходів для розкрутки блогу

Ну ніби все нормально. Блог створив. Кілька цікавих постів написав. Навіть перші коментарі з’явилися. Але цього явно не достатньо. Треба якусь мінімальну оптимізацію зробити, засвітитись перед пошуковими системами і т.д. На всяк випадок нагадую, що цей блог працює на двіжку wordpress.
Continue reading