Claudiu Persoiu

Blog-ul lui Claudiu Persoiu

Archive for 30 July 2009

MySQL Certified Developer – last episode

without comments

After taking MySQL Certified Developer exam a few weeks ago,  as telling in a previous blog, the moment has arrived. Is a little crooked because it was forced in the mail box, but my diploma has arrived! Surprisingly it took only two weeks, compared to that of the Zend, which took almost 8.

My name was published on the site in a few days, but I was unableto access my account until after I received the diploma. What is strange is that in the envelope is not the password of the account, but the instructions to receive it.

Beside the diploma, in the envelope there are instructions for using the logo and account, and besides that a card with my name and certification, which I do not understand what is for.

And another weird thing is that, the diploma is signed by Micheal “Monty” Widenius and Marten Mickos who no longer work at Sun MySQL. Obviously I do not know how true are the signatures, but at least Ulf Sandberg (VP Service MySQL AB) signature is real.

But diploma looks very good, and make a good pair with the Zend one. Now I hope it will be useful.

Written by Claudiu Persoiu

30 July 2009 at 9:13 PM

Posted in MySQL

Tagged with , ,

Good bye YSlow, welcome Page Speed

without comments

After more than a year of using YSlow, apparently with the arrival of FireFox 3.5 this plug-in is no longer supported.

YSlow is a very interesting tool created by Steve Souders, who wrote High Performance Web Sites, and the new Even Faster Web Sites.

The plug-in, which used the FireBug extension, was a practical tool to analyze performance by the 14 rules described in the book, giving grades to pages at loading. A very useful tool, both for designers and front end developers.

But with the launch of FireFox 3.5, which brings many improvements in speed, YSlow becames incompatible. After what seemed like Yahoo! will totally give up the project a new version appeared. Unfortunately this version is not exactly functional. I do not know if is my FireBug version or just the update was made to shut the mouth of those who complain about the incompatibility.

Google has not launched any time this infra. After launching Google Speed, it seems that not late after that, appeared a substitute for YSlow, named Google PageSpeed.

PageSpeed structure is similar to YSlow, anyway optimization rules are the same for everybody, it’s just how they are approached.

What is more important PageSpeed is compatible with FireFox 3.5.

An interesting fact to know is that Steve Souders now works for Google, maybe this is one of the reasons for which these rival tools, produced by two Internet giants have reached these state.

Written by Claudiu Persoiu

17 July 2009 at 9:21 PM

Posted in Browsers,Diverse

Tagged with , , , ,

Software adoption rate and web development

with 2 comments

How does the rate of adoption of new software products and/or version influences the software development for Web and client-server type products?
From the perspective of a web developer, we are restricted by the servers for which we develop and our client’s browsers. Compromise often go very far for the sake of meeting a more broader market.


Currently stable version of PHP is 5.3.0, but using this version in production would be a childish decision. The version has been out for a little while and the probability to find this version on the hosting servers is very slim.

Of course, a more appropriate version is 5.2.10.  And yet, if version 5 was released almost 5 years now, why a popular framework like CakePHP yet uses the advantages brought by this version? Because until recently an important part of shared hosting servers that have support for PHP, still had version 4.

How is this translated in production? If you don’t develop internal products, or on your own servers, or servers which you can control, you should be aware that your product should be compatible with older PHP versions, and the new features of the language should not be used in production.
Ridiculous and sad but true.
PHP 5.3 brings quite a lot of new features,  but until these features can be used in production few years will have to pass. And until they get in frameworks probably even more (ie namespaces are useful in frameworks).


Current stable version is 5.1.36. 5.x version, released in2005 brought many new features, some of them are: stored routines (functions and procedures), triggers, views, cursors, information schema, etc.

Stored routines is probably one of the biggest changes. They are probably most known from Oracle PL/SQL, although MySQL has implemented from the ANSI SQL 2003standard.

Because MySQL 5.0 was in beta for a long time, the rate of adoption is very low. Again, after almost 4 years since the version was released, and it is not yet sufficiently widespred.

Conclusion, simply put it is not recommended the use of the new features if you can not control the version on the server.

Browsers and JavaScrip

The browser problem affects both developers and designers.

Probably the oldest browser still used on a large enough scale is Internet Explorer 6. It was launched in 2001 and after 8 years it is still used by ~ 30% of users.

