The revolution in Internet and World Wide Web began with the introduction of Server Side web development platform. This new platform made the web dynamic. The web pages can now be generated on-the-fly based upon request parameters.
The above said is very well supported with the success of Content Management Systems like Wordpress, Drupal and Joomla.
But the dynamic generation of content made the sites with large user base slow, because generating a single web page requires a number of database transactions like retrieving site settings, current user details, etc. The content was dynamically generated on every user request. This increased load on web-servers and created a lag in the fulfilment of user requests.
When web developers started exploring the solution for the above problem they found that the web pages do not change often and regenerating the same unchanged web page was sheer wastage of web-server resources. So, they came up with the concept of Web-Cache.
Web cache stores copies of documents passing through it and subsequent requests can be satisfied from the cache until the cache time expires and after time expires the page is regenerated. Hence, Web-Cache was able to reduce the load on server.
The following algorithm will provide a deeper insight on working of a simple Web-Cache:
for a requested URL, try finding that page in Web-Cache
if the page is present in the Web-Cache:
return the cached page (i.e. do not regenerate the page)
else:
generate the page
save the generated page in the Web-Cache
return the generated page
The above algorithm can be used to implement a basic Web-Cache. But, to make caching more effective and robust, more complex algorithms are developed.
In this series of articlowers we will discuss how popular Content Management Systems and frameworks implement Web-Caching. So, stay tuned for more.
A basket full of codeocolates, articlowers, tutoruits and my views around Computer-O-Sphere.
January 16, 2009
January 1, 2009
Happy New Year
I'd like to wish all CodeBasket readers a Happy New Year. Gone 2008 and here comes 2009, lets fill the CodeBasket with more codeocolates, articlowers, and tutoruits
Labels:
articlowers,
codebasket,
codeocolates,
happy,
new,
year
December 29, 2008
Connecting to the Internet on Ubuntu Linux using GPRS, Bluetooth enabled mobile
Mobile phones can act as a gateway between our computer and the Internet. In this post I will discuss how to connect your computer(with Ubuntu 8.10 Interpid Ibex as operating system) to the Internet using a mobile phone(Nokia, Sony Ericsson, Treo etc.) with Bluetooth and GPRS functionality.
To make the connection, we first need to setup a link between mobile phone and Ubuntu system. Steps:
Discovering the mobile phone
We will use hcitool utility to discover the mobile phone. First of all, TURN ON the bluetooth on both mobile phone and computer. Then launch the Terminal from Applications->Accessories->Terminal. Now type the following:
mohit@mohit-laptop:~$ hcitool scan
Scanning ...
00:16:BC:F4:6E:EF mNokia
Note down the address of your mobile, in my case it was 00:16:BC:F4:6E:EF.
Adding the mobile device to /etc/bluetooth/rfcomm.conf
We will now add an entry for our mobile phone in /etc/bluetooth/rfcomm.conf. Open the rfcomm.conf using the command given below.
mohit@mohit-laptop:~$ sudo vim /etc/bluetooth/rfcomm.conf
Now, we have to specify our mobile phone's address ( which we found in the previous step using hcitool scan)
My rfcomm.conf looks like this:
rfcomm0 {
bind yes;
# Bluetooth address of the device
device 00:16:BC:F4:6E:EF
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Nokia";
}
Making the connection
Use the command sudo rfcomm bind rfcomm0 to make the connection. Now we have a modem on /dev/rfcomm0
Creating some PPP Scripts
First of all we will create a chatscript /etc/chatscripts/BluetoothPhone. Here APN should be replaced with the Access Point Name that the service provider uses. In my case it is "airtelgprs.com".
TIMEOUT 10
ABORT 'BUSY'
ABORT 'NO ANSWER'
ABORT 'ERROR'
SAY 'Starting GPRS connect script\\n'
# Get the modem's attention and reset it.
"" 'ATZ'
# E0=No echo, V1=English result codes
OK 'ATE0V1'
# Set Access Point Name (APN)
SAY 'Setting APN\\n'
OK 'AT+CGDCONT=1,"IP","airtelgprs.com"'
# Dial the number
ABORT 'NO CARRIER'
SAY 'Dialing...\\n'
OK 'ATD*99***1#'
CONNECT ''
Second, we have to create /etc/chatscripts/BluetoothPhone-Disconnect
To make the connection, we first need to setup a link between mobile phone and Ubuntu system. Steps:
Discovering the mobile phone
We will use hcitool utility to discover the mobile phone. First of all, TURN ON the bluetooth on both mobile phone and computer. Then launch the Terminal from Applications->Accessories->Terminal. Now type the following:
mohit@mohit-laptop:~$ hcitool scan
Scanning ...
00:16:BC:F4:6E:EF mNokia
Note down the address of your mobile, in my case it was 00:16:BC:F4:6E:EF.
Adding the mobile device to /etc/bluetooth/rfcomm.conf
We will now add an entry for our mobile phone in /etc/bluetooth/rfcomm.conf. Open the rfcomm.conf using the command given below.
mohit@mohit-laptop:~$ sudo vim /etc/bluetooth/rfcomm.conf
Now, we have to specify our mobile phone's address ( which we found in the previous step using hcitool scan)
My rfcomm.conf looks like this:
rfcomm0 {
bind yes;
# Bluetooth address of the device
device 00:16:BC:F4:6E:EF
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Nokia";
}
Making the connection
Use the command sudo rfcomm bind rfcomm0 to make the connection. Now we have a modem on /dev/rfcomm0
Creating some PPP Scripts
First of all we will create a chatscript /etc/chatscripts/BluetoothPhone. Here APN should be replaced with the Access Point Name that the service provider uses. In my case it is "airtelgprs.com".
TIMEOUT 10
ABORT 'BUSY'
ABORT 'NO ANSWER'
ABORT 'ERROR'
SAY 'Starting GPRS connect script\\n'
# Get the modem's attention and reset it.
"" 'ATZ'
# E0=No echo, V1=English result codes
OK 'ATE0V1'
# Set Access Point Name (APN)
SAY 'Setting APN\\n'
OK 'AT+CGDCONT=1,"IP","airtelgprs.com"'
# Dial the number
ABORT 'NO CARRIER'
SAY 'Dialing...\\n'
OK 'ATD*99***1#'
CONNECT ''
Second, we have to create /etc/chatscripts/BluetoothPhone-Disconnect
"" "\\K"
"" "+++ATH0"
SAY "GPRS disconnected."
Finally, we have to create /etc/ppp/peers/BluetoothPhone
/dev/rfcomm0 # Bluetooth modem
115200 # speed
defaultroute # use the cellular network for the default route
usepeerdns # use the DNS servers from the remote network
nodetach # keep pppd in the foreground
crtscts # hardware flow control
lock # lock the serial port
noauth # don't expect the modem to authenticate itself
local # don't use Carrier Detect or Data Terminal Ready
replacedefaultroute
debug
# Use the next two lines if you receive the dreaded messages:
#
# No response to n echo-requests
# Serial link appears to be disconnected.
# Connection terminated.
#
lcp-echo-failure 4
lcp-echo-interval 65535
connect "/usr/sbin/chat -V -f /etc/chatscripts/BluetoothPhone"
disconnect "/usr/sbin/chat -V -f /etc/chatscripts/BluetoothPhone-Disconnect"
Connecting to the Internet
Now to connect to the Internet, type the command sudo pppd call BluetoothPhone. Internet can be disconnected anytime by pressing Ctrl+C.
December 28, 2008
About Me
Who are you?
I'm Mohit Soni. I started hacking computers at the age of 10 with my PC. My exploration of computers started with Microsoft Windows 98 and QBasic. I continued my computer journey with Visual C++ 6.0. I also spent significant time with Visual Basic 6.0 and Visual Foxpro 6.0. I am now quite comfortable with Java, PHP, C, C++.
I started hacking GNU/Linux when I was 17, with Ubuntu 6.06. But now, I am an avid openSUSE user and fan.
I'm Mohit Soni. I started hacking computers at the age of 10 with my PC. My exploration of computers started with Microsoft Windows 98 and QBasic. I continued my computer journey with Visual C++ 6.0. I also spent significant time with Visual Basic 6.0 and Visual Foxpro 6.0. I am now quite comfortable with Java, PHP, C, C++.
I started hacking GNU/Linux when I was 17, with Ubuntu 6.06. But now, I am an avid openSUSE user and fan.
May 25, 2008
openSUSE a Linux by Novell
OpenSUSE is an amazing Linux distribution by Novell. As the name implies OpenSUSE is free to use and distribute. OpenSUSE can be downloaded from openSUSE's website.
The best thing about openSUSE are as follows:
1. Installation: The openSUSE team has done a considerable work at it. The openSUSE installer provides optimum partition layout by default. It recognizes available empty partition and then provides a layout that suits the scenario. Most of the time users can accept the default layout and can proceed with the installation.
2. Desktop Environment: OpenSUSE gives its users to choose between various desktop environments including GNOME and KDE. Both GNOME and KDE are configured by the openSUSE team to be more user friendly.
3. Application Base: OpenSUSE comes with a rich application base to support a wide range of users.
I am using openSUSE since January, 2008 with Windows Vista in a dual boot configuration and we all are happy(Me, Windows and OpenSUSE :) ).
If you are looking for a Linux distribution that is safe to install, use and maintain then I think you should get your hands dirty with OpenSUSE.
The best thing about openSUSE are as follows:
1. Installation: The openSUSE team has done a considerable work at it. The openSUSE installer provides optimum partition layout by default. It recognizes available empty partition and then provides a layout that suits the scenario. Most of the time users can accept the default layout and can proceed with the installation.
2. Desktop Environment: OpenSUSE gives its users to choose between various desktop environments including GNOME and KDE. Both GNOME and KDE are configured by the openSUSE team to be more user friendly.
3. Application Base: OpenSUSE comes with a rich application base to support a wide range of users.
I am using openSUSE since January, 2008 with Windows Vista in a dual boot configuration and we all are happy(Me, Windows and OpenSUSE :) ).
If you are looking for a Linux distribution that is safe to install, use and maintain then I think you should get your hands dirty with OpenSUSE.
April 10, 2008
Portable Python
Portable Python is a portable programming environment that is preconfigured to run from a portable device. Portable python includes:
Portable Python comes as a standalone zip package that contains python for windows and other utilities. Just download Portable Python, and unzip it to your portable device.
As Portable Python is preconfigured you can start out instantaneously with your Python Application.
Now, just plug-in your portable device in any windows system, and start working on your python application.
Portable Python comes as a standalone zip package that contains python for windows and other utilities. Just download Portable Python, and unzip it to your portable device.
As Portable Python is preconfigured you can start out instantaneously with your Python Application.
Now, just plug-in your portable device in any windows system, and start working on your python application.
April 9, 2008
Google App Engine
Google’s new landmark in the devsphere is Google’s App Engine.
App Engine web applications will:
- Be reliable
- withstand heavy loads
- handle large amount of data
App Engine applications will be programmed in Python initially. But Google promises to provide support for more languages in future.
App Engine can be downloaded from Google App Engine Site.
According to me, App Engine will definitely bring more developers under Python Camp. Also, the blogosphere is flooded with people who say that App Engine will definitely expand Google’s Internet.
Subscribe to:
Posts (Atom)