2024.01.19.

Letters to Myself

I’m writing emails to myself. Seems like other people do this as well. It is yet another way of journaling, but I email is special since it’s open, and I can never change it again (I mean I can change it, but you get the idea).

I just discovered that both Emacs and Vim nicely wrap text in a message-mode / mail file type. This is cool since properly formatted plain-text emails are a treat these days. On top of messing around with Org Mode, I’m playing around with the idea of using Emacs for sending emails to myself. It has a bunch of macOS services built around creating new messages, so starting one from LaunchBar is easy. Emacs will open a new buffer and I can start writing a plain-text email. Then I can send the message over to Apple Mail with the keyboard shortcut of C-c C-c.

So why do I want to send letters to myself?

Well, it is a way to write about something interesting to me at the moment. Since both Emacs and Vim wrap the line as I write, it is a bit hard to edit these messages afterward, so I’ll think a bit more about how I say things. This is a benefit since it slows me down.

Emailing myself is a way to reflect on things. It is a journal entry basically, and I have Day One for that, but I still like the aspect of sending something somewhere. I have feeling being done with it, so I don’t have to deal with it anymore. I just like getting thoughts and feelings out of my head, and sending it to myself to park it later. If an email is sent, it can’t be changed anymore.

After sending these emails, they reappear in my inbox, where I can just read them again, then move them to a folder called “Letters to Myself”. After a while, I’ll have a bunch of cool letters that my past me sent to the future me.

I should read more about this habit…

2023.11.29.

Follow-up on Liked “MailMate”:

I just bought MailMate a couple of minutes ago. It turns out I love to use plain-text email for writing and reading. It’s just way easier to edit my emails in MacVim than to fuck around with the Mail.app compose window.

The Things integration is also pretty cool. I can get the complete plain-text email in the to-do note, which is way more excellent than the jumbled text-fest I had previously parsed by the Things mail service forwarded from Mail.

I’m still developing my workflow around the rule-based smart mailboxes, which are pretty powerful.

I’ll write more about this app in the future.

2023.11.23.

Reviewing append-only workflows

There are multiple systems where you can only append new information at the end of the chain. There is no chance to modify the history in these workflows (or it’s very convoluted).

But why is it beneficial to use an append-only workflow? I’ve been fascinated by these systems lately since we can learn so much about our workflows by keeping previous states around.

The core idea of an append-only information storage system is to only add new information without removing existing data, which has excellent benefits: we can see ideas getting developed, we can keep versions of a file, or we can capture information for the historical sake of it.

Analog systems like the Antinet Zettelkasten or the Bullet Journal force us to organize information by appending it. Digital systems can be used like this too, but they need the right mindset from us so we don’t remove mistakes.

In this post, I’ll discuss using email, Zettelkasten, and Git in the append-only information organization context.

Email is a popular workflow for developing ideas

In essence, idea development leverages the fact that you rely on the history of the idea as you progress it. Its history serves as a breadcrumb to go back in time and see how it was developed.

Drafting something is a long process, and the most apparent tool some people use is email. It can be a great append-only note-taking tool and storage medium. Here’s an excerpt from How I use append-only log to store information:

If you are working on a piece of text for a long time, you can just keep it as a draft and keep working. It will be auto-saved.

I am a fan of the bullet journal method. Handwritten text is immutable. The same goes for emails. Once you send it, it becomes immutable.

To show another example of how email can be used for drafting, here’s how Steve Jobs used email to write his Stanford commencement speech:

In January 2005, John Hennessy, the president of Stanford, asked Steve to give the commencement address to that spring’s graduating class. Steve agreed.

On and off for the next six months, Steve took stabs at writing his talk. He emailed stories and memories to himself. He asked friends, Apple colleagues, and the screenwriter Aaron Sorkin for their thoughts. In the end, however, he wrote the speech on his own. Even three days before the event, Steve was unsatisfied with his talk. He sent it to a friend, warning, “I’ll send it to you, but please don’t puke. I never do stuff like this.” He was still refining the speech the morning that he gave it. Uncharacteristically, Steve read from the lectern, rather than memorizing his text (as he did with Apple keynotes) or speaking extemporaneously from a few scrawled notes (as he did in nearly every other talk).

