2020 -- The Year of Taking Notes


Hey it's December and it's my second blog of 2020. Almost a year since my last update. Let's not talk about the strange year of 2020… sometimes I do an unintentional Big Thing(tm) for me, learning-wise or tech-wise of the year. A few weeks ago I figured out what 2020's was and why not share it now?

I've never been really good at taking notes before. Not really sure why. Some of it was stemmed from "Sure you can write it down but you will never find it when you need it" and some other was "You fight the tools to do it well."

There is a concept called Zettelkasten that is becoming very popular. I suggest you read that article or this one to get an idea. You can google the Zettelkasten name yourself and see what is out there, what tools are our there. If you want a good book to convince you more and more details see How to Take Smart Notes by Sönke Ahrens . I'm not going to get in the nitty-gritty details of how to do it (because I'm not sure I'm doing it well) but simply a note should have three things outside of it's content:

  • tags
  • links to other notes
  • A title to find

It took me a little bit to find my own system to make it work for me. I declared bankruptcy on my Emacs config and started using Doom Emacs. Doom make it easy to install Org-Roam, which is a re-build of the Zettelkasten system Roam built on top of the ever-powerful OrgMode. I use Deft to quickly lookup notes.

This is all fine and good on my Mac but I'm not always on my Mac. What if I find something I want to remember while reading on my Android phone or iPad? this is Trickier. If it's just an article I want to read (again) later, I add it to my Todoist. If it's something I want to remember… well sometimes I still add it to Todoist with a comment and add it to my Org-Roam later. On my iPad I've started using (and paid for) Bear to write notes into. I think (usually) copy the notes out of Bear and into an Org-Roam note later. Bear is really a joy to write with – it gets out of my way, let's you (or makes you) do Markdown, and generally does the right thing.

This is all about implementation and workflow, which I will admit isn't great and is evolving. But the idea of Zettelkasten is great for me and while the literature talks about it for writing, it's really useful for all knowledge workers. If I figure something out in the application that I'm writing, I make a Org-Roam note about it. Or something I want to try, I make a note (and generally a Todoist item to revisit it eventually). And if I run into something, I looked my notes before Googling around about it. And hey sometimes I write a note about "Look how cool X is!" and then later I figure out it isn't go cool, so I make another note how I fixed it and make sure that links to the original and then edit the original to say "hey use this instead".

Basically, little by little, I'm making my one Wikipedia, but better because it has my own thoughts and opinions in it. I'm not terribly picky about what I put in – technical, other soft-skills reading, etc. As Ahrens said in his book:

Working with it [Zettlekarsten] is less about retrieving specific notes and more about being pointed to relevant facts and generating insight by letting ideas mingle. Its usability grows with its size, not just linearly but exponentially. When we turn to the slip-box, its inner connectedness will not just provide us with isolated facts, but with lines of developed thoughts. Moreover, because of its inner complexity, a search thought the slip-box will confront us with related notes we did not look for. This is a very significant difference that becomes more and more relevant over time. The more content it contains, the more connections it can provide, and the easier it becomes to add new entries in a smart way and receive useful suggestions.”

So really, the bigger the better. Personally I looked up five different notes together to write this article.

The thought came to me the other day how different I have become to notes when I was working on a church Bible Study, Book in hand, iPad on my lap. The iPad is in split-screen with Bear on one side and the Bible passage on the other, ready to take notes. The Mike from last year would have squeezed his answers into the fields but now he wants to keep them later.

Category: misc Tags:

My Uses This


This year I've discovered the blog Uses This and I'm fascinated by it. Since I will never be on there, I decided to roll my own. As I started thinking about it, I realized that I kinda have something like it, at least describing my current development environment so maybe I will just allude to that when I get there.

The hope is that maybe others will post the same type of thing in their blog. I just find it interesting. Maybe I'm just weird.

Who are you, and what do you do?

