Now I’m Zend Certified Engineer

Today I’ve faced the real exam and passed 200-500 Zend Certification Exam for php 5 and become the Zend Certified Engineer. Here is the link of my certification proof:

My programming experience is more than 5 years in different technologies and different languages. I like Java very much and develop many good applications using it. I’m also J2ME expert and develop many applications and games. I am also good at Flash Action Script and Graphics design, 2d animation.

For the last 3/4 months I was preparing myself for Zend Certification Exam. My job experience is more than 8 months and it is PHP based. And I found PHP is one of the language to whom I love. And I become addicted of its beauty & simplicity. Before the real exam, I bought 10 mock exams from PHP|Architect. I gave 9 mock exams and got nice results with excellent mark.

After then, I bought the real exam from Zend and today I successfully passed the real exam. I found the questions in real exam are not easy. Compare to Mock exams I found real exam’s questions are harder. Some Zend Certified Engineer also said that Mock Exams questions are harder compare to real exam. But as the questions of real exam are randomly choosen so it depends on one’s luck.

Study is very important, because we don’t use many API. But for certification you’ve to familiar with the core API. And I think, there is no alternative but experience of developing applications. XML and database concept is also very important for the exam. I found a lot of questions based on server configuration, database which actually needs real life experience.

However as I signed some terms of Zend before examination, I couldn’t and shouldn’t say about questions of the exam. I’m very happy today for this honor.

Comments { 12 }

What is Web Service?

Web Services is a generic umbrella that describes how disparate systems can integrate with each other over the web.
Most major sites offer some form of web services:
– Amazon
– FedEx
– eBay
– PayPl

Why use Web Services?

  • Someone else has data you need
  • Easier than scraping pages also more reliable
  • Automate processes
  • Provide additional information to your clients


  • Representational State Transfer
  • Requests look like filled out forms, can use either GET or POST
  • Response is an XML document
  • Request and Response is defined by the service provider
  • Very simple and popular

REST Request

After the request, we will get the answer or response as an XML file. we can simple parse them using PHP’s SimpleXMLElement (SAX API) or DOM API to retrieve data

Comments { 2 }

Ubuntu vs Fedora

Wow! Excellent! Nice!

I’m very exciting to work in Ubuntu Linux version 7.10. Before this I used Fedora Core 8. My previous linux os system experience was Mandrake Linux 7, 8, 9 and 10 and later Mandriva linux. After then beside Windows XP I used Linux Fedora. But Now I realized everything I needed is in Ubuntu.

  • For Home User, I found Ubunty (Gusty Edition) is more faster than Fedora Core 8.
  • For playing vedio: I downloaded VLC Player. It could play every media file including those that need to play in Herosoft of Windows XP.
  • Totem Player is also very nice as like as VLC Player.
  • I downloaded XMMS player to play audio files.
  • I also downloaded GNOCHM to read .chm file.
  • I could connect internet from my Nokia 6300 & Grameen Phone SIM.
  • Here I also have, GIMP (like Photoshop in Windows).
  • There are a lot of softwares developed and found for Ubuntu Linux in internet.
  • I’m free from virus tension!!! Because windows virus couldn’t work in Linux.
  • Today I installed NetBeans in my Ubuntu. And I found it runs slower in my laptop compare to Windows Version.

So, I decided not to move in Windows. But as a developer sometimes, I’ve to develop C# .Net application. Only few cases I’ve to move in Windows. Otherwise I’m very satisfied in my Ubuntu Linux.

To develop Java applications, Net Beans IDE linux version, JDK linux version are available. And XAMPP linux version is also available for developing PHP +Apache + MySql Application.

Oh!! User interface and special effects are more beautiful and exciting than Windows Vista or Xp. Would you not believe until you see it.

Comments { 11 }

Configure Smarty in Code-Igniter

Today I successfully configured Smarty in Code Igniter. I found there is a very good reference to do this job. So, I just mention that link :

Comments { 0 }

.Net Game Programming With Direct X

When a child plays a computer game or mobile game, sometimes he dreams to make a game. If you study about the childhood of the best and famous game developer, you’ll find most of them are game addicted in their childhood.


So why not try yourself to make a game.

A game starts with a good idea. But it consists of some basic features. Though the game is a pc game or a mobile game.

  • Music
  • Drawing
  • Color
  • Animation
  • Code
  • Level Design
  • Quality Assurance
  • Project Management
  • Testing and so on…


Comments { 1 }

Base Conversion – Handle upto 36 bases

Sometimes we need base conversion for different purpose. Here I have shown a technique that handles upto 36 bases. I implemented this using C++ language. But using this concept you could modify it and change it to any language.

The main concept is, to change base ‘X’ to base ‘Y’. First convert base ‘X’ to base ‘Decimal’. Then convert the ‘Decimal’ base to base ‘Y’.

Programmer: Md. Mahmud Ahsan
Description: Alpha Numeric Base Conversion
            Handle upto 36 bases