Steve was happy with the speech—he emailed himself a copy a few days after giving it—but he generally deflected the praise that he received for it. “I bought it on CommencementSpeeches.com,” he joked to one person. The commencement address has been viewed millions of times online and is included[…]

Steve Jobs once mentioned that he constantly sends notes to himself in his inbox as a reminder. This process is similar to the capture method used in Getting Things Done (GTD). However, GTD does not address how we can use our inboxes to develop ideas further.

Using our email Inbox effectively to develop ideas

Sometimes, I also use email to develop ideas in my inbox during the GTD capture phase. Although I think there are better tools for this – like Drafts or my Zettelkasten – some conversations are present only in email, so I can leave notes for myself in a thread by starting a reply to a message and sending it to my address. This workflow feels like a poor man’s version of HEY’s sticky notes.

I have a separate “Inbox” contact card saved with the +captured text appended to my email address (someone+captured@domain.com), so when I want to remind myself about a message, I’m emailing ideas to this address and use the conversation view in Mail to develop them further by replying in place.

I can also schedule these messages, which act like an integrated Tickler File. I can leverage that Mail has an excellent conversations view, so the Send Later feature can resurface any thread when I’m scheduling a forwarded message to myself. It will reappear in my Inbox with the whole conversation, which gives me the context to figure out what the note is about.

A quick aside about Remind Me and Follow-up in Mail: We have features in Mail in iOS and macOS that could be useful for emailing follow-ups, but they have two problems.

  1. Remind Me only works for emails in the inbox, so if I archive an email, it silently moves it to the top of the Archive mailbox which is useless.
  2. Follow-up is a black box driven by “AI,” and there is no way to set it up manually for specific emails that I want to track.
    • It uses three days by default, but I’m not sure if it works for every sent email.
    • On the other hand, I also use a GTD “Waiting for…” list to track items waiting for a reply. → 2.7.8

To conclude, emailing notes to ourselves is semi-private. We’ll see the email as part of the thread, but others won’t. This way, we can leave notes in place, even in threads with others.

Here are some concrete contexts where I’m adding notes in an email thread:

  • code review comments
  • ideas about a project we’re discussing
  • capture an idea on the phone, which can be seen later on the desktop when I’m processing emails

Appending information in a bottom-up system like GTD and Zettelkasten

Both GTD and Zettelkasten are bottom-up approaches for getting a grasp on ideas. These frameworks don’t start with what we want to achieve but what we have now.

In GTD, the idea development process is the Natural Planning Model. In a Zettelkasten, this is the follow-up note method (or Folgezettel): letting ideas be developed naturally.

The outline-based Zettelkasten

As I mentioned, follow-up notes show how an idea was sparked and developed over time. Understanding this development process heavily depends on the context of the actual Folgezettel.

Since follow-up notes show us the idea development, we can safely say that we aren’t storing the result of our thinking but the thinking itself.

What’s more important is to keep these ideas structured so we can follow their line of thinking even for years to come.

I can’t say that Luhmann’s Zettelkasten implementation was a big outline because it is way more complicated than that. But I still like to organize notes in a master outline structure for my version of the Zettelkasten since high-level branches are what get me started on an idea that becomes something more complex later.

The Zettelkasten outline shows me the history of idea development. When I add a new note to the Zettelkasten outline, its place will define the order of the note relative to others. It means that the note is connected to a parent and/or a sibling so that I can see the development of an idea in a thread-like structure.

I only append to the Zettelkasten outline and never move stuff around since I use numeric IDs to mark their fixed position. This is a customized version of the alphanumeric note ID that Luhmann used in his Zettelkasten.

Since mine is organized in an outline structure, there is no need to link all notes to every direction. In the tree structure, all notes can be connected to a parent, next, and previous sibling. Not all of these connections are present, but one will be there since a note needs to be appended somewhere in the outline.

Because we usually organize conversations around threads, our thought development can be understood as a conversation with ourselves (or our Zettelkasten, if we use the analogy by Niklas Luhmann).

The outline-based Zettelkasten will force us to think about the place of a note in relation to other notes. Much like the physical Zettelkasten, in an outline-based digital version, we have to append the note to a tree structure. This method will ensure that we automatically have follow-up notes.

