My productivity app for the past 12 years has been a single .txt file
jeffhuang.com
jeffhuang.com
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.
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).
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.
#! /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
Do you mind sharing how you have setup Emacs to do that? Thanks!
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.
alias notes='nvim echo ~/notes/notes-$(date +'%Y%m%d').md'
The format being markdown gives a good syntax clue to vim.
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.
You can see the result here: https://github.com/jodavaho/bashlog
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.
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.
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.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))
https://github.com/tyru/open-browser.vim
Here's my config from the vimrc:
" Disable netrw's gx mapping
let g:netrw_nogx = 1
" If the current word is a URL, open it in the browser. Else, pass it to a search engine
nmap gx <Plug>(openbrowser-smart-search)
vmap gx <Plug>(openbrowser-smart-search)
let g:openbrowser_default_search="duckduckgo"
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.
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.
Of all the apps/tools I've tried, it turns out that the complexity of the tools was really just another form of procrastination.
Just a daily list I write out in the morning, and work through - bumping unfinished things up to the next day if needed.
[] Mon - task 1
[] Mon - task 2
[] Tue - task 3
[] Tue - task 4
This way I don't hard time lock the tasks and just do them until they're done
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.
I wonder if there's a tool for that.
For tasks, this might be the plan for the next few days, where everything fits on the same page.
For notes, those might be scribbles to help solve the problem at hand.
Larger and more long term things start benefitting from searchability indeed.
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 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.
Will try a todo.txt soon. I love simple.
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.
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.
There is also Historian [1] for bash, and a bunch of other suggestions in the discussion thread on it on HN [2]
[0]: https://github.com/larkery/zsh-histdb
[1]: https://undertitled.com/2017/04/12/historian-because-please-...
I use this format:
HISTTIMEFORMAT="[%F %T] "
HISTFILESIZE=1000000000
HISTSIZE=10000000
readonly HISTTIMEFORMAT
readonly HISTFILESIZE
readonly HISTSIZE
export HISTTIMEFORMAT
export HISTFILESIZE
export HISTSIZE
# To always append, never overwrite history
shopt -s histappend
So I get this output: <SEQ> [2020-02-09 07:18:30] <COMMAND>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).
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.
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).
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).
There's an issue for it already and I'm watching it so that I can switch once it's addressed.
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.
http://www.43folders.com/2005/08/17/life-inside-one-big-text...
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.
Edit: This is a better link https://danlucraft.com/blog/2008/04/plain-text-organizer/
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)
But it really doesn’t matter what you use, the real benefit comes from having a process/habit of continuous review.
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.
Humanity made a huge number of advancements using just simple paper and ink.
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 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.
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.
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.
Is it IMAP that's the concern?
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.
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.
It has been very freeing. :)
Alternatively, is there any other software with this feature? I have been looking for one for a while but no luck :-\
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.
https://craphound.com/lifehacks2.txt
It's too bad things didn't work out for him to get the book on it finished, but the important thing is that Danny's still with us.
What do you mean by this? Did he have a life-threatening condition?
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.
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 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.
https://github.com/dcchambers/note-keeper
I do kind of like the idea of having a single file for searchability, but I do already have powerful search of my `notes` directory with grep.
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).
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.
What I really would like is a minimal device with a microphone and a button, that stores the notes in my phone.
I have not figured out how yet.
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.
That's annoying, because my default sync service is OneDrive, and iOS generally supports it very well.
https://www.macstories.net/ios/my-markdown-writing-and-colla...
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.
"Any sufficiently complicated note-taking/productivity/GTD system contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Org-Mode."
That said it is a fantastic package with some great ideas.
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'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?
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.
This has to be a bubble, right?
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 #
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 :/.
(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.)
I'm using GitLab issues for tasks at the moment, but I really like this concept...
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
- ...
My personal list has things such as: Week 10/Feb
- SIM: do accounting
- Ophthalmology (17h30)
- ...
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)..
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.
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 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.
I find it's a bit more structured, and easier to review afterwards. Though I still use text file for organizing a day's work.
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.
Maybe other folks will be into it too.
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.
Here's an example of one: https://raw.githubusercontent.com/allenu/slouchdb4/master/TO...
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.
* good formatted text/content paste from the browser (this is what the other newer contenders mostly fail to do well)
* rich formatted text, images, tables
* ability to organize notes in tree structure
* cross-platform
* open source
* open file format
* no account required
* no electron
* active development (albeit slow)
https://jeffhuang.com/designed_to_last/
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.
nvUltra is hopefully right around the corner and I’m praying there will be an eventual iOS version.
Now you’ve streamlined your notes.
For public notes, I use GitBook https://www.aizatto.com/why-gitbook
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.
If you want a more capable setup at the cost of more complexity and friction, have a look at how I use Notion, GitLab, and other tools to manage my personal knowledge base: https://tkainrad.dev/posts/managing-my-personal-knowledge-ba...
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.
I just switched to roamresearch.com. I like it a lot.
When consulting for clients:
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 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
(link:http://freemind.sourceforge.net/wiki/index.php/Main_Page)
I suggest you use the 0.9.0 version as it has only crashed and destroyed a file once is nearly 10 years..
Mindmeister is a good alternative for collaboration, it's modern and even has a freemium plan. (But of course vendor lock-in and less features...)
* 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.
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.
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.
> 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.
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.
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
These appear as cards in the imdone board.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.
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).
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.
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.
You can see the result here: https://github.com/jodavaho/bashlog
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.
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.
I increasingly see these claims of simple means to enhanced productivity to me more true.
[1]: http://todotxt.org/
[2]: https://lifehacker.com/geek-to-live-reader-written-todo-txt-...
On a desktop you can drag and drop the order of the todos so when coding I use it to make quick notes of things I run into and prioritize them.
That's really all I use, but I work for and by myself so I don't need much.
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've tried all of these things digitally but I've never had the follow-through as with paper.
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.
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.
"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.
Also this made me think of StarTrek captains log...
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.
He's tried to switch to different Linux distributions but none of them has had a properly functioning indexed search box.
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.
Also started using the notation
[ ] thing to do
[x] thing got done
Ok, I have some other special case ones like recipes, etclooks back over a week full of lots of yak-shaving and distractions
“Oh! I feel better. I got a lot done! It just wasn’t on the stuff I think is really important.”
Paper real estate is also not nearly as limited.
I also use a bug tracker and sometimes a text file, but always have the minutiae on a piece of paper.
Then I take a picture of it and drop in Apple Notes on my phone.
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.
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?
Here it is: work.eggdude.come/notepad.html
It's like emacs' org mode but without the emacs.
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.
For work I carry a notebook around.
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.
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
https://news.ycombinator.com/item?id=22179494
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.
The average number of lines per entry is
97,223 / 5073 = 19.2
and the averge number of bytes per entry is
2,902,471 / 5073 = 572.1
Lesson: Can do a lot with a really simple tool.