To make the Diary program usable for the millions, it is necessary to fashion something of a manual. This document will be that manual, telling you how the program operates, and how best to use it for the task at hand. I thought it wise to follow the lead of the user interface, so this manual is structured around images of the various dialogs and menu (yes, just one...) I've indicated the various user elements with letters or digits, and will just explain the proces based on those indications. Being a lazy person, I have not made any effort to renumber stuff when new functionality entered. So basically, higher numbered buttons are probably newer than lower numbered ones.
Actually, millions is a slight boast: over the past six months, some 2800 attempts were made at downloading various versions of the Diary installation package. Let's assume only one in ten ever got to actually use the program, that still means I have a fair three hundred users! And about just that amount also downloaded the sources, which by that same token might mean 30 people actively absorbed in creating their own unique brand of Diary....
First of all, let's turn this part of the manual into a little 'history of' section:
Version 5.03 fixes the "Can't load images on Windows XP" bug that sneaked into the 5.01 or 5.02 release. I caught it when doing an image load at work, because at home Vista does my work for me. Also, the image quality is now configurable, and handling around the Search and Find controls has been reworked to require less effort. Also, the version number has been correctly set, a 'feature' I forgot on 5.02, I think...
Version 5.02 improves upon the resizeable trend started with 5.01. It improves the rendering of the resized image in the image dialog. This has become somewhat slower, but yields a true bicubic resize, featuring much higher image quality. Also, I've added next and previous buttons to the image dialog, so that requires another upgrade of the Diary manual below. Also, keeping in mind my co-developers, I spent a lot of time in adding comments to the sources. This is not visible to the user, but my fellow programmers will love me for it. I'm far from finished in this area though.....
Version 5.01 tackles a feature long wanted by some of my loyal users: resizeability! It has minimize and maximize buttons for the main dialog, the image dialog and the search dialog, along with full resizeability. Said windows retain their size and position between sessions, making it fully configureable. This version is also the first one built with the new Visual Studio 2008.
Version 4.18 saves the number of pages to print between sessions, so you only need to set it once. Left printer margin was made smaller, to avoid line overflow when printers use wider fonts as default. Newly edited dates are now made bold on the calendar the moment the text is saved. No need to refresh the calendar manually by switching months.
Version 4.17 makes Diary look like a finished product some more: printing function now prints the requested number of dates to the default printer, and todolists have been perfected with regard to functioning. Minor changes in the user interface renamed the cryptic 'recode data files' to 'change password', and a little left-over screen real-estate led to the incorporation of a real logo. Ain't it cute?
Version 4.16 was a half-finished version for the Beta testers. It featured more larger dialogs, and multiple todolists. Also, the user interface for the printing function was already there.
Version 4.15 is for the nice-to-haves: Being frequently in need of images from my diary, I decided to add an export button to the image dialog. Also, an Open button was added to the file section, as well as a find within the search results. Furthermore the minimum screen size has been upped to 1024x786, and most dialogs now fully use this area. In addition, the todolist has been given seven nameable colleagues, so it's easier to sort out those chores and appointments. Printing is also shown here, but not yet completely implemented.
Version 4.14 was prompted by the arrival of a second screen for my work system. I decided to put Diary on the second screen, to keep it handy at all times. That night I was promptly rewarded at home, with a Diary that was nowhere to be found! It was on the Start bar, but apparently stayed offscreen on the second screen that I didn't have at home. I modified it so, that the dialogs now detect when they are outside the desktop, and center themselves if that is the case. As long as you don't move them from their centered position, the original coordinates stay in the settings file, so my position on the work system is not compromised.
Version 4.13 fixed a nasty bug that bit newcomers: empty todolists would crash the app.
What's new in version 4.12? As you all may not know, the Files dialog was introduced in version 4.11, but that was not properly rolled out because 4.12 was about to follow, and I didn't want to update the manual twice. Now, 4.12 has survived an encounter with a buggy developer tool (VS2003), and was finally built flawlessly on Visual Studio 2005. It contains a new feature suggested by my esteemed colleague Peter Looman, who was tired of always typing similar strings into his logbook. Now he has the opportunity to add them at the click of a mouse, and correct them afterwards. The smart export feature won't be complete until version 5.0, but part of it is already there, as a teaser. As for some of the bugfixes and enhancements, here they are:
Looking forward: next up is version 5.0, which will most probably be built using Visual Studio 2008. It will feature first of all resizable dialogs, which will be considerable effort, enough to warrant a separate release. This means that Smart Export will probably shift to 5.x, because no one has reacted to the teaser functionality I put in earlier 4.x versions. Several people did however request sizeable dialogs, at least for the main dialog. I'm thinking of doing the main dialog and the image dialog, and maybe the Search dialog. The other dialogs seem a bit useless when resizeable....
Enough about the 'new' version, let's just start with the whole enchilada:
The following paragraphs will have titles to match the lettered items on the overview.
If you think your diary or logbook is perfectly safe, then you can leave this field empty. In that case, the data files of the Diary program will be in plain text, readable by everyone who has read access to the files. For additional security, you can choose a password, that will serve as the key for encrypting the diary pages, imported images and the todo list. Once encryption has been activated, the data files will no longer be humanly readable.
You enter the keyword right after you've started Diary by just typing the keyword, and pressing 'enter' to activate encryption. If you want no keyword, just press enter anyway, because this will unlock the controls. Pressing enter merely signifies that you have thought about activating encryption...
Select the encryption keyword like you would select a password. Not too short, and containing both letters, digits, and possibly even punctuation. Even spaces are permitted. Keep in mind that you must enter the encryption keyword before editing the diary page or the todo list. You can check to see if you've typed in the keyword correctly by selecting a date with data: if it is readable, your keyword was entered correctly. Remember that keywords are case sensitive!
In theory, it is possible to use different keywords for different dates. Diary supports this, but does not help you in remembering the keywords for you. So be careful when opting for multiple keywords. If you do, you basically have to select the correct date first, and then enter the corresponding keyword to see the true contents of the page. If a page does not contain enough readable characters after decryption, then Diary will determine that it should not be shown to the user. And again, we find a bug here [bug 4]
Diary does not have a very extended menu bar, because I've been able to put all of the required functions on the system menu. The system menu (for novice users) is the menu that appears when you click once on the Diary icon on the top left of the Diary application window (the big red D). Apart from the standard entries to move and minimize the window, and close it, you will find the following here:
This bar is what allows you to have more than one occurence of Diary open at the same time, and still not be confused. It shows the version of Diary, as does the about dialog, and the directory in which Diary is actually working. You may have noticed that the directory comes first, and the version info later. This was done so the window title, which is also used in the Windows Start Menu Bar, is easily recognizable even if many programs are open. That way, you can keep for instance your personal diary and your professional logbook on the same disk, and still not be confused...
Contrary to normal behavior, the close button in the Diary application does not discard any changes. Instead, the current page and the todo list are saved, before the application is ended. Esc is the keyboard shortcut for this operation. If for some reason you messed up the current page, and want to revert to the saved version, you'll have to kill Diary through the task manager. Other than that, changes are saved on every change of date, and even before showing some dialogs.
This part of the application is the centerpiece that enables navigation through the pages of the diary or logbook. Its heading shows the month and year for the black entries in the date grid. Dates before the black entries are of course one month earlier, and those after the black dates are of course one month later than the calendar header shows.
Below the calendar, todays date is displayed. If you click that, the calendar is automatically reset to today, no matter on which date it will be.
The date for today is shown with a red circle around it, and the date for the currently shown page is displayed with a colored ellipse. The color of the ellipse is equal to the color of the calendar header. Also, there is a difference between normal and bold days on the calendar: dates are shown in bold if data has been entered for the date given. If a date is not bold, no data has been added.[bugs 1 & 2]
This Rich Edit Control constantly shows the data for the date that is marked with a colored ellipse in the Calendar Control. Currently, this field is restricted to around 33K text [bug 5].Once the encryption keyword has been entered (if any), the user can edit this field to adapt the data that is stored for the given date. Diary will store the data entered here as it occurs, apart from encrypting it if required. Be careful not to edit data here if it is not correctly decrypted: you could loose your data for any date you edit while working under the wrong keyword.
This field has auto-scroll capabilities, and will attempt to keep the selection or cursor within a predefined area of the control. Also, it is possible to copy & paste in this area, using the Windows standard shortcut keys of ctrl-C for copy, ctrl-X for cut, and ctrl-V for paste. If you paste from for instance Microsoft Word, then the font of the original copy will be retained, but only until you switch dates, or change fontsize. After that, the font will be all the same size and type again. Time for another wish [bug 6]
This Rich Edit Control allows the user to enter things that require his or her attention. The text entered here is saved exactly as entered, save any encryption requested by the user. If you enter the text such that the most pressing items appear on top, you will certainly be reminded of them every time you start the Diary application. Right next to the todolist control you will find the eight radiobuttons that allow you to select the various lists. Naming them is done from the configuration dialog.
This field has auto-scroll capabilities, and will attempt to keep the selection or cursor within a predefined area of the control. Also, it is possible to copy & paste in this area, using the Windows standard shortcut keys of ctrl-C for copy, ctrl-X for cut, and ctrl-V for paste. If you paste from for instance Microsoft Word, then the font of the original copy will be retained, but only until you switch dates, or change fontsize. After that, the font will be all the same size and type again.
The eight radio buttons right of the TodoList switch the various todo lists into visibility. You set the names of the lists other than the default one on the configure dialog. Default, the default list will be shown when starting Diary.
This button has been entered especially for those users that use Diary to keep a logbook. It will insert the current time at the current cursor position of the diary edit control. It will then focus the control with the cursor immediately behind the timestamp, so the user can start adding the data required to go with the timestamp. So, this now works only for the diary page:
To enable exporting and printing of sections of the diary, the Export function was added. Pressing the Export button basically appends the current entry onto the end of the export.txt file in the current working directory. So exporting a given section of the diary consists of the following steps:
Of course, the Export function also has it's keyboard shortcut. Can you guess it? alt-E seemed appropriate to me....
As promised earlier on in this document, version 5.0 will have a 'smart' version of the Export, that does more than a simple text export. This version contains traces of that addition, which will be described further down.
To every page of your diary or logbook you can add up to ten images. By clicking the button here you are taken to the Image Dialog, which will be described by means of a screenshot later on in this document. Right here we will only indicate that above the Image button there will be a message saying "x images" if indeed images have been linked to the current date in the calendar.
Because proper handling of keyboard shortcuts didn't allow me to change the text on the button, the text above the button says if there is an image present. That way, alt-I can be used to call up the Image dialog.
Diary has so-called image hyperlinks: If you have an image in any slot of the image dialog, you can refer to it straight from the text of the diary page. Just insert the word 'Slot0' to refer to slot 0, or 'Slot4' to refer to slot 4 (without the quotes). If there really is an image in said slot, Diary will underline this hyperlink for you, and double-clicking it will take you straight to the mentioned image slot! You will see that these hyperlinks are underlined the moment you type them, and are also updated if you add or remove images in the image dialog, upon return to the main dialog. Also, for each new date the hyperlinks are built up.
Another thing that is best described here, is how Diary handles its images: Because I want the Diary to be self-contained, it does not store links to the images you select. Instead, it loads the image, and stores it in an (encrypted) JPX file inside the applications main directory, along with the (encrypted) DRY files. That way, you can take the whole Diary with you by just copying one directory. As filenames for the images are of the form yyyymmdds.jpx, it would be a piece of cake to locate an image in the working directory. One exception though: Slot 0 has no slot number behind it, because of historical considerations.
The import function for Diary gives you two options: simple import and smart import. For simple import, uncheck the smart box, and click the button: it allows you to specify a single unencrypted file at a time, that will be imported after any text that may already be in the current page. And of course you all know how a standard file selection dialog works...
If you instead follow Diary's lead, and leave the box checked before clicking the import button, you are taken to the import dialog, that will be described further on in this document. It allows for importing other files, or even entire encrypted Diary directories. It is fast, does months of data in just seconds...
Since I needed extra date processing for the Search function, I thought it would be nice to display the full date above the Diary page. Might even add the time here if I have the time...
This simple button leads to the Search Dialog, as does the keyboard shortcut alt-S. Therefore, we will describe this in the same way as before, right after our walkthru of the main dialog is finished.
Right at the top of the diary page, left and right, are the Previous and Next buttons. These will directly take you to the next written page in the given direction. To avoid any endless searches, the algorithm restricts its scan to one year away. If nothing has been found by then, it simply gives up, notifying the user. Unfortunately, this implementation suffer from the backlash of [bug 1], in that it can send you to an empty page.
It seemed only reasonable to be able to store files related to a certain date in the Diary program. The diary page can then tell you something about the files, so it is more structured than just dumping those files somewhere on your harddisk. Clicking this button leads to the Files Dialog, that is described elsewhere in this manual.
Added as a user request for my colleague Peter Looman, these buttons allow the user to quickly insert sizeable chunks of text into the diary page. The bottommost button leads to the Shortcut Dialog, that is documented further down in this manual. It is used to defined the functions of the other 18 buttons.
This button fires up the configuration dialog, that will be described later on. Here you can edit the shortcuts, and name the todolists.
With this button and the corresponding edit field, users can print a number of diary pages at a time. Each date is printed on a new sheet for now, and spread over multiple pages if need be. Just enter the number of days to print, and click the button. One caveat though: empty dates are silently skipped, but are counted. So if you print a number of days, then Diary will just print the dates that belong to the next number of days, starting at the current date. Simplicity has resulted in the choosing of the default printer to do the action. Want to print somewhere different? Just make it your default printer for now....
So, we will be touring the Search Dialog, by first showing an overview of it, and then describing the various elements of the Search dialog:
The following paragraphs will have titles to match the lettered items on the overview.
This edit field is the first field that gets the focus once the Search dialog appears. The user can type the string here that he or she wants to search for. Type the string as you want to find it, because that is what the program will look for (search is not case-sensitive): any appearance of the full string in any relevant page of the diary. Modifying the field automatically makes the corresponding button the default, so pressing enter will allow you to execute the action.
By pressing this button, or pressing the Enter button on the keyboard, the user says that the Search clause field has been correctly filled. The program responds by going through all of the pages in the diary, decrypting them if necessary, and storing any pages that contain the search string.
Pages that meet the search criteria are stored in this list. To give the user some idea of the context in which the search string was used, the list box contains the name of the data file in question, the position of the hit, and the line of text surrounding the search string. Any occurrence of the search string on any page is reported, if it falls within the requested time period. Basically, the line displayed will show the sought after string somewhere below the V that's on top of the list.
By selecting an entry in the Search Results list box, and pressing the select button, the user can leave the Search dialog. Diary will automatically select the date that the user had selected in the Search dialog. As an additional service, Diary will highlight in red any occurrence of the search string. Pressing alt-S on the keyboard if the Search dialog is present, will have the same impact as clicking the Select button. As of version 4.9, the same can be achieved by just double-clicking a line in the Search Results List box.
This button can be pressed to cause the displayed search results to be saved in a file. The filename used is search.txt, and it can be found in the Diary directory where you installed Diary. This file will be replaced every time the button is clicked. As on the main dialog, alt-E will start the Export function, only this time for Search results.
This button can be used for leaving the Search dialog without any effect on the main Dairy window. Esc is the keyboard shortcut for this operation.
By clicking any of these radio buttons, you can restrict the Search function in the past, to limit search time. Default is Always, as it was before this function was implemented.
After a search was conducted, it is possible to scan voluminous search results to find another word. The word to be found can be entered here. Modifying the field automatically makes the corresponding button the default, so pressing enter will allow you to execute the action.
If after you've filled in a Find clause, you click this button, the program will check to see which search result is selected (if any), and will find the following search results that contains the entered find phrase. Extremely handy if your search criteria yielded several hundred hits. If there is no more search result containing the find phrase, a message box is displayed.
Next, we will show you around the Image dialog, that is used to show / manipulate the images coupled to the diary or logbook:
The following paragraphs will have titles to match the numbered items on the overview.
This is the main component of the Image dialog. This window shows the selected image, neatly scaled so it will fit. If no image was selected for this date yet, this field is initially totally grey. If on the other hand you clicked the 'Image' button while an image is present, this window will show the image that Diary currently has stored for the selected date.
With version 5.02, a high quality resize method has been incorporated into Diary. Images now look good at any size, even if their original size wasn't all that impressive.
This button does nothing else but close the dialog. Whatever image is visible at the time this button is clicked, will remain coupled to the current date. There is no way to revert the situation to the way it was when the dialog opened, unless you still can select the same image from a location other than the Diary directory. As for all Diary dialogs, Esc is the shortcut key for Exit dialog, or Close.
This button should be clicked when you are no longer happy with the image that is already there, and will be clicked automatically for you when you clicked the Image button on the main dialog when no image was present. It brings up the file selection dialog, that will allow you to select a file of a given type from your harddrive. If you click OK, that file will be read, its contents displayed in the Image Window, and stored as a program-specific JPX file in the Diary directory. That way, Diary will be able to find it again later, if the same date is selected from the calendar control. Alt-L will have the same effect as clicking the Load Image button.
Sometimes, you may want to remove an image from your Diary or logbook. This button is the ideal tool for that. Just click it, click Yes on the following confirmation, and the image will disappear from the Image Window, and from the Diary Directory. Alt-D will be equal to clicking the Delete Image button.
Diary allows you to store up to ten images per date. This section of checkboxes and radiobuttons allows you to quickly see which slots are taken, and at which slot you are looking. By clicking on the radiobuttons, you can select another slot.
Clicking this button will show you all occupied slots for about 1.5 seconds each. Maybe I'll make it into a toggle button later, but that is definitely more complex, and currently not deemed appropriate [bug 8]. If you want it more than once, just click it more than once. To indicate that slideshow is in effect, the border of the image area is switched off. Don't look at me, I didn't consciously do that, just thought that it looked cool anyway.
Having frequently executed a manual procedure to extract an encrypted image from my diary as a normal JPG file, I decided to give non-expert users this feature also. The export button will present the user with a file selector dialog, to determine where the file should be stored, after which it is stored there. One caveat though: make sure you also type the extension of the filename, because just switching the filetype doesn't do it. See [bug 10] in the buglist at the end.
Similar in function to the Previous and Next buttons in the main dialog, these two navigate Diary to the next date that has any loaded images. Apart from the images, the main dialog is also switched to the corresponding page, for often the pages refer to the images. To access other images on the same date, use the radio buttons instead. After a next or previous, Diary will always show the first image available on the given date.
Now we come to the description of the Smart Import Dialog. Again, an image says more than a thousand words, so we'll start with the screenshot of the import dialog, and work from there....
This is typically the first button you'll click once on the Import Dialog, unless the file you want has a very simple name... It opens a file dialog, that allows you to select one of the files you want to import. Only one, because of the important next step in our import process. But more on that below....
If a file was selected in the file selector, the full file specification will be placed here, and the contents of the file will be shown in the preview window. You may later edit the file specification to include wildcards, in which case the preview will become a file list that shows the files involved.
If the preview window shows garbage, odds are that you are required to fill in an encryption keyword here. As soon as this field loses the focus, it will update the preview with the decrypted text, so you have feedback on whether you guessed correct.
If the file specification window refers to a single file, this window shows the contents of that file, after encryption with the given encryption keyword. If the file specification has wildcards like '*' and '?', then this window shows all file specifications that are included by this wildcard specification.
These three radio buttons decide on where the text to be imported will be put. You have a choice of three possibilities:
This button will have a different title, depending on the file specification that is shown above. It will either import the previewed file to the current date, or start a bulk import of all the files that are included in the wildcard sequence specified above. Directly above it, there is a checkbox that allows the program to delete the files once they have been successfully imported. Directly below the button is a status line, that will show which file is being imported at the moment.
A few things should be said about the smart import:
This button ends the import, but current import settings will remain intact as long as Diary is not shut down completely.
This date control is used to select the starting date for the range of dates to export. It is similar to the main date control on the Diary main dialog, in that bold dates are dates for which text has been stored.
This date control is used to select the ending date for the range of dates to export. It is similar to the main date control on the Diary main dialog, in that bold dates are dates for which text has been stored.
Here, a number of options to generate exported text may be selected. Take your pick:
This is where you choose the name of the central file for your export, and the directory where it's supposed to go. The more expansive options will also create other files, but they will be in the same directory. The Browse button on the right can be used to select directory and filename if you don't know how to type them correctly (that's no shame).
This is where you start the Export as soon as you've set all parameters correctly.
Used to exit the Export Dialog. Esc also works here.
So, we will be touring the Files Dialog, by first showing an overview of it, and then describing the various elements of the Files dialog. This implementation of files handling is a first effort, with minimal requirements. I prefer to wait with fleshing it out until we've had a chance to play with it, and you get a chance to suggest improvements. So here's what's in there for now:
The following paragraphs will have titles to match the lettered items on the overview.
This list shows just which files have been tacked to the current date in the Diary. It only lists files, and not directories. Adding that functionality I consider not urgent, since adding a whole directory tree may always be done by just zipping it yourself, and adding it then.
Click this button to add a file to the file cache. I've not thought it urgent to add drag & drop support to the listbox, but may consider it if enough people ask for it. Clicking the button shows you a File Selection Dialog, where you can select the files one at a time. Multiple select may be considered later. Any file selected is placed in the directory made specifically for the current date in the working directory, and for now they are not encrypted. So you can easily take them out manually as well.
To extract a copy of a stored file from the Diary, the Retrieve button is clicked. Of course you have to select the file to export in the Files List first. It presents the user with a Save As Dialog, that starts at the directory where the file will be coming from. Once a target is selected, the copy of the file is saved there.
Great little button to remove a file from the Diary. Just select the file to delete in the Files List, and click the button. You are asked about your intentions first, but after acknowledging deletion, the file is definitely gone.
Synonimous to the close cross at top right of the dialog, this button makes it disappear. But it also does a little cleanup: if no more files are stored for the current date, the directory that held them is also deleted.
Allow the default open function to be executed for a file in the diary. It will pop up a message if no file was selected first. Basically, the operating system will perform the default open command for the given file. Another caveat, though not of my doing: all types of files will open correctly, except for MP3 files on Windows Vista: Windows activates the Windows Media Player, but for some reason never starts to play the song. I've reported this to Microsoft as a bug, but big companies don't seem to have the maneouverability to react to something like that. If it was a bug in OpenOffice, it'd be squashed already!
So, we will be touring the Shortcut Dialog, by first showing an overview of it, and then describing the various elements of the Shortcut dialog:
The following paragraphs will have titles to match the lettered items on the overview.
These entries consist of the following three items, that together provide for the functionality of the Shortcut Dialog. There are eighteen lines, which may be expended later through the use of alt, ctrl and shift-key:
If you're happy with what you've entered in all those edit boxes, feel free to use this button: You'll be transported back to the Diary Dialog, with all 18 buttons set to the texts you specified. It will even be saved in the Settings file, so we remember it for you the next time you use the program.
Great button if you've really messed up all the texts: just cancel, and return to this dialog to find the original values there.
For a clean slate, this button can't be missed. It does want to know if you're sure about what you asked, but after that there's no returing any more, except through the marvellous Cancel button described above.
Not affected by the clear all button, this is where you give names to the seven todolists (except for the default one). Once you press OK button, the names on the main dialog will be updated. They will also be saved to the settings, so they'll reappear next time you start Diary.
Diary saves its data in a number of files in its current directory. Thus it is easy to keep several apps on the same system, simply by putting each of them in their own directory. There are several types of files:
By giving all the data files the same extension, that is typical of Diary, you can assign this extension to be opened by the Diary application.
Diary is a public domain application. As such, its sources can be requested from me. I just thought it useless to add the sources that nobody hardly ever uses to the normal installation package. That doesn’t mean that you have to adapt it yourself if you want something changed. It only means that you can. If you don’t feel like it, send any requests to me at andre@moorelife.nl, and I’ll be happy to consider it.
To make Diary better, I have to rely on your support. Please report any bugs or inconsistencies to me, and maybe even get yourself mentioned in this manual.
Out here, I keep a list of stuff that's still wrong with Diary, or stuff that I'd like to see improved. For now these items are sorted by gravity and wind chill factor, but feedback on the importance of certain features might bring some order here. My mail address is in here somewhere, so if you want something given more priority, just find it and mail me....