<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: jsk</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/jsk.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2020-04-22T23:09:10+00:00</updated><author><name>Simon Willison</name></author><entry><title>Weeknotes: Datasette 0.40, various projects, Dogsheep photos</title><link href="https://simonwillison.net/2020/Apr/22/weeknotes/#atom-tag" rel="alternate"/><published>2020-04-22T23:09:10+00:00</published><updated>2020-04-22T23:09:10+00:00</updated><id>https://simonwillison.net/2020/Apr/22/weeknotes/#atom-tag</id><summary type="html">
    &lt;p&gt;A new release of Datasette, two new projects and progress towards a Dogsheep photos solution.&lt;/p&gt;

&lt;h3 id="datasette-0-40"&gt;Datasette 0.40&lt;/h3&gt;

&lt;p&gt;I released Datasette 0.40 last night. Full &lt;a href="https://datasette.readthedocs.io/en/stable/changelog.html#v0-40"&gt;release notes are here&lt;/a&gt;, but the highlights of this key feature in this release is the ability to provide metadata in a &lt;code&gt;metadata.yaml&lt;/code&gt; file as an alternative to &lt;code&gt;metadata.json&lt;/code&gt;. This is particularly useful for embedded multi-line SQL queries: I've &lt;a href="https://github.com/simonw/museums/commit/81f7735bf8b3d8e98217bb5e2383d565cfa17799"&gt;upgraded simonw/museums&lt;/a&gt; and &lt;a href="https://github.com/simonw/til/commit/e55f0d3221a0838354c893507559d67727999bfd"&gt;simonw/til&lt;/a&gt; to take advantage of this, since they both use their metadata to define SQL queries that power their search pages and Atom feeds.&lt;/p&gt;

&lt;h3 id="jsk-fellows-directory"&gt;A JSK fellows directory and twitter-to-sqlite 0.21&lt;/h3&gt;

&lt;p&gt;My &lt;a href="https://jsk.stanford.edu/"&gt;JSK Fellowship&lt;/a&gt; at Stanford ends in a few months. JSK has extremely talented and influential &lt;a href="https://jsk.stanford.edu/fellows/alumni/"&gt;alumni&lt;/a&gt;, and one of the benefits of the fellowship is becoming part of that network afterwards.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://twitter.com/JSKstanford"&gt;@JSKStanford&lt;/a&gt; Twitter account maintains &lt;a href="https://twitter.com/JSKstanford/lists"&gt;lists&lt;/a&gt; of fellows on Twitter - journalists love Twitter! - so I decided to use my &lt;a href="https://github.com/dogsheep/twitter-to-sqlite"&gt;twitter-to-sqlite&lt;/a&gt; tool to build a Datasette-powered search engine of them.&lt;/p&gt;

&lt;p&gt;That search engine is now running at &lt;a href="https://jsk-fellows.datasettes.com/"&gt;jsk-fellows.datasettes.com&lt;/a&gt;. It's updated daily by &lt;a href="https://github.com/simonw/jsk-fellows-on-twitter/blob/26e0868fede4c26d0ae24faea20ee67d5ae13bab/.github/workflows/scheduled.yml"&gt;a GitHub Action&lt;/a&gt; to capture any bio changes or new list entrants.&lt;/p&gt;

&lt;p&gt;It's a neat example of taking advantage of SQLite views to build faceted search across a subset of data. A script &lt;a href="https://github.com/simonw/jsk-fellows-on-twitter/blob/26e0868fede4c26d0ae24faea20ee67d5ae13bab/create-view.sh"&gt;constructs the jsk_fellows view&lt;/a&gt; at build time, then &lt;a href="https://github.com/simonw/jsk-fellows-on-twitter/blob/26e0868fede4c26d0ae24faea20ee67d5ae13bab/metadata.json"&gt;metadata.json&lt;/a&gt; configures that view to &lt;a href="https://datasette.readthedocs.io/en/stable/full_text_search.html#configuring-full-text-search-for-a-table-or-view"&gt;run full-text search&lt;/a&gt; and facet by the derived fellowship column.&lt;/p&gt;

&lt;p&gt;I shipped &lt;a href="https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21"&gt;twitter-to-sqlite 0.21&lt;/a&gt; with a new &lt;code&gt;twitter-to-sqlite lists username&lt;/code&gt; command as part of this project.&lt;/p&gt;

&lt;h3 id="tils-datasette-template-sql"&gt;TILs and datasette-template-sql 1.0&lt;/h3&gt;

&lt;p&gt;I described &lt;a href="https://simonwillison.net/2020/Apr/20/self-rewriting-readme/"&gt;my new TILs project&lt;/a&gt; on Monday. I've published 15 so far - the format is working really well for me.&lt;/p&gt;

&lt;p&gt;Hacking on &lt;a href="https://github.com/simonw/tils"&gt;simonw/tils&lt;/a&gt; reminded me of a feature gap in my &lt;a href="https://github.com/simonw/datasette-template-sql"&gt;datasette-template-sql&lt;/a&gt; plugin: it didn't have a solution for safely escaping parameters in SQL queries, leading to nasty string concatenated SQL queries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/simonw/datasette-template-sql/releases/tag/1.0"&gt;datasette-template-sql 1.0&lt;/a&gt; fixes that issue, at the cost of backwards compatibility with previous releases. I'm using it for both &lt;a href="https://github.com/simonw/til/commit/f8642850c617c3e58327d0109a20d58490d6f098"&gt;til&lt;/a&gt; and &lt;a href="https://github.com/simonw/museums/commit/b08640bd4c69fa10a3bd3ea2cb291cfb764f5617"&gt;museums&lt;/a&gt; now.&lt;/p&gt;


&lt;h3 id="github-to-sqlite-2-0"&gt;github-to-sqlite 2.0&lt;/h3&gt;

