Thursday, August 02, 2007

Window Hangs!!!!!!!!!!!!!!!!!!!!!!!

Will Windows work continuously for more than 49.7 days?

Here is a bit of information, which may surprise you all. Windows crashes automatically if you don’t switch off the machine
for 49.7 Days. Microsoft accepts this. Do you know why? If not read this.

In Windows the Virtual Machine Manager (here after referred as VMM) is responsible for creation, execution, monitoring and termination
of virtual machines. This VMM, which is a 32 bit, protected mode operating system entity, provides a number of system services at
chip level. One of these services is “Get_System_Time”. This particular service loads the EAX register with the time in milliseconds since Windows started on that machine. This service is accurate to 1 ms. EAX is a 32 bit register in Intel 386 Processor onwards.

So the maximum number of milliseconds it can hold is -> (232)-1 = 4294967295 milliseconds = 4294967.295 seconds = 71582.79 minutes = 1193 hours = 49.7 days

So after 49.7 days the EAX resets to zero. Most of the Drivers use this Time Service to keep track of the Timeout of various
services they provide. So after 49.7 days the drivers cannot use the ?get_System_Time? function of VMM and they crash taking the OS along with.

This applies only to Windows 95 and Windows 98 OS.

This is confirmed in the MS Knowledgebase as -http://support.microsoft.com/default.aspx?scid=kb;en-us;216641

Saturday, December 23, 2006

Orkut Tricky Tricky

1) If your profile pic has a preety face, then be prepared to get lot of chat requests.

2) I forsee/predict, that many profiles which have preety faces & pics, would have to remove those pics, because they will constantly bombarded with chat requests. In a way that is good [ guess how?]

3) Sales of headsets [mics & speakers] would shoot up !!

4) Cyber Cafes which have those privacy partitions would thrive more.

For newbies…duh… Orkut is a social networking website, founded by a Google employee & Gtalk = Google Talk Messenger [IM]. Google has now integrated Gtalk with Orkut, so that Orkut members can talk [chat with voice calls] with their friends using Gtalk…phew.

In the Future….. G Ads & G Radio Audio ads to be served @ start or end of calls?? based on user profile or content/topic of conversation? or ambient sound?

Winners of Google Wordmaster Contest declared

Winners of The Google Wordmasters Challenge 2006 were declared through a Press Release on 9th November. First prize goes to Vamsi Krishna Nakkina, from Hyderabad. Great Going Vamsi !! Congratulations Vamsi!!

Here’s the list of the Top Ten Finalists:
Rank, Name of winner & City from which contested as follows;

1 Vamsi Krishna Nakkina from Hyderabad

2 Karunguzhi Nalini from Bangalore

3 Amrita Singh from Delhi

4 Shriganesh Joshi from Mumbai

5 Shyamalima Sengupta from Bangalore

6 Ravi Rao from Mumbai

7 Tulika Srimal from Hyderabad

8 Debdutta Saha from Hyderabad

9 Terence Tuhinanshu from Indore

10 Geeta Ganapathy from Bangalore

First prize winner Vamsi gets Rs 1,00,000/- as Cash Prize.

Second Prize winner Karunguzhi gets Rs 75,000/- as Cash Prize.

Third Prize winner Amrita gets Rs 50,000/- as Cash Prize.

Vamsi also gets a Course in creative writing from a Top University abroad…WoW !!

Director Online Sales and Operations, Google India, Roy Gilbert said that “Wordmasters 2006 was a platform to identify and celebrate India’s top English writing talent and we are thrilled with both the response and the quality of talent we have seen. At Google, our users, customers and partners expect high quality communication and we hope that such contests will provide further opportunities to attract strong writing talent to Google.”

For those who are wondering as to what this is all about, well, The Google Wordmasters Challenge 2006 was conducted simultaneously in 10 cities across India, these cities were Mumbai, Delhi, Chennai, Kolkata, Bangalore, Hyderabad, Pune, Ahmedabad, Kochi & Indore.

Tuesday, December 05, 2006

Google PageRank

The Google PageRank™ is for webmasters and SEO specialists a very important indicator. Often is a high position in Google SERP's related with the PageRank from a website or domain. A link to a new website from webpage with a high PageRank has as result that the new website is indexed within the first few days after placing this link. A website with a good PageRank is very attractive for Link traders and internet marketing specialists.

PageRank is a link analysis algorithm which assigns a numerical weighting to each element of a hyperlinked set of documents, such as the World Wide Web, with the purpose of "measuring" its relative importance within the set. The algorithm may be applied to any collection of entities with reciprocal quotations and references. The numerical weight that it assigns to any given element E is also called the PageRank of E and denoted by PR(E).

