Thursday, October 30, 2008
Cloud Computing is not hype.
Cloud Computing is not hype. Yes, I can say this, although we have been using internet cloud for so many years, our emails, our chats, our music, our files etc, almost everything that somehow is a part of daily life computing of man-kind, is shared and accessed through internet. Thus, is this the cloud computing infrastructure?
The answer lies beyond the traditional definition. Researchers are defining cloud computing as almost as same as the Grid or Cluster computing. More or less, the common factor among all is that, Grid, Cluster and Cloud Computing are all a form of computing that are composed of several distributed computing machines that are integrated to perform multiple tasks. Thus what makes Cloud Computing even more special?
According to a 2008 paper published by IEEE Internet Computing "Cloud Computing is a paradigm in which information is permanently stored in servers on the Internet and cached temporarily on clients that include desktops, entertainment centers, table computers, notebooks, wall computers, handhelds, sensors, monitors, etc."
The cloud is undoubtedly a symbol of internet, based on the several assumptions about how it is portrayed in the computer network diagram. It covers the concept of the complex internet infrastructure in which IT solution providing companies have the capabilities to provide their solutions as services at extremely low cost, highly scalable, robust, reliable and secure manner. Customers or end users don’t need to bother now to hire the whole of an IT department for the maintenance and support along with the purchase of any enterprise solution.
Services like GoogleAppEngine or Moss or Windows Azure now makes it possible to build applications on the cloud, and provide end users a highly scalable and on demand services for their home and enterprise. Similarly, office services like Google Docs and Microsoft Office Live are other online office suites as part of cloud infrastructure.
No matter you are an Enterprise user or a home user, no matter you are using desktop PC, MAC, notebook, PDA or other hand held device, or even watches. You are connected to billions of other users to share knowledge and information, to gain access of vast amount of data and information. This is what actually Cloud Computing is, the Live, Connected, and On Demand infrastructure of computing devices, information, and the users.
Dear Readers, we are heading towards the new generation of computing, the generation next. Where sharing of knowledge and information, across any kind of computing device among users everywhere is made possible.
Possibilities are endless – Have your say!
Sunday, February 24, 2008
Is it good to listen songs while code???
I guess it sounds a little bit shaky, but still, most of us do that: "listen songs while code"!!!
Actually, it’s not a good habit to get distracted with some kind of lyrics based music or any noise while you code. But on the contrary, when you are lost in some multi-nested for loops or some calling of an object that is far beyond your approach in that scope, you probably would like to completely disconnect with outside world. Rather, I do have a different approach to tackle this sort of situation or race with the error called "object reference not set to an instance of an object!".
I listen music.
Through out our school lives, we’ve been cautioned to keep TV, radio and music out of scope while doing homework, rather, this study says something different.
lets face, most of us – the programmers, spend most of our time sitting in front of computer, hitting our 10 year old keyboard at a speed of aprox 45 to 50 words per minute, isn't that a noise that distract you? clicks of mouse and shouting pings from peers that come online.. yes they all do distract. It increasingly come out to boredom.
I do became increasingly bored too, sometimes while coding my precious programs, so I began keeping music on. Nothing extraordinary happened... until I attempted coding in silence again. Without noise, I was restless and far more easily distracted. I didn’t bother kicking the habit, realizing that I can get into the zone more efficiently with noise "on" than "without".
Sometimes I get so absorbed writing code that everything besides my awareness of the screen, and the sensation of my fingers hitting the keys, it seems disappear better to say completely lost :s or specifically, the rate and rhythm at which I hit the keyboard is in sync with the current backbeat. Then I hit compile and my program works flawlessly, and I say: "WHAT THE HELL!!!"
Thus, the simple solution, release your mind with soft music.
The music I prefer to listen while coding does depend upon a number of factors. I prefer classical, soft or a little bit slow music like rihanna, Junaid Jamshed old vital sign songs, while debugging, but interestingly fast and rap music like bon jovi, ricky martin and to some extent Pakistani Strings,,,, while I am into a fast code or perhaps when some one plays Russian roulette and place it on my head :P I might increase of decrease volume, as per the ambient of noise and my current mood, but more over, as per my colleagues hit my back neck and tell me to keep silent. hahhaha
As far as headphones are concerned, they get distracting, and become uncomfortable and sweaty after being worn for hours. I’ve given up, and now I got speakers. I prefer never go back to headphones. I suggest putting down at least a few hundreds for a good quality set of speakers that will last. Speakers are better option as I see when I like to have rap, lounge or elevator sort of music running in the background like the one by linkin park, Eminem or limp bizkit, even when I’m not on desk. I wasn’t able to do this with headphones unless I turned up the volume to max, in which case the music sounded so bad there was no use keeping it on.
So now, let’s share, Do most of you listen to music or talk radio while you work? If so, what kind of music fits in with your coding? I wonder if you can guess a person's programming style and thinking approach, based on what they listen to.
I know its a meaningless and silly and some would say as "Stupid" question …. but not every post has to be a technology geek post ;) wht say ???
Wednesday, February 6, 2008
Spec# Programming System
The Spec# programming system is a new attempt at a more cost effective way to develop and maintain high-quality software. Spec# is pronounced "Spec sharp" and can be written (and searched for) as the "specsharp" or "Spec# programming system". The Spec# system consists of:
The Spec# programming language:
Spec# is an extension of the object-oriented language C#. It extends the type system to include non-null types and checked exceptions. It provides method contracts in the form of pre- and postconditions as well as object invariants.
The Spec# compiler. Integrated into the Microsoft Visual Studio development environment for the .NET platform, the compiler statically enforces non-null types, emits run-time checks for method contracts and invariants, and records the contracts as metadata for consumption by downstream tools.
The Spec# static program verifier. This component (codenamed Boogie) generates logical verification conditions from a Spec# program. Internally, it uses an automatic theorem prover that analyzes the verification conditions to prove the correctness of the program or find errors in it.
A unique feature of the Spec# programming system is its guarantee of maintaining invariants in object-oriented programs in the presence of callbacks, threads, and inter-object relationships.
The Spec# programming system is being developed as a research project at Microsoft Research in Redmond, primarily by the Programming Languages and Methods group.
Thursday, December 6, 2007
Microsoft Volta
Developers can target either web browsers or the CLR as clients and Volta handles the complexities of tier-splitting for you. Volta comprises tools such as end-to-end profiling to make architectural refactoring and optimization simple and quick. In effect, Volta offers a best-effort experience in multiple environments without any changes to the application.
Friday, September 21, 2007
C# 3.0 - curtain raiser on var keyword
Hello readers, I'm going to start a series of blog posts here to get acquaintance with C# 3.0
Ok then, where to start?
Lets start with the “var” keyword. Perhaps that’s one of the most interesting thing in C# 3.0, So here we go,
In C# 2.0, you can declare an integer (or anything for that matter of fact) as -
int i;
You could also write something like -
int i = 1;
Generally speaking -
[ datatype ] [ variablename ] = [ initializer ] ;
Okay good. The important thing to realize is that "i" is an integer. In C# 3.0, the below is a valid statement -
var i = 1;
But what is "var"? "var" is an implicitly typed local variables (or var for short) that instructs the compiler to infer the type of a local variable. For example:
var i = 1;
So, var i = 1; will result in creating a variable called "i", whose data type is "integer". It’s important to understand that this is still strongly typed. In a dynamic language, integer’s type could change later. To illustrate this, the following code does not compile:
var i = 1;
i = “hello atif”;
The C# compiler will report an error on the second line, stating that it can’t implicitly convert a string to an int.
Rather, this can be used as;
var i = “1”;
i = “hello atif”;
Now this time, var i, has become an string. This implies that var can be anything, from int to string or float or double, or even it can be some kind of object of classes or even table of datasets.
But then what is the difference between "var", "object" and "variant" (from COM or VB6 days)
Variants had issues regarding to occupy way too much memory. Objects have boxing unboxing issues. Both Variants and Objects are not strongly typed.
Note that "i" is strongly typed to an integer or string - it is not an object or a VB6 variant, nor does it carry the overhead of an object or a variant, To ensure the strongly typed nature of the variable that is declared with the var keyword, C# 3.0 requires that you put the assignment (initializer) on the same line as the declaration (declarator). Also, the initializer has to be an expression, not an object or collection initializer, and it cannot be null. If multiple declarators exist on the same variable, they must all evaluate to the same type at compile time.
You could also create "arrays" of "var" as follows –
var intArr = new[] {3,1,4,1,5} ;
Perhaps that has given u readers a clear word of what “var” is.
