Hacker News new | ask | show | jobs
by kabdib 3317 days ago
Keeping a diary is pivotal to how I work. I used to write things down in notebooks, but you can't grep dead trees, especially handwritten ones. So I keep a simple flat text file with a new timestamp every day, and nearly everything I do makes it into this file, at some level. I can answer all kinds of questions, from when someone joined or left a team, to how I installed that driver last year, to which servers I installed three years ago and the problems I encountered configuring them. Pretty much anything unusual, or middlin' difficult, or just thoughts on engineering problems. It's candid, I swear and call things as I see them. These notes are an extension of my brain.

I start the day with:

    % note (which just runs Emacs on my notesfile)
and

    M-x new-day
which just appends the current date to the file and positions the cursor, all ready for typing. Dirt simple.

I used to have macros and whatnot for carrying forward lists of TODO items and important tasks, but that was overkill and keeping things simple seems to be the key to success. Likewise, apps like OneNote and so forth just got in the way and wanted to own a piece of me.

3 comments

Have you tried org-mode? I would assume you have, as an emacs user, but it can be as simple or as complex as you want to make it. It gives you things like timestamped entries, agenda lists, etc.
Just one file?

I have a man page repository that is just a simple folder that gets tab completion (basically ls fed into the complete function). aliased to `mm` as in myman(pages). that gets opened up into emacs though so it's basically a repository of files that you can grep through.

Care to share your emacs/shell setup for what you are doing?

I have a similar setup to GP: Emacs + one file + an "new-day" command.

Everything goes in one big "scratch.txt" file, with headers like:

    ###### Saturday, May 20 2017
...at the start of each day. These are generated by a function I run every day:

    (defun new-day ()
      (interactive)
      (insert (format-time-string "###### %A, %B %d %Y\n")))
"scratch.txt" is always an open buffer in Emacs. You can search through the file with isearch, helm, or whatever you use. I use the "desktop" library to save and restore all open files when I close Emacs.

That's really it, just one big unstructured text file.

I don't put a lot of prose in this diary. Only todo items, code snippets, and errors / log output.

Our setups have slightly different goals: yours is to create daily nuggets of documentation, while mine is to archive whatever thoughts and code were running through my head each day.

Thanks for that... I have an ideas file in my man pages that is an org file. I might do something similar to this as well for just daily thoughts. The man pages have been invaluable for long running notes that are infrequently accessed or thought about.
Just one file, backed up regularly. I think the simple is key; one of the sibling replies here has a bit of lisp similar to what I use, and that's it.

The problem with applying a bunch of structure is that you start to screw with the structure, maybe try to turn things into JSON or whatever, pivot by date or technology or location, and a few hours later you've wasted a bunch of time mucking with stuff that you'll probably waste more time mucking with later. Just slamming text into a file and having a minimal syntax for dating things is, I've found, sufficient. I want notes and a little support for continuity ("what the heck was I juggling when I left on Friday?"), not a blog or a platform for deathless prose.

It'd be nice if there was a rich text system similar to Emacs that didn't force you do write markup or handcuff you to a proprietary data format. Truthfully I haven't looked that hard (multi-platform is probably difficult to achieve). I have notes files strung back over twenty years, and simple text is a hard habit to break.

Same thought as /u/ams6110.. if using emacs, give M-x org-capture a try. It does the time-stamping automatically, and you get stuff like org-agenda, TODO, expirting the notes to other formats, and other org goodies.