ICT at a glance in Bangladesh

Information Communication Technology (ICT) encompasses the broad fields of data/information processing, transmission and Communications by means of computer and telecommunication techniques and these modern tools are being increasingly used for organizational/personal information processing in all sectors of economy and society. A dependable information system is essential for efficient management and operation of the public and private sectors. But there is a shortage of locally generated information needed for efficient performance of these sectors. In order to meet this objective, ICT use in every sector shall have to be accelerated in terms in terms of information generation, utilization and applications. Considering the gravity and importance of ICT Honorable Prime Minister has already declared ICT as the thrust sector.

Computers & the Internet



Personal computers (Per 1,000 people)



Installed in education (thousands)



Internet Users (thousands)



Monthly off-peak access charges

Service provider charge ($)



Telephone usage charge ($)



Sources: ITU and UNESCO

ITU: International Telecommunications Union, World Telecommunication Indicators Database.

PC availability: Personal computers per 1000 people- Estimates are derived from annual questionnaires supplemented by other sources. Source: ITU.


Sources: Development Data Group, World Bank

ICT business & government environment

(ratings from 1 to 7; 7 is highest/best)



Broadband internet access availability



Local specialized IT services availability



Competition in ISPs



Government online services availability



Laws relating to ICT use



Government prioritization of ICT



Secure servers



Sources: World Economic Forum’s Global Competitiveness Report 2002-2003 and Global Information Technology Report 2002-2003 (ratings) and Netcraft (secure servers).

A Cross-Country Analysis of Computer and Internet Penetration




per 100

Internet Users

per 100



United States

North America





Europe & Central Asia





East Asia & Pacific





Europe & Central Asia





East Asia & Pacific





Europe & Central Asia





East Asia & Pacific





South Asia





South Asia





South Asia




Computer and Internet Penetration Rates for Highest, Lowest and Largest Countries. International Telecommunications Union (2001)

Telecom Infrastructure in Bangladesh

* 700,000 fixed lines ( 90% in service)

• BTTB (Government monopoly)

* telephone density : 0.5 lines per 100


• one of the lowest in the world

*average telephone density is 0.05 per 100 people in rural areas

* 800,000 mobile cellular telephones

• impressive growth; >100% CAGR

• 16,000 village phones in 15,000 villages providing teleaccess to 30 million

Global Connectivity


• Private sector ISPs (June 1996)

• VSAT initially licensed by BTTB deregulated in 2000

• around 75 ISPs

– mostly in Dhaka

– gradually spreading to other Cities/Towns


• Dialling from outside 1994

• 150,000 account holders

– CAGR > 100%

c. 700,000 users

*Broadband – wireless or cable

•available in Dhaka and Chittagong

*Submarine Cable connection to Global Information Superhighway

Bangladesh’s Strengths

* A substantial number of educated unemployed youth force, with ability to read and write English

* Quite a few Bangladeshi skilled IT professionals working abroad (NRBs)

* Universities in Bangladesh are turning out an increasing number of graduates in Computer related subjects every year

* A large number of Bangladeshi students are studying overseas in Computer related subjects.

* Bangladesh offers a very attractive cost-effective wage level, viz.

IT Industry

Software has been a relatively a late entrant in Bangladesh ICT market. However like any learning curve, more and more firms are coming into this fray; systematic procedures and practices are being implemented so that quality software houses are being produced rapidly. The basic clientele for the software houses has usually been the corporate houses. i.e. the institutional market. That being so it naturally follows that most of the software are database related.

There are mainly three broad categories of software such as Customized Software, Multimedia Software, Web Software developed in Bangladesh. The most widely used programming language used for developing software are Visual Basic, C++, MS Access, SQL, Oracle, Java, Fox-Pro, Developer 2000, HTML and more. The following graph shows the uses of various platform/languages by developers in Bangladesh:

ictfirms in Bangladesh

ICT Firms in Bangladesh


ICT-related Organizations

* 1979: BCS (Bangladesh Computer Society) 3000 members

* 1989: BCS (Bangladesh Computer Samity) 280 members

* 1997: BASIS (Bangladesh Association of Software & Information Services) 80 members

* 2001: ISP Association

*2001: E-Commerce Association

ICT Act In Bangladesh

ICT ACT 2006

  1. Eliminates barriers to e-commerce,
  2. Promotes legal and business infrastructures to secure e-transactions,
  3. Facilitates electronic filing in government agencies and
  4. Ensures efficient delivery of electronic records from government offices
  5. Help maintain the latest technology by freeing it from nuisance as punitive provisions Publishing obscene or defamatory information in electronic form
  6. The law ensures five years imprisonment and a fine of up to Taka 5 crore for offenders for the first conviction and that could be extended to 10 years imprisonment and Taka 10 crore as fine for each subsequent offence of the same nature.
  7. Powers of Police Officers and Other Officers.
  8. Establishment of Cyber Appellate Tribunal.


Bangladesh Computer Samity (BCS)

Bangladesh, ICT at a glance

Country Report

Cyber crime: a new challenge for law enforcers!

National ICT Policy

The ICT sector of Bangladesh is one of the fastest growing sectors of its economy.
The Government of Bangladesh is very positive for development of ICT and
declared this sector as “the trust sector”. Realizing the importance of ICT, the name
of the Ministry has been changed from “Ministry of Science and Technology” to the
“Ministry of Science and Information & Communication Technology. Also the
Government has set up the 15-member ICT Task Force headed by the Prime
Minister stating the aim to harness and utilize the immense potentialities of ICT for
the overall welfare of Bangladesh. The Government has set up the ICT policy with
the following objectives:
• Promote and facilitate use of ICT in all sectors of the economy for
transparency, good governance and efficiency improvement.
• Develop a large pool of world-class ICT professionals to meet the needs of
local and global markets.
• Promote use of ICT by providing special allocations for ICT project
implementation in the public sector. Train the decision makers in ICT use and
promote an ICT culture.
• Provide effective incentives for development of ICT sector to both local and
foreign entrepreneurs.
• Develop an efficient ICT infrastructure that provides open access to
international and national networks.
• Establish legislative and regulatory framework for ICT issues like IPR, data
security and protection, digital signature, e-Commerce, ICT education etc. as
well as to ensure quality ICT education provided by different private
• Set up national databases that are reliable and easily accessible to all the
people of the country.
• Set up an ICT organization at the highest level to continuously promote and
foster ICT Industry.
• Enact Laws and Regulations for uninterrupted growth of ICT, in conformity
with World Trade Organization (WTO) stipulations.