The capture log

One of the most interesting steps of GTD is the capture step. A capture log is a journal-based version of the inbox, where ideas are appended in a timeline-based manner.

The capture log was an idea first mentioned by Merlin Mann, where he explained that he wanted to yell into the void and let Siri capture his ideas with automatic metadata like creation date, location, and, optionally, the weather. It’s yet another inbox that we have to process.

The inbox is a medium that stores items that change frequently. It is a temporary holding place for new information in the short term. We mainly change information in it (add and remove), but in the append-only workflow, these items can be kept as an idea log, too. If we use inbox items as a trigger to create new projects and/or next actions in our GTD system, after creating these, we can complete source items in the inbox and log them. In that sense, we have a capture log as an automatic journal where we keep a history of our ideas. As Merlin said, it’s like the tail of our life.

Keeping versions

There are two ways people keep file versions around. If you worked on any source material like Word or Photoshop documents, you are probably familiar with versioning your files using the “Save As…” command.

There is an ongoing meme about sending the “final final final” version to a client, so in theory, this is not a desirable workflow. Still, with a proper workflow in place, we can use it to mark milestones in a document lifecycle.

But before we go there, let’s talk about Git since it’s a tool created for this exact task: keeping versions of files.

Versioning with Git

Git is an append-only information storage system, too, because when we change code in the software development context or update any text kept in a Git repository, we’re adding a new state to a source material. We pack it up in a commit, which is then appended to the log.

Versioning makes software development more manageable since we don’t have to worry about how changes are looking in our working copy: the code is constantly forming. The state stored in Git will show changes, mistakes, refactorings, and removals, which is the natural part of everyday work. Git lets us see the natural evolution of the code base, which is similar to other examples mentioned here.

Git can be used for keeping the history of non-code-based source files, too, like photos, illustrations, PSD files, Markdown writings, etc. My Zettelkasten is a Git-based source material, which I use as a starting point to write about interesting ideas.

People forget that Git isn’t just tied to store source code. We can create a Git repository for almost any source material we’re working on and keep a history of the evolution of these files.

Keeping manual versions

Sadly, keeping a Git repository works only with file-based apps. It doesn’t work for database-based apps like Ulysses, which I’m writing this article in.

On top of Git, it’s still worth keeping manual writing versions, especially after reaching milestones like the first draft, the first edit, or the version before spell-checking. We can usually keep manual versions around in database-based applications by simply duplicating the primary resource of the app.

I like how Aaron Draplin duplicates layers in Illustrator to keep a history of changes and branch out new ideas. In the same way, I duplicate groups in Ulysses for writing projects so that I can have a trackable / branchable writing workflow. Ulysses also keeps versions of projects, but manual versioning can be tied to milestones in the writing workflow.

My versioning system is based on the following rules:

  • I keep a group where all sections are sheets, then I duplicate these groups before significant edits and assign version numbers for each group, like v1, v2, etc. These names have no meaning other than having a version number for the group.
  • The triggers for duplicating groups can be the following:
    • Collected and sorted my Zettelkasten notes.
    • Finished the first draft.
    • Checking grammar with Grammarly (which is just another form of editing).
    • The final version before publishing the post.
      • It can change, so this group will allow me to compare what type of changes I usually make after I publish something.

Conclusion

In this post, I collected many workflows that follow the append-only organization system. To recap:

  • Email can capture information and take notes in conversation threads.
  • The outlined-based Zettelkasten allows us to create follow-up notes for long-term thinking and idea development.
  • Git and manual versioning is a great way to try out new ideas on source files.

These workflows are appending new information at the end of a stack, so we will have a breadcrumb to see how changes affect our work over time.

The main idea I would like to highlight is that by appending information, we don’t delete anything; we add new information at the end. Having all changes visible in the chain (even the bad ones) makes it harder to erase mistakes.

Liked “MailMate”

MailMate is an IMAP email client for macOS featuring extensive keyboard control, Markdown integrated email composition, advanced search conditions and drill-down search links[…]

Sometimes, I wonder if I should try to use MailMate instead of Mail.app (at least for some specific tasks). It’s an app made for nerds.

