RVBBIT dev blog
- v0.2 'Snowshoe Hare', Demo Site, Excel Formulas, UI Madness...
Big UI changes (hopefully for the better) - right-click now spawns a menu on the canvas and launches to help the user make context decisions (like after a drag event). Drag & drop system is now 100% based on user rules (see defs/leaves.edn). Have a few servers up for
- v0.1.2, Docker, HareZero #1
Latest version has a Docker image! We've come a long way. I also released HareZero #1 - which is going to be a series of long form videos where I actually build something from scratch while explaining / discussing. Given that this was the first ever episode I went over a
- Alpha 0.1.0 is out!
Check out the release on the GitHub page! Still working on a legit documentation site with live examples and documenting the entire "Clover" DSL as well as a number of other things that aren't quite obvious. I also did a number of quick and dirty videos going over some
- AI co-pilot data board example & RVBBIT Alpha releasing end of this week
Haven't updated in a bit, lots of catch up on - but I've been focused on getting this thing out the door. So I'll just cut to the chase - almost time for the initial Alpha release. Way more content after that. But first, a cool video of using
- March Update: Everything is a subscription, Flow shadows, Canvas map pulling
Quick March development round up on some of the bigger, "demoable" things. I'm running slightly behind my planned release schedule, but I think it will be worth it - much more was accomplished than I had in my roadmap when I made the January video. Hope to pull it all
- The flow "abstraction ladder" - more than ETL
Lots of effort in the last couple of months has been on "flow" endeavors, and possibly put me behind schedule a little bit. I think it's an investment in the whole system though - and I think you'll agree. Why are flows good and what can you do with
- February: Flow layout, Echoes, Flow push-UI, Conditional Pathing, Map Pulling, Flow Views
Been hard at work and haven't been posting - but I wanted to give a quick round up of some of the things that I've been working on. As always, forgive the Twitter videos, but it's my "go to" for stream of consciousness dev stuff these days. So
- Flow Based Mullet UI
Business in the front, party in the back? Yes. Mostly. Creating and running flows is great. The visuals, the feedback loop, the almost lincoln-log-esque sense of operating something in real, tangible space. Something that can be sorely missing for a builder. But when that's all said and
- Icons, Minimize, Pin, Tabs as Blocks... Data Desktops?
Just a few more tools for your Data UI toolkit. All customizable, of course. Publishing a number of posts today of things that got finished in the last week or so since the announcement video. First up, some OS-like utility in your data boards - again, always optional, just another
- "Hey Lights" Demo, Voice Params, Flow Phrase Triggers?
A bit of an impromptu video for you today, just a few days after the "big" RVBBIT Winter Preview video - which has been very well received, so I thank you all for that. I was up late working on a basic Hue Lights board that I want to use for
- "Calliope" Rabbit AI (Easter Egg)
You might have seen a curious little outro bit to the RVBBIT Winter Preview release date announcement video if you hung in there long enough. I spoke about it a little bit on Twitter, which I'll include below. Still very much in the testing and experimenting phase, but it'
- CanvaSQL is now RVBBIT, coming in March!
Appreciate all of you following my experiments, links, and micro dev blogging here - but it's almost time. If it wasn't apparent already, this video should give you a pretty good idea of what I'm going for with RVBBIT (just say 'rabbit'). Let's go! (fun little "post
- Advanced Flows.. Event Chains, Board Subscriptions 👀
Flow integrations continue... I was going to save "ETL stuff" for after release as an add-on, until I realized that I can instead make it a hackable visual blueprints play that can read & write to any part of the sys (actions, scripts, mutate client UI, cross-client, sub-flows.
- Adding "flows" into the mix...
You knew it was coming eventually... I've been chasing this idea for several years of a "unified" prezi/logic interface (all flow-based), while very cool, it isn't always practical for day to day data work AND prod dashboarding. Better? A solid prezi/exploration layer with an underlying
- Rabbit "Kits" (mods, without the horse armor)
User-writable plugins that allow extra functionality. "Sidecar operations" for deeper analysis, generating special viz types, internal functionality, etc. Making integrations easy (or easier) for the end users... Rabbit "Mods". 🐇 Shipping w outliers, forecasting & more. Plug-ins that allow users to run "sidecar" operations on their data, viz, board - & get
- Vibes: more dynamic theming..
Yeah, I'm full of teasers lately. But hey, presentation is a big part of people consuming your data content. Having more levers to pull (even if you never use them) is never a bad thing IMHO. Build a bunch of stuff & forget "what depends on what"? Viewer or Builder:
- Data-driven theme params
Formatting nerds unite. 👀 I'm a dashboard formatting nerd, so being able to parametrize *everything* is great. Diff filter values get diff color schemes? Yes. Change the viz? Change the tab? Yes. Yes. Spent a couple hours building this test board & am pleased with how putting stuff together "feels". pic.
- Storyboards & custom views? Nah. Snapshots!
Take a snapshot of the state of all parameters, sizes, locations - and then swap between them like dashboard tabs. When you app runs on "everything is automatically a parameter", this can get very interesting. Storyboards & custom views? Nah. Snapshots! Content untouched but all params, filters, coords, sizes, selected tabs, & viz
- Viz *inside* table grids? Yes.
That about explains it. ;) Dragging a compatible already-made viz on to a grid and watch it "weave by dimension X"... Experimenting a bit. Taking an *existing* viz block & "weaving it" across a compatible dimension *inside* a separate data table (regardless of data source)... Hmmm... 👀 pic.twitter.com/nZiD1GM8aR — Ryan
- "Code tables" as general purpose escape hatches...
Write some backend Clojure code - the system interprets it as a SQL table, use it as a SQL table. Filter, join, aggregate, etc. Better yet, save the "code table" as a view -and in production your end-users can use it and never even know it's running code. Disclaimer:
- "Visual History" for views and queries
Also works as a great place to put (100% optional) GPT recommendations, if that is something you're into. (but like I said, not a prerequisite - even the base viz recommendation system is 100% not AI enabled and just locally calculated on your machine) Just a quick dev-log consisting
- Drill Down / Drill "Through"
Quick Twitter video of it in action. Things are getting interesting! Drill-down / drill "through". Any aggregate can be reduced to it's base group-bys, even hopping down though nested sub-queries if need be. The spawning summary grid becomes a "super filter" for the drilldown grid. Filter on
- "Pivot-by/this" 🐇
Explicit pivoting should be a first class feature in all SQL tools, right up there with group-by. Check out these quick video demos below. 0:00 /0:55 1× More visual SQL tools need explicit "pivot-by-this" functionality. Pivot is always dope. Bonus points: Pivoting by *another SQL
- Still Cooking - New viz reco flow & "easy" field swap for recos
It's been a minute - good news though, I am now working on this project full-time. Excited to get it in people's SQL loving hands. But to tide you over before some more substantial posts, here is a couple of really cool things I have been working on
- Teaser - "Quick Filter" Shortcut
Filtering a table or query-set by one of it's resulting fields is super common and while I have a (wonderful) system in place for this - I wanted to make an alternate "quick(er)" method of doing it. Here is a GIF of the "manual way" (which is still
- Teaser - Column re-ordering and re-sizing
I don't know about you, but I can't stand data apps where the result-set allows re-sizing by dragging the edges of the columns over. I know it seems intuitive, but too often it just results in frustration - either due to the drag target being too small,
- Teaser - Sub-query "Lineage Lines"
In a tool that's all about creating sub-aggregations & re-aggregations (or slicing and dicing) of tables - it can be pretty important to understand how all the queries are related (if at all). While not something you'd have on in a production dashboard - I added some toggleable "lineage
- Teaser - Testing how themes are working...
"User Params as Theme System" is actually working out well, I think people will enjoy being able to pull themes out of previously saved dashboards and swapping them around. ;) Check out the very short Twitter video at the bottom to see how they are applied... * Browse the existing dashboards * Find
- Dev Update: Scrubbable User Params = Themes
Quick update on a "Theme System" - I decided that it made more sense to have a scrubbable user parameter system and use that for theme parts instead. Not everyone likes my color palettes so its a win/win. "Scrubbable User Param System w/ Theme Hooks" > "A Theme System" (damn, that'
- Teaser - Visual Browsing of Recommendations
User-configured recos can now be browsed in a much more fluid (READ: way less pain in the ass) way. It feels good and it reasonably fast (it is making lots of DB calls to preview with real data, after all). Visual "recommendation" browsing in CanvasQL, my "canvas based" dashboarding
- Teaser - Drag and Drop CSV Import and JOINS
2 short videos where I import 2 CSV files, join them together - and create a simple map from the resulting table... ...and here is using the viz recommendations to draw a US county map based on the joined table. 2/2 pic.twitter.com/qYiqqWCU4n — Ryan Robitaille (@ryrobes) January 26,
- Pre-Alpha Walkthrough
Had some hiccups (trying to render 300k points in vega-lite, oops) - but other than that this is a pretty nice little walk through of basic features and concepts...
- Teaser - Conditional Formatting Dynamic Color Heatmaps
Added a pseudo "value" to be used in conditional formatting - select any colorbrewer scale and direction - or use the default "temperature" scale. It'll even respect conditional formatting logic - meaning if you don't want it to apply to all the rows - like, let's say you only want to
- Teaser - "Compound" Block Suggestions
Quick video of how the suggestion system allows for pretty much arbitrary block views to be recommended and allows the users query data to be plugged in. It feels almost magical to be able to quickly place simple (and not so simple) viz on the canvas while browsing. Like I'
- Teaser - Conditional Formatting (via SQL chunk logic)
Something else I always wanted in a tool like this - easy (and flexible) conditional formatting (full row or specific fields) for my grids. Drag a selected value into a "highlight target" to create a quick (SQL based) rule and then customize it as needed (via code / scrubbers). pic.twitter.com/
- Teaser - Drag in "Viz Shapes"
Define potential "Viz Shapes" in the backend config files - those will be compared to the live queries that you are slinging back and forth on the canvas. Matching ones will be draggable as pre-configured blocks that run downstream from the source query block. Not designed to be perfect - but
- Teaser - SQL sub-block lineage
More late-night canvas SQL fun. Not just UI candy. In a system about reactive SQL sub-queries - the "lineage" of a query/block and how it relates to the other blocks is huge. Upstream/downstream, how filters cascade, etc. A neat take on the old pivot table paradigm IMHO.
- Teaser - Viz Layer Combining
Viz layers. Building things interactively using the canvas as a workspace surface to separate / examine / combine items. Instead of "query mode, then viz mode, then filter mode, then dashboard mode"... Why can't we do all at the same time?#sql #dataviz #clojure #nomodes pic.twitter.com/WJA41mYTdP — Ryan Robitaille
- Data Communication is all about unpacking and repacking
A concept I can't seem shake off. I posted a ~2min teaser video to twitter last night about a new feature wherein: * I created a query peeking at an entire table (a select-*) to see what we had * Then created 2 separate queries on the canvas pulled from that
- Teaser - Value Scrubbers
Value scrubbers are done(ish)! The {unnamed} project is shaping up to be a solid UX for data views / pivots in a fluid & creative way - but in a way that retains "low level flexibility" (i.e. retaining full vega-lite, hiccup, re-com, & sql "hackability").#sql #clojure #dataviz pic.twitter.