&lt;p&gt;I released &lt;a href="https://github.com/dogsheep/github-to-sqlite/releases/tag/2.0"&gt;github-to-sqlite 2.0&lt;/a&gt; with a small backwards incompatible change to the database schema (hence the major version increment). It builds on 1.1 from a few days ago which added a new &lt;code&gt;github-to-sqlite contributors&lt;/code&gt; command for fetching statistics on contributors to repositories.&lt;/p&gt;

&lt;p&gt;More importantly, I improved the live demo running at &lt;a href="https://github-to-sqlite.dogsheep.net/"&gt;github-to-sqlite.dogsheep.net&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The demo now updates &lt;a href="https://github.com/dogsheep/github-to-sqlite/blob/master/.github/workflows/deploy-demo.yml"&gt;once a day&lt;/a&gt; using GitHub Actions and pulls in releases, commits, issues, issue comments and contributors for all of my &lt;a href="https://github.com/dogsheep"&gt;Dogsheep&lt;/a&gt; projects plus &lt;a href="https://github.com/simonw/datasette"&gt;datasette&lt;/a&gt; and &lt;a href="https://github.com/simonw/sqlite-utils"&gt;sqlite-utils&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This means I can browse and execute SQL queries across &lt;a href="https://github-to-sqlite.dogsheep.net/github/issues"&gt;929 issues&lt;/a&gt;, &lt;a href="https://github-to-sqlite.dogsheep.net/github/commits"&gt;1,505 commits&lt;/a&gt; and &lt;a href="https://github-to-sqlite.dogsheep.net/github/releases"&gt;132 releases&lt;/a&gt; across &lt;a href="https://github-to-sqlite.dogsheep.net/github/repos"&gt;14 repositories&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Want to see which of my projects have had the most releases? &lt;a href="https://github-to-sqlite.dogsheep.net/github/releases?_facet=repo"&gt;Facet releases by repo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I've also installed &lt;a href="https://simonwillison.net/2020/Mar/9/datasette-search-all/"&gt;the datasette-search-all plugin&lt;/a&gt; there, so you can search across all commits, releases, issues etc &lt;a href="https://github-to-sqlite.dogsheep.net/-/search?q=zeit+now"&gt;for "zeit now"&lt;/a&gt; for example.&lt;/p&gt;

&lt;p&gt;Bringing all of my different project data together in one place like this is really powerful.&lt;/p&gt;

&lt;p&gt;I think it's a great illustration of the Datasette/Dogsheep philosophy of pulling down a complete SQLite-powered copy of data from external services so you can query and join across your data without being limited to the functionality that those services provide through their own interfaces or APIs.&lt;/p&gt;

&lt;h3 id="photos-to-sqlite-alpha"&gt;photos-to-sqlite alpha&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://dogsheep.github.io/"&gt;Dogsheep&lt;/a&gt; is about bringing all of my interesting personal and social data into a single, private place.&lt;/p&gt;

&lt;p&gt;The biggest thing missing at the moment is photos. I want to be able to query my photos with SQL, and eventually combine them with tweets, checkins etc in a unified timeline.&lt;/p&gt;

&lt;p&gt;Last week I took a step towards this goal with &lt;a href="https://github.com/simonw/heic-to-jpeg"&gt;heic-to-jpeg&lt;/a&gt;, a proxy to let me display my iPhone's HEIC photos online.&lt;/p&gt;

&lt;p&gt;This week I started work on &lt;a href="https://github.com/dogsheep/photos-to-sqlite/"&gt;photos-to-sqlite&lt;/a&gt; - the set of tools which I'll use to turn my photos into something I can run queries again.&lt;/p&gt;

&lt;p&gt;So far I've mainly been figuring out how to get them into an S3 bucket that I control. Once configured, running &lt;code&gt;photos-to-sqlite upload photos.db ~/Pictures/Photos\ Library.photoslibrary/originals&lt;/code&gt; will start uploading every photo it can find in that directory to the S3 bucket.&lt;/p&gt;

&lt;p&gt;The filename it uses is the sha256 hash of the photo file contents, which I'm hoping will let me de-dupe photos from multiple sources in the future. It also writes basic metadata on the photos to that &lt;code&gt;photos.db&lt;/code&gt; SQLite database.&lt;/p&gt;

&lt;p&gt;This is going to be a big project. I'm investigating &lt;a href="https://github.com/RhetTbull/osxphotos"&gt;osxphotos&lt;/a&gt; to liberate the metadata from Apple Photos, and various Python libraries for extracting EXIF data from the files themselves.&lt;/p&gt;

&lt;p&gt;Once I've got that working, I can experiment with things like piping photos through &lt;a href="https://cloud.google.com/vision"&gt;Google Cloud Vision&lt;/a&gt; to label them based on their contents.&lt;/p&gt;

&lt;p&gt;This is all a very, &lt;em&gt;very&lt;/em&gt; early alpha at the moment, but I'm cautiously optimistic about progress so far.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/github"&gt;github&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/projects"&gt;projects&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/twitter"&gt;twitter&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsk"&gt;jsk&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dogsheep"&gt;dogsheep&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/weeknotes"&gt;weeknotes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sqlite-utils"&gt;sqlite-utils&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="github"/><category term="projects"/><category term="twitter"/><category term="datasette"/><category term="jsk"/><category term="dogsheep"/><category term="weeknotes"/><category term="sqlite-utils"/></entry><entry><title>Weeknotes: Improv at Stanford, planning Datasette Cloud</title><link href="https://simonwillison.net/2020/Jan/14/stanford-planning-datasette-cloud/#atom-tag" rel="alternate"/><published>2020-01-14T00:22:18+00:00</published><updated>2020-01-14T00:22:18+00:00</updated><id>https://simonwillison.net/2020/Jan/14/stanford-planning-datasette-cloud/#atom-tag</id><summary type="html">
    &lt;p&gt;Last week was the first week of the quarter at Stanford - which is called "shopping week" here because students are expected to try different classes to see which ones they are going to stick with.&lt;/p&gt;