PageRank was developed at Stanford University by Larry Page (hence the name Page-Rank[1]) and Sergey Brin as part of a research project about a new kind of search engine. The project started in 1995 and led to a functional prototype, named Google, in 1998. Shortly after, Page and Brin founded Google Inc., the company behind the Google search engine. While just one of many factors which determine the ranking of Google search results, PageRank continues to provide the basis for all of Google's web search tools.[2]

The name PageRank is a trademark of Google. The PageRank process has been patented (U.S. Patent 6,285,999). The patent is not assigned to Google but to Stanford University.

PageRank (II): Mathematics

Linear system of equations

Calculating the PageRank is nothing else than solving the following linear system of equations

 M * PR = ( 1 - d )
where 0 <> M = 1 – d T where T stands for the transition matrix. The components of T are given by the number of outgoing links:
 Tij = 1 / Cj (if page j is linking to page i)
Tij = 0 (otherwise)
Cj is the number of links on page j. The solution of the linear system of equations is
 PR = M-1 * ( 1 – d )
The calculation of the inverse matrix M-1 can (in principle) be done analytically. For 0 < href="http://pagerank.suchmaschinen-doktor.de/matrix-inversion.html">Jacobi-iteration:
 PR{k+1} = ( 1 –d ) + d T * PR{k}
PR{k} denotes the value of the PageRank vector after the k-th iteration. PR{0} = 1 can be taken as the initial PageRank vector. Of course, the solution is independent from the initial guess. The convergence is guaranteed, since the largest eigen value of d T is smaller than 1. The damping factor specifies the amount of PageRank that is transferred. In case of d=1 the whole PageRank is passed while for d<1>Rewriting the last equation for the components and omitting the denotation for the iteration yields

 PRi = ( 1 – d ) + d ( PRX1 / CX1 + ...
+ PRXn / CXn )
Often this equation is referred as PageRank algorithm. However, strictly speaking this is an iteration scheme to solve the matrix inversion for the equation at the top. Anyway the Jacobi-iteration isn’t the faster way for computation. In general the following iteration scheme (minimal residue)
 PR{k+1} = PR{k} + R{k} ( ∑ Ri Mij Rj ) /
( ∑ Min Rn Mij Rj)
with
 R{k+1} = R{k} – M * R{k} ( ∑ Ri Mij Rj ) /
( ∑ Min Rn Mij Rj)
converge faster. There are several other iteration schemes (see for example A. S. Householder. "The Theory of Matrices in Numerical Analysis" New York, 1964) such as Gauss-Seidel, overrelaxation methods, conjugate gradient, preconditioning methods, multigrid and blocking techniques or Chebyshev. However, some iterations schemes are restricted to hermitian matrices.

In some cases the linear system of equations

 M * PR = ( 1 - d ) / N
is considered instead of the first one given at the top. Obviously, the solution vector is the same apart from a normalisation factor of 1 / N.

The case d=1 (no damping) has to be treated separately. This corresponds to determine the eigen vector of T with eigen value 1. The problem are degenerate eigen values. They appear for linking structures where not every page can be reached from every other page. This is the case for dead ends (pages without outgoing links) or maple leaves (close structures). In these cases the numerical solution given by the iteration scheme depends on the initial vector. It is a combination of eigen vectors for the eigen value 1. However, for d <>

Random surfer model

For d <>

 M * PR = ( 1 - d ) / N
In case of dead ends the probability vector is proportional to the PageRank vector.

Wednesday, November 29, 2006

AJAX From Scratch

There are quite a few AJAX demos and examples on the web right now. While these are invaluable to learning AJAX, some people need a bit more information than just a raw piece of code. In todays environment there are many ways to learn AJAX including, books, classes, conferences, workshops and tutorials. Of these the only one that is free and accessible to everyone are web-based tutorials. The following is a list of what I consider the be the best and most helpful AJAX tutorials that I've found over the past year. Please let me know through email or a comment if you know of any other great AJAX tutorials and I'll be glad to post them. Also special thanks to all of the folks who produced all of these great free learning experiences.

AJAX Client-Server Communication Tutorials
Alternate Ajax Techniques, Part 1
By now, nearly everyone who works in web development has heard of the term Ajax, which is simply a term to describe client-server communication achieved without reloading the current page. Most articles on Ajax have focused on using XMLHttp as the means to achieving such communication, but Ajax techniques aren't limited to just XMLHttp. There are several other methods.

Dynamic HTML and XML: The XMLHttpRequest Object
Thanks to the little-known XMLHttpRequest object, an increasing range of web clients can retrieve and submit XML data directly, all in the background.

