Sunday, August 06, 2006

A phenomenon called Ajax

Web applications have evolved a great deal over time. But it wouldn't be wrong to say that the most remarkable transition in web applications is what we've been experiencing in the last few years. This new emerging phenomenon is, what people call, the Web 2.0

For most of the history of the web, client side development has been seen as a lesser technical task. Most (all?) of the power of web based applications was concentrated at the server and the client was pure HTML which basically tells that this particular image or text should be displayed on the screen in this way. This was because most of the users were not on high speed connections or the application tasks required a lot of computing power which clients could not manage or maybe because the data and the logic had to be kept secret. This so called thin-client/fat-server architecture led to an entirely new user interface for web applications which was quite different from the user interfaces provided by desktop operating systems.

Some of the technologies comprising the Web 2.0 intend to change that user interface. One of them is called Ajax, an abbreviation for Asynchronous Javascript and XML. Ajax put the aspect of programming back into client-side rather than the mere markup it used to be. Now what do I mean by those keywords? Let me elaborate.

Ajax is a technology which can be used to give web-based applications a desktop-application like responsiveness and capabilities. Let me take the example of GMail, the poster boy of Ajax. Most of you have used GMail as well as other web based email clients like Yahoo! Mail and Hotmail. One of the difference between them is that GMail (once loaded) appears more responsive and fast, than others. When you click on a message, it loads and shows the message, without the whole page reloading again. This is achieved using some clever javascript programming on the client side by which requests to the server for data are sent in the background (Asynchronously) while normal user interaction can continue in the foreground. When the data fetching completes, the new data is displayed by javascript inside the page without initiating a page reload or refresh.

So how does XML come into the picture? XML (eXtensible Markup Language) is the data format in which the data is usually sent to the client side from the server. A javascript function receives the data, parses it into a DOM (Document Object Model) and renders it on the screen. Too many keywords, eh?

Once again client side programming is fun and new innovative applications of Ajax are coming up fast. Ajax powers various Maps' applications such as Google Maps and Onyomo Maps. Services like Windows Live, Yahoo Mail Beta, Google Suggest and our very own Indian Onyomo.com all utilize the power that Ajax offers. Interesting to note is the fact that the technologies that comprise Ajax viz. Javascript and XML are older than the concept of Ajax. GMail showed the world that they can be combined into a potent combination which can power an entirely new breed of innovative web applications which are more responsive and more desktop like (a capability hitherto difficult to achieve).

The subject is vast and time constraints do not allow me to delve into a lot of detail at the moment. But in case people are interested I may come up with specific tutorials and examples. You can find a lot of resources on these topics simply by googling them.

Since I haven't introduced myself yet; I am Shalin Shekhar Mangar, a final year student of JSS Academy of Technical Education, Noida. I have recently joined a IIT-Delhi based startup called Onyomo.com

Tuesday, August 01, 2006

What is cryptography and how can it help you?

What is cryptography (or cryptology) ?
cryptography n. art of writing or solving ciphers (a secret or disguised writing)

It protects a message or file from being read by an eavesdropper (one who listen to a private conversation) who has no other means of access to either the original text of what is protected, or the key with which it is encrypted.

How does cryptography work?
You use a program to encrypt it; the program will change the letters into symbols and other weird characters, so when someone opens the file they cannot read it. If you encrypt something and send it to someone the other person will need to have the program to decrypt it.

What can I encrypt?
You can use it to encrypt your e-mail that prevents people from reading it in transit. You can use it to protect the entire contents of your hard disk by encrypting everything. But if you use the Internet, there is at present, no encryption technique available to prevent your ISP (Internet Service Provider) from monitoring your connection, and seeing what web sites you visit. Theoretically, however, you could make a secure connection with your browser to a web site that then serves as a browser, accessing web pages for you that you request, and then sending them to your browser in encrypted form. There are anonymizing services on the Internet for other functions, but these services have been subjected to legal action at times, and required to give up their logs.

Since the Internet is terribly new and complicated, the issue involved can be made clearer by illustrating it in terms of older technology. You can use a code, or a voice scrambler, to keep someone eavesdropping on a telephone conversation of yours from understanding what you are saying.