&lt;p&gt;I've settled on three classes this quarter: &lt;a href="https://explorecourses.stanford.edu/search?q=taps+103"&gt;Beginning Improvising&lt;/a&gt;, &lt;a href="https://explorecourses.stanford.edu/search?q=DESINST%20240"&gt;Designing Machine Learning&lt;/a&gt; and &lt;a href="https://explorecourses.stanford.edu/search?q=STRAMGT%20353"&gt;Entrepreneurship: Formation of New Ventures&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beginning Improvising&lt;/strong&gt; is the Stanford improv theater course. It's a big time commitment: three two-hours sessions a week for ten weeks is nearly 60 hours of improv!&lt;/p&gt;

&lt;p&gt;It's already proving to be really interesting though: it turns out the course is a thinly disguised applied psychology course.&lt;/p&gt;

&lt;p&gt;Improv is about creating a creative space for other people to shine. The applications to professional teamwork are obvious and fascinating to me. I'll probably write more about this as the course continues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Designing Machine Learning&lt;/strong&gt; is a class at the Stanford d.School taught by &lt;a href="https://twitter.com/michellercarney"&gt;Michelle Carney&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/emilykathryn/"&gt;Emily Callaghan&lt;/a&gt;. It focuses on multidisciplinary applications of machine learning, mixing together students from many different disciplines around Stanford.&lt;/p&gt;

&lt;p&gt;I took a &lt;a href="https://simonwillison.net/2018/Oct/29/transfer-learning/"&gt;fast.ai deep learning course&lt;/a&gt; last year which gave me a basic understanding of the code size of neural networks, but I'm much more interestind in figuring out applications so this seems like a much more interesting option than a more code-focused course.&lt;/p&gt;

&lt;p&gt;The class started out building some initial models using &lt;a href="https://teachablemachine.withgoogle.com/"&gt;Google's Teachable Machine tool&lt;/a&gt;, which is &lt;em&gt;fascinating&lt;/em&gt;. It lets you train transfer learning models for image, audio and posture recognition entirely in your browser - no data is transferred to Google's servers at all. You can then export those models and use them with a variety of different libraries - I've got them to work with both JavaScript and Python already.&lt;/p&gt;

&lt;p&gt;I'm taking &lt;strong&gt;Entrepreneurship: Formation of New Ventures&lt;/strong&gt; because of the rave reviews I heard from other JSK fellows who took it last quarter. It's a classic case-study business school class: each session features a guest speaker who is a successful entrepreneur, and the class discusses their case for the first two thirds of the section while they listen in - then finds out how well the discussion matched to what actually happened.&lt;/p&gt;

&lt;h3&gt;Planning Datasette Cloud&lt;/h3&gt;

&lt;p&gt;Shopping week kept me pretty busy so I've not done much actual development over the past week, but I have started planning out and researching my next major project, which I'm currently calling &lt;em&gt;Datasette Cloud&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Datasette Cloud will be an invite-only hosted SaaS version of &lt;a href="https://datasette.readthedocs.io/"&gt;Datasette&lt;/a&gt;. It's designed to help get news organizations on board with the software without having to talk them through figuring out their own hosting, so I can help them solve real problems and learn more about how the ecosystem should evolve to support them.&lt;/p&gt;

&lt;p&gt;I'd love to be able to run this on serverless hosting platforms like Google Cloud Run or Heroku, but sadly those tools aren't an option to me due to a key problem: I'm trying to build a &lt;em&gt;stateful&lt;/em&gt; service (SQLite databases need to live on a local disk) in 2020.&lt;/p&gt;

&lt;p&gt;I posed this challenge &lt;a href="https://twitter.com/simonw/status/1182077259839991808"&gt;on Twitter&lt;/a&gt; back in October:&lt;/p&gt;

&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;What&amp;#39;s the easiest way of running a stateful web application these days?&lt;br /&gt;&lt;br /&gt;Stateful as in it supports a process which can accept web requests and is allowed to write to a durable disk&lt;br /&gt;&lt;br /&gt;So not Heroku/Zeit Now/Cloud Run etc&lt;/p&gt;- Simon Willison (@simonw) &lt;a href="https://twitter.com/simonw/status/1182077259839991808?ref_src=twsrc%5Etfw"&gt;October 9, 2019&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;I've been exploring my options since then, and I think I've settled on a decidedly 2010-era way of doing this: I'm going to run my own instances! So I've been exploring hosting Datasette on both AWS Lightsail and Digital Ocean Droplets over the past few months.&lt;/p&gt;

&lt;p&gt;My current plan is to have each Datasette Cloud account run as a Datasette instance in its own Docker container, primarily to ensure filesystem isolation: different accounts must not be able to see each other's database files.&lt;/p&gt;

&lt;p&gt;I started &lt;a href="https://twitter.com/simonw/status/1216468790508015616"&gt;another discussion about this&lt;/a&gt; on Twitter and had several recommendations for &lt;a href="https://docs.traefik.io/"&gt;Traefik&lt;/a&gt; as a load balancer for assigning hostnames to different Docker containers, which is exactly what I need to do.&lt;/p&gt;

&lt;p&gt;So this afternoon I made my way through Digital Ocean's outstanding tutorial &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-use-traefik-as-a-reverse-proxy-for-docker-containers-on-ubuntu-18-04"&gt;How To Use Traefik as a Reverse Proxy for Docker Containers on Ubuntu 18.04&lt;/a&gt; and I think I've convinced myself that this is a smart way forward.&lt;/p&gt;

&lt;p&gt;So, mostly a research week but I've got a solid plan for my next steps.&lt;/p&gt;