I'm Mike Hostetler and I'm a Principal Consultant at Object Partners, which is probably the best place to work for my current station in life. Historically I've been doing Java development but now I'm living in the world of AWS, Python, and NodeJS (if I have to). Since Python is my favorite programming language, I'm ok with that change.

What hardware do you use?

My employer issued me a MacBook Pro. I like the CPU and memory but ignore the Touchbar and dislike the keyboard. A lot. While working, I usually have it closed and hooked up to a monitor.

Through work, I won a pair of Sony WH1000M3 headphones. It's both Bluetooth and noise-canceling. I would have never bought them for myself but I really love them. I use them for calls as well as having them on for deep-work. Before I used a $30 pair of MPOW headphones – still decent sound, longer range, but not good for calls. Not noise-canceling but it filters out a lot.

At home, I use a Das Keyboard, which I have a love/hate relationship. I love the feel of it, and the keys, and it's sturdy. But sometimes I accidental press a key a little bit and the keyboard sees that as a press. But I haven't found a keyboard I like better. I also have a cheap Bluetooth keyboard from Anker that I port around that works surprisingly well. I had a co-worker suggest a Magic Trackpad 2 and I like it more than I thought I would.

Personally I tend to not upgrade my tech very often. I have a Samsung Galaxy S8 phone and a Samsung Galaxy Tab S2 tablet. I use the phone for …, well, communicating, and use the tablet for games, reading and research. I read a lot of novels have really like my Kobo Aura. Why a Kobo instead of a Kindle? Better integration with my local library and I like the epub format more than Kindle.

And what software?

If you know me very well or frequent this blog, I'm a big fan of Emacs. I won't belabor this point because I've already stated my opinion. I would say there is no such thing as an "Emacs tourist."

So besides that – what other software do I use? For browsing I moved back to Firefox and don't regret it. It was the announcement of the Multi-Account Container add-on that sent me there and I don't regret it . I now use it on my tablet and my phone with syncing, etc. I have things locked down tight with uBlock Origin and Privacy Badger so sometimes a site I need doesn't work quite right, and I have to use Chrome. But most of my browsing is done in Firefox and I like it.

For my todo-list, I'm currently using Todoist, which I've come to really depend on. The Premium version is worth every penny. My favorite Todoist feature is email forwarding – I can forward an email from my (or any) inbox and it will immediately appear in the Todoist app, with my email as an attachment. I've found this really handy for movie tickets, store coupons, etc. There are a lot of integrations with Todoist and plenty of other features. If you want to if you want to try Todoist Premium, click this referral link. I don't think you will regret it.

Other software: Keybase for my private git repos, KeePassXC to manage my passwords, Swinsian for my music collection, Inoreader for blogs, Shift for all the GMail accounts I have to manage, and pCloud to keep my important files in.

What would be your dream setup?

I sometimes think that I would be just as happy or happier with a stronger laptop with Linux on it instead of a MacBook Pro. None of my software I used for development needs MacOS and most of the other software (pCloud, Todoist, etc) work fine on Linux or have good alternatives. And yeah it would have to be a laptop because I really like the portability.

Category: tech Tags:

New Tools for an Improved Workflow


Kasim Tuman recently wrote that Emacs is like a workbench. It evolves as you get better with your work – or changes as your works changes. I think that is a great metaphor of not just Emacs, but software development tools in general. So this post is about my evolving workbench. My workflow has changed a lot in the last few months to a year because of different tools I discovered and have put into practice. This came as I switched from Java to Python as my primary language. Some of these changes are Emacs-related and some are not. Yet everything kinda coalesces together into one harmonious system and suddenly things become a lot easier.

As I said above, I've been using Python almost exclusively in the past year. I haven't fired up Intellij in months and, frankly, I haven't missed it. Yes a full IDE would give me things like refactoring support but in Emacs I can open up many files and look (and switch to them) with ease – something that Intellij never did for me. It's effort in the JetBrain's world – in Emacs, I do it with muscle memory and routinely am looking at 4 files at once. One time a co-worker was working with me on something and I quickly deleted some files with Dired and he stopped talking. I asked him if I messed something up and he said, "No I just saw you manipulate files while inside Emacs and I'm still recovering from that."

