Archive for October 2007

Working on new CaptionIt! features

October 27, 2007

CaptionIt! is making steady progress on the sales front. Making enough to support my sushi habit at least. It is interesting to see the ebb and flow of visitors and sales. Some days see a lot of traffic and downloads, and other days barely a peep.

I’ve been hard at work improving and reworking the CaptionIt! interface. The next update, which I am estimating at a mid-November release, will add a Microsoft Powerpoint style interface that lets you drag and drop captions on your image. This is a much more natural and intuitive model than the fixed caption placement system in the current version. I’m also adding an exciting feature which I think users will really enjoy. I’ll have more to share once I have some images to go with it.

Changing the interface to an existing program is always a tricky thing. Users grow accustomed to using software a certain way, and can find it confusing or irritating to have things changed on them. In my case I think revising CaptionIt!’s interface is worth it since being able to manually drag a caption around on a picture is a very natural way to position it.


How to Stay Focused on Your Project

October 18, 2007

I made an interesting observation the other day. I had a couple hours to kill before picking up my wife from class so I stopped at a Borders bookstore to browse the latest tech books and work on the next update to CaptionIt! I swung by the cafe section, ordered a latte and fired up my MacBook Pro to do some coding. Borders does not offer free WiFi, instead they force you to sign up for T-mobile. Lame and definitely not worth it for the couple hours I was going to be there.

Not having Internet access was incredibly productive! I entered what is known as a state of ‘Flow’, defined by wikipedia as “…the mental state of operation in which the person is fully immersed in what he or she is doing, characterized by a feeling of energized focus, full involvement, and success in the process of the activity.” The two hours flew by and I had gotten a lot done.

Having easy internet access is just too distracting and makes it difficult to stay focused. My current rule now is to close all web browser and email programs for at least an hour when I want to work on my project. If I have to look something up online, I fire up the browser, find the answer and quickly shut down the browser. I do not leave it open, tantilizing me with Youtube videos or worse. Give it a try!

Using Java for a shareware application

October 5, 2007

I recently posted a question on the Joel on Software forum asking what others experiences have been when using Java as the implementation platform for their shareware application. See the post here .

To deploy a Java desktop application on a customer’s computer requires that they have the Java Runtime Environment (JRE) installed. The JRE is certainly not as widespread as some other platforms, for example the Flash plug-in which everyone needs to check out the latest YouTube video. Every time you add a step to a potential customer’s shareware installation, you set up a barrier, or at least a speed bump between customer and your software. In this case, the speed bump involves downloading an additional 14MB for the JRE. This may not be too bad in the age of widespread broadband, but it then walks the user through a wizard asking them to make certain choices. If the user balks at any of these steps and cancels, you’re sunk. However, my current product, CaptionIt!, pays the same runtime tax except to Microsoft since it uses the .NET 2.0 framework and that’s a beefy 23MB download. This has caused far fewer problems than I expected, so I believe the same will hold true for a Java based app.

Several people also felt that Java GUI’s don’t perform well or don’t look as good as native GUI’s. Java has fought a torturous uphill battle to shake this image, and I suspect it may never truly succeed. The initial Java 1.0.2 release came with a GUI library known as the Abstract Windowing Toolkit or AWT. This AWT, it was not so good. Both from an API perspective as well as interface experience, it had very poor performance and was very difficult to work with. As they say, you never get a second chance to make a first impression. So now, more than 10 years later, people still complain about Java GUI’s being to slow and ugly. The reality, and I speak as someone who has cranked out Java Swing apps for the last 6 years is that they are now quite snappy, use hardware-accelerated operations for drawing, and can look pretty slick with some tweaks here and there.

Probably one of the most convincing things mentioned was that with minimal effort, your app can run on Windows/Mac/Linux. Now the Windows user base may be far larger than the other 2, but why artificially limit yourself? I suspect that for next product I will have to think long and hard about moving to Java.

First Sale!

October 3, 2007

I just learned that I received my first sale as I was sleeping last night. It truly is an amazing feeling to wake up to money magically entering your PayPal account. But more importantly, that someone out there felt you had created something of value to them that they were willing to part with their hard-earned cash for. Maybe the weakened dollar helped since it was a foreign sale!

Having worked in a corporate software environment for a long time, it is very easy to be insulated from the users that your software ultimately makes contact with. For example, if your code happens to be the middleware that talks to the backend database, or the well-crafted web service to kick off some process, you may have so many degrees of separation from real users that you don’t really get a sense if you are making their lives easier. If anything, the feedback is mostly negative since you get a stream of bug reports, but not much in gratitude or encouragement.

MicroISV’s invert this since you don’t have any corporate walls or layers of QA to hide behind. On the other hand, each sale goes straight to your bottom line!