&lt;h3&gt;This week's Niche Museums&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/90"&gt;Jelly Belly Factory&lt;/a&gt; in Fairfield, CA&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/91"&gt;Bevolo Gas Light Museum&lt;/a&gt; in New Orleans, LA&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/92"&gt;Museo de las Misiones de Baja California&lt;/a&gt; in Loreto&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/93"&gt;Fort Point&lt;/a&gt; in San Francisco, CA&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/94"&gt;Donner Memorial State Park Visitor Center&lt;/a&gt; in Nevada County, CA&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/95"&gt;Anja Community Reserve&lt;/a&gt; in Madagascar&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/96"&gt;Palace of Fine Arts&lt;/a&gt; in San Francisco, CA&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;I also finally got around to &lt;a href="https://www.niche-museums.com/map"&gt;implementing a map&lt;/a&gt;.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/stanford"&gt;stanford&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/docker"&gt;docker&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsk"&gt;jsk&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/weeknotes"&gt;weeknotes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette-cloud"&gt;datasette-cloud&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/digitalocean"&gt;digitalocean&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="stanford"/><category term="docker"/><category term="jsk"/><category term="weeknotes"/><category term="datasette-cloud"/><category term="digitalocean"/></entry><entry><title>Building tools to bring data-driven reporting to more newsrooms</title><link href="https://simonwillison.net/2019/Dec/20/data-driven-reporting-more-newsrooms/#atom-tag" rel="alternate"/><published>2019-12-20T11:17:41+00:00</published><updated>2019-12-20T11:17:41+00:00</updated><id>https://simonwillison.net/2019/Dec/20/data-driven-reporting-more-newsrooms/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://medium.com/jsk-class-of-2020/building-tools-to-bring-data-driven-reporting-to-more-newsrooms-4520a0c9b3f2"&gt;Building tools to bring data-driven reporting to more newsrooms&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I wrote about my fellowship project so far and my goals for the next few months for the JSK Medium publication. My next priority: an invite-only hosted version for newsrooms so that figuring out how to install and manage the software isn’t the biggest barrier to entry.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/data-journalism"&gt;data-journalism&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsk"&gt;jsk&lt;/a&gt;&lt;/p&gt;



</summary><category term="data-journalism"/><category term="datasette"/><category term="jsk"/></entry><entry><title>Better presentations through storytelling and STAR moments</title><link href="https://simonwillison.net/2019/Dec/10/better-presentations/#atom-tag" rel="alternate"/><published>2019-12-10T00:00:42+00:00</published><updated>2019-12-10T00:00:42+00:00</updated><id>https://simonwillison.net/2019/Dec/10/better-presentations/#atom-tag</id><summary type="html">
    &lt;p&gt;Last week I completed &lt;a href="https://explorecourses.stanford.edu/search?view=catalog&amp;amp;filter-coursestatus-Active=on&amp;amp;q=GSBGEN%20315:%20Strategic%20Communication&amp;amp;academicYear=20192020"&gt;GSBGEN 315: Strategic Communication&lt;/a&gt; at the Stanford Graduate School of Business.&lt;/p&gt;

&lt;p&gt;The course has a stellar, well deserved reputation. It's principally about public speaking, and I gained a huge amount from it despite having over fifteen years of experience speaking at conferences.&lt;/p&gt;

&lt;p&gt;Some of the things that really stood out for me (partially in the form of catchy acronyms):&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Every talk should start with an AIM: Audience, Intent, Message. Who are the audience for the talk? What do you intend to achieve by giving the presentation? With those two things in mind, you can construct the message - the actual content of the talk.&lt;/li&gt;&lt;li&gt;Try to include at least one STAR moment - Something They'll Always Remember. This can be a gimmick, a repeated theme, a well-selected video or audio clip. Something to help the talk stand out.&lt;/li&gt;&lt;li&gt;Presentations are most interesting if they are structured with contrasts. These can be emotional high and low points, or content that illustrates what &lt;em&gt;is&lt;/em&gt; compared to what &lt;em&gt;could be&lt;/em&gt;. &lt;a href="https://www.duarte.com/presentation-skills-resources/creating-moments-of-impact-using-sparklines-for-strategic-conversations/"&gt;Sparklines&lt;/a&gt; are a tool that can be used to think about this structure.&lt;/li&gt;&lt;li&gt;The human brain is incredibly attuned to stories. If you can find an excuse to tell a story, no matter how thin that excuse is, take it.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;That last point about stories is where things get really interesting. We reviewed the classic &lt;a href="https://en.wikipedia.org/wiki/Hero%27s_journey"&gt;hero's journey&lt;/a&gt; story structure... but with a twist.&lt;/p&gt;

&lt;p&gt;When giving a talk, position your &lt;em&gt;audience&lt;/em&gt; as the hero. They start in position of comfort and safety. Your job is to call them to adventure - guide them towards a dangerous and unknown realm, encourage them to take on new challenges, learn new things and finish the adventure in a new, advanced state of mind.&lt;/p&gt;

&lt;p&gt;You're not the hero - you're more the mentor who they meet along the way.&lt;/p&gt;

&lt;p&gt;One of the course texts was &lt;a href="https://www.amazon.com/Resonate-Present-Stories-Transform-Audiences/dp/0470632011"&gt;Nancy Duarte's Resonate&lt;/a&gt;, which explains this model of presenting in great detail. It's a really clever and surprising way of thinking about a presentation.&lt;/p&gt;

&lt;h3 id="jsk-backstory"&gt;My JSK backstory&lt;/h3&gt;

&lt;p&gt;The &lt;em&gt;backstory&lt;/em&gt; is a core tradition of the &lt;a href="https://jsk.stanford.edu/"&gt;JSK fellowship&lt;/a&gt; I'm participating in this year at Stanford. Each week, one of &lt;a href="https://jsk.stanford.edu/fellows/"&gt;the 19 fellows&lt;/a&gt; tells the story of their career and how they came to journalism.&lt;/p&gt;

