Jason Becker
2024-03-24

Dang– I have a big post I want to write up using Monodraw ASCII-style diagrams. The problem is that my blog width isn’t sufficient for showing these correctly in pre/code blocks. And Monodraw doesn’t have a dark mode export to PNG. I might have to do screenshots.

Shit hit post when I was trying to preview. Still messing with how SVGs work.

On a recent Accidental Tech Podcast member special, John Siracusa walked through his window management strategy. It was a fun episode, going over how John tends to have many (I think honestly over a hundred) windows open at the same time on his Mac using a single space and monitor. He does a lot of window sizing and arrangement that allows for easy click handles because of how windows freeform overlap that’s pretty neat. I can’t say it’s having a big impact on how I work, but I can say it made me think again about how I set up my computing world.

Similarly, on the most recent episode of the same program, the “after show” (not gated) was about why two hosts, Marco and John, don’t use multiple monitors. I found myself largely nodding along at their rationale as someone whose journey was quite like Marcos– back in 2005, I was using 2 x 17" LCD monitors and desperate for space, but somewhere around the 27" monitor time I switched to a single monitor with no desire for more.

Unlike John and Marco, I heavily use a macOS feature called spaces which is a part of the feature known as Mission Control. This feature is more generally known as “virtual desktops”. If you haven’t used virtual desktops before, the best explanation I can provide is imagine having two screens and setting up your window just so. Now imagine instead of those screens being physical an always present, you can use a keyboard shortcut or gesture to swap those screens. Now imagine there is no limit to the number of these screens you have. That’s virtual desktops.

I first used virtual desktops in the fall of 2006 at the Sun Lab at Brown University. There was some Debian-flavored minimal Linux distribution used on each of those computers used for computer science classes. 1 The default window management system was a very plain setup of fvwm. But one thing that was there by default was a 3x3 grid of nine virtual desktops. I wish I had taken a lot more with me from that computing setup than I did, but one thing I immediately wanted to emulate were these virtual desktops. I immediately downloaded some cracked software to do this on my Windows machine, and it was one of the driving forces that led me quickly to use Linux at home.

I still miss when macOS permitted spaces to be setup in a 2x2 grid rather than a ribbon of infinite spaces. And I still miss the 3x3 grid setup I used for years. But I know so many people who use Macs and never use spaces. So I thought I’d document a little bit about how I use them here.

Big Picture

I’ll describe a bit about each of my four “desktop types” below. But overall, I have an “email” screen to my left, a “primary screen” with the majority of my communications and browsing, followed by any number of “focus” or “work” screens to the right, ending with a set of “fun” screens that contain things like Music or other apps I occasionally switch to for control purposes.

Email

I use three apps right now for email– Mail.app, Mimestream, and Outlook. This is because my personal email is on Fastmail, I have some email accounts on Gmail (including my old work account) and my new work email is Outlook only. I used to just have Mimestream and Mail.app on this page, but the addition of Outlook is a new necessity. I don’t mind Outlook the app very much, but I do hate the service. That said, I put email all together because it’s a thing I want to intentionally go to, not a thing I want in my face all the time. That said, I do frequently need to go to email, so I like having it close at hand. During the workday, when I’m not in any focus modes, my work email can send me a notification on my Mac– not my phone, and not my watch. I can decide from there to head left, take care of it, and back right out of email. Out of sight, mostly, and mostly out of mind.

Primary

I spend a good chunk of my time on my so-called “primary” screen which is actually very work light. This is actually my “communications center” where I have Slack, Messages, some social media for scrolling, and my main browser windows. Any time I’m doing work that’s web-based or communications oriented, this where I live. As a manager in these modern times, most of my work is communications or web oriented. Any form of non-focused work happens here, and it’s my “home base” for computing. It’s messy, and there’s a lot of ephemeral stuff that ends up on this page, but the above diagram has most of the “almost always open” stuff on it, roughly how I arrange things.

Focus

I have any number of “focus” screens at any given time depending on my work. This is often Nova, RStudio, or iAWriter, for general coding, R coding, or writing. But it also can be a ton of iTerm 2 windows, browsers, or any combination of the above. This is space for focus tasks. By putting this to the right of “primary”, in my brain, moving left is moving “up” the distraction tree. Moving right is largely moving into more focused, digging in tasks. I almost never have more than three focus desktops and I strive for a single one. This is the one thing I’m meant to be working on, with everything setup to focus on that once I’m in that space, and no other distractions. If I need a browser for my work, the browser window in this space is only task related browsing.

