Dennis Forbes on Pragmatic Software Development
Subscribe to RSS
 
Tuesday, February 21 2006

As a software developer, I'm generally drawn to complexity, and I generally view "hard" problems as much more worthwhile, from a business perspective, than easy problems.

For instance I never considered many of the "successful" .COM-type ideas as worthwhile, and I naturally feel the same about many of those percolating up via Bubble 2.0, because they either seemed too obvious, or too easily duplicated (aside from the fact that most of them haven't a hope in heck of ever having a sustainable revenue model...but that's beside the point -- If you can get Yahoo or Google to buy you out with big dollars, it doesn't matter if your flighty userbase would never pay a penny, and that they would never tolerate a single ad impression).

IMG_3824

As such I discarded a lot of "neat ideas", only to see them bring success to someone else. I was keeping my eye out for something both unique and difficult.

Yet often it's the simplest of things that hold the most value to people.

Just over a year ago, late December 2004, I was working on some custom C++ JPEG parsing logic (scary pointers and all), and noticed that some of my test files were bloated up with a lot of extraneous data. We're talking 4KB JPEGs that had an extra 60KB+ of data appended to them. Apart from EXIF data -- useful at times, but completely irrelevant at other times -- Adobe Photoshop was particularly notorious for stuffing files full of worthless application blocks.

Many of the images you find on the web have all of this extraneous info, slowing transfer times, increasing server loads, hiking bandwidth bills, causing pestilence and suffering (okay I'm going a little overboard).

As such, I gathered up a ridiculously small amount of the parsing code, compiled it, and "released" it as the rashly named PureJPEG. I expected it would see maybe a dozen downloads from nitpicking webmaster looking to ultra-optimize their user's experience.

Over the past year, over 40,000 people have downloaded this utility directly from yafla. It's been mirrored on quite a few sites (particularly in Russia, for some reason), so I have no idea how many worldwide have downloaded it, but presumably a greater number still.

I would have never imagined that something so simple would have filled such a niche, and I'm a little embarrassed about how trivial of a micro-project it really was, but there it is. As far as little utilities go, it's been a stunning success.

Reader Comments

You mispelled "discarded" in paragraph 3, if ya care. ;-)

Great article! I think that's why alpha -geeks aren't always great entrepreneurs. They get joy out of complexity oftentimes rather than simplicity (which is what a lot of problems demand).

This is why 37signals gets so much buzz. Killer geeks (it seems) who happen to be simplicity-nuts.
Tony Wright @ 2/21/2006 6:13:19 PM
Thanks for the comment good sir! Indeed, that "discarted" was an odd typo that I thought I fixed _3_ times. Then I'd go to look at the page, and again it had a t instead of a d. Very odd.
Dennis Forbes @ 2/21/2006 6:37:06 PM
Any chance of a Linux version?
@ 2/21/2006 9:39:05 PM
You don't need a Linux version,

jpegtran -copy none old.jpg > new.jpg

does exactly that.
@ 2/22/2006 6:21:18 AM
Hello there ""!

PureJPEG relies heavily on Windows-specific API calls (for overlapped I/O, for instance) to maximize performance.

In any case, there are a number of alternatives available, jhead being a commonly referenced cross-platform one. I chose to still develop the laughably trivial purejpeg for performance reasons, as well as to pursue command line usability goals (e.g. I wanted it to work a distinct way. The code is a joke, so I wasn't going to start with an overly large and generic open source library for this trivial feature).
Dennis Forbes @ 2/22/2006 7:09:56 AM
The geek in me loves that little app, the simplicity and the usefulness.

The MicroISV in me winces at something so popular being free :-)

If I was you...

... I would do a paid pro version, with an interface, a preview of the filesize difference, a list of the ascii based data that is removed etc etc ... companies don't mind paying for tools, companies create websites...
James @ 2/22/2006 1:40:12 PM
You're absolutely right. Sometimes it's just the simple things that people need. In my case, I wanted a small online notepad. Just something convenient to keep track of stuff (like todo lists) between home and school. So, I finally wrote a small application, interfaced it through the google personalized homepage modules, and I got exactly what I wanted. I then released it to the world just three weeks ago, and there's already hundreds of users.

The nice thing is, it is as simple as it gets. No fancy formatting, rich-text, auto-hyperlinks or nothing. Not even a save button. Just edit and go... If you want to check it out, just do a search for "Google Notes"
David Hoelscher @ 2/23/2006 1:27:46 AM

Add Comment

Name *:

Email Address:

(your email address is not displayed)
Website:

Comment *:


Dennis Forbes - Dennis Forbes is a Toronto-based software architect and technology writer