I think it’s even have MacVim integration, and still makes emails available in the filesystem instead of closing them away for Spotlight only.

Related

2023.11.22.

Read “I love email”

You see, I love email. It’s gotten a bad rep, and numerous services and startups have both tried to replace it, and make it work differently. To me, email was never a bad thing, not since we moved over from POP3 to IMAP. Sure, there’s better and more secure technology out there, but the fact that my email account will work, and synchronise, with any device using standard protocols is great. Amazing, really. I don’t need a specific app for a specific service, not as long as I stick with the open standards (i.e., no Proton or Skiff). You can’t say that about Slack, possibly the worst solution to “the email problem” to date. There, you are stuck with the Slack app, which is basically the same as running the service in the web browser. And it whines at you in real-time, breaking your workflow.

I like email as well.

2023.11.21.

Bookmarked “Use plaintext email”

There are two main types of emails on the internet: plaintext and HTML. Many people, particularly in technical communities, strongly prefer or even require the use of plain text email from participants. However, your mail client may not have it set up by default. We’ll help you get it configured, and introduce you to the norms and conventions of plain text email.

2023.10.23.

Append-only storage and developing ideas

There are multiple ways to develop ideas. Sometimes the best one is where you can’t change the history of an idea. It’s there as breadcrumbs to go back in time and see how an idea was developed.


Other people use email as an append-only note-taking tool and storage medium. From How I use append-only log to store information:

Choose any email client you like and basically dump all your PDFs, notes, digitized papers, files into it as it arrives from various sources. Just write a meaningful subject that you can search for later. You can use labels or folders to organize, but mostly just send it to an email address of your choice and archive it. Usually, you will not even read it again after you have saved it.

The E-mail format itself is well understood and has many features. The max attachment size of most service providers is around 20 MB. It’s more than enough. Try to use plain text for just taking short notes and messages to yourself. If you want to dump more than 20mb of files, just archive it or split into many emails or upload it to cloud storage and copy and paste the link to email.

When you need the information. It’s there. Always.

No more fiddling with the file managers, renaming. It is saved as it is.

Even if you would like to edit, you can just forward the message again to yourself with the edit and delete the original one.

You can also use it to schedule mails and track future tasks, TV shows, anime, movies or Reminder to yourself in the future. If you are working on a piece of text for a long time, you can just keep it as a draft and keep working. It will be auto-saved.

I am a fan of the bullet journal method. Handwritten text is immutable. The same goes for emails. Once you send it, it becomes immutable.

I don’t know if other use emails to store all their digital content in emails like me. But it’s a pretty neat trick.


Here’s how Steve Jobs used email to write his Stanford commencement speech:

In January 2005, John Hennessy, the president of Stanford, asked Steve to give the commencement address to that spring’s graduating class. Steve agreed.

On and off for the next six months, Steve took stabs at writing his talk. He emailed stories and memories to himself. He asked friends, Apple colleagues, and the screenwriter Aaron Sorkin for their thoughts. In the end, however, he wrote the speech on his own. Even three days before the event, Steve was unsatisfied with his talk. He sent it to a friend, warning, “I’ll send it to you, but please don’t puke. I never do stuff like this.” He was still refining the speech the morning that he gave it. Uncharacteristically, Steve read from the lectern, rather than memorizing his text (as he did with Apple keynotes) or speaking extemporaneously from a few scrawled notes (as he did in nearly every other talk).

Steve was happy with the speech—he emailed himself a copy a few days after giving it—but he generally deflected the praise that he received for it. “I bought it on CommencementSpeeches.com,” he joked to one person. The commencement address has been viewed millions of times online and is included[…]


These use cases are similar to how I use email threads to develop ideas in the GTD capture phase, where I’m leaving notes for myself within an email thread. All I have to do is send a reply to my own address by replying to an email, so Apple Mail keeps the message in the same thread.

One of the benefits of using this method is that I can still see the email as part of the thread, but my notes will be kept private.

This is helpful for various purposes, such as making code review comments or jotting down ideas by replying to email notifications but changing the recipient to my own address, which acts a bit like the poor men’s version of HEY’s sticky notes

