PHP Certification.

Have you ever wondering whether your PHP skill is up for the test, is it good enough for the world to look at and make use of? and How to make the world acknowledge you as a PHP developer? To be a certified PHP developer. You have to take tests, obviously, but where and why? There are various places you could take tests online to save your time and money and of course, being a certified PHP developer doesn’t make you a better ones, it just improves your chances to get a professional job in PHP.

You will need to have knowledge of PHP (obviously), MySQL, HTML (basic) and Web Administration skill alongside with some smaller skill set such as XML, CSS…. to actually be confidence in the test. And when I mean THE test, there are not just one test. Each tests are different and are offered by different organization

Zend

The industry standard, awarded from the guys who is behind PHP and alike, is always THE best award in all. Zend has been running the PHP certification for more than 4 years and have been awarding certificates for thousands of PHP developer and alike. If you are totally serious in your PHP development, Zend is the way to go.

You can look at the price tag for each of the examination bundles that Zend offers, alongside with all the exam preparation guides.

W3C

One of the most understandable sites. And one of the guys that have been running free programs and having a wide web resources for new web developers around the world. If you don’t know W3C, you are not a real developer. W3C also give out certificate and roll out free practice test for people to try. This really worth a try to know your level.

However, the real test is nothing like the practice test, it consists of in depth material with around 70 multiple choice questions that would really rule out the weak and the strong… Also, 70 questions in 70 minutes, yes, there is a time limit. And you have to nominate someone creditable to be your supervisor. The price for the exam is $75 USD.

OST

O’Reilly School of Technology also offers PHP certification through 4 courses. On completion of all 4 courses offered by OST (with a price tag of $398 each course) you will be awarded a PHP certification. All 4 courses work in conjuction to give you a thorough understanding of PHP, ranging from beginner to advanced PHP, logical design, database management to Web2.0 integration. It surely worths the price tag.

That’s all?

Yea, for now. There are others, offering similar certification, but I’ve ruled out the 3 most popular ones. The others including Expert Rating (really a job seeking site, offering PHP certification for 10 bux, 45 multiple choice questions in 45 minutes) and Brainbench which is, in my opinion, not as creditable as the others (please don’t flame me, that’s my personal preference)

OpenID for CodeIgniter made easy – All about it

A few months back, I have been struggling to have openID authentication loaded to my application. It’s a hazard… the simple idea of having it integrated to my application and have users logged in using their existing facebook, google account is pretty fancy, but the code behind it is a mess, a complete tragedy. Luckily RPXNow stepped in and provided me a hand in authenticate people and handling the magic works. No one likes to reinvent the wheel after all, and this is a PRETTY HARD wheel to deal with…

how_diagram

How RPX Works