JavaScript in 2001 was still considered a scripting language infant, which was mostly used for visual effects.

After the “discovery” of AJAX in 2005 , JavaScript was reborn. JavaScript was not just a scripting language used for reduced visual effects, but was regarded as a technology of the future.

Browsers such as FireFox, Opera, Google Chrome or Safari have made progress to improve the speed of JavaScript execution. Even Internet Explorer 8 works better with JavaScript, but it is far from being as popular as version 6. And for the problem to be complete, Microsoft has a big issue with keeping the compatibility between their products.

The reason for this problem in adoption of new versions of Internet Explorer is the operating system. The most popular operating system is Microsoft Windows XP and it has pre-installed Internet Explorer 6. Given that Windows Vista had a fairly low adoption rate because of the initial bugs, drivers issues, resource consumption, and other problems, meant that Windows XP was still very popular. Of course not everyone using Windows XP use IE 6, many have updated or simply use another browser. But still many of them are using the browser that is default.

Speaking of this, Windows 7 will be distributed in Europe without IE installed. I’m very curious how will this influence the browsers market.

Lately “smart phones” and PDA devices have become increasingly popular. A lot of people use them to navigate on the Internet. So after the issues related to browsers on PCs, now there is a hole new set of issues on mobile device browsers.

For instance, my phone came with two browsers: Internet Explorer and Opera. Internet Explorer Mobile is terrible, so I’m using Opera which does a good job.

