Rotate transparent image в PHP

Жодна тварина в результаті роботи скрипта не постраждала :)От не спиться мені і баста :).
На форумі zf побачив запитання “Як засобами php повернути png з прозорістю так, щоб після повороту прозорість зберігалася?”. Через деякий час знайшов два вирішення цієї задачки.
Continue reading

Як запускати дебаг з браузера? FireFox + NetBeans + xDebug

Що мені дуже подобалося в Zend Studio так це Zend Toolbar. Він давав мені змогу “сухо і комфортно” відлагоджувати скрипт, при цьому передаючи йому необхідні набори вхідних даних. І от якось знадобилася мені щось схоже в NetBeans – а нема :(.

На оф. сайті xDebug я знайшов згадку про плагін для Firefox xDebug helper. В коментарях до плагіну писали, що його можна використовувати для Eclipse та Notepad++. Значить з NetBeans теж повинен працювати. Витративши ще трохи часу я знайшов статтю “Debugging tip: Xdebug Helper in Firefox w/ NetBeans“, в якій все детально розписано.

Якщо коротко, то:
1. Ставимо плагін xDebug helper.
2. Перезапускаємо браузер і заходимо в налаштування плагіну. В полі idekey вказуємо ‘netbeans-xdebug’.
3. В статусбарі браузера з’являється іконка хелпера “Start/stop xDebug session”. По дефолту вона неактивна. Якщо її включити і перезавантажити сторінку, то в NetBeans почнеться дебаг. Єдине що перед цим потрібно стартанути дебаг в самому NetBeans.

Це все :). Юзайте на здоров’я!

UPD. Я бачу люди заходять сюди по запиту “netbeans xdebug“. В такому разі раджу прочитати розділ “Установка и включение отладчика XDebug” з статті “Настройка среды разработки PHP в Windows“.

UPD2. Сьогодні 25 лютого 2010 року і я натрапив на свою ж статтю написану більше року назад :).

Значить, щоб це все працювало в php.ini мають бути прописані наступні налаштування для xdebug:

xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

Привіт NetBeans! Good buy Zend Studio!

netbeans Вже біля трьох тижнів я використовую NetBeans 6.5 в якості IDE для php. Спочатку мені було просто цікаво, а сьогодні я вирішив перейти на нього повністю і вилучив ZS з системи.

Чому так? На те є кілька причин:
NetBeans безкоштовний! В той час як ліцензія Zend Studio for Eclipse коштує 399$ на рік. А я останнім часом намагаюсь не використовувати неліцензійне ПЗ.
NetBeans швидший. На свому Dell Latitude D600 (не дуже потужний ноут на сьогоднішній день) я дуже сильно відчуваю цю різницю у швидкодії.
NetBeans зручніший. Налаштувати можна все, що завгодно. Від деяких фіч я просто в захваті!

NetBeans функціональніший. Причому функціональність ця розширюється за рахунок чисельної кількості плагінів, які за бажанням дуже просто інсталювати (на відміну від Eclipse).

Continue reading

Плагіни для RoR

rails-logoТретій день розбираюсь з Ruby on Rails по книжці “Ruby on Rails: Быстрая веб-разработка”. В російському виданні дуже багато помилок, тому раджу скачати ще й оригінал “Ruby on Rails: Up and Running” (лінк на .chm версію).

Не скажу, що все йде гладко – час від часу виникають різні труднощі. Розібрався в чому прикол. Виявляється ця книжка видана ще в 2006-му, а в російській версії написано 2008-й (на що я й повівся). Багато речей зараз робиться по другому. Сьогодні, наприклад, мені в Active Record знадобилися такі речі як acts_as_list і acts_as_tree. А зась – нема :). Почав ритися в неті, виявилося, що їх винесли в плагіни (з версії 2.1 здається).

Спробував встановити ці плагіни через консоль:

D:\ruby\projects\photos>ruby script/plugin install acts_as_tree
Plugin not found: ["acts_as_tree"]

Continue reading

Як мені поламали сайт

Жив був собі один сайт на не дуже поширеній cms. Звичайний такий портальчик – новини, статті, галерея, форум і т.д. Спочатку в нього був період розвитку, потім період занепаду і вже майже рік, як це не сайт, а купка тематичного контенту для пошукових систем + кілька рекламних блоків adsense.

Життєвий цикл одного сайту

Весною його поламали турецькі “хакери”. Повставляли купу редіректів на свій “модний” сайт. Я не мав часу розбиратися, що та як – просто відновив базу з бекапу. Після того той турок ще двіччі редагував новини на головній і на цьому все заспокоїлося.
Continue reading

Знайшов баг в wordpress (Ticket #8428)

errorВ понеділок вручну переносив блог з одного сервака на інший – все ніби нормально запустилось. Та коли сьогодні хотів зааплоадити картинку в галерею, то отримав:

502 Bad Gateway
nginx/0.5.32

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