August 29, 2008

jQuery: Be a JavaScript Rock Star!

<em>jQuery:</em> Be a JavaScript <strong>Rock Star</strong>!

jQuery е с нов външен вид на сайта, който е много по-весел от предния прото-уеб-две-нула сайт. Много ме кефи заигравката в заглавната част, която просто отвлича вниманието от слогана “Write Less, Do More”, и просто ти навира в очите “Be a JavaScript Rock Star!

August 28, 2008

Krumo в действие

Ето това вече е <em>"известен програмист"</em> ;)

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

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

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

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

August 15, 2008

CodeIgniter vs Zend Framework

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

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

August 10, 2008

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

Поддържане на проект с отворен код изисква време и енергия. Много проекти изискват много време и много енергия. За съжаление, свободното време и излишната енергия не са нещо, което се намира много напоследък (от новогодишната баница все искам да ми се падне късмета с “Отпуската”), и ако трябва да се избира между почивката, или работата върху рапортуваните бъгове и нови възможности, нали знаете кое ще спечели. Два от моите проекти (извън работата върху 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 ;)

July 31, 2008

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

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

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

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

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

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

July 26, 2008

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

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

July 24, 2008

Версия 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 бутони!

June 25, 2008

License Quiz

Ето нещо интересно — може да изпробвате вашето познаване и тълкуване на два от най-разпространените лицензи: GPL и LGPL.

Да ви кажа, аз се изложих ;)

June 22, 2008

Kiax ver. 2 Beta 2

Излезе следващата бета на Kiax. Вече има байнърита за Linux и Windows, а скоро ще има и за Mac OS X. Повече за новата версия може да прочетете тук:

June 20, 2008

jsTree: jQuery-базиран компонент за дърво

Днес видях нещо на Ajaxian, което ми хареса. Наши момчета са написали този плъгин за jQuery с който може да се направи “дърво” — jsTree (да се илюстрира дървовидна структура). По-подробно представяне може са намерите тук:

самия проект може да намерите тук:

а демострация може да намерите ето тук:

Ще се радвам да виждам повече български проекти с отворен код. Поздрави на Иван Божанов и Илия Горанов за свършената работа.

June 18, 2008

Конференция на тема Отворен Код и Install FEST 2008 Русе

Да не забравите заради започването на бирения фест! Има по-важен “фест” тази седмица, в събота, в корпус 2 на “гнилия” Русенкси Университет (тъпо е да се обеснява играта на думи, дано загреете). Ето и официалното съобщение:

Ruse LUG, РУ “Ангел Кънчев” и “Нетуоркс България” ООД организират първата конференция на тема Отворен Код и първия Install FEST 2008, които ще се проведат на 21 юни 2008 година в град Русе от 10:00 часа в корпус 2 на РУ “Ангел Кънчев”, зала  209 (намира се над зала 101).

Както РУ “Ангел Кънчев” така и “Нетуоркс Бълария” ООД използват приложения и операционни системи с отворен код.

Програмата на събитието е следната:

  • 10:00 Представяне на Wordpress 2.5 (лектор Красимир Панайотов)
  • 10:30 Представяне на отворения филм Big Buck Bunny (лектор Стилиян Стефанов)
  • 11:00 BSD за Linux потребители (лектор Велислав Върбанов)
  • 12:00 - 13:00 Обедна почивка
  • 13:00 Представяне на KDE 4 (лектор Красимир Панайотов)
  • 14:00 Представяне на Qt (лектори Емил Стоянов и Велислав Върбанов)
  • 15:00 - 17:00 Install FEST 2008 и жива дискусия с посетителите на събитието

За участниците ще има безплатни дискове с Linux дистрибуции и много други изненади.

Елате да видим какви са изненадите, да оберем дисковете, и да подкрепим всички лектори и организатори за положените усилия. Специални поздрави за Красьо, инж. Емо Стоянов и д-р Велислав Върбанов.

Reddit ще представят целия си код под лиценз за отворен код

Reddit, който според мен е бащата (или майката) на всички нароили се в последствие social-bookmarking сайтове, ще покаже какви са му карантиите. От компанията са решили да представят всичкия код на проекта под отворен лиценз. Повече информация и коментари може да намерите тук:

PS. Повече технически детайли може да намерите тук:

June 8, 2008

jQuery Release 1.2.6

Толкова неща имам “задържани” като чернови, че тази събота и неделя се скъсах да пиша в блога. След това сигурно пак няма да влезе нищо за цял месец ;) Както и да е, да се фокусираме на интересните новини.

Последните седмици имаше две събития на които трябваше да обърна особенно внимание. И двете са нови версии — едното е новата версия на Kiax за която преди малко писах, а другото е новата версия на jQuery -  jQuery 1.2.6!

