Hello World

In July 1995 I wrote a column in BYTE with the same title as this blog post. It began:

One day this spring, an HTTP request popped out the back of my old Swan 386/25, rattled through our LAN, jumped across an X.25 link to BIX, negotiated its way through three major carriers and a dozen hosts, and made a final hop over a PPP link to its rendezvous with BYTE’s newborn Web server, an Alpha AXP 150 located just 2 feet from the Swan.

Thus began the project on which this column will report monthly. Its mission: To engage BYTE in direct electronic communication with the world, retool our content for digital deployment, and showcase emerging products, technologies, and ideas vital to these tasks. We don’t have all the answers yet — far from it. But we’re starting to learn how a company can provide and use Internet services in a safe, effective, maintainable, and profitable way.

Today I felt that same kind of excitement when I clicked on this URL:


There isn’t much to see. But what happens behind the scenes is quite interesting to me. The URL hits a deployment in the Azure cloud where I’m hosting an IronPython runtime. Then it invokes that runtime on a file that contains this little Python program:

hello = "Hello world"

Finally, it gets back an object representing the result of that program, extracts the value of the hello variable, and pops it into the textbox.

This is the proof of concept I’ve been looking for. Now I can begin an experiment I’ve been wanting to do for a long time. I have an ongoing personal project, elmcity.info, about which I’ve written from time to time. It’s hosted at http://bluehost.com, it’s written in Python using Django, and it’s invoked by way of FastCGI.

Back in the BYTE era, I loved learning about the web by building out a live project, and explaining what I learned step by step. Now I want to explore, and document, what it’s like to build out another live project in the Azure cloud.

Could I do it in Amazon’s cloud? Sure. In fact I already did, as an experiment. And if it were cheaper to run there than on Bluehost, I’d currently be hosting elmcity.info on EC2 instead.

Could I do it in Google’s cloud? Not sure. I didn’t score an account there and can’t yet try. The interactive pieces of my application should slide nicely into AppEngine’s Django framework. But much of the work is done in long-running processes which I believe AppEngine doesn’t yet support.

In any case, it’s obvious why I’ll be focusing on Azure. I suspect, though, that my focus will be different than most. I’m not a hotshot .NET developer, just an average guy who can get some useful things done in environments that enable me to create small, simple, understandable programs, and do so in agile and dynamic ways. I think that Azure — admittedly nascent in its current form, as Ray Ozzie said at the PDC — can be such an environment. Let’s find out.


  1. You can definitely try it on App Engine, Jon, as sign ups have been open for awhile now. The price is tough to beat (free as long as you don’t expect this to explode), and Django is a perfect fit.

    Not sure what the price structure of Azure is, but the pricing of App Engine is one of it’s most appealing features. Beyond the free right now, it’ll supposedly be priced by the CPU megacycle as opposed to “instance” that’s running, so it can be much more fine-grained than Amazon.

    I love Amazon’s stuff too and have written a bunch about both, but I’d seriously recommend taking a peek at App Engine.

    Love reading a blogger how actually knows how to code, by the way! Releasing a major version of LittleShoot soon that will likely interest you — think Winer’s early dreams for p2p coming to fruition plus a lot more.

  2. Wow…that’s a blast from the past, Jon. I remember that article, and that column was one of the things I kept under my pillow back in the mid-90s as I was writing my first webapps. Exciting to see you bring it back, in a new format.

    I’ll be honest; I’ve been not 100% thrilled with what seems to be a pretty notable shift in focus away from pure pragmatism since you moved to Microsoft. My enthusiasm for your posts has begun to wane a bit. It may well be me as much as you, of course…everyone changes.

    But I think I’ll enjoy this series. *grin* Looking foward to it.

  3. Jon,

    Indeed you can do it on AppEngine. As I mentioned to you, I’m working on a calendar aggregator (www.mashical.com) which is hosted on AppEngine. The lack of long running processes and scheduled tasks is an obstacle, but I’ve got it working OK using alot of memcaching.

    Mashical is a response to your wondering about the existence of a calendar aggregator…I couldn’t find one, so I took it as a challenge to learn python and appengine. Basically, anyone can create a single calendar from a bunch of ICS feeds. I recreated you elmcity calendar at Mashical and it’s listed as one of the public calendars. Anyone can login with their Google ID and create a new calendar (though, beware that it is definitely alpha and a bit design and feature challenged right now). You can, however, subscribe to a merged calendar.

    I’d love to know yours and your reader’s thoughts about the app.


  4. > It may well be me as much as you,
    > of course…everyone changes.

    It’s me, not you. My goal was, and is, to illustrate pragmatic principles and practices that make sense to, and solve problems that matter to, non-programmers.

    But I also want to explore what cloud-based development can mean to programmers.

    Hopefully I’ll now be able to converge these missions.

  5. Jon,

    Does this mean I will soon get a cloud account to bring the good word of events to Fredericksburg? This is very cool stuff, and I also looking forward to this series, and your work with elmcity.info is really fascinating to me–and now in a couple of new ways.

  6. > It’s me, not you. My goal was, and is, to
    > illustrate pragmatic principles and
    > practices that make sense to, and solve
    > problems that matter to, non-programmers.

    Noted. But perhaps you misunderstood me; I’m not less interested in your columns because they not always technical (at least I don’t think so). I agree wholeheartedly that we uber-nerds tend to solve problems that interest us, and don’t pay sufficient attention to issues that matter to non-programmers. I find your focus on those sorts of issues almost always fascinating; you have a gift for recasting those challenges in a way that both includes the non-programmer while catching the programmer’s interest. It’s great; thanks for doing it.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s