Anyway my independence from Intellij has freed me up to explore other tools to help me with my software development work and I like what I have built up.


Just as a development tool, things get a lot easier with Docker. Setup a docker-compose.yml file for a database and another other extra services for my projects and suddenly I have a solid local development environment where I don't have to sweat if it will work on a server. You can setup multiple services in one Docker file (I had PostgreSQL and RabbitMQ in one file, for example). It's really as easy as a google search for "docker <service you want>", click one of the first links, and put their snippet into a docker-compose.yml file, and then run docker-compose up -d.


Tmux has been in a my tool bench for a long time, but I have started using it with a renewed fervor. Mostly because I have 2-3 projects (if not more) going on at once. It's hard switching CLI's back to that and having a config for it. direnv helps a lot, but doesn't give everything. I found tmux-ressurect, which saves the state of my Tmux prompts. So now when I need to switch a project, I just go to my Tmux-powered prompt and switch. Forced to reboot? I just start Tmux and run my tmux-ressurect command (Ctrl-\ Ctrl-r) and I have everything back from before the reboot.

I will say that I've been using the zsh less and less lately, mostly because Projectile has been taking most of my shell usage away from me. I have been using eshell a lot lately and that is good enough for simple things. The Emacs terminals like ansi-term just fail on REPLs, etc. I played a bit with the vterm module and it shows promise but has a ways to go for my usual workflow. I like that tmux is always there and switches contexts with few problems. It's hard giving up years and years of aliases that you are used to. See my tmux config to see how I set things up.


If Emacs is my IDE, then direnv runs my config file that the IDE reads. So as the .idea folder is for Intellij IDEA, so is my .envrc for my Emacs/shell setup.

I use direnv for project-specific environment variables (like AWS_PROFILE and even custom PATH). But you can do more than that: I talked about this on my employers blog but I use it to manage my Python environments as well. It took me a bit to find it, but emacs-direnv makes Emacs read it and follow it. Then Emacs knows all about which Python environment I'm using. That makes a lot of things easier. All I have to do is open the project in Emacs and poof it's pointing at the proper Python environment. My only real complaint about direnv is that it doesn't have a parent structure – that I can't declare environment variables on the top level (like AWS account info) and have that go into the direnv-enabled folders below. Recently I started doing source /path/to/some/common/file and that works – you need to use the fully-qualified name to make sure it works. Not quite as nice as just using a parent folder, but it works really well.

Emacs Stuff

Yes, Emacs needs it's own list of things. This part of my workbench is always evolving but I got into a group of tools that have been fairly consistent lately. You can see my Emacs shortcuts here, which give you an idea of what kinds of things that I use.


I've had Projectile in my Emacs config for a long file, but haven't used it until the last eight months of so. It has now become the general way I interface with files and buffers in Emacs. Everything is a project (which is easy – it just has to have a .git folder in it). Then I can find files in the project, switch buffers in the project, search files in the project, and compile (or run) the project from any buffer opened in the project. This integrates with ease with direnv and Helm. So, I can find a file in the project via Helm and the search project results buffer is also in Helm.

Let's also not forget that Projectile comes bundled with Prelude, which is a really nice little Emacs starter. My favorite part is that you can put your own Emacs configs under ~/.emacs.d/personal.d where you put your own configs… not having my mess with the main Prelude/Projectile part is nice.


My newest Emacs addition and, honestly, I'm not sure how I got by without it. I tried to use it before but I didn't get the hang of it. As I mentioned above, Projectile can use it and that got me going with it again. Now I flip through buffers and filenames with ease. So easy to switch to another file. And the interfacing it with M-x to find functions is great I find useful functions I didn't know existed – like pytest-one and pytest-all, which now I use all the time.