Guide to Using XMLHttpRequest
Using XMLHttpRequest with php and mysql

Make asynchronous requests with JavaScript and Ajax
Make asynchronous requests with JavaScript and Ajax. In this article, you'll begin with the most fundamental and basic of all Ajax-related objects and programming approaches: The XMLHttpRequest object.

Instant Tutorial
Simply put, AJAX allows you to make a call to an http server (typically an RSS feed or a webpage), get it’s content and load them into your existing page without having to refresh the whole page. This means that services like email don’t have to reload the whole page everytime you click a message, saving on bandwidth (loading the header/footer all over again) and making things more efficient.

Advanced Requests and Responses in AJAXR
In this article, Brett McLaughlin will show you the different status codes and demonstrate how browsers handle each and he will showcase the lesser-used HTTP requests that you can make with Ajax.

AJAX Drag and Drop Tutorials
Fun with Drag and Drop with RICO
For those of you who haven't seen Rico its another AJAX library, with quite a few cool extras. What I'm going to cover here is my first expiriment with Rico and their 'drag and drop' functionality. Getting basic drag and drop functionality is extremely easy with this library, and with just a bit of modification you can easily make it fit whatever you could want.

Drag & Drop Sortable Lists with JavaScript and CSS
In Web applications I've seen numerous, and personally implemented a few, ways to rearrange items in a list. All of those were indirect interactions typically involving something like up/down arrows next to each item. The most heinous require server roundtrips for each modification...boo.

Building a Drag-and-Drop Shopping Cart with AJAX
For this article, we'll create an interactive shopping experience allowing us to add items to our shopping basket by dragging and dropping them onto an icon of a shopping cart. We'll add AJAX functionality, allowing us to update our shopping cart without redrawing the entire screen.

AJAX Form Tutorials
Accessible Forms and Unobtrusive Javascript
I usually try to separate backend logic from the user interface logic when creating new PHP applications. I am pro fat gui and usually have a lot of client side scripting going on. I mostly use AJAX or other remote scripting techniques to call actions defined in the PHP backend.

Submit a form with Ajax
The new release of CakePHP (RC2) comes with a completely rewritten AjaxHelper::form() function (with the disadvantage that it breaks existing code).

Niceforms
Web forms. Everybody knows web forms. Each day we have to fill in some information in a web form, be it a simple login to your webmail application, an online purchase or signing up for a website. They are the basic (and pretty much the only) way of gathering information on the web.

AJAX File Uploader Tutorial
Better File Uploads with AJAX and JavaServer Faces
In this article, we will take fresh approach and implement an AJAX-powered component that will not only upload the file to server, but also monitor the actual progress of a file upload request in "real time."

AJAX Framework and Toolkit Tutorials
AJAX Tutorial with Prototype
I wanted to give an example of a good use of AJAX, and at the same time keep it simple. So I thought a good example would be to build a zip code verifier. As soon as the person enters the zip code it makes a request to the server to see if the zip code is in the database, and returns the city and state.

Learn xajax in 10 Minutes
xajax is designed to be extremely easy to implement in both existing web applications as well as new projects. You can add the power of xajax to nearly any PHP script in seven easy steps.

Using Ajax with PHP and Sajax
This tutorial explains how to use Ajax with PHP and introduces the Simple Ajax Toolkit (Sajax), a tool written in PHP that lets you integrate server-side PHP with JavaScript that makes this work.

Developer Notes for prototype.js
If you tried to use this library recently, you probably noticed that documentation is not one of its strongest points. As many other developers before me, I got my head around prototype.js by reading the source code and experimenting with it. I thought it would be nice to take notes while I learned and share with everybody else.

AJAX Getting Started Tutorial
AJAX:Getting Started
This article guides you through the AJAX basics and gives you two simple hands-on examples to get you started.

AJAX Image Gallery Tutorial
Ajax: What is it Good For?
AJAX image gallery tutorial with some history and commentary

AJAX Keyword Suggest Tutorials
How to create the Google Suggest feature with ASP.NET 2.0
Google Suggest seems to be the topic du jour in the blogosphere. It is a cool feature, but what I really enjoy is that it is yet another real world example of a "chubby" client.

Creating an Autosuggest Textbox with JavaScript, Part 1
Over the past year, Google has branched out from its search engine into other types of Web applications. One that caused a great deal of excitement among Web developers is Google Suggest. The basic idea is very simple: as you type, Google suggests search terms that come up with results. The first suggestion is filled into the textbox as you type while a list of several suggestions appears in a dropdown list beneath the textbox.

