Some time ago, I've given another talk about my personal wiki, and how I use it. At the end, my friend whom I gave this talk suggested, that I should probably write that down, so here it is.
When I talk about personal wiki, people usually right from the beginning have two questions;
- And then; How?
After more than a decade of use of personal wiki, I've arrived at the idea of treating yourself as a corporation. You are a shareholder, CEO, and also the only worker of your own company.
If you ever worked in some corporation, you've probably used all kinds of internal software; ticket system, documentation system, calendar system, kanban boards, logs of work, galleries, document storage.
All of this may seem like too bureaucratic solution for a problem of self-organizing. Yet, when you think about it, corporations use this software to organize the "matter" which they are composed of; people. These are the tools which give people, that make corporation, shared information bases, communication channels, and more generally speaking, the context.
The context is the king. So, I use personal wiki a lot for the context, and I am borrowing the functionality from the corporate tools that work for me. I am not organizing people in a corporation, but ideas, thoughts, and facts of my life. But also my external interactions with the digital world.
I forget all the time, especially the details of long-running projects, which can take years to create. So, the "internal documentation" pattern is used a lot in my wiki. But I also use it as a creative tool. When I have something in the wiki, it is relatively easy to work on the thing until it can be published, or until I can derive some kind of value from it.
For example, I can have an idea about some kind of programming project. I create a short note, for example something like "octovalve manifold", which only means something specific to me. Then I later write some points describing it. Weeks later I may expand it, and write a little article, basically a story about the product, which I can use as an inspiration and also as the context, when I get back to the project after a year of working on others. Then I add inspirational pictures, and diagrams. I try to create prototype. Then I convert the page to the kanban board, where I track progress and split the project to components small enough to be able to work on them. I add logs and screenshots and links to documentation of the libraries I am using. And then maybe I publish parts of this process, or maybe they will lead to some other exploration or ideas. In this use case, I use personal wiki as a garden, to grow my ideas.
Another big part of my internal wiki is a mirror. When you write about your feelings, about what you want to do, when you track your achievements and datasets, you can sometimes take a step back, and look at it. And you will see yourself. It is like a look in a mirror of your brain. You can see your bad habits, identify your weak points, systematically look for the things you really want to do. It can help you make your desires and half-realized wishes more tangible and help you reach them.
My wiki is not only part of my external memory, it is much more than that; it is a tool that I shape into a certain form, and it shapes me back. It is a reflection of my brain, that works both ways. And it is also an infosphere manger; a tool I am using to manage a lot of my personal online presence.
At this moment, I have more than 1500 subpages in my wiki.
I've tried a lot of personal wiki software. Basically, everything I could get my hands on, from the most popular (at the time), to the obscure. You are of course free to use whatever floats your boat, but I would suggest something with rich text editor and with as little bullshit as possible.
I prefer to use rich text because at the moment when I am trying to write something or be productive, the last thing I want to see and think about is some kind of markup language. I prefer not to see
# before every header because I really don't care, and it introduces visual clutter.
At the moment of writing this blogpost, I am using notion.so, which is an online personal wiki.
I don't like online personal wikis, especially when they are closed and closed-source. I really don't like that. But notion has the best editor and the best UI I've seen so far, so much that the productivity boost it gives me is worth of making some tradeoffs.
Notion supports markdown in the input text formatting, but it converts it immediately to some kind of internal representation. That means that you can type
**bold**, and it will immediately be converted to bold. It doesn't require you to know this, and everything has a key shortcut or visual menu.
Notion is a good starting point because the UI is quite polished. It works for the most of the use cases, and you don't have to set up anything on your computer (but there is a desktop client for Windows & Mac, and also unofficial for Linux). There is also an app for your phone, and REST API.
My personal wiki layout
The root tree of my wiki looks roughly like this:
Now let's look at all the sections in more details.
2021 & Logs
The first section of my wiki is a page, where I write my personal log, a kind of diary, but just in a few short sentences for each day, not like a story. The last section of my wiki is the Logs, where I keep a collection of all of my logs, from the 2007 to 2020. One super long page for each year.
Every day has a date header, and then several paragraphs. Every so often, I mix it with photos, or maybe scans or uploads of documents. I put new records on top, so the whole year creates this incredibly long log from the end of the year to the beginning.
Every day, I just duplicate the header (
CTRL+d), then increase the date via the date picker and write a few paragraphs, insert some picture from that day, some scanned document or something relevant.
Nothing really interesting to see here, the important thing is to learn to do this consistently. It is really useful to be able to look into your past.
This is one of the more complex categories, which contains anything I want to do in the future. The top-level page contains all the following subpages and kanban boards as one long linear view.
This may seem trivial, or even obvious. Yet, this category is the most important category in the whole blog. The point is not just TODO in nice kanban table. I use this category as an input point for everything.
New idea? Put it in the TODO. I am falling a sleep, but suddenly remember I want to do something? I'll put it in the TODO, using the mobile app. I would like to do something, some day in the future, but I know that I won't probably ever do it? I'll put it in the TODO. I see an interesting link, or video I would like to watch? You guess it; I'll put it in the TODO.
The goal is to have one input space for everything, no matter how small or big. The moment you have the idea, put it there. You'll sort it later, move it to different category, different TODO, or whatever.
This category really works in three different modes:
- Catch everything you may want to do.
- Sort everything from time to time.
- Actually go and do it.
In notion, every item can be a subpage. You just click on it, and you can write whatever you want inside. You can write a whole blog while it is just an item in the kanban board, and then move it later to the proper category.
This is basically just an empty page, into which I drag & drop items from the Done column in the kanban board.
I usually clean it up once it accumulates several hundred of TODOs, by moving them to long-term storage workspace, so it won't interfere with search.
Sporadically, when I want to focus on just several tasks, I move them here and keep this page open the whole day. It works in the same way as TODO, but the point is to have an uncluttered view of today's tasks.
Long term wishes
Things in my main TODO board get moved here when they are long-term things. Like learning a new language, or new skill.
- Buy some gold.
- Try taichi.
- Create some visual form of live art, like an octopus swimming on the screen, interacting with the mouse.
- Learn welding.
- Go to grab a beer with Rudof again.
- See tornado on your own eyes.
Kanban for random ideas, without any priority. Basically anything I randomly think of, but have no strong desire to implement.
- Monitor of the stars on GitHub.
- Game which would test you how good you are at detecting biases.
- 3D Wikipedia for historical simulations.
- Algorithm for comparing images by angles / angle distance between color blobs.
- Looking for alien civilizations by detecting characteristics of atomic / hydrogen bomb explosions.
- Make my DNA open source.
- E-ink Emacs machine.
Random blog ideas in kanban board. This category is a bit redundant, as you'll see later.
Blog TODO / accounting
Composite category for my blog:
- Table with list of expenses and income.
- TODO lists for my more interesting Czech blogs to port into English.
- Links to analytics.
- TODO list for general blog improvements and ideas.
This one is harder to explain. It was inspired by a tool used in my first job, where I worked as a service-desk operator. The tool was connected with a ticketing system, and it would show a list of tickets. You could open the ticket, but most importantly, you could postpone the ticket into the future, so it would disappear and show itself again several days later. In service-desk, this was used for important things, so that people don't forget them.
I am using a partial copy of this approach, basically as calendar reminders for things I want to do in the future. But in an ideal world, it would allow me to hide items that are in the future.
This is really useful for periodically recurring things because it makes you think about them. But also for things like random products, which you want to check when they are released, movies, and stuff like that.
You could probably replace this thing with calendar app, but:
- I want to have everything in the wiki.
- I sometimes insert subpages as the elements, so I can keep a log of my activities.
One day, I will probably automate this more with the notion API, and add some kind of automatic hiding, or maybe refactor it to the table, or maybe make it pop up items which are due to the main kanban board.
Various gift ideas for various people. The format of items is usually something like:
- Person:Gift idea
The done column is good to keep track of what I gave to whom, so I don't repeat myself.
As the name suggest, I use this as a tracker of the packages I've ordered. I usually include a link to the item subpage, for package tracking in the delivery service of choice.
In ideal world, this would be scripted with the API so that my scripts would parse the delivery service automatically (using stuff like https://www.17track.net/) and update the status accordingly. It would also create some kind of reminders, when the package arrives.
Excursions and visits
Basically, when I see some interesting flyer or add, I add it here:
Comics to draw
Short list of comics sketch ideas I had, and I may one day implement.
Kanban board with list of pages and other resources I want to create an API for, and integrate it into my infosphere.
Basically trackers of various people, or events on the internet. I will write more about this some time in the future.
Basically same as the Random ideas' kanban, but for ideas I actually want to implement sometime in the (near) future.
I usually just keep this as a storage, from which I move items back to the main kanban board when I feel like it.
Ideas for custom hardware to build. It may range from a custom-made chair, to electronics stuff.
Ideas for 3D art. I am learning Blender and when I have some cool idea, I put it here, describe it, maybe add some kind of sketch or picture, and return to it later, when I feel like modeling it.
Same thing, but for 3D printing.
Suggestions for improvement of personal wiki
The name says it all. When I think about, or see some new workflow idea, I put it here.
Ideas for pages I would like to create on Wikipedia one day. I actually really use this page, you can see my articles here:
Search engine queries I check from time to time. One example:
Here I keep track of physical books I own, so I don't forget them:
Books to buy
Gigantic linear list of various books I would maybe like to read, but I am not yet sure I want to buy them.
People who own me books
Here I keep track of people I've lent books, and which one.
Gigantic linear list of articles I would like to read one day. Mostly not really used, I was actively using this category several years ago, but since then, I usually use Pocket.
Startup ideas. Usually, not just random ideas, but something I see that can be monetized, or is missing in the enterprise world and there may be demand for it. Items themselves contain analysis of how hard it would be to make the stuff, and ideally also business around it.
Ideas for custom t-shirts (for myself, not for sale).
This is one of the categories I am really proud of, but I won't post screenshots here, as they are highly personal and mostly in Czech language.
As the name suggest, it contains checklists for various activities:
- Going on a trip
- When depressed
- Going to a vacation
- Things to ask people
and so on. Basically, just a list of checkboxes to check, like:
- ☐ Take a toothbrush.
- ☐ Pack a plastic bag for trash.
I am proud of this category because this allows me to learn from my mistakes, and improve my processes, so I don't have to make them again, or even think about them.
Simple kanban board for Ian Banks Culture novels:
List of habits I wish I had.
Node for larger texts when I just need some place to emit a stream of text and sort it later.
I am not entirely happy with the gallery view, but better than just to have it in text.
Kanban boards, articles, TODOs, list of links and other relevant stuff related to the project of my programming language called 📂tinySelf.
Everything related to my personal business, and in general, bureaucracy stuff.
- Account numbers.
- Various other numbers, like my business identification number and so on.
- Contact information for various organizations, like healthcare taxes, tax office, bank information and stuff like that.
- Tables of investments.
- Questions I should have about the new job when interviewing.
- Non-compete contracts, with which company, and when they expire.
- My personal rating of various recruiters, and a list of contacts, with written experience and feeling I had from them.
- Addresses of businesses where I've worked in, and their contact numbers.
.. and stuff like that.
Database of things about me. Examples:
- List of all the addresses where I ever lived.
- Weirdly, also stories about the jobs where I've worked. Some are quite long, basically as memories of various interesting people and events. Not to be published in following decades, maybe sometime before I die.
- List of bizarre titles I've got in discussions on the internet.
- Things I love
- Things I hate
- About me introduction
- Used when I get to a new job, so I don't have to reinvent it all the time.
Tiny category with three experiments so far.
The idea was to use this to keep track of the things I experiment with, but I usually tend to write blogs about them, so it is not as useful as I imagined when I created it.
Oh boy. Gigantic category of various random notes ported from the old wiki, which don't fit into any other categories. Truth to be said, I don't use this as much nowadays.
- Book quotes.
- With mind maps.
- And with screenshots of highlighted pages of specific books I want to remember and have accessible every time.
- Alan Kay videos.
- Detailed analysis with screenshots of every Alan Kay video I watched.
- Also TODO list of videos to watch, and stuff like that.
- List of interesting UFO sightings.
- PyCharm shortcuts.
- Fitbit's development notes.
- Notes about Blender.
- Blender retopo notes.
- Cyberpunk 2077 screenshots, to remember my game run forever.
- Possible improvements of gtoolkit
- Mechanical logic notes.
- Funny story, I once tried to design a completely mechanical computer. Here are some of the remains of notes from that time.
- List of interesting drug tests (to test that the drugs are actually drugs). Sent by a friend.
- Various companies / institutions that caught my eye.
- Different small dumps of pages, discussions, and stuff like that, that don't take much space, so they can be stored in wiki. Sometimes notes about interesting data structures and stuff like that.
- What to say to the operator in a call center when they don't deliver your package to scare them most.
- Psychonaut wiki links to interesting substances.
- Various programming notes.
- Interesting IRC conversations stored as log dumps.
- Various unicode smileys.
.. and much, much more. Generally random garbage I want to remember, but don't use very often.
Another gigantic category, with various databases. This includes:
- NSA Litoměřice
- My personal tracker of contacts to various people. Friend and colleagues in general.
- Yeah, I could just call this "Callbook" but that would be boring 😇
- Address book
- List of addresses to various people and institutions.
- My doctor, for example.
- In general, random people I need to interact with from time to time, but are not my friends.
- List of backups, where I keep them and what's on them.
- Various license keys to various software products I've purchased.
- Iterative explorations
- List of things or projects I want to look into.
- Code snippets I often use.
- For example, pattern for nice python logger, or configuration file reader, or unittests.
- Steps how to get computer to the state I want it in.
- I've mostly automated this using PyInfra (see Trying Ansible alternatives in python).
- One day, I've realized that my memory is leaky and fading. So, I've created one long page, with years since I've been born.
- Every time I have some memory of my childhood, I try to write about it here. I've also included all kinds of pictures I've found in my photo album, or from Google street view and so on.
- By no means complete, but I will continue adding them as they keep popping in my head.
- My weight.
- Table with dates and values.
- Table with dates, weight information and short summary about what I did.
- 30 push-ups.
- Table where I put information about 30 push-ups I do from time to time. Weight, date, and so on.
- Table capturing when I was sick with what and for how long.
- TV series I want to watch.
- Body repairs and improvements.
- Here I keep track of things I could improve on my body.
- For example, laser eye surgery, wisdom teeth removals and so on.
- To-do list and also a table of things I've already done.
- Code smells I don't like.
- Tattoo ideas.
- Interesting people I've spoken with.
- About what, and usually also some kind of contact info.
- Tea list.
- Teas I like and don't like.
- QR codes for payments to people.
- My PC components.
- Death note.
- Here I write names of the people I think the world would be better without them.
- List of people who, I think, did unmeasurable evil, and we should never forget them.
- For example:
- By no means complete, updated randomly when I feel like it.
- I don't usually write my dreams down because it's a long and tedious process, but occasionally, they are worth it.
- Emergency contacts.
- Not just numbers, but also IP addresses, and frequencies for radios, a map of local soviet era shelters and stuff like that.
- Story hoarding.
- Copy of interesting stories from twitter and so on.
- Games to try.
- Name pool.
- Sometimes I get a cool idea for the name of the project, I put it here and use it later.
- Evil plans.
- List of fantasy ideas from the scenario, "what I would do if I was a super villain".
- So far, only one to-do point:
- Breed a giant cat race to ride on.
- Ban list.
- List of foods and drinks I don't like, but constantly forget I don't like them and why, and buy them a year later again just to be pissed off because I've forgotten.
.. and more, but I am sure you get the idea. Everything quantifiable about me should be here.
Books to write
Ideas for books to write. Not just ideas, it contains three sub-nodes, with various work in progress, mind maps and so on.
Short stories I am writing. Sadly, my English is nowhere near as good as my Czech, so you won't probably ever see them.
Published stories go to: 📂Povídky.
💫 Blogposts in progress 💫
This is one of the most important categories in my wiki. And not for obvious reasons. There is a whole philosophy behind this category.
First, the name is wrong. It shouldn't be called "blogposts in progress", but more poetically, "web to catch my thoughts", "soul mirror" or something like that.
The article Writing for Reasons sums neatly some ideas behind this. Do you know that feeling, when you speak to your friend about some problem, and as you are explaining it, you finally realize what your opinion or decision is? This is one of the usages of this category. To write about things, in order to understand them, by explaining them to virtual people.
I use this category extensively, to sort my thoughts about things. About me, about my life, about technology, politics, and everything, really. It has become an inseparable part of my life. Which is funny because the content is not relevant, the process is. I could delete the whole category, and still, it would be fully useful to me.
Only accidentally, as I am refining the ideas there, in order to think about them, they get polished to good enough shape to be published. But this is a waste product of my thinking because they are no longer useful to me. I do this to solidify the thoughts, to be able to see them, to be able to think about them, do a diff between my mental representation, to be able to integrate them.
Most of the sub-nodes in this category are never published, and are not really blogs, just ideas to think about.
You are reading this post here. When I finish some blog post, I drag and drop it into the subcategory in this section, then I export it to HTML and use my blog convertor to generate the static HTML files, which are then copied to my server.
Repository of blogs which are done, or 99% done and just need a grammar correction, or I don't yet feel like publishing them.
Special node for things I kind of want to remember, but they don't fit into any other place in my wiki.
Usually weird stories from my life, I wrote for myself, so I won't forget them. Sometimes old projects I no longer work on.
Old stuff / alt trash
This is not a node in my wiki, but a whole alternative namespace in notion, where I drop things I really don't want to have in my wiki. In general, things of no use for me, but which may be of some use in the future. Moreover, big things, which make countless hits in full-text search.
Stuff I still didn't figure out / I am working on
Missing timeline view
Like on facebook, but for all of your data. Everything that happened that day, in all of your datasets.
Notion doesn't support them. Which is really quite stupid, as it means that you can't put there really sensitive information.
Again, specific problem of notion, as it is an online wiki.
I've used offline wikis before, but all of them were lacking features I am now used to.
At some point, your wiki grows into such complexity, that it would be really nice to make it into more than a wiki. To make it interact with outside world.
Notion has API, which is nice I guess, but that's not what I am talking about. It also has templates, which you can instantiate with a click on a button, which is the step in the right idea, but still pretty weak.
What I would like is the ability to:
- Create your own custom widgets.
- Ability to script actions. Not just things that happen in your wiki, but even on your computer.
At some point, it would make perfect sense to store everything in your wiki. Results from script runs, objects and so on.
I won't go into details here, but expect a blogpost about this some time later.
While you can store documents (PDF, DOC) in notion, you can't work with them. You can't even see them directly, just a link to the stored file.
It would be nice to have a special document storage section, where you could work with your documents, tag them, search in them and so on.
In general, if you are curious about various improvements, maybe follow my 📂objWiki section. It may be worth it :)