Tuesday, January 20, 2009

Modern Web Browsers: Evolution and History

Introduction:


Web browsers are the gateway to the cyber space. You must own a browser on your computer in order to browse any page on the Internet. What then, you may ask, are web browsers? A web browser (or “browser”, for short) is any computer program or application that is responsible for launching a computer user onto the Internet or a simple area network like the Local Area Network (LAN) at home, office or within any geographical location where such a connection is established; whether wireless or direct connection. If you ever checked your mails on a computer, or read some news headlines from a newspaper website, then you must have used a browser in your life. Web browsers today are of course a component of a branded new system, especially the popular Microsoft Internet Explorer which comes packaged into the Windows operating system. In fact, “mini” browsers are also found in most of today’s mobile phones and other portable devices like personal digital assistants (PDAs) and the like. Some browsers can be downloaded for free, like Mozilla Firefox, Safari, Opera, and Google Chrome, while others are owned for a fee; directly or indirectly. An example is the Microsoft’s Internet Explorer.


The work of a browser is encoding any page on the Internet that is embedded within Hypertext Mark-up Language (HTML) tags. Web pages are written, embedded and “coded” using the popular web design language called HTML, a simple web programming language the computer uses in order to display texts, videos, sounds and graphics/images. The moment you started a browser, it loads onto your system memory (RAM) and suddenly displays itself on the computer screen. As you type in the web site’s universal resource locator (URL) or address (e.g. “www.google.com”), it communicates via your system ports, through the aid of a “protocol” named Hypertext Transfer Protocol (HTTP), down to the computer (i.e. the Web Server) hosting the pages you requested, wherever it is located in the world. It does this through what are called “requests”. The system at the other end collects such requests, analyse them and sends back “feedbacks”, which in this case should be the web pages being hosted or stored in it. As your system receives the information, the browser then “encodes” it and display the content the way it is written by the Web Site Designer: with texts (including colours and shapes), sounds, videos, images and their arrangements within the browser display area. This, in short, is how your browser sources the web pages you requested from the Internet.


History:


Modern web browsers have the root of their history some eighteen years ago, clip_image002and since then, they continue to be one of the driving forces behind the success of the Internet as a technology. Before their appearance, web pages were accessed only through the use of a technology known as “gopher”. A “gopher” was a computer program, written for the purpose of surfing the net, which was then purely text-driven. The structure of a gopher was very simple: it displays the web site pages in totality, giving the surfer the opportunity to see the content of the entire site through “menus”. These menus serve the purpose of what is today known as “hypertext link”, “link” or “menu link”. You can access information through a particular subject by clicking a menu, which takes you down further. Considering the size of users then, one can say that gophers had served the right purpose. Because about eighty per cent of web surfers were either university lecturers or researchers from technology research centres within the US, Japan and other European countries. The content alone determines the users: most of which were research breakthroughs, reports and emails. Most of this information was also accessed through Bulletin Boards and Mailing Lists. No colours, images/pictures, sounds, or videos: only plain, black texts on a white background. However, as time goes on and looking at the restricted mode of opportunities a “gopher” offered, technology researchers embarked on finding an alternative.


The precursor was a research breakthrough in the year 1991 by a British Professor of Physics, named Professor Tim Bernes-Lee, when he founded the World Wide Web Protocol and the Hypertext Transfer Protocol (HTTP) which makes simple surfing from one website/webpage to another through a simple computer protocol; using a hypertext link or Universal Resource Locator (URL). Added to this was the enhancement of the de-factor web design language (HTML), which now provides ways for embedding images, videos, sounds and creating texts colours in a web page. This single act owned him the global honour, titled: The Father of the Internet, in the year 1993. This was what equally heralded the spread of these modern browsers, starting with the appearance of Mosaic 1.0 in the year 1993. The Mosaic browser was the first to trigger the so called Internet Boom or the Dotcom Boom that started in the early 90s. A year after the invention of Mosaic came the famous Netscape Navigator, a browser designed and owned by Mc Andreessen. Mr. Mc Andreessen was among the group that designed Mosaic, but later on left, founded his company - Netscape Communications - and invented the Netscape Navigator. Netscape took the market entirely from Mosaic and changed the surfing pattern of the Internet.


