Pages

Friday, October 30, 2009

saas, iaas, paas

The three different layers of cloud stack

SAAS - Software As A Service

IAAS - Infrastructure As A Service

PAAS - Platform As A Service

Some interesting reads

http://oakleafblog.blogspot.com/2009/10/windows-azure-and-cloud-computing-posts.html

http://www.youtube.com/watch?v=Ahx4ejy-GjM

http://www.informationweek.com/news/services/saas/showArticle.jhtml?articleID=220300686

Sunday, October 18, 2009

Clash of the clouds

http://www.economist.com/displaystory.cfm?story_id=14637206&fsrc=rss

The article explains to an extent the overall perspective on preparations for the cloud efforts, but does not detail out the aspects of approaches in money making or long run solutions that each party is planning. However this is a good start for underlining what each one has in mind on one facet of cloud computing.

It is surprising to me that they mention Nokia and Facebook here but not Amazon.com? Infact Amazon.com built the first successfull cloud computing model, which they wish to call as Elastic computing.

Saturday, October 03, 2009

The green factor!

Green has become a fancy and a trendy term, the humankind is not kind enough to accept; that being green is an essential thing. If it wasn't the case, then it wouldn't be hard for a car manufacturer to push his green car, a computer system manufacturer need not push his green products. It is quite evident that we as a human race for the most part have not understood our responsibilities completely. Well said in the movie Spiderman "With great powers comes great responsibilities". So what have we missed here? We missed to realize that, being green and embracing green is not just about being trendy but it is about being supportive to mother nature.

To me striving towards green is something everyone needs to think about and embrace any such efforts. I feel it silly when companies fight for the green ranking - greenrankings.
These companies have to advertise people encouraging the move towards green products. When I say this, I understand that any producer should advertise the greenness of a product for people to choose the right one. But it is almost that the producers are taking these efforts to pursue their customers to move towards green, that's bothering; because we are in a situation of explaining what can green do to us and we do not get it unless otherwise told. I am also forced to think that we failed to think about this for a very long time and now we realize the impacts after reaching the tipping point. This is also not just true from the consumer standpoint, but from the producers as well. It makes sense, if the green rankings are helping the companies now; to think about making greener products.

On the other front, being green is not just about making and buying green products, but it is also about reducing the day today waste we generate. I could not stop to quote an incident that happened today, just while I was writing this blog.

I raised a maintenance request to change the toilet seat cover, to my apartment office, as the seat cover was broken. The maintenance guy brought a brand new seat cover and replaced it. I was wondering why didn't he just replace the bolt, which was causing the issue. I could not stop but ask him, wouldn't fixing the bolt put the seat in it's position and why do you have to change the seat cover completely? For which he answered it is easy for him to find a brand new seat cover instead of the appropriate bolt and also the seat cover costs less, like $7 and it is not a big deal. I was telling him that, so the old seat cover would just end up being in trash and not re-usable anymore. The maintenance guy also made a point, that his employer values his time more than worrying about the waste that his job generates. He was right, we do not value other things as much as we value time. We underestimate the impact, we are causing to the environment by blaming the loss of time. We failed to value that we must be responsible in our actions for the things; that does matter not just to us but to the environment as well. We must realize that there are other critical things that are as much valuable as time, if not for more.

So it is time for us to think of our responsibilities. For those who are already embracing green and feeling proud and trendy about it, I have one thing to say, folks I appreciate that you are doing good, but there is nothing here in feeling proud or trendy, it is simply your responsibility. If you want to feel proud then do spread the green awareness and our responsibilities for nature.

Let's make the blue planet more greener!

Friday, September 04, 2009

Correct usage of the .NET dispose pattern.

This wiki is to help with the correct usage of the dispose pattern.

Useful excerpt below; from http://blogs.msdn.com/bclteam/archive/2007/10/30/dispose-pattern-and-object-lifetime-brian-grunkemeyer.aspx“A disposable type needs to implement IDisposable & provide a public Dispose(void) method that ends the object’s lifetime. If the type is not sealed, it should provide a protected Dispose(bool disposing) method where the actual cleanup logic lives. Dispose(void) then calls Dispose(true) followed by GC.SuppressFinalize(this). If your object needs a finalizer, then the finalizer calls Dispose(false). The cleanup logic in Dispose(bool) needs to be written to run correctly when called explicitly from Dispose(void), as well as from a finalizer thread. Dispose(void) and Dispose(bool) should be safely runnable multiple times, with no ill effects.“

Example:
// A base class that implements IDisposable.
// By implementing IDisposable, you are announcing that
// instances of this type allocate scarce resources.
public class MyClass : IDisposable
{
private ManagedResource managedResource = new ManagedResource();
private bool disposed = false;

public void Dispose()
{
this.Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}

protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
// Dispose managed resources.
this.managedResource.Dispose();
}
// Call the appropriate methods to clean up
// unmanaged resources here.
// If disposing is false,
// only the following code is executed.


