René Nyffenegger's collection of things on the web
René Nyffenegger on Oracle - Most wanted - Feedback -
 

The Joel on Software Reader

The Joel on Software Reader is a program to read the Joel on Software forums. Read more on the motivation why I wrote it in my blog.

Classes

Joel on Software Reader consists of the following classes (and files):
JOSReader: This is the class (and file) where WinMain is located.
Group: Each group that can be read with the Joel on Software reader is represented by an instance of this class. Currently, these groups are: Joel on Software, Business of Software, Design of Software and Off topic.
Topic: Instances of this class represent topics (or, to use another word, threads) raised in one of the groups.
TopicItem: A TopicItem represents a single post made to a Topic. Here also, there is a 1:n relationship between Topics and GroupItems.

Components

SQLite wrapper is used to access the SQLite database.
PCRE Wrapper is a C++ wrapper for Perl compatible regular expressions (PCRE). I need PCRE to «parse» the HTML content.
This Socket class is used to establish a TCP/IP connection to receive the HTML content.
The MS web browser control is used for the GUI part of Joel on Software Reader.
The flow of the execution can be traced with Tracer. In order to enable tracing, the macro DO_TRACE must be #defined. If this macro is undefined, no tracing will be written.

Download

The Joel on Software reader can be downloaded here: JOS.zip.
The sources can be downloaded here.
In order to compile the sources, you'll also need the sqlite sources (version 3) and pcre sources (version 5).
The sqlite sources must be copied into the sqlite_wrapper directory. The pcre sources must be copied into the pcre_wrapper directory.
Note, shell.c, tclsqlite.*, os_unix.*, os_mac.* and probably a few more, found in sqlite, are not needed.

Quirks, problems and TODOs

TODO in source code

Everywhere in the source code where there is a TODO, it means that I don't consider it elegant code. Or it is not really finished.
This applies also for variables or #defines that contain TODO as part.

Proxy

The program doesn't yet work behind a proxy. Someone suggested using freecap for a work around.

Posting

It is not possible to post with Joel on Software Reader.

Copy (paste)

Although text can be selected with the mouse, ctrl-c doesn't put it into the clipboard.

.NET Questions, Techinterview.org, CityDesk and FogFUGZ

The JoS Reader doesn't display these forums.
There is actually a reason for this: These forums are hosted on discuss.fogcreek.com while the displayed ones are hosted on discuss.joelonsoftware.com. I was just too lazy to make the distinction between these servers.

Skinnableness

The application is not skinnable.

Resize

Although the application can be resized, it doesn't resize the width of the column where the postings are displayed.

Refresh

There is no possibility to refresh the application at the moment.

Sorting

It would be nice if the programm sorted the threads in a forum (group): for example first the new ones, then the interesting ones, then those that weren't marked specifically, and finally those that are marked lame.

Displaying lame threads

Currently, lame threads are not shown at all. Sometimes, one might wish they were shown in order to check if they're still lame.