Also, I’ve been exposed to the wonderful world of Codeigniter, and have found a wonderful library handling all the dirty works for me, (75% of those have been dealt with by RPXNow). All I have to do is have a small iframe in my view, and then deal with what I have to offer when I have successfully authenticated the users.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function login()
{
    $this->load->library('openidrpx');

    // In the view, display an iframe pointing to the "embedurl"
    $this->load->view('loginview', array('embedurl', $this->openidrpx->EmbedUrl('start/openidverify'));
}

function openidverify()
{
    $this->load->library('openidrpx');
         
    if($token = $this->input->post('token'))
    {
        $data = $this->openidrpx->AuthInfo($token);
       
        if($id = OpenIDRpx::Identifier($data))
        {
             // Authorize user!
        }
    }
}

However…

The idea is great, having some other web service do the dirty authentication work, and have a web framework ready library to do the integration dirty work… Having not to dirty your hands, but get things done. This is too easy to be true. But… I think using RPXNow is a bad idea, at least for me.

By using RPXNow, I am entrusting a third party site to deal with my users. There’s an extra hop in the process and thus, I am really relying on their service for my login process… What if they gone out of business for a while…?

Also, when the users login, the OpenID provider will direct them to yoursitename.RPXNow.com instead of your root website. Although RPXNOw offers ability to customize this hopping point, or with an extra cost ($20/month) to have it named as your root website (www.yoursitename.com). This serves to confuse your naive user even more.

By having a monthly fee, you can whitelist/blocklist certain provider, but this feature is not available in the free ones.

So!

It’s up to you, if you are really confident that you can deal with OpenID on your own, I suggest you do. But if you have absolutely no idea of how to even start looking at the problem, RPXNow is a definitive choice, it saves you “10 years of pain of extensive coding” and have your application up and running in under 2 hours (or less!!!). And if you like RPXNow and pay to be a loyal customer, you’ll gain a lot of extra functionality.

Useful websites web developer should make use of

There are quite a few tools lying around on the internet that helps the web development or web design process drastically. It will certainly strike inspirations and surely make your life easier while creating a website. In this post, I have compiled several websites that I have make use of in my progress.

Lorem Lipsum / Sample Content

Visit Lorem2.com

lipsum

Yes, the awesome, the all known popular test text lorem ipsum dolor sit amen… something something… To simulate real text rendering on a webpage. If you don’t have this on a notepad lies on your desktop, this website is a blast. It gives you short paragraph, long paragraph, list items to mess around with. Complete with a Coda Clip or Textmate Bundle for your complete convenience. I personally just go onto this website and grab the thing I need.

Colour Combinations / Palettes

Visit ColourLover | Visit ColorCombo | Visit ColourSchemeDesigner

color

You need some colour combination that works together, but you certainly do not have the time to play around and do experiments.. Of course, when designing a website, look and feel (to please your boss) comes first. So colour combinations must be chosen wisely. I primarily goes to ColorCombo and ColourLover, but when I need to pick a certain colour combo that takes a long time to find, I’ll just make a palette myself. ColourSchemeDesigner offers me all the tool I need to create one.

Font Choosing

font

Visit WhatTheFont

This tool helps you grab font from an image or a website that you think looks nice. People have been using the same fonts for ages, so it’s no big deal grabbing some here and there :)

Test Absolutely Everything 100+ Tools in One

test

Visit Test Everything!

Yeah, it does what it says it does. This tool can test your website in a lot of different ways, through a lot of different sites. CSS/HTML Validator, SEO, Social Services, Web Proxies, Network Tools, Text Tools, Images Tools and a lot of other tools all aggregated from 100+ sites here for your testing convenience. My definitive choice.

Speed Tester

pingdom

Visit Pingdom Tools | Visit Load Impact

I often use both of this website to test the speed of my server and by that, optimize page load accordingly. Pingdom tools give me the file name that I should optimize and Load Impact helps me understand how my server would react in heavy load.

Icons

icon

Visit Icon Finder

Good looking icons are the heart of the website. It virtually makes the site looks good and worth checking out. They have around 100000 icons in their database and all have been carefully picked and enhanced with various size to choose from. Splendid tools.

CSS Compressor / Tidy / Optimisation

css

Visit CSSCompressor | Visit CSS Tidy | Visit CSS Optimisation

The compressor reduce the css size so that it’s faster to load. CSS Tidy helps developers read better, fix errors and reduce redundant code. The optimiser does pretty much the same thing + reducing file size.

To be a web developer

Is to know all of these <insert evil and sinister laugh here> languages. This post serves as a starting place for all who wants to be a web developer. You might not need to understand in depth on any of these, but the least is the basic. My choices of framework serves as a suggestion only, the real choice is yours.

1. HTML

Back to when internet was born and introduced to the naked world… Back to when the internet was young and needing a serious developer….Tim Berners-Lee said “let there be HTML”… and there was HTML, and it was good. The proof of its goodness stays ever since then until today. Yeah, every serious web developer use HTML. Easy to learn, easy to misuse. With great powers come great responsibility. So code well, and follow the standards.

W3C HTML tutorial

2. CSS

HTML always comes with CSS. It helps you refrain from misusing those font and colors tag by having a separate CSS file. This serve as a way for you to separate content and display components. Also, helps you to hate tables and loves divs and spans. Though many would say otherwise…

W3C CSS Tutorial

3. Server Side scripting

When you have master your way of representing your thoughts on pretty html/css compliant documents, it’s time to deliver dynamic content. One problem though, is to choose which server side scripting you would go for. Unlike HTML/CSS where only 1 thing is required to learn and to have it beaten to your head. There are choices.

My Choice: PHP. Other choices: Ruby, Python, Java, ASP.NET