На прима виста се набива на очи скока от 1.2.3 на 1.2.6, което означава, че бая работа е хвърлена по новата версия — никой не прави такова прескачане само заради няколко оправени бъга. Най-голямата гордост на тази версия са подобренията в скороста, като най-важното е че работата със събитията е вече два пъти по-бърза. За мен (а и за коментара на Ajaxian от линка по-долу), е добавянето като core възможност да си мериш разстояния и отстъпи — нещо което преди беше на плъгин (нямам нищо против плъгините, просто поддържането на основния пакет е по-добро).

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

PS. Пак се заканвам, че по-късно ще пиша по болната ми тема аз поддържанието на проект с отворен код, колко време отнема, колко работа, и т.н. Сигурно ще бъде супер егоистична оценката ми, но пък ще говоря от опит ;)

Kiax ver.2

Преди около седмица излезе новата версия на безплатния “софтуерен телефон” с отворен код Kiax. За да видите какви са подобренията в новото издание, посетете страницата на проекта:

или прочетете краткото съобщение от блога на фирмата, която го разработва:

June 4, 2008

fbOpen - Facebook платформата

В началото на седмицата излезе платформата за приложения на Facebook пусната под отворен лицензfbOpen (може да си я изтеглите от тук). След като миналата година видяхме що за гарги представлява кода на home страницата, сега ми стана любопитно до видя какъв код са пуснали. Отново видях същите бози.

Документирането на кода е под всякаква критика. Не са забравили да сложат голям блок в началото на файловете за да напомнят под какъв лиценз е пуснат този проект, и това е може би нещото, което най-близо се доближава до добре написана документация в кода. Документацията не е фетиш на педантичните, а е нещо наистина полезно и удобно. Един такъв голям по размерите си проект ще е необходимо да се обслужва от добре написана документация, защото алтернативата е винаги когато ти потрябва нещо да се ровиш из кода. Документиран код в “индийски стил” с коляма купчина коментари а ла “// whatever” преди всяка функция е напълно безполезен, защото все още ни знам някой документатор да го парсва, а и де има, ще е голямо чудо на техниката заради косматия формат на инфирмацията (ако изобщо може да се говори за формат). Горе-долу същите критики може да се отправят и към WordPress, само че там се работи много усърдно върху документацията както вътре в кода, така и ресурсите които се предоставят на разработчиците. Да се надяваме, че от Facebook ще поработят за да поизгладят кода си.

За краткото време което разглеждах PHP файловете от проекта не можах да намеря и един клас или обект, и може да си представите какъв кошмар ще е един такъв голям проект като набор от разхвърляни функции. Отново, същата критика може да се отправи и към WordPress, но в по-малка степен, защото там проектът е замислен като такъв, който да работи и с двете версии на PHP (PHP4 и PHP5), докато за един “сървърен” проект като fbOpen ограниченята, налагани от съобразяването с реалноста на споделения хостинг отпада, и те могат да работят с по-новите и по-добри версии, които предлагат много повече възможности, представени от новия PHP5 (нов, нов, през есента ще стане на 5 години май).

На едно място прочетох, че стила на писане във fbOpen (а и в изплютия файл от Facebook миналата година) е заради подобрения на изпълненето, и по-добро използване на ресурсите. На мен ми изглежда като тъпо оправдание за немърливо написан код, и още по мърляшка поддръжка.

За финал остава само разочарованието, че клиентите не виждат “боклука” с който работят. Те виждат интерфейса, копчетата, възможностите които предлага сайта (и платформата). Май се оказва, че качеството на кода не е от значение. Нали ?

May 15, 2008

Google Doctype: Документиране на отвореното уеб пространство

Ето нещо интересно от Ajaxian.

Марк Пилгрим (Mark Pilgrim) публикува Google Doctype, един проект за отворена енциклопедия и библиотека от документация. “Написана от уеб разработчици, за уеб разработчици”. За начало е супер и вече има статии за уеб сигурност, работа върху DOM с JavaScript, CSS съвети и трикове, и т.н.

Частта с документациите включва прогресивно растяща библиотека с примерни тестове за проверка на cross-browser и cross-platform съвместимост.

Това е само началото на един амбиционен проект, който е отворен, с отворен код, и публикуван под отворен лиценз (Creative Commons). Сега е време да се включат разработчиците, и да помогнат за изграждането на един наистина ценен проект с огромна маса полезна информация.

Да поздравим Марк Пилгрим за началото на проекта. Един бърз поглед на проекта ще ви покаже колко много работа е хвърлена там, и се надявам че и вие ще се радвате, че нещо такова е направено. На сайта на проекта може да видите и интервю с автора, който споделя своите идеи и първоначални впечетления за проекта.