In the same year (1994), another browser called Web Explorer, founded by IBM Corp., was introduced into the market. IBM Corp. introduced its browser and packaged it together with its famous operating system, OS/2 Warp. In the year 1995 the browser market experienced yet another surge, when Microsoft Corp. launched its popular Internet Explorer, version 1.0. In the year 1996, again, another browser named Opera was launched. Opera took the market by surprise when it came with new features and the quality of speed, compared to other browsers in the market then. The browser was small, a minimalist application so to say, and was originally designed for use on portable devices like mobile phones and other similar devices. Despite its sudden popularity, Opera had not taken the market share from Netscape Navigator, which possessed about 80% then, with Internet Explorer trailing behind with 10%. Microsoft Corp, like all other browser makers then, introduced Internet Explorer as a separate product. But realising the challenge from Netscape Navigator, two years later the company announced that henceforth, its browser shall be incorporated into its Windows operating system. This gave the company an upper hand over the rest, and since then, it has been leading in the browser market, with the largest share margin.


From the year 2000 to date, browsers of different shapes and sizes had surfaced, some died naturally, while others undergone some drastic changes. For instance, another browser called Safari, designed for the Mac OS X operating system, was introduced in 2002. The founders of Netscape also moved the application to the open-source platform, where the browser was revamped and renamed Mozilla, in the same year. After a year or two, Mozilla was refashioned to Mozilla Firefox, a full fledged open-source browser with the second position of market share in the browser market today, behind Microsoft’s Internet Explorer. On the other hand, America Online (AOL), which took over the old Netscape through the years, finally retired it in 2006, urging its customers to “move over” to Mozilla Firefox. Finally, some few months ago, the online mega-giant, Google Inc., introduced a new browser called Google Chrome. It is a browser designed with a very good size, security and speed, at least for the meantime.

Monday, September 15, 2008

How Windows OS Consumes Your System's Memory

One of the many concerns of anyone buying a computer is the system memory size, especially if its running a delicate operating system like Windows (and Vista for that matter!). When I bought my HP 530, dual core, 80GB, 512MB-RAM, the first problem I kept battling with is that of managing the little RAM I have, to run the OS. Sometimes I find it very difficult to browse the net, as the system moves slowly, reluctantly and sometimes hangs off! When I could not contain the nuisance, I let go of it, through securing third party applications that could speed up my PC.

In this post, Microsoft Windows Vista's staff Mark Russinovish gave a clear picture of how Windows utilizes your memory while running its processes. Happy reading!

Friday, September 12, 2008

The Long Break - A Review

The Long Break!

The long break I took was purely on accident and coincidence. I have been overloaded with job and personal commitments. That is life for you. However, now that I resumed fully, there is the need for us to look back at the pending projects in the blog. I wish to apologised to readers for my long silence and absence. Lets look at the projects one by one:

The Database Project

This project is almost 90% completion. I have obtained about 20 of the School’s files for data input into the database. All the related forms for data input had been designed, including queries and reports templates. I posted a sizeable number of the 20 files collected, and Godwilling, may finish posting the rest by this weekend. There is no specific date for commissioning the project, I only let the School authorities aware of it. What remains are just finish up, or rather putting finishing touches to the database.

I equally wish to write a complete manual in Hausa language for the proposed users of the database. Also, a visit to the school recently revealed that the School’s computer is in order. Though the machine is running Windows XP, the office program is 2007. So there is little problem with regards to porting the application. This is just a little update, more are on the way.

My Python Lessons

