Breaking News: Belgium and Korea to Swap Countries

In what many describe as the most important event since President Bush patted the Queen's bottom at Buckingham Palace, the governments of Belgium, North Korea, and South Korea have reached a tentative agreement to swap countries in 2020. Said Geert Vandermeert, spokesman for the Belgian delegation, "We're very proud of this historic moment of Eurasian harmony". Barely able to contain his excitement, he continued, "Think of all those defenses, mine fields, barbed wire, canons, and guard posts between the two Koreas: perfect for keeping those bloody Walloons out of our half of the country".

For his part South Korean leader Kim Dae Woo was equally bullish, "Moving South Korea to Belgium will really open up markets for our products in Europe. Instead of shipping them half way across the world, our goods will be available to all, we could make Belgium one big electronics store!" North Korean party member Joon Sung Wok was no less ebullient "We understand  Belgium has nuclear reactors already producing enough uranium for our mil-, eh, civilian programs. Our dear leader is very excited."

Jean-Marie Lorgnion, a Walloon, was more cautious. "Well, I've always wanted to travel" he admitted, "and I hear it's warmer there than in rainy Belgium. Plus I quite like the food."  Fleming Rob DeVertegenaar smiled confidently as he asserted "I've checked it out on Google Earth, that No Man's Land will be perfect for our needs. I can't wait!"

Despite the enthusiasm, significant challenges remain. Opinions are divided on how to handle languages, shop, and street signs. Unsurprisingly, the Belgians are adamant that they need to take all three to their new home. "What's the point of moving half way around the world only to end up speaking the same language? If I refuse to speak French I'm certainly not learning Korean!", exclaimed DeVertegenaar as he carefully packed his street sign away for shipping.

Koreans for their part want to integrate in Europe. "What's the point of going over there and bringing our street signs with us?" Kim Dae Woo countered "No one will be able to understand Korean". "Exactly right" agreed the North's Sung Wok, "Plus we have so few streets shops in the fatherland, not to mentions signs. We could really use the Belgians'".

Another concern is logistics. Swapping four populations is easier said than done. Light on details, the delegations spoke of commandeering ferry boats, planes, and a fleet of custom-built RVs for the exodus. "I hope they avoid rush hour," said Lorgnion, "or there'll be one hell of a traffic jam".

Perhaps the greatest unifying force behind the country swap is the World Cup. Amidst giants such as England, Germany, Italy, Spain, and Slovenia, little Belgium rarely makes it to the competition. "Once we've swapped with Korea, all that will change" stated Vandermeert confidently, "Flanders and even Wallonia will dominate the region. We'll finally be giants!"

Background

My native country, Belgium, is sadly slowly tearing itself apart along linguistic lines. The northern, Dutch-speaking Flemings no longer want a union with their southern, French-speaking cousins the Walloons. This long running enmity grows deeper with each passing election as more and more control is given to separatists who would split the country in two.

This satirical piece was written as homage to The Onion and a commentary on the stupidity of focusing on who speaks what language instead of actually fixing real problems facing our country. 

The Gashlycrumb Terrors by Laura Pearlman

Love the winner of this year's Movie Plot Threat Contest, security expert Bruce Schneier's attempt to make us realize that we often overreact to highly unlikely scenarios, taking steps that curtail our own freedoms and don't make us any safer.

In Laura's own words "The challenge in this year’s contest was basically to create a story that would frighten small children into obeying their government without question".

A is for anthrax, deadly and white.
B is for burglars who break in at night.
C is for cars that have minds of their own
    and accelerate suddenly in a school zone.
D is for dynamite lit with a fuse.
E is for everything we have to lose.
F is for foreigners, different and strange.
G is for gangs and the crimes they arrange.
H is for hand lotion, more than three ounces;
    let’s pray some brave agent soon sees it and pounces.
...

Read the rest on Laura's blog.

Well done Laura, hope this does get illustrated!

Microsoft shaped clouds: Azure Bootcamp

I spent the day at an Azure bootcamp today, run by Neudesic. They provided a good overview of the platform and its various components. Microsoft, while making a big play for the cloud, is really pushing its "Software + Services" strategy. They don't want you to move all your assets to the cloud, that would cost them too much in terms of lost license revenue. No, they want you to extend your current software with cloud services.

Main components of Azure:

Windows Azure represents the nuts and bolts of the MS cloud: Compute == Virtual Machines, and Storage and Management, well, that's obvious. 

SQL Azure is a bare bones SQL Server engine, no Business Intelligence, SQL "lite" capabilities, and it quickly maxes out at 50GB. But if you're moving to the cloud, you should be leaving that behind. If you really want to scale you should be focusing on Azure Storage's NoSQL options: tables, queues, blobs. Microsoft makes SQL Azure quite a bit more expensive than using Azure Storage.

Azure AppFabric adds access control via claims-based tokens, and firewall-bypassing connectivity via Microsoft's ServiceBus.

Costs are very similar to what Amazon currently charges, apparently deep with discounts available "if you contact your Microsoft rep"

One question that always comes up when discussing the cloud is SLA. Microsoft used to be trailing Amazon here in terms of specifying  SLAs. No more, their SLAs now are 99.9% and higher. Though you'd need to look into what kind of compensation they give when they exceed their SLAs.

As you'd expect the Azure developer experience is good. The tools are well integrated with Visual Studio 2010 and the local dev environment seems to work pretty well (though I didn't get a chance to deploy a complex app to it).

