Monthly Archives: June 2010

Presented on Windows Azure at Hartford Code Camp

Today at Hartford Code Camp #3 in Connecticut, I presented two talks on Windows Azure.

The first talk was an introduction to Cloud Computing, with a Microsoft slant towards Windows Azure. The second drilled into the Two Roles and a Queue (TRAAQ) design pattern – a key pattern for architecting systems for the cloud.

The PowerPoint slides are available here:

Also plugged the Boston Azure User Group to those attending my talks! Hope to see some of you at NERD in Cambridge, MA for talks and hands-on-coding sessions. Details always at bostonazure.org.

May 2010 Boston Azure Meeting

May 27, 2010 Boston Azure Meeting

1. Michael Stiefel on use of relational databases in the cloud

At the May 27, 2010 Boston Azure meeting, Michael Stiefel was the main speaker. Michael gave a talk (slides here) on when you might want to use SQL Azure vs. “NoSQL” Azure in the cloud.

Some key phrases, highlights (very rough!):

  • “Latency exists” – you need to care about it – and the speed of light matters – analogy to digging a hole: how fast you move the shovel
  • “Bandwidth is limited” – you need to care about it – with hole-digging analogy, this is the size of shovel
  • Computational Power gets cheaper faster than Network Bandwidth
  • Connectivity is Not Always Available – welcome to the world of occasionally-connected devices like laptops on airplanes and the boom in mobile devices
  • Waiting for Data slows computation
  • Human Interaction – thinking time – can add latency to any operation
  • Economics dictates scale out, not up
  • Availability or Consistency? What is the Cost of an Apology?
  • How consistent do you need to be? Weigh cost of consistency vs. cost oc of lost business… Business Decision!
  • Design for Eventual Consistency

The meeting had around 25 people in attendance.

2. Discussion of Boston Azure Project

As part of the May meeting we discussed a proposal for the Boston Azure Project – an open source, collaborative, Azure-hosted coding project to “gently overengineer the bostonazure.org web site” – by Azurizing it. The proposal met with enough enthusiasm that it was adopted and we are moving forward with it.

3. Next: June 24 Meeting is All About The Code

In the June 24 meeting (RSVP here) we will get started on the Boston Azure Project. We will spend from 6:00 – 8:30 talking about it, organizing, and getting started. Bring your Azure-powered laptop!

Two Azure Talks at New Hampshire Code Camp

Today gave two talks at the New Hampshire Code Camp 2 in Concord, NH.

My talks were Azure Demystified – What is Cloud Computing? What is Windows Azure? and Why should we care? followed by Two Roles and a Queue – The most important design pattern for Windows Azure Cloud apps.

The PowerPoint slides are available right here:

Also plugged the Boston Azure User Group to those attending my talks! Hope to see some of you at NERD in Cambridge, MA for talks and hands-on-coding sessions. Details always at bostonazure.org.

Introducing the Boston Azure Project

Cloud Computing on Microsoft’s Windows Azure platform is still new, but will be big. I believe that. That believe fueled my interest in starting the Boston Azure cloud computing user group (henceforth in this blog post, simply “Boston Azure”) back in the fall, even before Azure was released. Boston Azure is a cloud computing community group focused on learning about Azure.

Currently Boston Azure meets monthly on the 4th Thursday of the month in Cambridge, MA in the USA. This is an in-person meeting. I have received a loud and clear vibe from the Boston Azure membership that there is a thirst for more hands-on stuff. That was fueled further first by the hands-on Azure SDK meeting we held April 29, then again by the all-day Firestarter held May 8. But we need more. So, I had this idea for an ongoing community coding project that we can hack on together at Boston Azure meetings and other times… I bounced the idea off the community at the May meeting… since I received a really positive response, I now officially declare I plan to go ahead with it…

Introducing the Boston Azure Project

Why are we doing this Project?