The Python Programming language I started learning some 5 months ago seems to snatch my entire periods, especially these days. The book, Learning Python, written by the famous Python programmer, Mark Lutz, is very interesting. I am presently in chapter 18 – Modules. The python language is simple, flexible and easy to port to different platforms. After a journey through the different chapters of the book, I was able to cover enough, if not everything about elementary programming in the language. To mention a few, I finished the lessons on data types or Objects – Numbers, Strings, Lists, Dictionary, Tuples and Files (open). I equally of recent, covered the different Python Statements and Expressions, Functions and Scope, and presently studying Modules, the fundamentals of all.

Within this period of my absence here, I discovered other python stuff that are directly related to the language, like the numeric extensions called NumPy, and other capabilities of the language with regards to processing numbers, image processing and how the python language can be ported to the Mobile phone as a platform for programming standalone applications. It is indeed a very interesting experience.

After Learning Python, I hope to reach out to other books written by the same author, like Python Programming, where he detailed python’s capabilities in application programming. Other books to looked at includes Dive into Python, and Python Programming for the Absolute Beginner.

In all, my little experience with Python makes me grow in love with the language, and I have finally made up my mind that Python has come to stay with me, FOREVER!

Thursday, March 20, 2008

Update on the Access Database Project

The last time I posted something concerning the Database Project was when I discuss on the general organisation of the project, in its entirety! By then, the whole project was in the design stage. But now, God willing, a lot of things are on ground; including the entire database.

I have designed all the related tables, created queries that will go through them, design reports that will assist in obtaining relevant data from the tables, and finally, each and every section of the database that requires data entry have been gifted with a simple form for the data entry job. A more detailed explanation is provided below:

1. Tables: There are four sections that made up the database, entirely. The Students Records Register contains all the relevant data fields in the table, including a little information about the parents/guardians. Then comes the Staff Records Register, which is a table containing relevant fields about each and every staff of the school; whether a teacher or a non-academic staff. There is also a table for the financial records of the School. This table includes both the income and the expenditure aspects of the school. I call it Finance Records. The last table contains a list of all account codes representing income or expenditure and the nature of both. This is the Account Codes Table.

2. Queries:
Using the Design Query tool in Access, I designed some query samples based on the little data I entered as a test, and it worked fine. I have a query template for each and every table designed.

3. Reports: I also designed a sample report for data contained in the finance table, especially. However, I decided to use my query template in designing the forms. This assisted me in no small major. Though such reports are subject to the data available in the tables, they are handy and can be tweaked around to make some changes.

4. Forms: I have a form for data entry for all the tables. For some tables (like the income and expenditure), I used the query mode to create a data entry form for them. But in some other cases, like that of the Students Records Register, I used the raw table for the form design.

Pending Issues

Before I proceed with the real live-data-entry, I would like to make some changes to the background of some of these objects created. I need to tweak the properties of all the tables data types; setting validation and making some defaults fields enhancement. And since almost all the forms are simple in nature, I need to retouch them, change the layout and arrangement of the forms. Likewise the report templates created. I need to make some changes. In the final analysis, will want to look at macros and what activity I need them to carry out. I also want to create a user entry and a very good switchboard to enhance user friendly interface.

Keep checking the entries!


Friday, February 22, 2008

How Python Runs Programs

Chapter 2


How Python Runs Programs


The Python interpreter runs all the code written in Python. The compilation process in Python is in two phases; when Python codes are written using any text editor available, it can be compiled through the Windows command line/prompt. The Python Interpreter then compile these source codes to byte codes, a low-level language in which the computer can understand, before execution. The Python Virtual Machine (PVM), which is the python runtime environment, then executes these byte codes for the program output.


Source Codes

Byte Codes

Python Virtual Machine (PVM)


Python runs programs immediately they are executed into byte codes, unlike other compiled languages like C and C++ which make room for a recompilation exercise before the execution. The code compilation/execution cycle in Python is therefore straight forward and the most dynamic. For it give room for easy and fast development.


