General Development

PureMVC

August 13th, 2008

Cross-language implementation of the MVC meta-pattern - PureMVC. Supported languages:

  • ActionScript 2
  • ActionScript 3
  • C#
  • ColdFusion
  • haXe
  • Java
  • Perl
  • PHP
  • Python
  • Ruby

The Plank

August 1st, 2008

Christer Ericson in Design patterns are from hell says:

The “Design Patterns” book is one of the worst programming books ever. Yes, really. I’m 100% dead serious when I say that I think it has set (and will continue to set) the progress of software development back by decades. Why?! Let me offer up a parable; I will call it “The Plank.”

Creating tech marvels out of a $40 Wii Remote

June 30th, 2008

Building sophisticated educational tools out of cheap parts, Johnny Lee demos his cool Wii Remote hacks, which turn the $40 video game controller into a digital whiteboard, a touchscreen and a head-mounted 3-D viewer.

to read more about Johnny Lee, visit his website

Financial and Holiday Calendars

April 4th, 2008

Anyone working in the financial industry building applications should know about FinancialCalendar.com.  In addition to providing a useful set of data, they understand that holidays are real-time data and treat it accordingly.

(Thanks to Marc Jacobs for the pointer)

Not-So-Hidden Latency

March 19th, 2008

I had a meeting this morning with Al Moore, one of the founders of Fixnetix, a provider of ultra low latency market data and connectivity. It immediately brought to mind a conversation I had with Tom Groenfeldt earlier this week about hidden latency. It continues to baffle me when financial institutions will spend millions shaving microseconds off of their data handling processes by optimizing their code and implementing CEP solutions, and then, after all is said and done, they’ll take this newly optimized codebase and hook it up to something like Reuters to receive their data, which itself has a latency that is milliseconds more than a low-latency data provider. Why not pocket that money, save those man hours and just switch data providers? Or better yet, do both?

It’s a classic case of not seeing the forest for the trees. Optimizing a system requires looking at the entire system - not just diving into a piece of it. You might very well shave more latency off of your architecture by changing data providers or removing that one extra switch from your network architecture than spending man-years optimizing your event processing software. Financial institutions need to remember to focus on the not-so-hidden latency before diving into a search for hidden latency.

CUDA: GPU architecture for NVidia cards

February 4th, 2008

This morning fellow 49′er Doug and I spoke with a colleague in Citibank who spent friday at an absolutely free boot camp for NVidias GPU development architecture. Wish we’d known about it beforehand, if nothing else for the free lunch. :)

There’s a lot of activity around building development architectures to take advantage of the compute power on Graphics Processing Units. Read the rest of this entry »

What’s the opposite of Functional Programming?

January 30th, 2008

… Dysfunctional Programming? Alright it’s just a joke, no mailbombs please.

I do think that it’s fair to say that our industry has gradually grown more and more impatient with side-effect-driven programming models. That’s not to say that classical OO-designs will all be failures, they can and do succeed often enough — successes being directly proportional to the project’s unit-testing commitment. I think the power of coupling state with logic slides into hopelessly error prone apps a lot sooner than most of us expect. Read the rest of this entry »

A Pocket Scene Editor

January 20th, 2008

Scene EditorI’ve made some updates to this project since I last wrote about it.

I added basic perspective-correct texture mapping (the image to the left shows the Lab49 logo mapped onto two Bézier patches, a triangle, and very awkwardly onto a cube).  I also created a very simple scene editor, which lets you add new objects (triangles, cubes or patches) to the scene and move/rotate/scale them in the YZ, XY or XZ planes.

For a straightforward (unoptimized) software renderer, it runs pretty well on my Pocket PC.  If you’d like to test it without going through the trouble of checking out the project and compiling it, you can get the binary for a Pocket PC with an ARM processor here:

editor.exe (176 KB)

Read the rest of this entry »

Top 5 Predictions for 2008 - Network World podcast

January 14th, 2008

Network World recently interviewed me for their "Prediction Week" podcast series:

As part of our Prediction Week of podcasts, we talk with Daniel Chait from Lab49 (pictured) about the top trends in Web application, development and outsourcing for 2008. Find out whether this year will be the SOA Hangover, and how offshoring will change during the year (18:37).

Listen to the podcast here.

code.lab49.com

September 29th, 2007

Lab49 has created a public repository for open source software projects.

I have a few projects up that I’d like to tell you about.
Read the rest of this entry »

