.

« Made In Express Contest | Main | Word Beads »

Wednesday, September 20, 2006

FeedJournal is Awarded First Prize in Microsoft Contest

Yesterday, Microsoft announced that my newspaper project FeedJournal had been awarded First Prize in their Made In Express Contest. As regular readers of my blog know, my brainchild FeedJournal is the .NET application I am writing to revolutionize the way you read newspapers.  

The judges (Chris Pirillo, LockerGnome; Phillip Torrone, MAKE Magazine; Robert Scoble, Scobleizer) motivation read:

Jonas helped us all take a step closer to publishing our own newspaper based on the news we care about. FeedJournal is actually a little glimpse of the future…it will likely be a common way for readers to ‘roll their own’ magazines in the near future.  

This is probably my finest moment ever in my long software development career and I want to thank Microsoft for arranging the contest and everyone who has supported the project by dropping emails or blog comments. And I want to send a special thank you to my wife and baby daughter for having patience with my late evening development sessions during this time.

Wednesday, August 30, 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.

Friday, August 18, 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.

Posted by Jonas Martinsson at 3:10
Edited on: Friday, August 18, 2006 3:26
Categories: Made In Express Contest, My products
|

Thursday, August 17, 2006

FeedJournal v1.0 and Contest Voting

FeedJournal  

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.

Posted by Jonas Martinsson at 8:42
Edited on: Thursday, August 17, 2006 8:42
Categories: Made In Express Contest, My products
|

Monday, August 07, 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.

Saturday, August 05, 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.

Friday, August 04, 2006

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!

Posted by Jonas Martinsson at 17:43
Edited on: Friday, August 04, 2006 18:10
Categories: Made In Express Contest, My products
|

Wednesday, August 02, 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.

Sunday, July 30, 2006

Deep Linking from RSS

One of the more unique and perhaps controversial features of FeedJournal is that it can filter out the meat of an article published on the web.

How does it accomplish this? FeedJournal has four ways of retrieving the actual content for the next issue.

Actual Content
In the trivial case, a site (like this blog for example) decides to include the full article text within its RSS feed. FeedJournal simply published the content; no surprises here. By the way, this is how all standard RSS aggregators work. The problem is when a site decides to only publish summaries or teasers of the full article text. FeedJournal needs to deal with this because it is an offline RSS reader, users cannot click on their printed newspaper to read the full article.

Linked Content
The <link> tag inside the RSS feed specifies the URL for the full article. In case the RSS only includes summaries of the full articles, FeedJournal retrieves the text from this URL.

Rewritten Link
In most cases, just following this link is not a good solution. The web page typically includes lots of irrelevant content, like a navigation menu, a blogroll, or other articles. FeedJournal lets the user write a regular expression for each feed, automatically rewriting the article’s URL to the URL of the printer-friendly version. As an example the URL to a full article in International Herald Tribune is http://www.iht.com/articles/2006/07/28/news/mideast.php while the link to the printer-friendly version is http://www.iht.com/bin/print_ipub.php?file=/articles/2006/07/28/news/mideast.php By inserting bin/print_ipub.php?file=/ in the middle of the URL we will reach the printer-friendly article. This article is much more suitable for publishing in FeedJournal, because it more or less only contains the meat of the article.

Filtered Content
“More or less”, I said in the last sentence. There are usually some unwanted elements left in the printer-friendly version, like a header and a footer. These can be filtered out by letting FeedJournal begin the article after a specified substring in the HTML document source. Likewise, another substring can be selected as ending the relevant content.

By applying these functions it is possible to scoop, or extract, the meat of almost any web published article. Of course it is only necessary to do this once for every feed. To my knowledge, FeedJournal is the only aggregator who has the functionality described in the last three sections.

Is this legal, you ask? Wouldn’t a site owner require each user to actually visit the web site to read the content and click on all those fancy ads sprinkled all over? Well, my stance is that if the content is freely available on the web, I am free to do whatever I want with it for my own purposes. Keep in mind that we are not actually republishing the site’s content, we are only filtering it for our own use. Essentially, I think of this as a pop-up or ad blocker running in your browser.

What is interesting to note is that some web sites have tried to include in their copyright notice a paragraph limiting the usage of their content. Digg.com, for example, initially had a clause in the their copyright effectively prohibiting RSS aggregators from using their RSS feeds! Today, it is removed.