The community wants to code. There is a desire to learn a lot about programming in Windows Azure – and what better way to get really good at programming Windows Azure than by programming Windows Azure.

The primary goal of the project is to learn – to get good – really good – at Windows Azure.

How will the Project work?

To be hands-on, we need a project… so here’s a project to provide us with focus:

We shall build a “gently over-engineered” version of bostonazure.org.

This “gently over-engineered” version of bostonazure.org:

(a) will provide a productive environment where participants (developers and otherwise) can learn about Azure through building a real-world application by contributing directly to the project (through code, design, ideas, testing, etc., …), and

(b) will do so by taking maximum advantage of the technology in the Windows Azure platform in the advancement of the bostonazure.org web site (though thinking of it as “just a web site” is limiting – there is nothing stopping us from, say: adding an API; exporting OData or RSS feeds; being mobile-friendly for our visitors with iPhone, Android, and Windows Phone 7 devices; etc.), and

(c) will serve the collaboration and communication needs of the Boston Azure community, and

(d) will provide an opportunity for a little fun, meet other interesting people, and enhance our skills through sharing knowledge and learning from each other.

When will we code?

We will reserve time at Boston Azure meetings so we can collaborate in-person on a monthly basis. Participants are also free to hack at other times as well, of course.

Wait a second… Does it make sense to port a little web site like bostonazure.org to Azure?

It does not make sense – not in isolation. Go ahead and crunch the numbers on Windows Azure pricing and compare with an ISP-hosted solution. However, this is the “gently over-engineered” part: we are doing it this way to show off the capabilities of Windows Azure and learn a bunch in the process.

What is the output of the Project?

This project will be feature rich, easy to use, accessible, flexible… and open source.

Keep in mind: Since bostonazure.org is the web presence for Boston Azure community…

It Has To Work!

This project is for and by the community.

Anyone can contribute – at any seniority level, with any skill set, with many possible roles (not just developers).

Then how do we reconcile anyone can contribute with it has to work? The community process needs to be able to make the code work before we put it into production. We have to make this work. And we will.

So, now you’ve heard it all – the whole idea – at least the Big Picture. I will post more details later, but for now that’s it.

Next Steps

Please contact me (on twitter or by comment to this blog post or by email) if you want to be one of the very first participants – I would like a couple of folks to be in a “private beta” to get some details squared away before I make the CodePlex site public.

Update 23-June-2010: The project is now live on CodePlex at bostonazure.codeplex.com.

Fermat’s Last Theorem is safe

I saw on twitter this morning a long time ago [it was a long time ago when I wrote this post but didn’t publish it] (from Jeff Atwood, of Coding Horror blog and Stack Overflow fame) the following elegantly and concisely stated counter-example that would – if true – disprove perhaps the most famous of mathematical theorems, Fermat’s Last Theorem (FLT):

1782^12 + 1841^12 = 1922^12

Wow! A counter-example for FLT. A theorem I’ve known about since I was a kid. One counter-example is all it takes to disprove the whole deal.

Fermat’s theorem states that the equation an + bn = cn has no solutions for integer n > 2, and integers a, b, and c not equal to zero. For n = 2 we have many solutions (Pythagorean triples), but none for n > 2. Nor should we, according to English mathematician Andrew Wiles, who proved FLT in 1995.

Until now. Or do we? The equation Jeff posted is a little awkward to validate since most calculators cannot handle numbers this size at full precision. They appear equal with a normal calculator – due to precision limits (round-off errors). Same problem with Excel.

So, since I’ve recently started playing with F#, I put together a trivial F# program (included below) to show the math at full precision, with the following results:

1782^12 + 1841^12 = 2541210258614589176288669958142428526657
and
1922^12 = 2541210259314801410819278649643651567616
which differ by
700212234530608691501223040959

So Fermat is safe. Saved by F#. 🙂 But don’t feel bad if you fell for it – just be glad you knew what it meant. Bonus if  you noticed it on The Simpsons or Futurama.