4. SQL

One choice again. SQL have become a parent of all database language. There are many database engine, most of them are built ontop of SQL or understand SQL anyway. So why bother learning a language that you might not be using. SQL is the way to go.

W3C SQL tutorial

5. Javascript / Client Side Scripting

User interactivity is the heart of the website, make sure people enjoys reading your website. Javacsript has matured into a great way of delivering dynamic content by using AJAX interactivity. Facebook does it, most new website nowadays does it. Why don’t you?

W3C Javasccript Tutorial

6. Frameworks

Web developers have been reinventing the wheel so many times that they come up with a whole sort of different type of wheels. These framework give you the wheel and tell you how to use it properly with examples and screencasts… Save you tons and tons of time trying to imagine how the wheel would look like and how it will work.

There is no one type of wheel that helps all web applications. So there are a lot. Choose wisely for a server side scripting framework and a javascript framework.

my choices: PHP Framework: Codeigniter, CSS Framework: 960.gs, Javascript framework: Jquery or Mootools

7. Knowing your web server.

Tricks and tricks. Understand how to give your website optimum experience by deliver the webpage to them as fast as it could be. When you have become a master and reach new ceiling, it’s time to differentiate yourself.

Handpicked Handy PHP Libraries

Do you ever wondering how to do certain things in PHP like generating graphs, generating pdf or parse RSS efficiently and easily. I found myself rewriting these codes every once in a while and was lucky enough to find these wonderful libraries/framework that are completely free and easy to use.

There are more, but I will only listed my handpicked best one out of these categories

RSS Parser

Normally I would use Jquery to do this stuff, but meh. When it comes to PHP, it’s all the way PHP

SimplePie: Very fast, easy to use, PHP driven RSS Parser

Demo | Documentation | Screencast (Yay!!)

I once used MagpieRSS for performance, but SimplePie offers a greater deal of functionality and when web servers are getting stronger days by days, the performance difference is not that big. One thing I love about this SimplePie is that it is actively being developed and actively updated.

Also, SimplePie got an integration with Codeigniter, my favourite PHP framework

Graph Generator

pChart: an Object Oriented framework that is capable of generating charts, graphs and best of all, it’s free. Data is grabbed from SQL Queries or CSV Files or just manually put them in.

Screenshots | Demo | Documentation (Very detailed!)

However, this library requires GD Library to be installed onto your web server and have PHP compiled with it. If you don’t have GD installed, better check for my second alternative: Libchart, a little bit old but suffice.

PDF Generator

FPDF: This little baby works splendid. It can stand alone or with zlib for compression and GD for GIF support.

Tutorial | Documentation

It can be easily integrated with Codeigniter

Excel Generator

php-excel: very easy and fast way to generate excel spreadsheet using PHP on the fly

The approach is to convert a 2 dimensional array in PHP to a spreadsheet in Excel. However, because of it’s easy to use and fast performance, it does not have quite a few of features like cell styling, functions creating, sort…. If you need those (I don’t!), your choice is PHPExcel

Payment System

PHP-OpenID: for paypal, authorize.net and 2checkout (2CO). Yeah, the 3 most popular ones, who needs the lesser unpopular ones?

Checkout the links, it’s very detailed with code examples and all other stuff that you need to know. Scrap those you don’t need to know :)

This guy, Emran, is my hero by delivering this wonderful library to us

Huddle Review

huddle_logo

Huddle is my choice for web collaboration system as well as Project Management software.

I was in search of a free, powerful, easy to use, social collaboration software. And Huddle is my final stop, for now.

Huddle allows team members to share documents, and conduct various projects in a multi-agent, multi-user, central, online, collaborative environment. Huddle separates itself from basecamphq by offering a free for all time plan. Of course basecamphq was once offering a free package, but not anymore. Huddle was designed with internet collaboration totally in mind. The project manager can add and assign tasks to each of the team members with a specific deadlines.

All comes with a document SVN-alike version and whiteboard, discussion forum,… complete with video tutorials on how to use each and every function. Users can also subscribe to RSS-feeds and be alerted of any notifications or changes. Huddle main strength is its simplicity and elegant in delivering information.

huddle