April 16, 2008

HeFo: Header & Footer WordPress Plugin, версия 0.2

След като предложението ми за нов core feature на WordPress беше отхвърлено, бях посъветван да публикувам тази функционалност като отделен плъгин. Тъй като вече бях направил такъв плъгин с който да демострирам възможностите му, това стана много лесно и бързо. След като на 13 април 2008 подадох молба за добавянето му в официалното хранилище за плъгини на WordPress.org, още същата вечер пристигна удобрението. За съжаление няколко дена не намерих време да commit-на първата версия на плъгина, но днес вече съм готов ;) Плъгинът може да бъде изтеглен от тук:

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

Както съм казвал и преди, ако сте забелязали проблеми, помогнете да направим плъгина по-добър, и не се притеснявайте да ги докладвате ;) Обещавам скоро да намеря време и да подобря малко административната страница на плъгина, за да се впише по-добре в нови изглед на WordPress 2.5

April 12, 2008

WordPress и неща добавяни в хедъра и футъра…

При работата с WordPress често ми се налага да сменям и ъпдейтвам теми, и един от проблемите които срещам е, че често забравям да добавя кода за уеб-тракерите ;) За да се преборя с този проблем написах малък плъгин, който ми позволява да добавям допълнителния код независимо коя тема е активна в момента. Този плъгин използва wp_head и wp_footer таговете, чрез които се вмъква допълнителния код. Така дори и да смените темата, добавените неща си остават. Обикновено се вмъкват допълнителни мета тагове заради Google Webmasters и Yahoo Webmaster Tools, или за верификация в онлайн услуги като Technorati, или JavaScript код като за Snap.com например, или най-често срещания случай - код за уеб броячи като Clicky, Tyxo или Google Analitics.

Вчера предложих идеята в тракера на WordPress като предложение за нова възможнст на приложение, и след това я пуснах във “wp-hackers” мейлинг листа. Сега очаквам да разбера какво мислят хората с малко по-професионална насоченост към WordPress. В същото време, ако вие имате мнение по въпроса, ще се радвам да го чуя. Ако искате да изтеглите плъгина кайто съм направил, за да разгледате по-отблизо за каква функционалност говоря, използвайте този линк:

April 5, 2008

Версия 0.2.8 на плъгина за добавяне на Svejo.net бутони се бори с проблем на IE…

Тази версия на плъгина е посветена на справянето на един бъг, предизвикан от Internet Explorer. Мразеният от всички нас браузър не се справя с кодирането на кирилски текст когато той е поставен като HTTP параметър. Грешно кодираният URL не се разчита правилно от уеб сървъра на Svejo.net, и като резултат вместо бутона се отпечатва съобщение за грешка. Решението за този проблем беше намерено преди повече от месец, и вече съм изпратил решението (който е да се ползва encodeURI() за всички GET параметри) и инструкции на момчетата от Svejo.net, които за съжаление са ужасно заети с обемен ъпгрейд на сайта си. Заради честите запитвания за решение на този проблем реших да предложа временно решение, което позволява да изберете кой JavaScript файл за бутони да използвате - оригиналния от Svejo.net (който предизвиква проблема в Internet Explorer), или специално написан от мен, който се справя с този досаден бъг. Сигурен съм, че в края на течащият в момента ъпгрейд, момчетата от Svejo.net ще оправят и този проблем, след което ще премахна току що добавената възможност.

Благодаря на Иван Желев, който ми писа за този бъг, и помогна за да се ориентирам къде е проблема (а и за търпението, защото този проблем беше “рапортуван” на 7 януари 2008).  Новата версия може да изтеглите от тук:

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

Ако и вие сте забелязали проблеми, помогнете да направим плъгина по.добър, и не се притеснявайте да ги докладвате ;) Както виждате, работа за отстраняването на бъговете, макар и късно ;) Скоро очаквайте следващата версия, която ще се възползва от новия външен вид на административния панел на WordPress 2.5

April 1, 2008

WordPress 2.5

Това е новина, която приемам със смесени чувства … супер е , че най-накрая излезе новата версия. За разлика от WordPress 2.3 няма големи промени в структурата на базата данни, или в начина по който работят карантиите вътре. Разликите са основно във административния панел, който изглежда по коренно различен начин (като при смяната от 1.* към 2.*), а и има нови функции. Докато новата версия беше все още release candidate трябваше да намеря време и да си оправя плъгините да са съвместими, но все няямаше време. Сега вече е наложително, защото версията вече излезе официално ;) Така, че надявам се разбирате смесените ми чувства - много работа ме чака тази събота и неделя…

Напред