As long as FeedJournal is used for personal use, and the issues are not sold or made available publicly, I do not see any legal problems with the deep linking.

Posted by Jonas Martinsson at 19:51
Edited on: Sunday, July 30, 2006 20:06
Categories: Made In Express Contest, My products
|

Saturday, July 29, 2006

Time for Code Freeze

Time, quality, resources and scope. Those are the four variables in software project management. As the deadline closes in I only have the luxury to change scope. Sure, there are more features I planned to get into this version, but the scope will be cut in order to make the release stable and have a timely delivery. Time is a rare resource for me these days with being a new father , having a full-time job, following the latest news about the regional conflict, and blogging/developing FeedJournal . Despite that, I am proud of what I have accomplished so far with my project in Visual C# 2005 Express Edition.

One week remains until release, and the time has come for Code Freeze: no more new features. Until August 6th I will work on finalizing documentation, web site, and of course testing.

FeedJournal will become a commercial project in version 2.0. Until then the fully functional version 1.0 will be the one submitted for the Made In Express Contest under a shared source license. That basically means that the source is available but there are no rights to use this source code in your own projects. I plan to add plenty of cool features before a commercial release plus some optimizations under the hood. I would like to thank everyone who contacted me with feature requests or comments. What you should expect to see in future versions are:

  • Sections
  • Layout templates
  • Images
  • Browser integration for publishing a selected web page in the next issue
  • PDF import (nice for those online crossword puzzles and Sudokus)
  • Advanced article scoring using user-defined keywords and extended RSS tags
  • Scheduled publishing and printing
  • HTTP authentication and cookie support
  • Improved throttling support and adhering to servers’ TTL setting

There are also some ideas I had envisioned early on in the project, prior to starting implementation, that have been moved to the recycle bin. Nothing strange with this, it is a normal reality check once you get down to the fine points of how things are supposed to work. For example, I had planned to rank articles according to web popularity (Technorati, Digg, delicious, Google, Yahoo, etc.). After much research of the various service APIs it is clear to me that this is simply not possible. Having x articles would mean sending x web requests to the various services. Until they support a technique for bundling together multiple requests into one, this feature will not be a part of FeedJournal.

In the meantime, I am looking for serious beta testers for future FeedJournal versions who will be rewarded for constructive feedback and testing.

Saturday, July 22, 2006

FeedJournal Sample Issue

Yes folks, we have a world premiere, the first sample of a FeedJournal issue is available for your viewing pleasure! Let me remind you that the purpose of the FeedJournal project is to generate a PDF newspaper based on RSS feeds, intended for printing. The PDF file is available for download here. In order to open it you will need Adobe Reader or Foxit Reader.

The content spans a selection of last week’s blog entries from the Made In Express Contest finalists. I chose these feeds, not because I want to plug the contest, but because I want to avoid breeching copyright law for republishing other blogs’ articles.

So what can you see in this sample issue? The following settings are in use: A4 paper size (a European standard), 4 columns, 0 points line spacing, 8 points column spacing, 30 points page margin and 10 points margin between headline and article text. Furthermore, the headline is Times New Roman (22 pt bold), article text is Times New Roman (8pt), publishing date is Lucida Console (5pt) and news source is Arial (9pt italic). All of these settings, and others, can be customized from the application’s Options dialog.

But there are also things that you cannot see in the sample. Like for example images. Beside the masthead (newspaper lingo for the first page logo), there are no images. Future versions of FeedJournal will include support for images contained in blog entries. Another thing not visible in the sample issue is the already implemented support for long articles to jump between pages if they do not fit. The reason is simply that there weren’t any long articles available in the selected time span.

And let me finally take the opportunity to congratulate my fellow finalists for getting published in the newspaper! ;-)

I would appreciate any feedback regarding the sample issue, don’t hesitate to contact me by using blog comments or e-mail me at contact@feedjournal.com.

Tuesday, July 18, 2006

Rockets and Progress

In an instant the situation here has deteriorated. Rockets explode closer and closer to our home (so far a safe distance away), and it will surely take time before we will see and end to it all. Native Israelis are more relaxed about the situation, more adapted, or perhaps it's just an image they are putting up. Having recently become a father makes me worry about my family's security. Between closely monitoring the latest headlines, spending time with our 1.5 month old daughter Noa and working my butt off at my day-job, the contest deadline is slowly closing in.

