Sun, Earth, Sky

Even after all this time

The Sun never says to the Earth,

“You Owe Me”

And look what happens with a love like that

It lights the whole sky.

Advertisements

BLOb

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.

AJAX

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.

And Still, I rise

This is a great poem by Maya Angelou

You may write me down in history
With your bitter, twisted lies,
You may trod me in the very dirt
But still, like dust, I’ll rise.

Does my sassiness upset you?
Why are you beset with gloom?
‘Cause I walk like I’ve got oil wells
Pumping in my living room.

Just like moons and like suns,
With the certainty of tides,
Just like hopes springing high,
Still I’ll rise.

Did you want to see me broken?
Bowed head and lowered eyes?
Shoulders falling down like teardrops.
Weakened by my soulful cries.

Does my haughtiness offend you?
Don’t you take it awful hard
‘Cause I laugh like I’ve got gold mines
Diggin’ in my own back yard.

You may shoot me with your words,
You may cut me with your eyes,
You may kill me with your hatefulness,
But still, like air, I’ll rise.

Does my sexiness upset you?
Does it come as a surprise
That I dance like I’ve got diamonds
At the meeting of my thighs?

Out of the huts of history’s shame
I rise
Up from a past that’s rooted in pain
I rise
I’m a black ocean, leaping and wide,
Welling and swelling I bear in the tide.
Leaving behind nights of terror and fear
I rise
Into a daybreak that’s wondrously clear
I rise
Bringing the gifts that my ancestors gave,
I am the dream and the hope of the slave.
I rise
I rise
I rise.

In spite of war

In spite of war, in spite of death,
In spite of all man’s sufferings,
Something within me laughs and sings
And I must praise with all my breath.
In spite of war, in spite of hate
Lilacs are blooming at my gate,
Tulips are tripping down the path
In spite of war, in spite of wrath.
“Courage!” the morning-glory saith;
“Rejoice!” the daisy murmurer,
And just to live is so divine
When pansies lift their eyes to mine.

The clouds are romping with the sea,
And flashing waves call back to me
That naught is real but what is fair,
That everywhere and everywhere
A glory live through despair.
Though guns may roar and cannon boom,
Roses are born and gardens bloom;
My spirit still may light its flame
At that same torch whence poppies came.
Where morning’s altar whitely burns
Lilies may lift their silver urns
In spite of war, in spite of shame.

And in my ear a whispering breath,
“Wake from the nightmare! Look and see
That life is naught but ecstasy
In spite of war, in spite of death!”

KnockOut It is

Knockout.js is a javascript library that helps you implement dynamic data hadling with more simplicity and maintainability. Since it’s  a pure javascript library it can work with any client-server technology.

Features:

  • Declarative data binding
  • Automatic UI refresh
  • Can be added on top of your existing web application without requiring major architectural changes
  • Very light weight library
  • Assists in dependency tracking between HTML element and the underlying data

How KO works?

Instead of manually tracking, each element of the HTML page that rely on the updated data , it will automatically update the DOM when any changes to the data model occurs.

Knockout is not a replacement of jQuery. KO provides a complementary, high-level way to link a data model to a UI. It doesn’t attempt to provide animation, generic event handling, or AJAX functionality. Knockout is focused only on designing scalable and data-driven UI.

MVVM Design Pattern

Knockout uses a Model-View-ViewModel (MVVM) design pattern in which the model is your stored data, and the view is the visual representation of that data and ViewModel acts as the intermediary between the model and the view.

Actually, the ViewModel is a JavaScript representation of the model data, along with associated functions for manipulating the data. Knockout creates a direct connection between the ViewModel and the view, which helps to detect changes to the underlying model and automatically update the right element of the UI.

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.