this.disposed = true;
}
}

// NOTE: Leave out the finalizer altogether if this class doesn't
// own unmanaged resources itself, but leave the other methods
// exactly as they are.
~MyClass()
{
// Finalizer calls Dispose(false)
Dispose(false);
}

}

Over-riding the dispose method in a derived class:

private System.ComponentModel.IContainer components = null;

///
/// Clean up any resources being used.
///

/// true if managed resources should be disposed;
otherwise, false.
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

Is it mandatory to have GC.SuppressFinalize(this) in the Dispose(void) block?

It is not mandatory to have GC.SuppressFinalize(this); unless you have a finalizer method. However it is recommended to have GC.SuppressFinalize(this); for the cases even without finalizer simply for the consistency sake. Having a “GC.SuppressFinalize(this);” in the latter case would be just like calling an empty method.

References:
http://msdn.microsoft.com/en-us/library/ms244737(VS.80).aspx
http://www.bluebytesoftware.com/blog/PermaLink.aspx?guid=88e62cdf-5919-4ac7-bc33-20c06ae539ae

Tuesday, July 28, 2009

Some useful tips on Design patterns

Courtesy: Scott Bain.

Often it is thought that Design patterns are a set of tools that helps to solve a problem. If one pattern does not provide the solution then it would be another, and so on until we keep finding the right pattern. But that is a wrong interpretation for how the design pattern needs to be identified for use. The right way of identification would be to carefully observe the problem in hand, which would reveal the pattern in itself. And this would be the best way to identify the pattern to use for solving the problem.

But how exactly are Design patterns helpful in the design of software?
Design patterns are a high level thought process for solving the problem, abstracting the implementation details which make the problem at hand more approachable thereby depriving the right design.

So what does Design pattern exactly help with?
The Design patterns are helpful to bring the risks salient enough for one to decide on how to approach a solution.

Friday, July 17, 2009

Monday, July 06, 2009

Writing a business plan...



Reference:
sba

Integration never stops!

Integration of multiple features in to one, making many devices a "all in one" is on the rise, as we see emerging tech trends are trying to fill the gap in human need. On this note, the link below got my attention...

apple to add micro projectors to iphone and ipod

Tuesday, June 30, 2009

Formatted output of DateTime with millisecond resolution

If you want to get the DateTime output in your code with millisecond resolution, like "2009-06-30T18:49:34.797Z", you can use the below C# code.

///
/// The date time format specifier.
///

private const string DateTimeFormatSpecifier = "yyyy-MM-ddTHH\\:mm\\:ss.fffZ";

///
/// Method to obtain the current date time with millisecond resolution.
///

protected void GetDateTimeNow()
{
DateTime value = DateTime.UtcNow;

string dateTimeValueInMs = value.ToString(
DateTimeFormatSpecifier,
DateTimeFormatInfo.InvariantInfo);

Console.WriteLine(String.Format("The current date time in milliseconds is : {0}", dateTimeValueInMs));
}

Wednesday, May 13, 2009

What it takes to be an innovator?

One can say without doubt that; innovation is a crucial part of the DNA for the tech companies. Innovation is nothing but an idea around existing or new principles, techniques, often and a solution to a problem. This post is about “what it takes to be an innovator?” This is just a brief outline of what I think helps grooming oneself to become an innovator.

Most of us in Information Technology understand that innovative companies take the edge over the others and secure a prominent place. This directly applies to people as well, after all a company is made up of people. So if you are to secure your spot and achieve, you should seriously think of contributing towards innovation. Then you must prepare yourself to become an innovator, so you might be interested in this post, “what it takes to be an innovator?”

Well, to start with one needs to develop the inquisitiveness in them, trying to embrace new things and digest new information. Often people are reluctant towards change, this also means NOT thinking in new ways or alternative approaches. The previous statement may be irrelevant to some, but believe me they are important. The core mindset of a person matters the most when it comes to innovation. Challenging current principles, current trends & techniques; for good, will spur the innovativeness in you.

Work on what you think new is indeed new. You have to work on the following basics, first and foremost the problem definition, your new approach, any prior solutions, any competitor approaches, any proto-types, any proof of concept. The latter two, pro-types and proof of concept are NOT really required for a patent or a defensive publication. However when you want to extend your idea in to a product and capitalize on it, then it is certainly required. Let’s not talk about the business angle here and stick to the topic itself.

So does it all happen if you start embracing change and being inquisitive? Unfortunately it is not all that is enough. So what more one needs to do?
It is not possible for anyone to know everything in any given area, so if you are interested or wanting to know more on a particular area, you need to develop the connections with people who are considered to be the subject matter experts. Your subject matter expert could be your boss, peer, professor or anyone you find from internet. They should be able to give you insights on the things that you are not familiar with or give you more understanding, thereby increasing your knowledge in the area.