I also have another app where I keep journal entries called Everlog. I’m thinking about applying the same append-only storage idea there and never editing my Everlog entries after I added them. It is also an append-only app, where entries shouldn’t be changed afterward, only deleted. I can always add a follow-up to an entry but I should never change it, so I can see how something was developed over time.

This is why I like to use Drafts for capturing and drafting ideas. I can easily edit them while I’m working on the idea, but I shouldn’t change them too much after I share them with their destination app (except when I continue working on them).


Related posts

Zettelkasten Note

2023.10.19.

Avoiding Distractions in Modern Computing

Notes from Avoiding Distractions in Modern Computing:

Most of the upcoming generation will never experience “slow computing”.

Slow computing can be done in a “distraction” heavy environment like email. It all depends on how we set up our tools and what we let our computers do. I can still control a lot of aspects of macOS and iOS and I don’t feel them distractions, but simple tools.

It baffles me that people buy pricey phones and have no idea what these devices are capable of. All they do with them is browse TikTok and Instagram.

It is like a blank canvas with no outputs, just waiting for a command about what I would like to do next. At this point I might navigate to a blog directory and open a document with my text editor of choice: emacs. When done writing this post I will add it to git, my text versioning system. After this I do whatever I please with the text file. I might push it to my central blog repository where a static HTML file generates on a public area or I may pipe it to some other program. This is the Unix philosophy.

The terminal-based environment can feel like an island of peace. Not because apps are distracting but because it is a limited interface that is very easy to control.

Some people, like me, feel at home with a customized Unix prompt.

2023.03.14.

How to Plan Anything by Email Alone — and why it’s Faster – Just Use Email

Interesting article about how we can use emails to collaborate on projects:

For something temporal, and for groups of eight people or less, I believe email is superior for planning. Pretty Trello boards may look like you’ve got your act together, but you still have to type it out, get others to agree, and not forget important details. Trello can’t help you think. Even though software like Trello is quite easy, that doesn’t mean its universally understood the way email is. The documentation for Trello still must be read and understood.

I’m one of those people who like to communicate over email because it’s quick, and you can organize your end in any way you want.

The problem with a planning approach like this is that some people can’t use email appropriately. They create new messages when they should reply; they forget to answer questions etc. It happens on other platforms too. Usually, they are terrible with planning in general. So people blame email for being old and unusable.

Nowadays, a lot of people are in love with Slack.

Let me tell you a secret: it is even worse for work-related communication and project management in any possible way because it is closed, everyone has to use the same horrible client, and people expect instant communication from it (and don’t get me started on people who want everyone to use the status field as team Twitter).

People who couldn’t manage their emails started to blame it, which made companies switch to Slack, where these people are still the bottlenecks in the process, but now everyone has to use the same crappy client.

2023.02.01.

My Clearing Out My Work Inbox

We can watch Chris Coyier going for a 13 minutes ride of cleaning newsletters and spam from his work inbox.

I usually try to unsubscribe from these type of emails too.

If I can, it goes into the trash. If I can’t, then it goes into spam. I don’t archive these like Chris does.

2021.02.23.

HEY for World

HEY for World can be an excellent idea for those who don’t want to be bothered to set up a blog.

When I write a certain kind of email — aka a blog post — why do I have to address it to someone? Why can’t I just address my thoughts to the world? Direct to the web for anyone and everyone? Rather than define the recipients, I just write and let the recipients find me.

Although we had this before and it failed miserably.

2020.02.09.

2018.07.19.

In Praise of Email by Dan Cohen

Most email systems do not signal to others that you are online, and such signaling is not part of the email protocols themselves.

We usually say a lot of bad things about email but it's a rare case of a technology which is independent, interoperable and if you use it right, can be non-distracting.

I really miss the old days of communication, it was such a simple system: when I was online (on whatever chat service) you could ping me, otherwise, you were able to send me an email. Nowadays we just install multiple messaging apps, each of them is constantly online. We receive multiple notifications and we try to fight the distraction with hacks like Do Not Disturb and AI that tunes our notifications.

Sometimes it works, but we should also train some basic expectations on response time to our peers: send me an email, or if it's urgent, message me, but never expect an instant response.