Krumo в действие

Ето това вече е „известен програмист“ ;)
Ето това вече е „известен програмист“ ;)

Супер е, когато видиш, че някое от нещата, които си написал, наистина може да се използват за нещо полезно ;) Вчера вечерта, малко след работа, видях ето това:

Понеже напоследък се правя на php developer често ми се налага да прекарвам „приятни“ часове в debug-ване. И тъй като тази работа и без това е бавна и изнервяща, днес намерих начин да я направя поне малко по-човешка. Става въпрос за един български проект – Krumo.
Автора на проекта е небезизвестния Mrasnika. Странното е, че разбрах този факт малко след като тествах приложението защото сайта е на английски и по нищо не дава вид, че се разработва от българи/н.

Радвам се, че има случаи в които Krumo наистина има конкретно приложение. Имах планове да го използвам на работа, но първоначално хибридната му PHP4/PHP5 природа беше проблем, а след това нямам много време да се занимавам с тази библиотека.

За финал – благодаря за похвалите. Не мисля, че съм „небезисвестен“, но пък винаги е хубаво да те засипват с (дори незаслужени) комплименти ;)

CodeIgniter vs Zend Framework

Ето нещо интересно за всички „отворени програмисти“, занимаващи се с уеб. Това е едно детайлно сравнение между две от най-популярните платформи (аджеба как е фреймуърк на български) – CodeIgniter и Zend Framework. Като цяло споделям впечетленията на автора, и донякъде изводите. Аз също смятам, че съм пристрастен, но пък това не пречи да съм критичен ;) Това, че старта с CodeIgniter е по-лесен буди леко съмнение в мен, след като автора признава че му е фен и го използва активно – преценката му за това дали е лесно да се работи с тази платформа може би е изкривен. Както и да е – прочетете материала:

Много ми хареса коментара на Уил Синклер, който е текущия ръководител на Zend Framework проекта. Супер е да видиш някой да отделя толкова детайлно внимание на информацията, която се публикува за работата им. Въпреки че имам лоши впечетления за последните няколко „етапа“ от развитието на проекта (за което ще пиша друг път), статията като цяло много добре улавя силните страни на Zend Framework. С CodeIgniter просто нямам достатъчно опит.

„Отворен програмист ли си ?“ в клуб „Програмисти“

Сега обнових Woopra инсталацията, и виждам че имам 8 човека онлайн на сайта, което за спорадичен блог като моя е изненадващо много. Погледнах, и видях че всички са дошли от „Клуб Програмисти“ на Дир.бг:

Там, както може би сте видяли, са решили да обсъдят написаното от мен за „отворените програмисти„. За коментарите ще напиша нещо като станат малко повече, че сега е много рехаво всичко (в момента са 6 „реплики“). Интересното беше поведението на посетителите, решили да последват линка от темата на форума и да прочетат какво съм написал: почти всички 50-60 човека са прочели написаното (поне така изглежда – съдя по времето прекарано на тази страница), и след това са отворили CV-то ми, може би за да проверят дали този който ги е написал тези работи разбира за какво говори … Лошо няма, много логично поведение, много типично за програмисти ;) Иначе интересен линкбейт, а ?

Поддържане на проект с отворен код

Поддържане на проект с отворен код изисква време и енергия. Много проекти изискват много време и много енергия. За съжаление, свободното време и излишната енергия не са нещо, което се намира много напоследък (от новогодишната баница все искам да ми се падне късмета с „Отпуската“), и ако трябва да се избира между почивката, или работата върху рапортуваните бъгове и нови възможности, нали знаете кое ще спечели. Два от моите проекти (извън работата върху WordPress) бяха започнати с идеята, че ще се ползват в ежеднвената ми работа, и така поддръжката ще става от „само себе си“, защото така или иначе работата ми ще го изисква. За съжаление работите не се развиха в тази насока, и проектите не се радват на особенно внимание от моя страна, най-вече заради липсата на време.

Ако така се случва с всички open source проекти, то едва ли някой ще стигне до … абе едва ли ще прокопса ;) Аз още не съм изоставил моите проекти, въпреки че има някои идеи които просто не се състояха, а за други, нови идеи нямам време. Както и да е – виждаме, че не е точно така, защото има много успешни и „дълголетни“ проекти. Все пак, същия ли е сценария ?

Ако съдя по собствения си опит, не е точно така. Успешните проекти с отворен код се радват на цялото внимание на хората, които ги поддържат, и определено не са тяхно хоби. За да бъда по-точен, ще кажа че говора за основното ядро от разработчици – а не за многото ентусиасти, които помагат (главно по големите проекти, кой с каквото помогне). За тях проекта е работата им, а софтуеъра с отворен код са философията и бизнес модела, по който са избрали да се развиват. Темата за философията и бизнес модела е дълга и широка, но това върху което аз искам да се спра е вниманието, което е отделено на проектите, „енергията и времето“ които получават, за да се развият. Освен всичко, трябва и да се яде, нали ;)  Хората ангажирани с проекта не работят  за този дето клати гората  (въпреки че май повечето хора така си го представят), и за тях проекта е нещото, чрез което ще си изкарват парите.

