Tuesday, August 29, 2006

FeedJournal Voting - Last Chance

Last chance to vote for FeedJournal in Made In Express Contest! Anyone is free to vote and the booths will close on September 1st!

Thank you for your support.

Thursday, August 17, 2006

FeedJournal Database Decisions

Chris Pirillo has something to say about the Made In Express Contest. Considering he is one of the judges in the contest, I am definitely listening. This is his verdict about my own entry, FeedJournal:

Still has a long way to go, but I'd say that sample output is quite nifty. The only thing that keeps me from installing and recommending the app wholeheartedly is the need to install SQL Server 2005 Express Edition first - which I'm not going to do on my desktop. Suggestion: push forward with this one, but rely on something else for feed information storage (sorry, but installing SQL is overkill for users like myself).

Considering his overall harsh judgment of the projects I consider this pretty favorable, and indeed he goes on to mention FeedJournal as one of his four favorite entries. However, let's consider his criticism for a moment. The SQL Server 2005 Express Edition is a required component in the contest as long as you want to have a database. FeedJournal definitely needs one. Here is a section from the contest rules:

Submitted Projects must compile successfully in Visual Studio 2005 Express Editions (any edition), and use SQL Server 2005 (any edition) for any database storage or data access code.

Of course Mr Pirillo is spot on in his criticism, and the database issue does not come as any surprise to me. The fact is that the required runtime for SQL Server Express Edition is 55MB, 10 times larger than the setup files for the actual FeedJournal application! I already touched upon this in a previous blog entry where I considered using SQL Server Everywhere Edition.

The good news is that there is already a solution to the problem! FeedJournal is using a database wrapper class, making it trivial to switch database engines. Since the start of the development I have been secretly working on a separate configuration using the open-source System.Data.SQLite database. Compared with SQL Server's 55MB runtime, SQLite weighs in at a mere 400kb using a single DLL file. w00t!! Sure, SQLite offers less design time support from inside Visual Studio, but it is a small price to pay in comparison.

FeedJournal versions using SQLite are fully functional and has been running in my personal test environment all the time. These will be released for beta testing in a few weeks time, most likely after the contest ends in order to abide by the rules.

Wednesday, August 16, 2006

FeedJournal v1.0 and Contest Voting

In Made In Express Contest it is now up to the public to vote for the project they like best. FeedJournal is one out of the 11 projects you can vote for. Please make a visit and choose your favorite!

This also implies that you can finally download FeedJournal v1.0 from the the Made In Express link above. Despite the name it is a beta test version, while I am continuing to work on v2.0. Visit feedjournal.com for more information.

Sunday, August 6, 2006

Contest Deadline for FeedJournal

The time has come to let go of FeedJournal v1.0. I have been working on it for months and thinking about it for even longer. Without the definite contest deadline hanging over me, I think it would have been difficult for me to resist adding more features before publicizing it. But, in the end it's for the better. FeedJournal needs to get out there and get some real-world testing before it can mature into higher versions with a larger feature set.

I definitely don't see this contest submission as the end of the line for FeedJournal, more like a baby's first steps. I choose to look at this version as a public beta test. Although v1.0 has been thoroughly tested I have decided to let it expire on October 1st, forcing users to upgrade to a higher version. Much like a beta or release candidate would work.

The time has also come for me to sum up the experience of having competed in Made In Express Contest.

Sometimes I have felt isolated, that I don't have any cubicle neighbors or managers to discuss design choices or feature priorities with. Then I realize that there are huge numbers of other single developers out there doing the same thing, 12 of us happen to be in this contest. And if we want to break our isolation we can, help is always just a forum post, instant message or email away. And I choose to see it as a challenge, that we have responsibility for all the implementation choices, design decisions and even marketing options. A challenge which is there to empower us as providers of a service or application.

Sometimes I have been feeling that time was not enough. Who are these people at Microsoft letting us run like crazy implementing these projects in just a couple of months? Do they get a kick out of seeing us burning the midnight oil? Well, even though I am sure it has been a hectic summer for the whole dozen of us finalists, seeing it coming to an end now I just want to keep on running. To keep pushing out more features and squashing bugs. The contest deadline has forced me to set up an infrastructure for publishing an installation program, finishing the help text and generally smoothing the rough edges. All of this means that I can take v1.0 and start pushing out upgrades if there is an interest out there. And from what I have seen in the blogosphere, there is.