Bangladesh Computer Samity (BCS)


Now at the dawn of the new millenniuma silent, much more powerful and all pervasive called Information Technology revolution is taking place across the glob. The term information technology or IT has been replaced by information and communication technology or ICT which involves collection, storage, processing and distribution of information. Computers, internet and electronic communication are integral parts of ICT. Texts, numbers, audios and videos are being exchanged throughout the world without space and time barrier. ICT has accelerated the pace of globalization. At the heart of the startling development in some of the developing countries there lies ICT. Countries having access to and control over information will dominate the world economically and politically.

While the huge march of the ICT revolution is going ahead in many countries, Bangladesh also try heart and soul to be a part of that revolution and increase their livelihood like developed countries. The problems were in Bangladesh surrounding ICT are manifold: very low telephone density, high charge of internet service providers, access of insignificant number of people to internet, the present low speed and efficiency of the communication system in the country, low pace of computerization in various offices and sectors, absence of cyber laws and many things more. In the backdrop of all these, some big events are already take place at our country. Now we have many software outsourcing IT firms, Call centers are starting from March 2008 as government call for trade license from February 2008, Bangladesh works with Intels World Ahead Program as well as doctor Younush and our government try our best to increase ICT quick and powerful sector. Bangladesh government already declare ICT as thrush sector. Rather that Bangladesh already connected to the information super highway as fiber optic backbone within the country and the fiber optic submarine cable connection is completed. In the new era we are amidst a digital communication system many thousand times more efficient, speedy and powerful.

In Bangladesh, in the ICT sector a large work force with different levels and various expertise is growing. Computer literacy is imparted, computer applications are taught, training given, diploma, bachelors and master’s degrees awarded. Training centers, colleges, computer institutes, private universities and public universities are all contributing in different ways. The related departments are IT, ICT, Computer Applications, Computer Science, Computer Engineering and Telecommunication Engineering. Steps for quality control of computer education of all kinds are already take place.

To reap the benefits of ICT we have to take it to the doorsteps of general people throughout the country. It is possible to open a huge number of cyber centers in the small towns and villages in the country. The cyber centers can be a place where people will get opportunity to send and receive e-mail and can have telephonic talk over the internet. These are the places where people will have access to internet for information on agriculture and business, health service and can have education, entertainment and so on through internet. All post offices can work as cyber centers, in addition to their normal present duties. These cyber centers can be economically profitable for the entrepreneurs. One may raise the question how the illiterate and ill-educated village people can understand English. It may sound like a fiction, but in near future we will find texts in English converted to texts in Bangla, more surprisingly to voice in Bangla! Extensive researches are going on in India to convert text in English to voice in different Indian languages including Bangla. The success is round the corner.

Electronic governance or e-governance is much talked about in this information age. In Bangladesh it can make the government more efficient, transparent and effective. Besides, it can generate an experienced IT workforce which cannot only earn money within the country but fetch huge amount of money from abroad. Although the ultimate hope of IT revolution depends on private enterprise, it is the introduction of e-governance that can trigger the IT revolution in the country as it covers all sectors and the whole country. In e-governance, government can give information to public and public can have access to important information and documents of the government. Public opinion may be sought on various issues as interaction between public and government can be built through internets and websites. People can vent their grievances and lodge their complaints.
Through internet our administration is going to connect with each other from prime minister office to TNO offices. So quick decisions are possible which will provide faster implementation to take the nation to the new era. . Through intranet Home Ministry can be connected with BDR, Coast Guard and Ansar Head Quarters and SP offices which in turn can be connected with all thanas. Thanas can have information of all recorded crimes and investigation reports. Electronic databases may be used to store details of crimes committed, list of criminals along with their biometric signatures in the form of photographs and fingerprints. Reliable biometric devices and related software are already available in the market.
Videoconferencing to accelerate decision making reducing the cost of travel and accommodation will result in huge cut in the cost of governance. Progress of different projects in distant places can be monitored from the capital city and divisional headquarters. Tender advertisement and tender bidding for government purchases can be done using the internet. Status of various projects of public interest could be displayed through a web site. All information about different stages, starting from the initial conception of a project, to approval of the project, floating of tender documents and ending up with the awarding of the contract to the bidder could be made available to the general public for the sake of transparency. Advertisement for various posts in the government sector may be put up on the websites of the ministry concerned and candidates may apply through internet.
Government should immediately take steps to create a Central Data Bank for the entire population. Electronic ID cards should be made for each individual. That ID card can be used for voting, opening a bank account, having a license or passport, giving tax or income tax, for obtaining job and so on. Various utility bills like power supply, water supply, gas supply and telecommunications can be paid by consumers through internet. They can interact with these utility agencies regarding inaccurate bills or other complaints.
Bangladesh has great potentialities for earning corers of dollars in foreign currency by providing ICT-enabled services to the foreign buyers. Bangladesh has a time difference of twelve hours with North America and other main market which makes possible easy delivery of ICT enabled services. Availability of large number of computer-trained young people with English base on the one hand and cheap wage of the trained manpower on the other puts Bangladesh in an advantageous position. Political will of the government manifested in the declaration of ICT as a ‘Thrust Sector’ and its desire to turn Bangladesh into an ICT driven country will definitely help. The prospective ICT enabled services are call centers, medical transcription, data entry, back office processing, insurance claim processing, salary processing, engineering design, translation, animation and many things more.
Some firms in
Bangladesh are producing quality software which have great demand both at home and abroad. They, however, face severe competition from the foreign firms as many Bangladeshi buyers have a tendency to buy ‘foreign’ products. Additional taxes may be imposed on foreign software to boost the local firms. Government will need a large number of software for e-governance and this may give the local talented software developers an opportunity to improve their expertise and gain experience. This will ultimately improve their prospect of getting orders for software from abroad.
Through internet there has been an explosion of information, creation of transparency and a tremendous opportunity for acquiring knowledge and doing research in all disciplines. People have access to libraries, books and journals through internet. Distance education and virtual teachers are made possible widely by using ICT. In
Bangladesh education and research can get a strong boost by exploiting all these opportunities.
Telemedicine or e-health care has a great future in
Bangladesh. Patients in the remote places can consult the doctors over the internet. In the future distant analysis/transmission may be possible. Using telemedicine, doctors and other caregivers can consult with specialists thousands of miles away, provide diagnosis and treatment, continually upgrade their education and skills; and share medical records and X-rays. Telemedicine or e-health care can be of great help for the health of the rural people. A village can be linked to the health services available inside and outside the country.

