Mathias Brandewinder on .NET, F#, VSTO and Excel development, and quantitative analysis / machine learning.
by Mathias 16. April 2009 18:55

Now that I have the core functionality in for the “Blue Lobster” project, it’s time for some optimization. Part of the application revolves in displaying the contents of an Excel worksheet, which I implemented populating a Grid control. One issue which was bugging me was that displaying large amounts of data was somewhat slow. My “large” test Excel worksheet is roughly 200 rows by 200 columns, which doesn’t seem like much, until you realize that these are 40,000 cells. Each of these cells was initially represented as a CellView, a simple WPF home-made control.

My initial thought was that the source of the problem was in multiple resizing of UI elements, but when I ran the profiler, it turned out that most of the time was actually spent instantiating each instance of the CellView control. I am still not sure what made my control so costly to instantiate, but I replaced it by a standard CheckBox, using Templates and Triggers to adapt its appearance, and voila! The time went down from 1 minute 15 seconds to under 30 seconds.

The moral of the story:

1) When optimizing, don’t trust your instinct, trust the profiler.

2) Instantiating a WPF user-defined control is not necessarily lightweight.

3) Before creating your own, try to use an existing control and modify its look through templates.

by Mathias 14. April 2009 16:17

I have been working on my first own application since a few weeks, and it is taking good shape; a first version should be available for willing testers soon. But as technical issues get resolved, I move into more unchartered territory. Should it be open-source, or proprietary? Should I trademark anything? And… how should it be called?

The current code name for the project, “Blue Lobster”, isn’t quite right for a serious professional application. My initial thought was “Akin”, as in “essentially similar, related, or compatible”, and I was pleased to find out that no piece of software with a similar name was listed in the US patent and Trademark database. Alas, Google wasn’t quite as lenient, and the search query “akin + software” yielded quite a trove, including enterprise resource planning systems and a Christian verse reminder system, “For those of you out there that are trying to memorize bible verses”. I don’t think we are direct competitors, but I would still prefer to have a unique, distinctive name for my application, if such a thing is possible in the Google age. I think I found it today – some more Googling, a few more bug fixes, and the alpha-release should be out by May first!

by Mathias 30. March 2009 10:06

Among my new year resolutions, I vowed to have a working version of my first application by the end of the first quarter 2009. Fortunately, I have had plenty of consulting work recently, but as a result, finding time for the “Blue Lobster” project has been tricky. In the end, it may have been a blessing in disguise, because it forced me to narrow down the scope to the essential features – and I made it: “Blue Lobster” version 0.1.0 was ready on March 29th. It is a working proof-of-concept; it’s also my first pure WPF project (the M-V-VM workshop came in very handy), and I am very proud of it!

(picture by Adam Field)

My next target is to release by end-April a beta to a few selected testers, get feedback and fine-tune it before the grand opening. I don’t want to talk too much until the legal stuff is in order, so until then, the project will be known as “Blue Lobster” (and yes, there is a reason for that name other than the incredible coolness of blue lobsters), and the only thing I will say is that if you work with Excel files, have version control issues, use a PC, and would be interested in being a beta tester, you are encouraged to shoot an email to


Comment RSS