As a general rule, if I expect a task to take more than 30 minutes, I move it into a focus space.

The exceptions to “right is focus”

All the way to the right, at the end of my chain, are applications that I lightly interact with but want open. Things like Apple Music or MarsEdit often live out here open in their own spaces. While I’m showing these windows as “overlapping”, these are often one-space apps. I sometimes want a full view of my calendar in Fantastical to do more complex scheduling. I sometimes want to browse Apple Music versus just hitting play/pause/love/next (all of which I can do from a keyboard layer or the Stream Deck). I sometimes want to write a long blog post.

Conclusions?

I’m not sure if I have any, but this is a rough view into how I work. I’d love to hear from others about their setups.

I wish I could have used the actual ASCII versions of the images above, but I was not willing to rework my site theme to make them appear well. These were all made with Monodraw and exported as SVGs. I then used neovim to replace rgb(0, 0, 0) with rgb(255, 255, 255) so that they would work with my dark-mode only website. All of this is bad and I feel bad, but I didn’t have the patience to figure out a better option on a Sunday afternoon.


  1. It’s funny to think of computer science classes having lab setups like this. It was truly much easier to do your programming and homework on this setup. For one, macOS was still not that popular and Windows didn’t have anything like WSL. So working in a Unix was huge. For another, the amount of tooling required to setup a machine for the right development environment, especially so that you could submit your code in an automated way and have it checked and graded would have been a huge pain. I bet this lab does not exist anymore and is hardly necessary. But I’m glad it existed at the time, because I suspect the burden of setting up a clean, solid development environment on my desktop would have been a nightmare. This is also what took me from Linux curious to daily Linux user– right after that class I took the plunge and dual boot the desktop I built and rarely went into Windows. My IBM T43 laptop, which I bought in part because of its Linux compatibility even before I was using Linux, went fully Linux soon after. ↩︎

Well that whole post is less good than I hoped. SVGs seemed like the solution, but I appear to have run into a Micro.blog bug. Maybe I’ll inline them.

Nope, Micro.blog API end point rejects the post with inline SVG. Cool.

2024-03-23

I can’t help it. Every time I am reading about Aaron Taylor-Johnson my brain swaps his name with Anya Taylor-Joy.

I actually think Apple loves that you can use a Mac and iPhone this long and still be happy. It’s probably about the edge, because in today’s world security patching alone puts a huge burden at some point. But I think Apple wants its products to last and loves having users talk about their 8 year old Mac.

How many 8 year old Windows laptops exist?

How many people can talk fondly about even a four year old non-Mac laptop? Very few. Meanwhile, excluding the bad keyboard era blip, keeping a Mac for four years has been an easy choice since the SSD switch. Even 6 years is pretty easy for anyone who is just a bit careful with their laptop to ensure longevity.

I buy a new machine roughly every 2.5-3.5 years. I find this is the sweet spot for residual trade in value and meaningful upgrades. But it’s been a long time since I’ve felt a need to do that. Part of my loyalty to Apple products is precisely because they last. I think Apple knows this.

Just spent a bit over 3 hours playing guitar with some other folks for the first time in years and it was a blast.

The Holdovers is definitely my kind of movie.

2024-03-22
2024-03-21
2024-03-20
2024-03-19

The first generation AirPod Max was not for me. I’ve been holding on to a pair of Sony WH1000XM2 thinking the next version of AirPod Max might be for me. Yet, as Sony kept iterating (and not always to my liking), Apple hasn’t released anything. Maybe I should stop waiting.

I cannot adequately express how utterly broken Microsoft Outlook is compared to Google Calendar. It has been a daily annoyance across my team as calendar invites just don’t show up, disappear, fail to notify of RSVPs, and regularly just doesn’t work in ways that Google has never been a problem.

Is it possible to be an adult in the US without the constant barrage of shitty mail?

2024-03-17

All I can think about watching John’s windowing is how powerful spaces are and how it drives me nuts that people don’t use them more.

Also, please bring back spatial spaces. I’m glad to not be stuck with 2x2 grids, but I loved 3x3.