Rural economy and health care can be substantially improved with the application of ICT. Farmers can have continued specific advice regarding fertilizers, choice of crops and timing of sowing for their individual plots. They can learn relevant technology. Growers can know the current prices of vegetables, fruits etc. throughout the country and can make their strategy for timing and place for sale of their products.

Taking the advantage of nationwide infrastructure in telecommunication, IT enabled services could be set up in rural areas. Businesses will take the advantage of low cost of office space and lower wages. Standard of living in rural areas will grow. Educated rural youths will get employment. This will help lower the rate of migration to big cities.

Electronic commerce or e-commerce covers many forms of trade of goods and services, all of which rely on the internet to market, identify, select, pay for and deliver these goods and services. Although it originated in developed countries, e-commerce has changed the perspectives of entrepreneurs the world over, including the remote areas of developing countries. E-commerce and e-banking or online banking is in its nascent state in Bangladesh. We should develop e-commerce culture to create such buyers who would expect quick service and supply. Bangladesh can specialize in e-service, any service that can be provided through internet. More and more services will emerge which will be just appropriate for providing through internet.

The established Incubation Centre at Kawranbazar, Dhaka with data transmission facility and uninterrupted electric supply will attract companies involved in software and IT enabled services to start their business from the centre. The nation is now eagerly waiting for the establishment of the High Tech Park with all modern infrastructural facilities planned at Kaliakair near Dhaka, which will be a milestone in IT industry, high tech industry and R&D in Bangladesh.
Bangladesh government approved the National ICT policy in October 2002 with the aim of building an ICT-driven nation comprising a knowledge-based society. ICT Task Force with Prime Minister Begum Khaleda Zia as the chairperson has been created for making policy decisions regarding various ICT related activities. A project “Support to ICT Task Force” primarily for introducing e-governance is being implemented. It is much felt that there should be a Centre for E-governance Initiative which will oversee the total ICT implementation in the country thus coordinating all ICT activities. An important and essential unit of this centre should be a National Data Resource Centre where all the information and data can be stored.

To help the ICT sector flourish in the country, there is a great need for an effective legal framework. Suitable legal reforms can create an ICT friendly legal environment which will help this sector grow by attracting investment. A recent amendment of the Copyright Act 2004 incorporating issues related to ICT will reduce the piracy of copyright of an individual or a company. Software, animation and web page can have copyright using this act. Our much desired paperless environment and filing system in our offices needs certain legal protection. To create a smooth environment for e-commerce, to safeguard the dealings over the net and to check the threat to computer communication ICT law should be passed in the parliament. The law needs to have a legal framework that recognizes digital signatures and other electronic documents and have enough provisions to check cyber crimes, which are not covered by existing law of the land. In order to let the IT sector take off, government should pass a comprehensive cyber law without any further delay. Bangladesh is passing through a juncture where the present government has the opportunity to take the nation successfully into the digital world and can thus play a historic role at the dawn of this new millennium.

According to The World Summit on the Information Society, Geneva Phase, at its Fifth Plenary Meeting, 12 December 2003, adopted the following Plan of Action (WSIS-03/GENEVA/DOC/5): Bangladesh also take action to implement it within 2015.

The objectives of the Plan of Action are to build an inclusive Information Society;

a) to connect villages with ICTs and establish community access points;

b) to connect universities, colleges, secondary schools and primary schools with ICTs;

c) to connect scientific and research centers with ICTs;

d) to connect public libraries, cultural centers, museums, post offices and archives with ICTs;

e) to connect health centers and hospitals with ICTs;

f) to connect all local and central government departments and establish websites and email addresses;

g) to adapt all primary and secondary school curricula to meet the challenges of the Information Society, taking into account national circumstances;

h) to ensure that all of the world’s population have access to television and radio services;

i) to encourage the development of content and to put in place technical conditions in order to facilitate the presence and use of all world languages on the Internet;

j) to ensure that more than half the world’s inhabitants have access to ICTs within their reach.

In giving effect to these objectives, goals and targets, special attention will be paid to the needs of developing countries, and in particular to countries, peoples and groups cited in paragraphs 11-16 of the Declaration of Principles.

Bangladesh‘s GrameenPhone to launch mobile Internet

DHAKA : Bangladesh’s leading mobile phone service provider, GrameenPhone (GP), will launch the country’s first wireless application protocol (WAP) Internet service later this month, a company official said on Sunday. “People can use their cell phones to send and receive e-mails, visit different WAP sites and can have access to news, weather, sports and other essential information,” Syed Yamin Bakht, a deputy general manager of the company, told Reuters.

GrameenPhone was currently testing the service, and its introduction would be a milestone in the development of information technology in Bangladesh, Bakht said. He said mobile phones were gaining popularity among the country’s 113 million people. There are total of 430,000 mobile phones and 624,000 fixed phones in Bangladesh. “GP has sold 103,000 pre-paid and post-paid mobile phones in just 10 days last month,” Bakht said.

GP has 360,000 subscribers, and will invest $460 million by 2003 to increase its capacity. Investment over the past three years totaled $160 million.

GrameenPhone is 51 percent owned by Telenor, a state-owned Norwegian telecommunication firm. Bangladesh‘s Grameen Telecom owns 35 percent, Japanese Marubeni Corporation holds a 9.5 percent stake and Gonofone Development Corp, a New York based development company, has 4.5 percent.-Reuters

Intel will help to develop education and ICT structure in Bangladesh:

World largest microprocessor developer company Intel’s chairman Craig Barrette visited Bangladesh last 4th September to opening Intel’s Corporate Social Responsibility (CSR) program World Ahead in Bangladesh with Grameen Solutions. His visits set positive affect in Bangladesh ICT sector by starting World Ahead Program which divided into four modules: accessibility, connectivity, education and content.

