2023s
Rule #1 is you a) get up early, b) ride stuff early and c) take a break in the middle of the day while (many) folks are at the parks.
Roz is the unsung hero of the Monsters, Inc. franchise. Impeccable delivery, no notes.
One of our favorites is the Animation Academy. It’s a short entertainment, wherein a cast member teaches you to draw a Disney/Pixar character in ten minutes or so. I’m not at all good at sketching, so I think it speaks volumes to the quality of the cast members that you can, maybe, tell that I’m drawing Mickey Mouse here.
Rauno Freiburg is building attention to design details
Sitting down and just thinking hard does not magically produce valuable discoveries either. The essence of the word “interaction” implies a relationship between a human and an environment. In my experience, great revelations surface from making something — filling your headspace with a problem — and then going for a synthesising daydreaming walk to stir the pot.
👍🏻 This is the excellence in interactions and attention to detail. Moreover, a restatement of the Hickey/Feynman methods for problem-solving. (Is there a restatement of said methods that doesn’t sound lovely?)
Work side-by-side; the more you can see, the more you can think
Wisen Tanasa, Stop flipping around, put them side-by-side:
This constant flipping is a self-inflicted cognitive load that reduces our productivity. Pay attention to what’s happening in your mind when you flip things around. What was the CSS property I was trying to modify? Flip… flip… What was that JSON structure look like again? Flip… flip… Is it similar to Figma now? Flip… flip… When you catch yourself doing this, stop. Put them side-by-side.
Many of the tasks we have as software engineer is crunching information from one medium to another. What I’d like you to try instead is to pause and make all the information you need to execute your task visible on your screen.
Using splits in my editor (vim, then RubyMine), notes app (Obsidian), and even window manager (Rectangle Pro) are crucial to how I work. Single window, uni-tasking, “focus modes” were coolr in their day. But, most work lends itself to some manner of multi-window, conceptual layout. As Wisen points out, that could be test and production code, designs and code, code and browser/simulator, designs and documentation, or a document and video chat.
I wish I could get even more conceptual layout. I usually do fine with 2-3 vertical splits (i.e. three full-height windows) when I’m coding. But, I look with envy upon designers in Figma/Sketch/etc. when they consider several iterations upon one screen or lay designs out on their canvas to match the spatial/workflow relationships in the actual product. Concepts like Natto, PureData, and Obsidian’s canvas leave me optimistic that in the future I’ll find myself organizing modules and functions however I want, regardless of linear text in source code files on disk.
Magic (AI) is what we don’t (yet) understand
It reflects a sound understanding of the nature of AI — as an uncredited and formless modifier of other technologies. One whose presence is marked by familiar behaviors having slightly magical effects.
– Venkatesh Rao, Magic, Mundanity and Deep Protocolization
The whole magic & AI thing. The most 2023 of vibes!
Yet, it remains to be seen to what extent AI will yield entirely new media, modalities, and consumption levels or if it will merely modify technology we’re already familiar with.
Is generative AI the iPhone (entirely new media/modality/consumption), the iPhone camera (displaces and exceeds existing categories), or the ability to scan QR codes with your camera to reduce transactional friction (a game changer for some that quickly fades into the background)?
When finished isn’t done
The work is done, the post is published, the code has shipped, the boxes are all checked.
And yet, it remains in my head. The bit of code I’d like to revisit, an edge I couldn’t round off, a paragraph that doesn’t fit like I want it to, a workflow we didn’t improve upon, a conversation about trade-offs that went sideways…
The work is more than the work, more than an end. It’s emotions and memories. A new way of thinking, experience and wisdom newly integrated with what I’ve done before. The start of something new, with this finished work as the prologue that sets the stage for the next story.
Often, things are only getting started when I check that box.
We call it perfectionism when we hold the work back to make one last tweak, another small improvement. Perfectionism is pouring myself into one checkbox for weeks or months at the expense of all the other things I want to do. It’s not so much seeking perfect, but an inability to let go and get started in earnest.
To the contrary, every day I’m more convinced that perfect emerges from checking that first box. Putting the work out there, starting the next checkbox (of several dozen), accumulating and shaping something more perfect.
Everything finished is the start of something else.
Charles Chamberlain
An “independent researcher & developer focused on making new interfaces to create with”. He’s developing some neat low road (in the How Buildings Learn sense) ideas at the intersection of dynamic languages and web media.
red pear and walnut:
apricot: a structure editor for ui:
Birch:
Watch the demos!
Shortcuts for scripting API integration
If you want to do straight-forward API scripting, Shortcuts + Actions might do the trick.
Patterns in play:
- Fetch URL (Shortcuts built-in)
- Parse document as feed/JSON/XML
- (not sure if this is built into Shortcuts or you need Actions to cover all three)
- Pull out “the stuff” element/attribute (e.g.
items
,articles
,results
, etc.) (Shortcuts built-in) - Do something on each item.
- YMMV depending on support in whatever app you’re integrating with.
See also: How I Sync Readwise Highlights to Bear.
Use Swift Playgrounds to sketch ideas
Before spinning up a whole Swift project, use Swift Playgrounds to sketch out ideas.
In Xcode (macOS):
File -> New -> Playground
- Choose “Single View” (I’m not sure what impact picking macOS or iOS has)
- Choose a name and location to save your playground
UIKit is the iOS default for a single-view playground. Storybooks are the default for macOS. To replace those with a SwiftUI component:
import SwiftUI
import PlaygroundSupport
struct ContentView: View {
var body: some View {
VStack {
Button("Tap me!") {
}
}
}
}
let contentView = ContentView()
PlaygroundPage.current.setLiveView(contentView)
🤔 I haven’t yet come upon a good heuristic for:
- when to spin up a project for tinkering vs. a playground
- to what extent one could use TDD in playgrounds
- how to import files from a playground inside a project and use project resources
In the moment
Is pessimism about the past, present, or future? If it says, “we can’t get there from here, based on where we’ve been”, it neglects the present and maybe the future.
Does optimism favor the future over the past or present? A smart optimist might use the past as a trend-line to the future, and seek to make the most of the present.