Performance shock while developing

December 26th, 2009

Few months ago I improved the performance of Denoise’s algorithm by incorporating a Grand Central technology of Mac OS X 10.6 Snow Leopard. All that in the development version which is coming out soon.

As I already wrote in previous post the improvement is marginal – on dual core Mac denoising images is double as fast as in the current version.

As I’m developing Denoise further this week, I was doing lots of denoising, and noticed that it kinda takes too long. As my test images are pretty small to make testing fast during development, the performance slowdown was not easy to spot, but there was that feeling, you know, that something’s not right.

So I started to test, measure, and compare with the version 1.0.

You can’t image how I felt after I figured out that the new algorithm is only around 5% faster. I tried with various images, and nearly always it was just a little improvement. I didn’t understand it. I stopped believing in myself – in work I’ve done months ago. I thought maybe it’s the Snow Leopard update that slowed down something. I was checking the CPU usage in Activity Monitor application, and could clearly see that old version uses only one CPU’s core, the new one both of them. Why the heck is the improvement in processing time so slow ? What was I smoking in the past when I implemented all this ?

It took me maybe two hours to figure out what’s wrong. I was comparing the release version of version 1.0 with debug version of the new 2.0 version. Debugging versions are half as fast as the release ones. At least in my case.

I was relieved, but I’ll never forget those frightening moments of comparing bulls and cows.

Update

December 6th, 2009

I didn’t post any updates to this blog neither to Denoise for a year and half. I had a couple of personal issues causing no time for developing. Despite of that Denoise enjoyed a bunch of sales during that time, and this way I want to thank all the customers, and people who wrote me about trying the software and their experiences with it. Even when not developing Denoise further I was trying to give the best support and help on time.

Around the time of Snow Leopard release I’ve found the time and got back on developing the next version of Denoise. It’s slowly progressing, getting new features. I don’t want to promise any release dates neither the features that are not finished yet, but to wet your appetite I can tell you that denoising is going to be much faster – employing the Grand Central Dispatch technology thus using all the cores of your Macs. On my dual-core Macbook the processing time drops to half, so it is really that efficient. This makes Denoise 2.0 to require Snow Leopard and an Intel Mac.

Not to forget – the update will be free for all existing customers.

First week

May 7th, 2008

Today we’re a week older and wiser. It’s been a superb week here at Banana Bee. Denoise spawned some interest, got few reviews on the web, and was downloaded a magnitude more times as I expected. I got valuable feedback, supportive words, even a bug report on which I’m working to fix. The sales are also slowly coming, which is a good sign.

I want to thank you all for this. You are the most important part of this journey.

Customers. Testers. prMac. Slicehost. eSellerate. MacSB group. Apple. And, the most important, my family.

Thank you.

Denoise 1.0 released

April 30th, 2008

Today marks the date of the first release of Denoise, a product I’ve been working on through past months. It’s a small Mac application implementing a denoising algorithm for images – photos and scans.

I’m very enthusiastic about the release, I was anticipating to show what I’ve already done to a larger audience, and discuss the future direction. The development before reaching 1.0 was a lonely one, something I’m not used to from my previous career where development is based on concrete user’s needs. Development of new product is very different in this regard, everything is based on a guess – that there are people with the same taste as me and they are willing to become my customers.

Denoise is a result of my own need. I once had a grainy photo. I liked the photo so much that I wanted to improve its quality. I found some programs that promised help, but testing them didn’t bring me anywhere. I either didn’t understand their interface, or I was not happy with the result. Then I stumbled upon the GREYCstoration, a freely described algorithm and an open-source implementation for Linux. Thanks to Mac’s Unix underpinnings I got it running on my Mac in few hours, and was surprised by the result. Using command line utility for imaging was no fun, but I got the result I wished for.

I didn’t start to develop Denoise at that time. That came much later when I brainstormed the ideas on what I want to develop for a Mac. Having an application for easy denoising of photos makes so much sense. So I went ahead and started implementing the algorithm my way. Some parts I’ve done using Core Image – the powerful image-processing technology on a Mac, other parts are optimized for execution on velocity engine of PowerPC or SSE instructions on Intel processors. All that to make the complex process of denoising as fast as possible. On top of that I created a Mac user interface using the Cocoa framework.

Actually, I planned Denoise 1.0 to have more features and richer user interface. But pretty soon in the development I missed the feedback, and got the need to have it out as soon as possible. I cut few features, made few shortcuts, and simply released.

Today the site is up, Denoise is available for download, press release is out, I’m excited about me becoming Indie, and looking forward to continue Denoise’s development.

Denoise mentioned for the first time

October 13th, 2007

Magic is in the detail. I’m still getting surprised at how many things have to be thinked of when releasing software.

Today I had a surprise after I found out (thanks analytics) that a slovak macblog wrote a note about Denoise. On one side I’m really pleased about the published article, especially as it is very positive, on the other side I realized my mistake not saying clearly on the website that Denoise is shareware and not free software, as author of the article suggested.

So I went ahead and added a note on the web saying clearly that Denoise is shareware.

Another problem I’ve found is how I count download statistics. I use google analytics, and I also track clicks on download links using javascript function to send notification to analytics. I let details about statistics for another blog post, what I want to mention today is that I don’t get any numbers from download links not being located on my website – for example direct downloads from mentioned article.

So another small job I did today is enabling apache to log requests to my web sites.