Intel World Ahead Program: To confirm the right of use of information technology within development countries, Intel now takes their ‘Intel World Ahead’ program. It is Intel Corporation’s social welfare program to remove digital difference between developed and under-developed countries. The main goal of the project is to bring to light of information technology third worlds millions digitally desisting and without any convenient and opportunities people. This project gives facilities of using high-speed internet and implementing information technology as educational equipment to upgrade third worlds total education sector.

Intel’s World Ahead Program works based on four major subjects. Those include education, communication, opportunity and subject. After starting from 1968, Intel Corporation has given priority on educational sector. Their main goal is to use information technology as educational equipment. They give focus on education’s realistic syllabus/curriculum and teachers training. Intel will give ICT training among one million teachers of developing countries within five years. Except this, Intel will give one million computers among rural inconvenient students to teach them information technology. Intel’s World Ahead Program works to give opportunity to vast use of information technology.

Except donate computers, Intel works together with government and local organization of different countries. Their motive is to easy use of computer to help human’s work. To confirm highest use of information technology people need easy communication, connection and internet. Internet connection is now unavailable to under development countries. To solve this problem Intel’s World Ahead Program works. Their target is, to connect everyone with internet by warless technology. To implement their goal they need proper content. Active and rich subject related content would need to take usual information through internet. Intel works together with government and local organization to create/prepare rich contents, which will give all types of information to satisfied peoples need. With all this Intel’s World Ahead Program want to give economical freedom and help people for proper development. South Africa’s more villagers upgrade their lifestyle through this program.

By this program Intel will helps to develop Bangladeshi Information Communication Technology (ICT) infrastructure. By this program Intel will give us following facilities:

  1. Intel will provide/distribute one thousands Personal Computer among different schools of our country within next three years.
  2. By collaboration with government Intel will work to help to develop Computer research center among 68 district of Bangladesh within 2008.
  3. In the same time Intel will work to provide high speed internet connection through wireless wai-max technology infrastructure into rural schools of Bangladesh to develop our educational quality.
  4. Intel will also give teacher student training, develop different educational content in local language for provide better quality education in Bangladesh.
  5. Craig Barrette said “Intel will help both formal and non-formal education sector in Bangladesh”.
  6. For easier communication with local government Intel will help to work on eGovernance with government. To develop vast informational infrastructure they also jointly work with local organizations.

Dr. Mahammad Yunous said “Intel and Grameen will work together to spread better quality education in rural village by providing education and technology to develop expert people”. Intel’s World Ahead Program will help to easy use of technology, internet connection, quality education and develop reach content to give perfect information for rural people. It will create good Investment opportunity near future in ICT sector of Bangladesh. The basic primary education for better development with world wide technology and methods implementation will keep strong action for develop expert generative power. In this field, we will implement CaSA Framework to help international standard quality education for rural people. Except this, there is another issue of ICT infrastructure development. By keeping Intel’s Worlds Ahead program as starting era we develop ICT sector as a strong sector for Bangladesh near future. To achieve this goal every one should sincere and far-sighted thinking. Government should have to develop such a platform, which will encourage technological organizations like Intel to future investment in Bangladesh. For this reason, we need proper electricity supply, high-speed internet infrastructure, give easy condition for business management, expert generative power.

Outsourcing Call Center Services:

Bangladesh is now trying hard to grab a share of the multi billion dollar outsourcing pie by gearing up to join the bandwagon. Licences for the country’s first-ever telephone-based call centres are soon to be issued. Holding out the prospect that Bangladesh will soon join the billion dollar global business.The Bangladesh Telecommunication Regulatory Commission (BTRC), which is the licensing authority has invited individuals and firms to apply. Reports suggest, the first licences maybe issued by end of february. Bangladesh is also planning to have first of its own telephone based call center in country. The ministry and the corporate figures of country is amazed by the growth and the wealth generated by its neighbour India by this Call Centre, BPO industry. The move to set up call centres in the country has been prompted by the regulator’s belief that a ”financial revolution’ will be possible in Bangladesh if the country allows the speedy development of the Information Communications and Telecommunications sector.

A call centre is a physical place where customer and other telephone calls are handled by an organisation, usually with some amount of computer automation. Typically, a call centre has the ability to handle a considerable volume of calls at the same time, to screen calls and forward them to someone qualified to handle them, and to log calls. Call centres are used by mail-order catalog organisations, telemarketing companies, computer product help desks, and any large organization that uses the telephone to sell or service products and services.


Daily Prothom-Alo 5 and 6th September.


History of web dev programming languages

There were a huge battle on the topic “The necessary to know the developer and history of a language on which we make our living”. We code a “language” for years and don’t know who was the mastermind behind it, may be it’s silly. Not knowing their name also make us miss some of their other excellent articles and products. Our dev life is full of huge rush. So most of us have no time to net searching to know the masterminds name or history. So here I try to do it in a nutshell.


PHP (a recursive acronym for PHP: Hypertext Preprocessor) is a computer scripting language, originally designed for producing dynamic web pages. It is for server-side scripting, but can be used from a command line interface or in standalone graphical applications.

While PHP was originally created by Rasmus Lerdorf in 1995(first creator), the main implementation of PHP is now produced by The PHP Group and serves as the de facto standard for PHP as there is no formal specification. Released under the PHP License, the Free Software Foundation considers it to be free software.

PHP is a widely-used general-purpose scripting language that is especially suited for web development and can be embedded into HTML. It generally runs on a web server, taking PHP code as its input and creating web pages as output. It can be deployed on most web servers and on almost every operating system and platform free of charge. PHP is installed on more than 20 million websites and 1 million servers, although the number of websites with PHP installed has declined since August 2005. It is also the most popular Apache module among computers using Apache as a web server. The most recent major release of PHP was version 5.2.6 on May 1, 2008.

You may visit Rasmus Lerdorf’s Personal home page .


MYSQL is a multithreaded, multi-user SQL database management system (DBMS) which has more than 11 million installations. The program runs as a server providing multi-user access to a number of databases.