&lt;p&gt;Last Wednesday was my turn. The timing couldn't have been more fortunate, as I got to apply the lessons I'd learned from Strategic Communications in putting together my presentation.&lt;/p&gt;

&lt;p&gt;I think it was one of the best pieces of public speaking I'd ever done. Backstories include details that aren't necessarily intended for a public audience so I won't be sharing much of it here, but mindfully constructing an emotional sparkline and seeking out STAR moments worked out really well for me.&lt;/p&gt;

&lt;p&gt;Since GSBGEN 315 is only available to Stanford GSB students, I'll throw in a strong recommendation for reading &lt;em&gt;Resonate&lt;/em&gt; as an alternative if this has sparked your interest.&lt;/p&gt;

&lt;h3&gt;Also this week&lt;/h3&gt;

&lt;p&gt;Preparing my backstory took up much of my time this week. I ended up losing &lt;a href="https://simonwillison.net/2019/Oct/28/niche-museums-kepler/#Streaks_56"&gt;my streaks&lt;/a&gt; against both email checking and Datasette contributions, but I'm hoping to pick those back up again now that the presentation is out of the way.&lt;/p&gt;

&lt;p&gt;I posted the following museums to &lt;a href="https://www.niche-museums.com/"&gt;Niche Museums&lt;/a&gt; - one of which, the Centennial Light, we got to see on Saturday:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/54"&gt;Lynton and Lynmouth Cliff Railway&lt;/a&gt; in Devon&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/55"&gt;Clouds Hill&lt;/a&gt; in Dorset&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/56"&gt;Pioneertown&lt;/a&gt; in California&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/57"&gt;Teddy Bear Kingdom&lt;/a&gt; in Huis Ten Bosch near Nagasaki&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/58"&gt;The Centennial Light&lt;/a&gt; in Livermore&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/59"&gt;Dejima&lt;/a&gt; in Nagasaki&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.niche-museums.com/browse/museums/60"&gt;Museum of Dartmoor Life&lt;/a&gt; in Devon&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;I'm getting concerned about how many not-quite-finished Datasette features I have outstanding now (I started &lt;a href="https://github.com/simonw/datasette/issues/648"&gt;exploring another one&lt;/a&gt; just the other day). I'm going to try to resist the temptation to pick up any more until I've shipped at least some of the &lt;a href="https://github.com/simonw/datasette/issues?q=is%3Aissue+is%3Aopen+label%3Afeature"&gt;47 currently open feature tickets&lt;/a&gt;.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/speaking"&gt;speaking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsk"&gt;jsk&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/weeknotes"&gt;weeknotes&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="speaking"/><category term="datasette"/><category term="jsk"/><category term="weeknotes"/></entry><entry><title>Weeknotes: first week of Stanford classes</title><link href="https://simonwillison.net/2019/Sep/30/weeknotes-first-week-stanford/#atom-tag" rel="alternate"/><published>2019-09-30T16:28:12+00:00</published><updated>2019-09-30T16:28:12+00:00</updated><id>https://simonwillison.net/2019/Sep/30/weeknotes-first-week-stanford/#atom-tag</id><summary type="html">
    &lt;p&gt;One of the benefits of &lt;a href="https://simonwillison.net/2019/Sep/10/jsk-fellowship/"&gt;the JSK fellowship&lt;/a&gt; is that I can take classes and lectures at Stanford, on a somewhat ad-hoc basis (I don’t take exams or earn credits).&lt;/p&gt;
&lt;p&gt;With thousands of courses to chose from, figuring out how best to take advantage of this isn’t at all easy - especially since I want to spend a big portion of my time focusing on my fellowship project.&lt;/p&gt;
&lt;p&gt;This week was the first week of classes, which Stanford calls “shopping week” - because students are encouraged to try out lots of different things and literally walk out half way through a lecture if they decide it’s not for them! Feels really rude to me, but apparently that’s how it works here.&lt;/p&gt;
&lt;p&gt;For this term I’ve settled on four classes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Strategic Communications&lt;/strong&gt;, at the Stanford Graduate School of Business. This is an extremely highly regarded course on public speaking and effective written communication. As you might expect from a class on public speaking the lectures themselves have been case studies in how to communicate well. I’ve given dozens of conference talks and I’m already learning a huge amount from this that will help me perform better in the future.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Classical Guitar&lt;/strong&gt;. I’m taking this with three other fellows. It turns out my cheap acoustic guitar (bought on an impulse a couple of years ago from Amazon Prime Now) isn’t the correct instrument for this class (&lt;a href="https://en.wikipedia.org/wiki/Classical_guitar"&gt;Classical Guitars&lt;/a&gt; are nylon stringed and a different shape) but the instructor thinks it will be fine for the moment. Great opportunity to do something musical!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Biostatistics&lt;/strong&gt;. I want to firm up my fundamental knowledge of statistics, and I figured learning it from the biology department would be much more interesting than the corresponding maths or computer science classes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Media Innovation&lt;/strong&gt;. This is a lunchtime series of guest lectures from different professionals in different parts of the media industry. As such it doesn’t have much homework (wow, Stanford courses have a lot of homework) which makes it a good fit for my schedule, and the variety of speakers look to be really informative.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Combined with the JSK afternoon sessions on Monday, Wednesday and Friday I’ll be on campus every weekday, which will hopefully help me build a schedule that incorporates plenty of useful conversations with people about my project, plus actual time to get some code written.&lt;/p&gt;
&lt;p&gt;… what with all the shopping for classes, I wrote almost no code at all this week!&lt;/p&gt;
&lt;p&gt;I did some experimentation with &lt;a href="http://www.structlog.org/"&gt;structlog&lt;/a&gt; - I have an unfinished module which can write structlog entries to a SQLite database using &lt;a href="https://sqlite-utils.readthedocs.io/"&gt;sqlite-utils&lt;/a&gt; (&lt;a href="https://gist.github.com/simonw/3498fadbc9d8aea3967bdb4cddbf48d8"&gt;here’s a Gist&lt;/a&gt;) and I’ve been messing around with Python threads in a Jupyter notebook as part of ongoing research into &lt;a href="https://github.com/simonw/datasette/issues/569"&gt;smarter connection pooling&lt;/a&gt; for Datasette but aside from that I’ve been concentrating on figuring out Stanford.&lt;/p&gt;

