What is a BLOb?

BLOb, Binary Large OBject : is a collection of binary data stored as a single entity in a database management system. Blobs are typically images, audio or other multimedia objects. Database support for blobs is not universal. Blobs were originally just big amorphous chunks of data invented by Jim Starkey at DEC(Digital Equipment Corporation)

The four BLOB types are

  • TINYBLOB : A BLOB column with a maximum length of 255 (28 – 1) bytes. Each TINYBLOB value is stored using a one-byte length prefix that indicates the number of bytes in the value
  • BLOB : A BLOB[(M)] column with a maximum length of 65,535 (216 – 1) bytes. Each BLOB value is stored using a two-byte length prefix that indicates the number of bytes in the value.
    An optional length M can be given for this type. I
  • MEDIUMBLOB : A BLOB column with a maximum length of 16,777,215 (224 – 1) bytes. Each MEDIUMBLOB value is stored using a three-byte length prefix that indicates the number of bytes in the value.
  • LONGBLOB : A BLOB column with a maximum length of 4,294,967,295 bytes or 4GB (232 – 1). Each LONGBLOB value is stored using a four-byte length prefix that indicates the number of bytes in the value.


What is AJAX?
AJAX stands for Asynchronous JavaScript and XML. It uses the XMLHttpRequest, which is a Javascript object used to communicate with server-side scripts. It can send as well as receive information in a variety of formats, including JSON, XML, HTML, and even text files.

AJAX’s most unique characteristic, is its “asynchronous” nature, which means it can do all of this without having to refresh the page. This lets you update portions of a page based upon user events.

With AJAX you can

  • Update a web page without reloading the page
  • Request data from a server – after the page has loaded
  • Receive data from a server – after the page has loaded
  • Send data to a server – in the background

Steps of AJAX Operation

  1. A client event occurs.
  2. An XMLHttpRequest object is created.
  3. The XMLHttpRequest object is configured.
  4. The XMLHttpRequest object makes an asynchronous request to the Webserver.
  5. The Webserver returns the result containing XML document.
  6. The XMLHttpRequest object calls the callback() function and processes the result.
  7. The HTML DOM is updated.

XMLHttpRequest Methods:

  • abort(): Cancels the current request.
  • open(method, URL, async, userName, password): Specifies the method, URL, and other optional attributes of a request.The method parameter can have a value of HTTP methods “GET”, “POST”, “HEAD”, “PUT” and “DELETE”.
  • send(content): Sends the request.
  • getAllResponseHeaders(): Returns the complete set of HTTP headers as a string.
  • getResponseHeader(headerName): Returns the value of the specified HTTP header.
  • setRequestHeader(label, value): Adds a label/value pair to the HTTP header to be sent.

XMLHttpRequest Properties:

  • onreadystatechange: An event handler for an event that fires at every state change.
  • readyState: Holds the status of the XMLHttpRequest. Changes from 0 to 4:
    0: request not initialized
    1: server connection established
    2: request received
    3: processing request
    4: request finished and response is ready
  • responseText: Returns the response as a string.
  • status: Returns the status as a number. eg. 200: “OK”; 404: Page not found

List of some famous web applications that make use of AJAX.
Google Maps: A user can drag an entire map by using the mouse, rather than clicking on a button.
Google Suggest: As you type, Google will offer suggestions. Use the arrow keys to navigate the results.
Gmail: Gmail is a webmail, built on the idea that email can be more intuitive, efficient and useful.

Under the core of Underscore.js

So what is this Underscore?

Underscore is a JavaScript library that improves its robustness.

Collections: A collection can either be an array or an object. Underscore provides a lot of methods like

select:- selects  a set from array based on certain property

pluck:- plucks or extracts a specific property from each key-value pair of array

map:- map creates an array from a collection where each element can be mutated or otherwise changed through a function

all:- all is useful if you need to check every value in a collection passes a certain criteria.

Arrays : Methods like

uniq:-This method basically parses an array and removes all duplicate elements providing you with only unique elements

range:- range lets you create a ‘range’ or list of numbers. The method’s parameters  are, in order, starting value, ending value and step value. Using a negative step value leads to a decrementing range.

intersection:- This method compares two arrays to each others and returns the list of   elements that are found in all of the passed arrays i.e. an intersection in set theory.

Objects: Underscore provides various methods to clone, extend and other manipulate objects.

keys and values:- used when you only need keys or only values.

defaults:-This method is quite useful when you need to create objects with sensible defaults when one might not be used when creating it

Functions: Underscore has functions that work on functions. Most of the functions tend to be fairly complicated to explain.