Hamilton Ulmer
@hamilton.bsky.social
3.1K followers 340 following 310 posts
👁️📈👁️ design & eng @ MotherDuck. UI, statistics, databases. Ex Rill Data, Mozilla
Posts Media Videos Starter Packs
Pinned
hamilton.bsky.social
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
hamilton.bsky.social
I jokingly call it "vibescaling"
hamilton.bsky.social
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.
hamilton.bsky.social
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?
hamilton.bsky.social
My Data Council talk on Instant SQL is up on YouTube!

Instant SQL is MotherDuck's new realtime ad hoc querying and data debugging mode.

I go into details, but the talk itself is really about designing tools that both require mastery AND enable joyful flow.

www.youtube.com/watch?v=GSeB...
Instant Preview Mode Real Time Feedback to Make SQL Data Exploration Fly
YouTube video by Data Council
www.youtube.com
hamilton.bsky.social
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!
hamilton.bsky.social
Possibly! We do have a plan to open source our UI, but not a firm timeline. Once that's done, Instant SQL will be freely available (w/ source) for anyone to integrate into their editor.
hamilton.bsky.social
If you want to work on data-intensive UIs combining the best of databases and dataviz, my team is hiring. Send me a message in chat and let's connect. I'll have a JD up once I recover!
hamilton.bsky.social
I just gave a talk at Data Council about Instant SQL and will be sharing that once it's available. It's a really fun talk. Here's the vibe
hamilton.bsky.social
Instant SQL works by using samples / subsets of data. Of course, at any point, you can run the actual query against your whole data set. Think of it as a complement to running your query, not an alternative.
hamilton.bsky.social
Instant SQL is great for humans, but it also works GREAT with AI tools. Any suggestion made by an LLM is instantly previewed as you go, giving you a lot more confidence when working with SQL and AI.
hamilton.bsky.social
Because we have access to the whole pipeline of the query, Instant SQL can dissect results, making it easy to debug complicated formulas and regular expressions

It's like we've turned your query into a big excel function that returns a list of expression trees on every keystroke
hamilton.bsky.social
on every keystroke, Instant SQL parses the query, analyzes it, and caches just enough to render a preview of the SELECT statement where your cursor is. This enables inspection of CTEs and subqueries. Make a change, then go downstream, and see that change instantly reflected.
hamilton.bsky.social
Instant SQL follows Bret Victor's 2 rules from "Inventing on Principle": when you make a change in your software, there can't be a delay and there can't be anything hidden

Using DuckDB's internals, we've built a realtime query-as-you-type system. But it does a lot more, too:
hamilton.bsky.social
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
hamilton.bsky.social
hah thanks! This is a one-way door for me; I can't go back to constantly mashing the run query button for every small change
hamilton.bsky.social
Instant Preview Mode has been achieved internally
hamilton.bsky.social
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
hamilton.bsky.social
great feedback, thanks!
hamilton.bsky.social
now at the top of HN!
hamilton.bsky.social
this UI is V1, & a big project to hoist the MotherDuck UI into a new context. I can't wait to add more features!

If you've talked to me about how you use the CLI in the last month, please know you've made an impact on our roadmap!

Also, Column Explorer w/ max threads = 🌠
hamilton.bsky.social
In DuckDB land, it's common for databases to have paths. Rather than making icons for each type, we opted to separate memory vs. on-disk & add a location icon on the right. (This serves as a copy button too!)

We'll add custom icons for external dbs later (e.g. sqlite)