23 Feb, 2010

Ruby Koans on Windows

Bobby Johnson presented this at the February 2010 Alt.Net Seattle meeting. I missed the first part of the meeting so I had to replicate this by Googling... 
 
Ruby Koans seems like a great way for learning the Ruby language. 
 
Step by step
  1. Install Ruby for Windows
    1. http://www.ruby-lang.org/en/downloads/
  2. Install RubyGems
    1. http://rubyforge.org/frs/?group_id=126&release_id=42796
    2. "ruby setup.rb" 
  3. Install rake
    1. "gem install rake"
  4. Download Ruby Koans
    1. http://github.com/edgecase/ruby_koans
  5. run rake where you unzipped the koans... start fixing the failed tests!

16 Feb, 2010

.Net Developers Association MVP Meeting

Fun meeting with 5 half hour presentations:
http://dotnetda.org/wp/2010/02/08/netda-meeting-02-15-10-mvp-all-star-presentations/

Interesting that only Brian Henderson who is their treasurer was the only Alt.Net attendee that I ran across.

DotNetNuke
http://www.dotnetnuke.com/

Seems to have quite an ecosystem though I can't remember running across anyone using it outside some sessions at the annual Alt.Net conference. Looks somewhat similar to Drupal for the .Net world.

Some general advice, which extends to most of these systems:
  1. use extension points (modules and providers) as opposed to checking out the core source and going from there
  2. develop your modules on the minimum version supporting your required feature set such that it is applicable to the broadest audience possible

Start with a template: 
  1. http://www.engagesoftware.com/ (didn't feel like registering just to see what theirs looks like)
  2. http://www.bitethebullet.co.uk/ (some spiffy looking free modules)

Azure

Most of the content was really basic and a bit dated... See PDC and websites for more interesting stuff...

.Net Coding Standards

I think most agile organizations subscribe to the importance of both formal coding standards and tools assist/enforcement of those standards. I have to admit to deriving the standard at Azaleos from the original Java coding standard from Sun (written by one of my developers) and tossing in some Microsoft'isms to please my developers that came from Microsoft.


WPF

Turned out to a presentation for making the case for WPF with customers that ask for something else. Really an implicit sales pitch for M-V-VM development too pitching separation of concerns between developers and designers. I think many of us know this isn't as easy as it sounds with the VM in particular having in depth knowledge of both sides... Still a really good presentation showing that usability is really a discipline and understanding user goals as something very different than taking requirements from customers in most engagements.

Claudio is holding a weekly Virtual Brownbag series: http://claudiolassala.spaces.live.com/blog/cns!E2A4B22308B39CD2!2015.entry?sa=912088688
What a great idea! He also plugs Alt.Net

16 Feb, 2010

The Buzz at Agile Open Northwest 2010

Wiki (AKA Session Notes - really bad usability): http://agileopennorthwest.org/wiki/index.php?title=Agile_Open_Northwest_2010_Session_Notes

Had a great time at my first Agile Open Northwest (yes I seem to have attended everything else in this area) attending a diverse group of sessions from web testing to building a more welcome environment for women in technology.

Cucumber/BDD

In the hallways, Glenn Block suggested I check out Cucumber http://cukes.info/ I took a look at the website and looked at the brief Rails example in the RSpec book. Some of the examples are necessarily contrived such that acceptance tests are way too low level unit tests which many of us might argue should not be unit tests. Seems like a very simple and usable tool to facilitate BDD. It's hard for me to get excited to use for my own project, but next time I am project managing I think I will definitely give it a go.

Web Testing

From the testing and automation sessions, all the buzz seemed to be around Selenium http://seleniumhq.org/ There must be a lot of web people at the conference. Selenium looks like a good integration testing tool. There was also mention of folks combining or using WatiN http://watin.sourceforge.net/ and Watir http://watir.com/ which are also browser automation testing tools. People really seemed most concerned with layout breaking issues, as opposed to javascript correctness. Some non-UI AJAX testing frameworks mentioned were Screw.Unit http://github.com/nkallen/screw-unit#readme and JsUnit http://www.jsunit.net/ I also heard HTMLUnit mentioned http://htmlunit.sourceforge.net/