AJAX Live Search Tutorials
HOWTO: Animated Live Search / Ordered List 've been meaning for some time to give a little tutorial on the live search I created for this latest design. There are a few steps involved, and I'll do my best to explain each as we go. Live search explained Live search will gradually replace traditional search in web applications. As mainstream programs such as Windows Vista matures up to release, and live search is deeply integrated, we can expect more web pages implementing live search. AJAX Rounded Corner Tutorials Rico rounded corners without all of Rico I extracted and made very minimal changes to Rico's rounded corner implementation so I could use it without needing all of Rico. Currently I'm using Script.aculo.us in all of my projects and didn't need all of Rico, but Script.aculo.us doesn't have a Rounded Corners implementation. All credit to the talented guys over at OpenRico for this! AJAX Sorting Tutorial Make all your tables sortable Tutorial on how to make all your tables sortable AJAX Tabbed Pages Tutorials Building Tabbed Content This workshop we will be building a tabbed content browser that's Ajax powered. When ever a user clicks a tab the Ajax will communicate with the server and send back the appropriate data for that tab. We will start this workshop off with the XHTML and CSS for the tabbed content browser.

Make an AJAX Website in Less than 10 Minutes I've been toying around with AJAX apps and XMLHttpRequest but have wanted to put up a site that loads all of its content asynchronously. If you're like me and you learn best from working with examples you're only 10 minutes away from your first AJAX website. Very Dynamic Web Interfaces One of the classic drawbacks to building a web application interface is that once a page has been downloaded to the client, the connection to the server is severed. Any attempt at a dynamic interface involves a full roundtrip of the whole page back to the server for a rebuild--a process which tends to make your web app feel inelegant and unresponsive. In this article, I'll be exploring how this problem can be tackled with the use of JavaScript and the XMLHttpRequest object. AJAX Design Patterns Excellent tutorial on how to build an AJAX powered website, with dynamic page loads. Beautiful JavaScript-Powered Pages I've been delving deeply into the world of Javascript-powered interfaces. Now that I've had some time to play and learn about the scripts and techniques that are out there, I've come to what I believe to be the ultimate combination.

Sunday, September 17, 2006

ગૂગલ ન્યૂઝ : ભારતનું ગૌરવ – ડૉ. હરેશ અને યોગેશ કામદાર

1970 ના દાયકાના ઉત્તરાર્ધમાં બૅંગલોરનો એક બાળક કૃષ્ણ-ભરત મુગ્ધ બની તેના દાદાને જુદાં-જુદાં છાપાં વાંચતાં જોતો. કન્નડ અને અંગ્રેજી ભાષાનાં અલગ-અલગ સમાચારપત્રો અને સામાયિકો તો ખરાં, ઉપરાંત અમેરિકાનું “ટાઈમ” સાપ્તાહિક પણ દાદાજીનું માનીતું. આટલું હજી ઓછું હોય તેમ દાદાજી દરરોજ બી.બી.સી.ના અને ટેલિવિઝનના સમાચારો પણ અચૂક સાંભળતા. દાદાજીની સાથે કૃષ્ણ-ભરત પણ સમાચારોમાં રસ લેતો થયો. બાળવયમાં સમજ ઓછી હોય પણ એક વાત તો તેના ધ્યાનમાં આવી : એક જ સમાચારને અલગ-અલગ સ્ત્રોત જુદી રીતે અને નોખા પરિપેક્ષ્યમાં રજૂ કરતા. એક સમાચારપત્ર માટે જે ખબર અતિ મહત્વની હોય તેની બીજાએ માત્ર નગણ્ય નોંધ લીધી હોય. નાના બાળકે એક મહત્વનું તારણ કાઢ્યું – જો કોઈ પરિસ્થિતિને સારી રીતે સમજવી હોય તો તેને જુદા-જુદા દષ્ટિકોણથી જોયા બાદ જ તેના વિશે મત બાંધવો જોઈએ.

