Hamilton Ulmer

@hamilton.bsky.social

👁️📈👁️ design & eng @ MotherDuck. UI, statistics, databases. Ex Rill Data, Mozilla

made a little pirate map spinner for something I'm working on. Just plain SVG + React just an Euler spiral as f(t), superposition of waves for speed & cup modeling w/ addl waveshaping for other paper quirks Surprisingly performant on old computers!

finally revamped my website ~ same fonts, same overall design, but more about where I currently am and what I've done. & more diagrams & videos First time ever I'm talking about my previous music career on this platform, so I added a page about that too. after all, why not

Dives already support near-instant crossfiltering on millions/billions of rows. We're now working on making it a native part of the experience with some new primitives low latency makes whole new classes of interactions possible!

⌯⌲ Introducing Flights, a new agent-native data pipeline tool Author in python / SQL, trigger in SQL + MCP + on a schedule. I use it for data pipelines, but also for agent workflows, classical ML tasks, screenshotting Dives and posting to Slack, you name it. Give it a spin in Motherduck!

I've been reflecting on this post. If people are actually getting 10x or 100x gains, this indicates that per-developer productivity gains from AI don't convert to revenue very well. So either people are working on the "wrong thing" (very likely) or the gains are more modest (also likely)

Bild

Happy National Paper Airplane Day! I made a little parametric mini-app to figure out good angles for a paper airplane hero. Another fun 3d svg modeling task. Favorite parts are the particle occlusion and ribbon trail I promise this content will make sense soon

I've been using Claude artifacts to create parametric systems for icon development. While models are only sort-of good at drawing svg, they're obviously quite good at getting basic math right. Especially helpful for getting 16x16 footprints to feel nice usually I can do the rest

iterating on a fun little isometric paper airplane loading hero for a new feature I'm excited about. Thinking about how to mitigate the ink trap problem while keeping the simplicity of three shapes

This break, I've been building a constraint-based implementation of a new time series axis component. The goal is to make it nice & comprehensible for any size / time range It's a nice pattern: React part of it is simple, the TS part is complex / well-tested, and the dev UI uses the test cases

Continuing the semantic code-folding design exploration. Instead of showing the typical "..." button, it shows an LLM summary of what's folded. Like "calculate 30-day revenue" for a collapsed CTE. Not sure if this would be useful yet!

I like the “retvrn to terminals” discourse around UIs, but imo it misses why old terminal programs were (or were not) good. So it’s a boring aesthetic argument and not a functional one based on how humans consume information.

only took me two years before I needed to do my own safety triangle implementation this works great for our upcoming "quick look" editor features aside from function docs, what other quick look features would you like in the DuckDB UI?

I'm going to be talking online about the "why" and "how" of Instant SQL, our new ad hoc querying experience that enables keystroke-fast previews of results & deeper introspection into your query's data flow. Weds. May 21st, 9:30am PDT link in reply!

So thrilled to announce we've released Instant SQL in both the MotherDuck and DuckDB UIs! It's a new interaction pattern for writing SQL queries that provides realtime result previews and deep query inspection & debugging. Bye bye run button 👋 Truly, literally only possible with DuckDB

Migrating over my DuckDB AST path generation code to our UI. The way I've done gut-checks on the grammar is to use this CodeMirror semantic highlighting extension I wrote We can implement a very long tail of unique features with the path generator, including instant preview mode

The prod push begins ... starting with my TS-based re-parse of the DuckDB grammar to get the end positions of AST nodes & all clauses of select & set operation nodes. This tedious work enables a long tail of hot UI magic. Can't wait to deprecate it once we have the PEG parser!

Bild

First pass at a new DuckDB extension that generates svg time series IN the db (below screenshot copied into figma) and how, using M4 should be trivial! And then setting elem.innerHTML = result even easier One step from effortlessly throwing a thousand low-cost small multiples into any UI

Bild

Working in a DAW, one will loop over a small isolated set of tracks and work out EQ, reverb. etc. The fast feedback loop makes it easy to dial into the right sound, and then you can unmute the rest of your tracks for context. Why doesn't this exact pattern exist for UI tooling?