[1]Luke Spear (UK French to English translator)
[2]Luke Spear
* [3]Blog
* [4]Book
* [5]French to English Translation
* [6][Français]
Productivity in plaintext
18 minute read Published: 19 Jan, 2016
An example of a plaintext to-do list and calendar system
I've been sitting on this post for a while, aware of the irony of
spending any length of time reading or writing about productivity. But
this article should be an axe sharpener, particularly for those
interested in getting away from third-party or over-engineered software
and back to basics. The goal is to take back control of the entire
productivity workflow, operate at K, the speed of keyboard, regardless
of computer spec and to eliminate complex and proprietary software.
It's KISS, it's UNIX, it's boring. But does it work?
1. [7]Criteria
2. [8]Work environment
3. [9]Tasks
4. [10]Calendar
5. [11]Email
6. [12]Influences
7. [13]Privacy
8. [14]Other software
9. [15]Concluding notes
10. [16]Future improvements
--------------------------------------------------------
1. Criteria
--------------------------------------------------------
Getting tangled in a variety of note-taking, calendaring, messaging
systems as I bounced between 'solutions' for a few years has been
ultimately frustrating. I was nudged in the direction I've set out
below by several forces. The setup, has become an 'as near as damn it'
full-capacity productivity workspace, for whatever that is worth. These
nudges started properly around 2009, when I started using a Linux
phone, the now much missed N900, eventually syncing notes and calendars
between devices via scripts, txt and ics files and various calendar
clients. Five years of experimentation and learning later, I then moved
to Debian full-time ([17]a minimal crunchbang clone via netinstall),
all while setting up a succession of Raspberry Pis for various
servering jobs. The final nudge was the growing newsstorm about online
privacy and the now-old 'being the product' adage.
Over these years of trying to set up a truly long-lasting productivity
system for tasks, notes and calendaring, a simple solution has slowly
emerged from the fog of apps and scripts. It has been boiled down to
the essentials.
What are the criteria for a system like this to emerge?
* Needs to be as simple as pen and paper, for mostly manual entry
into a task list, calendar and messenging system with the
additional benefit over paper of a machine handling any repetition,
editing, archiving, backups and sharing.
* Needs to run on a Raspberry Pi-type device at speed. This would
liberate my work environment and allow me to replicate my setup on
nearly any device with a UNIX command line, if only my professional
software were resource-friendly enough (accounts, translation) I
could already do this. More on that below.
* Needs to be readable in 50 years. How many of the current slew of
apps will still be around? Which might suffer a silent loss or
leak? Insurance policy: text files. Backed up.
* Encryption needs to be available for any files deemed sensitive
enough - with decryption/editing on the fly.
* It needs a to-do list so as not to forget any jobs I might have
been assigned by a range of clients. It should cover at least
dozens of tasks at any one time, clearly.
* It needs to work in the Kanban style. Like Trello, which I happily
used for many moons before going plaintext.
* It should also include a schedule/reminder overview for each month.
This needs to remind me of personal and work deadlines, differing
from the to-dos by either repeating on that date regularly or
needing to stand out in an agenda style format for constant daily
overview of approaching deadlines. Needs to be easily searchable.
No small order, then, as this system sounds quite complex on paper. In
fact, the simplest solution is not complex at all in itself, yet allows
for much complexity.
--------------------------------------------------------
2. Work environment
--------------------------------------------------------
I'll be brief here, as it's not the feature presentation of this piece,
but it is still a key part.
Creating a productive environment has been a challenge as I battled
with internal and external distractions. Half the battle is sometimes
backing away from the screen when I drift into 'research' mode (read:
non-productive mode). The other half is removing distractions, freeing
up system resources, having an efficient and quick productivity 'suite'
to make getting in and out of work tasks as efficient as possible. The
whole point of productivity for me is to achieve my goals, spend less
time doing so, for better remuneration, spending more time with my
family and friends before my 30s disappear as quickly as my 20s did.
* Removed: comfortable chair, long and wide desk with king-rat cable
mess underneath.
* Replaced with: bar stool, bar table, cable-tidy and cable-ties.
* Benefits: more standing (with sitting option), less clutter-stress.
* Added: a tiling window manager for efficient screen, window and
context switching. The power and ease of i3wm has won me over, with
either 1 monitor or 2, depending on the preference of the day:
* Desktop 1 is called 'org' and handles messages, todo, calendar,
notes etc.,
* 2 is called 'web' and has w3m open for quick textual searches and
browsing (cookies off to further avoid tracking), chromium for
those persky bloatware saas apps (ublock and https-everywhere to
block Sauron's beady eye),
* 3 is 'pdf' for reading PDFs (setting this file type to open up on
this desktop only stops them cluttering other workspaces),
* 4 is 'vps' for web and VPS tinkering. It has been very easy to
learn to flick between and set up split windows etc., much more so
than the others I tried (xmonad, awesome, dwm in particular).
I use espeak to read from a file of ‘motivational quotes’, which are as
cheesy as they sound, every hour and to give me a weather report at
9am. And also a few pep talks here and there. Espeak also starts and
stops pomodoros for me throughout the day. I largely ignore them, but
it does make for a 'worky' atmosphere more than not having them. I'll
make the scripts I use for those available if anyone wants in on the
nagging robo-Hawking motivation technique. I'll understand if you don't
:)
And now for the feature presentation:
--------------------------------------------------------
3. Tasks: vertiKan - Kanban in plaintext
--------------------------------------------------------
I've been keeping plaintext notes for years, particularly when I found
out that notepad.exe had a timestamp hidden under the F5 key. I set up
the same in notepad++ and then in Vim. I had messy notes files
including unorganised to-dos and reminders scattered about throughout.
I initially thought I could use tags for everything but that quickly
became unwieldy and easy to lose track of which tags were in use as the
files grew. I went all in with Trello for tasks at one point, enjoying
the Kanban motion of shuffling tasks around various lists. I got that
system down to a T but was ultimately left annoyed that I relied on an
online, heavy-RAM consuming, third-party system. I toyed with using
folding in the plaintext files for a variety of note topics in Vim and
notepad++. This was nice, but still too cluttered.
After going CLI with RSS, IM, IRC, the next natural step was to
replicate the Trello boards in a plaintext file, edited with Vim. One
folding section for each list. Using 'dd', move, 'p' to shuffle the
tasks around. Mainly from the active task list to 'TO INVOICE'.
Rudimentary, but it worked. Over time I added timestamps, tags, an
archive feature (either ddGp to dump the task in a growing archived
task list at the bottom of the file or the preferred '\mv' mapping to
do the same without moving the cursor - I should change the leader from
the awkward backslash to space, perhaps). Tags are still in use, but I
limit them to just the projects I work on and #home for personal
things. I also have a more long-term strategy section to refer to from
time to time.
The list needs pruning and sorting very occasionally if I slip up and
let non-tasks onto the list - I've had too many cluttered to-do lists
to let it happen again!
I did try to integrate some calendaring or scheduling of tasks/events
into the to-do list, but it didn't work very cleanly. Separating them,
in the UNIX way, each doing one thing well, seems to make more sense.
And so the plaintext calendar was born...
--------------------------------------------------------
4. Calendar: vertiCal - calendar in plaintext
--------------------------------------------------------
This came much more recently, as I worked my way through various CLI
calendaring and reminder options, settling on remind for a good long
period, coupled with wyrd and tkremind. It's a handy tool but the
complexity was a real barrier to regular use for me. It became a bit of
a drag. Another case of it being extremely cool to geek out into moon
cycles and other weird and wonderful calendar systems but... I'm not
gaining much productivity that way. Learning new syntax just to set
reminders seemed overkill. I just want to see what's coming up day to
day, like a physical/paper calendar or diary. But those aren't
searchable; plaintext is.
So here we go again! I set up every month, put my recurring reminders
at the top of each month and the changing events below that. This will
let me keep the recurring reminders when I copy the file the following
year. Setting the Vim syntax mode to C (:set syn=c) made the dates
appear in colour, which was nice. But much more simply, setting the
filename to 2016cal.conf (instead of .txt) enabled coloured commenting
and tags. Commenting a line when it is done distinguishes it nicely
from the events still to come. The idea is then to completely replace
this file next year, leaving the events in place as a record.
It's much quicker to enter an event into the 'vertiCal' than using
software with a pop-up and myriad dropdowns. Quickly entering '25 -
Event 3pm #project' under the current month takes seconds and can be
copied/pasted elsewhere if required.
One issue that might bother some is that you can’t tell what day of the
month an event is on. This is easy to infer in many other ways. Often
with a quick mental check, otherwise typing 'cal -3' in the shell to
figure out dates that are more distant.
These two files are synced to the pi (and phone if need be) via the
FOSS syncthing, from where I can check them in a pinch on the phone via
SSH. No more trying to export ics files and share those to various
bloated clients, just a simple list that takes seconds to check and
amend.
I run these side by side in a Vim split buffer/window arrangement (':vs
2016cal.conf' then 'ctrl+w 30 <' to reduce the calendar to a sidebar -
ctrl+w r to rotate if in the wrong place). Using autocomplete in vim is
handy for many words I tend to repeat. Such as productivity. My .vimrc
is in the examples repo also.
If sharing, it might make sense to have a work and personal version, or
perhaps one for a certain group of friends. It's also easy to make a
html version in vim (:TOhtml) and share that on a webserver as a
non-editable version for reference.
I also keep a notes file for each year, but these are less interesting
to describe. These have folding sections per subject and tags are used
for quick searches and filtering. These are used less now as the to-do
and calendar system duo takes over capturing ideas and tasks.
----------------------
5. Email
----------------------
I've finally moved wholesale onto mutt. It took a few days to set up, a
few weeks for me to transition fully, but now all that's done I can
share the setup to hopefully help others get started quicker. See the
examples repo.
It features:
* Multiple imap accounts with shortcut keys
* Sidebar for overview
* GPG encrypted account password reading, once per session only,
using gpg-agent
* Simple PGP encryption and/or signing of mail
* Threaded mail
* Mutt's fantastic filtering, with either notmuch or similar coming
soon for faster search
The major advantage it has over Thunderbird is its much faster mail
handling and inbox cleaning, at a fraction of the system resource
usage. It also forced me to implement Sieve filtering at the server
level, which was well overdue, having relied on Thunderbird's filtering
of SpamAssassin and custom rules until then. Finally my phone client no
longer received spam Thunderbird hadn't filtered out.
----------------------
6. Influences
----------------------
So this goal of a low-resource, CLI-driven workflow was once again
nudged on when Google Reader closed. I moved onto Newsbeuter,
permanently hosted on a Pi, that I'd SSH into for a read here and
there. Before that though, I tried the miniflux client. In the FAQ the
creator noted that it could probably handle 600 RSS feeds, then added
'but your life is cluttered'. That hit home.
Mine were out of control in Google Reader, I couldn’t keep up and ended
up focusing on the same few feeds. Trimmed them down to a reasonable
number and tagged them into 3 categories in newsbeuter. This same cruft
issue applies to todo lists too. I see people, org-mode users and
GTD-ers even, with hundreds or even thousands of tasks in their lists.
This can not be workable. How could anyone get around to reviewing and
doing them all? Surely that's nigh on impossible. Maybe I haven't
grasped GTD fully. Maybe they aren't doing GTD right or maybe GTD
shouldn't allow for that situation to occur. My own experience of cruft
has turned this issue into a red flag.
For that, and a few other reasons, I don't 'GTD'. Having to review and
sort one's lists every week doesn't seem at all productive to me. Or if
it is, call me crazy, but I have no motivation whatsoever to review any
list of tasks on a regular basis. Let alone one I'd been happily
dumping every thought into.
For similar reasons I don't use org-mode or taskwarrior. Hiding tasks
for me is a recipe for losing tasks, even if the tagging system is
extremely efficient. Also, any learning curve tends to scupper any
productivity gains from using that particular tool, as does the tool
not being available or set up correctly on other devices. Spending
hours a week/month/year honing a config is not my idea of productivity.
As much as I like tweaking a config, it can become an obsession in
itself.
See [18]this complaint about incompatibility between org-mode versions
(yay, more config tweaking!). Or further down that thread [19]my own
comment on an often referenced how-to for org-mode, wherein the author
reveals he has nearly 400 tasks awaiting completion, somewhere within
his 10,000 word guide on being productive...
Perhaps taking the point a little far, but it was interesting to learn
that [20]RMS doesn't use org-mode and pointing out that it '[21]seems
to require a LOT of time'. So even RMS (at least in 2013) didn't want
to take the time to familiarise himself with org-mode. And he *created*
GNU/Emacs.
Suffice to say, I have a healthy dose of scepticism for any
productivity solution that has a huge manual, many software
dependencies, a steep learning curve or encourages excessive config
file twiddling. While I appreciate their technical approach most of the
time, these tools can end up being counter-productive. There's just too
much friction and too much discipline required for systematic use. So I
have come back to basics. Very little discipline required, simple to
use, very clear results.
----------------------
7. Privacy
----------------------
I’ve started to encrypt everything sensitive on disk with 7z archives
(con: hard to search, pro: no performance hit with full-disk
encryption, easy to backup encrypted blobs, files always encrypted,
rather than only when PC off). This is after evaluating ecryptfs
(turned out to be bad for lots of small files, which is my use case,
but perfect concept) and full-disk encryption (which is off when my PC
is open, which is most of the time). I could also have used PGP for
this, but 7z was easy to implement with AES, encrypting filenames too.
All fine for my threat-model, i.e. not that much under threat, but
desirous of personal and professional privacy. And 7z can compress too,
which is a bonus for much of what I archive.
For any note files I want to edit regularly, the above can't be used as
they require manually decrypting and recrypting every time they are
accessed. I came accross Vim’s :X command, set it to use blowfish2 (set
cm=blowfish2) in .vimrc and now the file is decrypted locally while I
work on it, and the synced version is always encrypted (even the swap
file). Perfect. I might consider rolling this out to my calendar and
todo lists, but they aren’t particularly sensitive and the extra
friction might backfire. Fragile thing, this productivity lark!
----------------------
8. Other software
----------------------
* cmus for music
* rpi as media center, IM and IRC client (kodi running in tmux,
finch, irssi)
* newsbeuter for RSS
* w3m for tabbed browsing and twitter in sidebar
I still pop open chromium (with umatrix + https everywhere plugins
only) to check sites that require it from time to time, but it doesn’t
sit open taking up 500-1GB RAM. Helps me stay focused.
Some handy shortcuts for w3m: ctrl+r to refresh, ctrl+t to open in a
tab. ctrl+q to close tab. ctrl+{/} to move through tabs. B for back.
I still need FOSS book-keeping/accounting software. I did consider
moving to (h)ledger, but it’s missing *simple* currency and UK/EU
taxation features - would love to be able to build a web front end to
it that covered those things, but I'm in no position to do that. Some
benevolent accountant will hopefully step up one day and do just that.
Or at least add those features to ledger (namely: automated corporation
and personal tax summaries (for the UK), invoicing by PDF, easy
currency loss/gain tracking for invoiced items, simple automated
account imports...) would swing it for me.
Finally, the big one for me, I would like FOSS translation software to
replace the .NET application running in a Win7 VM. As this task is
essentially just editing text, it seems like there should be plenty of
options. There are some, but none I’d like to use now (have used OmegaT
extensively). I won’t get into that now, but suffice to say I need an
open, quick and highly capable CAT tool that operates on large
translation memories and files without choking.
The ability to not have to run a Windows VM would support the goal of
running the business on a low-resource machine. I have actually gotten
as far as opening Office files in vim and looking at lxml in Python
(and C) to extract text from these docs, but would need to then build
out a translation memory, termbase, autocomplete, filter/sort,
wordcount stats etc. feature-set to come close to competing with my
paid-for alternative. All in good time!
----------------------
9. Concluding thoughts
----------------------
Of course I can still be distracted very easily despite all of these
tweaks. The goal is really to just limit those distractions, while
keeping the PC fast and ready for work. Otherwise I think I need to
keep trying to step away from the PC when I’m done with work. It’s
easier to strategise and see the bigger picture when my head isn’t in
the screen. And by now I must have already read a life’s worth of
productivity and business articles, comments and case studies, so
really curbing that as much as possible and starting to trust in and
implement what I already know should be the aim.
Other things that might come into play with improving productivity,
like reflecting on loss of certain old motivators (goals of running my
own business, writing a book, securing a stable life for oneself
semi-achieved), should help to keep me focused on the new goals and
motivators. Everything else in life continues to whir away, sometimes
now faster than ever, and so a simple, no bells and whistles, reliable
productivity system anchors things to one place. This gives space and
clarity to make more long-term plans for life and business.
I don't necessarily think my productivity levels are any worse now than
before, in fact, if I do say so myself, I always get a fair amount of
stuff done in a short time. I just have a touch more awareness or it
and pressure forcing me to make sure I'm organised. Spreading my life
tasks and reminders over several apps and websites was just a recipe
for mistakes to be made. And as I said at the top, it was getting
frustrating.
There's a chance, but I've not seen it discussed elsewhere, that
productivity matters more when you ahven't yet reached your goals, or
are unsatisfied with current goals. I'll try to look into this problem
more over time. The other side of the coin is that I genuinely do like
to work efficiently and get frustrated by anything slowing me down.
Again, this could be a personal demon of some nature to hash out as I
reflect more over time. For now, however, the productivity system is in
place that will hopefully see me through the next 5-10 years at least.
If I've changed it next year, you have every right to point and laugh,
but I wouldn't count on it :)
----------------------
10. Future improvements
----------------------
Obviously this is all still a work in progress, even if well on the
way. Improvements to the system as a whole would already include the
use of distributed version control and building/sourcing accounting and
translation software to replace current expensive and cumbersome
versions.
The use of Stickk or Beeminder to force certain tasks to get done when
motivation is lacking is another tempting plan, but I suspect if I
enjoy my work enough I won't need this.
If you're wondering where you can find out more about the wonderful
world of plaintext organisation and productivity, [22]check out the
examples repo. Feel free to plunder it for the following:
* vertiKan - Trello in a text file
* vertiCal - calendar in a text file
* .vimrc (autocomplete, timestamps, encryption etc.)
* .muttrc (multiple imap accounts, sidebar, encryption etc.)
I know none of this is anything groundbreaking or technically
remarkable, but hopefully the often overlooked simplicity of plaintext
and FOSS will appeal to others in search of a 'definitive' productivity
system.
Further reading:
* [23]Plaintext-productivity repo
* [24]Pomodoro
* [25]Procrastination
* [26]Productivity
* [27]Time management
* [28]Stickk
* [29]Akrasia - [30]Akrasia (write up)
* [31]Ego depletion
PS - Liked this post?
Get reminders to check back and
the best posts straight to your inbox:
____________________ (BUTTON) Subscribe
____________________
or
[32]Discuss on Discord, a live chat app!
Published by Luke 19 Jan, 2016 and tagged [33]productivity using 3675
words.
Related Content
__________________________________________________________________
* [34]One month of digital diary – 2 minutes
* [35]From all-day comfort to standing, walking and perching - an
evolving workspace – 6 minutes
* [36]Mutt with multiple accounts, mbsync, notmuch, GPG and
sub-minute updates – 10 minutes
* [37]The garden home office DIY self-build guided tour – 39 minutes
Next: [38]Translation FAQ
Previous: [39]From all-day comfort to standing, walking and perching -
an evolving workspace
* [40]Email
* [41]PGP
* [42]+44 (0)7530 733 320
* [43]Translation
* [44]Web consulting
* [45]Blog
* [46]Book
* [47]Twitter
© Luke Spear
References
Visible links
1.
https://lukespear.co.uk/
2.
https://lukespear.co.uk/
3.
https://lukespear.co.uk/blog/
4.
https://lukespear.co.uk/docs/
5.
https://lukespear.co.uk/services/translation
6.
https://lukespear.co.uk/services/traducteur-independant-francais-anglais
7.
https://lukespear.co.uk/plaintext-productivity/#criteria
8.
https://lukespear.co.uk/plaintext-productivity/#env
9.
https://lukespear.co.uk/plaintext-productivity/#tasks
10.
https://lukespear.co.uk/plaintext-productivity/#cal
11.
https://lukespear.co.uk/plaintext-productivity/#email
12.
https://lukespear.co.uk/plaintext-productivity/#influences
13.
https://lukespear.co.uk/plaintext-productivity/#priv
14.
https://lukespear.co.uk/plaintext-productivity/#other
15.
https://lukespear.co.uk/plaintext-productivity/#conc
16.
https://lukespear.co.uk/plaintext-productivity/#embetterment
17.
http://lukespear.co.uk/going-full-linux
18.
https://news.ycombinator.com/item?id=10636589
19.
https://news.ycombinator.com/item?id=10640877
20.
https://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00557.html
21.
https://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00988.html
22.
https://github.com/
23.
https://github.com/luxpir/plaintext-productivity
24.
https://en.wikipedia.org/wiki/Pomodoro_Technique
25.
https://en.wikipedia.org/wiki/Procrastination
26.
https://en.wikipedia.org/wiki/Productivity#Sources_of_productivity_growth
27.
https://en.wikipedia.org/wiki/Time_management
28.
https://en.wikipedia.org/wiki/StickK
29.
https://en.wikipedia.org/wiki/Akrasia
30.
http://jamesclear.com/akrasia
31.
https://en.wikipedia.org/wiki/Ego_depletion
32.
https://discord.gg/fxKffcX
33.
https://lukespear.co.uk/tags/productivity/
34.
https://lukespear.co.uk/2011/02/one-month-of-digital-diary/
35.
https://lukespear.co.uk/all-day-comfort-standing-walking-and-perching-evolving-workspace/
36.
https://lukespear.co.uk/mutt-multiple-accounts-mbsync-notmuch-gpg-and-sub-minute-updates/
37.
https://lukespear.co.uk/blog/self-build-garden-office-diy-full-write-up/
38.
https://lukespear.co.uk/translation-faq/
39.
https://lukespear.co.uk/all-day-comfort-standing-walking-and-perching-evolving-workspace/
40. mailto:
[email protected]?subject=Hi Luke
41.
https://pgp.mit.edu/pks/lookup?op=get&search=0xC731DD86085F086F
42. tel:+44-7530-733320
43.
https://lukespear.co.uk/services/translation
44.
https://lukespear.co.uk/services/web-consulting
45.
https://lukespear.co.uk/blog/
46.
https://lukespear.co.uk/docs/
47.
https://twitter.com/lukespear
Hidden links:
49.
https://lukespear.co.uk/plaintext-productivity/