બીજી તરફ કૃષ્ણ-ભરતનું શિક્ષણ પણ આગળ વધતું ગયું. ભણવામાં હોંશિયાર. ભારતમાં એન્જિનિયરિંગ કરી અમેરિકાની સુપ્રસિદ્ધ જ્યોર્જિયા ટેક યુનિવર્સિટીમાંથી સન 1996 માં કૉમ્પ્યુટર વિજ્ઞાનમાં પી.એચ.ડી કર્યું. થોડો વખત ડિજિટલ ઈક્વિપમેન્ટ જેવી વિખ્યાત કંપનીમાં નોકરી કરી. વર્લ્ડ વાઈડ વેબ પર ઉપલબ્ધ અખૂટ માહિતીમાંથી જોઈતી માહિતી શોધી કાઢવાનું કામ અલ્ટાવિસ્ટા નામનું સર્ચ-એન્જિન કેવી રીતે કરે છે તે વિશે સંશોધન કરવાની જવાબદારી તેને સોંપાઈ. આ નોકરી દરમિયાન તેની મુલાકાત થઈ તેની જ વયના બે યુવાનો સાથે. તે હતા લૅરી પેજ અને સર્જી બ્રિન – ગુગલ સર્ચ એન્જિનના સ્થાપકો. પેજ અને બ્રિનને કૃષ્ણ-ભરતના વિષયમાં રસ પડ્યો અને તેને બોલાવી લીધો ગૂગલમાં. ગૂગલ એ વખતે નવી નવી જ કંપની હતી. કૃષ્ણ-ભરતને અખત્યાર સોંપાયો ગૂગલ રિસર્ચ ગ્રુપનો – નવી નવી તકનિકો પર સંશોધન કરવાનું મુખ્ય કામ. ટેકનોલોજીમાં સુધારા-વધારા કરી ભવિષ્યના ઉપયોગ માટે કેમ આગળ વધી શકાય તેના પ્રયોગો અને અખતરા કરતા રહેવાનું. ટેકનોલોજી સફળ નીવડે કે નિષ્ફળ, પૈસા પેદા કરી શકે કે નહીં તેની જરા પણ દરકાર કરવાની નહીં. સફળતા મળે કે ધનપ્રાપ્તિનો યોગ જણાય તો પણ ઠીક અને આમ ન થાય તો પણ કોઈ વાંધો નહીં. આવું હતું કૃષ્ણ-ભરતનું ગૂગલનું કાર્ય-ક્ષેત્ર.

ગૂગલમાં વળી બીજી એક અદ્દભુત સગવડ. કંપનીના દરેક કર્મચારીને પોતાના નોકરીના કલાકોમાંનો 20 ટકા સમય પોતાને મનગમતી પ્રવૃત્તિ પાછળ ખર્ચવાનો. કંપની કે પોતાનો ઉપરી આ બાબતમાં કોઈ પ્રકારની દખલ ન કરે. પોતાને અનુકૂળ અને પોતાની રુચિ મુજબનું કામ નોકરીના આ 20 ટકા સમયમાં દરેક કર્મચારી કરી શકે. ગૂગલના યુવાન સ્થાપકોની એક દઢ માન્યતા એ હતી કે આવું સ્વાતંત્ર્ય નવા વિચારોની મહામૂલી ખાણ નીવડશે. નોકરીના કલાકોના 20 ટકા એટલે અઠવાડિયે એક દિવસ – કોઈ પણ પ્રકારની રોક-ટોક વગર પોતાને ગમતા કામ પાછળ ગાળવાનો. કવિની ભાષામાં કહીએ તો સપનાનાં વાવેતરનો કાળ. ગૂગલની ટેકનોલૉજીમાંની ઘણી આવા પ્રયોગોમાંથી જન્મી છે. સંશોધક પોતાને મનગમતા કાર્યની જાણકારી પોતાના સહકર્મીઓને ઈલેકટ્રોનિક બુલેટિન બોર્ડ પર આપે અને સાથીઓ પોતાનાં પ્રતિભાવો, ટીકા-ટિપ્પણ જણાવે. અભિપ્રાયોના આવા આદાન-પ્રદાનને કારણે નવી દિશાઓ ખૂલતી જાય. હકારાત્મક પ્રતિભાવ એટલે બીજાઓને નવો વિચાર પસંદ પડ્યો છે અને સહિયારી રીતે તેને આગળ વધારી શકાય છે તેવી લીલી ઝંડી. ગૂગલ આ રીતે નવી નવી ટેકનોલૉજી વિકસાવતું ગયું.

કૃષ્ણ-ભરત જ્યારે પોતાની પી.એચ.ડી માટે સંશોધન કરતો હતો ત્યારે તેણે એક નવીન પ્રકારના ઈલેકટ્રોનિક સમાચાર – પત્રની કલ્પના કરેલી. વર્લ્ડ વાઈડ વેબ પર કોઈ એક ચોક્કસ બાબતને લગતા જે-જે સમાચાર હોય તે બધાને એકસાથે લાવી એક જ થાળીમાં પીરસવા મળે તો ? આવો સંચય વાસી પણ ન હોવો જોઈએ. એટલે તાજેતાજા સમાચાર વિષયવાર અને વિગતવાર ગોઠવી વાચકની રુચિ અનુરૂપ આપી શકાય તો ? ગૂગલમાં નોકરી લીધી ત્યારે પણ આ વિચાર તેના મગજમાં અવાર-નવાર ઝબકતો રહેતો. અને તેમાં આવ્યો 11 સપ્ટેમ્બર 2001 નો ગમખ્વાર દિવસ. કૃષ્ણ-ભરત તે દિવસે ન્યુ ઓર્લિયન્સ શહેરમાં એક મહત્વની બેઠક માટે ગયેલો. પોતાની હોટેલની રૂમમાં ટેલિવિઝન પર આતંકવાદી હુમલાઓના સમાચાર જોયા. ટેલિવિઝનની એક પછી એક ચેનલ ફેરવતો ગયો, વધુ ને વધુ માહિતી માટે અને આ ગોઝારી ઘટનાએ એક ચિનગારીનું કામ કર્યું.