Azure Tools for Visual Studio 1.2 was released last week and adds these features
  • VS 2010 RTM support
  • .NET 4 support
  • Cloud storage explorer
  • Integrated deployment
  • Service monitoring
  • IntelliTrace support for services running in the cloud

The big one here IMO is IntelliTrace (good overview: http://msdn.microsoft.com/en-us/magazine/ee336126.aspx), gathering this much info from apps running in the cloud is very cool. Sadly you need to shell out major $ as IntelliTrace is only shipped with VS 2010 Ultimate.

Apparently many people ask about the ability to debug in the cloud. The answer, based on this pretty scary slide, is that Microsoft really doesn't think this is good for you :-)

While I found the tools worked well on my local dev environment, things were different while in the cloud itself. The management website is slow, 5-15 sec per page is slow when I just want to get my app deployed. Unfortunately that pales in comparison to the 10-20min it took to get my app running in a VM. This really hurts, esp. if you're used to a fast code/run/test cycle. Sure you can do this on you local but I have a feeling that a lot of bugs and some features may need to be worked on in the cloud, resulting in significant productivity loss. 

Other notes:
  • Azure can run .exe and native libraries but you'll almost certainly need to run them in full trust mode and remember that this is a a 64bit platform...
  • A fast way to push data to the cloud: Create a VHD, upload it to the cloud as a page blob and you can mount it as a drive. You can have multiple readers but you have to manage write access yourself
  • Queue messages are limited to 8KB and have to be explicitly deleted. When you read a message you specify a timeout (default 30sec?), if you haven't deleted the message in time it will be reinserted in the queue. This does introduce a race condition but Microsoft erred on the side of processing a message twice, rather than risk missing one. Fair enough (as long as it's a deposit to my bank account! :-)
  • All Azure Storage exists in three replicas, writes don't return until they've written to all three

The day's wrap up included some best practices. Many were pretty obvious (e.g. run more than one VM for high availability) but I thought these were telling / useful / surprising:
  • SOAP is out, REST is in (good!)
  • Retry calls in Windows Azure, SQL Azure, and your own services (clouds can be unpredictable places, though in this case MS might as well build this functionality in)
  • Use separation of concerns to isolate cloud / enterprise differences (came up in a discussion around using dependency injection to enable swapping out SQL Server for SQL Azure)
  • Get as current as possible before migrating to Azure (if your app isn't already on the latest version of MS software, you'll have a hard time bringing it to the cloud)
  • Migrate applications one tier at a time (Huh? I'd assume latency between tiers would kill the performance of the vast majority of apps)

It was an interesting day. Overall thoughts:
  • Microsoft has come a long way since its first Azure release almost a year and a half ago
  • Azure is clearly going after Amazon Web Services feature for feature
  • Its philosophical difference with AWS remains:  Azure gives you a greater abstraction (i.e. less to worry about) compared to the bare bones VMs of AWS, at the cost of some flexibility
  • Azure gives you strong developer tools as long as you stay on your local dev environment
  • But dev experience is painfully slow when round tripping to the VM can take 5-20 minutes. This needs to be fixed!
  • We need more sophisticated NoSQL options (where is map/reduce?) esp. given the restrictions placed on Azure SQL
  • Oh, and apparently an Azure private cloud announcement is in the works, music to the ears of large corporations everywhere!

Keep going Microsoft, competition is good!

Cowboys vs. Zombies

Not everyday I see ads for iPhone / iPad apps. Still the subway's the perfect venue to reach casual gamers. Cowboys vs. Zombies? That's gotta be high on the office worker wish list! :-)

Love this helicopter design

Helicopters, while very capable and versatile aircraft, aren't known for high speeds. Even a recently released twin engine Bell 429 (http://en.wikipedia.org/wiki/Bell_429} cruises at "only" 150 knots. Yes, faster than the Cessna 172 four seater I fly, but slower than many other light single engine planes.

Enter the Sikorsky X2. Still in prototype stage it's already reached 181 knots and is destined to cruise at 250 knots. Sikorsky uses counter rotating blades for increased efficiency at high speeds (as well as overall stability) and a pusher prop to give it that extra "oomph" :-)

Why focus on 250 knots? Because that's the FAA mandated maximum speed for aircraft under 10,000ft. It came about after this accident: http://en.wikipedia.org/wiki/TWA_Flight_553.

More details on the X2's flight: http://www.aopa.org/aircraft/articles/2010/100607sikorsky.html

Broken arm == No blogging for four years

In the summer of 2006 I was sparring with a friend at Tae Kwon Do, blocked a kick with my forearm, and CRACK! Thus was a bone broken.

The initial casts severely curtailed the use of my left arm, hand, and blog. Even when my arm healed fully, inspiration was lacking. The Kaiser folks were very nice and accommodated my requests for cool cast designs :-)

Now that I've moved all my old posts to posterous, I think it's time to submit the occasional post again. After all, it's been four years, and I have no more excuses ;-)

WinSCP Session Export

If you're on a Windows OS and need to transfer files via scp or sftp, look no further WinSCP is what you want.

I won't repeat all its great features, you can read about them on the site itself. It's a great tool.

That said, one missing feature is a way to export you sessions so you can migrate or import them on another computer. Turns out the solution is simple:

  • Fire up regedit
  • Export this key to a file: HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2\Sessions
  • Import the resulting .reg file on your target machine

Simple but... How about adding the functionality in WinSCP Martin? Cheers!