When I first started using Magit, I found it confusing and didn't know what the hype was about. I stuck with it, and figured out how it was structured and the way that it wanted me to work. I found that it's way of dealing with git was smarter than my way. It has now became my preferred way to deal with Git – not just committing, pushing and fetching, but also looking at logs and branching and everything else. I never would have believed I would have given up the command line with git, but yet I have.


I'm enjoying this freedom from in my current set of tools. I find it much quicker to get a lot of things done, switch projects, etc. Some of these things have been kind of "set it and forget it", which is nice until you need to setup it again.

A big question – how will this work when I go back to Java development? Not real sure that this setup is good for 100% Java… but I could see myself using both this sort of setup with Intellij… use the strength of both. Of course, maybe I will find a different list of things to be using a different list of tools from this list by then.

Category: tech Tags:

Literate Dotfiles


For several months, I've been converting a few of my dotfiles into OrgMode files and using tangling to generate the config file and the same file generates HTML documentation. The point was to always publish them – and I finally have. See the HTML version or the github project. Note that the Org files are rendered in Github because Github is smart like that – it treats them the same way that it does with Markdown.

I stole, er, borrowed the system from Toon Claes. And, yes, I have had to edit a Makefile to do this.

I found this documentation on my files to be more useful than I thought. Besides just the documentation of "why is this here" but it also helps in "why am I adding this?". Because the ultimate source is an Org file, I can do a better job documenting why I did something in the file then in the comments of the file. I can (and really should) link my config file to my OrgMode-powered knowledge base about what each thing does. That doesn't give the Internet reader much help, though. But is this documentation more for me for them? That I'm uncertain about.

So why call this "literate"? It's not my word – it's Donald Knuth's. Basically it's keeping the documentation and the code together. Wikipedia has a good overview on it.

I already repeated a lot of links from the Readme of this project. Hopefully these files are helpful to someone.

Category: tech Tags:

On Music


It's funny as I have hit solidly middle age, when you figure things about yourself that have always been there – but you have just noted it. I can list quite a few things – both positive and negative. But what the one I have just simply noticed is music.

This should be a surprise when I talk about managing a mount of music but cognitively it didn't hit then. It started when I told people about it and said "I imported in about 5k MP3's with it" and their eyes get wide. I guess people delete MP3's? is that a thing? Well it's not for me.

I think music has always been there. I mean, old hymns in church bring back a lot of nostalgia for me. And my kids are constantly amazed how I can sing along songs on the radio. Or on my 5K collection that I put in the car (which of the big triumphs of my nerd career). I generally can pick out a song I know within the first few seconds of it starting. I have less success with some songs but most of the time I can pick out at least the artist. I don't need music on all the time (though I do prefer working some playing on my headphones).

