Planner et al
This Document provides information about the Emacs PIM and Wiki publishing environment.
Introduction
On my search how to organize work I found planner-el, Looking somewhat closer, schedule.el and emacs-wiki appeared. And it integrates with diary and calender, Big Brothers database and and and ... and as yet stated by someone else: emacs even washes your dishes and cleans the house.
However, I did not find documentation on the overall picture and good-old texinfo files for the programs are not available either.
This documents try to fill this need, hopefully not only for me but for others too.
What is PIM anywhere
A Personal Information Manager - PIM - is a program or item which is supposed to help you organize your live, by storing and giving back bits of information which are tedious to remember but important to use, like:
- Addresses of Persons or Institutions
- Tasks which you have to acomplish
- Dates and Appointmentes
- Notes about what you are doing, thinking, reading, listening, ...
etc.
Devices like Diaries, Notebooks, Pencils, Agendas, Alarm Clocks and the like are traditionally used for this tasks, but today you can also use PDA's like the famous Palm Pilot or competing productos, which incorporate these functions in an electronic device, in fact a small computer with its own small operating system and aplications. There are also lots of computer programs for different Desktop operating systems (no offense to anyone) which mimic these functions, providing more sofisticated interaction, but less mobility.
Planner et al describes diferent computer programs for the Elisp programming language, which convert our favorite editor - Emacs - into a PIM.
About this Document
This document was produced with Emacs Wiki, and should be available in the following formats:
It is copyright 2004 by Georg Lehner <jorge@magma.com.ni> under the Gnu Documentation Licence.
A quick glance at the toolbox
Unlike other PIM aplications, Planner et al is not a single system trying to provide all functions, but it is a loose collection of tools which work together. There is also a distinct philosophy behind this collection: the perception that planning is not primarily a systematic task, but a creative one 1. It is perceived, that you will enter your information in a immediate, unstructured, even caotic way, and the planning process consists in ordering and revisiting this information.
However, let's take a brief look at the different tools, we follow no particular order in presenting them.
- The Big Brothers Database - is where your contacts are stored
- The Calendar and the Diary - is where you navigate in time
- Planner Mode - manages tasks and projects you are working on.
The Planner is heavily based on the EmacsWiki Mode. We provide some information about its interaction with Planner Mode in a separte chapter: Emacs Wiki and the Planner.
The Planner itself is split into a bunch of diferent tools, to interface with the tools themselves and with the outer world.
[1] Reference to Web-pages of John Wiegley/README, etc.
BBDB - The Big Brothers Database
BBDB is an Emacs library, which helps you gather rather silently Email Addresses (and other information) of people, while you are reading mail, etc. On the other hand, it offers you this information just in the moment you need it, for example, if you are writing an Email you just type part of the name of the destinee andBBDB comes with it's own documentation1 and has to be customized to work together with your particular configuration.
There is also a programm: syncbbdb, which syncronizes your Big Brothers Database with the Palm Pilot.
The whole database of BBDB is contained in a file called ".bbdb" in your home directory.
What I don't like about bbdb:
I find it difficult to maintain the database, and to insert new contacts by hand.
[1] Link to the BBDB info documents.
Diary and the Calendar
This two aplications are part of standard Emacs, so you just use them, no need for separate installation.The Diary stores appointmentes in a file name "diary" in your home directory. An appointment is a date, eventually an hour and some description. Appointments can also be ranges of dates, or repetitions, like each monday, or Aniversaries, which happen, well - once a year.
The Calendar is an applications which lets you navigate through time. It shows you (by default) a range of three months from now. Amongst others, the calendar can calculate and show special days, like Xmas, Yom Kippur or when will Thanksgiving Day happen this year.
The Calendar also can mark up all days for which you haven en appointment, and show them, as well as it is used to enter a new appointment: you just place the cursor on the respective day in the calendar and "i"-nsert a "d"-iary entry.
A nice aplication of the Calender is, that it can be printed out in several pretty formats, with or without your appointments, so you have a profesional looking hardcopy of your dates.
--- What I don't like about the Calendar:
The Calendar is not internationalized, so all in- and output is in English.
Emacs Wiki and the Planner
Planner Mode
Projects
Projects are a concept from the EmacsWiki. Each project consist of one or several Wiki pages, which are hold in one or several directories.
Setting up a project
Team planning
To set up team planning we distinguish three diferent realms: me, the team and the rest of the world. We need to set up our Project in a way, that
- our private information remains visible when visiting the project: notes, contacts, appointments, etc. so we can take them into account when planning events.
- Team relevant information is inmediatly available to us, and we can contribute information to the team
- The world can get to the relevant information about the project.
Since we have several diferent tools, we need different setups for each of them. The general aproach is the following: Each database file is split up into a personal database file and one database file for each member of each project, including on for yourself.
The personal database file is configured in a way, that it includes all other files when the Planner or any of the tools works on it.
All project database files are shared or syncronized in a way, that the other persons files can be accessed at least read-only, and your project-oriented file can be accessed read-writeable.
For sharing you can use for example nfs, cifs, or the like, for syncronising - which is rater helpful when you work offline - you use unison, rsync, scp, etc.
A posible setup in your homedirectory could be (let your account be "jorge"):
~/ ----- projectA/ ----- jorge/ diary, bbdb, etc.
john/ diary, bbdb, etc.
jane/ diary, bbdb, etc.
...
------ projectB/ ----- jorge/ diary, ...
john/ ...
...
diary
.bbdb
If you have to share your personal diary entries with your secretary or close friend you can create a distinct project, maybe named after your account and make your personal files symlinks to their homologs in this very personal project.
BBDB
At this moment I don't know how to manage includes with bbdb
Diary
[You have to use Fancy mode and #include].
Planner
The emacs-wiki-directories have to be configured in every project in such a way, that the first directory (where pages are created by default) is your personal directory in the project.
I don't know, if it is wise to create a subdirectory for the projects Wiki Pages, or if putting ~/projectA/jorge/ into the projects emacs-wiki-directories would be the most structured aproach
~/projectA/WebWiki/ -- Web publishing
jorge/Plans/ -- Wiki Pages
/bbdb
/diary
What Jorge needs to learn
already available
- export vCards from BBDB
- import vCards from BBDB
- scheduler
don't know yet
- ex/import Appointments from/to vCalendar
- ex/import diary entries, Tasks from to Palm Pilot
Wishlist
- Projects are the natural way to organize several Emacs Wiki's, however, Project setup and configuration is very weekly supported and complicated to do by hand. This needs improvement, maybe by a module called "Portfolio".
- Directories: Actually have no apparent use. However they would be interesting, if the 'actual' directory could be selected interactively and by configuration/customization. This would, at least, provide support for team colaboration, as each team member could work on a different directory.
- Emacs Wiki as well as texinfo markup lack support for menus or indexes. With imenu this could be acomplished easily when working with Emacs, without disturbing the visual appearence. A table of content Tag could be invented, which, as a button or similar, provides a mouse menu to navigate inside the Page/Section. This Tag could be used to incorporate the Table of Content/Menu of a certain section in the texinfo output.
- In the same line: Paper publishing needs Copyright and other information, which should be able to insert into the original Wiki Page. My guess is: If we manage to get (almost) complete texinfo support, Latex, rtf, docbook will be sufficiently complete to use Emacs Wiki publishing even for printing matter.
- Outline mode is great for large Wiki Pages. However if you publish a folded Page, only the currently visible regions are published. Maybe a variable could be created, to decide if a buffer should be unfolded before publishing.
Bugs
- if the last line on a page is an unnumbered list and there is no newline on the page, the list item is rendered in html as a single paragraph.
- Email address rendering eats the first part of the domain of the
email, I guess because it is
@fist.part.of.domainand@get's interpolated. - The simple Table chokes on InterWiki Links