Some thoughts on editors

I've been messing around with my workflow and trying different code editors. I know IntelliJ kinda has a bad rap and often feels slow compared the everything else out there, but it has 2 features that I think are under appreciated.

  1. Language Injection. You can sort of do this in VSCode, but you have to add an html tag to your string. IntelliJ just automatically figures it out, highlights it properly, and even Emmet works. Magic.
  2. Running tests with the click of a button in the gutter1. In IntelliJ, it's very convenient, and I don't think I even had to set anything up to make it work. It just configured itself like magic. I haven't found running individual tests (let alone debugging them) a pleasant experience in any other editor.

I'm currently trying out Vim full-time, but IntelliJ has a lot going for it. Most editors have way too much going on, especially IntelliJ. That's what I like about Vim, I can keep it light and add just what I need.

But I'm always looking at others and seeing what fits me best. I own and like Nova, but it still feels immature and doesn't have a thriving extensions ecosystem. Fleet looks interesting, but have to wait to actually try it. VSCode has good extensions and is pretty fast. But I just don't like how it looks 🤷🏻‍♂️. Xcode is necessary when working on iOS or macOS apps, but it works well for what it does, and I've been quite impressed with the Xcode 14 betas.

So TL;DR, IntelliJ is kinda slow and doesn't look great, but has great features. Seems to be that the faster something is, the more fiddly it is. For the most part, IntelliJ just works out of the box.


  1. Xcode has this too, but in my day job, I mainly work with JavaScript. ↩︎

Giving up on notes apps

Over the years, I think I've tried pretty much every note taking app there is. I've tried using Apple Notes, Evernote, GoodNotes, Notability, Bear, Drafts, Agenda, OneNote, Notion, Nebo, Craft, Obsidian, and many others. They all have one thing in common—they don't stick with me. Putting notes into an app felt like throwing them away. The other day, it hit me why.

The past month or so, I've switched back to taking notes on paper. The other day, I needed to find a note again. I didn't know exactly what I was looking for, but I knew where I had written it. So I quickly flipped through my papers and found it. That's when I realized what the disconnect between me and digital notes is—space.

I don't know the proper terminology, but my brain works in a very spacial way. I'm not good at memorizing facts and figures, but I'm pretty good at remembering where I read those facts and figures. When I was a kid, my family would play this game where they would start reading a Calvin & Hobbes comic and see how long it take me to know what the rest of the strip was. I usually knew which one they were reading before they finished the first panel. I could do this because I could visualize where the comic was on the page, and then remember the drawings, and then the dialog.

When I write notes by hand, rather than remembering what I wrote, my brain seems to store x, y, z coordinates of the information instead. And this is what breaks for me when using note taking apps. Apps change size, causing information to reflow and change position. And, a big one for me, apps do not have physical depth. A book or notebook has depth to it. When I write something down in a notebook, that note is not going to move on me1. I can remember it's position relative to other things pretty well.

Just use search you say. Yeah. I probably should. But most of the time, I just don't know the specifics of what I'm looking for, or my notes are too inconsistent to make search that useful. I just kinda have a hard time searching for specific things. I'm much better at searching by browsing, if that makes any sense. Hard for me to explain, but feels like my brain works more in vague concepts than concrete ones, which makes it hard to know what to search for. But, those vague concepts are connected to those x, y, z coordinates, and that's how I find things. Like I don't know that I'm looking for a note about "ice cream" but am looking for "food that tastes good." Clear as mud?

Anyway, I get more value from having my notes in physical books than having them on my computer's filesystem. For the most part, I'm giving up on note taking apps. I'm done with trying to dump everything into them, linking, backlinking, organizing, and all that. I think these apps still have their place, and now that I think I know what's going on and how my brain works, I'm excited to explore more how these apps can fit into my life. But for the foreseeable future, most of my notes are going into my notebooks.


  1. Yes, you can move sheets of paper around. This also breaks my brain a bit. I prefer notebooks that don't have removable pages. ↩︎

Re: Demo to Demo Loop

I really enjoyed this post from Dave Rupert.

I like what Dave said:

Demos improve meetings. I’ve found “Demo First” meetings are life-giving because they start with something tangible, as opposed to discussing some hypothetical future scenario until time runs out and you have to schedule more meetings. Start meetings by showing progress. Better yet, a demo doesn’t always need to be a call or a meeting; thirty second screencasts are as good as gold.

When I'm working with our designer, I love to make quick little screen recordings and send them their way to make sure I'm on the right track. It's a good way to get out of the "hypothetical" realm.

But, not all my tasks work so closely with our designer. I need to be better at demoing what I'm working on as I go instead of putting my head down for a week or 2 and throwing it over to QA, hoping it's okay. Demos are great. They always spark conversation and ideas.

Changing the direction of a SwiftUI Color gradient

SwiftUI added a pretty cool new property to Color to easily create subtle gradients.

Rectangle().fill(.blue.gradient)

Now, all colors, even custom colors, come with a standard gradient. The problem is that the gradients all go top to bottom. I submitted feedback to allow changing the direction, but, turns out, there's already a way! You can use new ShapeStyle functions to create gradients using a color's standard gradient. For example:

Text("Hello, World!")
    .foregroundStyle(.linearGradient(Color.orange.gradient, startPoint: .leading, endPoint: .trailing))
    
Rectangle()
    .fill(.radialGradient(Color.cyan.gradient, center: .center, startRadius: 0, endRadius: 500))

I like the new standard gradients. They even work with custom colors, like Color(red: 91/255, green: 140/255, blue: 90/255).gradient. And I'm glad you can derive new gradients from them with ShapeStyle—adds a lot more possibilities.

WWDC 2022 Wishlist

Here's some things I'm hoping for this year at WWDC:

That's what came to mind to me in the last 5 minutes or so. Overall, I like using Apple platforms and I enjoy developing for them. I'm excited to see what will be announced at WWDC.