Working with Legacy

I attended at least one full session, with a team talking about moving from WebForms with business login in the client and in stored procedures to a more progressive AJAX and Web Services implementation. They seemed to have divided their development team into frontened, backend, database teams which goes against the vertical slice or more importantly usable feature set alignment most favored by agaile teams. I appreciate some of the issues in terms of expertise and individual scalability issues (what happens if you only have 2 database architects and 10 projects that need them), but I still question the methodology. Second issue was parallel teams maintaining and breaking new ground. Moving targets are always dangerous with divergent code and semantics. At some point you need to bite the bullet and interlock. Incremental development a parallel interface without real users or users that have to use 2 different interfaces is also highly problematic. I described Eric Evans approach of moving forward and fixing/reengineering only what you need with facades as being a pragmatic approach. Someone terms this strangling the old system which I think is an interesting way to think and describe the approach.

Usability

Didn't really get much out of the discussions around this than reiterating the tradeoffs and conscious decisions for big bang (strong cohesiveness design) and incremental user interface design. At some level we also decide to reeengineer in the backend world when we think the legacy (especially platform) has too much baggage. Usability and interaction seems to just bring this more to the foreground. I still hold information architecture and interaction design (not the graphics) is the key difference between good and great. Dang Dick Berry from the early days of User Engineering at IBM's Ease of Use team really poisoned me for life. Many make the point that not everyone can be an Apple, I really don't understand this from a group of folks that should be seeking to do better.

I have an old slide deck from Dick Berry on my website that I think still holds up well today: http://www.woan.org/Presentations.html

Women in Technology

Aside from a brief mention of role models and parents, this session focused on what we can do in the workplace as individuals today. 

There was some discussion regarding families and the career arc of those raising kids, and how companies can gain a competitive advantage reaching out to those seeking part-time work which is incredibly ironic at an agile development conference which no one seemed to want to directly challenge. As someone who has managed part-time and off-site employees, those individuals must either be in the upper eschelon of their craft or the teams must have incredidible cohesiveness (open source is a very good example of where this really works well with inherent passion and goals alignment) for this to work and be worthwhile for all. I was successful with a distributed team at IBM only after the team had been together for a few years, and the members of the team knew each other so well they could argue each others viewpoints before even asking. There are some just incredible individuals that are worth having on a team remotely and disconnected, each of their interactions are golden and orders of magnitude above average. That doesn't generalize or a program make though.

We seemed to skirt around the real issue that after the Internet boom where we saw female and minority college enrollment in the sciences spike, current enrollment reflects very much current minority and female representation in our field. I think we can and do better marketing our field to the masses. Of course I think what we do and the value we have in society is incredible so I can be a bit biased. I think of all the times I visited rural schools in Texas with IEEE and the kids just didn't think that the field was open to them, or in the suburbs where law and medicine still seem predominant. Actually I keep think we should market science, technology, and entrepreneurism together in opening up a world of possibilities...

OK fudge, the last 5 years in startup world became a blackhole for me in terms of engaging. I think I definitely need to reengage mentoring young people in college and earlier as to the potential of our field.
 
Mind Mapping
 
A really interesting session led by Derek Hoshiko presented hand-drawn mind mapping for note taking. Very though provoking though I wonder about the metrics. I think many of the arguments in terms of retention also apply to note taking, as in if you actually review your notes just after taking them and after some time has passed, you can improve information retention exponentially. When I took notes on paper, I actually followed many of the mind mapping concepts. Now when I take notes digitally, I go back and revise and hyperlink which seems to have a similar affect on retention. Anyway certainly worthy of some investigation and experimentation.
 
User Stories
 