બાળપણમાં દાદાજી સાથે માણેલા દિવસોનું સુખદ સ્મરણ; વાંચવાની જે લત દાદાજીએ લગાડી હતી તે; જ્યોર્જિયા ટેકમાં કૉમ્પ્યુટર વિજ્ઞાનનો ઉચ્ચ અભ્યાસ; ત્યાં વિચારેલા નવા પ્રકારના સમાચાર-પત્રનું આલેખન; ગૂગલમાં નોકરી દરમ્યાન મનગમતું કામ કરવા મળેલ 20 ટકાનો સમય અને 11 મી સપ્ટેમબરનાં દશ્યો. આ બધાં પરિબળો એકસાથે કામે લાગ્યાં. કૃષ્ણ-ભરતે શરૂ કર્યું કામ એવી ટેકનોલૉજી પર કે જેના દ્વારા એક જ વિષયને લગતા સમાચાર જુદા-જુદા સ્ત્રોતમાંથી ભેગા કરાય અને એકસાથે રજૂ કરાય. એક જ વિષયને કેટલા અલગ-અલગ દષ્ટિકોણથી જોઈ શકાય તેનો તરત અહેસાસ મળે. કૃષ્ણ-ભરતે પોતાના ગણિતશાસ્ત્રના ઉચ્ચજ્ઞાનનો ઉપયોગ કરી સમાચારોને કેવી રીતે વિભાગવાર વહેંચવા, અગ્રતાક્રમાનુસાર ગોઠવવા, નવા સમાચારોને પ્રાધાન્ય મળવું જોઈએ વગેરે મુદ્દાઓને સાંકળી લે તેવી વ્યવસ્થા ઊભી કરી. એક વ્યક્તિ કે વ્યક્તિઓનો સમૂહ આ કામ કરવા સક્ષમ નથી એટલે આ બધું કામ અવિરતપણે કૉમ્પ્યુટર્સ કરતાં જાય તો જ શક્ય બને. આવું માળખું તૈયાર થયું એટલે તેમાં વધુ ને વધુ સૂક્ષ્મ પરિમાણો ઉમેરાતાં ગયાં. મહત્વના સ્ત્રોત (જેવા કે ન્યુયોર્ક ટાઈમ્સ, બી.બી.સી, ગાર્ડિયન) ના સમાચારનો અગ્રતાક્રમ ઊંચો હોય તે સ્વાભાવિક છે સાથે સાથે નાના સ્ત્રોતને પણ અવગણવા ન જોઈએ. તાજા સમાચાર ઉપરની પાયરીએ રાખવા પડે. સાથે ફોટાઓ પણ સાંકળી લેવા જોઈએ. સમાચારો વણથંભ્યા ઘડાતા રહે એટલે તેને અનુરૂપ કૉમ્પ્યુટર્સ પણ સતત સંકલન કરતાં રહેવાં જોઈએ.

ગણિતશાસ્ત્ર અને કૉમ્પ્યુટર વિજ્ઞાનનાં જટિલ પાસાંઓનો ઉપયોગ કરી સન 2002 ની શરૂઆતમાં પોતાના ઓનલાઈન ઈલેક્ટ્રોનિક સમાચાર-પત્રનું ડમી તૈયાર કર્યું. ગૂગલના સંસ્થાપકોએ આ પ્રોજેક્ટમાં તીવ્ર રસ દાખવ્યો અને કૃષ્ણ-ભરતના શોખનું આ રમકડું ગૂગલનો મહત્વનો પ્રોજેક્ટ બની ગયું. ગૂગલના બીજા સાથીઓ આ કામમાં જોડાયા. જોઈએ તે મદદ હાજર કરાઈ અને આમાંથી ઉદ્દભવ્યું એક અવનવું સમાચારપત્ર “ગૂગલ ન્યૂઝ”.