Be crazy, be weird, both in good sense, when I say this I can get your reactions!

Get inspired, read biographies if it helps, fortunately this world has left us with so many people who could be good examples, right from the father of modern science Galileo Galilei to anyone living in the present day.

Do not have an attitude, that a solution to a given problem will always be complex, since the problem is complex. It is not required that every new idea need to be a technology breakthrough in every sense, hence do not discard the ideas even if they sound silly. Take a moment to put it down somewhere, revisit them when you think more on that topic, this is a repetitive exercise. Investigate more on the idea, talk to people see how do they feel about your ideas, notice for their awe’s and contempt’s in their expressions. Do not feel embraced if someone finds your idea silly or simple.

Look for similar ideas, in web Google patent search is a good place, patent storm, and there are many others. But watch out! do not over search, so as to get side tracked or influenced by other ideas. You got to be really careful on your web searches, as these might indirectly influence your ideas without your knowledge. You cannot help it, the brain works that way, the more you try to get away and undo the learning you happened to do while you did your searches, the more you get close to them. So again I would say watch out. Worry about the duplicity/novelty to an extent, but do not over kill yourself with all possible searches. Leave some job to the patent attorney, who is supposed to do that as part of his/her job.

All right enough of the thought process, now try to learn what is an intellectual property (IP)? What is a patent? What is a defensive publication? If you are an employee of a company who does all these IP things, then it is easy for you. Try to get hold of a patent holder or a patent attorney and ask them for the process to be adapted. Tell them that you are interested to know on how to pen down your ideas. Often companies will have an intranet site to publish the ideas, have guidelines and examples for you to start. Also the companies focused on innovation, will have training sessions to help their employees innovate. If you do not fall in the above category, then there is hope outside too. There are third party legal firms that do the patent/publishing for you; of course it comes with a cost.

Last but not least, be persistent, this is not something new to hear or say. To be good at something you really got to be good at what you are doing, agreed? By innovating or putting your new idea, you are essentially thinking something that was never thought before or was never conceived before. And this does not come with a day’s work; you need to be persistent in pursuing and working on your ideas. Wear the hat of an innovator and think that you are set to do new things, this attitude definitely helps.

Finally to develop the habit of innovation, (habit - I would like to call it that way) you better keep yourselves entangled to some community, or forums or groups that will keep your spirit of innovation alive. This will instigate in you to read new things and help you develop deeper understanding on the area of your interest.

Ok having all said, these are just my recipe to be an innovator, nothing guarantees your success except for your own.

Now go write your own destiny and change other’s, by your innovation!

Tuesday, March 24, 2009

Virtualization stripped.

Managed to squeeze in some time, despite being hard hit with issues at work. I always feel writing blogs energises me, so hope to catch up with work in full swing after this. With that let me walk you through my new post.

Virtualization stripped
Virtualization picked up more buzz and momentum, when IT companies started emphasizing on the new cloud computing paradigm. With this blog post I will get to the breadth and depth of the virtualization platform, products and terminologies.



To start with I put together the different buckets of virtualization categorizing the major buckets followed by the next level; focusing on the different technologies trying to solve the problem.

Virtualization in my terms: A platform enabling users to do their tasks, without fully banking on the hardware and software resources of the user. Also a platform which enables on demand computing; by sharing resources and thereby improving the hardware, and software utilization. Certainly a move towards greener ecosystem for IT, by reducing the wastage of computing resources including power.

The above definition almost seems close to be called as cloud computing, hence the obvious question. How does virtualization differ from cloud computing? If virtualization is the underlying platform for doing things, Cloud computing is a model for doing business leveraging virtualization. Virtualization is a key technology towards achieving cloud computing but does not end with it. Cloud computing deals with other areas, which will not be of interest to this post.

Wednesday, March 18, 2009

Microsoft-Expression-Web

Came across this new tool Expression Web SuperPreview for Windows Internet Explorer, that allows developers to get a preview of what their websites looks like in different versions of IE, majorly IE6, IE7 and IE8.

There are virtualization apps there to help you do that, but the pain is not being able to get everything in a single box.

A good example is Citrix's sanboxing environment for browsers!
xenocode.com/browsers

I almost thought, the virtualization sandbox is a good tool for testing all such cases and we will not need any more tools

Monday, March 16, 2009

Wednesday, March 11, 2009

Gazing other blogs...

These days I end up spending considerable amount of time reading random blogs, before I forget that it's time for bed. I almost certainly fall in love with some of the blog posts for the flavor they bring with it, the things I have never experienced before. And not knowing who the author, adds more thrill and fun. I enjoy the mood, passion, culture, geography, interests, photos, theme, music, video, emotions, spirit and what not!

To me, it is a perfect way to spend some time. I usually start from my blog, and go for the link in the header and keep going on and on. If i feel some topic needs more attention, I start searching for similar posts and dive in for more...