After attending a session that spent most of its time discussing the definition of user, I attended a more pragmatic session on splitting epic stories into stories closer to the INVEST model http://xp123.com/xplor/xp0308/ Seemed like folks were willing to back off the I in INVEST a bit in acknowledging sequencing and Minimum Featureset (MFS) goals as well. Pointer to Tasty Cupcakes site as well http://blog.tastycupcakes.com/ Interesting suggestion in splitting stories based on testable units too. I really need to give this more thought... Of course part of going Kanban was to avoid some of these issues explicitly though they still appear in the form of iterative and incremental development.

12 Feb, 2010

Travel Notes and Tips for Jordan Egypt Tour

Posted by woan 21:41 | Permalink Permalink | Comments Comments (0) | Trackback Trackbacks (0) | Travel Log
Photos: http://www.flickr.com/photos/8502118@N08/collections/72157623134722173/ 
 
General Travel Notes for Egypt and Jordan

First, I really hate tipping (known as baksheesh) in Jordan and Egypt, especially in Egypt. Having someone else handle this for you is worth signing onto a guided tour by itself. Unsolicited help (like a baggage handler grabbing your luggage off the curb while you are paying the cab driver and then asking for tip while effectively holding your property hostage) is also incredibly annoying.

Also I hate all the stores and restaurants that have no price tags which you know that everything is negotiable and locals pay a fraction of what is asked of foreigners.

And finally I hate how taxis work, in that you have to remember to negotiate a price ahead of time, and you better have exact change.

When comparing guided tour prices, pay careful attention to what is optional. The trip I booked had a series of "options" that really should have been built in.

Some general notes:

  1. No one seems to have change, so get a whole bunch of small denomination currency at a bank or when you exchange. You will need it for tipping, especially to go to the bathroom.
  2. In Egypt (not Jordan) kids will follow you asking for money and candy.
  3. Insect repellent and sun screen. Worth bringing from home, expensive and unknown brands along the road. Probably worth some research as my super duper REI DEET mosquito repellent didn't work nearly as well as I would have hoped.
  4. Might want to bring your own shampoo on the trip… Quality of soap and shampoo in hotels highly variable. Your favorite brands might not be available.
  5. Bic disposable razor blades bought in Jordan (triple blade model) seemed super dull, cut myself all over…
  6. Underwear strange cut and way undersized by western standard, I bought by waste size and they were way too small.
  7. Bring toilet seat covers and toilet paper from the states… Your idea of clean is probably not theirs.
  8. Taxis very cheap
    1. Don't accept a ride from anything not clearly marked as a taxi. I mistakenly took a private car and was ganged up by two men (the driver picked up another man along the way to the destination) that doubled the agreed upon fare. Actually this was true of taxis too…
    2. Meters mean nothing, negotiate price for destination before getting in, you will get outrageous tourist pricing if you ask how much at the end of a trip (had this happen in Jordan and Egypt)

  9. Internet cafes tend not to have WiFi forcing you to use their computers which tend to be old with IE6
    1. You will have to learn how to get to US sites when redirected to local versions of google, facebook, etc...
  10. Beware of restaurants and stores with no stated prices, you will almost always get charged double locals
  11. Credit card exchange rates much better than banks and money exchanges but can be negated by foreign transaction charges (Capital One cards do not have any transaction charges). Only very upscale establishments seem to accept credit cards

City Notes

Amman
  1. Kids very friendly. They seem to want to practice their English on you ("Hello, how are you doing?"). Unlike in Egypt they do not as money or candy from you.
  2. There is free internet in some cafes and restaurants (they tend to advertise the fact in front).
  3. Relatively easy to walk from downtown to Roman theater and Citadel.
  4. Shopping malls (City Mall, Mecca Mall) in the suburbs very modern and reasonably priced (by Western and relative standards) in case you are looking for a western style department store or US brands.
Petra
  1. Simply stunning, should spend a whole day there. 
  2. Prices for food and drinks reasonable except at the top of the climb to the monastery where it can be 4X of what is below.
  3. Monastery climb challenging but just go at your own pace, three lookout points past the monastery, just keep heading up.