I'm not sure why I'm wired this way. I didn't come from a musical family. I can't sing very well (doesn't stop me from singing along) and I played instruments in grade and high school but haven't kept it up. But there is something about music playing that soothes me.

And some random notes about this subject:

  • I don't have a favorite song, or a favorite genre. I like about everything – jazz, country, heavy metal, pop….
  • That said, I think Stevie Wonder's Songs in the Life is probably one of the greatest albums ever recorded.
  • In my post I linked to above, I said I use Nightingale to play music. Well, Nightingale hasn't been updated in a long while and Mojave said it may not work in new versions of MacOS. So I moved to (and purchased) Swinsian and haven't regretted it. I don't use most of it's power but, at it's core, it's like iTunes before iTunes sucked.
  • This old Lifehacker article was my guide for putting together Smart Playlists to keep things fresh and manageable. They do it with iTunes but the same functionality exists in Swinsian
Category: misc Tags:

Review "Relay"


I'm not sure how many other people remember Nextel but I do, maybe because my first job out of college used them a lot. They had one really cool feature on their phones – a walkit-talkie like functionality. You could hold a button and talk, and people on your list of numbers would get it. You could have a conversation or call for help. It worked pretty slick. Sprint bought, or merged, with Nextel and this functionality faded into history.

I was reminded of this great idea when my first told me about Relay, which is a little square device that lets you do something similar. Its designed for kids and it's literally a button with a speaker – you push it and talk into it. People on your same plan with a Relay, and with the Relay app on their phone, can hear what you say and you can talk back and forth. It also has GPS so you know where your child currently is. The Relay is created by Republic Wireless, and you have to use their network, which is one of the bad things, IMHO. At least for us, not all the networks that RW used (TMobile and Sprint) aren't always great where I live. But I have found Relay support is good – for example, they sent me a replacement SIM card when I was, er, mu cking around with ours. The support person noted that Sprint would be better for us than the TMobile card that they originally sent us, so they sent us a Spring SIM instead. And, yeah, it does work.

Now I can run errands while my son is home during the day and I can message him where I am, and when I'll be home. Or he can be at a friend's house and I can make sure that he is there. We love it and it has made our lives a lot easier. If you are interested, here is an affiliate link for a free month of Relay. I think it's very worth it.

Category: tech Tags:

RSS Reader


I've gotten back to blogs again. And that meant I needed an RSS Reader. The qualifications:

  • web-based but have an Android app
  • interface gets out of my way to read an article
  • favorite support
  • syncs often
  • still under active development
  • ability to pay a reasonable price for the service (because it's useful for me)

In the past, I've installed readers myself and had it fetch updates, but I don't have the time to really monitor a server anymore. I once used Feedly so I loaded that back up. I paired down the feeds to blogs I was more likely to read and ones that were still updated. And went from there.

Here was what drove me crazy about Feedly:

  • Feeds weren't refreshed very often. Faster updates were a feature of a paid account. I can see that (but didn't like it)
  • Searching for stories/feeds was limited if you didn't pay. That never sat well with me.
  • The Android app didn't sync very well. So an article I read an hour ago on the web would be unread on Android. Apparently this has gone on awhile and it's not solved by paying money.
  • The paid price was too high for me. I'd like something in the middle with fewer features. But it was all or nothing.

I started looking for an alternative this spring. I thought seriously about The Old Reader but the lack of an official native app stopped me. Somehow I stumbled onto Inoreader – not sure how. I had never heard of it before and did some digging and it's ran by a Bulgarian company. No matter – it got good reviews and from what I read it's "for power users". And that's kind me. And it's what I stayed with.

It's interface is seemingly like Google Reader or, er, The Old Reader. Starting was easy – I exported my OPML from Feedly and imported it in. My categories and everything were moved over as well as starred items (i.e. favorites) where there. I've been using it for a few months and finally paid for the lowest plan and may upgrade a tier.

What do I like:

  • It's fast.
  • The Android app syncs my feeds!
  • They have a tiered pay structure so I don't have to pay a high price for features I won't use.
  • Rules is a paid feature. The lowest paid tier that I have only allows for one. I used it to mark certain stories as Read (because I'm not interested in them and they flood my feed). I may need more now that I have it working…
  • Integrations are free! So I can send stories to Pocket without having to login to Pocket on my work computer.
  • A customizable dashboard that I find pretty useful

But there are a few annoyances:

  • There are ads. And no I can't blame them for that.
  • You can add the same feed to multiple folders. This is obviously a feature but when I did it on accident, I found it annoying. YMMV
  • The Starred items are hidden away in a folder that I tend to overlook

Overall I'm pretty happy with it.

Category: tech Tags:

A Wii Bit of History


In an odd series of events, we played our Wii again for the first time in years. We had a lot of fun bowling and my son discovered how hard Wii golf can really be, but then he cleaned us up on the tennis court. He was a baby in the heyday of our Wii so he doesn't remember much. And let's not talk about Just Dance Kids.

The Wii was clever in it's design and controls. But this post isn't to wax poetically about this game console. Instead, it's an artifact of our family history.

While my son was young in our Wii-hey-day, my now-teenaged daughter was in the thick of it. Opening up and looking at the Mii's we got to see all the avatars she made over the years. Most of them were blonde girls name "Lily" but there were other names too. There were Harry Potter characters. There were also Miis named after foster kids we hand in our home… and Miis made by uncles who visited as well as by myself. My Daddy Duff Mii is still one of my favorites.

It was a weird bit of nostalgia to see all those old Miis running around. And then go bowling with them.

Category: tech, family

The Year of Emacs


Somehow, by accident, 2018 has become the year of Emacs. I did write about some Emacs improvements I was doing, but it seems to be something I have come back to time after time. My latest work project is a large, mostly-standard Java app with some Spring sprinkled in here and there. I'm using Magit for using all my Git interfacing, which I never thought would happen – I always did the heavy work on the command-line but find Magit much more friendly now. For coding, I'm moving back and forth between Emacs and Intellij. Intellij still does a lot of nice things (like auto-import, syntax checking, etc) but I can type faster in Emacs. And, since this codebase is large and, er, not necessarily well arranged, Intellij can be slow with it. But Emacs with gradle-mode let's me do the TDD things much faster.

All this to say – last week I ascended onto even a higher level of Emacs karma.

Our dev team is transitioning between from Windows to Mac and some are still pedaling away on their Windows machines. This causes our commit-hook to put our ticket name (which comes from the branch name) to go from working to non-working on the Mac, because of permission issue. If I fix it, the next pull may break it. So I'm having to remember to put it in, which, so you know, just isn't going to happen. On a check-in last week, I noticed that Magit has the branch name in the comments when making a commit message. I thought "I could make a keyboard macro that uses the branch name to put in the ticket name." So I quickly created it and tested it out – it worked fine. I didn't know how, but knew I could save it for later. Sure enough I could but first I had to name it – so that was a quick C-x C-k n . I had already setup emacs-bind-map to make my own prefix to put come shortcuts. Of course, I had to run insert-kbd-macro to put in the Elisp code and the named function (the code looks like gibberish… mostly numbers) and then assigned it in my bind-map command.

This is not rocket science, especially for Emacs but my shift in thinking of simply thinking "I know I can do this… let's figure it out" as opposed to "I wish I could…" or simply googling for someone's blog post.

Category: tech Tags:

Misc Bits and Bobs


Lots of little ideas in my head that don't seem to make up a good post for each one, so I'm putting them into on. Be prepared for utter chaos.

  • I read about a compact microtool on the Cool Tools blog and I had misplaced my (larger) Leatherman I carried in my workbag, so when we did a large Amazon order, I threw that in it. I'm so glad I did – it fits very well in my pocket and have used it lot (including using the pliers to fix a broken zipper on my son's backpack while still at school). The size is small but it's really well built. I highly recommend it. Buy it with Cool Tool's Affiliate link. It may never leave my pocket if I'm not on an airplane.
  • I found this video about the history of orchestra hits in music absolutely fascinating.
  • I noted that my alma mater had a story about them on This American Life. I don't have any particular love or loyalty to that place but I am interested when it gets national attention outside of athletics. I went in expecting a story about how backward of a place Nebraska is (which the reporters did do, in a very snarky way) but I left with a concrete story on at what is wrong with political discourse in this country. Highly recommend listening, regardless of your political bent or your opinion of This American Life.
  • For reasons that I may share later, I setup ArchLinux on a Virtual Box machine to play around with. But I couldn't get the video working right – I couldn't get it to use "real" 3D animation but instead use software rendering, which made Cinnamon desktop a bit laggy. After much searching and gnashing of teeth I found this SuperUser answer which basically says that Arch is using too new of a version of Xorg and Virtual Box has no video module for that version. That… .angers me. If this posts helps the Google Ranking of that explanation, then this is all worth it.
  • I think I need to watch this video a few more times to totally grok it but watch Karl Voit's "The Advantages of File Name Conventions and Tagging" to a new way to think about files. His date2name script is now in my permanent install list.
Category: misc Tags:

© Mike Hostetler 2016

Powered by Pelican