Archive for the ‘Web development’ Category

PHP: Алгоритъм за проверка на Единен идентификационен код (ЕИК) на фирма – БУЛСТАТ

December 4th, 2011   

Покрай суперсекретния ми И публичен мега-мегаломански проект ми трябваше да валидирам ЕИК номера на фирми. Питах чичо Гугъл да ми каже къде мога да намеря PHP реализация, но за моя голяма изненада се оказа, че точно за PHP няма (или поне аз не успях да намеря, но не съм се ровил след 1-ва страница). В най-добрите традиции на синдрома NIH написах един клас за проверка за валидност. Надявам се да е полезен на някой и да му спести време.

Важна забележка: тестван е само с 9-цифрови ЕИК, защото не можах да намеря примери за 13-цифрени, така че ако ще го използвате с такива е необходимо да проверите дали работи ОК с тях.

 

WordPress убил бизнеса с фирмените сайтове?

August 24th, 2011   

Наскоро пихме бира с колеги web developer-и и общо взето целия разговор се въртеше около това колко тегава е станала бизнес средата, как били паднали цените за изработка на фирмени сайтове и че за това бил виновен WordPress, защото всеки пикльо вече можел да го инсталира, да качи някой плъгин и те ти фирмен сайт за 200-300 лева.

Бях твърде зает да флиртувам с преразкошната сестра на Миро и не можах да се включа в този разговор, затова сега ще компенсирам и ще изложа "некои съображения" и моля да ме "изслушате по-подробно" :-) :

Айн. Тази работа с обвиняването на WordPress е малко като с кривата ракета и космоса. Преди него беше Joomla-та и пак нея псувахме, че келеши работят за по 150-250 лева на парче. Още по-преди това пък беше статичния HTML и келешите с DreamWeaver (работещи в design view (omg, извратеняци, ламери))  даже и за по 100 лева правеха сайт с 5 странички (home, за фирмата, за контакти, продукти, услуги) (този тип сайтове бяха наричани "5 стинки" (идваше от съкращението 5ст. (пет статични))). В този ред на мисли, както виждате, има подобрение в нивата на заплащане ;-).

Цу цвай. Явно винаги ще има хора, които да подбиват цените и това е така, защото просто (more…)

Senior PHP Developer's Skillset

August 2nd, 2011   

Преди около 2 години бях направил долната схема, която представя един от възможните комплекти необходими познания, за да може един PHP developer  да бъде класифициран като "Senior". Включва само базови неща, един пълен осъвременен набор би включвал и няколко различни framework-а / системи като например Zend framework, Cake, Simphony, WordPress и т.н.

Вчера случайно попанах на нея и ще използвам случая специално да поздравя PHP екипа на TRS: Пичове, спрете за  5 секунди да се мислите за господ, прегледайте схемата и вземете да учите и отмятате едно по едно. Със сегашното си поведение се излагате и пред колегите си, и пред клиентите си…

Отделно, надявам се схемата да е полезна на начинаещите PHP developer-и, които тепърва навлизат и искат след време да станат "Senior".

Размерът на "балоните" съответства грубо на размера на знанията и колко време отнема да се научат на "достатъчно ниво". Примерно ако PHP балона е 20 пъти по-голям от CSS балона, това означава, че ще е необходимо 20 пъти повече време да се отдели на PHP.

(click за пълен размер)

Съкращаване на URL с http://goo.gl/

October 1st, 2010   

Понякога се налага да пращам дълги URL-та и все не мога да запомня сайтовете, които предлагат тази услуга (даже и сега не се сещам да дам пример). Google  са пуснали техен сайт за тази цел, който е на адрес: http://goo.gl/.

Този постинг e най-вече с цела самият аз да запомня този сайт, а ако не успея -- отивам на операция да ми ампутират мозъка.

Tangra Framework достигна ранг 161 от 100к+ в sourceforge

April 3rd, 2010   

В деня на шегата 01.04. излезе версия 2.3.0 на Tangra framework. На следващия ден се изкачи то позиция 161 в класацията на проектите в sourceforge. Предишния най-добър резултат беше ~363. По важното е, че напоследък стабилно се задържа в top2000.

Загуба на обратна съвместимост в PHP 5.3

March 19th, 2010   

Тия дни експериментирам с PHP в областта на тестване на бързодействието и profiling. Покрай това инсталирах xampp на win машината, който идваше с PHP 5.3.1 (на линукса съм с 5.2.х). В един момента забелязах, че някой файлове гърмят, защото били използвани deprecated функции (примерно ereg()). Отне ми известно време да разбера, защо, аджеба, става така и ето резултата:

По някое време са въвели error_reporting флага E_DEPRECATED (вероятно в 5.3), който сега участва в E_STRICT. При мен (в tangra framework) има два режима на работа -- нормален E_ALL | E_STRICT и php4 режим (използва се, когато се включват php4 или просто калпаво написани външни библиотеки), който е само E_ALL. По подразбиране в 5.3.1 в php.ini (поне в xampp пакета) error_reporting е E_ALL & ~E_NOTICE & ~E_DEPRECATED. Получава се така, че с моята настройка E_ALL | E_STRICT аз де факто активирам E_DEPRECATED и оттам ми идват проблемите.