Wadi Rum
  1. Completely touristy as Bedouins all resettled in towns by government
  2. 4 wheeling in desert quite fun
  3. Camel rides for tourists, nothing interesting to see and guides walking alongside
Aqaba
  1. Modern city
  2. Locals only at the fast food joints, people at Popeyes super friendly to tourists (gave me two bonus pieces and wrapped my leftovers for takeaway without even asking)
  3. Glass bottom boat tours from beach seem to have standard prices/itinerary
Dahab
  1. Cheapest of tourist cities, hotel  laundry about quarter that of Luxor
  2. Might as well go to Ali Baba for dinner as prices pretty similar at all beach front tourist restaurants
Sinai
  1. I think sunrise might be better at Mt Sinai than sunset, pace yourself, I almost died on a 2.5 hour pace whereas I think I would have been fine at 3 hrs
  2. St Catherine's Cathedral -  only the Christian church is open to tourists along with the Burning Bush
Cairo
  1. Money exchange at banks on the street, open late and on normal holidays (Friday and Saturday)
  2. Street food seems relatively safe and cheap
  3. Egyptian Museum has so much stuff, highlights in a couple hours. Everything so poorly organized and labeled
Luxor
  1. Both McDonald's and local fast food chains (Snack Time)  had free wireless
  2. No cameras in Valley of Kings (used to restrict only flash photography, but they have now banned all cameras)
  3. Temple of Hatshepsut is really cool and allows cameras
  4. Temple of Karnak is a must see and allows cameras, definitely worth guided tour to place site in context
Aswan
  1. McDonald's has free WIFI with power outlets by indoor and outdoor tables, WIFI was down when I was there
  2. Late night market, lots of cool food options, markets with price tags available if you look
  3. Water taxis seem pretty cheap, if you let them solicit you
Alexandria
  1. Again got ripped off by taxi by not negotiating price for the destination upfront, and taxi driver accepted my fare saying he knew destination when he really didn't. Find English speaker that can actually pronounce your intended destination before getting in
  2. Soldiers/police don't seem to understand English as a rule
  3. Catacombs and other sites close at 4p
  4. Alexandria Library (Bibliotech) pretty cool and open late. Has free and fee museums. Unrestricted free wireless and you can use their computers with registration
  5. Fun to walk downtown streets, busy shops and stores, night farmers market by train station

12 Feb, 2010

SCOTTEVEST Travel Clothing

Posted by woan 21:10 | Permalink Permalink | Comments Comments (0) | Trackback Trackbacks (0) | Travel Log

 

Before leaving for the Middle East in January, I purchased a SCOTTEVEST Evolution Travel Jacket and a pair of Ultimate Cargo Pants.

The jacket is perfect both for travelling and every day wear in Seattle. The interior pockets with the flat look felt really secure for holding travel documents and money, kind of like a money belt. The microfiber eyeglass cleaning cloth in an eyeglass pocket was a nice surprise. The detachable sleeves turning it into a vest came in handy in warmer weather. The hood and water repellency of the whole jacket comes in handy as well. The jacket is remarkably warm in above freezing temperatures and make for a nice layer for colder temperatures.

The Ultimate Cargo Pants are great for travel. They not only have lots of pockets, but they have pockets inside of pockets with zippers. These feel very secure. The pants legs also zip off to turn the pants into cargo shorts. I also liked the inside drawstring which provides for a secure fit without a belt. The fabric is pretty light weight and loose. I did manage to tear the pants when I fell off a donkey on a rough street in Egypt.

I liked the clothing so much on the trip I ordered another couple pairs of the pants, and a bunch of shirts when I returned...

http://www.scottevest.com

I should also mention they rotate the items on their specials page pretty regularly, so if you wait long enough you may find your favorite item %20 off.

Also they  seem to run web ads that land you on a 10% off page, so you might search around for a discount code.

 

12 Feb, 2010

Jawbone ICON Bluetooth Headset