Other Implementation Alternatives


The explanations above suites the Cpython implementation, that is the standard implementation of the Python language. It is the common and the official Python Implementation, which compiled languages like C and C++ deploy. However, other implementations of code execution in Python abound; there is the Jython (or Java Python), a Java specific version of python for the Java developers, who adopt it as a scripting language in applets and java servelets. There is equally the IronPython, which is Windows specific and is used for .NET and C# language developments. With the exception of Cpython above, all other implementations of the Python language seems to have a more specific compilation and execution procedures different from that of the Cpython.


Other execution models of the Python language are Just-in-time Compiler and Shedding C++ Translator. The chapter closed with a brief about "Frozen Binaries", the packaging scheme for all Python coded programs.

Thursday, February 21, 2008

A Simple Database Project Using Office Access 2007

A local Nursery/Primary school is in dire need of a small database that will take care of their piling flat files folders around, and as a friend of the school, I took the daunting task, though silently. The purpose is to give the school management a “practical” surprise with the database, using Microsoft Office Access 2007. I am aware of the sleek and powerful features of the Office 2007 programs Microsoft has released some few months ago. So I choose Access, and am sure it will deliver. This project is very important to the school with regards to proper records keeping. The school boasts of 200 students that attends lectures/lessons at different hours of the day, throughout the week, with the exclusion of Thursdays and Fridays. There are eight teachers around, with a Headmaster and a Committee that oversees the administration of the school.

After a careful look at the project, I came up with a proposal on how to go about the entire project. But first and foremost, everything, as usual, revolves around the six major Objects of a good database management system. These are:

1. Tables (where all the data are to be stored);

2. Queries (form tools that will assist in fetching data using different formats);

3. Forms (the forms assist in inputting data into the tables, and querying such tables in times of need);

4. Reports (a better way of getting the data out of the database for decision making – by printing, viewing etc);

5. Macros (macros are the simplest ways of giving the application order, in order to carry out some recurring events or functions);

6. Modules

The nature of the database should include the following:

1. All the six major objects of a database;

2. Customisation of all forms (both input and query forms) for a good user interface;

3. User account management;

4. Data Security, including backups;

5. Data Analysis features (with regards to income and expenditure, accounting-wise).

The structure of the school management (with regards to admission, recruiting teachers, payment of registration fees, salaries and other income/expenditure) have been observed and I have the following with regards to this:

1. A student register (from tables to input/query forms);

2. Income register (including forms for fees and other income);

3. Personnel Register (for teachers and other support staff of the school);

4. Expenditure register (for all the expenses the school made);

5. A simple General Ledger, for financial discipline and analysis.

The project looks simple but it has a lot in terms of time and technical resource needs. After all, Access has been a very sophisticated database tool, unlike a simple word processing program like Office Word. Let me see whether in the next 30 days I can deliver. The progress shall always be reported here, as usual. Keep a date with this project.

Cheerio!

Wednesday, February 20, 2008

Starting With Python 2.5

The popular open source programming language, Python, has been making the news with its efficient techniques and reusable codes. For the past 15years after its inception, more than 1million developers have either start or switched to Python. There are many books of Python of course in my custody, but would prefer to start with that of Mark Lutz, a famous developer and teacher of the language for more than fifteen years.

I have downloaded the Python IDE and Command shell already from the Python Website. After reading the installation instruction, I unbundled it on to my system and very soon, the tutorial will start.

One thing with Python is its simplicity and code reusability. With this, I mean, you can easily read Python codes, maintain and deploy them to other compiled languages like C and C++. Python also has the option of Object-Oriented Programming. You can equally use Python to program almost everything you want a computer to do for you; from database, file sharing, web design, server administration, games programming, GUI development and many more.

The book is around 500pps and my timeline is to see through in the next one month, all things being equal. Feel free to post your comments.