Drop #455 (2024-04-22): Monday Morning Grab Bag

Duckling; neko; tv

Hacking on this new Observable Plot “HTML” Mark, needing to crank through final candidate interviews at work, and assuming it would be “easy” to get Cat 6 Ethernet run from the basement to the top floor (Narrator: it was most certainly not) all DoS’d the Friday and Bonus Drops.

But, we’ve got a good one on tap today, and I will be publishing some single-focus Knowledge Drops to make up for the missing ones.

TL;DR

(This is an AI-generated summary of today’s Drop.)

(Perplexity is dropping URLs, again.)

  • Duckling: A Rust-based application for data enthusiasts, Duckling allows users to view and query data from various sources like CSVs, Parquet, and SQL databases through a GUI. It’s built on DuckDB and Tauri, and while not as feature-rich as Harlequin, it’s in active development and recommended for data management.
  • neko: Neko is a remote desktop tool that uses Docker Compose to let users connect to remote systems via WebRTC and a browser. It supports multi-user access and is ideal for private web browsing, collaborative projects, and virtual gatherings. It’s recommended for use on systems with decent RAM for better performance.
  • tv: The tv utility, short for “tidy viewer,” is a Rust-based command-line tool for pretty-printing CSV files in the terminal. It understands NA values, which is crucial for data analysis, and offers various configuration options. It’s praised for providing quick and visually appealing data previews.

Duckling

I don’t know what it is about Rust that inspires folks to elegantly re-solve solved problems (such as viewing and querying data), but I’m sure glad it does, since that has given birth to Duckling, and all us data wonks are much better off because of it.

If you have any data in CSVs, Parquet, Postgres, MySQL/MariaDB (or MySQL protocol-compatible databases), Clickhouse, or SQLite, then you need to download Duckling now. With it, you can view and query data in any/all of those formats/locations with a well-executed GUI and good ol’ SQL. This Rust Tauri-based app uses DuckDB under the hood (which explains the name) and supports adding multiple data sources; or, you can just use the query editor to do anything you would do with DuckDB.

The section header shows Ducking connected to a local folder of Parquet files and a remote Timescale database (via the Postgres connector).

You can also just view/page through data/files, look back through query history, set favorite sources, export data (with configurable export options), and customize the user interface (at least a little bit; I kind of wish I could make the font size a tag larger).

While it’s not as fully featured as Harlequin Duckling is in very active development, and will 100% be a default install item on any new workstation of mine.

neko

(NOTE: this is not the cat-cursor-chasing thing we looked at last October.)

There are numerous “remote desktop” solutions out there, where you can expose an application over some remote “framebuffer” protocol and interact with it on your local desktop (Citrix hosted apps come to mind as a good “enterprise” example).

Neko (GH) lets you do this on your own via straightforward Docker Compose configurations. You’re, quite literally, one wget and docker-compose up -d away from being able to connect to a remote system over WebRTC (via your browser) and start using any browser, or any Linux GUI app. The section header shows me running the default Neko Firefox container (after changing the port and passwords in the YAML file). This means you could use some remote VPS box to hit up websites without revealing your local IP address, which can be the start of a more private web viewing experience. In fact, Neko was created with security and privacy in mind.

IT also provides support for concurrent multi-user access. This feature can be used to provide a shared browsing experience without the hassle of managing distinct configurations. It simplifies collaboration on projects, accessing communal resources, or just casual browsing with friends and family, streamlining the process of sharing a browser interface.

Beyond collaborative browsing, Neko can also be used for virtual gatherings, such as watch parties or interactive presentations.

I highly recommend running it on a box that has some decent RAM, as the remote interactions in browsers are far faster that way.

It’s a super neat tool that can also be handy if you’re stuck on a workstation that has been fairly locked down in terms of what you can install/use.

tv

We’ll close with another Rust-based data-centric tool.

The tv utility stands for “tidy viewer”, and it’s sole mission in silicon life is to pretty-print CSV files to the terminal.

The section header has an example usage of it, and there are many configuration options (via TOML! — as opposed to icky YAML).

A great feature of tv is that it actually groks NA! This is very important in data crunching land, yet many (most?) other utilities like this do not go out of their way to deal with them properly.

Check out all the CLI options, and start getting nice-looking, quick data previews within seconds of downloading and installing the tool.

FIN

Remember, you can follow and interact with the full text of The Daily Drop’s free posts on Mastodon via @dailydrop.hrbrmstr.dev@dailydrop.hrbrmstr.dev ☮️

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.