No matter how tough it has been for the last months, one thing is for sure: it has been a blast! Good luck to all of us in the contest! Both regarding the judges' verdict and the future life of our projects.

The deadline for the contest is tonight (6th) at midnight, and the submissions should become available on Microsoft's contest site shortly thereafter. I will post a link on this blog as soon as I have more information.

Friday, August 4, 2006

SQL Server Everywhere Edition Requirements

The Community Technology Preview (CTP) of Microsoft SQL Server 2005 Everywhere Edition requires Windows XP SP2 or Windows Vista. If Windows 2000 is unsupported I will have to look at other solutions instead for the future. I tried to convert my database from Express's MDF format into Everywhere's SDF format, but ran into problems. With the short time remaining to the version 1.0 deadline (contest submission) the database optimization is something that will have to wait. Now is not the time to introduce more risk in the project.

I also decided to go with the ClickOnce system of deploying the application, which is helping out. It comes especially in handy with the installation of the runtime environments for .NET 2.0 and SQL Server Express. ClickOnce automatically figures out if the user needs to get these installed without me having to write a single line of code/script, which is really neat.

Thursday, August 3, 2006

Finishing Touches

Two days left for FeedJournal's contest submission and I am trying to prioritize which items have higher priority than others to complete. Right now I am working on the text of the CHM help file and I hope to finish it soon. After that (if there will be enough time) I want to see if I can easily switch to SQL Server Everywhere Edition, which should boost performance on low-end PCs quite a bit.

Before submission I also want to make sure that the install scripts are completed. I haven't decided between ClickOnce and InnoSetup yet. I have previous positive experiences with InnoSetup, but Microsoft's ClickOnce also seems nice in that it can support transparent upgrades and it integrates the .NET 2.0 framework installation automatically.

I will also need to write an build instructions document, which should be straightforward in my case. One item which is not obvious to me is if I should deliver the third-party open-source libraries I use in source code format or as precompiled assemblies. I fired away an email to the contest coordinator, to get an answer to that one.

Help Format Confusion

As I previously blogged about I was using Shalom Help Maker to generate my help file. After spending some time with this and finally completing the user documentation, I was ready to insert it into FeedJournal. The it suddenly hit me: this is not the right help format! The Danish Shalom Help Maker is generating help files in the old Windows .HLP format, which has been obsolete for some years now. What I need is CHM format, which I had up till now deluded myself into believing I was working with. Ouch!

OK, there must be some way of converting my HLP file into CHM, right? Nope, at least nothing free, and all of the programs I tried generated an error during the conversion. Finally, after much hunting I found a link to a freeware application on the excellent forums at Joel on Software. The program was called HelpMaker, and sure enough its conversion feature also choked on my HLP file, but I was able to copy/paste the content to generate a CHM file. HelpMaker also offer to possibility to compile to many different formats: CHM, HLP, MSDN format, RTF, and HTML. All in all, the process using HelpMaker was much easier than that of HTML Help Workshop, the free and official vanilla solution.

I took the opportunity to compile an output for the web at the same time as I compiled the CHM file. The web based help files are available here.

Now, if I only had realized my mistake earlier, I would have saved many hours that I now spent working on the wrong format. Doh!

Tuesday, August 1, 2006

Promoting FeedJournal

Small software businesses, or ยต-ISVs, are cropping up everywhere nowadays. A big challenge for them is to get a foothold in the industry and claim a piece of the market. Then they need to keep that attention.

In Bob Walsh's excellent " Micro-ISV: From Vision to Reality", I learned that a blog can be an excellent vehicle for spreading the word about your product. It can also help to make sure you are keeping your customer's attention focused, by having them subscribe to your blog's RSS feed. The Blogosphere is a fast-moving media where the attention span sometimes lasts shorter than it takes to read a headline. The cross-pollination in the blogosphere is an interesting phenomenon which I hope to be able to leverage some more in the future.

For now, I decided to add a new section to FeedJournal's web site. The new section is called "In Blogs", with the obvious allusion to "In the Press", and will contain interesting mentions about my application from the blogosphere. I know, FeedJournal is not even out for beta testing yet, but it is never too early to start marketing, right? And besides, I can't resist the kick I get out of seeing my name mentioned in other people's blogs!

As a side note, after months of owning the domain feedjournal.com, I finally figured out how to configure the DNS so that I can use my hosting service with the domain. Until now I was using GoDaddy's forwarding functionality together with a masking technique. Now the hosting is set up like it should.