After  three  generations of evolutionary design refinement (Jawbone, Jawbone 2, Jawbone Prime), Jawbone recently released the Jawbone ICON. They radically departed from their pretty but hard to use interface for the first time with a discrete on/off slide switch and an explicit single button. They also got rid of volume adjustment from the headset as far as I can tell. Also they priced this model below the previous Prime model which is a first for them as far as I know.

That much said, performance is still just awesome. The visual battery indicator on the iPhone or by voice by pressing the talk button is quite nice. microUSB charging interface will probably let me leave another cable home when travelling.

Still having some difficulty using the multipoint with my Windows 7 x64 laptop and iPhone. I can't figure out how to wake it up from Windows when using it with Skype without disconnecting and reconnecting the device in the Bluetooth manager.

MyTalk allowing you to change some functionalty and the voice prompt voice is pretty cool.

Overall, I would highly recommend this to anyone looking for a new headset, but if you have a Jawbone 2/Prime it is not a nobrainer to upgrade.

Product page: http://jawbone.com/productsPageIcon.aspx

Seen for as low as $79 on techbargains... 

12 Feb, 2010

Recurring Windows overnight reboots

I noticed after returning from my trip that every morning, my home system was at the Windows 7 just booted login screen.

Turns out I have Windows set for auto updates at 3a every night. 3 January Important updates failed as a batch, and every night Windows would try to apply the updates and reboot.

Trying to apply them together while watching using Windows Update led to failure and a reboot. Applying them individually and letting the system reboot between each worked.

I did notice one of the 3 updates in question was specific for Nvidia chipsets (USB transfer data loss or something), so I am guessing that there was a conflict between updates.

Anyway, before crawling the support database when you get multiple update failure, it might be worth trying  to apply Windows updates individually instead of accepting the default of all Important updates.

4 Jan, 2010

Upgrading Windows laptop hard drive made easy

I googled around and a lot of the posts I found seemed a lot harder (external media) or more expensive (by special upgrade kit) than needed.

Here is what I ended up doing this with my MS PDC09 Acer 1420P running Windows 7 x64 which has no CD drive:

 

  1. Purchase new hard disk
    1. HITACHI Travelstar HD20500 IDK/7K 500GB 7200 RPM 16MB Cache 2.5" SATA 3.0Gb/s Internal Notebook Hard Drive 
  2. Purchase external 2.5" USB drive enclosure and install new hard drive in it
    1. 2.5" USB 2.0/eSATA External SATA Hard Drive Enclosure w/One Touch Backup (Red/Black)
    2. not sure I would recommend this one but Fry's had it in hand and it was cheap
    3. did not bother to button it up after putting in new hard drive
  3. Download and install Acronis® True Image Home 2010 Trial edition
    1. note installation required a reboot
  4. Attach external drive enclosure to laptop and wait for Windows to recognize it
  5. Use clone drive tool from True Image
    1. ended up using auto mode as manual partition sizing just did nothing on last process step (probably internal exception or something that got swallowed), since I was going from 250GB to 500GB this doubled the recovery partition from 8GB to 16GB needlessly
    2. this also requires a reboot, as True Image will perform its magic by scheduling the operation on next Windows boot before the UI and applications start
    3. after the actual cloning, you will be prompted to press any key to shutdown, you do not have to boot up before swapping drives
  6. Swap internal drive for new one
    1. after verifying first boot with new drive, I put the old drive in the external enclosure and buttoned it up
  7. Uninstall True Image
With 120GBs used of my original 250GB drive this whole operation took a few hours with the drive cloning taking all but 10 minutes of the total.

 

28 Dec, 2009

Lessons on Life from Dawson's Creek

I was reminded of my favorite Dawson's Creek Quote today:

So, the only thing that I could think of that unites us all, that we all have in common, is that... well it's that we all start off in kindergarten thinking that we can be anything that we want to be, and by the time we get here, we... we've somehow lost that feeling. We've all started to believe whatever our parents or friends have told us about what we can achieve and who we can be in life, and... and we've forgotten about that possibility we had when we were younger. And that's what I think we all have in common, and that's what the symbol on my painting means - possibility. I painted it because I thought we could all use a daily reminder that, if you believe in yourself, even when the odds seem stacked against you, anything's possible.

