Friday, March 23, 2007

Господа БОПаджии, отиваме на митинг!

През изминалите седмици бях много радостен, че емигрирах. Никога не съм се чувствал по-уверен в правилния си избор. Въпреки че никога не съм ползвал торенти, се чувствам длъжен да изразя негативното си мнение отсносно случилото се. Бях отвратен от тенденциозното и поръчково арестуване на шефовете на торент-тракерите и нелепото конфискуване на хардуер от Замунда.НЕТ. Господа специалисти в организираната престъпност, торентите не са дечица, които поръчват с чужди кредитни карти. В този ред на мисли, не можете да влезете току-така някъде си и да конфискувате всичкия хардуер, който видите. Не можете да си представите колко паднахте в очите на хората с това свое действие. Как и кой ви подшушна, че имате правото да конфискувате рутер, под предтекст, че вътре може да откриете пиратско съдържание? Как ще намерите пиратско съдържание в антена, бе, марули? Там няма носител на информация. Това е просто една антена (преносител). Антена, като онази в телевизора ви, но малко по-сложно устроена.
И кой ви излъга, че поръчката ще мине току-така и че можете да обвините торент-тракер в съучастие за пиратство и нарушение на авторски права, при положение, че на страницата за регистриране всеки потребител се съгласява с условията на ползване, в които пише изрично, че именно ТОЙ (потребителят) носи отговорност за разпространяваната от НЕГО информация. Торент-тракерите, ако не ви е ясно, не правят повече от това да осъществят връзката между 2 техни потребителя. Какви данни ще си обменят те, дали документи, дали снимките от абитуриентската, дали детско порно, си е техен избор. Т.е. ако някой е нарушил нечии авторски права, това са потребителите.
По същата логика трябва да арестувате и БТК и Нетерра и да конфискувате и техния хардуер, защото те, като доставчици на интернет услугата, също се явяват един вид съучастници в разпространението. Защо не арестувате и тях?
Задавам си въпроса "В каква държава съм израстнал?" Допустимо ли е органите на реда да са толкова некомпетентни (или корумпирани)? Как да има благоприятен бизнес климат в страната при тези обстоятелства? Нормално ли е профани да нареждат на националния интернет доставчик да филтрира достъпа до даден сайт, като по този начин нанася неименуеми огромни загуби на нечий бизнес? Какво остава за опетняването на името на съответното лице и неговата търговска марка? Как да се чувствам аз спокоен и сигурен в своя интернет бизнес? По какъв начин ми го гарантира държавата?
Искрено се надявам да се получи някакъв вид дебат и на тези въпроси да се дадат адекватни отговори в следващите дни. Всички ние трябва да дадем своя принос за това и да бъдем единни "като таксиметрови шофьори", защото това касае пряко нашите бизнес интереси. И не само тях. Нарушават ни се и правата на потребители, като ни се отнема достъп до една от най-разпространената услуга за обмен на данни, а без свободен обмен на данни се губи смисъла на Мрежата като такава.
С подобни наредби от висшите органи заприличваме на тоталитарните държави като Либия и Китай. Това е безсрамен акт на цензура, която е забранена от Конституцията на Република България.
И в този ред на мисли аз съжалявам, че няма да мога да присъствам на днешните митинги, но се надявам, че тези въпроси ще бъдат повдигнати пред правителството. Въпрос на граждански дълг е обществото да се защити от посегателства върху правата му. Не трябва да се позволява темата да се обръща в "за и против пиратството". Трябва да се говори за правата на потребителите и за бизнес-обстановката в българското Интернет пространство и да се поставят съответните искания, за да може тя да се промени.
На нож!

Wednesday, March 7, 2007

Euroweb търси PHP програмисти в Пловдив

Чувствам се странно. Фирмата, в която работя в Германия отваря офис в родния ми град и търси PHP програмисти в района. Трудно е да се опише, наистина. На Жоро Гроздев му дадоха да отвори уникален офис до Сточна гара с оптична интернет връзка, чисто нови компютри и огромни бюра. Остана само да се сформира "млад, сплотен и енергичен екип", който да се грижи за нуждите на немската интернет фирма. А аз съм в Германия...
Между другото, те все още набират екип, така че ако някой ако иска да работи в пловдивския офис на Euroweb може да разгледа обявата в BGDev.

Creating an AJAX2PHP Environment

"Как да създадем AJAX2PHP работна среда." Голямо заглавие, а? ;) Тия дни се занимавах точно с това на работа. Реших да имплементирам по най-модерния начин алгоритъма за CRUD на едно типично отношение "много към много". Едностраничен панел със селектбоксове и мениджмънт, опростен до стандартните 2 клика за всяка акция. И благодарение на AJAX-а всичко се опреснява на секундата, без да презарежда страницата. Намерих много добро примерно решение на проблема, само трябваше да се добавят няколко скриващи се формуляра за редакция и да се направи всичко с AJAX.
Всичко беше ясно как трябва да се направи. Съвсем стандартен MVC, който трябва да подсигури една среда за Remote Procedure Calls. Планирах да го направя като standalone, затова всичките функции за CRUD-а се написаха в един бащин клас, през цялата логика се викаше Object Factory и от там $$name->method() присъстваше във всяка RPC функция. Просто и лесно, а резултата е прекрасен.
Логиката беше следната:
  1. Базата данни съдържа три таблици - "потребители", "услуги" и "потребители/услуги". Останалото е ясно ;)
  2. Пише се един бащин клас с основните функции за интерфейса (Create, Read, Update, Delete) по универсален начин за първите две таблици;
  3. Синовете на класа съдържат името на таблицата и полетата от тази таблица в един масив, чрез който се генерират MySQL заявките;
  4. Създава се gateway файла за RPC-тата, където се викат класовите функции на съответните обекти;
  5. JavaScript/AJAX имплементацията на съответните заявки, като резултата след това се изобразява в съответния панел, а списъкът се опреснява;
  6. Имплементация на интерфейса за връзките с 2 мултиселектбокса;
  7. Документация :)
На пръв поглед лесна работа, но в нея се съдържат много фундаментални проблеми около MVC, RPC, DHTML (тия табове с ObjectFactory бяха много интересни..) и като цяло стил на писане в OOP.
Само един проблем обаче ми остана нерешен и неясен. В точка 5 през цялото време трябваше да се опреснява една част от страницата, базирана на резултата от друга, заради AJAX заявките. Всичко беше написано модуларно в PHP логиката и трябваше да се предават параметри, които се връщат от другата страница. PHP-то за листинга и за формулярите винаги трябваше да знае дали става въпрос за потребителите или за услугите. Реших проблема с глобални JavaScript променливи, но със сигурност има по-добри решения. Мисля, че JSON би се включил добре в ситуацията, но още не съм работил с него и дори не знам откъде да чета. Някой ако има предложения да пише в коментарите.