I started to write the FeedJournal help file but I haven't decided on a format yet. HTML is attractive because I can easily host an online version of the help files, while keeping them up to date with minimal maintenance. CHM files are more standard and look more professional though. The jury is still out...

The application itself is starting to be finalized and I haven't forgotten my promise to submit a sample PDF newspaper issue here. Patience! For now here is a screenshot of the main window.

Thursday, July 06, 2006

Why FeedJournal? (or why the information age matters)

The idea of an RSS syndicated newspaper came to me when I was subscribing to a morning newspaper last year. I hadn't had a morning paper for years then, so it was all a bit new to me. I really enjoyed to have access to news hot off the press, which I could read without having to stare into the computer monitor; for example in the comfort of my bed, sofa, or while traveling. But there were two things I strongly disliked about it: the monthly subscription was fairly expensive and I didn't really care for a majority of the content in the newspaper. The competing newspaper had a few sections that I would much rather read, but I couldn't afford to spend my time reading more than one morning newspaper. I knew that there were better ways out there for accessing relevant news in a comfortable way. I just needed to find them.

Content is king. There are no two ways about it. When people were talking about the information age ten-fifteen years ago I didn't get it. I didn't see how the management and distribution of content could become so central in a society that it would name a whole time period. But I am starting to see it now, how a low signal-to-noise ratio can kill the greatest endeavor; how the delivery of timely and to the point information can be of extreme value; and how the production of high quality content in itself can form an outstanding business plan.

I’ll say it again, the "production of high quality content in itself can form an outstanding business plan". Traditionally and historically the great content producers also had to be great content deliverers in order to survive. They had to make sure that the newspapers or books were printed and delivered to make any kind of business. Today, all of this has changed. Today, we have electronic delivery of the same content that used to make up newspapers and books, through for example the World Wide Web.

But along with the change of delivery method we as customers are losing out on some of the great and time-proven ways of accessing the content. We need to make a compromise between reading a newspaper online with all the latest events, or in paper format using news that in our fast-paced life are already old (just by a few hours but still old). This is where FeedJournal comes into play. FeedJournal serves as a content deliverer and presents information from whichever sources you want in a traditional format that was the default way of reading news for a very, very long time.

Of course, this is just one out of many of FeedJournal’s benefits over a traditional newspaper. It also empowers the user with the option of collecting multiple feeds to create a newspaper that is tailored for her own needs: with the local team’s results, the stock portfolio’s development or even personal e-mail. It gives the user the possibility to choose the deadline to be the exact moment she wants, not six hours before it will actually be read. And of course the paper size can be decided: A4, A3, letter size or why not an index card version that you can put in your Hipster-PDA? Gone are the monthly subscription fees for delivery, you only need to pay for the actual content in case your favorite news source doesn’t provide it for free on the web already.

Sunday, July 02, 2006

Microsoft CodePlex

A few days ago Microsoft officially launched their open-source project hosting web site CodePlex. It is great to see Microsoft finally embracing and supporting the open-source community with an initiative like this. Like all web launches these days CodePlex is a work in progress, and even though the functionality is still a little thin, I see great projects coming out of it very soon. What makes CodePlex stand out compared to the established player, Sourceforge, is the user interface and user friendliness. Sure, it is limited to .NET projects but isn't that what we all are passionate about?

FeedJournal will not be hosted on CodePlex, but I will definitely consider submitting other projects of mine there, or joining something interesting. The reason I will keep FeedJournal off CodePlex is that I plan to take FeedJournal commercial after the publication of the free 1.0 version, which I will submit to Made In Express Contest.

Thursday, May 25, 2006

Choosing FeedJournal output format

When I first started spawning ideas about an RSS reader that would print the articles as a regular newspaper, I had a tough choice to make between output formats. My main options were:

  • HTML with CSS
  • Microsoft Word
  • Adobe's PDF format

There are also other document formats (RTF, etc) I considered but quickly rejected.

Let's look at each of these formats in order to see how I came to my final decision. The main factor guiding my choice was having the result look professional, with justified multicolumn paragraphs for instance.

The thing is that I would love to be creating an HTML page with CSS styling because of the portability. Basically the full published issue would be contained in one HTML page (with a few hyperlinked image files). This package would open on any computer with a decent web browser. Also, page breaks are readily available using the <br style="page-break-before:always;"> tag. However, the problem comes when trying to figure out the size a chunk of text will use when creating the pages.