WM_UNDO vs EM_UNDO

September 11th, 2007

I was wondering - what’s the reason for some messages being prefixed with WM_ and others with EM_ ? The logic is opaque to me (especially looking at things like EM_UNDO vs. WM_UNDO).

Asked (over two years ago!) and answered.

Thanks Raymond!

Measuring Visual Clutter

August 22nd, 2007

Visual clutter is a huge problem in GUI design, in which the architect needs to balance the desire to have all information immediately available to the the user, with the need to enable the user to make sense of that information. The aesthetic of minimalism often falls victim as the designer acquiesces to the many competing demands of a project, resulting what I call the “Las Vegas School of Design” - a myriad of colours, shapes and sounds, rendering the user completely insensate.

Ruth Rosenholtz proposes several measures of Visual Clutter, the most practical of which is to compress the image in question using JPEG2000 - the smaller the resulting file, the less clutter.

JPEG2000 compression never really took off, but you can get JPEG2000 compression using the OpenJPEG or JasPer libraries. GraphicsMagick provides commandline access to the JasPer library.

A colleague of mine once proposed disinvesting in companies based on the clutter found on their home page - an unfocused company would tend to have a homepage beholden to too many competing interests within the company, resulting in a homepage populated with too many grabs for the users attention. Would be an interesting excersise to track measures of homepage visual clutter versus stock price.

Test your Information Graphics IQ

August 20th, 2007

Take this 10 question quiz (via Sean’s Idea Kitchen).

Note that although Perceptual Edge refers to this as a Graphic Design IQ test, it’s more properly considered an Information Graphics or Data Visualization IQ Test. And though it doesn’t name these explicitly, it basically provides guidance such as:

  1. Bar Graphs are better than Pie Charts for comparison
  2. 2-d Line Graphs are clearer than 3-d Line Graphs
  3. Eliminate Chartjunk
  4. Line Graphs are better than Bar Graphs for showing trends in data over time

etc. In short, nothing a devoted reader of Edward Tufte wouldn’t already know, but helpful nonetheless to see once again in a fresh way.

Go Erlang!

August 10th, 2007

Here is a gushing post on the future of Erlang by one of the GOF, Ralph Johnson.
 

Beautiful Code

August 7th, 2007

I just finished reading this book, a collection of essays by developers. It’s a mixed bag; some of the essays are a lot better than others, and some of the code is, to my eye, not that beautiful at all. That being said, there are some really great ones in there too, and it is nice to see so many different personal styles and approaches collected together.

VS49

July 20th, 2007

If you can’t work with us, work like us.

Scheme editor and REPL session

Details inside …
Read the rest of this entry »

Declarative programming - have we gone too far?

July 7th, 2007

For some time I’ve been planning to write a blog entry highlighting the problems that can occur when declarative programming is taken to an extreme (I’m thinking about Spring here). What prompted me to actually write it was this post which conveyed my feeling, if not my exact technical point:

http://nutrun.com/weblog/no-more-jars/
Read the rest of this entry »

On Being Easy To Work With

June 28th, 2007

Here at Lab49 the founders take pride in the fact that as a company we are very easy to work with. Being easy to work with is an important dimension for measuring potential technology vendors that is often overlooked. Recently I have been working with quite a few vendor products and one particular experience has reminded me of the importance of of this critical dimension.

Read the rest of this entry »

Documents, Operating Systems and the PoSH Provider Model

June 19th, 2007

A few years ago in the course of writing the XSLT Cookbook (shameless plug) I was naturally working with XML quite heavily. When you work with a particular technology heavily you begin to look at other problems through the eyes of that technology. Sometimes this can lead to new insights and other times it can lead to the old when-all-you-have-is-a-hammer syndrome. I’ll let you judge which case my particular experience falls into.

XML is, of course, just a syntax (surface structure) for a more general Document Object Model or DOM (deep structure). The W3C DOM specification is not the most elegant of APIs (further evidence of the problems with design-by-committee); however, here I am talking about Document Models in the more general sense of uniform hierarchical models of structured data.

Read the rest of this entry »

Ruby NYC talks available online

May 13th, 2007

Last week I attended the Ruby NYC get-together (Doug blogged about it) - the talks from that night including Luke Melia on Ruby.NET and Tatum’s talk on Erlang are up at MotionBox. Worth a watch if you’re into that sort of thing.