http://www.imdb.com/character/ch0024907/quotes 

18 Dec, 2009

What I am reading on the web...

I am using google reader to post web links to articles I find interesting allow with some brief commentary:

https://www.google.com/reader/shared/rswoan

If you have a reader account, you can follow just like a RSS feed. 

I also post a subset to facebook...

If you know of a better system to share links/articles. Let me know. 

17 Dec, 2009

Pimping PDC09 Windows 7 Laptop

UPDATED (1/4/2010): Added hard disk suggestion... New Bluetooth driver updates.

 

First nobrainer, boost memory to 4GBs, I use the following from Newegg:

Crucial 2GB 204-Pin DDR3 SO-DIMM DDR3 1066 (PC3 8500) Laptop Memory Model CT25664BC1067 - Retail 

Included hard drive is a 5400 RPM Western Digital Scorpio Blue. A nice upgrade is (I picked mine up for $89.99 at Fry's):

HITACHI Travelstar HD20500 IDK/7K 500GB 7200 RPM 16MB Cache 2.5" SATA 3.0Gb/s Internal Notebook Hard Drive 

Definitely install the Synaptics touchpad driver to get scroll and magic corners...

http://www.synaptics.com/support/drivers

Improve calibration of the touchscreen:

http://www.woan.org/plog/index.php?op=ViewArticle&articleId=970&blogId=1 

Updated graphics driver:

http://downloadcenter.intel.com/SearchResult.aspx?lang=eng&ProductFamily=Graphics&ProductLine=Laptop+graphics+controllers&ProductProduct=Mobile+Intel®+4+Series+Express+Chipset+Family&ProdId=2991&LineId=1101&FamilyId=39

Updated WiFi driver:

http://downloadcenter.intel.com/SearchResult.aspx?lang=eng&ProductFamily=Wireless+Networking&ProductLine=Intel®+WiFi+Products&ProductProduct=Intel®+WiFi+Link+1000&ProdId=3141&LineId=1784&FamilyId=1783 

Bluetooth driver update:

http://www.broadcom.com/support/bluetooth/update.php 

Even with that I prefer a mobile mouse. I use the Microsoft Wireless Notebook Presenter Mouse 8000 personally:

http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=085

Might also want a headset for VOIP/Chat. I like the Jawbone Prime:

http://us.jawbone.com/

And if you want a camera upgrade, the Microsoft Lifecam Cinema rocks hard with image and build quality:

http://www.microsoft.com/hardware/digitalcommunication/ProductDetails.aspx?pid=008 

 

1 Dec, 2009

Improving Windows 7 Tablet Pen Tracking Accuracy

UPDATE: calculated more even point distribution rather than copying from referenced post and just changing end point

I was having trouble with my Acer 1420P PDC 2009 laptop pen tracking accuracy with the default 8 calibration points before I found out you can specify calibration points on the command line. 

I followed the guidance from:

http://www.xiirus.net/articles/article-windows-7-calibrate-your-tablettouchscreen-with-more-points-ik4p1.aspx

using the following command line (Run as Administrator):

tabcal lincal novalidate XGridPts=5,231,457,683,909,1135,1361 YGridPts=5,157,309,461,613,760

Might need a little more room on the edges... 

25 Nov, 2009

The Microsoft Windows Azure Story

Making sense of Azure

During the course of the year since PDC 2008 through PDC 2009, I feel like I have been going through messaging whiplash from our friends at Microsoft. I developed a somewhat unified theory or narrative of how MS has got to where we are and where they might be going. This post will be told in narrative form as it explains my assumptions and conclusions which you should feel free to challenge at any point (comment directly or send me email if you want to keep it private). I will attempt to summarize at the end for the impatient.

PDC 2008 10/2008

MS unveils Azure, the future of cloud computing. Messaging from Microsoft was clearly Azure as a Platform as a Service (PaaS) model as defined by NIST with a relatively rigid scale out programming model with .Net services (no local storage, message queuing), Windows Azure Storage which is essentially blob entity storage, flat tables, coupled with message queuing. There were two basic instance roles, a Web role and a Worker role differentiated by whether they received direct load-balanced web traffic or not, coordinated through Windows Azure Storage or message queuing.

Mix 2009 3/2009

I think SQL Azure Database was announced at Mix 2009, offering familiar SQL Server storage and access in Azure. Size is restricted to 1GB and 10GB databases, and there may not be support for User Defined Data Types. Pretty cool, just take SQL Server 2008 R2 Management Studio and connect it to your Azure database and everything works as expected. LINQ, ADO.NET, etc... For scale-out and hybrid SQL deployments, MS also introduces the "Huron" Data Sync which is a multi-master database synchronization services/utility that allows you to define conflict resolution policy (last write win, etc...). The other big announce that didn't get much press was fastCGI support for PHP, Ruby, Java native code applications.

PDC 2009 11/2009

Fast forward to PDC 2009, MS announces MySQL, Apache Tomcat, Apache Webserver support in Azure bringing us the full WAMP stack. During the first day keynote, Automattic demonstrated Wordpress on Azure. Microsoft announced a bit earlier at the Eclipse Summit 2009 developer tooling in the form of Windows Azure Tools for Eclipse, Windows Azure SDK for Java, and PHP SDK for Windows Azure. SugarCRM also announced that it will offer their CRM suite on Azure. Another key announcement (at least in terms of Microsoft focus time at PDC 2009) is Codename "Dallas" which is an online marketplace for datasets and real-time web services, i.e. Azure version of the iPhone App Store as one program manager described it.

The biggest development architectural announcement is what MS terms inter-role communication and external end-points on worker roles. This basically means that role instances can answer Internet requests on any TCP port (so no longer restricted to HTTP and HTTPS access only) and inside of Azure, role instances can make calls to other role instances (Web or Worker) directly without going through Windows Azure Storage.

Equally big from a deployment flexibility perspective is Azure AppFabric with its service bus architecture that allows you to traverse firewalls to create Hybrid systems. As I understand it, you can integrate on-premise applications and data with Azure applications and data relatively easily now in any permutation.

Computer instances now have local storage which can survive patching/activation such that you can use them as a form of local cache. There was also mention in the keynotes of a future where compute instances could be customized and cloned.

Finally the most illuminating announcement was pricing and Service Level Agreement details for Azure:

SizeCPUMemoryStorageIO
Small 1.6GHz 1.75GB 225GB Moderate
Medium 2x1.6GHz 3.5GB 490GB High
Large 4x1.6GHz 7GB 1000GB High
Extra Large 8x1.6GHz 7GB 2040GB High
 
SizeElapsed HourSmall Instance Hours
Small 1 hour 1 hour
Medium 1 hour 2 hours
Large 1 hour 4 hours
Extra Large 1 hour 8 hours
 
Instance CPUs are aligned to compute cores, so if I have two guess it looks like MS is really using the low power sweet spot of the current server market, 2-socket quad core low power processors with 16GBs of memory, 250GB drives (12/chassis). From pricing, memory and storage seem aligned by instance CPU. One might think the Hyper-V host partition is on RAID-1 and everything JBOD, leaving 2 spares to handle the relatively high-frequency drive failure case.

For a compute SLA you have to have minimum of 2 instances, and SLAs are stepped at 10 and 25% rebates applied to the next month’s billing cycle depending on availability which is pretty well defined for each of the available services. I think in most cases they built in tolerances to allow for redundant failover or switchover, i.e. not considered unavailable if only unreachable for full 5 minutes in some cases. 

Conclusions

MS has moved from a clear Platform as a Service model towards Infrastructure as a Service both in terms of design, architecture, pricing. In terms of competition, this positions Microsoft Azure up squarely against Amazon Elastic Compute Cloud. David Chappell described Microsoft pricing as Amazon minus 5% which apparently Amazon matched. MS basic compute resources might be a bit higher, but Amazon allows for greater flexibility in things like operating systems, installed software, big memory and higher CPU configurations. In both cases you pay something for the resources provisioned to you whether you use it or not, plus a transaction or data transfer fee for data access or moving data between geographic datacenters.

MS free promotions seem mainly to cover cost of development, i.e. not enough free resources to host anything and meet SLA requirements, i.e. MSDN Premium (which BizSpark members get too) offer covers just over one small instance per month. Any small Web application will run a few hundred dollars a month. Contrast this to Google App Engine which is making a point of really free startup, first 5 - 7 million page views/month free for well written applications.

MS and Amazon chose or faulted into a simpler architecture leveraging off the shelf infrastructure virtualization and partitioning than Google. This allows for much easier allocation, isolation, and billing. It provides their customers with far greater application architecture, development platform, resources use, and deployment choices (like cross on-premise and public cloud systems). Google App Engine is more restrictive in almost every way but is cheaper. Depending on your skills base one or the other may be easier to develop for and manage.

Given that cloud providers are providing very limited compensation for SLA breaches and it appears are doing limited hot over provisioning of redundant resources except to cover catastrophic data loss, I think new architectural patterns will emerge for business critical applications in the public Cloud. In particular, I have been giving much thought to N 1 data center patterns where you either treat the Cloud as just another datacenter at your disposal or you treat the Cloud as an optimization, i.e. the Cloud provides better user response and enhanced functionality, but you maintain some capacity on your own or use multiple Cloud providers to provide redundancy and some form of degraded service such that one Cloud being accessible does not totally stop your business. More about this is future blog posts.

This much said, given the effort MS is making in providing a coherent scale-out application platform, I would guess they are still working internally on the necessary infrastructure and tooling to compete directly with Google on Platform as a Service in the future.


Links:

24 Nov, 2009

Microsoft PDC 2009

I think all the videos are now online:

http://microsoftpdc.com/Videos

I plan on doing a series of blog posts starting with a historical analysis of the evolution Microsoft Azure strategy that I will be soliciting feedback on. Think of it as reverse engineering strategy from product introduction and press releases. I think with pricing information and technical feature introduction announced at PDC 2009 we finally can draw some conclusions of where we are going and just what we can use this stuff for. I have spent a few hours on this already, so I might do an incremental release if I don't get closer to being finished sometime soon. 

I will also just do my summarization for each session I attended and transcribe some notes I have from hallway discussions. 

I created a Microsoft PDC 2009 Flickr group and sent all my photos there and there are some much better ones from other contributors you might want to check out:

http://www.flickr.com/groups/1289579@N21/

and Microsoft had a staff photographer who had "exclusive" backstage access with some cool photos too:

http://www.flickr.com/photos/microsoftpdc/ 

Some really interesting themes around Silverlight 4, Rich Internet Applications (RIA) tooling, the new Windows Server AppFabric packaging of previously disjoint features...

16 Nov, 2009

The Return of PLATO - cyber1.org

I still remember my amazement when introduced to the PLATO system as a scrub at University High School. Ooohhh, pretty programmable plasma displays. My student hosts were working on a Dungeons and Dragons game in CERL. As a student and a short time member of the Junior Programming League (I can't recall if I fulfilled the requirements), I remember how cool notes was for public discussions and email, the hours I spent animating text character Star Wars battles between tie fighters and x-wings. Of course I learned to program in TUTOR and actually learned my first assembly language in a simulator. Hours and hours of asteroids as well Bugs and Drugs, one of my favorite games of all times.

cyber1.org  has brought it all back (ok the asteroids runs a bit slow in the terminal emulator I have). I haven't spent a lot of time looking around, but where I have been, it is oh so cool.

If you have fond memories of PLATO, checkout http://www.cyber1.org/ and if you join, look me up. I am woan/unihigh once again.