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:
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 — 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 — 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 — 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 — 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.