Huddle interface is nice and sweet. Complete with a calendar and a “what’s new” section. With the free package, the advertisements seem unobtrusive (of which can be removed if upgraded to a paid package). Paid package also allows you to change the look and feel (colour scheme and company logo) of the workspace.

Huddle is ideal for simple, online working environment and emphasize on small to medium business, especially when there are geographical difficulties between team members or employees.

Introducing Codeigniter

This is my first post about Codeigniter, a free MVC PHP framework that is very easy to understand and implement. I have been using Codeigniter for quite a while now and is very please with what I’ve achieved.

Hold on, what is MVC?

MVC is short for Model View Controller and is an abstract way of separating the logic, display and controlling decision. I wouldn’t go through defining them but for the sake of simplicity, I’ll throw in a simple example. And also, I’ll go through this example in Codeigniter’s way of talking, so that we won’t go to outer space without knowing it

Model is where the information is. View is how the information will be presented. Controller is which information to choose.

For example we want to view a page with the id of 3. we will have the controller called “view_page” and pass it an argument id = 3. The controller will then grab the information (page detail) by calling the “page” model and ask for page detail with the id of 3. After retrieving the page detail from the model, the controller would then call the “display_page” view and give it what to display.

In detail:

The Controller’s code will be:

1
2
3
4
5
$id=$_GET['id'];

$data=$this->page_model->loadpage($id);

$this->load->view('page-display', $data);

The Model’s code will be:

1
2
3
4
5
6
7
8
9
function loadpage($id)

{

$data = db->query('SELECT * FROM page WHERE id=$id');

return $data;

}

The View’s code will be:

1
echo $data['content'];

If that’s not understandable, please, dig in to the framework and see what’s in there. Also, Codeigniter offered a 20 minutes video tutorial (oh, I love theses!) to quickly setup codeigniter and have a blog running in less than half an hour. Pretty impressive to me.

If you’d ever run into a wall, the user guide is always there to help you.

Have fun igniting codes

Dropbox Review

dropbox_logo

I worked from different computers, I have several machines, not counting the ones I have to use at school labs for printing purposes. Last week, I had a wonderful invention of bringing my USB key everywhere I go by attaching it to my key-chain. Of course, I have a habit of needing my files everywhere I go and always have to have the most updated version of each and every files… I am a picky bastard when it comes to usability and efficiency in file storage.

For years, I have relied on Gmail to store my files due to the my habit of having GMail opened at all times… And for years, I have had the trouble of digging up my files under my large amount of spam and useless emails.

I came across this wonderful software called Dropbox that offers just what I need. A very simple All-In-One production tool. Can’t think of any other method of combining SVN, WebDAV, Online File Storage, Network Storage, Music & File Sharing, FTP Server, Google Docs.
The idea is pretty simple, having a folder of files, that stay sync on all computers. Sweet, isn’t it?

dropbox-ubuntu

image from dropbox blog

Dropbox is an online storage, data backups, file sharing, data synchronization which is simple enough that I have easily convinced my non-tech girlfriend to have her folders synced with mine to share files with ease. Even though she sits next to my desk at home, the idea of having to “dig through my mess, find a flash drive, copy the file onto it, eject it, plug it in my girlfriend’s pc and eject it again”…. thrilled me.

Without the hassle of emailing files to myself and/or having files transferred onto a flash drive to have it traveled between computers. All you need to do is click the sync button, or better yet, do nothing at all and let it auto-sync. The file in that folder is accessible through different computers on different platform and also, available through the web interface provided my dropbox. Other than that, the sync folder acts just like any other folder on your computer.

With the free plan, Dropbox offered 2GB of storage without a limitation of file size. You can subscribe to a higher storage plan (up to 100GB), but 2GB is sufficient for me and my daily usage. Although if you upload files through the web interface, the file size is capped at 350MB.

Dropbox is available on Windows, MAC, Iphone and Linux. I have an ipod touch 2G and the functionality of dropbox also let me view/edit files on the dropbox folder as well. Pretty neat.

If you accidently deletes or modify a file, dropbox is just there to help. Dropbox is not only a storage service, it’s also utilized a version history function to recover lost or deleted data. Files deleted from the dropbox folder may be recovered from any of the computer in synced.

I am very pleased with this software service and will be using it for my daily use from now on. Unless something cooler happens