આ ઈલેક્ટ્રોનિક સમાચારપત્ર વિશ્વના દરેક નાગરિક માટે તદ્દન મફતમાં ઉપલબ્ધ કરાયું છે. “ગૂગલ ન્યૂઝ” એટલે અદ્યતન કૉમ્પ્યુટરોનું એક એવું જાળું જેનાં સોફટવેર વર્લ્ડ વાઈડ વેબ પર વણથંભી રીતે સમાચારો શોધતાં રહે, એક ચોક્કસ વિષયને લગતા સમાચારો એકસાથે સંકલન થઈ રજૂ થાય. જુદા-જુદા સ્ત્રોતોના સમાચારોનાં મથાળાં વાચકને મળે અને જે મથાળામાં રસ પડે તેના પર કિલક કરતાં તે સ્ત્રોત પર વાચકને પહોંચાડી દે જેથી વિગતવાર માહિતી મેળવી શકે. …પણ આટલું પૂરતું નહોતું. કૃષ્ણ-ભરતને તો જોઈતું હતું વાચક પોતે પસંદ કરી શકે તેવા સમાચારો ધરાવતું છાપું. એટલે એક નવી તકનિક વિકસાવાઈ. દરેક વાચક પોતાને ગમતા વિષયો પસંદ કરી દરેક વિષય પર કેટલાં મથાળાં જોવા ઈચ્છે છે તે પણ નક્કી કરી શકે. વિષયોનું વૈવિધ્ય પણ ગજબનું : વિશ્વ સમાચાર, કોઈ ચોક્કસ દેશને લગતા સમાચાર, વિજ્ઞાન-ટેકનોલૉજી, સ્વાસ્થ્ય, રમત-ગમત, મનોરંજન, વેપાર-વાણિજ્ય, કળા-સંસ્કૃતિ, વગેરે, વગેરે. મથાળાંની સાથે ફોટાઓ જોઈએ છે કે નહીં તે પણ પસંદગી વાચકની જ. કયા વિષયના સમાચાર ઉપર હોવા જોઈએ અને કયો વિષય અગ્રતાક્રમમાં પાછળ હશે તે પણ દરેક વાચક પોતાની મરજી મુજબ નક્કી કરે. “ગૂગલ ન્યૂઝ” દરેક વાચકને તેની પોતાની ફરમાઈશ મુજબનું સમાચાર-પત્ર આપે. સમાચારો પ્રતિક્ષણ વ્યવસ્થિત ગોઠવાતા રહે. અત્યારે વિશ્વભરના 4500થી વધુ સ્ત્રોતોના સમાચારોનું સંકલન “ગૂગલ ન્યૂઝ” પોતાના વાચકને પીરસે છે – તદ્દન મફતમાં. સજાવટ એટલી આકર્ષક અને ગોઠવણ એટલી તો વ્યવસ્થિત કે વાચક પોતાના મનપસંદ સમાચારો માણતો જ રહે.

“ગૂગલ ન્યૂઝ” ઝંઝાવાતની જેમ વિશ્વભરમાં ફેલાઈ ગયા. આટલી ગજબની સફળતા ઈન્ટરનેટના ઈતિહાસમાં બહુ ઓછી નોંધાઈ છે. કૃષ્ણ-ભરતની બઢતી થઈ ગૂગલની રિસર્ચ એન્ડ ડેવલેપમેન્ટ ઑફિસના મુખ્યાધિકારી તરીકે – ભારતમાં. ગૂગલની નવી ટેકનોલોજીમાંની ઘણી ભારતમાં રચાઈ છે. “ગૂગલ ન્યૂઝ” ની સફળતા જોઈ ગૂગલના બીજા સંશોધકોને થયું આમાં હજુ નવા અખતરા કરીએ તો ? તેમાંથી જન્મે છે “ગૂગલ એલર્ટ”. વાચક પોતાની રુચિ જણાવે તો તે વિષયને લગતા નવા સમાચારો જેમ જેમ ઉદ્દભવતા જાય તેમ તેમ વાચકને ઈ-મેલ દ્વારા તેની જાણ ગૂગલ દ્વારા કરાતી રહે. આ સગવડ પણ તદ્દન મફતમાં. આજે કરોડો લોકો “ગૂગલ ન્યૂઝ” અને “ગૂગલ એલર્ટ” ના સભ્ય છે. સભ્યપદ માટે કોઈ પ્રકારની ફી નથી કે નથી કોઈ જાતની ખરીદી કરવાની.

આજે કોઈ પણ ખર્ચ વિના વિશ્વની દરેક વ્યક્તિ પોતાની પસંદને અનુરૂપ તાજેતાજા સમાચારો અવિરત રીતે મળતાં રહે તેવી સમર્થ બની હોય તો તેના પાયામાં છે એક વ્યક્તિનું વિસ્મયભર્યું બાળપણ. આજે કૃષ્ણ-ભરતની ઉંમર છે 36 વર્ષ. અને તેઓ ગૂગલના પ્રિન્સિપાલ સાયન્ટિસ્ટ છે.

