logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git
commit: 02be7578261296cb45ff4190a9c455182119ed66
parent aaef52ef8c17be0184bba56db1f24a8203444b31
Author: Drew DeVault <sir@cmpwn.com>
Date:   Wed, 10 Aug 2022 12:37:12 +0200

How I wish I could organize my thoughts

Diffstat:

Acontent/blog/Organizing-my-thoughts.md79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+), 0 deletions(-)

diff --git a/content/blog/Organizing-my-thoughts.md b/content/blog/Organizing-my-thoughts.md @@ -0,0 +1,79 @@ +--- +title: How I wish I could organize my thoughts +date: 2022-08-10 +--- + +I keep a pen & notebook on my desk, which I make liberal use of to jot down my +thoughts. It works pretty well: ad-hoc todo lists, notes on problems I'm working +on, tables, flowcharts, etc. It has some limitations, though. Sharing anything +out of my notebook online is an awful pain in the ass. I can't draw a straight +line to save my life, so tables and flowcharts are a challenge. No edits, +either, so lots of crossed-out words and redrawn or rewritten pages. And of +course, my handwriting sucks and I can type much more efficiently than I can +write. I wish this was a digital medium, but there are not any applications +available which can support the note-taking paradigm that I wish I could have. +What would that look like? + +Well, like this (click for full size): + +[![A mock-up of an application. A4 pages are arranged ad-hoc on a grid. +Handwritten notes and drawings appear in red across the grid and over the pages. +A flowchart is shown outside of a page.](https://l.sr.ht/4QOL.png)](https://l.sr.ht/4QOL.png) + +I don't have the bandwidth to take on a new project of this scope, so I'll +describe what I think this should look like in the hopes that it will inspire +another team to work on something like this. Who knows! + +The essential interface would be an infinite grid on which various kinds of +objects can be placed by the user. The most important of these objects would be +pages, at a page size configurable by the user (A4 by default). You can zoom in +on a page (double click it or something) to make it your main focus, zooming in +automatically to an appropriate level for editing, then type away. A simple +WYSIWYG paradigm would be supported here, perhaps supporting only headings, +bold/italic text, and ordered and unordered lists &mdash; enough to express your +thoughts but not a full blown document editor/typesetter.[^1] When you run out +of page, another is generated next to the current page, either to the right or +below &mdash; configurable. + +[^1]: Though perhaps you could import pages from an external PDF, so you can + typeset stuff in LaTeX or whatever and then work with those documents inside + of this tool. Auto-reload from the source PDFs and so on would be a bonus for + sure. + +Other objects would include flowcharts, tables, images, hand-written text and +drawings, and so on. These objects can be placed free form on the grid, or +embedded in a page, or moved between each mode. + +The user input paradigm should embrace as many modes of input as the user wants +to provide. Mouse and keyboard: middle click to pan, scroll to zoom in or out, +left click and drag to move objects around, shift+click to select objects, etc. +A multi-point trackpad should support pinch to zoom, two finger pan, etc. Touch +support is fairly obvious. [Drawing tablet][0] support is also important: the +user should be able to use one to draw and write free-form. I'd love to be able +to make flowcharts by drawing boxes and arrows and having the software recognize +them and align them to the grid as first-class vector objects. Some drawing +tablets support trackpad and touch-screen-like features as well &mdash; so all +of those interaction options should just werk. + +[0]: https://en.wikipedia.org/wiki/Graphics_tablet + +Performance is important here. I should be able to zoom in and out and pan +around while all of the objects rasterize themselves in real-time, never making +the user suffer through stuttery interactions. There should also be various ways +to export this content. A PDF exporter should let me arrange the pages in the +desired linear order. SVG exporters should be able to export objects like +flowcharts and diagrams. Other potential features includes real-time +collaboration or separate templates for presentations. + +Naturally this application should be free software and should run on Linux. +However, I would be willing to pay a premium price for this tool &mdash; a +one-time fee of as much as $1000, or subscriptions on the order of $100/month if +real-time collaboration or cloud synchronization are included. If you'd like +some ideas for how to monetize free software projects like this, feel free to +swing by [my talk on the subject][1] in Italy early this September to talk about +it. + +[1]: https://hackmeeting.org/hackit22/schedule.html#talk-a2eb7aa1-90ac-48b9-8ac9-b16235eb2daf + +Well, that's enough dreaming for now. I hope this inspired you, and in the +meantime it's back to pen and paper for me.