&lt;h3&gt;Books&lt;/h3&gt;

&lt;p&gt;Stanford classes come with all sorts of required reading, but I’ve also made some progress on &lt;a href="https://abookapart.com/products/just-enough-research"&gt;Just Enough Research&lt;/a&gt; by Erika Hall (&lt;a href="https://simonwillison.net/2019/Sep/20/weeknotes-design-thinking-genome-sqlite/"&gt;mentioned last week&lt;/a&gt;). I’m about half way through and it’s fantastic - really fun to read and packed with useful tips on getting the most out of user interviews and associated techniques. Hopefully I’ll get to start putting it into practice next week!&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/music"&gt;music&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/reading"&gt;reading&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/speaking"&gt;speaking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/stanford"&gt;stanford&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsk"&gt;jsk&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/weeknotes"&gt;weeknotes&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="music"/><category term="reading"/><category term="speaking"/><category term="stanford"/><category term="jsk"/><category term="weeknotes"/></entry><entry><title>Weeknotes: Design thinking for journalists, genome-to-sqlite, datasette-atom</title><link href="https://simonwillison.net/2019/Sep/20/weeknotes-design-thinking-genome-sqlite/#atom-tag" rel="alternate"/><published>2019-09-20T20:13:01+00:00</published><updated>2019-09-20T20:13:01+00:00</updated><id>https://simonwillison.net/2019/Sep/20/weeknotes-design-thinking-genome-sqlite/#atom-tag</id><summary type="html">
    &lt;p&gt;I haven’t had much time for code this week: we’ve had a full five day workshop at JSK with &lt;a href="https://twitter.com/tranosaurus"&gt;Tran Ha&lt;/a&gt; (a JSK alumni) learning how to apply &lt;a href="https://www.ideou.com/pages/design-thinking"&gt;Design Thinking&lt;/a&gt; to our fellowship projects and generally to challenges facing journalism.&lt;/p&gt;
