Friday, June 24, 2011

Unix Load Average

When you issue one of these commands "w, top, or uptime", you would find a parameter called Load Average with 3 fields; I thought it has sth related to a CPU utilization but after got asked about it in a Google interview, it seems to have more than that.

Here is uptime output:
14:34:03 up 10:43, 4 users, load average: 0.06, 1.11, 0.09

This means that the CPU is 6% underloaded in the last minute and overloaded by 11% in the last 5 minutes and is underloaded with 9% in the last 15 minutes.

For multiple CPUs architecture, it means that this number of processes can be scheduled on these CPUs.

This is useful for capacity planning and performance monitoring of CPU and the running processes.

It has been considered that 3 is a good threshold value (From O'Reilly UNIX Power Tools) .

Friday, June 3, 2011

DataTypes in Programming Languages

-statically typed language:
A language in which types are fixed at compile time. Most statically typed languages enforce this by requiring you to declare all variables with their datatypes before using them. Java and C are statically typed languages.

-dynamically typed language:
A language in which types are discovered at execution time; the opposite of statically typed. VBScript and Python are dynamically typed, because they figure out what type a variable is when you first assign it a value.

-strongly typed language:
A language in which types are always enforced. Java and Python are strongly typed. If you have an integer, you can't treat it like a string without explicitly converting it.

-weakly typed language:
A language in which types may be ignored; the opposite of strongly typed. VBScript is weakly typed. In VBScript, you can concatenate the string '12' and the integer 3 to get the string '123', then treat that as the integer 123, all without any explicit conversion.

So Python is both dynamically typed (because it doesn't use explicit datatype declarations) and strongly typed (because once a variable has a datatype, it actually matters).

* from DiveintoPython.org