March 31, 2009

Google Ventures: Is it Google's April Fools Day Prank?

Today is 1st April, and Google launched Google Venture. It might be a possible Google Prank that Google plays every year on 1st April.

The reason being, doing such a thing close to 1st April with such an interesting topic, Google might be playing big with people.

I'm not sure though :-) and might be wrong. Let's wait and see, what happens.

Update: Some more possible google pranks this year are

  1. http://www.google.com/intl/en/landing/cadie/index.html
  2. http://www.google.com/intl/en/landing/chrome/cadie/

February 13, 2009

Killer Text Parsing using Javascript

This Codeocolate (Code + Chocolate = Codeocolate ), presents a killer text parsing javascript. Our killer javascript does the following 7 tasks while parsing the text:

  1. Grab the text to parse
  2. Converts everything to lowercase
  3. Remove numbers
  4. Remove special characters
  5. Sorts words alphabetically
  6. Removes duplicates
  7. Prints sorted word list with a single word on each line

Let's consider each of the 7 task one by one:

Grabbing the text to parse: 

var textToParse = new String(form.textToParse.value);

Dissection:

form.textToParse.value is the text contained in HTML textarea control, that needs to be parsed.

new String(form.textToParse.value) creates a string using form.textToParse.value and assigns it to a variable textToParse.


Converting everything to lowercase: 

textToParse = textToParse.toLowerCase();

Dissection:

textToParse.toLowerCase() returns a string with all lowercase characters.


Removing numbers and special characters: 

var regex = /[`~!@#$%^&*()_+={}|:";'<>,.?0-9]+/g;

textToParse = textToParse.replace(regex, "");

Dissection:

First, a regex representing all the special characters and numbers is defined. Then, all the special characters and numbers are removed from the string.


Splitting the string into of individual words

regex = /\s+/;

var arr = textToParse.split(regex);

Dissection:

First, a regex representing one or more space is defined. Then, using regex we split the string into an array of words and store inside arr.


Removing duplicates

for ( i = 0 ; i < arr.length-1 ; i++ )
{
    for ( j = i + 1 ; j < arr.length ; j++ )
    {
        if ( arr[i] == arr[j] )
        {
            arr[j] = '';
        }
    }
}

Converting array back to string

var killerOutput = new String();
killerOutput = arr.toString();


Putting each word on its own line

var regex = /[,]+/g;
killerOutput = killerOutput.replace(regex,"\n");


Dissection:

Using regex we insert a newline character ('\n') after each word.


Printing the Killer Output! 

form.killerOutput.value = killerOutput;

Dissection:

Setting the text of form.killerOutput HTML textarea to killerOutput string.


The source for the above Codeocolate can be downloaded from here.

Hope, you found this killer Codeocolate useful. Cheers.

The Amazing 1234567890 Moment

Time is among those things in the universe that never stops. On Friday, Feb 13 at exactly 3:31:30 PM Pacific Standard Time the Unix Time will equal 1234567890.

For Indians, this amazing moment will  come on an amazing day, The Valentines Day i.e. Feb 14, at 5:01:30 AM Indian Standard Time.

The moment will work like an additive in the love enriched environment of Valentines Day, with the Unix lovers and fans joining too in the celebration.

By the way, for folks who do not know what Unix Time is, it is the number of seconds elapsed since midnight Coordinated Universal Time (UTC) of January 1, 1970.

January 16, 2009

Introduction to Web-Caching

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.

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