The problem is that many PDA / smart phone devices with Windows Mobile OS only have Internet Explorer in standard, and the previous problem returns.
When it comes to the famous Apple iPhone, Safari browser is used (and I believe that you can’t install another browser, but I’m not sure if that is true any longer).
So when you create an interface or a JavaScript application, you must take into account several aspects such as:

  • device(eg PC, PDA, smart phone etc.)
  • operating system (eg Windows, Linux, Mac, Symbian etc.)
  • browsers and there versions (eg Internet Explorer 6,7,8; FireFox, Safari, Opera etc.)
  • HTML 5 is almost here, but when it comes to browsers, I wonder when will we be able to use it on a large scale, given that the market is currently dominated by IE 6 and 7.

    I give it about 5 years…

    Written by Claudiu Persoiu

    15 July 2009 at 9:55 PM

    The site becomes bilingual

    with one comment

    Starting today the website is becoming bilingual! Besides Romanian, I’ll post in English to.

    To use two languages in the blog  I’m using the LanguageSwitcher plug-in, a little modified so all users from Romania and Republica Moldova will be able to view the romanian version, regardless of browser settings.

    I hope my English will be excused.

    Written by Claudiu Persoiu

    11 July 2009 at 8:59 PM

    Posted in Diverse

    Examen MySQL Certified Developer

    with 12 comments

    Sau mai nou Sun MySQL Certified Developer.

    Ma batea gandul de aproape un an, dar in ultimele luni m-am decis sa fac si pasul asta. Si cum eram usor lipsit de motivatie, pe site-ul MySQL este un anunt ca pe data de 31 Iulie examenulul nu se va mai da in centrele PersonVUE. Asta a fost toata motivatia de care aveam nevoie.  M-am inarmat cu cartea si am pornit la treaba.

    Cartea (MySQL 5.0 Certification Study Guide) nu mai este in totalitate de actualitate, fiind scrisa pentru versinea 5.0 in anul 2005. Totusi trecand peste miciile probleme cu modificarile dintre versiuni, este scrisa foarte bine, foarte explicita si cu multe exemple. Apropo, ce nu scrie in carte nu se cere.

    Cartea are doua parti, prima pentru CMDEV iar a doua pentru CMDBA. Cele doua sectiuni mai fac referire una la alta cand este cazul, dar nu este necesara parcurgerea ambelor sectiuni pentru examen.

    Dupa doua saptamani de studiu din prima parte m-am prezentat la primul examen (CMDEV I). Poate este doar parerea mea, si recunosc, am devenit comod avand in vedere ca in cea mai mare parte lucrez cu MySQL folosind phpMyAdmin, dar examenul imi pare destul de dificil. La Zend cand ai o intrebare cu raspunsuri multiple ai si numarul raspunsurilor care trebuiesc furnizate. La MySQL nu exista nici o regula in sensul asta, intradevar pot fi unul sau mai multe raspunsuri corecte.

    Un alt element de noutate, cel putin pentru mine, la final am primit si scorul, si chiar daca nu a fost aproape de limita… tot mi se pare un pic dezamagitor.

    Dupa primul examen, nu am stat mult sa sarbatoresc ca am inceput sa ma pregatesc de partea a doua.

    Unii spun ca examenul nu este bine echilibrat, iar eu cred ca au dreptate. In al doilea examen pentru certificare sunt multe elemente de care eu unul doar am auzit, sau le-am folosit cu Oracle. Motivul pentru care nu am apucat sa le folosesc pana acum este simplu: multe servere inca NU au MySQL 5.x! O alta problema este aceea ca phpMyAdmin nu avea nici un fel de suport pentru rutine stocate, triggere etc. Dar din fericire din fericire in MySQL 5.x exista Information Schema, dar desprea asta poate in alt post.

    Al doilea examen mie unul mi s-a parut ceva mai intortochiat. Daca primul l-am rezolvat intr-o ora, pe al doilea l-am rezolvat in aproape o ora jumatate (cat timpul alocat). Exemplele sunt destul de mari si trebuie interpretate cu atentie.

    Dar intr-un final am reusit!

    Din pacate treaba nu merge la fel de usor ca la Zend, acolo pana am ajuns acasa de la examen am primit si siglele (pe e-mail), termenii si conditiile de folosirea a siglelor si am putut sa-mi public profilul pe site.

    La MySQL trebuie sa primesc o hartie prin posta (ne electronica) care ar trebui sa ajunga in 4-6 saptamani. Pana atunci nu-mi ramane decat sa astept…

    Written by Claudiu Persoiu

    8 July 2009 at 11:57 PM

    Posted in MySQL

    Tagged with , , ,

    Redirect to WWW using PHP

    without comments

    The problem occurs when the user is accessing a domain name and he must be redirected to the same domain name, keeping the GET variables but with WWW in front.

    My solution is based on the header function and global variables in $ _SERVER:

    // I'm storing the address for later use 
    // it will be like '' or ''
    $host = $_SERVER['HTTP_HOST'];
    // checking if the firs 4 characters are 'www.'
    // '.' is important for domain names that start with 'www'
    if(substr($host, 0, 4) !== 'www.') {
         // announce the browser that the page was moved
         header('HTTP/1.1 301 Moved Permanently'); 
         // the new location
         // the GET variables are in $_SERVER['REQUEST_URI'] 
         header('Location: http://www.' . $host . $_SERVER['REQUEST_URI']);
         // exiting the page

    Because of the 301 header the search engines will no longer index the page with out www.

    PS: the code above should be the first thing that is output on the page!

    Written by Claudiu Persoiu

    4 July 2009 at 6:11 PM

    Posted in PHP

    Tagged with ,

    Project management

    without comments

    Project management

    Project management

    Written by Claudiu Persoiu

    2 July 2009 at 3:59 PM

    Posted in Diverse

    PHP 5.3 este aici!

    without comments

    Ieri a fost lansat oficial PHP 5.3! Aceasta versiune aduce cele mai multe schimbari de la versiune 5 pana acum, iar PHP 5.0 a fost lansat acum aproape 5 ani.

    Pe langa noile facilitati pe care le aduce versiunea (despre care am mai discutat), sper ca acum se va grabi si finalizarea lui PHP6, care in principiu o sa fie aproape PHP5.3+Unicode.

    De asemenea pe pagina PHP-GTK un anunt spune:

    Rumours of PHP-GTK’s death have been greatly exaggerated! The project is very much still alive, but we’re waiting for PHP 5.3 to come out, and also some work needs to be done on the Cairo extension before a new release can be made. This should be completed soon. This release will come with support for GTK+ 2.14 and 2.16, Cairo, and PHP 5.3.

    Din noutatile aduse, una dintre facilitatile care eu ma intreb in ce masura va prinde este PHAR. Aceasta permite crearea de “arhive” a fisierelor php, intr-un mod inspirat din Java unde se foloseste JAR. Accesarea arhivelor se face print-un stream (phar), deci teoretic se poate distribui o intreaga aplicatie PHP intr-un singur fisier, fara a fi nevoie de extensia PHAR sa fie instalata.

    Written by Claudiu Persoiu

    1 July 2009 at 10:32 AM

    Posted in PHP

    Tagged with , , ,