Wednesday, December 16, 2009

Composability as a way to control Complexity

I came across this great video of a conversation with Brian Beckman on Complexity in computing, on MSDN's Channel 9.

In that video Brian Beckman compares Inherent or Essential complexity (of the problem you, programmer, are trying to solve) and Accidental complexity (not inherent in the initial problem, but introduced by the many technologies and programming languages you have to use for example.)

He also introduces Functional Programming, how it limits the ways to hook things together and dependencies on the context in which software components executes, and how that makes it much easier to compose complex systems out of small building blocks.

In summary, Composability is the way to control Complexity, and functional programs are easier to compose.

Monday, November 30, 2009

Reading list - Elements of Programming

I just finished a fun book on the mathematical foundations of programming: Elements of Programming by Alexander Stepanov and Paul McJones.

I highly recommend this book if you're interested in a deeper understanding of programming or looking for principles to decompose software into components.

Monday, November 23, 2009

Connecting to WPA2 networks with Ubuntu 9.10

Upgrading to Ubuntu 9.10 / Karmic broke my Wireless connection. I can connect to open networks but with hidden WPA2 networks the Network Manager Connect button is always disabled...

Looks like others are running into that bug too: A fix has been committed in the Gnome repository, but there's no official installable package for it yet.

If you're impatient like me and need the fix now, here's how to build it:

Thursday, November 19, 2009

Scratch - Programming and Component Assembly for All

Scratch makes the cover story of the November issue of the Communications of the ACM. The whole article is available on the MIT site here and the ACM site there.

Here's an overview of Scratch, from their web site:

Wednesday, November 18, 2009

Simpler than JSON?

With XML falling out of fashion, JSON is all the rage these days.

The last few years we've been using a simple online store application to demo application composition with SCA. That store app allows you to pick fruits and vegetables out of a catalog and put them in your shopping cart.

There's versions of the store app in different languages, Java, Python, and an HTML+JavaScript client in the Apache Tuscany project, and more languages to come over time. The shopping cart is currently represented in XML in an ATOM feed.

I've been wondering... Should we switch from XML to JSON? Is JSON simpler? Is the JavaScript syntax so great? Any alternatives? Let's try and compare different representations of our shopping cart:

Sunday, November 1, 2009

ApacheCon US 2009 - Apache is 10 years old

ApacheCon US 2009 returns to the San Francisco bay area, considered to be the original 'home' of the Apache Software Foundation.

The conference starts on Monday in Oakland, and will celebrate the 10th anniversary of the Apache Software Foundation.

Details are available there, including free Hackathon and BarCamp events on Monday and Tuesday.  If you're going, don't miss the Apache Tuscany track:

Wednesday, August 26, 2009

Recovering JPEG images from a damaged compact flash card

I've started to blog again...

I've not been lucky with data storage devices recently.

Last week my Thinkpad crashed. The disk got shredded into pieces under the Linux /lost+found directory. I had to crawl through it for two days to manually recover some of the files I cared about.

A few weeks ago the compact flash card in my digital camera got damaged too, giving me a "This card cannot be used" error message. I had two 2 GB of JPEG images on that card: family photos that I didn't want to lose! After reading the troubleshooting section of my Nikon's user manual I was almost ready to buy some expensive recovery software, or ship my card to a company that recovers images, when I thought:

The postings on this site are my own and don’t necessarily represent positions, strategies or opinions of my employer IBM.