Weeknotes number 100
19th September 2021
This entry marks my 100th weeknotes, which I’ve managed to post once a week (plus or minus a few days) consistently since 13th September 2019.
I started writing weeknotes to add some accountability to the work I was doing during my JSK fellowship year at Stanford. The fellowship ended over a year ago but I’ve stuck to the habit—I’ve been finding it really helpful as a structured approach to thinking about my work every week, and it occasionally helps motivate me to get things done enough that I have something I can write about!
Datasette Desktop 0.2.0
My big achievement this week was Datasette Desktop 0.2.0 (and the 0.2.1 patch release that followed). I published annotated release notes for that a few days ago. I’m really pleased with the release—I think Datasette as a desktop application is going to significantly increase the impact of the project.
I also sent out an issue of the Datasette Newsletter promoting the new desktop application.
Datasette Desktop for Windows
I did a quick research spike to investigate the feasibility of publishing a Windows version of Datasette Desktop. To my surprise, I managed to get a working prototype going with just half a small amount of work:
So that was one heck of a lot easier than I expected... pic.twitter.com/BDa4gvkgnd
- Simon Willison (@simonw) September 15, 2021
Electron claims to solve cross-platform development and it seems to uphold that claim pretty well!
I’m still quite a bit of work away from having a release: I need to learn how to build and sign Windows installers. But this is a very promising first step.
json-flatten
I’ve started thinking about how I can enable Datasette Desktop users to configure plugins without having to hand-edit plugin configuration JSON (the current mechanism).
This made me take another look at a small library I released a couple of years ago, json-flatten, which turns a nested JSON object into a set of flat key/value pairs suitable for editing using an HTML form and then unflattens that data later on.
>>> import json_flatten
>>> json_flatten.flatten({"foo": {"bar": [1, True, None]}})
{'foo.bar.[0]$int': '1', 'foo.bar.[1]$bool': 'True', 'foo.bar.[2]$none': 'None'}
>>> json_flatten.unflatten(_)
{'foo': {'bar': [1, True, None]}}
It turns out a few people have been using the library, and had filed issues—I released version 0.2 with a couple of fixes.
TIL this week
Releases this week
-
datasette-statistics: 0.1.1—(2 releases total)—2021-09-16
SQL statistics functions for Datasette -
json-flatten: 0.2—2021-09-14
Python functions for flattening a JSON object to a single dictionary of pairs, and unflattening that dictionary back to a JSON object -
datasette-app: 0.2.1—(3 releases total)—2021-09-13
The Datasette macOS application -
datasette-app-support: 0.11.5—(18 releases total)—2021-09-13
Part of https://github.com/simonw/datasette-app -
datasette-write: 0.2—(3 releases total)—2021-09-11
Datasette plugin providing a UI for executing SQL writes against the database -
datasette-schema-versions: 0.2—(2 releases total)—2021-09-11
Datasette plugin that shows the schema version of every attached database -
datasette-import-table: 0.3—(6 releases total)—2021-09-08
Datasette plugin for importing tables from other Datasette instances
More recent articles
- Project: Civic Band - scraping and searching PDF meeting minutes from hundreds of municipalities - 16th November 2024
- Qwen2.5-Coder-32B is an LLM that can code well that runs on my Mac - 12th November 2024
- Visualizing local election results with Datasette, Observable and MapLibre GL - 9th November 2024