Quick breakfast while waiting for my haircut.

A white plate with a yellow edge. On it is a bed of greens and bacon, above which is a slice of toast with avocado and additional greens, topped with an egg sprinkled with paprika and hot sauce. The table is marble, and there’s a glass on the top right with a nitro coffee with foam on top.

This post on how Phoenix is not your app really resonates with me. In fact, something that drives me nuts is when I see logic leak into a LiveView. That said, moving code and accessing our own code is so easy, it’s not tough to refactor.

I’ve been increasingly turning to Firefox over Safari. I like it a lot more than Chrome so far.

2024-03-16

Gracie is still with us, though her decline continues. Multiple times I’ve thought, “If this is not one day, but two days like this in a row, it’s time.” Holding the power to decide when life ends and death begins for someone you love who cannot express themselves is challenging. We are playing a mix between dog nurse, dog psychologist, and dog priest. This kind of extended end time takes its toll– I don’t sleep well because every movement she makes at night means she could be getting ready to vomit or need to go for a walk to avoid an accident. That’s not literally true six of seven nights a week, but it only takes one night to set my nervous system on high alert.

She has had quality visits from my sister and my parents. We brought Elsa’s mom home a bit early– she’s arriving today– so that she can have quality time with her as well. When we made that decision, I was certain Monday or Tuesday would be the day, but now I’m less sure.

The big news is that Allovue was acquired by PowerSchool in January. This marks a transition after almost exactly ten years working on the same project with the same people. In a lot of ways, the work isn’t different– we’re aligned on mission and vision, especially in the near-ish term, and I’m working with the same team. But in other ways, everything is different. I’m going from being a clear leader at small company where every bit of history and every decision was one I witnessed or partook in to being a middle manager in a very large company. I remain optimistic and I am continuing to adjust. Being in management in general is kind of tough here, because I’m trying to help people navigate the change while going through it myself.

I have continued to deepen my Elixir knowledge, bit by bit, and it remains a language that makes me feel happy. The speed with which I can move from idea to prototype is great. It’s easy to look at complex code and consider how to pull it a part and make it better (almost too easy to spend all of my time tweaking and refactoring). It’s a pleasure to read. You can write garbage just like any other language, but the underlying elegance and expressiveness is impressive. You can go very far only understanding basic data structures and using Ecto. That’s the way I think it should be – for me, programming has always been about shuffling data around and Elixir jives with that, so it jives with me.

I’ve been sitting on a partial redesign of this site for quite some time. I became so annoyed with myself for having not completed it that I went ahead and applied the new (darker) color scheme a couple of months ago just to feel like I made some progress. Maybe it’ll actually roll out in 2024.

One thing that’s changed definitively is I now use Nova for almost all of my non-R code. I was much more heavily using neovim before, and I still do whenever I’m already in terminal land. I’ve just found it really hard to get things working how I like in neovim for a few key features. Nova’s vim binding support is terrible, and I still find that very frustrating, but the rest of the app sits much better with me than VS Code has, even if I’m missing out on the extension library.

We’ve got some upcoming trips to Chicago, Providence, and Nashville I’m looking forward to. The plan is still to go to London in July, although it appears we’ve chosen the absolute peak of the peak of travel season so I’m starting to second guess myself on that one.

Lately, I’ve had a hard time with consistency. My diet has been inconsistent. Getting to the gym and volleyball has been inconsistent. Reading has been inconsistent. Writing on my blog has been inconsistent. I’m hoping I can start to find some kind of groove again in the next few months.

2024-03-12

Natalie Wynn pointing out how incels say they want a return to traditional roles, but actually wish to be the “beloved” rather than the “lover”— to feel desired, in a way that is often ascribed and allowable to the feminine— is a banger real late in her newest video.

Not a new observation, but damn, The Stranger is a hell of an album.

2024-03-10

“I was surprised that they pretty much all agreed on a definition that romance was for good girls, and erotica is for sluts. Pornography, of course, is for men.”

– Natalie Wynn on the definition of romance v. erotica

I’ve mentioned the rotating home screen images as a killer iOS feature, but I think I’ve undersold Focus Modes.

Aggressively automating the quieting of my phone has eliminated pretty much any negative feeling I have toward phones.