Beyond the Browser

Arpit Mathur, our Flash wiz at CIM, has posted a nifty summary of different approaches being taken to extend the browser’s capabilities to the desktop.

To the list, let me add a few more desktop development platforms, that are network leveraging:

Eclipse RCP

JavaFX

wxWidgets with Python

Firefox, irregardless of Prism, is already a capable sometimes-connected desktop application environment (witness Songbird – an open source project I might dig into, because I am just unhappy with the state of current mp3 players). However, Prism sure does seem interesting and worth keeping an eye on.

And while Arpit did cover the Flash side of things (Air), I love contemplating Flex+Python or Flex+Java approaches. Bruce Eckel’s article in Artima on the subject maps to the way I think. There is a lot of re-use and maintenance problems you solve when you layer an application that way.

An earlier project I worked on was a communications application that utilized a Flash UI hosted in a C# application. It worked intriguingly well.

Top 3 resources for migrating to the latest Movable Type templates

I’m going to be migrating to the latest and greatest Movable Type templates soon and wanted to collect the best resources I could find. Here are three:

How to upgrade to Movable Type 4 full templates (MT4) – Robert Green’s DIY

Upgrading Your MT3 Templates to Movable Type 4.0 | Movable Type Docs

Movable Tweak: Movable Type 3 vs. Movable Type 4: A Modular Site Approach

(ah, I used ‘top n-number’ in a post!)

lang:groovy – extend your Spring app with scripting

The Spring Framework offers many ways to ease application development and maintenance, but one that gets my interest really going is its dynamic language support.

codehaus: Dynamic language beans in Spring

codehaus: Groovy and JMX

raible designs: Using Dynamic Languages with Spring with Rod Johnson and Guillaume LaForge

organic thoughts: Spring Meets Groovy!

“the 110 AC outlet”

There’s a good piece in the NYTimes on cloud computing for the uninitiated: Cloud Computing: So You Don’t Have to Stand Still

Traditional companies are also beginning to adapt their computing infrastructure to the cloud. Reuven Cohen is founder and chief technologist at Enomaly, a software firm in Etobicoke, Ontario, that helps companies do just that. While most of its clients are technology businesses, Mr. Cohen says Enomaly is working with a New York-based bank that uses cloud computing to develop and test applications. He says that another customer is a large media business that uses the cloud to process video.

He sees this kind of need-driven use as a “fundamental change in how we manage technology.”

In fact, cloud computing is poised to do for technology what the electrical grid did for power, says Nicholas Carr, author of “The Big Switch,” which compares the rise of the cloud to the rise of electric utilities. The electrical grid streamlined operations for companies; when every home had cheap power and outlets, “you had incredible innovation in how to put all that cheap power to use,” Mr. Carr says. He thinks that cloud computing will prompt a similar cycle over the next decade.

There are practical problems that could turn the cloud into a thunderhead. The technology is still emerging: Amazon’s Simple Storage Service (S3) went offline for a couple of hours in February.

Peter O’Kelly, an analyst at the Burton Group, a technology research firm, says he thinks that many established companies will not save money by moving to the cloud. And Alistair Croll, a partner at Bitcurrent, a consulting firm that specializes in Web and cloud technologies, says companies will not be able to put data willy-nilly into the cloud because of security concerns.

At the same time, Mr. Croll says the cloud is here to stay. “The Web has become the interface” for computing, “the 110 AC outlet,” he says. That is a fundamental shift that could power a new cycle of technological innovation.

Using Disk to Scale

One of the largest concerns when developing an infrastructure for a site as large as Comcast.net is determining smart ways to scale. By smart, I mean requiring the least amount of effort to launch new channels or services. Each new channel or page can draw thousands, if not millions of page views. You need to plan for it.

When growing Cofax at Knight Ridder, we hit a nasty bump in the road after adding our 17th newspaper to the system. Performance wasn’t what it used to be and there were times when services were unresponsive.

A project was started to resolve the issue, to look for ‘the smoking gun’. The thought being that the database, being as well designed as it was, could not be of issue, even with our classic symptom being rapidly growing numbers of db connections right before a crash. So we concentrated on optimizing the application stack.

I disagreed and waged a number of arguments that it was our database that needed attention. We first needed to tune queries and indexes, and be willing to, if required, pre-calculate data upon writes and avoid joins by developing a set of denormalized tables. It was a hard pill for me to swallow since I was the original database designer. Turned out it was harder for everyone else! Consultants were called in. They declared the db design to be just right – that the problem must have been the application.

After two months of the team pushing numerous releases thought to resolve the issue, to no avail, we came back to my original arguments. The terrific thing was that restructuring the database was a no pain affair – we had a terrific service layer between the main web tier and the db that hid its schema. We were able to deliver a release of the database that did not require any code changes on the web tier.

There is no silver bullet here, for smaller sites you are adding a great degree of complexity taking this route and it is, most likely, not advisable. However, if you have a large site that is thrashing – dealing with the demands of growth – take a hard look.

Related – and supporting of this:

High Scalability: “How I Learned to Stop Worrying and Love Using a Lot of Disk Space to Scale”.

High Scalability: Scaling Secret #2: Denormalizing Your Way to Speed and Profit

Dare Obasanjo: When Not to Normalize your SQL Database

Java Application Servers Without J2EE

infoq: SpringSource Launches New Application Server without Java EE

SpringSource Team Blog: Introducing the SpringSource Application Platform

SpringSource: http://www.springsource.com/web/guest/products/suite/applicationplatform”>SpringSource Application Platform

Not directly related at all, but has everything to do with it:

The Daily Profeth: Google App Engine & eclipse (PyDev) – a nice getting started guide.

Got my Mac Book Pro at work

Many of us at work are migrating to OS-X. It’s logical since our deployment environment is a Unix variant, Solaris, and most of us on Windows run Cygwin to create a developer environment that resembles a Unix-like environment.

Now I’m not a stranger to OS-X. I’ve been convincing my family to switch for the past four years and now they mostly run iBooks and Mac Books, decreasing the time I used to spend helping fix problems. Fact of the matter is, if you are using a PC mostly to send email, surf the web, manage photos and video, it is a great all round choice.

The irony is that within minutes of getting my laptop I froze it! Turns out it isn’t all that smart to run Parallels, out of the box, the way I did, and run, oh, 8 or so programs simultaneously outside of it!

Anyways, in less than an hour I had my favorite web browser, Firefox, my organizer, Wikidpad (which required me to run it from the Python source – but it worked!), my encryption software TrueCrypt (Edit: TrueCrypt development was discontinued, see the link for background and alteratives), my IDE of choice Eclipse, my favorite OS-X free text editor, TextWrangler, all up and running. With Maven, SVN, Java and Python pre-installed made it easy to checkout my current work and get a build going. I won’t be needing Parallels all that much since so much of the work I do can be done in OS-X, but it will be convenient to be able to test websites in different browsers, on two of the three primary desktop OSes, with little effort.

I Upgraded to Movable Type 4.1 Open Source

I’m happy I finally got around to upgrading my personal blog to the latest and greatest Movable Type. It’s clear that open sourcing the software has been good for SixApart and that MT can again be considered a viable alternative to other blogging platforms like WordPress.

People at work like to ask me what blogging platform ‘is the best’. Honestly, after working with so many over the years, I have trouble identifying that. Feature for feature, you can make one do what the other does.

Someday I’ll put together a matrix that highlights the real differentiators as far as I am concerned, but I do have a shortlist I can share if I was doing a project as a consultant: Drupal, Movable Type, WordPress, and rolling something new with Django.

MT has a new beta release coming out with a few features I am looking forward to.