&lt;p&gt;I’ve used aspects of design thinking in building software products, but I’d never really thought about how it could be applied outside of digital product design. It’s been really interesting - especially seeing the other fellows (who, unlike me, are generally not planning to build software during their fellowship) start to apply it to a much wider and more interesting range of problems.&lt;/p&gt;
&lt;p&gt;I’ve been commuting in to Stanford on the Caltrain, which did give me a bit of time to work on some code.&lt;/p&gt;
&lt;h3 id="genome-to-sqlite"&gt;genome-to-sqlite&lt;/h3&gt;
&lt;p&gt;I’m continuing to build out a &lt;a href="https://github.com/dogsheep"&gt;family of tools&lt;/a&gt; for personal analytics, where my principle goal is to reclaim the data that various internet companies have collected about me and pull it into a local SQLite database so I can analyze, visualize and generally and have fun with it.&lt;/p&gt;
&lt;p&gt;A few years ago I shared my DNA with &lt;a href="https://www.23andme.com/"&gt;23andMe&lt;/a&gt;. I don’t think I’d make the decision to do that today: it’s incredibly personal data, and the horror stories about people making unpleasant discoveries about their family trees keep on building. But since I’ve done it, I decided to see if I could extract out some data…&lt;/p&gt;
&lt;p&gt;… and it turns out they let you &lt;a href="https://you.23andme.com/tools/data/download/"&gt;download your entire genome&lt;/a&gt;! You can export it as a zipped up TSV file - mine decompresses to 15MB of data (which feels a little small - I know little about genetics, but I’m presuming that’s because the genome they record and share is just the interesting known genetic markers, not the entire DNA sequence - UPDATE: &lt;a href="https://customercare.23andme.com/hc/en-us/articles/202904600-Difference-Between-DNA-Genotyping-Sequencing"&gt;confirmed&lt;/a&gt;, thanks &lt;a href="https://twitter.com/laurencerowe/status/1175151249567576064"&gt;@laurencerowe&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;So I wrote a quick utility, &lt;a href="https://github.com/dogsheep/genome-to-sqlite"&gt;genome-to-sqlite&lt;/a&gt;, which loads the TSV file (directly from the zip or a file you’ve already extracted) and writes it to a simple SQLite table. Load it into Datasette and you can even facet by chromosome, which is exciting!&lt;/p&gt;
&lt;p&gt;This is where my knowledge runs out. I’m confident someone with more insight than me could construct some interesting SQL queries against this - maybe one that determines if you are &lt;a href="https://www.snpedia.com/index.php/Rs1805007"&gt;likely to have red hair&lt;/a&gt;? - so I’m hoping someone will step in and provide a few examples.&lt;/p&gt;
&lt;p&gt;I filed &lt;a href="https://github.com/dogsheep/genome-to-sqlite/issues/1"&gt;a help wanted issue&lt;/a&gt; on GitHub. I also put &lt;a href="https://twitter.com/simonw/status/1174712746157326336"&gt;a request out on Twitter&lt;/a&gt; for an UPDATE statement that could turn me into a dinosaur.&lt;/p&gt;
&lt;h3&gt;datasette-atom&lt;/h3&gt;
&lt;p&gt;This is very much a work-in-progress right now: &lt;a href="https://github.com/simonw/datasette-atom"&gt;datasette-atom&lt;/a&gt; will be a Datasette plugin that adds &lt;code&gt;.atom&lt;/code&gt; as an output format (using the &lt;a href="https://datasette.readthedocs.io/en/stable/plugins.html#register-output-renderer-datasette"&gt;register_output_renderer plugin hook&lt;/a&gt; contributed &lt;a href="https://github.com/simonw/datasette/pull/441"&gt;by Russ Garrett&lt;/a&gt; a few months ago.&lt;/p&gt;
&lt;p&gt;The aim is to allow people to subscribe to the output of a query in their feed reader (and potentially through that via email and other mechanisms) - particularly important for databases which are being updated over time.&lt;/p&gt;
&lt;p&gt;It’s a slightly tricky plugin to design because valid Atom feed entries require a globally unique ID, a title and an “updated” date - and not all SQL queries produce obvious candidates for these values. As such, I’m going to &lt;a href="https://github.com/simonw/datasette-atom/issues/2"&gt;have the plugin prompt the user&lt;/a&gt; for those fields and then persist them in the feed URL that you subscribe to.&lt;/p&gt;
&lt;p&gt;This also means you won’t be able to generate an Atom feed for a query that doesn’t return at least one datetime column. I think I’m OK with that.&lt;/p&gt;
&lt;h3&gt;github-to-sqlite&lt;/h3&gt;
&lt;p&gt;I &lt;a href="https://github.com/dogsheep/github-to-sqlite/releases/tag/0.4"&gt;released one new feature&lt;/a&gt; for &lt;a href="https://github.com/dogsheep/github-to-sqlite"&gt;github-to-sqlite&lt;/a&gt; this week: the &lt;code&gt;github-to-sqlite repos github.db&lt;/code&gt; command, which populates a database table of all of the repositories available to the authenticated user. Or use &lt;code&gt;github-to-sqlite repos github.db dogsheep&lt;/code&gt; to pull the repos owned by a specific user or organization.&lt;/p&gt;
&lt;p&gt;The command configures a SQLite full-text search index against the repo titles and descriptions, so if you have a lot of GitHub repos (I somehow have nearly 300!) you can search through them and use Datasette to facet them against different properties.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;github-to-sqlite&lt;/code&gt; currently has two other useful subcommands: &lt;code&gt;starred&lt;/code&gt; fetches details of every repository a user has starred, and &lt;code&gt;issues&lt;/code&gt; pulls details of the issues (but sadly not yet their comment threads) attached to a repository.&lt;/p&gt;
&lt;h3&gt;Books&lt;/h3&gt;
&lt;p&gt;I’m trying to spend more time reading books - so I’m going to start including book stuff in my weeknotes in the hope of keeping myself on track.&lt;/p&gt;
&lt;p&gt;I acquired two new books this week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://abookapart.com/products/just-enough-research"&gt;Just Enough Research&lt;/a&gt; by Erika Hall (recommended by Tom Coates and Tran Ha), because I need to spent the next few months interviewing as many journalists (and other project stakeholders) as possible to ensure I am solving the right problems for them.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://producingoss.com/"&gt;Producing Open Source Software&lt;/a&gt; by Karl Fogel, because my &lt;a href="https://simonwillison.net/2019/Sep/10/jsk-fellowship/"&gt;fellowship goal&lt;/a&gt; is to build a thriving open source ecosystem around tooling for data journalism and this book looks like it covers a lot of the topics I need to really do a good job of that.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next step: actually read them! Hopefully I’ll have some notes to share in next week’s update.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/genetics"&gt;genetics&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/projects"&gt;projects&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/reading"&gt;reading&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sqlite"&gt;sqlite&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsk"&gt;jsk&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/weeknotes"&gt;weeknotes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design-thinking"&gt;design-thinking&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="genetics"/><category term="projects"/><category term="reading"/><category term="sqlite"/><category term="datasette"/><category term="jsk"/><category term="weeknotes"/><category term="design-thinking"/></entry><entry><title>My JSK Fellowship: Building an open source ecosystem of tools for data journalism</title><link href="https://simonwillison.net/2019/Sep/10/jsk-fellowship/#atom-tag" rel="alternate"/><published>2019-09-10T23:29:12+00:00</published><updated>2019-09-10T23:29:12+00:00</updated><id>https://simonwillison.net/2019/Sep/10/jsk-fellowship/#atom-tag</id><summary type="html">
    &lt;p&gt;I started a new chapter of my career last week: I began a year long fellowship with the &lt;a href="https://jsk.stanford.edu/"&gt;John S. Knight Journalism Fellowships program&lt;/a&gt; at Stanford.&lt;/p&gt;
&lt;p&gt;I’m going to spend the year thinking about and working on tools for data journalism. More details below, but the short version is that I want to help make the kind of data reporting we’re seeing from well funded publications like the New York Times, the Washington Post and the &lt;a href="https://github.com/datadesk"&gt;LA Times&lt;/a&gt; more accessible to smaller publications that don’t have the budget for full-time software engineers.&lt;/p&gt;
&lt;p&gt;I’ve worked with newspapers a few times in the past: I helped create &lt;a href="https://simonwillison.net/2005/Jul/17/django/"&gt;what would later become Django&lt;/a&gt; at the Lawrence Journal-World fifteen years ago, and I spent two years working on data journalism projects &lt;a href="https://simonwillison.net/tags/guardian/"&gt;at the Guardian&lt;/a&gt; in London before being sucked into the tech startup world. My &lt;a href="https://datasette.readthedocs.io/"&gt;Datasette&lt;/a&gt; project was inspired by the challenges I saw at the Guardian, and I’m hoping to evolve it (and its &lt;a href="https://datasette.readthedocs.io/en/stable/ecosystem.html"&gt;accompanying ecosystem&lt;/a&gt;) in as useful a way as possible.&lt;/p&gt;
&lt;p&gt;This fellowship is a chance for me to get fully embedded back in that world. I could not be more excited about it!&lt;/p&gt;
&lt;p&gt;I’m at the &lt;a href="https://ona19.journalists.org"&gt;Online News Association conference&lt;/a&gt; in New Orleans this week: if you’d like to meet up for a chat please &lt;a href="https://twitter.com/simonw"&gt;drop me a line on Twitter&lt;/a&gt; or via email (&lt;code&gt;swillison&lt;/code&gt; is my Gmail).&lt;/p&gt;
&lt;p&gt;Here’s the part of my fellowship application (written back in January) which describes what I’m hoping to do. The program is extremely flexible and there is plenty of opportunity for me to change my focus if something more useful emerges from my research, but this provides a good indication of where my current thinking lies.&lt;/p&gt;
&lt;h3&gt;&lt;a id="What_is_your_fellowship_proposal_14"&gt;&lt;/a&gt;What is your fellowship proposal?&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Think of this as your title or headline for your proposal. (25 words or less)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How might we grow an open source ecosystem of tools to help data journalists collect, analyze and publish the data underlying their stories?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Now, tell us more about your proposal. Why is it important to the challenges facing journalism and journalists today? How might it create meaningful change or advance the work of journalists? (600 words or less)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Data journalism is a crucial discipline for discovering and explaining true stories about the modern world - but effective data-driven reporting still requires tools and skills that are still not widely available outside of large, well funded news organizations.&lt;/p&gt;
&lt;p&gt;Making these techniques readily available to smaller, local publications can help them punch above their weight, producing more impactful stories that overcome the challenges posed by their constrained resources.&lt;/p&gt;
&lt;p&gt;Tools that work for smaller publications can work for larger publications as well. Reducing the time and money needed to produce great data journalism raises all boats and enables journalists to re-invest their improved productivity in ever more ambitious reporting projects.&lt;/p&gt;
&lt;p&gt;Academic journals are moving towards publishing both the code and data that underlies their papers, encouraging reproducibility and better sharing of the underlying techniques. I want to encourage the same culture for data journalism, in the hope that “showing your working” can help fight misinformation and improve reader’s trust in the stories that are derived from the data.&lt;/p&gt;
&lt;p&gt;I would like to use a JSK fellowship to build an ecosystem of data journalism tools that make data-driven reporting as productive and reproducible as possible, while opening it up to a much wider group of journalists.&lt;/p&gt;
&lt;p&gt;At the core of my proposal is my Datasette open source project. I’ve been running this as a side-project for a year with some success: newspapers that have used it include the Baltimore Sun, who used it for their public salary records project: &lt;a href="https://salaries.news.baltimoresun.com/"&gt;https://salaries.news.baltimoresun.com/&lt;/a&gt;. By dedicating myself to the project full-time I anticipate being able to greatly accelerate the pace of development and my ability to spend time teaching news organizations how to take advantage of it.&lt;/p&gt;
&lt;p&gt;More importantly, the JSK fellowship would give me high quality access to journalism students, professors and professionals. A large portion of my fellowship would be spent talking to a wide pool of potential users and learning exactly what people need from the project.&lt;/p&gt;
&lt;p&gt;I do not intend to be the only developer behind Datasette: I plan to deliberately grow the pool of contributors, both to the Datasette core project but also in developing tools and plugins that enhance the project’s capabilities. The great thing about a plugin ecosystem is that it removes the need for a gatekeeper: anyone can build and release a plugin independent of Datasette core, which both lowers the barriers to entry and dramatically increases the rate at which new functionality becomes available to all Datasette users.&lt;/p&gt;
&lt;p&gt;My goal for the fellowship is to encourage the growth of open source tools that can be used by data journalists to increase the impact of their work. My experience at the Guardian lead me to Datasette as a promising avenue for this, but in talking to practitioners and students I hope to find other opportunities for tools that can help. My experience as a startup founder, R&amp;amp;D software engineer and an open source contributor put me in an excellent position to help create these tools in partnership with the wider open source community.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/data-journalism"&gt;data-journalism&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/journalism"&gt;journalism&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/careers"&gt;careers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsk"&gt;jsk&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/personal-news"&gt;personal-news&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="data-journalism"/><category term="journalism"/><category term="open-source"/><category term="careers"/><category term="datasette"/><category term="jsk"/><category term="personal-news"/></entry><entry><title>JSK Journalism Fellowships names Class of 2019-2020 (and I'm in it!)</title><link href="https://simonwillison.net/2019/May/1/jsk-fellowship/#atom-tag" rel="alternate"/><published>2019-05-01T16:43:54+00:00</published><updated>2019-05-01T16:43:54+00:00</updated><id>https://simonwillison.net/2019/May/1/jsk-fellowship/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://jsk.stanford.edu/news-notes/2019/jsk-journalism-fellowships-names-class-of-2019-2020/"&gt;JSK Journalism Fellowships names Class of 2019-2020 (and I&amp;#x27;m in it!)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
In personal news... I’ve been accepted for a ten month journalism fellowship at Stanford (starting September)! My work there will involve “Improving the impact of investigative stories by expanding the open-source ecosystem of tools that allows journalists to share the underlying data”.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/simonw/status/1123624552867565569"&gt;@simonw&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/data-journalism"&gt;data-journalism&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/journalism"&gt;journalism&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/stanford"&gt;stanford&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsk"&gt;jsk&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/personal-news"&gt;personal-news&lt;/a&gt;&lt;/p&gt;



</summary><category term="data-journalism"/><category term="journalism"/><category term="stanford"/><category term="datasette"/><category term="jsk"/><category term="personal-news"/></entry></feed>