Ето, парите са другото нещо. Това, че проект с отворен код може да се издържа от дарения е някаква химера. От друга страна, отново масата успешни проекти с отворен код имат финансов гръб, могат да се облегнат. Работите изглеждат навързани – има ли пари, ще има и внимание ;) Точно това навързване на нещата  е интересно. В блога на чернова стоя един линк от коментар на Дончо Ангелов при тема на Йовко Ламбрев:

…Част от това, което се случи с този проект, ме накара да го делегирам на друг човек, който изяви желание да се занимава с него. Част от това, което се случи тогава, загуби принципно вярата ми в това един програмист да се издържа от писане на свободен софтуер (виж, за консултант е друга работа, но това е и друга тема)…

…Лошото е, че и тогава, и сега, всеки с проблем искаше той да му се реши сега и веднага, но не се сещаше, че “сега” и “веднага” за свободен софтуер имат едни други измерения…

…Чисто програмистко и икономически погледнато излиза, че по-добре да напишеш shareware продукт, който да продадеш 1000 пъти от 10,000 сваляния, отколкото да напишеш свободен софтуер, за който да те “дарят” 40 пъти за 50,000 сваляния. Вярно, идеологически свободното може да е по-”изчистено”, но програмистите, за жалост, трябва да ядат…

Ами това е – струва си да работиш върху проекта, ако някой ти плаща – ако имаш груб на който да се опреш. Особенно трудно е, когато разработваш библиотека, а не продукт, защото хората за които е предназначен, са други разработчици, а не крайни потребители. Принципно приходите идват от консултиране и поддръжка, и с библиотека това е по-трудно.

За финал, получавам ето такива съобщения (не обръщайте внимание на дата, това форментира няколко месеца като чернова):

Project still alife?

Hi!
First of all, Thanks for your great work, your API is fantastic.
But: You didn’t release a new version since a year. Are you still developing your great framework?
I am currently looking for a third-party tool for integration into my software, but don’t want to deal with a dead project…

As I guess from your replies in the Forum, you are still active, so my second question:
Are you going to release a next version and if so, when?

Regards
Kevin – who is not interested in an unstable SVN version ;-)

Точно както го е писал Дончо, „сега“ и „веднага“ са относителни в ситуацията на разработчик на проект с отворен код. Неам време да се занимавам в близката година с проекта, особенно краткосрочно, най-вече с два крайни срока подпиращи ме отзад – private alpha за 1 септември и public beta за 1 октомври ;) Реалността е съвсем друго нещо, съвсем друга игра. Освен библиотеките с отворен код, върху които работя, работя и върху няколко приставки/плъгина за WordPress, което за мен са доста по-лесни, защото работата е много по-малко като обем, не са толкова „мащабни“ (относително казано, може би като количество код), и лесно се оправям с новите версии и бъговете за един-два часа след работа. Един-два часа, но пък кой ти ги дава – и така примерно обновяването на приставката за бутоните на Svejo трябваше да чака от април чак до юли.

Ех, сега от Zend ако ме наемат (мен директно, или компанията за която работя) за да се направи нов модул за Zend Framework за работа с изображения, базиран на Asido, ще е супер кеф ;) Хем ще има финансова опора, хем ще се занимавам се нещо което ми е интересно ;) А и не е късно, защото още май никой не работи върху драфтовете за Zend_Image ;)

R.I.P PHP 4

От днес спира поддръжката за PHP 4. Днес има много постове за това (а и ще има сигурно още). На мен ми хареса най-много това на Дерик Ретанс:

Now, more than 3 years after the last major PHP 4 release, it is time to die down. With hardly any support for OO, sub-standard XML support and generally lots of other suckyness as well, it’s time to focus on the future: PHP 6. So please die PHP 4 – and quickly. Today, August 7th, 2008 is the last release of PHP 4 – PHP 4.4.9. After today there will be no more PHP 4 releases, regardless of whether there are security issues found in PHP 4. It’s time to upgrade now.

Ами, хайде ;)

Версия 0.3.1 на приставката за добавяне на Svejo.net бутони

Готова е следващата версия, която оправя грешка, която се появява под Internet Explorer (открита е при IE7, и после е потвърдена и при IE6), заради инициализирането на джаджата за избиране на фон на бутона.

Шибаната грешка в шибания Internet Explorer…
Шибаната грешка в шибания Internet Explorer…

