Sometimes, I spend a lot of time on technical tasks that are of
seemingly questionable benefit or limited practical use.
For example, I remember converting the format of my 977 blog posts
between markup languages and migrating the content to esoteric
blogging platforms (more then once). I also wasted an unbelievable
amount of time meticulously editing the meta data (YAML front-matter)
and writing scripts simply to preserve Disqus comments after a change
to the permalink structure.
All for a personal blog that no-one read but me.
Obviously, I choose to spend time on these tasks because I'm
technically minded and like a challenge. There's also a stubborn
desire to see something through to the bitter end rather than give up
half way through. Also, they're fun little tasks that aren't work
related.
However, I don't necessarily see this was wasted time. I often say to
my son (who is starting out on a career in IT) that 'knowledge is
never wasted'. This has been borne out for him as, when he was
interviewing last summer, he was often set technical challenges
(coding exercises) as part of the screening process.
Having subsequently secured a permanent role, he remarked last week:
'I solved a tricky problem at work today using Python code from that
horse racing simulation'.
Anyway, I have made progress on organising my work. I was aware of
the Projectile package for Emacs which is very popular. Originally,
I didn't think it would be that useful for me as I don't produce code
and work in Git all day.
However, after just two days, Projectile has already proved to be
immensely useful for me and the way I work. You can easily create a
project which can simply be a collection of notes, source code, PDF's,
videos etc. Projectile then allows you to switch between projects and
all file and buffer operations (open, latest, search, kill) are
narrowed to the context of that project.
That sounds like a trivial, simple change but this has proved
unbelievably useful for me as the list of files is automatically
shrunk to what you are actually interested in. I was staggered how
this simple change had such an impact.
My main problem was (and remains) muscle memory and trying to learn
the new, modified key bindings for the Projectile variants of the
basic Emacs and dired style commands I have used for years.
Each project I am currently working on is now a Projectile project and
so is my orgmode directory which is also very useful.
I then did something I should have done years ago and moved all my
orgmode notes from their respective project directories to my
dedicated directory in '~/orgmode'. This is much more logical and
allows me to use the 'deft' package to search content in all my
orgmode files as well as the searching functionality provided by
Projectile.
Then it was obvious that I needed to merge and consolidate this large,
random and unwieldy collection of orgmode files. For now, I have
decided to use the following:-
- projects.org (currently, active work projects)
- project_archive.org (completed projects, mainly read only)
- project_tasks.org
Again, this was hardly any work but offered a significant improvement
and somehow just felt right - that I was using Emacs and orgmode more
logically, closer to the way it was intended. Like everyone else.
I realised that previously, I was bending the tools to fit my mindset
of 'Projects must have a dedicated directory and all information and
data on a project must reside in that directory'.
Another useful orgmode package, org-projectile, forced me to rethink
this and addressed another of my key requirements perfectly.
I often want to be able to record tasks against a project. Often, I
would be working on project A and get an email or phone call requiring
me to quickly record a ToDo item for project B.
Previously, I would labouriously navigate to the directory for project
B, open up the 'notes.org' file and append the ToDo item at the
end. This had several issues; ToDo's scattered in multiple files,
scattered in multiple places. Lots of context switching, lots of
wasted time. It was impossible to have a coherent, unified list of
outstanding tasks. Even worse, the important tasks were duplicated or
promoted to Thunderbird.
[ Reading this back, I'm almost embarrassed and ashamed to document
how ineffectively I used to work but at least I now understand why
promotion keeps passing me by. ]
The org-projectile package is blissfully simple and allows you to
create a orgmode task for a given project. You simply create a task
and org-projectile prompts you for the project (from Projectile's list
of projects) and the orgmode ToDo is added to a file in my 'orgmode'
directory which now contains all the tasks for all the projects.
orgmode already has support for creating agendas and unified ToDo's
from multiple orgmode files so there isn't necessarily a need to
separate personal reminders from work related tasks.
Two Emacs packages, just an hour to install and configure, longer to
learn and master perhaps but already very satisfying and relatively,
simple, quick changes which have improved my productivity
significantly.