This is our second Coder Challenge Submission.
Screen name: daylight
Title/Functional role: architect / developer
Company name: Daylight Computers
Project title: Daily Journal: Research Assistant
Time to complete : 54 hours, spread over 2 months
Project details: Clifford Stoll, astronomer and author of _A Cuckoo’s Egg_, said, “The astronomer’s rule of thumb [is] if you don’t write it down, it didn’t happen.” After years of working as a software developer, I agree. Haven’t we all researched some sticky problem, thinking we could never forget the solution, only to find out weeks or months later we needed the solution again and don’t remember it and can’t find it? That’s why I created the Daily Journal application. The Daily Journal ( developed in Visual Studio 2008 (C#) as a .NET 2.0x app) allows me to focus on the research without thinking about the meta issues of running documentation (word processor) software. How does it do that? It removes the requirement of a file name. That’s right, the user can use the program without ever naming her files. Yes, all files and data are saved using a program-controlled algorithm, instead of requiring the user to think of a file name. That’s the next leap. Without a file name, how do you find your information? All data is entered as it would be in a journal, by date. That means you can use the Calendar control to move through the entries. A lot of times we remember when we did something , so we can say, “Hey, back in December I worked on the Trafalgar solution,” then you simply click through those entries until you find your solution. Search Feature But, there’s also a search feature which can be used to search the current entry (the one you’re currently viewing) or all entries that you’ve ever created. If you can remember one word, then you can find the item you previously researched. More Than Text There’s more, because I wanted to save more than text and I wanted the program to _stay out of my way!_ Web Links I wanted a quick way to save links to web sites that are related to the solution. That way while reading the entry I could easily click the link and have my default web browser navigate to the site where I’d found related info. File Links I also wanted the ability to refer to files on my computer that were related to entry. Images — Snapshot Functionality I often found images, tables, graphs, etc. that could quickly communicate what was going on in relation to my research, but most programs don’t provide a nice built in feature that allows me to grab graphic data off the screen. That’s why I added snapshot. As long as the Daily Journal (DJ) is running (whether minimized or full screen) the user can click Ctrl-Shift-J and grab a snapshot of anything on the screen (including images from videos — DJ freezes screen). Once the user selects the portion of the screen he wants, the Daily Journal copies it to the Clipboard. The user can then paste it into the Daily Journal entry or anywhere. Not A Word Processor Keep in mind the program is not supposed to be a Word Processor. However, it does have many features such as font selection (color, sizes, highlighting, etc), word count, print (w/ preview), undo, number lists, bullet lists, etc. RTF — Each Entry Its Own File All the data is saved as Rich Text Format (RTF) which means you can open the entry in any popular word processor (OpenOffice, Microsoft Word, etc.) and edit the entry using all the features of those applications. Runs From Flash Drive Another cool feature is that the program is very small (only 2 files, 1 exe at 887Kb 1 dll at 188Kb) and can run from your flash drive. That means you can start the program up on any computer and all your data will be saved to the flash drive. This makes it extremely easy to work on documents, journals, research, books, articles, anywhere on any computer. Backup The backup feature zips up all the user’s entries in a standard Windows zip format file and places it where ever the user chooses. Why .NET and What I Learned? My entire intent with the Daily Journal was to create an application that would fade into the background and simply provide the functionality that would allow me to gather information, save it and find it again. The RichText control provided by Microsoft made 90% of that work very simple. It’s that last 10% (creating a snapshot, pasting an image into the control, searching all entries, backup / zip, etc.) that took some hours. Initially I created the interface just so I could save my research quickly. The program only allowed one entry to be saved and did not include any of the snapshot or font formatting abilities. The initial work took about 16 hours. Then about two months later, I took a three-day weekend and added all the features I had been wanting. About 30 hours there. Finally, over time I’ve worked out some obvious bugs, which took another 8 hours for a total of about 54 hours. It’s a challenge to work on a project without complete focus. I’m a Safari Online books subscriber and was able to find various examples which ultimately helped me. Re Use I made sure I can re-use my enhanced RichTextBox in other projects, because I plan on a series of software which will add some prompts and guidance to lead authors through writing their memoirs, stories and novels.