Windows coming to Amazon EC2 soon October 1, 2008
Posted by James Webster in : web, development, dotnet , 2 commentsAmazon have announced that Windows server (32 & 64 bit) will be available on their EC2 cloud later this year. Further details will be available at the PDC later this month.
This is a great announcement. .Net developers have not really been able to come to the cloud computing party since most (if not all?) publicly available clouds have run on Linux. Sure, there is Mono but not many professional ‘Mort’ .Net developers go anywhere that!
I am looking forward to seeing what the pricing structure for this will be given that Microsoft will be expecting some license revenue. Does the availability of Windows on the EC2 cloud reflect new licensing options from Microsoft for cloud computing infrastructure providers?
There is also the security angle to consider… Windows boxes have a reputation for being malware magnets, if EC2 makes it easy and cheap for anyone to become the administrator of their own Windows server out on the Internet are we going to see these EC2/Windows instances get hacked and turned into spambots/DDOS nets? Will there be other restrictions on what we will be able to install on these machines… Microsoft Office, Visual Studio; notwithstanding that usability of these over RDP might be less than stellar, will it be possible?
Many questions, guess we will have to wait until the PDC for answers! Oh, and how about multicast support on EC2 eh? Seems obvious given the number of grid vendors, GridGain & Gigaspaces to name two, who talk about running grids on EC2 but then require slightly trickier configuration of their products than would be necessary if multicast was supported.
Tapping with C#3.0 February 6, 2008
Posted by James Webster in : development, dotnet , add a commentInfoQ have an article up about Ruby 1.9’s new ‘tap’ method. A little similar in concept to Unix’s ‘tee’ command it allows Rubyists to inject an arbitrary block of code into a method call chain in order to inspect or mutate the variable. Its useful in debugging apparently.
Hmmm… should be easy enough to replicate that in C#3.0. First we need an extension method on any type…
public static T Tap<T>(this T objectToTap, Action<T> tapAction) {
tapAction(objectToTap);
return objectToTap;
}
In usage…
StringBuilder buf = new StringBuilder("A good candidate because it's methods chain.");
buf.Append("One. ").Append("Two. ")
.Tap((x) => Console.WriteLine("Tapping! " + x.ToString()))
.Append("Three. ").Append("Four. ");
Console.WriteLine("Not tapping! " + buf.ToString());
Which results in console output…
Tapping! A good candidate because it's methods chain. One. Two. Not tapping! A good candidate because it's methods chain. One. Two. Three. Four.
What do you think? Potentially useful or a gross violation of the Law of Demeter?