Благодаря на Светлин Големански, който съобщи за проблема. Новата версия може да изтеглите от тук:

а повече за проекта може да прочетете тук:

Ако и вие сте забелязали проблеми, направете като Светлин и не се притеснявайте да ги докладвате ;)

SVN настройки за auto-props

Ето нещо, което изглежда супер лесно, но все пак на моменти е егати предизвикателство за някои хора. За да улесня всички, ето кратки инструкции как се прави.

Отваряте си конфигурационния файл на SVN. След това намерете enable-auto-props настройката, и я променете да е със стойност yes.

enable-auto-props = yes

След това намерете секцията, която се казва [auto-props]. Там трябва да дефинирате кои типове файлове ще се ползват от възможността за auto-props. За PHP разработчици, ето това ще свърши работа:

[auto-props]
*.php = svn:keywords=Id Rev Date; svn:mime-type=text/x-php
*.html = svn:keywords=Id Rev Date;
*.htm = svn:keywords=Id Rev Date;
*.txt = svn:keywords=Id Rev Date;
*.xml = svn:keywords=Id Rev Date;
*.js = svn:keywords=Id Rev Date;
*.css = svn:keywords=Id Rev Date;

Ако вече имате създаден файл в SVN, на който сте изпуснали да оправите тази настройка, може да поправите „щетата“ по следния начин от командния ред:

svn propset svn:keywords "Id" BigFatSecret.php

Може да посочите папка, или да ползвате нещо като *.php например. Аз лично съм си го направил на  макрос към редактора, за да не го пиша всеки път на ръка – нещо такова:

svn propset svn:keywords "Id" %f

Не е сложно, нали ? Ако пак не се сещате как се правеше, елате и прочетете инструкциите пак.

Версия 0.3.0 на приставката (плъгина) за добавяне на Svejo.net бутони … най-накрая!

Най-накрая съм готов! След няколко дена работа, крайния резултат е готов, и вече би трябвало да може да си обновите блоговете с новата версия на приставката (плъгина) за добавяне на Svejo.net бутони. Какво е променено:

  • Това с експерименталното борене с Internet Explorer беше фиаско, защото освен добавянето на избор за това в настройките, друго не беше направено. Това недоглеждане вече е оправено, и от тази версия (0.3.0) вече може да ползвате експерименталния скрипт (скрипта се зарежда онлайн, и не е във файловете на приставката).
  • Освен това, оправен е бъг, който трабваше да се публикува от междинна 0.2.9 версия, обаче така и не остана време да го пусна. Благодаря на Кристалин Чавдаров, който ми писа за този бъг, и помогна за да се ориентирам къде е проблема.
  • Оправен е проблем с новата версия на WordPress 2.6, който пречи на работата с изображения. Не съм търсил къди точно се „карат“ двете неща, ами добавих проверка, така че JavaScript-а и CSS-а за приставката да се добавят само ако си на страницата с настройките. Благодаря на Пенко Пенев и Николай Бачийски които докладваха за проблема.
  • След излизането WordPress 2.6, и „затвърждаването“ на новия тип интерфейс, най-накрая зарязах външния вид съвместим с 2.1, и обнових страницата с настройките, така че по-добре да „пасва“ на новия изглед на WordPress административния панел. Копчето за запазване на настройките е вдясно – в страничната колона, под настройките за облига и разположението.
  • Променил съм малко „карантиите“ на приставката, като съм разтоварил основния файл от неща, които се ползват само в административния панел. Така приставката ще работи маааалко по-бързо. Използвам и една малка библиотека, която написах за генериране на контроли във формите на административните страници.

Доста неща са променени в новата версия, така че ако нещо „гръмне“, не се притеснявайте да се обадите и да видим къде е проблема. Новата версия може да изтеглите от тук:

а повече за проекта може да прочетете тук:

Ако и вие сте забелязали проблеми (или правописни грешки), помогнете да направим приставката по-добра, и не се притеснявайте да ги докладвате ;) Както виждате, работя върху отстраняването на бъговете, макар и късно ;)

Понеже на WordPress.org нещо не им работят скрийншотите, ето как изглежда новата версия:

 Приставката (плъгина) за добавяне на Svejo.net бутони!
Приставката (плъгина) за добавяне на Svejo.net бутони!

 Приставката (плъгина) за добавяне на Svejo.net бутони!
Приставката (плъгина) за добавяне на Svejo.net бутони!

 Приставката (плъгина) за добавяне на Svejo.net бутони!
Приставката (плъгина) за добавяне на Svejo.net бутони!

Какъв съм ?

Ето нещо което не съм очаквал да чуя:

„Ти си прекалено уеб 2.0, и не си достатъчно ентърпрайз 2.0“

Просто формулировката ме разбива отвсякъде. Къде ми е шапката?