The Daily Journal User Guide

Version 3

Kartik Patel

letapk@gmail.com

http://kpatel.x10host.com



If you are reading this manual in the inbuilt help-file browser (options Help-Help from the main menu), be aware that the file rendering on the screen may not be as good as in a real browser, like Firefox, or Iceweasel. Alternatively, read the PDF version. The hyperlinks work just as well there, too.

Contents

Introduction
The User Interface

Key bindings
Storage and data files

Lockfile
Program limits
Compilation and Installation
License and copying policy

Introduction

tdj is a PIM program.

It has been written using the Qt Toolkit (http://qt-project.org). tdj means The Daily Journal, and 3-0.x is the version. The README file will have the latest changes incorporated for the version that you have downloaded.

PIM stands for Personal Information Manager - a digital secretary, if you will. Only thing is, you have to do all the typing yourself...

Does it work at all? Well, it works for me, when it is in the mood. But that is probably because of its sense of obligation since I wrote it and, in the process, pulled it out of binary limbo. Your mileage may vary.

Does it do anything useful? If it really did, do you think I be giving it away for free? But as the wise men say, the best things in life are free...

Well, if you are in the habit of keeping daily notes, or a diary, or a journal of your activities, tdj can keep them organized and accessible. It also stores your daily appointments, list of contacts and other types of lists.

While there is no guarantee that there will be future versions, there is every probability of the version number increasing in the future as and when I get the time, and/or if enough people ask.

This version follows the earlier version called fltdj2-0.4 whose user interface was constructed using FLTK, the Fast, Light Tool Kit (http://www.fltk.org). This is still available for download, but further development will now be done in this version using Qt.

The User Interface

The main user interface window is in two parts. On the left side is a calendar, and a space below which displays a tree of contacts and the various groups into which they have been, well, grouped (more about this below). These two try to remain the same size however you re-size the window, but don't do their job too well.

The top line in the calendar below the menu displays the month and year. You can navigate through them by clicking on the arrows to their left and right. Clicking the month will drop down a list from which you select the month. Clicking the year allows you to edit it and enter the year you want. The days of the week are represented by single letters above the calendar, and the week number is shown on the first column on the left. The remaining portion displays the dates, which can be clicked to set the day for which the journal or appointment entry is being made.

There is no clock because your PC already has a clock somewhere on the desktop, and who wants one more reminder of time inexorably flying past and being forever lost, never to be regained again? Time should behave like distance, which you can retrace if you take the wrong turning. And clocks should be restricted only to places where they need to be, like the Olympics, and banned from all other places. Instead of which we are surrounded by clocks and timers of all sorts. Indeed we carry more than one at any given time, all the time. However, do send me a mail if you think a clock display somewhere would be useful.

There is a main menu containing only two items, because I was taught that keeping things simple is an admirable principle. Actually, I really could not think of anything else to add.

There is a “File” option which contains an "Exit" button which you can select to get rid of the program when you are sufficiently exasperated (if it has not segfaulted already).

There are also options to export the notes and appointments as plain text files.

The other option on the main menu is “Help”, which reveals two buttons, “Help” (again!) and “About”, andAbout Qt”

The Help” option pops up a window with this file displayed.

The “About” menu option pops up a window with information about the program, programmer, version, license, copyright, and also provides a long and unnecessarily tedious but necessarily required information about the GNU GPL under which this program is released. This part would have more entertaining if only they had dispensed with all the lawyers, and you could have purchased your new tablet, cellphone and computer at half the cost.

Some buttons and smaller windows display little boxes containing helpful information when the mouse pointer is held stationary over them. Sometimes they don't, if the program is not feeling particularly helpful, or if the mouse was thinking of something else when its cursor landed up on them. The professionals have named these little boxes, quaintly, "tooltips". While some may hold useful tips, many others may be just plain confusing. What the "tool" signifies, I don't know. Perhaps it is meant to clarify that, whatever the tips are, they won't be about the stock-market. On the other hand, with the state of the stock-market being what it is, who needs tips about the stock-market?

The current day and date is also always shown just below the calendar. It is also a button which you can click to immediately return to see the note or appointments for today. Below the button is the area which shows a tree of contacts or to-do lists, depending on whether you are viewing the contacts tab or the lists tab. This is described in more detail later.

Along the top on the right is a toolbar, and below it is row of tabs. The toolbar is a complete time-waster. It makes you spend valueable time making your work look different by inducing you to change fonts, colors, and sizes in any number of ways. I wont spend time telling you how to use the toolbar, since you have already used it in any number of word-processing programs.


Along the top on the right is a row of tabs. If you haven't noticed it already, the tabs are Journal, Appointments, Contacts, Lists , Anniversaries, Search, and Preferences.

Read on for the exciting details on how to use them.

On the last row, below everything else, is a line which pompously calls itself the status bar. Unlike regular bars, it serves up helpful messages of what the program thinks it just did, or what it is trying to do, or may be trying to do. Like real bars, inebriation may be a side-effect of serving too much. There is no guarantee that it actually did what it said it did. This is a free program, after all.

Journal

You like to note down what you did today, right? Of course you do, why else would you be using this program at all.

To enter a note for the day, you click on the Notes tab, and type your thoughts in the blank area to the right. You can store your thoughts for any particular day by clicking on the appropriate date button on the calendar. The program displays any previous noting for that day, if it exists or shows a blank window if there is none, or shows a quote from the Fortune database, if the preferences are set for that. Fortune here refers to a very popular program available under Gnu/Linux, which has a collection of pithy, trenchant, and sometimes inappropriate and politically incorrect quotes on a variety of topics.

Here are a couple of examples:

"The only real way to look younger is not to be born so soon." -- Charles Schulz, "Things I've Had to Learn Over and Over and Over"

We gave you an atomic bomb, what do you want, mermaids? -- I. I. Rabi to the Atomic Energy Commission

It can be quite addictive, and can make your day. But to return to the topic at hand, your note can be as long as you want (while it's only a note, you can write and store a novel everyday).

To retrieve the note for any particular day, click on the desired date; it is displayed on the right (if the Journal tab is on the foreground) and you can add to or modify the text if needed. To indicate that the particular day's notes are being edited, the corresponding date button on the calendar is displayed in red.

You can access the note for any specific day by clicking on the corresponding date on the calendar.

Once the calendar has the focus, you can press the right or left arrow buttons to move through the calendar and display the corresponding note. You can also type numbers to go to a particular date. You can type up to 6 digits to change the day, month and year all at the same time. Try it for yourself.

The note is automatically saved to memory and saved to disk without any specific interaction. It is available the next time when the program is used.

The currently selected date is shown with a default background color that depends on the color scheme used by the window manager. Days containing notes, however, are shown with a gray background.

Appointments

You do have people wanting to come and meet you, right? You do? Wow.

In order to see or add appointments to your daily schedule, click the Appointments tab. The right side window will show 48 rows of blank lines, spanning two columns labeled Time and Details.To bring up the appointments for any particular day, click on the desired date and the Appointments tab, if this tab is not already in the foreground. The appointments are displayed as a table on the right, if there are any for that day.

To create a new appointment enter the time of the appointment in the first column of the first blank line, and the details in the second. The first column will accept nothing except integers between 0 and 2400, since it represents the time of the appointment. Hence type only numbers in this field. It will also not accept a time below 0 and beyond 2400. If you intend to set an appointment for 2:00 PM, the entry should be 1400, and not “2”, which refers to 00:02 AM, and also not “200” which refers to 2:00 AM.

Appointments can be entered in any order, and need not be chronological. However, if you go to some other date and then return, you will see that the program, being fastidious about order and such things, has arranged them chronologically behind your back.

The Time column contains a cute check box which can be clicked to draw a small 'x' inside it. This indicates that this appointment will repeat every day. Magically, an appointment which repeats daily will appear on all days in the right chronological place.

The other box can be used for any other information. Typically any alphanumeric information is accepted and stored. Try to keep the appointment description short and sweet. More information does not add to knowledge, as the wise are in the habit of saying.

Also, remember to press the enter key. It is not absolutely necessary, of course, but it is a good practice. Good practices, like adversity, build character. Though it is not necessarily true that the character that gets built will be good.

There are only 48 appointments per day allowed in this version. I don't know of any real reason for this, but if you can think of any, contact me immediately. But seriously, if you feel this number is not sufficient, let me know and I will increase it in the next version. But even more seriously, how many meetings can you actually attend in a day? If you really, really want to schedule more meetings, get a real secretary, or better still, see a psychiatrist.

If you want to modify an existing appointment, make the changes in the same boxes, where it will simultaneously appear.

In order to delete an appointment, just blank out the entries in the table. Thats it.

On the calendar, dates with single (that is, those that do not repeat everyday) appointments are shown with a cyan background, even if they contain a note.

The program will issue an alert 5 minutes before an appointment in the form of a message box, as shown below. This will remain on the screen and will go away only on clicking the OK button. A short beep also sounds when the message box pops up.

Whenever a new appointment is set the program will check whether it is for today, and if so, it will adjust the timer to issue an alarm at the appropriate time. However, this is done only when the new appointment is more than 5 minutes in the future. The program feels that you should be able to rely on short term memory for appointments occurring earlier.

Appointments are saved only when a description is present. A description without a corresponding time, or vice-versa, will have unknown consequences.

This is true in real life, as well.

Contacts

You do know other people, don't you? Even if its the neighbor's dog down the street?

Clicking on the "Contacts" tab will display the contacts data tree on the left, below the calendar, and the contact editor on the right.

Contacts can be organized into groups. You can add as many groups as you wish and add contacts within them. Inside each group you can include as many people as you want. The first line of the group description in the editor is displayed in the tree, so it is always a good idea to keep the first line short, such as the name of the group, like “Family”, or “Friends”. This is what gets displayed in the tree and changes automatically whenever the the first line is edited.

The data is added as text in any format you wish, in the editor window to the right. You can add, modify and delete groups, as well as add, modify and delete contacts. Use the buttons above the tree window to add, delete or modify groups and contacts.

First build up your group structure. Click on the “Group” button below the calendar. An empty group will be added to the tree. Type the description of this group in the editor on the right. It can be in any format. The first line of the description becomes the name of the group in the tree. So if you keep this line short, say “Suppliers”, this will be what is displayed as the group name.

To add contacts, highlight the desired group first and then start adding empty contacts by clicking the “Contactsbutton. Type the name, address and all other details in the editing window on the right. Enter carriage-returns wherever needed to format the data as you like. As in the case of groups, the first line of the contact is displayed in the tree as the name of this contact. So if you type “John Doe”, this will become the label shown in the tree.

To modify a contact, first select it in the tree. It will be displayed in the editor. Alter the text as desired. To delete, just click "Delete".

Groups within groups are not allowed. Groups can be deleted only after manually deleting all the contacts within that group.

Lists

Do you need to keep lists of things to do? Of course you do. Not one or two, but multiple lists, if you are a normal, hardworking person. If not normal, at least hardworking?

Just like categories of contacts, you can have categories of lists. Why is that? Well, you know that a to-do list for doing work at home and at the office are two entirely different things and need to be kept separate. Thinking along this line a little further, I concluded that we all need multiple to-do lists for all the distinct projects and activities that we are carrying out or plan to take up.

Hence the tree-structured multiple to-do list facility in tdj. The tree of lists is similar to the tree of categories, except that there are no lists within lists.

Click the "Lists" tab to display on the left a tree of your various lists of pending work. On the right the data for the first list is displayed if present. To add a new list, click on “New list, which will create an empty list entry. Type the data on the right. The first line becomes the name of the list in the tree, so it would be appropriate to keep it short and, well, appropriate.

To modify a list, highlight it in the tree and it will be displayed on the right. Edit it as required. It gets saved automatically and is available the next time.

There is also a “Delete” button, but lists containing data will not be deleted. In order to delete a list, highlight it to display it in the editor, remove all its contents, and then click the Delete” button.

Besides multiple to-do lists, this facility can be used to keep short description of many things. For example, one of my lists is a collection of some rarely used but lifesaving commands in Gnu/Linux. Do you remember how to make an extra loop device when you run out of the default eight provided in most distributions? What is the format of the gnuplot command to store its output in an image file? And so on. You get the picture.

In case you are wondering how can I use up all eight loop devices in Gnu/Linux, send me an e-mail.

Anniversaries

Click on this tab bring up the list of anniversaries (if entered earlier), or a blank table if you are creating one for the first time.

The interface is similar to that for appointments, with two main differences. Firstly, there are three columns in each line, for the Month, Date, and Details. Secondly, the first two columns are actually drop down lists. These lists are displayed when the focus is on those columns and the space bar is pressed, or the left mouse button is double-clicked. The first column presents a list of months from January to December, while the second presents a list of dates from 1 to 31. There is no way to choose any other data for these columns. Select the desired month and date, and enter the details of the anniversary or holiday in the third column.

Continue adding in this manner to build up a list of up to 365 holidays or anniversaries (366 in a leap year). There are only that many days in a year, and if you need to remember more holidays than this, you don't need this program anyway, because every day is a holiday.

To delete an item select it and blank out the entries in each of the three columns. Both the drop down lists contain a blank as the first entry for this purpose. Remember to blank out the description as well and press enter.

The holiday list is stored in a file whenever you exit. It will be available the next time tdj is used.

Dates with anniversaries are shown with a yellow background, even if they contain a note or an appointment. The currently selected date is shown with a red background.

The list is sorted in the order in which the anniversaries occur in the calendar whenever the program is run. Any modifications made to the list will remain unsorted for that instance of the program, while it runs. When you exit and re-run the program again, the list wil be displayed in the correct order.

Search

Over a period of time, the data you enter in tdj will become larger and larger, and you will find it difficult to remember when you wrote a particular item in a particular note or when you had that appointment with a particular someone.

The Search tab provides a facility to search for data within the notes and appointments.

The data to search for is entered in the text box. After this click on the Search button. The window below will display the dates containing those notes and appointments in which the data was found.

Preferences

If you are like me, you don't like the default settings which the programmer has put in as, well, the default.

So here you can set some preferences for the program.

The starting day of the week can be either Sunday or Monday. Click the appropriate radio-button to set your preference.

Show a quote from “fortune” when displaying blank notes: When this box is checked, tdj will fetch a quotation from the database of the "fortune" program (if it is installed) when displaying the note window for a day which does not have any note. Unless you explicitly erase it, the quotation will become part of the day's noting if you leave it as it is.

No quotation will be displayed if the day already contains some text. No point in having too much of a good thing, no? No.

A different font can be selected by clicking on the “Select a different font” button. This is done via a font-selector pop-up window.

Below this, you can set which tab to display when the program starts, by selecting the appropriate radio-button.

The preferences are automatically saved on exit, and reloaded the next time the program is used. The size of the window on exit is also restored.

Please e-mail me if you need to set other preferences as well.

Key Bindings

Some of the user-interface items in the program have keys bound to them, so that the action that is produced by the clicking of the left mouse button can be performed via the keyboard.
Some or all of the following can be used on the various tabs.

Menus:
Alt-f
: Pops down the File menu
Alt-f-x
: File-Exit. Also Alt-F4 will do the same. The program saves all data to file before exiting.
Alt-h-h
: Displays the HTML help file.
Alt-h-a
: Displays information about the author, copyright and the GPL license.
Alt-h-q
: Displays information about the Qt toolkit.

Contacts:
Alt-g:
Adds a new top-level group to the tree of contacts.
Alt-o: Adds a new contact to the currently selected group. If the current selection is a contact, it adds the new contact to the parent group.
Alt-d: Delete the currently selected contact or group. This will not delete a group unless all contacts within it are deleted first.


Lists:
Alt-n:
Adds a new, empty list to the tree
Alt-d :
Deletes the currently selected list only if it contains no data

Tabs:
Alt-j :
Displays the Journal tab.
Alt-p :
Displays the Appointments tab.
Alt-c :
Displays the Contacts tab.
Alt-l :
Displays the Lists tab.
Alt-v :
Displays the Anniversaries tab.
Alt-s :
Displays the Search tab.
Alt-r :
Displays the Preferences tab.

Search:
Alt-e :S
earch for the text entered in the text box to the left of the button.

Preferences:
Alt-t : S
elects the box containing the Sunday and Monday radiobuttons. Use the arrow keys to select your preference. The calendar display is updated immediately.
Alt-q :
The check-box for this option gets selected.
Alt-n :
This displays a pop-up allowing you to select the desired font.
Alt-g :
This selects the box containing the tab radiobuttons so that the desired start-up tab can be set.

Editor shortcuts

In the note, contact or list editor the current font can be changed by the following keystrokes:

Ctrl-b: switch to bold

Ctrl-i : switch to italic

Ctrl-u : switch to underlined

If you wish to change the font color, click the colored square to the right of the Underline icon in the toolbar and select the desired color.

If you wish to change the font and its size, select the desired values from the drop down lists on the toolbar.

If you want to change the properties of a part of the text, mark the text with the mouse and make the desired changes in the same manner.

Storage and Data files

The program stores the data in a hidden sub-directory called “.tdj3” (note the dot at the beginning of the file name) which is created in your home directory on first running the binary. tdj checks for the presence of this directory when it starts, and alerts you if it is absent. It will create this directory before proceeding.

The notes and appointments for each month are stored separately, month-wise, with each file having a fixed name which cannot be altered. The files are created or deleted automatically, as and when required, and are named with the year and month, in numerals, followed by the extension "tdj". For example, the notes for December, 2012 will be stored in the file "Notes-2012-12.tdj". The contact list is stored in the file "Contacts.tdj", and the lists are stored in the file "Lists.tdj". The holidays and anniversaries are stored in "Anniversaries.tdj".

Different users can use the program without their data getting mixed up, provided the use account directories are different. Unlike normal siblings, both fltdj2 and tdj can coexist in the same account without interfering with each other.

Do not edit the data files in any other editor!

Lockfile

When tdj is running it creates a lock-file called (what else but?) tdjlockfile.tdj in the hidden subdirectory where it stores all its data. This file is created every time the program starts and is deleted when it terminates.

The purpose of this file is to tell tdj, if started a second time by the same user, that it is already running. It then politely tells the user that two instances of the program cannot be executed concurrently in the same account. It allows the user to proceed if he (she) is certain that there is no other instance of tdj running (this happens when the program has earlier terminated with a segfault and the lock-file is still present in the data subdirectory). The lock-file is then deleted and the program commences normally.

In case you run two instances of tdj, both the programs will be accessing the same data files. One instance can (and will) overwrite files modified by the other. So caveat, user.

Program Limits

In this version:
Number of notes: One for each day, with no limit on the length of the note.
Number of appointments: 48 for each day. How active can you be? One needs time to relax as well.
Number of contacts: No limit on the number of categories, and the number of contacts within each category. There is no limit on the length of the contact information. While this is only contact information, you may store a description of the person, his (her) life history, where you met him (her), and why he (she) is in the database at all...
Lists: Any number of lists, with no limit in the size of each list. Have you ever encountered the situation where your work is complete and you can relax?
Number of holidays and anniversaries: 365 (366 in a leap year).

If anyone wants more data space, just e-mail me, and I will provide...

The behavior of the program is undefined if limits (when present) are exceeded. Basically, this means that I have not incorporated any error checks, and that if you lose your data, the GPL protects me from any liability.

But seriously, things are expected to improve For example, backups will (may?) appear in a future version. Does Evolution do backups?


-:IMPORTANT:-
The program does not make backups at present!

Do remember to make backups of files in the ~/.tdj3 directory in order to avoid data loss.


Availability

The Daily Journal 3 is available as source code to compile on your own machine, as well as packages containing binaries to install and use.

Compiling the source

Untar and unzip the downloaded package with the command:


tar -zxvf tdj.tar.gz


This will create a subdirectory called tdj3-dist” and extract all the files there. In particular, if you are compiling your own binary, the project file to load into QtCreator will be available in this location.


You need QtCreator and the development libraries of Qt from www.qt-project.org. Get the latest version, and install it somewhere in your home directory. Open QtCreator, and load the project file tdj3.pro which is available in the source package. Select the version you want to build (debug version or release version) and hit Ctrl-B. If there are no problems, this should build the binary.


The program has been compiled and tested on both versions 4.8.2 and 5.3 of Qt, on Debian Linux 7 (Wheezy). There are a couple of warnings, which can be ignored, I think, since it does compile a running binary. Ctrl-R executes the binary. The binary may be kept in directories separate from the source subdirectory, depending on how QtCreator is configured. This location will be available within QtCreator.


When the program is executed, tdj searches for a hidden subdirectory called “.tdj3”. If this is absent (which will be the case when it is executed the first time) it issues a notification that it will be created. Subsequently all data is stored in this subdirectory. It also searches for the subdirectory “.fltdj2”, which is where the older version of The Daily Journal used to store its data. If found, it will notify you and convert all the earlier data to the new format.


Exit the program and copy the help and image files in the downloaded package to the hidden data subdirectory. Either use a file manager or open a terminal and do the following from within the tdj3-dist subdirectory:


cp *.png ~/.tdj3/.

cp tdjhelp.* ~/.tdj3

cp COPYING ~/.tdj3


Remember to put the dot (".") in the right place. This will make the on-line help available when the program is running.


The location of the locally compiled binary will be available from within QtCreator. From this location copy the binary to a place from where everyone working on the computer can run it. In a terminal window, first become superuser:


su

<type the root password>


Then change to the subdirectory containing the binary and do:


cp ./tdj /usr/local/bin/tdj


Now return to normal user mode by typing:


exit


Installing the binaries under Linux

If you don't want to compile the binaries yourself, separate packages contain the 32-bit and 64-bit precompiled binaries of the program. However, they require the Qt libraries at run-time. These may not be available on your installation of Linux, and will have to be installed separately. This can be done using any package manager. Most probably, as of writing this, Qt version 5 libraries are not included in the standard repositories for most Linuxes. However, Qt version 4.8 are available for all distributions of Linux, hence the supplied binary has been built using this version.


You can download and install the run-time libraries yourself. I have, for your convenience, included the required run-time libraries of Qt version 4.8.2 in the binary package. They should be copied to the subdirectory /usr/local/lib of your system. In order to do this you need to be superuser. The steps described below will do all of this.


1. First, open a terminal. Determine the architecture of the kernel running on the computer with the command:


arch


or equvalently:


uname -m


If the result is "i686" then the architecture is 32-bit, and you need to install the package named “tdj3-bin-i686.tar.gz”.

If the result is "x86_64" the architecture is 64-bit, and you need to install the package named “tdj3-bin-amd64.tar.gz”.


2. Download, untar and unzip the package with the command:


tar -zxvf tdj3-bin-XXX.tar.gz


In the above “XXX” stands for “i686” or “amd64”. This will create a subdirectory called tdj3-bin-XXX” and extract all the files there. This contains the help files, the run time libraries, and the executable.


3. Change to the newly created subdirectory:


cd tdj3-bin-XXX


4. As superuser, copy the Qt run-time libraries to /usr/local/lib (remember the "dots" below):


First become superuser:

su

<type the root password>


cp ./lib* /usr/local/lib/.


5. Then run the "ldconfig" command to register the libraries:


ldconfig -v


6. Copy the The Daily Journal binary to a place from where everyone working on the computer can run it:


cp ./tdj /usr/local/bin/tdj


7. Now return to normal user mode by typing:


exit


8. Run the binary:


tdj


This will create a hidden subdirectory called ".tdj3" which is required to store the data created by the program. Exit the program.


9. Copy the help and image files to the hidden data subdirectory. Remember to put the dot s(".") in the right places:


cp *.png ~/.tdj3/.

cp tdjhelp.* ~/.tdj3

cp COPYING ~/.tdj3


This will make the on-line help available when the program is running.


Remember that the precompiled binary requires the Qt run-time libraries. If these are not found there will be an error message to that effect when executing the binary.


Installing the binaries under MS-Windows

The source code can be compiled using QtCreator for Windows, as it is, with no modifications. If you don't want to do this, a zipped archive named tdj3-bin-win.7z containing a 32-bit binary executable is available for download.

This package needs to be extracted using the utility 7z, which is a freely available program. This will extract all the files into a subdirectory. Along with the executable the necessary libraries have also been provided. All of these should be in the same subdirectory.

Running the program once will create the data directory ".tdj3" in your user area. The path will typically be something like :
"C:\Users\{your-user-name}\.tdj3".

Copy the PNG, PDF, and HTML documents, as well as the file named COPYING into this data directory using the Windows file manager. Run the program from the location where it has been extracted. 

The binary has been created using Qt version 4.8.2 and MinGW version (coincidentally!) 4.8.2. 

That's it.

About The Daily Journal 3

The Daily Journal 3 is copyright, (C) 2001 – 2014, Kartik Patel,and is released under the GNU General Public License, version 2 or later. Please read the COPYING file for detailed terms and condition of this license.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

That covers it, more or less. Email me if there is anything left out, or there are problems in istallation.

Enjoy!

Kartik Patel
E-mail: letapk@gmail.com

http://kpatel.x10host.com