#include <iostream>
#include <string>
using namespace std;

int myPow(int number, int power){
	int total=1;
	for (int i = 0; i < power; ++i)
		total *= number;
	return total;

void revStr(char *str){
	char s[100];
	int len = strlen(str)-1;
	for (int i = 0; str[i]; ++i)
		s[i] = str[len-i];
	s[i] = '\0';
	strcpy(str, s);

int otherToDec(char *str, int base){
	int len = strlen(str) - 1;
	int alpha[100];
	long long i, number, j=9; // j for alphabetical base digit
	for (i = 65; i < 65+26; ++i){
		alpha[i] = ++j; // collect numeric data suppose A=10

	number = 0;
	for (i = 0; str[i]; ++i){
		if (str[i] >= 'A' && str[i] <= 'Z')
			j = alpha[str[i]];
			j = str[i] - 48;
		number += j * myPow(base, len);
	return number;

char* decToOther(int number, int base){
	char str[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	char final[100];
	int n, temp, j;

	j = -1;
		temp = number % base;
		final[++j] = str[temp];
		number = number / base;
	}while (number != 0);

	final[++j] = '\0';
	return final;

int main(){
	int number, base10, base, from, to;
	char str[100];
	while (cin >> str >> from >> to){
		base10 = otherToDec(str, from);
		strcpy(str, decToOther(base10 ,to));
		cout << "Base 10: " << base10 << " " 
                << "Base " << to << ": " << str << endl;

	return 0;
Comments { 1 }

A J2ME application that connects and read data from HTTP protocol

This example shows you how to connect and read data from a http protocol. When you implement it and run it from your mobile device, you have to change the url from localhost to a real hosting address. (Like

* Created on March 14, 2007, 1:15 PM
* @author  mahmud
* @version

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Midlet extends MIDlet {
    private Display display;
    private Form form;
    public void startApp() {
        display = Display.getDisplay(this);

        form = new Form('Http Example');
        StringBuffer buffer = null;

            // you could use other as a example

            String url = 'http://localhost/shaon.txt';

            StreamConnection conn = (StreamConnection);
            InputStream in = conn.openInputStream();

            buffer = new StringBuffer();
            int ch;

            while ( (ch =!= -1){
            buffer.append( (char) ch);

        catch(Exception o){

        form.append(new StringItem(null, buffer.toString()));

    public void pauseApp() {

    public void destroyApp(boolean unconditional) {
Comments { 5 }

Know your Mobile – A simple j2me application

This is a very simple code of j2me. By implementing it, and running it by your mobile device, you could learn some attributes of Java configuration of your mobile device.

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;

    public class AttributesMIDlet extends MIDlet{
        private Display display;
        private Command cExit;

        public void startApp(){
            display = Display.getDisplay(this);

            cExit = new Command('Quit', Command.EXIT, 0);

            Canvas canvas = new DummyCanvas();

            Runtime runtime = Runtime.getRuntime();
            Form form = new Form('Attributes');

            form.append(new StringItem('Know Your Mobile', ''));
            form.append(new StringItem('Total Memory:', String.valueOf(runtime.totalMemory()/1024)+'Kb'));
            form.append(new StringItem('Free Memory:', String.valueOf(runtime.freeMemory()/1024)+'Kb'));
            form.append(new StringItem('n', null));

            boolean isColor = display.isColor();

            form.append(new StringItem(isColor ? 'Colors:': 'Grays:', String.valueOf(display.numColors())));
            form.append(new StringItem('Width: ', String.valueOf(canvas.getWidth())));
            form.append(new StringItem('Height:', String.valueOf(canvas.getHeight())));
            form.append(new StringItem('Repeat:', String.valueOf(canvas.hasRepeatEvents())));
            form.append(new StringItem('Double Buff:', String.valueOf(canvas.isDoubleBuffered())));

                new CommandListener(){
                    public void commandAction(Command c, Displayable d){
                        if (c == cExit){

        public void pauseApp(){
        public void destroyApp(boolean unconditional){

    class DummyCanvas extends Canvas{
        public void paint(Graphics g){
Comments { 0 }

Subversion – A tool for controlling version of source code.


SVN (Subversion) is a tool used by many software developers to manage changes within their source code tree. SVN provides the means to store not only the current version of a piece of source code, but a record of all changes (and who made those changes) that have occurred to that source code. Use of SVN is particularly common on projects with multiple developers, since SVN ensures changes made by one developer are not accidentally removed when another developer posts their changes to the source tree. Information about accessing this Subversion repository may be found in “Subversion (Version Control for Source Code)“.

In order to access a Subversion repository, you must install a special piece of software called a Subversion client. Subversion clients are available for most any operating system. Information about Subversion client software may be found in our document titled “Recommended User Software Configuration“.

Comments { 0 }

JSON -A lightweight data-interchange format

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.


Comments { 0 }