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, and will just explain the proces based on those indications. The order in which the various controls roll on by loosely resembles the order in which you use them.
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 using 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 are actively absorbed in creating their own unique brand of Diary....
This part of the manual used to be a 'history of' section, but nowadays that info is included in the program itself. You can always look up that information by setting your browser on http://www.moorelife.nl/diarywhatsnew.txt
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]
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]
Another way to jump around the Dairy is through wormholes as you might call them: any date of the format yyyymmdd, typed in one long number without dashes or stuff, acts as a hyperlink. It isn't always properly underlined yet, but double-clicking it will transport you to the given date, quite quickly. In fact, it was so darn quick, that I had to fix a race condition to get it to work. Otherwise it would go to a page, view it's contents, find a new destination, and immediately jump on.....
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 combobox that allows 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.
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...
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 five years 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.
With this button and the corresponding edit field, users can print a number of diary pages at a time. All dates are printed following one another, but 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....
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.
To every page of your diary or logbook you can add up to sixteen 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.
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.
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.
This area on the user interface indicates whether there are images or files stored for the current date.
Added as a user request for my colleague Peter Looman, this combobox allow the user to quickly insert sizeable chunks of text into the diary page. Though sixteen predefined strings are remembered, only the first nine can be deployed using the F1 through F9 keys above your keyboard.
Belonging to the todolist, this combobox allows the user a choice between the todolists that are defined in the configuration dialog. Basically, switching means that the old todolist is saved, and a new one loaded.
This button fires up the configuration dialog, that will be described later on. Here you can edit the shortcuts, and name the todolists.
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:
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). You will find here the following items:
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 search 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 lines that contain the search string.
After a search has been 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 Find 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. Suffice it to say, if a line is found and highlighted, the Select button can be clicked to take you to the corresponding date.
Lines 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 around the middle of the result line.
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 selecting a timespan here, you can restrict the Search function in the past, to limit search time. Default is Always, as it was before this function was implemented.
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 images, neatly scaled so they 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 'Images' button while an image is present, this window will show the image that Diary currently has stored for the selected slot on this 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.
These two buttons are identical to the Previous and Next buttons on the main dialog, but they differ because they jump to the next or previous date that has images attached to it. When a new date is selected in this way, the image dialog shows the lowest slot to hold an image for this date. The main diary dialog is also switched to the new date, so quitting the Image Dialog will have you end up on the corresponding diary page.
This shows for which date the shown images are.
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. 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.
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.
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.
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. There is a bug here, in that you can't have the dialog maximized totally: refresh of the image doesn't work in that case, because I had to slightly jiggle the size of the dialog to get the image to refresh properly. And that is not possible once it is maximized. [bug 11].
Diary allows you to store up to sixteen images per date. This combobox allows you to select a slot. Want to browse through all the images for a date: just single-click on the combobox twice, then flip through the images using the thumbwheel on your mouse...
With this control, you can trade off drawing speed against image quality. If you want it technical, this chooses between Nearest Neighbor, Bilinear and Bicubic resampling. But I've chosen more down to Earth names.
These sixteen checkboxes indicate which slots contain images.
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....
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.
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 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.
This button ends the import, but current import settings will remain intact as long as Diary is not shut down completely.
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.
These three radio buttons decide on where the text to be imported will be put. You have a choice of three possibilities:
Check this to automatically remove any imported files. This will keep double imports to a minimum, and gives the timestamp merge less to do.
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 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 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:
Used to exit the Export Dialog. Esc also works here.
This is where you start the Export as soon as you've set all parameters correctly.
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 (G) 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).
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.
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.
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.
So, we will be touring the Configure Dialog, by first showing an overview of it, and then describing the various elements:
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 Shortcuts. There are sixteen 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 16 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. Otherwise, all 16 shortcuts will be gone.
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.
When you click the Update button on Diary's About Box, the program retrieves from the Web a latest version of DiaryInstaller.exe. This is then started, and the Diary is saved and closed. This is needed, because upgrading a program while it's running is asking for trouble. So we don't... The program will present you with the interface shown on the right, which is basically the most simple thing I could think of for upgrading 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....