HackerTrans
TopNewTrendsCommentsPastAskShowJobs

georgestagg

no profile record

comments

georgestagg
·3 months ago·discuss
In principle, yes, that’s the idea! However I will say we have focused mainly on the grammar and using DuckDB for reading from local files for this alpha release, so I expect there may be some bugs around connecting to remote databases still to iron out!
georgestagg
·3 months ago·discuss
Currently our only writer module is for vegalite, the output is a vegalite spec (JSON). Tools already exist to render this kind of output to an interactive chart, SVG, PNG, etc. with their own controls for sizing and the like.

Our ggsql Jupyter kernel can use these vegalite specifications to output charts in a Quarto document, for example.

In the future we plan to create a new high performance writer module from scratch, avoiding this intermediate vegalite step, at which point we’ll have better answers for your questions!
georgestagg
·3 months ago·discuss
ggsql has the concept of a "reader", which can be thought of as the way ggsql interfaces with a SQL database. It handles the connection to the database and generating the correct dialect of SQL for that database.

As an alpha, we support just a few readers today: duckdb, sqlite, and an experimental ODBC reader. We have largely been focusing development mainly around driving duckdb with local files, though duckdb has extensions to talk to some other types of database.

The idea is that ggsql takes your visualisation query, and then generates a selection of SQL queries to be executed on the database. It sends these queries using the reader, then builds the resulting visualisation with the returned data. That is how we can plot a histogram from very many rows of data, the statistics required to produce a histogram are converted into SQL queries, and only a few points are returned to us to draw bars of the correct height.

By default ggsql will connect to an in-memory duckDB database. If you are using the CLI, you can use the `--reader` argument to connect to files on-disk or an ODBC URI.

If you use Positron, you can do this a little easier through its dedicated "Connections" pane, and the ggsql Jupyter kernel has a magic SQL comment that can be issued to set up a particular reader. I plan to expand a little more on using ggsql with these external tools in the docs soon.
georgestagg
·7 months ago·discuss
This is great! Thanks for sharing!
georgestagg
·7 months ago·discuss
You can, yes:

https://shinylive.io/r/examples/
georgestagg
·9 months ago·discuss
If you’re at all interested in segmented displays Posy’s YouTube video about them is pure gold: https://youtu.be/RTB5XhjbgZA
georgestagg
·10 months ago·discuss
For those who haven’t seen it before, Jones Forth is a wonderful implementation written in literate programming style.

It’s well worth reading through, even if you don’t know any assembly.

[1] https://github.com/nornagon/jonesforth/blob/master/jonesfort...