I use a single text file, have done this for decades. I dump everything into it and don't worry too much about structure, it's an incredible resource for "remembering" minutia, things like "what was that server that i thought might have had some issues last August?" Just a quick control-S and I'm there. My current 7+ year old notes file has about 100K lines in it right now. I can tell you what I was doing last year, or the year before, on this day, in seconds.
I just type
note (maybe some text here)
and it cracks open Emacs on the notes file, adds a timestamp, appends the optional text, and then I can just type or paste something in. Nearly frictionless, that's key. Great for writing those miserable annual reviews, too (easy answers to "what have I worked on in the past year?")
I use plain old notebooks (simple blank sketchpads, or something bound like a Moleskin/Lecchturm) for meetings, interviews, walking around datacenters and so forth where a keyboard is awkward and anyway, drawings.
I've tried the EverNote/OneNote/etc. apps and none of them were as convenient or as easy to use, or as portable.
I'll toss in my setup too, which I started semi-recently and has been working well:
In my .bash_profile I essentially just `open --background -e "...$(date +%F).txt" &`.
Since I'm in the CLI daily for work, I get day-stamped files passively opened without having to think about it. It's a nice quiet reminder to keep notes throughout the day, and it all just goes into a folder in dropbox that I can trivially `grep` or add with other tools or add side-files (typically "date - stuff.ext" so they appear next to the day's notes).
Being doing this for years also, occasionally emailing to myself as a backup, mine is at nearly 60k lines.
Top tip is to add meta tags. I suffix them with a colon to help with searching. For example, the section containing my git notes begins with this line:
Git notes: / Git: / Git commands: / Github: / Git bash:
And any time I search for something I didn't have a tag for, then I add a new one, even misspellings.
Funny how similar this one it is to mine: I use tags surrounded by colons so I can attach a few of them and grep them easily (distinguishing them from normal text contents)
Was inspired by this, threw together this hack for vim users.
#! /usr/bin/env bash
cd ~/share # or wherever
echo >> notes.txt
date >> notes.txt
if [[ $# -ne 0 ]]; then
echo $@ >> notes.txt
fi
vim "+normal Go" +startinsert notes.txt
Enough to see if this will work for me.
I also aliased this to something short so I can quickly view notes starting at the bottom:
vim "+normal G" ~/share/notes.txt
I also would like to use something similar but I wish to add new text on the top of the file (so oldest notes go to the bottom). I ended with something like this:
This isn't exactly what was asked for, but because I live in emacs I don't get much value being able invoke it from the command line. If that's ok, try this..
(defvar org-journal-file "~/Dropbox/org/engjournal.org"
"Path to OrgMode journal file.")
(defvar org-journal-date-format "<%Y-%m-%d %a %I:%M %p>"
"Date format string for journal headings.")
(defun org-journal-entry ()
"Create a new diary entry for today or append to an existing one."
(interactive)
(switch-to-buffer (find-file org-journal-file))
(widen)
(let ((today (format-time-string org-journal-date-format)))
(beginning-of-buffer)
(unless (org-goto-local-search-headings today nil t)
((lambda ()
(org-insert-heading)
(insert today)
(insert " "))))
(beginning-of-buffer)
(org-show-entry)
(org-narrow-to-subtree)
(end-of-buffer)))
(global-set-key "\C-cj" 'org-journal-entry)
So, C-cj will open the file, create a timestamp entry at the top, and narrow to the subtree. Great for creating timestamped notes. I keep a journal this way (multiple entries per day are fine), but it could be used for any note taking.
I actually work in Windows, and use an Emacs clone called Epsilon, so my tiny batch file and Eel-language customization probably won't help you. It's really just a few minutes of work in any event.
I've been doing something similar to track what I do at work for just over a year. I tried keeping a home journal with a similar technique, but it didn't stick.
I have a git repo set up, and I run: "vim `date -I`", which opens a text file named for the current date (2020-02-08 today for example). Then I'll put in notes about what it is I'm currently working on.
I've come up with the convention of separating tasks with three equal signs (===) and separating updates to a single task with (--).
The main thing it's been helpful for to me, which is honestly probably why I've kept up with it, is that I'm bad about doing my daily timesheets. So once a month when our accounting lady gets after me, I'll go back through my notes and fill everything in.
That was the ethos behind the app I wrote, https://screwnotes.com - I just wanted a note taking tool that syncs everywhere and I there's only one way to add items. I don't want to wait for a product to load, or to have to make any mental decisions about organisation, due dates, or relationships between items.
I like the idea but I wish your website showed me what the app looked like and a rough idea of what features were available before I create an account.
Hi, there have been some updates to it and the landing page does have a short explanation, but I agree - something a bit more interactive would probably be better.
The app itself is something tightly coupled to having an account to operate (so no data is lost), but I might try adding in an interactive demo on the landing page so you get that feel of how it works straight away.
I'm similar, but with vimwiki. <leader>-w-<leader>-w will open an entry for today's date, so for me ~/vimwiki/diary/2020-02-08.md. `<leader>-w i` will show a list of all entries. Pretty convenient stuff. I have mine start with a template as well, with a few common headers.
Same, of course. I added some bash aliases to make it much easier to write to the file, and use markdown instead to allow tracking todos easier.
I also added a vim command to push it to github while editing. These just remove barriers to opening and syncing the file, but the concept is the same.
This is the best thing I’ve ever read. The answer has been right in front of my eyes. I’ve been searching for a good note/things to know/knowledge storage app for decades. And a single text file seems like the best option. I’ve already started transferring stuff today to a text file.
Just a thought but would't creating a new file for each year make it more maintainable? I can't imagine searching a 100k line file or scrolling through it.
I find it useful to have everything in a single buffer, it makes searching easier. Otherwise I'd have to start issuing 'grep' commands and worry about which file is which, and get clever about regular expressions when all I want is instant, friction-free access with a handful of keystrokes. Opening a file that big doesn't take long on modern hardware.
Honestly, there's not really anything to "maintain". Just a text file and some timestamps. No magic at all. Simple as dirt. That's the magic :-)
Searching visually? Yes, 100k would be impossible. But then, even one year's worth would be impossible. So you're surely using your editor's search function, and that's definitely fast enough to not care whether you've got several lifetimes' notes.
A do see a lot of people who are making date stamped files, but I can't understand why. Do you want to switch between using C-s vs dropping to command-line for grep?
It's another function though, surely harder to reach for than the normal search. What's the value in bifurcating your searching process? What do you gain?
That sounds quite elegant, but seems this is only possible if you work out of a single machine almost always. Perhaps it could be made into a service? As long as explicit effort is taken that there's absolute minimum extra effort as possible!
I've found that VIM 8's SCP does not support absolute or realpaths like SCP generally does. Thus to access the remote file at foo:/home/dotan/todo.txt or foo:~/todo.txt I would have to use `vim scp://dotan@foo/todo.txt`. Just a heads-up for anybody who wishes to try this.
Oh, that remote execution is a neat trick. Thanks!
To cover the more trivial point for the non-Emacs readers: Tramp in Emacs makes it so that there's almost no difference between opening a file (C-x C-f) like this:
The subsystem in Emacs called Tramp makes this almost transparent; you edit your remote files as if they were local. There are occasional kinks with path translation in corner-case situations, like local Emacs editing remote source files and trying to load them into remote REPL, but those are rare and can be configured away. Dired (directory manager in Emacs) also works transparently over Tramp, so this essentially replaces SCP and graphical SFTP tools for me. You can even run GDB remotely over Tramp, which is a nice trick.
But then you've only got it locally. The advantage to VCS is that you can trivially have it on multiple machines (desktop, laptop, android with termux). You can even do it between your own machines via ssh if you don't like "cloud" stuff.
Using syncthing you can trivially have it everywhere as well, with only a one-time setup and no continuous need to manually commit changes and manually sync them (unless you're using hooks for your VCS to automate that I guess).
I use syncthing for non-text files, but I keep getting conflict copies. I could probably fix that by having one node always online, but text+VCS means that conflict resolution is built in.
A repo on github handles TODO.txt files from multiple machines fine, and better than gDrive or Dropbox. VSCode is now my main editor which makes git integration simple. I can also edit the file directly on github, though never do.
Keeping my notes in a single file has worked great for me too, i can quickly find notes by searching with Vim. i split the file in sections starting with [tag<name>] (e.g. [tagvim]) which makes it easier to move between sections. Each section is a markdown list.
Funny that we all resort to the same things. I have an almost identical bash script that appends and timestamps each note, but I push it to my Dropbox account using their REST APIs instead of my local file system.
The bash script I was talking about simply curls the .txt file from Dropbox, edits/appends it, then curls it back up to Dropbox (overwriting the old copy).
Dropbox iOS app allows you to create .txt files if you absolutely need to take a note from your phone. I’m never far from my computer personally.
I also wrote a Chrome extension that does essentially the same thing as my bash script (as well as save bookmarks to Dropbox). Its caching mechanism is very convenient for writing long notes that will be edited over hours or days—if the machine goes down, they’re all stored in Chrome’s local memory the next time I boot.
Be careful about making a file like that -- one where you have to write the entire contents back to disk when you update it even though you only modified the last line or so -- too large. You're definitely better off splitting to give you more chances at not losing everything in the event that it gets corrupted. But I guess proper backups would also take care of that.
The "safe save" protocols that editors usually use to write file contents are pretty good. I've never worried about this and I've never lost a file to a mis-save, not in decades.
I don't think it's a concern. And you need to make backups anyway.
Often the "single text file" organization method is used along with a source control system like git to synchronize the file between different devices. So that helps with the backup/recovery aspect too.
I'm late to the conversation here as I've been pondering it for a few days. I'm not a very good programmer or a bash user, but I can usually understand a script when I see it.
What script or bash alias are you using to do your "note (maybe some text here)"? I'd love to be able to do something similar.
I separate my job journal from my personal journal. Job journal starts on a backed up work drive and I don't care to have mobile access to it. I must have access to my personal journal at work, or while I'm out and about and mobile is the only way.
I use orgzly [1] and configure it to "sync" to Syncthing's local folder [2] (which Syncthing then syncs). This requires write access to Syncthing's data directory though, so I'm not sure it works on stock Android.
[2] e.g. configure a "directory repository" with content://com.android.externalstorage.documents/tree/<device id>%3AAndroid%2Fdata%2Fcom.nutomic.syncthingandroid%2Ffiles%2FSync%2Forg
I'm running a stock Pixel 2 and I've been using syncthing to sync pictures and videos to my desktop automatically, but didn't know about Orgzly. I just hooked up Orgzly and syncthing and it worked without any issues. Thanks for commenting about orgzly!
I open drafts in Gmail with no recipient and keep notes there. Super convenient since I usually have it open anyway on the desktop, it works great on mobile too, and gmail search makes it easy to find stuff.
I've been doing the same for about 15 years, except I actually send the emails to myself and have a special tag for them. Unfortunately, Gmail search has failed to find things for me in recent years that I know are there and know are tagged with a particular key phrase, usually for things that are from the 2009-2013 time period. I've lost faith that they are actually keeping everything, or perhaps that they are keeping everything but their search algorithm may sometimes return "no results" in order to be fast instead of actually falling back to some kind of deep search.
The one downside to this is that if you accidentally delete a draft (with a mistaken mouse click on the trash icon), it is impossible to ever recover the draft.
> it cracks open Emacs on the notes file, adds a timestamp, appends the optional text, and then I can just type or paste something in.
Do you do that with a shell script or an elisp function? Either way, I'd be interested in taking a look at your implementation if you don't mind sharing.
I just implemented something very similar last week! I store the note in a Raspberry Pi which I can access anywhere. Also with iOS shortcut, I can easily send note to my Pi from my iPhone's clipboard.
Any thoughts on how to access/modify on mobile without making it too cumbersome? I often think about todo on walk/train, but could see making it a computer only thing.
Absurdly, comically simple is the way to go. In these situations I usually just send myself an email, or write something down in the current physical notebook.
About 20 years ago I spent a while writing a server to do a bunch of automation and reminding and so forth, and found that I was spending more time on that thing than I was doing real work, so I ditched it, just like I did OneNote and all the other apps. There's no need to fix bugs in a text file, nor do you need to upgrade your version of Python or whatever.
Simple will survive decades with zero effort. Complicated pieces of code (especially ones that use networking or browser tech) will need to be maintained, patched, debugged and ported. Life is short. I'd rather actually be productive than have to spend time keeping some productivity app running, or worrying if the vendor of the online notes app I chose to use is going to be bought by Oracle or something.
You're making me think that the even absurder method is to use mail drafts as your files. Everything is synced between all your devices, you have built-in modification date, a full editor in the web version or applications for a more integrated experience, high portability and backup (transferring from IMAP account to IMAP account is easy), labels and/or folders depending on your provider, efficient search, attachments...
Actually in the past I used my email account as my RSS reader. It had integrated read/non read status, mass "mark as read" as needed, was synced on all platforms I cared about without anything to install. I didn't really changed my subscriptions a lot so configuration was not complicated.
Sometimes a webmail is just a good enough UI for text-related things.
Depends. You're right if you use a conventional version control approach where you write on your local machine and then push to the server. But that's not the only way to use Fossil to store your notes.
If you're using the wiki (using one or more wiki pages) everything is entered into the browser whether online or using the built-in server running locally. Other options are to create an issue for each note or create a new forum thread for each note. The nice thing about these options is that you get the search and querying power of an sqlite database applied to your notes for free.
Disclaimer: I haven't used this approach because I don't use mobile devices for note taking. Just pointing out that it is possible.
I started doing this at my first job in 1985. There is a direct lineage of the file to a few of the text files I use today. "todo.txt", "address.txt", and "dates.txt" have morphed continuously for 35 years.
Besides this reminiscence, I wanted remind vim users of a particular feature that allows easily navigating between text files like a hypertext system. The "gf" key sequence (mnemonic: go file). Typing "gf" will cause vim to extract the text under the cursor (it doesn't have to be at the head of the string) and open the file of that name. If you have ':set path=..' established, it also searches for the named file using that path order.
For example, in my main TODO I have a section like this for notes on things I want to attend to for various websites I maintain:
---------- websites todos -----------
family website: c:/path/to/this/todo.txt
personal website: c:/path/to/that/todo.txt
resume: c:/path/to/other/todo.txt
emulator: c:/path/to/emulator/todo.txt
Just place the cursor over one I wanted to visit, hit 'gf' then I'm teleported to that document.
I've-too been evolving the text file for about 25 years. In those days, at the beginning of time, when dinosaurs roamed the earth, one would evolve the data format to tailor it for its purpose. txt is just perfect for that. Some indentation, some symbols, some tabular data.
Sometimes just Monday is fine, sometimes you want Monday Week 4, sometimes the format should be 01-02-99 etc etc but after using it for long enough it kind of stabilizes into a format that fits the task. At that point it becomes easy to parse the data (read table) and [if so desired] display it in some more visually appealing format.
I for example keep a work schedule that at some point included the coworkers ill be working with and later it had their full schedule for purpose of trading shifts. (all the way to the right of the screen and beyond)
I publish this as interactive html for them with fancy unicode icons and colors. It is much more compact, convenient and with its rounded corners looks sooooo much better than the excel printout from the planning department. It reveals complex trades like if jim takes joes shift and I take joes shift jim can take mine. To the point I have to assure the coworkers they don't have to understand the complexity of the trade, just work Monday in stead of Sunday.
If a shift is understaffed I call them before they call me if I desire to fill it. Their excel print out ends up on the wall many cpu cycles after my text file is updated. If they get my payments wrong I strip all the extra information from the text file, paste it in an email and color the font in the spots where they should be looking. I could export it as a spreadsheet too I suppose.
The point being, its lovely to have the visuals but I wouldn't want to be working the data in a gui.
(Reminds me to figure out how to morph it into iCalendar files (and perhaps back))
This is very close to what I do, with a few modifications. Biggest difference is that I use Emacs Org-mode (https://orgmode.org/) which automates things like date strings, building a daily agenda, adding due dates, and the monotony of getting your itemized lists properly indented. (and a whole lot more)
Everything lives in my TODO.org file that's mirrored via dropbox between all my devices and on my phone where I use the Beorg app on the iphone (https://beorgapp.com/).
I archive my finished TODO items at the end of the year. Taking the opportunity to delete (mark CANCELED) things that no longer need doing and carrying over any TODO items that still need getting done.
You sound like someone that could really use Syncthing if youre into your own DIY cloud. I absolutely love it and I don't need an account to use it either.
I've instead gone for a git repo hosted on my VPS. That way I can use all the version control features of git, as well as the various tools that make it easy to look through my history, etc.
I do this and it is extremely powerful and extensible.
On top of this, I also track how much time I spend on different projects and then run a script that generates graphs to summarize my weekly and monthly usage of time.
However, I still use a physical daily agenda to take from my TODO list one or two concrete tasks I will focus on each day.
The 21st century has burdened the human psyche with a wonderful array of problems—most of which are invisible, abstract things.
It's taken some time figuring out how to make them real. Doesn't feel like anybody created a tool to help manage these abstract monsters. We still do not know ourselves that well. Not in this strange world.
Whenever I hear someone say, "Just use paper", part of me agrees. Paper is simple. It's easy to use. Plain text too. Simple.
I wonder if that's the best we can do.
I use paper. I use plain text. I use everything. Against the enormity of everything I want to do and the unfinished thoughts that repeat, it feels like nothing.
I've discovered small tips here and there. I'm making progress. I'm learning how to work with myself. But if I'm honest, the enormity of what's before me is infuriating and immense.
It's something like the question of how we want to live our lives.
This comment fascinates me. I hope you don't mind a very candid reply: You already know exactly what you need to do. You need to get away from the screen that you're looking at right now. Disconnect. Get to where you can see the clouds in the sky, and see how they move - spontaneously. Try to do THAT with your life.
This is a great comment. Over the past years I've created my own system using number of tools to manage my day-to-day life on a long-term perspective. I've decided to kick off a side project and create an app aggregating all the "tools" under one systematic framework. I'm happy to share when its ready. https://forms.gle/db4LXhaPjsapg8vN9
My favourite "productivity app" is not an app at all. It's a plain old notebook. I write down any notes and actions I need to take, and strike through them once finished. It has a nice benefit that I can scribble notes, draw lines between ideas, sketch out diagrams, etc.
I’m in your camp. Apple Notes somehow fell into this gap for me. For me the ability to format, add images and screenshots and easily share gave it an edge over plain text.
I loved notes for years but switched to Bear in the last few months in order to get sane Markdown export.
I couldn’t ever find a nice way of exporting (and backing up) my Notes notes. There was an IMAP storage option but that meant losing formatting options.
You can try Exporter. I've been using it for some time now to export Apple Notes to markdown and then checking into a git repo. Caveat: it doesn't export attachments or tables.
I'm also using Bear for note taking. It is a great tool that includes a nice way to export documents with style. One thing I struggle with is taking notes for things not related to work. This might be because I have a separate set of notes for work and not work. After reading the article I've decided to try and use one diary for everything. One note per day, but all in one place.
A few things I miss for this to be really good are:
1. Folding. A single file will be long. Being able to fold the major sections (# Work, # Private # Projects) would be really helpful. It seems Bear is planning to add folding.
2. Security. One can select all notes under a given tag (for example #Diary), but if they contain an attachment - for example an image, the password based encryption can't be applied.
I have been using FSNotes for the past year, but feel ready for something more polished; so now I am trying Bear. Thanks for the tip!
Did you look at FSNotes before switching to Bear yorself?
My own note taking is too fragmented right now, being split between org mode, FSNotes, and Apple Notes. It’s a bit like having clothing with too many pockets: I am too often unsure where to look for a particular note.
You can use your own writing to create a font set for OCR to recognize off of. Will doing a better job off a data set trained off of your own writing.
I've done some minor OCR to scan my bank PDF statements. I use tesseract iirc, there are different training sets to use. You can build a training set from your own writing.
I found that using an iPad with the Pencil has been a great middle ground. The OCR in the various Notes apps (including stock) is able to recognize my horrendous writing (it’s really bad).
I agree. I first try to keep my commitments down to a point where I can remember things. When I can't, I like the flexibility of pen and paper for jotting, scribbling, and sketching.
When I've run large meetings/reviews, I would walk around the room after things got underway to gauge how people were reacting to the discussions. The people with laptops would be working on unrelated material. Unfortunately, these would often be the senior reviewers.
I tried everything and kept coming back to pen and paper. On the right side if the open notebook is an organized todo list. On the left side are notes and diagrams that I come to during the day.
I had a stroke last May and the only long term side effect (thankfully) is that my handwriting needs to be 2x the size to be legible, making my notebook obsolete.
Agreed. I tried using the "pencil" on the iPad. Writing on glass doesn't feel as satisfying as writing on paper at all, despite the iPad being very very responsive. I also started using an ink pen to slow down my pen strokes so that I think more before I put things down. Oddly that's changed how structured my thoughts are.
I personally use a journal + pen, but I've heard that matte screen protectors for the iPad can make it feel a lot more like writing on paper. Just a suggestion.
I use a notebook as well but mostly for hashing out design ideas. It's a great pleasure to just sit with a coffee at a cafe with just your notebook drawing system diagrams. No distractions from online. However, I still keep track of work in a text file since it's much faster to type things as I'm working at a machine. (Obviously it's not great for drawing ideas though!)
Same. I've used a loose type of bullet journaling for most of my software development career and it's the only workflow I've been able to stick to that I feel increases my overall output.
Same for me. My note book is A4 sized (lots of space), has a hard cover (easy to write with while out "in the field") and the pages are not easily removed (so I don't loose notes).
While I do write a lot of notes in it, I also like to draw block diagrams and high level designs of systems.
While some of this could be done on a tablet, I also try to reduce the amount of screen time on my eyes. I started this habit since starting my Masters 10 years ago.
Me too. A4 sized grid notebook, and I use it in the landscape position. My notes are a mix of schemas and written text. When I'm happy with my work I take a picture of it using the Evernote app and upload it to its cloud. Curiously enough, the app applies some sort of "filter" to the picture that removes the original grid lines, making the drawings cleaner, which is convenient sometimes.
Pen and paper is great but if it's something I want to hold on to, I have to add it to my digital system. Sometimes that means taking my written notes, doing some editing, then saving digitally. Other times it just means taking a snapshot and saving that.
I still use Evernote for my long term storage (although I do worry about the long term viability of the company) and it does a pretty great job of finding and indexing text (even handwritten text) in images. The search operators are also pretty great.
I tried tiny (A6, A7) notebooks and they frustrate me.
My brain prefers scribbling but I have to admit that I'd love something that connects idea to realization directly (the good old bidirectional modeling app)
I tried various automation things, org mode, scripts, markup for time spent (so I can automate timesheets, ugh) but none of it stuck. org mode in particular is like a straitjacket with the indentation rules. So text file it is.
I do keep command lines in it occasionally but ever since I started using eternal bash history that I version control I stopped recording those separately very much.
PS I find myself using Trello for home hobby projects, by using an "active" lane with 7 bottom cards being days of the week Mon-Sun. Then, TODO cards go on the top of the lane, and when I feel 95% confident I can get any given card done I drag it below a day of the week and make very sure it gets done. That way the system means something, and as a result I am pretty conservative about what I promote. If I know in my heart I won't really get it done tomorrow, I put it the day later, break it up into smaller tasks, or just leave it.
When you say “eternal bash history” how long is that? I thought after some large number it becomes very slow. I’d like to try this if you don’t mind sharing how you did that?
I have a script that removes duplicates and HISTIGNORE set to ignore simple commands like cp, ls, mv, mkdir etc.
In the past 5 years I've only executed around 20k unique commands using up around 900kb.
> Not parent poster, but I use zsh-histdb [0] to keep my history in an SQLite database
Why? A file is easier to grep (even if you have to pass `-a` to it after the file starts to be in the MBs, right now it is 7.4MB).
I love having eternal command history in my zsh, and I wonder if I miss something out by not using SQLite for this.
I'm up to about 4 years of history at this point. I use a dumb bash hook that sorts and reloads the history on each command execution, and yes, it's getting a little slow. I wish I could do this through some daemon-based DB-backed system but this works for now. Maybe I'll switch to zsh when it gets too slow.
The reason I have the hook reload and sort on each command is so that I can use a dozen screen sessions at once and:
1) they don't overwrite each other's history
2) each session's history is instantly searchable to the others
3) sorting is useful because each session prepends a session ID to the commands, so that Ctrl-R backward search can always hit the current session's commands first. And I can reboot/restart screen and recover history in each session.
(edit: I looked at the zsh-db project the other poster linked, and this does pretty much the same thing just probably slower since there is no DB involved).
I push every unique command that I type into a database and bind Ctrl-R to peco querying the 10k commands. I'm amazed it did not occur to me earlier. All of my systems have access to the same shared history, which greatly simplifies multi window and multi computer operations.
I do this too, since 2005. Part of the reason I do this was because between 1995 and 2005 I experimented with a bunch of different software, and the software kept being deprecated. I forget a lot of the software that existed at the time. I used a bunch of early web apps, in the 1990s, all of which disappeared, and I used some interesting experiments with desktop productivity apps, all of which were discontinued, and I used a 5 or 6 different PDAs (this was in the era before the smart phone, when cell phones were dumb and we used PDAs to take notes) all of which were abandoned by the companies that were selling them (most of them were pushed by hardware companies that had no strategy for building important software that would survive over time).
Having been burned, many, many times, trying apps and formats that all were abandoned, I eventually realized that the only thing that would definitely last, over the long term, was a simple text file. The simpler the better. Simple is the only guarantee that something will last. Unix text files have not changed much since 1970s, it is the only thing in the tech world that has demonstrated longevity.
So I stick with a simple text file, and I will do so till the day I die.
Oof, same here. I have notes and journal entries going back at least a decade, but there are a few frustrating gaps where I used apps like Day One, or built my own rickety tool using, say, RethinkDB.
While it's possible to somehow get my data back, it would be in a weird format or just a hassle to retrieve. I now use text files for everything (and mostly keep everything in emacs/org-mode).
I jumped on this bandwagon about 6 months ago and I love it. Like many others I had some levels of success with other apps (trello, RTM, Todoist, Toodledo, etc.), but a single text file is a whole new world. I've been do
My setup is a single .md file with typora as an editor. Some things I love about it are:
- Markdown checklists that (with custom css) can be faded when checked
- When I copy/paste an image in (often a screenshot of a whiteboard or sketch) it creates a local copy in ~./resources.
- Outline view on the side (I used headings to separate days, weeks, quarters, and year).
- I keep goals for the week/quarter/year near the top so I see them when I'm setting goals for the day/week/quarter.
The other nice things that's grown out of it is that I've started to create a knowledgebase (popular to discuss these days [0]) that is a collection of .md files (for example injection-molding.md, antennas.md, etc.). Having the same format for it and my todos makes adding to either seem more seamless. Just in the past 6 months the collection has become much more useful than the enormous pile of content I'd collected in evernote over the years.
At the end of the day I commit+push and that's it.
I don't see myself going back (although will maybe change to a FOSS .md editor once it has enough features).
I never really used typora but been trying out marktext and notable the last while and they both look very promising. both can be found on github. notable is new enough so it still needs a bit of work though
This article gets at something that's really key. The system is so much more important than the tool. The tool may facilitate the system, but without a system even the fanciest tool won't help you feel organized.
and even if you are able to momentarily capture the complexity, ideas and requirements in your mind evolves so fast that your solution is immediately obsolete.
I'm not sure what this curse is called in the software development industry, but I see no solution to it.
For work I used to use Evernote, but these days I just have a folder of markdown files named by date. (20200208.md)
Anytime I run a new command, SQL query or work on a new issue I try to write it down in the note before running it. Then I commit+push everything at the end of the day.
At least for me, knowledge degrades quickly. So having a history of that command I ran to fix X three weeks ago is a life saver.
I've found that better organization isn't really needed because find is good enough and I usually have a vague sense of where I'll find what I'm looking for anyway.
Also these day private GitHub repos are free. So it doesn't cost anything to setup.
For teams you can use runbooks as the same concept. Anytime you on work on an on-call issue record the steps you took to fix it. At Datadog we just used GitHub issues in a dedicated runbook repo, but almost anything could work. The point is to reduce friction as much as possible and eliminate decision points. You can always clean it up later but if the barrier for entry is too high developers won't bother doing it.
Remember this is a developer at their worst - it's 3am, they're fixing something they might know little to nothing about, and they're working as fast as possible under pressure. Any additional procedure needs to be as lightweight as possible.
But if you get it right, man does it make on-call and onboarding easier.
For notes, I keep trying all kinds of apps and approaches, but I always come back to a single big text file. It's surprisingly easy to search. The main thing is it's just so convenient.
I use the Notes app on my phone to do non work-related stuff in my everyday life.
I have everything on there - buying groceries, washing clothes, getting stuff dry cleaned, washing the car. Whatever.
As soon as I get a spare moment, I scan the list (about 20 items) and do a little travelling salesman solution - what can I knock off this list in about 2 hours, and what’s the most efficient route to drive to get all this done?
Usually I manage to knock off a massive chunk of the list which feels great and super productive. I’ve learnt that it feels good to write things on the list so that shortly afterwards I can erase them again.
If you address the items one by one, then you waste a lot of time. The key is run everything asynchronously (put the clothes on wash now, so that I can dry them later. Buy the soap for the car now, but we’ll wash it after we drop off the dry cleaning on the way back from the shop)
Yes, I retired Evernote when I discovered Vimwiki. I keep wondering, though, am I shortchanging myself by not using org. mode? But I don't know emacs and I am not sure whether it makes sense to make such a costly transition.
Depends. For just checklists org-mode is overkill, I use a few custom shortcuts
in Vim for that.
But org-mode also has a couple additional features like time tracking and a way
to generate summarised tables based on that tracking, or the agenda. Either way
learning Emacs just for org-mode is probably only a good idea if you really want
to use the features coming with it in one package.
There is a danger in making things too complicated. You reduce the number of systems you can access it on, and you increase the complexity of just doing basic stuff.
Humanity made a huge number of advancements using just simple paper and ink.
I used vimwiki. Switched over to Org a couple years ago and I really like the change. If you use Spacemacs and Evil mode you should feel pretty at home.
Easiest way to get started with org is to start simple. Just use the indented headings and source (code) blocks. Once comfy there you can branch out into tables and todos. Then maybe use the agenda (I personally don’t).
I’ve never had to write elisp or anything other than normal vim commands.
Are you missing anything? Probably not. Depends on how in depth you want to get. But, I’ve done the transition and thought it was positive. :)
I tried vimwiki and it's really cool. However I couldn't get to "one step up" because it was so vim-specific and I didn't have access to that on every system I used. As a compromise I decided to lean into editor snippets for personal productivity and automation, since these are available in just about every major editor. The rest of my tools are externalized and called as such from the editor, like pandoc and various little apps and system scripts.
I do something similar but with paper and pen. I purchase customized laboratory notebooks that have my name and a serial number embossed on the front and otherwise blank pages. I write down every meeting I attend (or call into), the date and time of their start and stop, all the attendees names, as well as regular to do lists, action items, etc. After years of doing this I have a nicely curated collection of notebooks that look great on the shelf and give me a sense of pride and history on my work. I took the inspiration from George Washington's diarys which are in the library of congress. I also use a fancy fountain pen with beautiful blue ink which my wife purchased for me that adds an extra bit of personality to the whole experience.
https://www.loc.gov/loc/lcib/0010/gwdiary.html
Why do people feel a strong need to organize their day, spend tremendous amount of time(ironically) and energy in exactly what they need to do that day and how many calories they eat?
I feel the complete opposite. I structure projects, not my time. I want a loose schedule. You could stop worry about time, try a free schedule, enjoy life a little, and get work done. This whole "productivity" bullshit is an urban concept. Back when my grand pa was a farmer, he didn't have a schedule but he worked all day. The task can take as long it has to. I am willing to bet, your average urban wizbang with TODO apps and productivity hacks will not match the output.
For me it’s laziness and forgetfulness. I don’t like thinking about all the things I have to do everyday so I outsource that to apps/documents. Also helps when coordinating with others and when new opportunities/issues arise I can confidently assume I’m not going to miss that dentist appt/event/whatever I agreed to attend a while ago. There’s so many things going on all the time I don’t know how people survive without some
Sort of productivity process/tooling. Unless like you said you’re a farmer or something and you just sort of hang out around your property and tackle things as they arise.
Once your project is bigger then one person, you gotta start talking to people, and if you’re talking to people regularly then you gotta keep some amount of track of your planned time so you can schedule a time to talk. Some multi-person projects can happen in largely asynchronous communication, some can’t.
I hate doing that so I work freelance, on a loose schedule. I still track my time so I can do things like “feel confident that I’m getting enough shit done fast enough to have money for rent”.
“Get shit I gotta do out of the way as efficiently as possible so I can do the stuff I wanna do at my own pace” is also a possible reason.
To a large extent I agree with you. At work, I have projects that I know when they need to be done by. I know that other people will expect that certain stages will be done at certain points, because they need them to do their parts of the project. But within that there’s a lot of arbitrary ordering of work. It doesn’t really have to be micromanaged that closely.
I used org mode at my last job, lots of management data, deep learning research, and patent application notes. Org worked great for me.
Now except for occasional DL related consulting, I am retired and my tech world activities are centered around writing. I have four book ideas that I will get to in the next few years, and updating my older books to new editions takes time. Keeping notes and research is vital for authors:
Now I use markdown text files for local notes and for cloud based note taking I went back to using Google Keep. I was using Apple Notes until I realized that they used imap to synchronize and that was not secure enough for me. For a decade I had used Evernote, but that ended up being too much ceremony/overhead.
EDIT: Apple really needs to encrypt more types of user data in iCloud.
I read somewhere that IMAP was a concern, but I see that almost everything is encrypted (Apple has description keys) in transit and on their servers. Some data is also end to end encrypted so Apple can not decrypt it (like passwords, health data, etc.).
I don’t remember everything at least being encrypted in transit and on their servers, perhaps that is relatively new?
I wonder why they don’t go all the way and have every5ing encrypted end to end.
I currently use Google Tasks for Todos and I honestly have never been happier. To make Google Tasks work you have to be using Gmail and Google Calendar (which may be a non-starter for some people), but if you are using those already then Google Tasks is worth taking a look.
The beauty of Google Tasks is it lives alongside your email, integrates seamlessly with the calendar, and automatically synchronizes across devices. The interface is super simple and intuitive (drag/drop for prioritizing and simple completion), yet powerful enough to allow for things like setting up recurring tasks.
I especially like scheduling tasks for items I know I have coming up a week or so out. When I know I have something coming up, I just enter the date/time and a description and I'm done. (Maybe all of 10 seconds?) It's so much faster than trying to put something in a calendar and I find myself offloading all of these things I have to remember from my brain and just rely on my device.
I like tasks in my inbox too, so I setup a filter to label all emails to & from myself to be labeled "ToDo". Then I just send myself an Email and it's unified with the "ToDos" that other people email me.
I like how you can drag tasks directly to Google Calendar. Do you know if it is possible to drag them as events, not reminders? I prefer to block entire time slots as events in my calendar because it helps me better manage my time. For example, I would add a 3 hour long event called "refactor hello_world" or a 2 hour one "find lost socks" and dedicate these time block to these specific activities. Unfortunately, you cannot change the length of reminders.
Alternatively, is there any other software with this feature? I have been looking for one for a while but no luck :-\
Scheduling tasks as calendar events with duration is indeed critical to actually getting them done for many people (including those with ADHD)
That (and scheduling suggestions) used to be the main feature of Timeful, an app started by behavioral psychologist Dan Ariely. It actually got acquired by Google and shut down. Sadly, Google Tasks still pales in comparison.
The only todo app I’ve found which allows you to do this and has desktop/mobile versions is TickTick. I used to be a fan of Things which is nearly perfect, but the authors stubbornly refuse to implement this, so I’m gradually migrating away from it.
I also prefer to track todos this way because it shows me how much free time I can realistically commit to new things. There was a calendar app that did this very well called Timeful, which Google acquired a few years ago. Some of the features from Timeful have been rolled into GCal, but this one doesn’t seem to have made it.
When Danny O'Brien started researching what he called "life hacks" around 2004, the giant decades-long text file was the key practice shared by most of his interviewees. But not just for to-do lists; also for research notes, ideas, and so on.
Yep, text file(s). The key is flexibility and putting an effort into something you're going to stick with. A single text file works. Multiple files work. You can accomplish a lot with just the features of the OS, like the window manager, search and shell scripting.
Lots of people like Org mode. I think people who don't like Org mode are partially just overwhelmed. One key is to do as little as you need to and then use the tools available as you find a need for them. One big file works well for that. Or starting with the minimal set of Org mode works well for that. Most people will dive right into the deep and try to incorporate everything right away.
Another trick is just forcing yourself to use something. The most sticky processes I have used were those which came with a job... because I was FORCED. Maybe you should just force yourself to use the tools you have in front of you.
Personally, I like doing small incrementations of my processes and using shell scripts to push those small improvements. If I'm moving slow, then I can back off. If I'm putting everything down to build the most awesome system in like a week or more, then I'm quickly getting myself stuck in a corner.
I've used a text file with a very similar workflow for a couple years and wholeheartedly agree it's a very flexible and useful tool. The trouble I had was what to do when I'm not in front of my computer. I tried sending myself TODO emails and I'd add them to the list later. That works pretty well. Although typing more than a line on a phone is kinda painful. And it requires the discipline to add the item to the list instead of leaving it in my inbox.
Recently I switched to a physical journal that I carry everywhere. I find a zen like joy in physically writing my thoughts and the portability can't be beat. I do miss the search though. Wish there was a way to combine these two systems without creating more work for me.
Ultimately the best system is whichever one you find it easiest to keep up to date. It's almost like negotiating with my lazy side. "Ok lazy brain, if you're too lazy to keep a list in google docs, let's see if you can get excited about this journal. Look it's got a picture if space on the cover!"
I've been using notebooks for years to write things down, but only recently I found one with a table of contents area at the front that has been immensely helpful in finding things later on.
Not OP, but these are quite popular with the bullet journal crowd. ToC, better paper than the likes of Moleskine, takes me right about a year to fill one up.
I don't use a single text file, but I do keep notes with text files. I created a little bash script to help me do that.
I type 'note' in the terminal and it opens up a new file at ~/notes/$year/$month/$day/note.md in vim in insert mode with a timestamp already inserted for me.
What people don't know or forget: You can always start minimally. For personal projects, it turns out a text file works for 99% of use cases. Text editor, vi or emacs? Doesn't matter, as long as it's just text! You can have more text files for different stuff. Invent ways to use flags, prioritize, assignments, etc. It's your ad-hoc format, and easy to evolve. Heck, for personal hobby, I've had success with such TODO-lists at end of such sourcecode.
For more structure, I've found Freemind cool to use. It works like a text-file, but you put everything in a graph and can spread through different files. Can even use links, colors and text formats if you like.
What doesn't really work, is other people's tools, like so-called collaborative tools, SM, and whatnot. One day they'll just delete everything, migrations will fail, it's slow and unreliable. Email seems to work well enough personally, though less so with the advent of "cloud computing" (other people's computer).
I’ve found OneNote very useful for Todo lists. It’s very flexible and supports collapsible nested lists. But the killer feature is the “dock to desktop” feature, which makes the list always visible on my monitor. It forces me to stay on task and reminds me what to do next. I create a new page every week and copy over my remaining tasks from the last week. I’ve been doing this for 3 years now and haven’t looked back.
I use OneNote at work. It's the one Microsoft product I really enjoy using. It does so much and lets you organize things any which way you want. It is about as close as I've seen to digital paper.
Granted, I haven't had to do sketches in there, or any kind of OCR. I think I'd still do those on paper.
I've got one folder per project and one folder for each thing I want to learn.
It is relatively recent for me, but my journal, to do list and similar eventually found a home in Zim. At the end of the day, it is just a bunch of text files and it just works for me.
I think an ideal system would include voice notes. The problem is, I would really like it if the voice notes were geotagged and timestamped AND really easy to record. I think a smartphone app is to cumbersome. It should be a single physical button, just for that purpose.
What I really would like is a minimal device with a microphone and a button, that stores the notes in my phone.
I do similar only it's a notes.txt inside whatever project I'm in... for all todos for that project...
I've been working on getting more organized though and have started using Joplin for similar thing, though not single file it does sync things... I like having a more organized look at things than just searching through a txt file that can get super huge.
For people on the go that need somewhat more organization I like iAWriter for iPhone (let’s you use md files for notes) and then you can also edit the markdown files directly on your laptop in the iCloud folder. Everything syncs up nicely in a nonproprietary format it’s seriously life changing
Yea that’s actually the most annoying thing for me too, I would rather use it with gdrive or Dropbox instead of iCloud (which is prone to a ton of issues). I had to do some hacky things to get it to work the way I wanted tbh.
Yup! And if you work in a team and need version control for your notes there’s an app called Working Copy which integrates perfectly. Then you push changes directly to a git repo which acts as your source of truth
There's beauty and power in simplicity. Thanks for sharing! Also, take a look at Roam (https://roamresearch.com) which almost comes full-circle to a place of simplicity (just write instead of worrying about where to put things or how to organize them) while providing all kinds of benefits. There are many tradeoffs and valid reasons to prefer your .txt (or my .md) file(s), but I highly recommend playing w Roam to see what's possible.
Roam is totally cool, but at the moment not very polished.
Even worse they're loosing a lot of data, which stopped me from using it – sadly. I still think it's superior to anything else, but loosing data is a show stopper.
Huh. I have a list of things I feel it needs before it's really ready for broad adoption, but data loss? I haven't experienced any, and yours is the first mention I've come across. That said, it's still beta quality and they're moving really fast; since it's still free I'm reserving judgment on the reliability front. It's so good, w so much potential; rooting hard for them to get it right.
"Any sufficiently complicated note-taking/productivity/GTD system contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Org-Mode."
No, it's a note-taking &c. system that offers the capability of doing lots of other things, but nothing compels you to make use of any features you don't need, and in the end the files are plain text files that are perfectly readable in any arbitrary text-editor.
In my Emacs setup org-mode has at least two reproducible bugs(that I know of) and one feature that's obviously implemented in a more complicated way than necessary.
That said it is a fantastic package with some great ideas.
When I enter a new line within source blocks(but often also outside) it starts to wiggle horizontally. It only stops after I revert-buffer or add another line.
Calling comment-line in an elisp source block causes a syntax error because it'll also split up the line below.
And the time tracking feature doesn't work across Emacs restarts, because for some reason it seems to rely on some timer running in the background. That's not really necessary as all that's needed is calculating the difference between two timestamps and inserting the result in a plain text file.
Notepad++ user here. I use multiple pads and create new notes. The autosave feature is great that you don’t have to sAve a note to persist after a restart.
Once a week I either save and file these tabs or just discard them. It’s like a great scratchpad.
I also try not to hoard on too much data, I discard a lot with this in mind
Ps in notepad++ ctl+alt+up/down arrows move a line up and down. I use this a lot to rank lists and mark priority by moving it to the top
I wonder if there's any correlation between static/dynamic typing fans of programming languages, and people who organize their lives with highly structured apps versus a big text file.
I've tried to use various to-do apps and calendars and email organizing systems (and some of them look really cool!), and they're all way too structured for me to use for even my most boring week. They're too complex, but not in useful ways, because I don't get the flexibility I want out of that complexity. I end up putting most of my information in the big "NOTES" field, or in giant email drafts to myself, where it's not really usable for anything.
Sadly, while I see many effective programmers who prefer static or dynamic languages, and many effective organizers who use structured or unstructured task systems, essentially 100% of the new software I see are new highly structured systems. Were Emacs and Hypercard unique events in all of computing history, with a power and flexibility that is never to be repeated, for fear of crossing the streams?
I have attempted something similar for some time, but always have issues making a habit of it. My solution is to use a physical piece of paper that I can always carry with me. The physicality of it is a great reminder for me.
I know how to work with org-mode and I’ve also tried the paper notebook. Both seem like they should be working fine, my problem is that I never remember to work on my notes or todos. The last entries are likely at least a few months old.
Typically I just want to start with whatever comes next, I probably already have a plan in my head and it doesn’t occur to me to write something down after I’m done. My workdays vary also significantly (tools, projects, contexts, etc.) so there’s no typical environment where I can integrate something like this into. Even a weekly reminder to write down my hours at the end of the week has failed to trigger action half of the time. It is only irritating when I do miss the notes, e.g. for a yearly review, filling out some timesheets or when googling for the 5th time in as many days for the same info.
To me the major takeaways from the popularity of this post/discussion:
* Modern productivity software is still severely inadequate
* No matter how good your system is, the affordance to drop into plain text is key for the dev market
More and more I am going back to simple tools. The simpler the better. I think using a pure text file with the basic GNU command line tools is very powerful and more flexible than anything. Just remember to keep it in git!
I have been using a single text (markdown) file for at least five years instead of the todo list I usually write what is done during the day and sometimes add important tasks that need to be done. I try to keep everything fairly plain and avoid overcomplicating the structure. For me this provides an easy way to go over the history, usually try to document more complex devops operations, decisions etc.
I use Sublime to keep the document open there, works really well with larger files.
Each day begins with separating section:
# 08.02.2020 #
...
# 09.02.2020 #
A single file seems like a forcing function for including the right amount of context you'll need later.
I use nvalt, which is basically a small collection of text files. It seems like whenever I let myself create many files, I just feel scattered, and am more likely to enter garbage.
Nowadays I just use maybe 10 notes. If I create a new one for a meeting, etc.., I'll copy in the relevant parts and delete the meeting note after.
It seems like having a proliferation of notes has also been an issue on most orgs I've been in :/.
I have separate text files for todo and notes. I use Notepad on Windows and it has a nice (though not very well known) F5 feature to insert current dateTime. Certainly not surprising given the name of the program is notepad. I also extensively use Autohotkey to quickly open up the desired file by pressing a system-wide keystroke.
I also keep these text files in a remote git repository so there's a history to restore from in case I accidentally delete something
Where/How would I jot down a brand new todo? The way I understand it right now is, that everything is immediately being scheduled into an appropriate calendar spot, but that seems so very wrong that I feel I must be mistaken.
(To elaborate: To me it is critical to have swift todo entry with minimal effort to account for the random and probably inconvenient times new tasks and thoughts pop up. Having to also deal with scheduling at that very moment would really not allow for that.)
In markdown, I use [ ] (a square in my physical notebook) for an un-done todo and [x] for completed. So to keep track of current todos, search on [ ]. For physical notebook, I take some time every day to flip back the last several pages and make sure I haven't missed putting something in a more formal list.
I'm using GitLab issues for tasks at the moment, but I really like this concept...
Original author here. Yeah it feels wrong because you're not using the calendar like it's "supposed to" be used. But who cares. But what this does is 1) reduce the stress of seeing that item day after day until the day when you asked yourself to deal with it, and 2) forces you to find a day to put it when you have available time for it.
Do you actually take the time to schedule every new todo whenever it pops up? No jotting it down quickly, but scheduling it separately at a later point?
I use Evernote just like a folder with sub-folders and files in those sub-folders. For instance, I have my main folder, a folder to keep things of my workplace, a folder for generic notes, a folder for personal things, a folder for my monthly-semester-anual planning, etc., etc.
What I do that really has been working very well for me is maintaining a list of things to do for the next weeks (usually for the next 2/3 months). I have a list with items for my work, and generic life items.
For instance, my work list has something like:
Week 10/Feb
- SO: Prepare exam (print)
- SO: Hold project discussions (Thursday, 10h)
- CD: Prepare next semester (generic overview)
Week 17/Feb
- ...
Every week I grab the information from those weekly lists and add to my TODO file. My TODO file is where I split the weekly items through the days:
Monday
- SO: Prepare exam (print)
- SIM: do accounting
Tuesday
- ....
My TODO file comes from a template with recurrent items already set in their respective days, so I never miss recurrent things..
All in all, my system is like a calendar and todo list in the same place. I don't like to use two or three apps to do my planning.
Eventually I would like to get rid of Evernote mainly because I have to delete older items to keep my scroll to a minimum (and so, I lose all information about my previous weeks and todo lists)..
I like dead simple solutions like this; in general when people reach for new tools or abstractions they swing further away from greatest productivity, not closer.
But sometimes it's weak. I once had a junior dev who logged his time in a single text file, by actually typing out the times he started and stopped doing things. Using a (simple) stopwatch tool is clearly more effective than that.
What I use:
- Google keep, for basic notes and todos
- Alarms for things that have to happen at a certain time. Outside of collaborative work I've never felt the value in calenders. I'm not a machine and I need my slack.
- Toggl for keeping track of time spent on productive things. Time is the most valuable thing we all have, so keeping track of where it's going is critical, even if it's just knowing how many hours you worked this week.
- For collaborative work, a project management tool like Jira. Yes they add friction, but they're the only way I've seen to effectively keep everyone on the same page and maintain a single source of truth of project status. The biggest problem with them (other than having irritatingly complex and slow UIs) is usually the guy driving them making a dumpster fire out of them, not the tool itself.
I've done something similar. Since 2001 I've used txt files, but I broke them up by having 1 file for each month.
It really does work nicely without getting in your way.
I tend not to include specific time logged entries tho. I just free form drop things in. That's why I like having it split up per month, it's so I can look back and get a high level picture of "oh, that's what I was working on 6 months ago" or in this case almost 20 years ago.
I am thinking the consistency is part of the value.
I use paper and pen for my weekly ToDo lists, even while I play around with QtPy and MariaDB on Linux (most recent set of tech I am experimenting with) for an eventual electronic version.
I always put a title at the top left, and the date at the top right. This helps if the page eventually gets filed (like when I take notes during support calls). And if it is multi-page (usually is) I put Page X of Y at the top center. Y gets back filled once I am done, as I then know how many pages total there are.
I begin the list with my calendar appointments for the week at the top so that I keep them in mind.
Then I start with most recent or most urgent items from memory. Next I canvas my Inbox for electronic communications that indicate items to go on the list. Then I can file the email into permanent storage to keep my Inbox from becoming overwhelming.
After that I look at the accumulated service notes (I run an IT support business, among others) and add any open items/follow ups, etc. to the list prior to filing those notes in client folders in a filing cabinet. This likely catches all my phone calls, as I tend to take notes while assisting others, eliminating the need to go through my voice logs.
Last, I review any previous To Do lists and add their content so I can destroy the old lists.
This system has been working for several years, even as my programming attempts have morphed with each new platform/dialect/db I turn my attention to.
The act of writing also helps organize my thoughts and solidify some of the items in mind for the week.
It also sounds like a really messy system working between the two, I guess it works for this guy, but no idea why HN is getting so doey eyed about this.
I think we all just want something simple to clean up the giant, overwhelming mess of modern life, so we're primed to approve of anything that looks like a silver bullet.
Beside email and calendar, I use the filesystem extensively and I create "project folders" for everything from software(git) to personal things like (2020-02-08_DaughterRoomBlinds) for the "project" of changing blinds in my daughter's room. Except git repo I sync everything using syncthing on my android and laptop. I also have a set of scripts to generate nice PDF using pandoc (for regular mail letters).
After experimenting with dozens of different products in order to become 'more productive' I've ended up doing something similar, but I use Apple Notes instead. At one stage I was experimenting with Trello, Todist, GTD, Zettelkasten, Wikis, Notion, Emails, Calendars, Workflowy...You name it, I've tried it, and combinations of it with other products.
Then one day I started using Apple Notes to start a journalling practice and then I realised I could use it for just about every other thing that I was using all these pieces of software for. I now use it and a calendar exclusively and it handles my todo lists, my random thoughts, my personal relationship management, my checklists, pretty much all the things that are actually important to me. The reason I prefer this over a single text document is simply because I can categories my files into folders. That's it. Same thing could be achieved with text files and folders but I like having this synch on all my devices.
Plain old text is amazing in its simplicity and power.
Someone once left a comment on a Zettlekasten thread and it's something I've always thought about now whenever I get the itch to complicate my system. [1]
"I had the realization yesterday while waiting for a train that the Notes app on iOS contains all the functionality I'd need in order to be able to build a small organization/business .. as long as I standardized my form of note-taking and rigorously applied policies on how Notes are transformed from one Folder to the other"
And I find this applies in my personal note taking life as well.
I keep a daily log like this at my job. Basically, if I have a list to-dos, I add them to today's log and if they don't all get done, I copy-paste them into tomorrow's entry.
Like the author, I tried various productivity apps (even created my own to-do app), but the one constant for the last 15-20 years of working for me is the daily log.
For my personal coding projects, I just keep track of tasks using a TODOs.md file. Whenever I encounter a new bug, a design idea, feature request, etc., I add it to the file. I check off the items as I do them and move them around the file to keep it easy to find incomplete tasks.
The big learning for me is simple tools are often good enough. Just get things done and don't worry too much about complicated tools or workflows that you may end up getting tired of and ditching.
This is exactly what I do, except I don't save the to do lists. Instead, I simply spin out any ideas and notes I'd taken into a separate new note. I've got around 10,000 notes now that I've never looked at, but I simply like knowing they are there as it seems to provide a nice psycholgoical foundation for the continued evolution of my ideas/thoughts.
I've tried and used a lot of note taking apps, including the big ones like evernote and onenote. I have been using cherrytree for a couple of years now and it is terrific:
* good formatted text/content paste from the browser (this is what the other newer contenders mostly fail to do well)
Nothing is going to break a static next.js page that wouldn't also break this page. Hosting space and bandwidth are cheap, and while next.js has some overhead, it has built-in tree shaking to compress what may be a 200MB node_modules directory into less than a megabyte. Next.js also changes a lot of the code by running it through WebPack, but anything is easily seen using Firefox Inspector.
Back to the actual HN story: While I have gotten mileage out of something similar to a single text file from time to time, what I hope for is something like https://mycroft.ai/ to help me keep track of information.
I think your system is great, especially for this kind of daily logs and personal record of what you have accomplished.
If you start to widen your scope and try to do more complete personal knowledge management, I think this system will have some limitations. Some obvious ones, such as no image support and no integrations with other software (project management, GitLab/Hub,...), and some less obvious ones that only become apparent once you use more complex tools.
Basically every idea I have (Software related or otherwise) is shoved into a .txt in the appropriate folder or potentially the application RedNotebook which has been my go-to diary for YEARS. If I wanna get REALLY fancy for a big game design document it all goes into an .odf file.
My secret "Hack" is having a physical notebook next to my bed so I can scrawl my bedtime thoughts in it so I don't lose them. I obtained this amazing technique from an episode of a family guy spinoff that was just the cutaways, no joke.
Might even upgrade to a dictaphone so my musical thoughts are much less hard to parse due to my poor sheet music skills plus my handwriting would no longer be an issue. Would irritate my housemates to no end though with my rambling.
A while back I fell out of love with Evernote and migrated all my years of notes out to txt files which are synced to Dropbox. Huge nested folder structures but easily searched via grep or whatever. And then I have a folder called “Captains Log” and I make txt files for as many things as I can during the day. Code snippets, reminders to buy eggs at the store, urls to some dumb thing I want to remember to read later on but can’t bother with right now. Often the only content of the txt file is the title and no content if it was just a quick jot. And now you can use the Dropbox app edit txt files directly inside it which makes for easy note taking when mobile. Been using this method for years now, still going strong.
One thing I want to try is having a cron job that exports all my Linux command line commands that I ran that day and dumps them into a txt file for historical purposes.
Honest question. Does it freak you out to have many years of intimate and detailed notes about all aspects of your life and inner monologue to live in freetext on a stranger's computer?
A stranger's computer meaning Dropbox? No, I've worked in similar companies and know the kinds of rigor they put on limiting access to private user data. The number of audits they have to go through for the certifications they have to maintain means they actually take that stuff fairly seriously. At least enough for me to not feel worried about them stealing my recipe for tuna noodle casserole
It is similar, but has some unique characteristics that make it interesting (and to me, compelling). The primary one is easy, automatic, and fast bidirectional linking. The other that comes to mind is the lack of a hierarchical organizational structure; there’s no thinking about “what bullet does this new thing need to be indented under” when compared to WorkFlowy.
If you’re a fan of WorkFlowy I recommend checking it out; I suspect there’s a good chance it will resonate with you.
Ditto. I have vi going in a term maxed in it's own workspace and just leave it open always so that when I have an idea I just do :r!date to add a timestamp and type in whatever ideas / notes. But I do use separate files for different projects.
I do the same thing on my Linux machine, except I also have scripts I wrote for conveniently adding various tasks and notes to my file with automatic formatting which I predefine in another file for various types of tasks. I then have a cron job that regularly reads the file everyday and puts new items into a Postgres database so I can run queries later through a web interface I host from my home on a static IP so I can check tasks when I’m away from my computer. My plan is to eventually allow for myself to push items into the database and have the txt file sync up with the new lines of text automatically when I startup my machine.
Any chance that you could share those scripts and cron job? I think something like that could be useful to the system I'm trying to build around text files for my own personal productivity.
I use an email draft with subject:
<client name> Tasks done for week ending 7/Feb/2020
-- task 1
-- task 1 detail 1
-- task 1 detail 2
...
-- task 2
-- task2 detail 1
..
When working on own projects:
- I use a physical register
- Date (at the top)
- organized notes
...
- random doodling/scribbling
Edit: On a Monday morning, I send that email to myself. So that that week's activities are always searchable by that week ending date. It helps me in my client reporting.
I found FreeMind (a mind-mapping program) back before 2011, and have been using it as both a daily task tracking system as well as for project planning, and task mapping.
I have introduced many people to FreeMind, and the interesting thing is that the numbers have not changed over nearly 10 years:
- 50% hate it and cannot grok it
- 50% love it and have used it every day since
I love this and have also used a txt file for years. I’ve moved from Google Docs to Vimwiki to org mode for notes, todos, and journaling. Most recently I’ve started incorporating a moleskine notebook to take to meetings for note taking and it’s been a nice addition. Sometimes I’ll copy notes over from it to org so that it’s all in one place, but I’ve found it isn’t too hard to page back through it to find something I wrote weeks or months ago if I have a general sense of when I wrote it. Plus the experience of taking notes with a Pilot G2 is just more fun than using a ballpoint on a legal pad. Maybe that’s just me.
I do exactly this, but with the sticky notes application. I find it easier to shuffle and tweak the raw text than moving around and editing discrete todo items, and I have it covering the next 2-3 weeks at any given moment with longer term stuff noted at the bottom. I've also started carrying around a small notepad that acts sort of like a buffer for the todo list, both incoming items that occur when I'm not at the keyboard and outgoing data/thoughts for meetings. It feels more like a natural extension of my memory than any todo app I've tried.
For awhile at work I used Windows' sticky notes extensively. My wallpaper at the time was an image of old fence boards, so the two combined to make a little kanban on my desktop.
In the last few months Ive moved to a single vc'ed text file for work notes and a notebook for tasks and calendaring similar to the typical bullet journal but broken into weeks instead of months. I love it far more than shucking my life into 2-5 productivity apps because I can change my system on a dime. Sometimes my week calendar is a quarter page, sometimes its 2. Having my work notes in git makes them constantly available to my team and eventually Id like to let them contribute. I dont think id even consider personal info management in any other way.
* Plain text files to serve as my "ram" while I am working. Jot down ideas, paste snippets of code, results (or paths to results), etc.
* Physical notebooks for different projects
* Todoist for personal projects, long term view
* Evernote and OneNote (yes, both) for structured writings, notes, etc. OneNote for work (extension of physical notebooks) and study about some subjects. Evernote for logging various things, notes from conferences, etc.
* Filing cabinets for old documents that almost never look at now.
I tried todo.txt after learning about it from Cal Newport. But it didn't work for me.
I use a mix as well. I think plaintext lacks three qualities that are very important to me:
1. Discrete structure/form. Yes you can enforce this yourself, but it's not inherent to the system. This means it takes some additional layer of work to group and move items around (e.g. of trying to keep in a prioritized order).
2. Free-form drawing/diagramming.
3. A built-in notion of time.
All of these are very important to me. Being able to group and shuffle the order of discrete items like todos is very nice for categorizing and prioritizing. Arranging future concerns on the basis of time (I have hard-time, soft-time, and any-time sections of my lists) is important for forecasting. And being able to freely draw is really important for things like architecture and logic diagrams, or UI mockups, or anything abstract that has structure (like a graph or list).
Where text really does shine, IMO, is logging/journaling and capturing knowledge bases or project details. Being able to just dump that stuff somewhere in a stream of consciousness manner and search it later is very useful.
My personal system is to use a pocket-size Moleskine (soft cover) and Microsoft Office tools, which is nice because I run Linux but have to deal with Word and Excel junk all the time anyway. Excel is great for organizing tasks in a GTD-ish manner and moving items around in a discretely, Word is good for checklists and knowledge bases, OneNote is a solid journal, and Outlook is a good calendar for week-ahead type planning. They also all support photos, so I can snap pictures when I want to persist things from my physical notebook such as diagrams or ideas.
I really don't think there's a silver bullet when it comes to tools or systems, so you should start from a fine-grained understanding of your needs and work from there. But plaintext as a format has pros and cons like everything else.
Did this for 15 years. Todos, notes, any list goes in a plain text file.
It was all good but not aesthetically pleasing in terms of readability (wonder if Text Editors will ever focus on improving leading and tracking, or better fonts). And lack of other visual goodies like easy columns.
Tried almost all todo apps and the lack of flexibility was always annoying. I wanted the flexibility of a text editor - an enhanced text editor.
Last year, I discovered Notion and have never looked back. I use it for everything. It's not perfect, but it's pretty close to what I've always wanted.
Question: about "There's no running "todo" list with items that keep pushed back day after day" - but what if you have items that you don't manage to do, and they accumulate, example of such low priority items: pause car licence (nothing bad will happen if you don't), cancel some subscription, let's say you have many of those, where do you put them and how do you avoid this growing list? let's say every day I manage to do one such low priority item but I have two new to do etc.
Those kind of tasks would go in the online calendar, scheduled on some future date.
> The one outside tool I use is an online calendar, and I put everything on this calendar, even things that aren't actually for a fixed time like "make a coffee table at the workshop" or "figure out how to recruit new PhD students" — I'll schedule them on a date when I want to think about it. That way all my future plans and schedule are together, and not a bunch of lists I have to keep track of.
A good way to sync text files between mobile device and Mac is by using Simplenote app (https://simplenote.com/) on the phone and nvAlt on Mac to sync and Vim to edit the text file. I use NvAlt just to sync with Simplenote, as it works perfectly. SimpleNote also uses markdown format, and even does checkbox / todo using markdown `- [ ]`. On the Mac, I can use vim to edit the text file, and nvAlt will sync any changes.
I do the same. I know there exist more powerful tools, but I simply don't care.
Software is simply not built to last nowadays and I'll be forced into an app/service/format that that most probably will be obsolete in the future and I will have to move to the next pile of shit.
I've been gradually alienated from using new pieces during my experience in this industry.
There is so much wrong with using other people's software nowadays, that I simply don't adopt anything new, unless I absolutely have to.
I used to use Evernote before it stopped being good and keep kicking you off your devices after the 2nd one. New Notes app on OSX is actually pretty good now, just change the silly font it comes with something normal. It syncs to iCloud on mac and iPhone and across all your Apple devices. It does merges incredibly well. I remember Evernote every now and then would duplicate ton of my notes because it couldn't resolve a merge conflict, this has never happened on Notes. Give it a go!
A simple cmd+shift+j takes me to my daily journal markdown file in vscode. Everything is markdown and my tasks look something like this...
# [Read hacker news post](#TODO:)
- [My productivity app for the past 12 years has been a single .txt file | Hacker News](https://news.ycombinator.com/item?id=22276184)
- [ ] Leave a comment with my setup
> The one outside tool I use is an online calendar, and I put everything on this calendar
So, the title is totally wrong then? It's really "My productivity suite has been Ultraedit with a single text file and an online calendar"? Ok, reading on.
... oh, what's that?
> Email is obviously a part of my workflow.
Indeed, seems reasonable.
But now it's: "My productivity suite is Ultraedit with a text file, an email client on an always-on remotely accessible machine, and an online calendar."
Ok, fine, but not as impressive as the title suggests.
I use Scrivener, it is a software mainly used by writers. Downside of that was that it "lived" on my PC and I had to send Signal messages to myself with additions during the day. I recently discovered and all called JotterPad. By uploading the Scrivener container to a Dropbox/Google drive I can use it from both ends, PC-Scrivener and Phone-JotterPad, so I can continue on the same medium and not have to copy & paste.
Any tip how to do this when my main note/insight taking device is the iphone, and I want to be able to do this offline as well, and sync with desktop?
It seems like no iOS note taking tool is written in a way that would handle 100 kB of text :/.
OneNote gets slow, Apple Notes is a bit better but I don't trust it since the incident where all tables and images disappeared in all my password protected notes in iOS 13 (and Apple didn't own this fuckup).
I’ve never really gotten into “productivity” apps. Typically my email inbox and calendar combine as my to-do list. Anything in the main inbox still needs to be dealt with. Anything else shows up as a reminder when I need it to. Literally everything work related lives in 1-2 work applications. I intentionally don’t integrate those with my home life. Sometimes I’ll keep a scratch note open in VS code but rarely do I save anything there.
I used to have an Evernote account with work notes and home notes, and found it impossible to not sometimes be distracted by the work notes outside of work.
Now I keep anything note-like completely separate. Every once in a while I send a specific thing from one world to the other, like additions I come up with for dotfiles, but otherwise it's so much better keeping things separate.
Same, of course. I added some bash aliases to make it much easier to write to the file, and use markdown instead to allow tracking todos easier.
I also added a vim command to push it to github while editing. These just remove barriers to opening and syncing the file, but the concept is the same.
I coded up MinimaList Outline app to add few more basic features to basic txt, such as multiple lists, bullet points, collapsable categories, etc. I use it as my daily driver, maybe others will like it also: https://play.google.com/store/apps/details?id=ca.toadlybrood...
Having EVERYTHING in one big text file would scare me a bit. I've been using the open source app Joplin which lets you take notes in Markdown and am leaning toward one folder per month and taking individual plain text notes there.
The metadata is in a database but the notes themselves are all plain markdown. If something bad ever happens to Joplin, I can just dump the .md files to a folder and move to something else.
I basically use web based email clients like gmail, Outlook, yahoo, create draft email , set subject As note.
Then keep my lists, etc.
Easy to search, Easy to access anywhere, and I can send a copy around to get duplicate info. I only use file based text files for actual script driven Workflows.
I can make as many As needed and they are secure. Storing secrets is a challenge, for this I use a Password manager, they can store secrets securely and distributed.
You might want to look at Tiddlywiki
https://tiddlywiki.com/ It's got text file storage and different ways to get into and edit pages. I like that there is formatting things you can do to make the "pages" look better. The ability to link to items makes structuring / finding things a little easier.
Pen and paper and .plan files weekly have gone a long way in motivating me to use my time and not procrastinate. Furthermore, I recall an article title called 'procrastination is about emotional management ' or something similar, and it really drove home the WHY behind the time sinks i have in my daily routines.
I increasingly see these claims of simple means to enhanced productivity to me more true.
Yup... seriously... F* those insanely stupid productivity apps out there. Me too use a single text file and sublime. I use the same for note-taking too. Works amazingly well. Not that I haven't tried other dedicated apps. But, nothing comes close to the simplicity and flexibility of a single text file. To format it a bit better, I generally write in markdown format. Works best!
I'm the same. It drives my employer crazy, they want me to use JIRA and I use Notepad, and guess which requires less maintenance? I do use a couple of external tools though - Trello in particular, and Google Sheets to keep a basic external calendar where people can book appointments in slots that I provide (rather than an open calendar). That's it. It works perfectly.
I do something similar, a draft gmail on which I list tasks in sequence, and as they are done = ticked.
Next day a new one is initiated, undone tasks are promoted to this day, deleted, or just stay queued until done or deleted. Every few weeks I cull the herd, copy stuff not done to a recent one of delete it.
I can access anywhere, as secure as gmail 2 factor, and works well
I love this. Being “productive” (however you define it for yourself) is all about desire + process.
Fancy tools can help you manage / automate the process but the tool has to come last. It’s like all the “pro” devices marketed to consumers (cameras, laptops, whatever): they mostly add value when you are already good enough that you you don’t need them.
I just started writing key metrics of mine in a small physical notebook every day. I write tally marks for each glass of water I drink, jot down any supplements I take, and also track the weight of dumbbells/plates I lift that day. I also use it to track any big TODO's.
I've tried all of these things digitally but I've never had the follow-through as with paper.
I don't care about analyzing the data afterwards. When I open the notebook and see that I've only had one glass of water, it motivates me to drink another, until I get around 8 in one day.
I have an addictive personality so I could easily sit in front of the computer and write code for days on end and not take care of myself. This little physical book and pen is the only thing that's brought me back to reality and kept me on track!
Would seeing any kind of analysis benefit you or boost your motivation? Like something that would clearly show based on your own data that, say there is a strong correlation between feeling ill and drinking less than 4 cups of water throughout the day?
The reason I ask is because I'm building something like this. And not many people track their habits as systematically as you do.
Yes! I think this would be definitely boost motivation. It would also help me to look at things "before" any positive outcome and remind me not to go... back to there.
I use a website for recording stuff. That website enables me to create a title, and write into it everything as a post with a timestamp.
For example, "health" is a title. I can dump everything in that page and read it later on. "Payments" is another title, etc. I believe this to be the best solution for me, because I can reach this site from my mobile phone too.
Also do it but with a Google Doc in the form of monthly daily logs (i.e Feb 2020 Daily Log).
In addition to keeping track of daily to dos, there's also a backlog at the top and a future anticipated events.
It has become a big part of my routine and feel very happy about it. I've done that for the past 3 years and like the simplicity of this workflow :)
This is an interesting approach, and definitely something I will adopt when my situation requires it.
I already write everything in plain text files. But one thing I find extremely important is to be able to treat it as a peace I can nurture. To go back and revisit old thoughts, reflect on my development etc. However, this is not as much productivity as introspection.
I was burned by a proprietary rich-text note taking application in the late 90s/early 2000s. I've been using a simple text file called "notes" ever since.
"notes" is ~1.4 MB now. Full text search is easy and fast and I always finds what I'm looking for because everything is there. For media I just paste the file path on disk.
I just use Simplenote for everything: shopping lists, vacation plans, research notes, work meeting notes and todos, etc. Anything that requires collaboration can easily be shared, and I can view and edit notes from any device. There's no structure at all, so I can impose whatever structure is appropriate for the context and works for me.
The more you worry about format, the more friction there is making to making notes. And you don't want friction, you want a sustainable habit.
Just dump stuff in. You'll figure out something that works over time. It's easy to get bogged down with meta-issues like infrastructure and custom Emacs macros and automatic replication and other yak-shaving nonsense that only adds complexity, which increases the likelihood that you'll drop the habit.
My boss does this and he is a multitasker who routinely has stuff in eight columns on four monitors. For searching his notes, he basically uses the Windows start menu search funtionality.
He's tried to switch to different Linux distributions but none of them has had a properly functioning indexed search box.
Generally you don't need an indexed search on modern personal computers when what you're searching is the text you've written yourself over the last 20 years. You just use Emacs C-s incremental search.
20 years × 16 hours/day × 365 days/year × 160 words/minute × 6 bytes/word is only 6.7 gigabytes. That fits in RAM on a modern machine and takes 150 milliseconds to search through by brute force. In 1990 it was possible you would need an indexed search, and in fact you might have to print stuff out because you didn't have disk space for it. Now you don't.
it's not about the amount of data, it's just that nothing else than Windows currently does it reliably for stuff across the local and remote filesystems plus Outlook.
His motto is that if any human interaction on computer takes longer than a kid's attention span, the feature is unusable and it must be reworked or killed – and I completely agree with him.
The article is about a technique that avoids this problem: keep all your notes in one large text file. This eliminates the need to search across local and remote filesystems plus Outlook; instead you do a string search in a single text file. You commented on the article, saying, “My boss does this,” but it sounds like he is doing something else entirely. What did you mean to say?
Me too, i has using windows notepad since 2003 to take notes, but in 02/2019 i just found Joplin...and its a amazing tool, simple like notepad and with cloud integration for backup.
https://joplinapp.org/
I have one named thoughts.txt, and one named notes.txt, to separate daily scrum list vs. random idea or thought list. shortcuts on the desktop and aliases for easy access.
Also started using the notation
[ ] thing to do
[x] thing got done
Ok, I have some other special case ones like recipes, etc
As a die hard Emacser, I’ve always been drawn to the idea of plain text productivity. What keeps me using apps like Todoist and Calendar.app is I am unaware of a way to have location-based reminders, collaborative to-do lists, and shared calendars. Is anyone doing this with plain text?
I made a quick plugin to vscode where F6 opens up a specific text file on my disk. This is where I capture all these things. For me the trick is that there is no formatting. It's just a rough scratch pad to make short lived lists or things I need to remember.
I use one large mind-dump file (~15 years) in Apple Notes and keep todos for the next day on a single sheet of paper which I throw out in the evening — why would anyone archive their accomplished tasks? I love destroying the past every single day.
The Bullet Journal book actually has a really good point about this, which is that you should be archiving this stuff to have the exact realization you just pointed out and then figure out how to adjust your behavior to focus on things that are actually meaningful to you.
I tried the todo.txt approach, but found I wanted to have secure access from any device (including devices I don't own), so went with an easy cloud option: https://five.today
I don’t use a task manager, but I keep a daily highlights journal. Usually I pull some scrap paper from the printer, fold it in quarters, and put a day’s notes on a quadrant or two.
Then I take a picture of it and drop in Apple Notes on my phone.
I created a simple timeline app called http://www.ribbbn.com to take notes. It's super early stage right now. I use this in conjunction with Workflowy.
Seems good for managing yourself, but what are you all using to collaborate with your colleagues. For example I want my team to be able to assign me tasks (I'm CEO). Right now they do that in Asana.
I use a note type approach with an app that allows me push tasks to the top. No needing to transcribe items to the top. The app that I use is called Sortd.com. It’s like a bullet journal but simpler.
I've been doing this kind of thing for years, to the point of managing highly complex multi-million dollar multidisciplinary projects very successfully with basic text files.
When you get right down to it, it's the embodiment of a Kanban system in a text file. Because I have so much to manage every single project has its own text file in the relevant directory. In other words, I don't have one text file to rule them all. This makes sense because of the multidisciplinary nature of our work. I could be running Solidworks doing mechanical and optical design one day, coding FPGA's the following week, embedded software next and running Altium for electronics design at the same time. Each major discipline gets its own text file. I call them "Project Log - <relevant designator goes here>".
This is what they would look like for a hypothetical home sprinkler controller:
Project Log - Sprinkler Controller
--------------------------------------------------- WORKING ON NOW
- Chase down VC for that $25MM check
--------------------------------------------------- TO DO
- Decide on form factor
- Decide on votage (12 or 24?)
- Measure current of typical sprinkler valve
- Draw basic block diagram
- Conformal coating?
- Start mechnical design
- Injection mold of CNC machine enclosure?
- Off the shelf enclosure a possibility?
- Start electrical design
- What type of connectors do we use?
- Does it have to be IP-something rated?
--------------------------------------------------- IDEAS
- Nuclear powered?
- Maybe solar power is better
- Transparent case to see blinking LED's inside?
- How about just buying one from Home Depot?
--------------------------------------------------- CONTACTS
- Talk to applications engineer at Arrow: <name>@arrow.com
- Talk to Intel about using new 20+ core processor: <name>@intel.com
--------------------------------------------------- RESEARCH
- Article on the advantages of 32 core 64 bit processors for sprinkler systems
http://example.com/32-core-processors-for-sprinkler-controllers
--------------------------------------------------- DONE
- Decide how many output channels we need
- Decide on maximum BOM cost
- Talk to VC's about raising $25MM for the 32 core 64 bit processor sprinkler controllers
- We have one VC very interested in this!
Over the years this approach has proven to be highly effective in managing anything from small to very large and highly complex projects. I mostly use OneNote for research and note taking and, if team collaboration is required, a multi-user Kanban board where I distill relevant cards from my text files for the appropriate team/board.
Another nice thing about text-based Kanban is that it can travel with version control.
Thank you for the visualization! Your category line delimiters make so much sense. For years I've used folding headers in org or vimwiki but named by content vs project status or supporting sections. Toggling line item statuses is less visually clear than your line movement across the kanban cards. So excellent!
I can't believe that a single file would suit my own note taking method which is very hierarchical. I imagine that the people who are using a single text file have a very focused life.
I do this exact same thing except I prepend at the top of the file the days notes. Also the only consistent structure is the putting the date before each note.
The simplicity and longevity is very appealing, but how do you handle images in your note taking? Any recommendations on tools and workflows in that regard?
would be nice if lousy systems were not foisted on us by enterprises. very glad and liberating to be an IC now. sometimes i don't answer emails on our shitty enterprise email system for months but i warned them i don't like that ever-crashing, one-9 of uptime hunk of garbage.
I always wonder how your commit messages look like with a system like this? When you have a task like:
Do the laundry
Do you then commit it with a message like:
Added Laundry Task
Or do you have some kind of automatic commit message format?
In the first case I would feel very unproductive basically repeating myself twice every time. In the second case I would have a horrible time of deconstructing my VCS history and would question its existence in the first place. And I’m not sure that using a VCS directly as a task manager would be that productive either.
interestingly, after thinking about this all day, I realized it exactly what the app Noteplan does nice: connects a daily todo.txt file with a calendar. very helpful.
I also use a single file, but I never save it, when my computer crash or I reboot, i lose everything in it. It helps me do the important things right away and keep temporary information in case I need them, but not believe that they will get done just because I put them on my list.
I used a single log.txt file between 2005 Nov 4 and 2014 2014 Aug 11. This was instrumental in my professional life between those dates. Business ideas, call stacks of ViEmu bugs that I worked on, passwords, financial forecasts, bug and feature lists, database schemas, tracking of billable time for contracting and consulting work... can't recommend it too much. Having a single file is great, I had actually switched from having two separate log files, one from each project, which I had kept during 2005 (one for ViEmu and another for NGEdit, the text editor I was working in that never saw the light of the day but did give birth to ViEmu). Of course, I always edited this file under vim, "murphy" color scheme. A sample:
Sun 19-6-05 Researched (HEAVILY) how to do a "vi emulation module" for microsoft visual studio:
* Downloaded and installed VSIP
- Need: Visual Studio .NET CDs with C# (seems that C# will be easier)
- Install & compile some samples
* Create a new ViEmu sample
- We can "host" the Visual Studio text editor - using the "Data/View" separation model.
- We can follow the instructions on how to host it, but tell IVsCodeWindow to use a different
CLSID for the text views (IVsCodeWindow::SetViewClassID). It uses CLSID_IVsTextView by default.
- We implement a new COM object which is a pass through. It uses IVsTextView internally, and
we pass everything to it. We can call GetWindowHandle() on it to retrieve the HWND, and
install a message hook to process keys before they are sent!
- Implement VimEmu in C++
In 2014, I wanted something that would work better both on my laptop and on my phone, and I switched to OneNote. Several great things: text formatting, having separate notes for some things, good mobile integration back then. I tried several options mainly to make sure synchronization would work fine, and really poor conflict resolution on both Apple's Notes app and on Evernote got me to adopt OneNote. I've been using it until 2019, OneNote on MacOS has become basically unusable. Input lags like it's nobody's business, rendering it nearly unusable. Mobile does not work well at all any more, especially with large notes. The very non-standard document model together with their MacOS and iOS implementations make it unbearable. A pity, but I couldn't wait a few seconds for characters to show after I type them.
So, a few months ago, I went back to... using plain text files with vim. I missed some coloring, so I set up some autocmds to color buffers according to some rules. I'm using a few files (less than 10) to handle different projects and keep them separate, I miss the single file for searching and there are always items that overlap different areas, but i prefer it this way now - plus I do have a "main" catchall file (chautauqua.txt, after Robert Pirsig's book reference).
This kind of "journalling" is very useful but kind of addictive too, so I'm sometimes ambivalent about this. I did stop tracking my weight daily after doing it for about 10 years too, I like to stay aware of my weight and somewhat fit but I don't want to depend on a daily fix of a Excel spreadsheet to do that.
People, do journal and track things if you have never done it, it's a boon. Then find your best way, and maybe even do find the areas of your life you don't want to keep track of, there is something to be said for that too.
Yes, one of my best tools is a single text
file, FACTS.DAT, that I use to remember
essentially all little facts.
What is amazing is the combination of (i)
how simple the file is, (ii) how easy it
is to use, (iii) how little work it took
to start using it, and (iv) how useful it
is.
I maintain the file, add to it, search it,
extract from it with my favorite text
editor KEdit and some macros I wrote for
KEdit. A lot of (i) -- (iv) is due to the
good functionality of KEdit. E.g., KEdit
has some sweetheart text parsing tools.
KEdit is no joke: It is a PC version of
XEDIT written by an IBM guy, on his own
time, in Paris and quickly was an
important tool inside IBM. The macro
language for XEDIT was Rexx, and for
KEDIT, Kexx, a version of Rexx.
Kexx is no joke, e.g., offers decimal
integer arithmetic of 1000 digits. E.g.,
recently, as part of developing some notes
on calculus for my 9 year old nephew, as
at
I used that long precision arithmetic and
Taylor series to find Euler's constant e,
the base of the natural logarithm, to 36
decimal digits:
e = 2.71828182845904523536028747135266250
I have a command line command FACTS that
looks for any executing instance of KEdit
that has that file open and (i) if there
is an instance then makes that instance
visible and at the top of the Z-order and
(ii) otherwise creates such an instance.
What does the file look like?
A recent entry is
========================================================================
:Created at. 10:12:19 on Saturday, February 8th, 2020.
:Keys. Internet DNS sinkhole C2
C:\Users\user1\data05\topics\tech\communications\internet\domain_name\domain_name.doc
So, the file consists of a sequence of
entries where each entry starts with a
line of equal signs and has a time-date
stamp, some keywords, and the contents of
the entry.
For this sample entry, the next time I
want to know about sinkholes and C2 I
can read the file with its tree name in
the contents of that entry -- the tree
name is for a file on one of my disks.
How big is the file FACTS.DAT?
I've been using such files for 20+ years.
The latest version started on
Friday, September 2nd, 2005
and now has 97,223 lines.
The file has 2,902,471 bytes and from the
rotating disk on my little HP laptop loads
right away.
The number of days from September 2nd,
2005 and today, February 8th, 2020, should
be 5272, courtesy of some little KEdit
macro language procedures I wrote for
converting to/from dates and days from the
start of the Gregorian calendar.
Having KEdit select all the lines full
of equal signs and then count those lines
I get 5073 entries in the file. So, that
is
5073 / 5272 = 0.962
entries per day.
So
97,223 / 5272 = 18
says that my average has been about 18
text lines a day.
I just type
and it cracks open Emacs on the notes file, adds a timestamp, appends the optional text, and then I can just type or paste something in. Nearly frictionless, that's key. Great for writing those miserable annual reviews, too (easy answers to "what have I worked on in the past year?")I use plain old notebooks (simple blank sketchpads, or something bound like a Moleskin/Lecchturm) for meetings, interviews, walking around datacenters and so forth where a keyboard is awkward and anyway, drawings.
I've tried the EverNote/OneNote/etc. apps and none of them were as convenient or as easy to use, or as portable.