Sunday, September 28, 2008

Today's mix: Geography, algorithms,....

Recurrence Equation

What is a Recurrence Equation?
it is a mathematical equation where the value of the function at a given n is given in terms of the value of the function in a smaller value of n

recurrence equation is used in algorthmis analysis to represent recursive functions,like a recursive function, a recurrence equation needs an intial condtion where the call stack will stop evenually at.

Example Fabonanci function:


input: non-negative number n
output: n!
Algorthim:
int fact (int n) {
if (n == 0) return 1;
else return n * fact (n - 1);
}
suppose that t(n) is the number of multiplication done for a given value of n:
t(n) = t(n-1) + 1 where n >= 1
t(0) = 0
The above equation is a Recurrence equation it conforms the tow conditions stated in the definition mentioned earlier:
  1. it have an initial condition --> t(0) = 0
  2. the value of the equation at n is in-terms of the value of the same equation with a smaller n (n-1 in out example)





Wednesday, September 24, 2008

Stuff l learned today

Tail Recursion optimization:

it is the process of converting a recursive function call to an iterative procedure providing that the recursive call is the last call in the function with no other operations after it.

Tuesday, September 23, 2008

Napoleon and Divide-and-Conquer

Today i learned how the French emperor Napoleon is related to the computer programming algorithm technique Divide-and-Conquer.

It was December 2, 1805 on the battle of Austerlitz when Napoleon was faced with an Astro-Russein army which out-numbered his with 15,000 solider, so Napoleon drove right into the middle of the enemy's army to splite it into a tow smaller armies which each of them is weaker than his army.
The Astro-Russein two splitted armies each suffered heavy losses and were compelled to retreat.

From the previous story the technique of Divide-and-Conquer were developed that for some instance of a problem, if the instance can be divided into smaller instance of the same problem, then the solution for the original instance can be obtained from the solution of the smaller one's

Monday, September 22, 2008

Today it is AJax

What is Comet(reverse Ajax)?

it is the illusion that data being pushed from the server.
for example:

a web aggregator that fetch feeds from different sources and view it to the user, the data may viewed as it is being pushed from the server using Comet

How it works ?

a separate process is responsible for fetching data from the server perodically, then it pushes these data to the aggregator

Sunday, September 21, 2008

Today's new stuff

Today I am going to learn something totally new.It is about the ocean and why the ocean colour is blue.


Why the ocean colour is blue?


it is the transmission of energy that makes the ocean colour blue, how?
when the sunlight which contains colours hits the oceans surface, the water molecules scatter the light rays.This scattering causes the water to appear blue because the blue light of the sun rays scatters more than any light of other colours.
source "HowStuffworks.com"

Saturday, September 20, 2008

Today's stuff

Nybble:
           nybble is a term in computing called for a half of byte (4 bits)

Thursday, September 18, 2008

Stuff l learned today

Glib-GObject Signal:
Signals - A means for customization of object behavior and a general purpose notification mechanism "GObject Signal API"

The older man alive:
Tomoji Tanabe is the older alive man, he is celebrating his 113th birthday today :)

Tuesday, September 16, 2008

Stuff i learned today

Python List.extend :
  • [list_object].extend(iterable) extends the list object by appending an iterable object elemenets to the list.
Example:
l = list()
l.append('123')
iter = '123'
l.extend(iter)
print l
# this will print: ['123', '1', '2', '3']

C++ Program life-cycle:
             the figure below explaining the typical compiled language program life-cycle, i learened it today while revisiting c++ using a nice book called Teach yourself C++ in one houre a day.
             




Monday, September 15, 2008

What i learned today?

Mashup:
  • Mashup is a web application that combines data from more than one source into a single integrated tool.
it is not just to embed some data into your application, instead it is about gathering the data from different sources and process these data to add a value to it and produce your own new information from these data sources.
For example, embedding a youtub video in your application does not make it mashup application, where gathering weather information from one source and maps for the same place from other source then process the information and maps to produce a new weather map is a mashup application.

want to know more about mashup here

Learning something new

i once heard that it would be great if a person learns somthing new every day.
well i am thinking about that since i heard it, and tried to do so but as easy as it may seems, it is not. So i thought i should blog it, that way i feel like i should learn something new to blog it and maybe someone will know something new by reading it.
Enough talking lets learn something new...