The MS Word or RTF choices are immediately more attractive because they expose an API to create the documents, which should produce more maintainable source code. On the other hand the Word format is a closed format as well as the API.

Then we have the third option, PDF, which on the surface doesn't offer any benefits over MS Word (besides being an open format), only a more quirky client which by default takes ages to start up. But some research-hours later and after finding iTextSharp I reached the conclusion that PDF is the way to go for FeedJournal! iTextSharp is an excellent open-source component written in C# for generating PDF files using the .NET platform. Using an open-source API for creating the PDFs is a significant improvement for a developer, allowing deep debugging of code sections and finding the root cause of exceptions. And should I find a bug or limitation in the component I have full control over the source and can fix it without being dependent on others.

Besides, the startup performance of Adobe Reader is easy to cure. And if you are completely allergic to Adobe Reader there is a beautiful lightweight freeware alternative in Foxit Reader.

Then of course there is the additional benefit of supporting the new ubercool eInk gadgets hitting the market right now, with all of them supporting PDF natively. More about these in future blog posts.

Sunday, May 21, 2006

FeedJournal.com

As I have mentioned on the blog before, the big project I am working on right now is a feed aggregator in the form of a paper newspaper. This application is currently being developed using the .NET 2.0 framework. By using this development environment I automatically qualified to enter Microsoft's $10,000 Made In Express Contest where the idea was picked along with 11 other finalists.

I have previously used the name "RSS Star" for the project, but from now on the name will be FeedJournal. Information about this project is available at www.feedjournal.com - and as part of Microsoft's contest I will also be blogging at http://spaces.msn.com/madeinexpress6

Posted by Jonas Martinsson at 16:55
Edited on: Sunday, May 21, 2006 17:00
Categories: µ-ISV, Made In Express Contest, My products
|

Thursday, May 11, 2006

Made In Express Contest

Microsoft called me up on the phone today to discuss my submission for the "Made In Express Contest". The newspaper project I submitted for the contest seems to have grabbed their attention, and I am now a finalist candidate. Apparently we are down to 30 contestants now, out of the original 1500 submissions. The finalists should be published in about a week and a half, if everything goes according to plan.

Anyway, this is a very good sign that my newspaper project can find a niche in the market. Now, I just have to wait for Microsoft to make their final choice...the suspense is unbearable!

Posted by Jonas Martinsson at 22:46
Edited on: Sunday, May 14, 2006 10:25
Categories: µ-ISV, Life, Made In Express Contest, My products
|

Sunday, April 23, 2006

RSS Star launch date

On May 15th the first glimpses of RSS Star, an RSS newspaper application will be available. While this date won't entail any official software release, there will be a beta program in order to poll interest, and collect feature requests and use cases.

RSS Star is an RSS aggregator with its output in the form of a regular newspaper, ready for printing and reading at your own leisure away from the computer. It allows you to personalize your very own newspaper and have it printed at a time convenient for you. Just import an OPML file with your favorite newsfeeds and you are set to go!

  • No more bulky newspaper format - you decide the paper size!
  • No more reading last night's news - you decide the printing hour!
  • No more skipping boring sections - you decide the news sources!
  • No more monthly subscriptions - buy the software once!

Thursday, March 30, 2006

Window Control v1.1

A new version of Window Layout v1.1 has been released with improved handling of hidden windows. The context menu is more comprehensible and the hidden windows can now always be restored.

Tuesday, March 28, 2006

Introducing RSS Star

Microsoft is running a development competition at Made in Express Contest. The competition will run over the summer and the winner will receive a prize of $10,000.

I decided to sign up my new project RSS Star for the competition. Although the deadline is kind of tight, I plan to get v1.0 out the door by the time the competition closes on August 6, 2006.

So what is RSS Star you ask? Well, it's loosely based on the idea of RSS aggregators. Yeah, yeah, I know, there are 2,000 of them out there already... But this is not your average run-of-the-mill news reader. While I don't want to give away too much of the project details at this early stage, the basic idea is to use some advanced content filtering rules and in the end deliver a newspaper in PDF format which will be read just like your printed morning paper. The main advantages of using RSS Star over a normal newspaper will be the content customization, an the fact that you control the press deadlines yourself. I will post more news about this project as it progresses.

Posted by Jonas Martinsson at 14:25
Edited on: Tuesday, March 28, 2006 14:29
Categories: My products
|

© Jonas Martinsson 1995-2006