Това, което ме дразни е, че PHP пичовете са включили E_DEPRECATED в E_STRICT и изненадват неприятно всички, които го използват. Доста приложения ще поизгърмят и ще съсипят съня на не един и двама php developer-и. В интерес на истината, проблемът се оправя относително лесно и бързно, ама може ли така безхаберно да чупят обратната съвместимост. Да бяха направили E_DEPRECATED независим флаг, а не да го включват в E_STRICT… :-(

Допълнителни инструменти за PHP програмисти

October 7th, 2009   

php_nekoiВ предишния постинг говорих за основните инструменти като редактори за PHP код, HTML и изображения. Освен тях всеки PHP програмист използва и други tool-чета с които си улеснява живота и тук ще стане дума за тях. Ще стане дума като за stand-alone продукти, така и за плъгини. Ориентацията основно е към Windows, но ще се радвам ако постнете в коментарите алтернативи и за Linux.

1. SSH клиент

SSH клиента е необходим, когато искате да се логнете в Linux/*BSD сървър. По принцип на много PHP developer-и рядко им се налага да го правят, но ако си поддържате ваш линукс сървър вкъщи или трябва от време на време да свършите нещо на служебния, за да не губите времето на сисадмина ще ви е необходим.

Аз съм се спрял на PuTTY. Има всичко, което ми е необходимо (т.е. достатъчно настройки за разни дреболии). Единствения недостатък, който съм открил е, че не върви кажеш на някоя колежка: "Отвори си путито, за да ми влезеш в сървъра" ;-).

2. Администрация на БД

(more…)

Избор на редактори / IDE-та за PHP, HTML, изображения или "Майсторът се познава по инструментите"

October 6th, 2009   

php_nekoiС годините работата на PHP програмистите започна да става все по-сложна и обемиста. Ако едно време обичайния проект беше да се направи проста регистрационна форма и няколко динамични странички и всичко това подплатено с 4-5 DB таблици, то днес нерядко се сблъскваме с проекти, които имат 30-40 форми, 50-60 динамични страници, 30-40 DB таблици, cron job-ове, ajax-и, CVS-и, XML-и и т.н. Накратко казано: нещата загрубяха и вече не можем да си позволим да губим време за глупости. Един от проблемите, който забелязвам доста често е, че много developer-и използват "кекави" текстови редактори за работа с PHP код и по този начин си "спестяват" възможността да си ускорят работата, като едновременно с това я направят по-лесна и като страничен резултат -- по-качествена.

Има един принцип в удобството за използване и той гласи "На човек най-удобно му е това с което е свикнал". Макар, че е донякъде казано на майтап, всъщност, до голяма степен това изречение описва защо много хора са изключително негативно настроени към смяна на редактора, който използват. Когато си "копал" примерно  UltraEdit в продължение на 2 години после и най-доброто IDE като Zend Studio Client ти се струва тегаво и досадно и трябва да мине поне месец, за да свикнеш с него. Една от най-добрите мотивации, които може да получи човек за смяна на досега използвания продукт е да липсват в него полезни / удобни функции, които са налични в друг. По-долу ще бъдат изброени различни продукти заедно с кратко описание на "изкушенията", които могат да ви накарат да си "смените вярата".

(more…)

N съвета за PHP програмисти

October 5th, 2009   

php_nekoiПреди около месец за пореден път се учудих как е възможно PHP програмисти, които имат над 3-4 години опит все още да си ограничават собствената продуктивност, поради неследването на няколко относително прости правила в работата си. Това ми даде необходимата мотивация да напиша серия от постинги, които съдържат съвети, които е възможно да улеснят живота на немалко колеги (предварително се извинявам на тези, на които ще се сторят прекалено елементарни -- просто тези постинги не са предназначен за вас).

Поредицата ще включва статии относно:

  • избор на редактори / IDE-та за PHP, HTML, изображения или "Майсторът се познава по инструментите"
  • използване на Template engine (Smarty). Разделение между логика и презентация или как да не си стъпваме по пръстите с дизайнерите;
  • използване на Database abstraction layer (ADODB) или как да не зависим от конретна RDBMS;
  • PHP5 и какво е наистина новото и полезното в него спрямо PHP4 или краят на "едно си баба знае -- едно си баба бае";
  • система за контрол на версиите (svn) или как да не си стъпваме по пръстите с колегите програмисти;
  • основни линукс познания или как да не изглеждаме като ламери;
  • проектиране на DB за web приложение или как да не си скубем косите, когато дойдат късни change requests
  • колекция от дребни трикове за улесняване на живота;
  • PHP frameworks или защо е по-добре да участваме в надревара във въоръжаването, отколкото да откриваме топлата вода отново и отново.

Ще гледам поне веднъж седмично да написвам по един постинг от изброените горе, а когато ги привърша -- теми за нови -- бол.


Разочарование от новата версия на OpenProj

September 16th, 2009   

openprojПреди година-две с приятна изненада открих, че има free алтернатива на Microsoft Project, която се нарича OpenProj. Свалих си го и го бях ползвал за два-три малки проекта. Въпреки, че имаше доста бъгове -- на мен ми вършеше работа. После нещата се завъртяха така, че забравих за него и така до сегашния момент, когато отново ми притрябва project management софтуер.

Последната версия на OpenProj е 1.4.2. Свалих я, инсталирах и… разочарование. Работи изключително бавно, интерфейса замръзва след буквално всяка операция за 1 -- 5 секунди. Тъпо и упорито се опитах да направя един проект и да вкарам няколко задачи, но просто не ми издържаха нервите.

Най-вероятно забавянето идва от някакъв конфликт с версията на Java-та която имам (последна), но честно казано -- нямам идея как да го оправя това (имах подобни проблеми навремето със Zend Studio-то).

Явно ще трябва пак да се правят нещата по първобитния начин с електронна таблица…