This is the personal website and playground of Timothy Miller. I am a web dev, a business owner, and an avid learner. This is where I write about technology, among other things.


  1. Picture of Timothy Miller

    Timothy Miller • link

    I recently acquired a new Keyboardio, and I've been laboring to learn how to use it as effectively as possible. As a part of that, I recently shared some of what I've been learning on the Keyboardio forum, and I thought I would preserve that response here. The question was:

    I’m really curious how you set things up to arrange windows, switch applications and spaces, and scroll with your keyboard! I want to do that. -fire

    My response: #

    Mouse scrolling I do with the firmware, since that's an option using Key_mouseScrollDn and Key_mouseScrollUp. I replaced page up and page down with these options. BTT can also do this, but it's nice to use the firmware where possible. I've found the scrolling to be a little inconsistent between apps, but it's servicable. At some point I may look into other options for greater consistency.

    Switching spaces is actually built in to Mac OS, those shortcuts are ctrl+left and ctrl+right, or you can use ctrl+1–6 to switch to certain desktops. If those don't work for you, you may need to enable them in system preferences, under "Keyboard > Shortcuts > Mission Control > Mission Control". You can also rebind them there.

    Everything else is done through the magic of BetterTouchTool!

    For app switching, there are plenty of different ways to do it, and I based mine on this thread. I mapped right ctrl to hyper in the firmware (cmd+alt+ctrl+shift with one-shot), and within BTT set up shortcuts that open (or switch to) my most commonly used apps. hyper+f for Firefox, hyper+o for OmniFocus, hyper+s for Sublime Text, etc. The nice thing about using hyper is you don't have to worry about overwriting anything, so you can use whatever shortcut makes the most sense to you.

    As for window switching, you can set up "Snap areas" in BTT that are triggerable via hotkey, so I set up the 6 different window positions that I tend to use, and I use "hyper+1–6" to snap the active application to that position. These areas are also tied to certain screens, so if you have multiple monitors, this method is way faster than drag-and-dropping. This was a big upgrade for me: I've tried numerous window management apps in the past, and this is better than all of them. I don't need any bells and whistles, a way to snap everything into place quickly and effortlessly.

    I'm actually currently working on a series of articles that better explain how to do this with BTT, but I've only published the first article so far. If either of you want more detail, I will have all the details written up there in a few weeks :slight_smile:

    In any case, this may sound like a lot of work, but it's definitely been worth it for me. I'm using my computer much more efficiently now, experiencing less pain in my arms, and able to focus that much more on my work. I won't be going back to a regular keyboard anytime soon.

  2. Picture of Timothy Miller

    Timothy Miller • link

    Dave Rupert has always been a bit of a pioneer where RSS is concerned, and he had another great idea the other day: he created a page that collects everything he likes in his feed reader.

    It's doable with Feedbin, because you can turn on a feature that will create an RSS feed for your starred articles. Then you can scrape that RSS feed like an API and create a list on your own site.

    I liked this idea, but I didn't want to be so dependant on a third party API. I wanted to fetch and cache that data in my 11ty installation, not only so the page loads quicker, but also so I own my own data in case Feedbin ever turns off their APIs.

    After a few hours of work, I was successful. Introducing: Timothy Miller’s Likes. More on the implementation later 🤓

  3. Picture of Timothy Miller

    Timothy Miller • link

    Inspired by @antiheroine I've decided to keep a media log this year. For several years now I've tried (with mixed success) to keep a log of all the books I've read. I have found that experience valuable, so the natural next step is to do it in public, with a few more categories. The list now lives here: 2020 Media Log. We'll see how this goes!

  4. Picture of Timothy Miller

    Timothy Miller • link

    I've noticed a common theme lately, of developers questioning the modern take on web development. From Matt Holt’s “It’s 2019 and I Still Make Websites with my Bare Hands”, to Swizec Teller’s “Most professional engineers can't build an app from scratch”.

    I have more thinking to do on this subject, but I think overall this is a good trend. Our industry has grown by leaps and bounds over the last couple decades, and challenging people to “go back to the basics” and learn more about the foundation of web dev can only be a good thing.

    I do think it would be good to qualify this though: there are many tools out there that do a little work for you without breaking the fundamental paradigm of the web. The HTML5 Boilerplate is the perfect example. If you want to learn about the fundamentals of web dev, rather than starting with Holt’s five liner, I would suggest you start with the HTML5 BP, and really work to understand why every line is there. There's a world-class education hiding in every line of that toolkit.

  5. Picture of Timothy Miller

    Timothy Miller • link

    I have recently discovered that I love Feedbin's "Subscribe to Email Newsletters" feature. Two big benefits: I get less email spam during the day, and I get to look at my email newsletters at the same time I look at my blogs, when my brain is already "primed" for learning.

    File this under "things I didn't know I needed, but I really did". It does make me grateful for services that allow you to change your email address though, I didn't realize how rare that was until now.

  6. Picture of Timothy Miller

    Timothy Miller • link

    Fascinating conversation happening about CSS4 on Github. A lot of very good points both for and against. I already posted my thoughts last week, and it's looking more and more like CSS4 is going to become a thing, despite plenty of good arguments on both sides of the fence.

    I still think this won't create anything like the popularity we saw with CSS3, but it doesn't hurt to try. And in any case, I am a firm believer in the power of language. If you want people to talk about something, the best thing you can do is make it easier to talk about, and the rest will follow.

  7. Picture of Timothy Miller

    Timothy Miller • link

    The internet is a unique animal. People think that things last forever here, but I find more and more that this is not the case. There is so much data on the internet, even if things are preserved, it might become nigh impossible to find them. And often things aren't preserved.

    For instance, on Twitter the other day there was a bit of "folklore/history" displayed in these tweets. I thought it was fun and worth preserving, so I'm recreating it here.

    The Etymology of Prollyfill, Polyfill, Shiv, and Shim #

    (Props to Jonathan Neal for the history lesson!)

    • Polyfill, Shim, and Shiv: JavaScript that makes newer technology work in older technology. E.g. we used to have to polyfill HTML5 tags so that they would work in Internet Explorer.

      A "shim" is borrowed from the real-world definition: a shim normally is a piece of wood used to fill gaps in order to make things work.

      A "shiv" comes from John Resig mis-remembering the word "shim".

    • Prollyfill: Makes experimental (non-standard) technology work everywhere. Often used for specs that are in progress but not final. They might change before they're finalized, but "prolly" not.

    • Ponyfill: Makes something (anything) work everywhere, but different from the spec, so it doesn't break anything when the spec is finalized. (Thanks Sindre)

  8. Picture of Timothy Miller

    Timothy Miller • link

    Relearning your default keyboard layout, after 15 years of typing on Qwerty, is a very strange experience. I decided to learn Colemak to combat my RSI. After a month of hard work I can type on either keyboard layout, but sometimes my brain decides it wants the other layout, and for a confused few moments I type gibberish. I'm sure this will resolve itself with time, but for now, it is very strange experience. Somewhat like learning to walk again after biking for a long long time.

  9. Picture of Timothy Miller

    Timothy Miller • link

    This is my first note! There are many things I want to write about in small chunks, without committing to a full article: this is a spot for those things. #indieweb