(“ગૂગલ ન્યૂઝ” ની વેબસાઈટ છે : http://news.google.com આ વેબસાઈટ પર જઈ પોતાનું નામ નોંધાવી પોતાનું મનપસંદ સમાચારપત્ર મેળવી શકાય છે. શ્રી કૃષ્ણ-ભરત અંગેની વધુ વિગતો ગૂગલ સર્ચમાં “krishna-bharat” નામથી સર્ચ કરવાથી પણ મળી શકે છે, આ ઉપરાંત “ગૂગલ રિચર્ચ સાયન્ટિસ્ટ એન્ડ એન્જિનિયર્સ” વિભાગમાં આપેલી આ વિગત પણ આપ જોઈ શકો છો : http://labs.google.com/people/krishna/ )

Monday, September 11, 2006

AJAX - Executive Summary

AJAX (Asynchronous Javascript and XML) is a software platform to build and deploy Rich Internet Applications.(RIA) Some RIA applications include Flash, Java Applets and ActiveX Controls.

Without these kinds of applications, the clients are thin and monolithic, as in a Legacy Architecture. RIA's put the smile back on the client machines, by maximizing their CPU utilization. You have had the scotch and the bourbon. Be ready to taste a cocktail now. Enter AJAX!

While AJAX represents a culmination of well known technologies like JavaScript, DOM, HTML and XML, it is not a language by itself. So what's all the hype about? Let me explain :

The biggest problem that we face in web applications is the time taken for reloading Web Pages. This depending on what you have put on the page and the speed of your connection, can range from average to slow. In the meanwhile, think of an application where the page is refreshed in an instant. Or if the page has to come from the server, it does so in the background. So no more hour glasses, so to say, you see. A big headache goes away.

Now, imagine having the ability to use the following browsers: IE, Firefox, Safari and Opera (7.0 and above) without worrying about the quirks of each one of them. Think of the page getting refreshed intelligently depending on the type of your internet connection (dial-up , broad band etc.) Move away from page based design to event controlled interface. Intelligent User interface, which minimizes the number of clicks, for a rich user experience. And all this, without having to procure a plug-in or an applet and based on Open Standards.

Sounds like a dream. Please welcome AJAX! Again.

A small detour : As per Greek Mythology, Ajax was the son of Telamon, the king of Salamis. He was a mighty hero of the Trojan War.

When Netscape introduced the word layer in 1998, Microsoft went ahead with its DOM (Document Object Model), which relied on the new method called document.all in JavaScript. As Netscape lost the war to Microsoft (in early 2000) , they were unable to push the layer idea further, to appeal to the DHTML band of workers. Although, some thing similar is available in a rudimentary form - called 'DIV' tags.

An Ajax application does away with the start and stop repetitive interaction of a client and a server. Now instead of loading a webpage, at a session start, the browser loads an Ajax engine made of Javascript, safely tucked away in a hidden frame. Ajax applications manipulate DOM to control the UI and backend requests which were made as minimal as possible. Thus one could do anything like manipulate web forms or search queries or modify a record etc. In effect the user's interaction with the application happens asynchronously, independent of server communication. The core of AJAX lies in a Browser based object named XMLHttpRequest which allows the browser to invoke remote calls back to the server without the need to reload the current page. Some of the functionality allows features like Drag and Drop, In Place Editing and Customized user views.

Now AJAX is not all 'rosy' as it seems. There are worries that AJAX may interfere with the Browser Back Button. Javascript has to be included manually in the scripts, sometimes using ActiveX (For IE 6.0 and below). People who would use AJAX would have to take care of network latency, through code. If this is not done well, there can be delays.

There are quite some number of AJAX IDE's like BackBase, JackBe and some others. Some of the tools have a visual workflow. Google uses AJAX in GoogleSuggest and GoogleMaps. Others have also started to get a feel of this powerful paradigm.

By 2010, it is expected that 60% of all applications on the web would be RIA's. Ajax will definitely be one of them, if not the leader. The others like XUL and XAML (part of Avalon - Microsoft) are also contenders.

Sunday, September 10, 2006

Paul Graham - A must read !!

Yesterday, I came across Paul Graham’s essays & just kept on reading…just like how it is difficult to keep down a good book. Boy, I am impressed, he is just too intelligent.

Here are some of them:

What’s Web 2.0?

Ideas for Startups

How to make Wealth

Interview about Web 2.0

How to start a startup

His Bio here.

Hope you gain a better perspective all web related stuff.