How I use planner.el
Migs has this to ask:
I'm very curious as to how you get so much done with a console based (?) text editor. Like do you have sort of summary view of your calendar, tasks, etc in emacs? Maybe you can post a few screenshots of what you look at everyday. Personally, I'd be lost without an app like Evolution or Korganizer. I can't imagine how you manage all that with emacs.
Migs, that is precisely it. planner.el is an Emacs module that gives me a summary view of my tasks, schedule, and notes inside Emacs (which incidentally has a nice graphical interface, too). Together with Muse, it lets me easily manage my website. Another ultra-handy thing is M-x remember from remember.el, which pops up a buffer asking me what I want to remember and stores a note in my daily planner page. For example, this is one such note created by remember.el. A patch contributed by Thomas Gehrlein allows easy navigation of planner pages - simply select dates from M-x calendar.
Personally, I prefer this text-file-based system to Evolution or Korganizer. I remember dropping down to M-x grep to quickly search for something in my daily planner files. I can backup my data files in a .tar.gz. I can perform diffs and version control (although I haven't gotten around to doing so yet!). I can even run it in conjunction with the Remembrance Agent.
My tasks and notes can be linked to my address book through BBDB integration with Planner, and I've modified the BBDB url support to take advantage of certain fields in my database. For example, typing [[bbdb://Sacha.Chua][Sacha Chua]] results in the following link: Sacha Chua. Locally, this brings up the address book record that matches that regular expression. On the Web, it is transformed into a URL following these rules of preference: blog, web, e-mail. That allows me to link to other people and even sites much more easily than HTML or the usual blogging systems might let me do, since HTML and http://www.blogger.com still require me to type the URLs to which I want to link.
Because all of these things run inside GNU Emacs, I can easily access all of my data. I can embed Emacs LISP code into my planner files and have them automatically evaluated and displayed. I can switch to my planner file easily from my IRC chat session or from my mail. I can hook into built-in Emacs functionality or make use of modules developed by other people. It's tons of fun!
And I didn't even write planner.el. Ubercoder John Wiegley did. I discovered planner.el around 2001.11.03. I liked it so much I e-mailed John Wiegley to volunteer tech support and bugfixing for it, and he suggested that I take over maintaining planner.el instead. (2002.11.21) I've since then turned it over to Michael Olson and the totally awesome Planner community. Open source is so much fun!
People interested in duplicating my setup may want to check out my configuration files. They are all found in my notebook/emacs/ directory. Files of interest are planner-muse-config.el and remember-config.el. Please write to me at [email protected] if you have any comments or suggestions, and don't hesitate to ask for help in setting up a wonderful personal information management system in Emacs.
I use a PHP hack to display a monthly calendar, comments, and previous/next day links. These files are relevant:
- ../wiki/.header - ../wiki/.footer - ../wiki/include/header.inc.phps (rename to header.inc.php) - ../wiki/include/footer.inc.phps (rename to footer.inc.php) - today.php - planner-include.php - calendar.php
It currently requires a lot of hand-hackery. Please e-mail me at [email protected] or find me on irc.freenode.net#emacs if you're interested in using something like it; I can help you install it, and your comments and suggestions can help me improve it.
Note: This script currently rescans all files in the wiki directory every time it's loaded. Maybe we should generate a dates listing after publishing?
Note: I use PHP because I didn't want to have to figure out which files I needed to modify, although that's easy enough - you can traverse two lists in a merge, and you can iterate through all the ones in the same month... If efficiency is important, we might be able to move the date index creation into the wiki publishing process.And yes, you can include PHP in the body, too. In fact, you can gleefully mix LISP and PHP code, like I'm doing in these pages, but you should be warned that it can be quite difficult to debug. The LISP code gets evaluated when you publish, the PHP gets xparsed when served - keep that in mind and make sure all your tags match...
Clair Ching has posted a wonderful guide to Planner, complete with screenshots. Check out the following links:
To get the initial commit: darcs get -m "Initial commit" http://sacha.sachachua.com/notebook/darcs/dev/planner/ To get succeeding patches: darcs pull http://sacha.sachachua.com/notebook/darcs/dev/planner/ And then afterwards: darcs pull If you want to be picky darcs pull --interactive
remember-el is also available at http://sacha.sachachua.com/notebook/darcs/dev/remember/
Niklas Morberg sent me an e-mail about planner.el support for Dave Allen's "Getting Things Done" method. This is the first time I've heard of it, but it'd be nice to see if we can hack planner to support it.
The Coach's Corner on the linked site has well-thought articles.
I archive as much of my mail as possible because it's easy to search through information. Creating tasks from e-mail messages allows me to quickly deal with e-mail associated with actions. I can create vague tasks and refine them as necessary, although the associated task is usually clear. Gnus hides old messages, so my Inbox view shows me only unread messages unless I specifically ask for archives.
I prefer to archive everything instead of making keep/no-keep decisions for my e-mail. I have false positives (mail that I thought might be important but which I never referred to again) and false negatives (mail I hardly looked at, but needed to find afterwards). I rely on search and filtering tools to quickly pull relevant messages out of my archive. I think that this is more effective than frequent review and selection of messages to be kept.
I remember reading a paper about e-mail archiving strategies. I ran a full-text search for a phrase I remembered from the mail, and I turned up the PDF that the author sent me. You can look up Richard Boardman's paper on "'Stuff goes into the computer and doesn't come out': A Cross-tool Study of Personal Information Management"--it's an informative survey of different e-mail filing techniques.
The GTD method suggests determining what the successful outcomes are ("projects"), what my next action is and what I am waiting for. planner.el supports "next action" and "waiting for" with unfinished and pending tasks. I specify desired outcome in the task description. I don't have a concept of "Project" yet, unless you count the plan pages.
Visualizing the expected outcome makes it easier to plan tasks and overcome procrastination. planner.el has no explicit support for reminding the user of the positive outcome associated with the task, but it can be included in the task description or on the linked project page. A better approach, however, might be to have the expected outcome show as a tooltip or minibuffer message in order to provide better positive reinforcement.
John Wiegley's essay on planning uses top-down stepwise refinement to break general tasks down into smaller and smaller tasks until they can be scheduled. This overcomes procrastination by making planning a semi-mechanical process and simplifying the tasks until they are no longer intimidatingly complex.
In contrast, the GTD method suggests starting with the immediate next step--a bottom-up approach. This is similar to the way I use planner.el, planning one or two tasks in advance. Occasionally, however, I find it useful to create overview tasks. This gives me an overview of the entire project and allows me to get a handle on my timeframe.
I've used other personal information managers before, but Emacs+planner+remember makes it easy for me to keep track of my work. If I think of something to be done, a few keystrokes will put it on my TODO list.
I capture a lot of information. remember.el makes it easy for me to create short blog entries linked to the current context and associated with a date and planner page.
So yes, I do 'this' for everything. Being able to reschedule tasks for future dates means I don't have to worry about things until then. Of course, I tend to procrastinate a fair bit (specifying tomorrow with +1 comes in handy!), but it's nice to know that I'll eventually run into those tasks again. If planner.el reminded me of the benefits of completing the task, I'll probably be more motivated to finish them. (More description text?)
Oy, here we go with that procrastination thing. Guilty! Being able to reschedule tasks does make it all too easy to push things onto a pile of things to be done later. However, having all these actions floating around does mean I have no excuse to slack off (unless scheduled in). This particular essay is a bit on the fluffy side, though.
This article points out the need to examine how we work, not just make superficial changes to our space.
Ah. "Projects" are like plan pages in that they are collections of tasks. However, plan pages can also be roles or contexts.
planner.el needs a good way to review active projects. Right now, people can manually maintain a list. However, one needs to visit all the individual project pages in order to visualize the end results or see how far one has gotten based on the tasks.
A graph would be nice. It could show only active projects (projects with at least one unfinished task) or all projects (possibly limited by date or regexp.) Progress could be measured by ratio of unfinished tasks to all tasks, or manually indicated by a #progress directive or some kind of progress marker in each task.
I review tasks every day, but maybe I could also review the end results every week as part of an accomplishment report. The accomplishment report could list statistics for tasks finished (grouped by project) and allow easy viewing of current projects (all projects mentioned in tasks/notes this week). How can we modify planner.el to support that?
Hmm. Maybe we should phrase our tasks and notes in a positive manner. =)
- From the FAQ
How can I can remember things that are on my calendar but aren't time-specific?
Sounds like the problem I have with un-dated tasks. GTD gets around this by having people review pages based on their context. After going through all of your day-specific tasks, you can then go through your context-based action lists to find out what to do next.
Context-based action lists is probably more efficient if most of your work is guided by context. It can be simulated in planner.el by associating the tasks with plan pages for each context. However, since most of my work centers on the computer, I like seeing a list of all my tasks. I prefer to sit down and plan my day beforehand, rearranging tasks so that I put similar tasks together. If the opportunity arises, I can do tasks out of sequence.
In GTD, day-specifics are tasks that MUST be done on that day. I prefer having my low-priority tasks still visible, using high-priority tasks and deadlines in task descriptions to mark the things I should do by today. Some people plan their tasks the GTD way, though. Specifying 'nil' for a task date allows you to associate it with a plan page but no date page. Scheduling only day-specific tasks makes sure you don't ignore your task list, so I guess that's a good thing.How do you handle weekly tasks that are not specific to a particular day of the week?
I assign weekly tasks to a particular day. Makes it easier to get into the rhythm of things.Most of the day I am dealing with actions I am expected to do. Most of them have a due date. Where should I place my reminder?
Okay, I'm starting to get the hang of the next-action thing. To support GTD, I'd need a way to get a quick overview of the next-step tasks as part of the list of active projects. I'd also need to be able to look at today's schedule and today's day-specific task list.
Tech note: It looks like planner.el can be extended to do this by adding a tag that gets replaced by project outcome and the first task. The main problem we need to solve is that tasks can appear on more than two pages. I think this can almost be done with existing tools. However, planner-copy-or-move-region shouldn't mess with these tasks. It's probably better to create new markup rules for them...Is it true that David Allen uses the generic Palm Desktop and handheld software, and doesn't particularly recommend any add-on programs?
I find remember.el an excellent way of tracking events, as it gives me a historical log as well as a topic-tracked one. I need to find a way to reassign topics and add multiple topics to a note. This depends on getting note IDs to work.Areas of focus vs. someday/maybe
Tech note: Hmm. This sounds like a good candidate for automatic rewriting. People can manually maintain a list of projects, and have outcomes and next tasks automatically filled in.How do you recommend keeping project notes and/or support material?
Ooh, planner hyperlinking is great for that. I keep most of my support materials in my planner wiki and hyperlink out when I need to refer to external sources or files on my hard disk.
Hey, this agenda idea is interesting.
Sounds like a good idea too. Hmm. I can page through the week easily, but it would be nice to have an accomplishment report.
Time to borrow a Palm...
Package: multisync Description: A program to synchronize PIM data Synchronize calendars, addressbooks and other PIM data between programs on your computer and other computers, mobile devices, PDAs or cell phones. Currently it has client plugins for Ximian Evolution and IrMC mobile clients (cell phones such as
SonyEricsson T39/T68 and Siemens S45i) via Bluetooth, IR and cable. To get all plugins install libmultisync-plugin-all. . To get all Homepage http://multisync.sourceforge.net
Can someone write a plugin for PlannerMode? =)
A friend and I were thinking of papers to submit to the Loyola Schools Review. I joked, "What could I write about PlannerMode?" It's an organizer that I happen to really like, but which I don't think I can get other teachers to adopt (Emacs'll scare the heck out of them!).
I thought about why I liked PlannerMode. Planner as a TODO manager isn't particularly special. Although I can assign tasks to categories and so see a breakdown of what projects are taking up my time, Evolution and Microsoft Outlook provide more powerful task support. In other task managers, you can e-mail tasks, assign multiple categories and fill in all sorts of metadata. You can even synchronize your tasks with devices like a phone or PDA. So why use Planner?
I realized that integration into my way of life and automatic context clues are what really make planner tasks worth it for me. I don't have to switch to another application to create a task. I can just hit a keyboard shortcut. Planner uses a minibuffer to get the task description. My windows are not rearranged in any way, and I can look at the data that's relevant to a task. Not only that, tasks automatically pick up context clues, like whom I'm talking to on IRC or the file I'm editing at the moment. This cuts down on the explicit context I need to include and makes it easier for me to bring up the task again.
As a scheduler, PlannerMode is also not particularly distinguished. Sure, it can display my ~/diary, but for that matter so can M-x diary. Evolution and Outlook can give me a more graphical view of my time, sync with my PDA, and coordinate my schedule with other people. Those applications support detailed schedule entries with powerful cyclic options. On the other hand, PlannerMode gives me a personal, plain text view and (at least the way I use it) requires me to edit a separate file to add new appointments. However, it does have one advantage - my schedule is always loaded. I used to use Outlook on Windows, but having my schedule in a separate application meant that I actually looked at it very rarely, as I had turned off reminders because they got annoying.
PlannerMode's notes, however, are what really convinced me. I can hit a keyboard shortcut from anywhere and type my notes into a buffer which automatically keeps context information. After typing the note, I can then categorize it. I think that the critical thing here is that interruptions--fleeting thoughts--don't break my flow. I can just pop up a remember buffer, stow that thought away somewhere, and go back to it whenever I want. In contrast, creating a note in Outlook means switching out of my application, making a couple of keystrokes, typing the note in, and then switching back. The context switches make it hard to keep track of where I am and what I'm supposed to remember. Not only that, I need to enter context by hand. Even though I can color my notes and reorganize them in Outlook, I find the context switch too expensive. I used to keep notes in other knowledge management tools as well. Some applications allowed me to drag-and-drop links into the current note, and that was cool. But that required a manual action, and those applications didn't feel integrated into my way of working.
I guess that's why I like PlannerMode. Unlike other organizers which don't know anything about the applications I use, PlannerMode tries its best to integrate into the way I work, and it's easy to extend. Fortunately I do almost all my work in Emacs, so I can think of my organizer as integrated into my e-mail client, Internet Relay Chat client, web browser, file editor and even games. It automatically picks up context clues from these applications and allows me to easily jump back to relevant files. It doesn't distract me. It allows me to key in data and then it gets out of my way.
The processing that happens in the background (publish to RSS and PHP for me) is a bonus, and publishing my task list and notes online has greatly helped me. It gives other people a way to see what I'm working on and what I've planned for the future. Occasionally people write in with additional resources and helpful tips.
This made me wonder how to integrate it with more applications and make it available to more people. Yes, even the vi users and the non-Linux/Un*x geeks. Here are some of the thoughts that went through my head.
- What if everyone could have the equivalent of M-x remember even if
they're not using Emacs?
- What if we could capture context from any application?
- What if remembered thoughts could have multiple categories and
could be reorganized later?
- What if we could use statistical methods to suggest categories for
text and find related items?
- What if whenever you interacted with the system, related notes would
show up? When you open a file, browse a page or look at a contact, a sidebar could allow you to quickly jump to related topics.
- What if you could visualize your remembered thoughts to see how
they cluster around certain topics?
- What if you could perform powerful search operations on
- What if it could pick up even more context clues, tying together
different applications? For example, if you do your e-mail in Eudora but keep your main contact information in Outlook, wouldn't it be nice if remembering from an e-mail also linked in the business card from Outlook?
- What if we could select some of these remembered thoughts and
publish them in different formats, automatically or manually?
- What if we could share our stream of remembered thoughts with other
- What if computers could generate remembered thoughts as well, and
we could select which ones we'd like to include in our streams?
The more I think about it, the more I feel that this is worth studying further. If we develop this idea, other people can benefit from it - not just those who incidentally use it in the course of using PlannerMode! John Wiegley was onto something good here, and it'd be a shame to keep it only within a niche community. I'd like to make it easy for my mom to use this. =)
For my MS degree, I want to develop a framework for remembering thoughts from different applications. This means separating the front-end, the back-end, and the context gathering functions. Right now, everything is within Emacs. I'd like to split it up so that people using windowing environments like GNOME or KDE can get a nice dialog box if they want and people using other editors on the console can use their favorite editor to add notes. I'd like to split the backend up so that people can remember to SQL databases, plain text files, mail--anything and everything. I'd like to split the context gathering up so that application developers can easily hook into the system.
For my PhD, I want to look into managing all of this information. How do I find relevant documents now that I'll be capturing vastly more information? How can I make browsing my personal data store easier? How does it change my work style? Can I think of interacting with my computer--working on e-mail, writing documents, etc.--as interacting with a stream of remembered thoughts? Can it be my primary interface? If we shared our remembered thoughts with other people, how would that affect the way we work?
Related projects and concepts:
- Yale's Lifestreams project (concept of interaction with
time-ordered data in streams) - MIT's Remembrance Agent (implicit queries for relevant files) - MIT's Haystack - Zoe - Personal information managers - Knowledge managers - Information retrieval - Intertwingularity - Web logging
Following the specifications at http://ftp.ics.uci.edu/pub/ietf/uri/draft-mirashi-url-irc-01.txt , planner-erc.el now creates links of the form
[[irc://orwell.freenode.net/delYsid,isnick][Chat with delYsid on orwell.freenode.net%23emacs]]
Travis B. Hartwell wrote:
I patched what I hope is the most recent version of planner-diary.el from tla to optionally utilize cal-desk-calendar. cal-desk-calendar is an add-on for diary-mode which displays the day's events in a neat "desk calendar" like way. I wanted to be able to have this pulled into my day planner pages instead of just a list of the scheduled event. To do this, I added a variable 'planner-diary-use-cal-desk-calendar', which when set to non-nil will cause cal-desk-calendar to be used. I patched planner-diary-get-diary-entries to handle this.
A screenshot of this in action: http://www.travishartwell.net/planner.png
To get cal-desk-calendar.el: http://sacha.sachachua.com/notebook/emacs/cal-desk-calendar.el
My changed planner-diary.el: http://www.travishartwell.net/planner-diary.el
My elisp skills aren't the greatest, so I'm open for corrections or enhancements. I hope others can find this as useful as I have.
E-Mail from Travis B. Hartwell
From Rainer Volz:
In case anybody has the same problem, I (probably) found the source and a workaround.
The error "Symbol's function definition is void: TeX-add-style-hook" is caused by the footnote-mode, which in turn is loaded by muse-mode, as a default minor mode in "Muse/Muse Mode/Muse Mode Hook".
Turning footnote-mode off lets me enter muse-mode (and planner-mode) without the error. Since I rarely use footnotes I can live without footnote-mode.
If you can't: several messages found on the net seem to indicate that the real source of the problem is a path/duplicate file problem between the normal texinfo.el and a texinfo.el supplied by Auctex. footnote-mode tries to load the normal texinfo.el but gets the Auctex version, which then tries to run the function "TeX-add-style-hook". A solution could be to change the load-path for Emacs libraries or to deinstall Auctex.
Hope that helps, Raine
E-Mail from Rainer Volz
E-Mail from Gary V. Vaughan
btw i've been using it a week, and I've definitely found it to be a big help when things are hectic. for example, right now we are hiring several people, and there's a lot of paperwork involved, so plannermode helps me keep track of how much I've gotten done and what remains to do. also, I have to put together computers for them, and often the request comes in suddenly in an email, or someone just shouts it to me (which is where my remember-keybinding comes in) I also use remember-planner to keep track of phone calls, to record the time when I called this or that vendor, and to jot down what they said. very good recordkeeping.
Chat with tang^ on niven.freenode.net%23emacs
(defcustom planner-publishing-markup '(["^#\\([A-C]\\)\\([0-9]*\\)\\s-*\\([_oX>]\\)\\s-*\\(.+\\)" 0 planner-markup-task] - ["^\\.#\\([0-9]+\\)" 0 "** "] + ["^\\.#\\([0-9]+\\)" 0 "** "] sachac: an id="1" is just not allowed in XHTML 1.0 Strict
PlannerMode now supports cyclic tasks through planner-cyclic.el . Not bad for an hour of hacking. Comments welcome!
johnsu01: What kind of stuff do you do every Tuesday, anyway? =) johnsu01: I've been thinking of adding cyclic task support to planner-id... =) sachac: that would make me happy. cyclic tasks are what I have been using the diary for. obviously not perfect because they are not actually tasks :) sachac: I like to have the recurring tasks pile up, so i know how far behind I am in my German, reading, etc :) You'll be interested in planner-find-task and planner-create-task-from-info. You'll need to hook into something that gets run whenever you open a file - look at planner-diary for ideas. Create a task based on the page name, search forward for it, and if you don't find it on the page, create it. Something like that?
ajk on the #emacs channel wants to know if anyone is working on Palm sync for planner-diary. "I know there's one that just writes diary stuff to your Palm and removes duplicates, but I was thinking of writing something that truly syncs the two."
I don't have a Palm, but I think this feature would be really cool.
In related news, toppy (also subscribed to the list) is thinking of working on Nokia phone support using the gnokii toolkit. If you're interested in getting planner to sync with the other gadgets in your life, here's your chance to make that happen! =)
Planner tasks from notes should update the notes page that they link to while maintaining the special links. This means that planner-jump-to-linked-task needs to be smarter.
Let us look at case 1: Link to plan page note
The plan page has a date link, no anchor. The date page has a plan link with an anchor. Example:
#A1 _ Foo (2004.03.11)
#A2 _ Foo ([[SomePage#1][SomePage]])
Problem! The plan page does not contain enough information to reconstruct the link if necessary. I can't think of a neat way to fix this yet. Can anyone?
Yvonne Thomson contributed Wanderlust mail client support for PlannerMode. Check out http://sacha.sachachua.com/notebook/emacs/emacs-wiki/planner-wl.el .
dto on #emacs suggested a way to create tasks associated with planner pages. Arch repository and dev snapshot should have working version of this.
Adding a prefix argument to M-x planner-create-task-from-buffer will make it prompt for the plan page. If the plan page is different from the current annotation, it will move the annotation into the description of the task. Any other suggestions? =)
If you're having problems with emacs-wiki not highlighting the first time you view a buffer, you're probably set to use jit-lock or lazy-lock. Don't. Use (setq font-lock-support-mode nil) instead, so full font-locking will always be performed. You may want to use the list so that this is only done for planner-mode and emacs-wiki-mode. =)
Global planner IDs should be hyperlinks in their own right. They are of the form
plan://id-number or plan://id-number/page,page,page,page
But then how do we define anchors and references?
Reference: plan:///id-number or plan:///id-number/page,page,page,page (note: triple-slashes)
plan:id-number[/page,page,page] for the anchor. Double-slashes will not be updated.
I want IDs because I'd like to e able to update notes in case of typos.
Then this is no longer emacs-wiki-id, but really just planner-id.
Yikes, I will so break the existing planner-id support with this... There must be a better way. At the very least, I should offer a conversion function.
Actually, subcategories are already handled by separate plan pages, so I don't need subtopics any more. I would, however, like to see all the note headlines, possibly bounded by certain dates. That would be fun. In which case, I don't need to merge anything in from planner-notes - I can just work with the export functions I already have in planner-experimental.
- A list of all the notes related to a BBDB contact. I'd have to parse
out all the bbdb links, covert them into canonical names and match them against the records, but it would be fun.
- General emacs-wiki hyperlinks.
- Recurring tasks.
- Ongoing projects and the next task in them. Upon task completion,
the next task in the project would be scheduled. Actually, this is already handled by future tasks, but this flexibility might be fun. Forces you to think of the next step.
- Monthly headlines in a calendar.
- Notes index by month, by year.
- timeclock integration into my Schedule.
I wonder if it might not be worth implementing this for PlannerMode...
It should compile cleanly under Emacs 21.3 (CVS). I'm still trying to figure out how to install the fsf-compat package under XEmacs so that I can get it to compile cleanly there.
WARNING! Many user-visible changes. In particular, you will now need to require a bunch of other things in order to get the old behavior. I should figure out how to set up the appropriate autoloads. In the meantime, add some variant of the following to your .emacs:
(require 'remember) (require 'planner) (require 'remember-planner) (require 'planner-experimental) (require 'planner-bbdb) ;; (require 'planner-diary) (require 'planner-gnus) (require 'planner-id) ;; (require 'planner-notes) (require 'planner-rss) ;; (require 'planner-schedule) ;; (require 'planner-timeclock) (require 'planner-w3m)
This will no doubt break a number of things. Please complain loudly. If you want the old version, you can get a tar.gz from http://sacha.sachachua.com/notebook/emacs/planner/planner-current.tar.gz .
I've added `planner-rss-category-feeds' to planner-rss. This examines the text of the note and copies it to different RSS feeds depending on the regular expression match. In the future, I might actually just run a lot of hooks on the thing.
If this works, I should have a new entry in http://sacha.sachachua.com/notebook/wiki/planner.rdf
planner-rss.el should now be ready for (almost) general use. You can get it from http://sacha.sachachua.com/notebook/emacs/emacs-wiki/planner-rss.el . To use it, add
(require 'planner-rss) (add-to-list 'remember-append-to-planner-hook 'planner-rss-add-note t)
to your .emacs, and use M-x remember-to-planner.
A really hairy hack promises to let me do RSS export of blogged entries. It's in rss.el right now. Warning - it's absurdly nasty.
in reaction to http://www.sfu.ca/~gswamina/BlogsAreDead.html
I've had a blog for roughly a year and a half now, and I think I'm pretty much settling into the routine. Reading Ganesh's BlogsAreDead post, I think about how I use Emacs to keep track of my notes.
Linearity - Blogs are linear, ie usually in chronological order. My knowledge/experience is non-linear (fortunately). There is an obvious mismatch here. I don't see how I can write coherently about recursive functions, pipelines, privacy and chicks in the same post.
I split this up into several remember-to-planner-plan-page-dwim posts, usually cross-linking them with a topic page.
Lack of time - Everybody seems to be bringing this up. I don't post very often, but when I do, they are long ones. If you've noticed, my titles are usually one or two words - "Skills", "04-1 Registered", "Talks", "Its Tuesday", $(rand dict). Not very descriptive. Often, I remember writing about something, but not able to track it down. Sad, really.
My titles aren't all that descriptive either, but that's what M-x planner-search-notes in planner-experimental.el is for. And yes, I really hate it if I know I blogged about something but I can't remember how to bring it up.
Non-conformance to standards - When you put together an entry, do you check if it confirms to W3C standards every time ? Honestly, that's insane. A standard transformation mapping will make life so much easier. I now face a problem, how do I convert my old entries ? I seem to have used three to four different ways to post my code, all of them every inelegant, except for the last.
I work with plain text.
Immature - Blogging software is not powerful enough. What if I want to quote an email message, or a news thread ? Or simple syntax highlighting ? Or even on the fly spell checking (known as flyspell-mode in emacs, BTW). Couple this with my non-descriptive titles, how do I cross reference things ?
Emacs is wonderful!
Not cool - Blogs aren't cool anymore, since every kid happens to have his own. When you come across somebody's blog which appears to be very interesting, do you take the time to read through his archives ? Ofcourse not. More bit bricks.
I often read through other people's archives. I hope that the cross-references with plan pages make it easier for people to see related stuff, but I plan to have some kind of search someday.
Stagnant - "The only thing that is constant is change." Spring->Summer->Fall, so many things change around you. About 28.5% (eh !) of your content is stale. Your views on life constantly change (you may deny it). Going back and changing stuff just doesn't make sense when your entries are chronological.
I frequently go back and post updates. I also tend to reorganize the plan pages fairly often, although that does mean semi-broken day links. (Must get those GUIDs up and running!)
Emacs is way cool.
http://www.sfu.ca/~gswamina/EmacsWikiPatches.html . Check this out sometime and steal all the cool ideas (with appropriate credit, of course). ;)
Check out ../emacs/emacs-wiki/planner-experimental.el's advice for emacs-wiki-generate-index and the new function planner-generate-index for smarter indexing of day pages. To see the results, check out the WikiIndex.
Notes should probably have GUIDs so that I can do update-notes as well. However, note updating does not really make sense with remember-planner-copy-on-xref set to nil...
This is what I need in terms of version control:
- I definitely need version control on my own system. I make a lot of
changes I need to keep track of.
- People occasionally e-mail me contributions, usually as a diff. The
contributions are small enough for me to manually review and merge, and I frequently get cool ideas when they do that.
- The easier it is for me to do version control, the more likely it is
for me to actually use it.
- I want to provide an easy way for people to get all the latest
Maybe I can hitch onto emacs-wiki's arch repository.
The emacs-wiki-discuss mailing list can now be used to discuss tips, features and bugs! =) You can find it and other details on http://savannah.nongnu.org/projects/emacs-wiki/ .
In other news, checked my BBDB for everyone who ever wrote me about planner.el. Warm and fuzzy feeling. =)
I think we've figured out how to make dates selectable from the calendar. Please check out this module. If you like it and there are no major problems, then we'll include it into planner.el .
Add this to your /etc/apt/sources.list:
deb http://richip.dhs.org/~sachac/notebook/emacs/planner ./ deb-src http://richip.dhs.org/~sachac/notebook/emacs/planner ./
apt-get update apt-get install planner-el
I should make it easy for people to subscribe to planner pages they're interested in, so that they can be e-mailed notifications when I add something new. Or maybe I can cookie it...
I'd like to be able to parse planner files as a tree, taking advantage of the outline structure. This will allow me to produce XML documents more readily. Do I really need this? Well.. Hmm.
I want to be able to
- make it easy for people to comment on particular sections. This can
be done at the start, when parsing the .# entries - I can insert a comment link right after. That's good for planner day pages, because journal entries are second-level. As for normal pages, I'd prefer to have a full-fledged comment box at the bottom. Or should I have a comment box on normal pages too?
- publish planner day entries as separate items in an RSS feed. Who
would find that useful? I have no idea. Not that anyone aggregates my site...
So I guess this is a non-necessary feature.
Wait, I can put it into remember.el ...
Comparisons(or why I use PlannerMode instead of foobar...)
Con: I don't really like the output of
Pro: It would be nice to find out how to get cyclic schedule entries,
though. Right now I'm relying on cp to do that.
chrisb says he likes
Hmm. PlannerMode has no notion of topics except for planner pages, and there's no way to get an integrated view of the different day entries in scattered planner pages because the format's pretty free.
(2003.11.11: Perhaps my newly-added planner-search-notes may be of some use.)
chrisb uses records-mode to keep track of his contacts, though, and that seems like a good thing. He can keep together his notes, his tasks related to that person...
I should try it out again.
Con: Requires a lot of discipline, because you have to categorize everything.
Hmmm. This does not look like something I can borrow ideas from, since planner pages might not even be organized by date. Ph104 is as close to a date-organized planner page as you can get, but even then I sometimes break from the format.
Jody Klymak writes in with a tip:
(emacs-wiki-complete-alist)) in the
remember-append-to-planner-plan-page-with-timestamp function allows
you to complete on wiki pages.
http://emacswiki.org/cgi-bin/wiki.pl?DailyJournalMode has an interesting note; might be nice to collect "Week views". Cross-reference: 2003.04.04#11
Perhaps I should use a list of functions like the way remember does it. The first one that returns non-nil will be used as the annotation. If the annotation points to a planner wiki page, update the task, too. Cross-reference: 2003.04.11#8
Testing by Brent Goodrick:
That works wonderfully! For your/our records, I did the following manual tests:
On second thought, this is not particularly urgent. I can continue breaking it down into tiny pieces and then just marking the major task as done when all of the smaller pieces are.
Jody Klymak contributed a fix to ../emacs/remember.el that made it work better with ../emacs/planner/planner.el. I haven't merged it into ../emacs/remember.el because I'm keeping my copy as vanilla as possible, but I've added it to my remember-config.el.
This adds annotations at the bottom of remembered information.
(defun remember (&optional initial) "Remember an arbitrary piece of data." (interactive) (window-configuration-to-register remember-register) (let ((buf (get-buffer-create remember-buffer))) (switch-to-buffer-other-window buf) (remember-mode) ;; Insert only when empty (when (= (point-max) (point-min)) (insert (or initial ""))) (goto-char (point-min)) (message "Use C-c C-c to remember the data."))) (defun planner-remember-to-plan-page-from-buffer () "remember info from this buffer" (interactive) (let ((remember-mode-hook (append (lambda () (add-hook 'remember-handler-functions 'remember-append-to-planner-plan-page-with-timestamp nil t)) remember-mode-hook)) (msg (or (run-hook-with-args-until-success 'planner-annotation-functions) ""))) (remember (concat "\n\n" msg))))
One of the things I like about having my remember entries show up on my main blog page is that it's easy to browse through my journal and see what's actually happening instead of having to click on half a dozen links.
I think I'll return to blogging on the main page, then.
(Posted to emacs-wiki-discuss some time back.)
Me, I started by using Planner+Remember to scribble down random thoughts and put them somewhere publishable. It's kinda funny. Here's the very first entry I have on 2001.11.02:
.#1 Playing with planner (linux, emacs) Today's been a busy day. I don't suppose I can get planner to nicely work with all the rest of emacs, can it? I rather like emacswiki... Alright, seems to be fine. Planner's actually pretty nifty. I'll pop the description into my remembrance agent index on the next scan, I suppose; maybe it'll be useful. I wonder if I can get the wiki to recognize non-wiki words. That would be pretty nice. Off to dinner with me now.
Used it for a week, then stopped using it. Resumed on 2002.06.20, having discovered remember-mode and the joys of blogging. For two months, used planner as a blog.
Then my 2002.08.17 epiphany note:
.#1 Planner is actually quite useful. So is emacs-wiki.
That was when I started really using tasks. They were linked to
project pages, but I didn't have Gnus integration then. The first time
I created a task based on an e-mail message seems to have been
2003.07.31. Almost a year of using Planner as just a blog, and that
was before planner-rss.el!
It took me another 8 months to realize that it would be a good idea if I could make a task from an e-mail message _and_ assign it to a plan page. My first such task is on my 2004.03.12 entry. (That's this year!)
Somewhere along the way, we added a few modules for integrating with other parts of Emacs, so we moved to more flexible URL handling. The number of modules increased even more. People add stuff to link to whatever they use frequently. For example, I added the planner-erc module so that I could keep track of who asked for what planner feature on #emacs... ^_^
So don't worry, you don't have to start with a really funky Planner config. Use whatever you feel like using. Feel free to ask questions. If something is missing, we'll try to see if we can hack it in. =)
By the way, you don't need to remember the history of planner. I didn't realize I took _that_ long to come up with obvious tweaks until I, err, reviewed my planner files in the course of writing this message. That's why this community is such a wonderful, wonderful resource. People come up with all the coolest things... =)
I'd love to hear about any questions, comments, suggestions or links that you might have. Your comments will not be posted on this website immediately, but will be e-mailed to me first. You can use this form to get in touch with me, or e-mail me at [email protected] .