MySQL, the most popular Open Source SQL database management system, is developed, distributed, and supported by MySQL AB. Ulf Michael Widenius (often called Monty)is the main author of the original version of the open-source MySQL database and a founding member of the MySQL AB company. MySQL AB is a commercial company, founded by the MySQL developers. It is a second generation Open Source company that unites Open Source values and methodology with a successful business model.

The MySQL Web site (http://www.mysql.com/) provides the latest information about MySQL software and MySQL AB.

Milestones in MySQL development include:

To administer MySQL databases one can use the included command-line tool (commands: mysql and mysqladmin). Also downloadable from the MySQL site are GUI administration tools: MySQL Administrator and MySQL Query Browser. Both of the GUI tools are now included in one package called MySQL GUI Tools.

In addition to the above mentioned tools developed by MySQL AB, there are several other commercial and non-commercial tools available. phpMyAdmin is a free software webbased administration interface implemented in PHP.

MySQL AB Management Team. MySQL AB.

Monty: The First MySQL Fellow.


Ajax (asynchronous JavaScript and XML) is a group of inter-related web development techniques used for creating interactive web applications. Ajax is not a programming language rather then it is a technology. Ajex is not a technology. Its really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax is a cross-platform technique usable on many different operating systems, computer architectures, and web browsers as it is based on open standards such as JavaScript and the DOM. There are free and open source implementations of suitable frameworks and libraries.

Jesse James Garrett at first give the name Ajax in his writing Ajax: A New Approach to Web Applications published at 18 October, 2005. That means Ajex is only new by name, Google map and google suggest applications are made by Ajex before It comes to light. Ajex take its own name given by Garrett. Ajex is made by existing technologies (XHTML, CSS, DOM, XML, JavaScript) which always use for dynamic web development.

You can visit Jesse James Garrett.


jQuery is a lightweight JavaScript library that emphasizes interaction between JavaScript and HTML. It was released January 2006 at BarCamp NYC by John Resig.

Dual licensed under the MIT License and the GNU General Public License, jQuery is free and open source software. jQuery exists as a single JavaScript file, containing all the common DOM, Event, Effects, and Ajax functions.

jQuery has two styles of interaction:

  • via the $ function, which is a factory method for the jQuery object. These functions are chainable; they each return the jQuery object
  • via $.-prefixed functions. These are functions which do not work in the jQuery object per se.

A typical workflow for manipulation of multiple DOM nodes begins with $ function being called with a CSS selector string, with results in the jQuery object referencing zero or more elements in the HTML page. This node set can be manipulated by applying instance methods to the jQuery object, or the nodes themselves can be manipulated.

jQuery contains the following features:

  • DOM element selections
  • DOM traversal and modification, (including support for CSS 1-3 and basic XPath)
  • Events
  • CSS manipulation
  • Effects and animations
  • Ajax
  • Extensibility
  • Utilities – such as browser version and the each function.
  • JavaScript Plugins

Zend Framework

Zend Framework is an open source, object-oriented web application framework implemented in PHP 5 and licensed under the New BSD License. Zend Framework—often referred to as ZF—is developed with the goal of simplifying web development while promoting best practices in the PHP developer community.

Zend Framework was conceived in early 2005 while many new frameworks, such as Ruby on Rails and the Spring Framework, were gaining popularity in the web development community. ZF was publically announced at the first Zend Conference. At the same time, no widely used framework had been made available to the PHP community to fulfill similar web development needs. The designers of Zend Framework sought to combine the ease-of-use and rapid application development (RAD) features of these new frameworks with the simplicity, openness, and real-world practicality that is highly valued in the PHP community.

ZF’s use-at-will architecture allows developers to reuse components when and where they make sense in their applications without requiring other ZF components beyond minimal dependencies. There is therefore no single development paradigm or pattern that all Zend Framework users must follow, although ZF does provide components for the MVC and Table Gateway design patterns which are used in most ZF applications. Zend Framework provides individual components for many other common requirements in web application development, including authentication and authorization via access control lists (ACL), application configuration, data caching, filtering/validation of user-provided data for security and data integrity, internationalization, interfaces to AJAX functionality, email composition/delivery, Lucene-format search indexing and querying, and all Google Data APIs along with many other popular web services. Because of their loosely coupled design, ZF components can be used relatively easy alongside components from other PHP web application frameworks.


Python was first created by Guido von Rossum in 1990 and was named after the Brit-com Monty Python’s Flying Circus. It has since been developed by a large team of volunteers and is freely available from the Python Software Foundation. The most recent version of Python, 2.5, was released in September, 2006.

Python is now found in many incarnations. At the website of the Python Software Foundation, Python is written in C. Other incarnations exist. A Java-based version of Python exists in Jython and may be used to work with Java code natively.

Iron Python, a C# version, exists for the .Net and Mono platforms and allows C# programmers access to Python’s power and flexibility. In each of these instances, Python is written in one language and works natively with that language; however, it also interacts very well with other languages through its many modules.

For purposes of research and development, there is also a Python implementation written in Python itself. The project PyPy was founded in 2003 in order to enable Python programmers to change the behaviour of the Python interpreter at will. While it is an open source project, being developed openly by a community of developers for free distribution and modification, PyPy is also supported by the European Union as a Specified Targeted Research Project (STReP), part of the FP6 funding program.

Checking CodeIgniter out of the Subversion Repository

If you’ve been following the CodeIgniter community, then you’ll know that some time ago, we made an subversion (SVN) repository available. Subversion is a version control system that we use internally to be sure we’re all working from the same page. The SVN is publicly available, and is committed to by 4 of the fine folks at EllisLab. I’ve referred to it before, but I’ve never really talked about how to use it. Recently, there’s been some people interested in getting the latest and greatest CodeIgniter changes pre-release – and heck, why not, as there’s some fine work in there. This post will talk about how you can use the SVN to keep up with the latest CodeIgniter changes.


First of all, the standard disclaimer: we make great efforts to be sure that the code in the repository is bug free and functioning, but as is the case with all “bleeding edge” releases, from time to time things may slip in there, so I don’t recommend you use it in a “mission critical” environment.

So, how to use it? If you are a Mac user, there are 2 pretty nice graphical interfaces. SCPlugin gets the most attention, but I really like SVNX.

In windows? Go for Tortoise SVN. Integrates with Windows Explorer and has probably the most intuitive interface I’ve ever worked with. In any event, pick a client 😉

Now create a folder on your computer somewhere, and rightclick to set up a new repository. As your destination, choose “http://dev.ellislab.com/svn/CodeIgniter/trunk” which is where we keep our stuff. Now your goto command is “update” and “show log”. Update gets you the latest files, and “log” let’s you see what changed. Here’s an example of the log file from today.


Notice that most times when we check something in we make a comment? Sometimes a change is so minor that we don’t bother, but in general it’ll help you stay on top of what is new in the repository.

Changes tend to come in fits and spurts. You might see nothing for two weeks, and then a dozen changes in two days. In general, anything particularly noteworthy will be discussed here (on this blog), so you don’t need to check it every day, but you might want to keep an eye on future changes yourself.

This article is written by  Derek Allard. I think it helps me a lot.  His  address is  http://www.derekallard.com. U also visit his blog for more article on Codeigniter and PHP.

CodeIgniter vs. CakePHP

I almost fear putting this kind of post together as it’s bound to pull the fanatics (in the negative sense of the word) out of the woodworks. Right off the bat, let me just say that I’ve tried to be as fair and honest in this assessment and I’ve tried to keep it just to the facts while interjecting what my preferences are.

I’m pitting these two frameworks against each other but there really isn’t a clear winner. Each has its strengths and weaknesses and ultimately falls to what your preference for certain features might be.

Why compare these two?

CakePHP and CodeIgniter are quite similar in their approach on a number of things, including their support for PHP4. Any mention of one inevitably leads to someone mentioning the other.

They both attempt to create an MVC architecture which simply means they separate the (data) Model from the Controller (which pulls data from the model to give to the view) from the View (what the user sees).

They both use Routing which takes a URL and maps it to a particular function within a controller (CakePHP calls these actions). CodeIgniter supports regular expressions for routing, whereas you’ll have to wait until CakePHP 1.2 for that feature. Correction: CakePHP 1.1 supports regular expression for routing but it’s not detailed in the manual and is getting updated in 1.2.

They both support Scaffolding which is an automated way of generating a view based on the model. Scaffolding is meant for simple prototyping and CodeIgniter takes it a step further by requiring a keyword in the URL to even access the scaffolding. I’m guessing one could omit the keyword, leaving this feature essentially optional. I prefer not to have to use the keyword as I sometimes build personal projects not intended for public eyes and using a keyword would be a nuisance.

And the list goes on…

Approach to Simplicity

I believe much of CodeIgniter’s appeal is its simplicity in its approach. Most of the work is done in the controller, loading in libraries, getting data from the model, and pulling in the view. Everything is in plain sight and you can really see how things work.

CakePHP’s simplicity comes via automation (euphemistically referred to as “automagic”). It makes the coding process quicker but harder to figure out “what is going on” without popping your head into the core. For me, I like to understand how everything works and I’ve had to poke around under the hood more than once. For people just getting started, things probably look a little daunting.

Working with Models

CodeIgniter’s model handling is fairly straightfoward and basically allows you to mimic a standard SQL query with a few straightforward commands like these examples:

$query = $this->db->getwhere('mytable', array(id => $id), $limit,

$this->db->select('title')->from('mytable')->where('id', $id)->
limit(10, 20);
$query = $this->db->get();

Note: the method chaining in the second part of this example is only available in PHP5.

You can also create a model object, load it in and build custom methods to handle a custom task. You’d want to do this in the model and not the controller to help isolate code into the MVC silos.

CakePHP takes a slightly different route by automatically loading in the model that matches the current controller (controllers tend to be named similarly to the models they are associated with). You can turn off this automated loading and even assign different models that should be loaded by the controller instead.

CakePHP also takes things further by establishing all the model associations for you, allowing for some really easy querying. For example, assuming I’m in a controller named post_controller, I could do the following:


I chose this particular query because it shows two different concepts. The first is the fact that I can access the Comment model via the Post model (assuming I’ve defined that association in the Post model). The second is the fact that I have a method called findAllByPostId. CakePHP allows records to be grabbed via findByX and findAllByX queries where X is equal to the field name you’re trying to find.

Where I think Cake shines is in its ability to pull in all associated data automatically. Take the following query as an example:


This query would automatically pull in all the comments associated with this Post. Really handy stuff.


When working with models, you’ll inevitably have to handle data validation. Data validation in CodeIgniter is handled via a validation class. A set of rules get defined and assigned to the validation object. The validation object automatically (I assume) validates the data passed via the URL or form. From there, you can decide how that gets handled. The validation class can also help automate some of the process of setting error messages for specific fields.

CakePHP handles its validation through the model itself in one of two ways. The first uses a single test against each field defined in a validate variable declared in the model. This works okay for simple stuff but it quickly becomes a cumbrance. Beyond simple validation, I take advantage of the beforeSave callback to perform any custom validation, invalidating any fields that fail.

It’s a toss up for me as to which one “wins”. CakePHP 1.2 will have its validation system reworked a bit to allow for more flexibility.


CakePHP handles this fairly well by using a default layout (which you can easily switch at runtime). The layout has two variables be default: title_for_layout and content_for_layout. Each action automatically links to a particular view which gets spat into place. Again, it’s the “automagic” approach. As long as you name your files a specific way, controllers automatically get linked to models and views. It’s easy enough to override all of this, too, and define your own layouts or view files. There’s no convenient way to get the generated view data, however, making custom built caching mechanisms difficult to implement.

CodeIgniter takes a very straightforward approach: like include files, almost. Each file gets loaded in and processed. There’s a templating class but it doesn’t simplify things much beyond the built-in view handling. You can mimic the CakePHP approach by always including the header and footer calls but it’s not as seamless. CodeIgniter offers hooks allowing view and caching mechanisms to be overridden and replaced with a custom system.

Out of the Box Features

CodeIgniter in my mind wins this hands down with classes for FTP, Email, File Uploading, XMLRPC, Zip encoding and more.

CakePHP on the flip side comes pretty light but tries to make up for it using the Bakery. You can, like CodeIgniter, easily drop in 3rd party classes for any features you might need. Interestingly, although I haven’t tried it, you could probably drop in many of the CI classes into CakePHP without issue.


CakePHP allows for application-wide changes to be done via the base application controller that all other controllers inherit from. Likewise, you can create global model methods using the application model file. However, you can fine tune things at the controller level using any of the controller-level callbacks (beforeFilter, afterFilter and beforeRender). Things like auto-loading helpers and components can also be specified easily at the individual controller level.

CodeIgniter allows for the auto-loading of helpers, libraries and plugins but does this application-wide.


Documentation is key to understanding any framework well enough to develop within it.

CodeIgniter has a complete list of all components with each method and property documented within. CI also has forums and a wiki which feature a lot of user-submitted code.

CakePHP, on the other hand, isn’t as well organized. The manual is starting to show its age with some sections not really going much beyond what the API offers. Because of the format of the original documentation, you can also get it in other formats such as CHM and PDF. CakePHP has the Bakery which contains user-submitted articles, components, etc. The dev team also hangs out heavily on the IRC channel (#cakephp at irc.freenode.net). Finally, there’s the CakePHP Google Group which is pretty active.

Final Verdict

I’m a pretty pragmatic individual and I honestly feel that these two frameworks have a lot going for them. They take a much simpler approach to application development than the complexity that is something like Symfony.

I’m still personally a fan of CakePHP over CodeIgniter for much of the “automagic” that I mentioned. And it’s shortcomings have been getting addressed with each new iteration (1.2 will be a considerable leap over 1.1 but it will still be awhile before it’s released).


This comparison was based on the documentation for CodeIgniter 1.5.2 and having used CakePHP 1.1. I have specifically avoided the subject of performance due to the amount of time required to design, develop and test such a thing.

Written by-Jonathan Snook.

You may visit his site for more article on CakePHP. His address is http://snook.ca/jonathan/

New Akismet CodeIgniter Library

I know many of you are using CodeIgniter to build blogs or similar projects. Well, Elliot Haughin has been building Blaze this week, and for the new blog module, he ended up building an Akismet library for CodeIgniter!

We can’t stand spam.
Who can? You have better things to do with your life than deal with the underbelly of the internet. Automattic Kismet (Akismet for short) is a collaborative effort to make comment and trackback spam a non-issue and restore innocence to blogging, so you never have to worry about spam again.
– Akismet.com
All you need is an Akismet API key, and you’re good to go!

For more details and to download the library, take a look at the Akismet CodeIgniter library’s.

Other libraries by him are

Thanks Elliot Haughin for the great job.

Symbian OS Tutorial Links

The Hello World example

We will first check that the SDK is correctly working:
- Open a DOS box,
- just type ‘NMAKE’ (without the quotes!), if you get a Microsoft Error message U1064, don’t worry, this was just to check your path is correctly configured. If you have an error message saying that NMAKE is not a recognised command, you should run the VCVARS32.BAT script that is located in C:\Program Files\Microsoft Visual Studio\VC98\Bin.

Or modify your path so that it includes the path to Microsoft command line compilation tools).

From the DOS box, move to the HelloWorld example in


You should have three files in this directory (if not, check that you are in the correct example, they are several “Hello World” example and we will only consider the simplest one by now):
- bld.inf
- helloworld.mmp
- helloworld.c

Bld.inf (Bld stands for Build) is the master project file. It generally contains the list of all makefiles (one for each component) that are part of the project. In our example, it only contain a reference to the helloworld.mmp makefile:

Bld.inf (Bld stands for Build) is the master project file. It generally contains the list of all makefiles (one for each component) that are part of the project. In our example, it only contain a reference to the helloworld.mmp makefile:


// Component description file


// Copyright (c) 2000 Symbian Ltd. All rights reserved.



Helloworld.mmp is the project makefile. It contain the list of all source files and libraries that are part of the component:

// HelloWorld.mmp


// Copyright (c) 2000 Symbian Ltd. All rights reserved.

// using relative paths for sourcepath and user includes

TARGET HelloWorld.exe // The name of the target

TARGETTYPE exe // The type of the target

UID 0 // The Unique Identifier of the target

// ------------------------------------------------

// The source files

// ------------------------------------------------

// The relative path to the source files


// The list of source files

// (add as many statements as you need)

SOURCE HelloWorld.cpp

// ------------------------------------------------

// The includes files

// ------------------------------------------------

// Path to user include files (#include "file")

// (add as many statements as you need)


USERINCLUDE ..\CommonFramework

// Path to system include files (#include <file > )

// (add as many statements as you need)

SYSTEMINCLUDE \Epoc32\include

// ------------------------------------------------

// The libraries to link against

// ------------------------------------------------

// List of libraries you will use in your app

// (add as many statements as you need)

LIBRARY euser.lib

And last but not least, Helloworld.cpp is the C++ code which is quite self explanatory:

// HelloWorld.cpp


// Copyright (c) 2000 Symbian Ltd. All rights reserved.

#include "CommonFramework.h"

// do the example

LOCAL_C void doExampleL()


_LIT(KHelloWorldText,"Hello world!\n");



The CommonFramework.h is a useful header file that set up a basic console environment and calls a doExampleL() primitive: this is an extremely useful file to begin playing Symbian C++ without the burden of NS60 specific code (you can also read A simple text console if you want to know more about this console).

Command line compilation

In the DOS box, type

bldmake bldfiles

You should not have any output on screen but a new file called ABLD.BAT has been created in the project directory. This is the entry point to the Perl script that is used to compile the application.

Now, we can compile our application. Type

abld build wins udeb

You should get a long and cryptic output describing the compilation.

However, you will notice that nothing as been created in the current project directory. Welcome to the wonderful world of Symbian. As a matter of fact, you cannot specify where the result of the compilation process will be stored. Let’s go to:


he Helloworld.exe is there. Not very convenient. Type Helloworld and you should see the epoc emulator starting the “Hello world” application.

Working with Visual C++

If you are not a command line addict (which is probably your case since you are using Windows), you can also use Visual C++ to compile and execute your application.

Go back to C:\Symbian\6.1\Series60\Epoc32Ex\Basics\HelloWorld

The abld command generates a Visual C++ workspace:

abld makefile vc6

Once again, it is not located in the project directory. This time you will find it in-C:\Symbian\ 6.1\ Series60\ Epoc32\ BUILD\ SYMBIAN\ 6.1\ SERIES60\ EPOC32EX\ BASICS\ HELLOWORLD\ HELLOWORLD\ WINS

Open the workspace. Recompile and start your application using CTRL-F5. This will regenerate the Helloworld.exe file and start the emulator. You can also set some breakpoint and use the Microsoft debugger if you need to debug an application (maybe not with this example since there is not so many lines to debug!).

Target compilation

You may now want to compile this example to run it on your phone. Unfortunately, you cannot do that directly from Visual C++. Go back your DOS box, in the Go back to


Use the abld build command to compile but specify the THUMB or ARMI target:

abld build thumb urel

As usual, the result of the compilation is not in the project directory but in C:\Symbian\6.1\Series60\Epoc32\Release\thumb\UREL

file in this directory and send it over Bluetooth or Infrared to your phone:
- enable Bluetooth or Infrared on your mobile,
- move it so that it can connect to your PC,
- right click on the exe file,
- select Send To/Infrared (or Bluetooth)

Read Starting APP and EXE applications to check how to start the exe application.

Here it is. You should now be able to compile and run most of the basic examples found in the SDK directories. You can also take a look at the Overview of the Compilation system to know a little bit more on the ABLD command.

Getting started with Symbian development

Symbian OS is a proprietary operating system, designed for mobile devices, with associated libraries, user interface frameworks and reference implementations of common tools, produced by Symbian Ltd. It is a descendant of Psion’s EPOC and runs exclusively on ARM processors.

Symbian OS was built to follow three design rules – the integrity and security of user data is paramount, user time must not be wasted, and all resources are scarce. This led to a continuation of the use of servers; a microkernel; a request and callback approach to all services; an absolute division of user interfaces from system or application services; reuse and openness; extensibility; and robust management and resource recovery to support extended always-on operation. For hardware the OS is optimised for low-power battery-based devices and for ROM-based systems (e.g. features like XIP and re-entrancy in shared libraries). Applications, and the OS, follow an object orientated design, MVC.


The Symbian OS System Model contains the following layers, from top to bottom:

  • UI Framework Layer
  • Application Services Layer
    • Java ME
  • OS Services Layer
    • generic OS services
    • communications services
    • multimedia and graphics services
    • connectivity services
  • Base Services Layer
  • Kernel Services & Hardware Interface Layer

1.1 Identify your target

There are currently three main GUI systems:
– Nokia Series 60
– Nokia Series 80
Here is a short table summarizing this:

GUI Specificities Phones
Series 60 v1.x
+ Symbian OS 6.1
Phone Keyboard
No touch screen
Nokia 3650, Nokia 7650, Nokia N-Gage, Siemens SX1, Samsung SGH-D700, Sendo XXX
Series 60 v2.0
+ Symbian OS 7.0s
Phone Keyboard
No touch screen
Nokia 6600
Series 80
+ Symbian OS 6.0
Full Keyboard
No touch screen
Nokia 9210
UIQ v2.0
+ Symbian OS 7.0
Optionnal Keyboard
Touch screen
SonyEricsson P800, BenQ P30

Each target has its pros and cons. Series 60 platforms are probably the most commons and -IMHO- the easiest to start with.

1.2. Choose your development environment

Once you select your platform, there will be a second decision to make: which SDK / IDE shall I use. There is currently three main options:
– Visual C++ 6.0 (or Visual Studio .NET 2003)
– Metrowerks CodeWarrior for Symbian OS
– Borland C++ Builder, Mobile Edition (totally outdated now)
– Carbide.c++
The best environment will be the one you will be the more familiar with. And most of the work can be done with Visual Studio, CodeWarrior or Carbide.c++.

1.3. Which kind of PC do you need

Most today PC are suitable for Symbian development. You just need enough memory and Windows NT, 2000 or XP.

1.4. Download and Install your SDK

Here are a few links that would allow you to download or buy the appropriate IDE and SDK:

- Nokia SDK for Visual Studio
- Nokia SDK and Borland C++ Builder
- Metrowerks Codewarrior
- Nokia SDK for Metrowerks Codewarrior
- SonyEricsson SDK for Metrowerks Codewarrior

You nstalled the Series 60 SDK in its default directory and that you will use Visual C++

The directory tree

In your C:/ drive there are a new directory tree thats look like:

C:\Symbian\6.1\ =>Series60\ => Epoc32\





Shared\=> Epoc32\

it is a good idea to install the SDK in the default directory.

The Series60\Epoc32\ directory is the most important. It contain all the Symbian header, libraries,… but we will talk about it a little bit later.

The Epoc32Ex directory contain some code example provided by Symbian. This is definitely a good place to start with (especially the Basics, Base and HelloWorld subdirectories).

The Series60Ex directory contain some more code examples by Nokia. They are generally slightly more complex than the Symbian ones and covers Series 60 / UI stuff.

The Series60Doc contains the documentation. The most important files are:
- Devlib.chm : this is the main Symbian developer documentation. You will find here the definition of most of the function you can use. A good tip: go to the Symbian web site and download the latest version which is far more complete that the one included in the SDK.
- Examples.chm and Series60Examples.chm describe all the code examples (not always with enough details).
- Series60APIRef.chm is a list of Series 60 specific APIs (but with very few explanations).

The Series60Tools directory contain extra tools. The most interesting one is the Application Wizard that you really should install (read the txt file in the subdirectory): it will generate some empty application that are a good base to start your projects. The MMP Click is also quite nice: it adds an contextual item in the right-click menu to compile your projects without using the command line.

Some documentation

You are now ready to start. If you can afford it, buy one book or two. This will save you a lot of time. My advices:
- Symbian OS C++ for Mobile Phones (pick this one if you can just get one)
- Programming for the Series 60 Platform and Symbian OS (only if you intend to work on Series 60
- Symbian OS Communications Programming (optional one – only interesting if you intend to use sockets, bluetooth or the telephony API)

You can check the Links to useful Series 60 documents. Take also a look at:
- the Overview of the Compilation system
- T, C, R, M classes
- TRAPs and Leaves
- String and Descriptors
- File types and dependencies
- the other tutorials and links in the Basics section.

If this is not done, you can also register yourself on forum Nokia: you will get access to the Discussion boards. Don’t forget to also register on our boards, the NewLC community is very helpful.

And finally subscribe to Symbian’s discussion.epoc.C++ newsgroup.