52f9e9c8aa31

Add tests with actual data
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Tue, 11 Aug 2020 23:09:18 -0400
parents 88008e9aeac3
children b8a38e34e840
branches/tags (none)
files test/data/github/sjl-repos.json test/data/github/sjl.json test/data/reddit/r-common_lisp.json test/tests.lisp

Changes

--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/data/github/sjl-repos.json	Tue Aug 11 23:09:18 2020 -0400
@@ -0,0 +1,2924 @@
+[
+  {
+    "id": 62332915,
+    "node_id": "MDEwOlJlcG9zaXRvcnk2MjMzMjkxNQ==",
+    "name": ".plan",
+    "full_name": "sjl/.plan",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/.plan",
+    "description": "Git mirror of https://hg.stevelosh.com/.plan/",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/.plan",
+    "forks_url": "https://api.github.com/repos/sjl/.plan/forks",
+    "keys_url": "https://api.github.com/repos/sjl/.plan/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/.plan/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/.plan/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/.plan/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/.plan/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/.plan/events",
+    "assignees_url": "https://api.github.com/repos/sjl/.plan/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/.plan/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/.plan/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/.plan/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/.plan/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/.plan/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/.plan/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/.plan/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/.plan/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/.plan/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/.plan/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/.plan/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/.plan/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/.plan/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/.plan/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/.plan/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/.plan/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/.plan/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/.plan/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/.plan/merges",
+    "archive_url": "https://api.github.com/repos/sjl/.plan/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/.plan/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/.plan/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/.plan/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/.plan/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/.plan/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/.plan/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/.plan/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/.plan/deployments",
+    "created_at": "2016-06-30T18:16:21Z",
+    "updated_at": "2020-07-29T01:29:20Z",
+    "pushed_at": "2020-07-29T01:29:18Z",
+    "git_url": "git://github.com/sjl/.plan.git",
+    "ssh_url": "git@github.com:sjl/.plan.git",
+    "clone_url": "https://github.com/sjl/.plan.git",
+    "svn_url": "https://github.com/sjl/.plan",
+    "homepage": "",
+    "size": 686,
+    "stargazers_count": 3,
+    "watchers_count": 3,
+    "language": null,
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 3,
+    "default_branch": "master"
+  },
+  {
+    "id": 187937383,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxODc5MzczODM=",
+    "name": "1am",
+    "full_name": "sjl/1am",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/1am",
+    "description": "A minimal testing framework for Common Lisp.",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/1am",
+    "forks_url": "https://api.github.com/repos/sjl/1am/forks",
+    "keys_url": "https://api.github.com/repos/sjl/1am/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/1am/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/1am/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/1am/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/1am/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/1am/events",
+    "assignees_url": "https://api.github.com/repos/sjl/1am/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/1am/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/1am/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/1am/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/1am/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/1am/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/1am/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/1am/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/1am/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/1am/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/1am/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/1am/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/1am/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/1am/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/1am/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/1am/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/1am/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/1am/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/1am/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/1am/merges",
+    "archive_url": "https://api.github.com/repos/sjl/1am/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/1am/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/1am/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/1am/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/1am/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/1am/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/1am/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/1am/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/1am/deployments",
+    "created_at": "2019-05-22T01:07:24Z",
+    "updated_at": "2019-05-22T01:20:27Z",
+    "pushed_at": "2019-05-22T01:20:26Z",
+    "git_url": "git://github.com/sjl/1am.git",
+    "ssh_url": "git@github.com:sjl/1am.git",
+    "clone_url": "https://github.com/sjl/1am.git",
+    "svn_url": "https://github.com/sjl/1am",
+    "homepage": null,
+    "size": 5,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": "Common Lisp",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 128150344,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMjgxNTAzNDQ=",
+    "name": "3d-vectors",
+    "full_name": "sjl/3d-vectors",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/3d-vectors",
+    "description": "A library for 2D, 3D, and 4D vectors in CL.",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/3d-vectors",
+    "forks_url": "https://api.github.com/repos/sjl/3d-vectors/forks",
+    "keys_url": "https://api.github.com/repos/sjl/3d-vectors/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/3d-vectors/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/3d-vectors/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/3d-vectors/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/3d-vectors/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/3d-vectors/events",
+    "assignees_url": "https://api.github.com/repos/sjl/3d-vectors/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/3d-vectors/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/3d-vectors/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/3d-vectors/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/3d-vectors/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/3d-vectors/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/3d-vectors/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/3d-vectors/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/3d-vectors/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/3d-vectors/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/3d-vectors/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/3d-vectors/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/3d-vectors/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/3d-vectors/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/3d-vectors/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/3d-vectors/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/3d-vectors/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/3d-vectors/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/3d-vectors/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/3d-vectors/merges",
+    "archive_url": "https://api.github.com/repos/sjl/3d-vectors/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/3d-vectors/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/3d-vectors/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/3d-vectors/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/3d-vectors/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/3d-vectors/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/3d-vectors/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/3d-vectors/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/3d-vectors/deployments",
+    "created_at": "2018-04-05T02:34:16Z",
+    "updated_at": "2018-04-05T02:34:18Z",
+    "pushed_at": "2018-04-05T06:05:14Z",
+    "git_url": "git://github.com/sjl/3d-vectors.git",
+    "ssh_url": "git@github.com:sjl/3d-vectors.git",
+    "clone_url": "https://github.com/sjl/3d-vectors.git",
+    "svn_url": "https://github.com/sjl/3d-vectors",
+    "homepage": "https://shinmera.github.io/3d-vectors",
+    "size": 153,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": "HTML",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "artistic-2.0",
+      "name": "Artistic License 2.0",
+      "spdx_id": "Artistic-2.0",
+      "url": "https://api.github.com/licenses/artistic-2.0",
+      "node_id": "MDc6TGljZW5zZTM="
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 158644826,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxNTg2NDQ4MjY=",
+    "name": "adopt",
+    "full_name": "sjl/adopt",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/adopt",
+    "description": "A Damn OPTion parsing library.",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/adopt",
+    "forks_url": "https://api.github.com/repos/sjl/adopt/forks",
+    "keys_url": "https://api.github.com/repos/sjl/adopt/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/adopt/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/adopt/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/adopt/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/adopt/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/adopt/events",
+    "assignees_url": "https://api.github.com/repos/sjl/adopt/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/adopt/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/adopt/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/adopt/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/adopt/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/adopt/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/adopt/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/adopt/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/adopt/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/adopt/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/adopt/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/adopt/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/adopt/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/adopt/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/adopt/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/adopt/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/adopt/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/adopt/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/adopt/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/adopt/merges",
+    "archive_url": "https://api.github.com/repos/sjl/adopt/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/adopt/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/adopt/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/adopt/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/adopt/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/adopt/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/adopt/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/adopt/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/adopt/deployments",
+    "created_at": "2018-11-22T05:05:01Z",
+    "updated_at": "2020-03-28T13:30:34Z",
+    "pushed_at": "2020-01-31T00:27:35Z",
+    "git_url": "git://github.com/sjl/adopt.git",
+    "ssh_url": "git@github.com:sjl/adopt.git",
+    "clone_url": "https://github.com/sjl/adopt.git",
+    "svn_url": "https://github.com/sjl/adopt",
+    "homepage": null,
+    "size": 187,
+    "stargazers_count": 4,
+    "watchers_count": 4,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 4,
+    "default_branch": "master"
+  },
+  {
+    "id": 47687651,
+    "node_id": "MDEwOlJlcG9zaXRvcnk0NzY4NzY1MQ==",
+    "name": "advent",
+    "full_name": "sjl/advent",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/advent",
+    "description": "Git mirror of https://bitbucket.org/sjl/advent",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/advent",
+    "forks_url": "https://api.github.com/repos/sjl/advent/forks",
+    "keys_url": "https://api.github.com/repos/sjl/advent/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/advent/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/advent/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/advent/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/advent/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/advent/events",
+    "assignees_url": "https://api.github.com/repos/sjl/advent/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/advent/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/advent/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/advent/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/advent/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/advent/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/advent/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/advent/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/advent/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/advent/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/advent/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/advent/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/advent/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/advent/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/advent/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/advent/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/advent/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/advent/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/advent/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/advent/merges",
+    "archive_url": "https://api.github.com/repos/sjl/advent/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/advent/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/advent/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/advent/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/advent/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/advent/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/advent/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/advent/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/advent/deployments",
+    "created_at": "2015-12-09T11:37:32Z",
+    "updated_at": "2020-01-05T05:00:18Z",
+    "pushed_at": "2019-12-15T18:14:18Z",
+    "git_url": "git://github.com/sjl/advent.git",
+    "ssh_url": "git@github.com:sjl/advent.git",
+    "clone_url": "https://github.com/sjl/advent.git",
+    "svn_url": "https://github.com/sjl/advent",
+    "homepage": null,
+    "size": 636,
+    "stargazers_count": 3,
+    "watchers_count": 3,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 3,
+    "default_branch": "master"
+  },
+  {
+    "id": 24458692,
+    "node_id": "MDEwOlJlcG9zaXRvcnkyNDQ1ODY5Mg==",
+    "name": "aesahaettr",
+    "full_name": "sjl/aesahaettr",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/aesahaettr",
+    "description": "Sharding, partitioning, and consistent hashing for Clojure. May release spectres.",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/aesahaettr",
+    "forks_url": "https://api.github.com/repos/sjl/aesahaettr/forks",
+    "keys_url": "https://api.github.com/repos/sjl/aesahaettr/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/aesahaettr/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/aesahaettr/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/aesahaettr/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/aesahaettr/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/aesahaettr/events",
+    "assignees_url": "https://api.github.com/repos/sjl/aesahaettr/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/aesahaettr/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/aesahaettr/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/aesahaettr/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/aesahaettr/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/aesahaettr/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/aesahaettr/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/aesahaettr/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/aesahaettr/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/aesahaettr/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/aesahaettr/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/aesahaettr/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/aesahaettr/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/aesahaettr/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/aesahaettr/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/aesahaettr/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/aesahaettr/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/aesahaettr/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/aesahaettr/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/aesahaettr/merges",
+    "archive_url": "https://api.github.com/repos/sjl/aesahaettr/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/aesahaettr/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/aesahaettr/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/aesahaettr/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/aesahaettr/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/aesahaettr/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/aesahaettr/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/aesahaettr/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/aesahaettr/deployments",
+    "created_at": "2014-09-25T13:17:54Z",
+    "updated_at": "2014-06-18T16:05:36Z",
+    "pushed_at": "2014-02-01T00:54:15Z",
+    "git_url": "git://github.com/sjl/aesahaettr.git",
+    "ssh_url": "git@github.com:sjl/aesahaettr.git",
+    "clone_url": "https://github.com/sjl/aesahaettr.git",
+    "svn_url": "https://github.com/sjl/aesahaettr",
+    "homepage": null,
+    "size": 152,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": null,
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 79345770,
+    "node_id": "MDEwOlJlcG9zaXRvcnk3OTM0NTc3MA==",
+    "name": "agdd2016",
+    "full_name": "sjl/agdd2016",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/agdd2016",
+    "description": "A repo for things that I make in class",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/agdd2016",
+    "forks_url": "https://api.github.com/repos/sjl/agdd2016/forks",
+    "keys_url": "https://api.github.com/repos/sjl/agdd2016/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/agdd2016/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/agdd2016/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/agdd2016/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/agdd2016/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/agdd2016/events",
+    "assignees_url": "https://api.github.com/repos/sjl/agdd2016/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/agdd2016/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/agdd2016/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/agdd2016/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/agdd2016/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/agdd2016/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/agdd2016/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/agdd2016/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/agdd2016/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/agdd2016/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/agdd2016/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/agdd2016/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/agdd2016/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/agdd2016/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/agdd2016/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/agdd2016/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/agdd2016/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/agdd2016/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/agdd2016/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/agdd2016/merges",
+    "archive_url": "https://api.github.com/repos/sjl/agdd2016/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/agdd2016/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/agdd2016/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/agdd2016/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/agdd2016/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/agdd2016/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/agdd2016/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/agdd2016/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/agdd2016/deployments",
+    "created_at": "2017-01-18T14:06:49Z",
+    "updated_at": "2017-01-18T14:06:50Z",
+    "pushed_at": "2017-01-18T01:35:00Z",
+    "git_url": "git://github.com/sjl/agdd2016.git",
+    "ssh_url": "git@github.com:sjl/agdd2016.git",
+    "clone_url": "https://github.com/sjl/agdd2016.git",
+    "svn_url": "https://github.com/sjl/agdd2016",
+    "homepage": null,
+    "size": 124,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": "Haxe",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 2557313,
+    "node_id": "MDEwOlJlcG9zaXRvcnkyNTU3MzEz",
+    "name": "ai-class",
+    "full_name": "sjl/ai-class",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/ai-class",
+    "description": "Code collection for the Stanford Online Introduction to Artificial Intelligence class",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/ai-class",
+    "forks_url": "https://api.github.com/repos/sjl/ai-class/forks",
+    "keys_url": "https://api.github.com/repos/sjl/ai-class/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/ai-class/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/ai-class/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/ai-class/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/ai-class/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/ai-class/events",
+    "assignees_url": "https://api.github.com/repos/sjl/ai-class/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/ai-class/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/ai-class/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/ai-class/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/ai-class/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/ai-class/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/ai-class/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/ai-class/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/ai-class/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/ai-class/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/ai-class/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/ai-class/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/ai-class/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/ai-class/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/ai-class/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/ai-class/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/ai-class/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/ai-class/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/ai-class/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/ai-class/merges",
+    "archive_url": "https://api.github.com/repos/sjl/ai-class/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/ai-class/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/ai-class/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/ai-class/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/ai-class/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/ai-class/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/ai-class/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/ai-class/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/ai-class/deployments",
+    "created_at": "2011-10-11T18:35:08Z",
+    "updated_at": "2014-05-27T04:35:40Z",
+    "pushed_at": "2011-10-30T17:58:44Z",
+    "git_url": "git://github.com/sjl/ai-class.git",
+    "ssh_url": "git@github.com:sjl/ai-class.git",
+    "clone_url": "https://github.com/sjl/ai-class.git",
+    "svn_url": "https://github.com/sjl/ai-class",
+    "homepage": "http://www.ai-class.com/",
+    "size": 107,
+    "stargazers_count": 1,
+    "watchers_count": 1,
+    "language": "Clojure",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 1,
+    "default_branch": "master"
+  },
+  {
+    "id": 1985937,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxOTg1OTM3",
+    "name": "alienscript",
+    "full_name": "sjl/alienscript",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/alienscript",
+    "description": "Look at the wiki.",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/alienscript",
+    "forks_url": "https://api.github.com/repos/sjl/alienscript/forks",
+    "keys_url": "https://api.github.com/repos/sjl/alienscript/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/alienscript/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/alienscript/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/alienscript/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/alienscript/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/alienscript/events",
+    "assignees_url": "https://api.github.com/repos/sjl/alienscript/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/alienscript/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/alienscript/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/alienscript/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/alienscript/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/alienscript/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/alienscript/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/alienscript/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/alienscript/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/alienscript/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/alienscript/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/alienscript/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/alienscript/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/alienscript/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/alienscript/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/alienscript/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/alienscript/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/alienscript/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/alienscript/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/alienscript/merges",
+    "archive_url": "https://api.github.com/repos/sjl/alienscript/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/alienscript/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/alienscript/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/alienscript/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/alienscript/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/alienscript/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/alienscript/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/alienscript/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/alienscript/deployments",
+    "created_at": "2011-07-01T23:35:50Z",
+    "updated_at": "2017-12-27T03:37:20Z",
+    "pushed_at": "2013-06-29T01:50:07Z",
+    "git_url": "git://github.com/sjl/alienscript.git",
+    "ssh_url": "git@github.com:sjl/alienscript.git",
+    "clone_url": "https://github.com/sjl/alienscript.git",
+    "svn_url": "https://github.com/sjl/alienscript",
+    "homepage": "",
+    "size": 108,
+    "stargazers_count": 5,
+    "watchers_count": 5,
+    "language": "JavaScript",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 1,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 1,
+    "open_issues": 0,
+    "watchers": 5,
+    "default_branch": "master"
+  },
+  {
+    "id": 6479906,
+    "node_id": "MDEwOlJlcG9zaXRvcnk2NDc5OTA2",
+    "name": "AnsiEsc.vim",
+    "full_name": "sjl/AnsiEsc.vim",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/AnsiEsc.vim",
+    "description": "ansi escape sequences concealed, but highlighted as specified (conceal)",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/AnsiEsc.vim",
+    "forks_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/forks",
+    "keys_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/events",
+    "assignees_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/merges",
+    "archive_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/AnsiEsc.vim/deployments",
+    "created_at": "2012-10-31T20:02:06Z",
+    "updated_at": "2017-01-11T07:40:17Z",
+    "pushed_at": "2012-10-31T20:03:46Z",
+    "git_url": "git://github.com/sjl/AnsiEsc.vim.git",
+    "ssh_url": "git@github.com:sjl/AnsiEsc.vim.git",
+    "clone_url": "https://github.com/sjl/AnsiEsc.vim.git",
+    "svn_url": "https://github.com/sjl/AnsiEsc.vim",
+    "homepage": "http://www.vim.org/scripts/script.php?script_id=302",
+    "size": 122,
+    "stargazers_count": 1,
+    "watchers_count": 1,
+    "language": "VimL",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": false,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 1,
+    "default_branch": "master"
+  },
+  {
+    "id": 78274436,
+    "node_id": "MDEwOlJlcG9zaXRvcnk3ODI3NDQzNg==",
+    "name": "antipodes",
+    "full_name": "sjl/antipodes",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/antipodes",
+    "description": "https://itch.io/jam/igi-1",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/antipodes",
+    "forks_url": "https://api.github.com/repos/sjl/antipodes/forks",
+    "keys_url": "https://api.github.com/repos/sjl/antipodes/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/antipodes/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/antipodes/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/antipodes/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/antipodes/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/antipodes/events",
+    "assignees_url": "https://api.github.com/repos/sjl/antipodes/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/antipodes/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/antipodes/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/antipodes/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/antipodes/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/antipodes/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/antipodes/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/antipodes/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/antipodes/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/antipodes/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/antipodes/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/antipodes/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/antipodes/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/antipodes/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/antipodes/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/antipodes/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/antipodes/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/antipodes/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/antipodes/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/antipodes/merges",
+    "archive_url": "https://api.github.com/repos/sjl/antipodes/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/antipodes/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/antipodes/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/antipodes/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/antipodes/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/antipodes/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/antipodes/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/antipodes/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/antipodes/deployments",
+    "created_at": "2017-01-07T11:12:42Z",
+    "updated_at": "2019-04-25T19:03:54Z",
+    "pushed_at": "2017-01-08T16:47:58Z",
+    "git_url": "git://github.com/sjl/antipodes.git",
+    "ssh_url": "git@github.com:sjl/antipodes.git",
+    "clone_url": "https://github.com/sjl/antipodes.git",
+    "svn_url": "https://github.com/sjl/antipodes",
+    "homepage": null,
+    "size": 219,
+    "stargazers_count": 2,
+    "watchers_count": 2,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 2,
+    "default_branch": "master"
+  },
+  {
+    "id": 108617060,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMDg2MTcwNjA=",
+    "name": "arduino",
+    "full_name": "sjl/arduino",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/arduino",
+    "description": null,
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/arduino",
+    "forks_url": "https://api.github.com/repos/sjl/arduino/forks",
+    "keys_url": "https://api.github.com/repos/sjl/arduino/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/arduino/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/arduino/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/arduino/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/arduino/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/arduino/events",
+    "assignees_url": "https://api.github.com/repos/sjl/arduino/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/arduino/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/arduino/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/arduino/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/arduino/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/arduino/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/arduino/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/arduino/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/arduino/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/arduino/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/arduino/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/arduino/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/arduino/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/arduino/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/arduino/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/arduino/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/arduino/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/arduino/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/arduino/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/arduino/merges",
+    "archive_url": "https://api.github.com/repos/sjl/arduino/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/arduino/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/arduino/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/arduino/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/arduino/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/arduino/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/arduino/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/arduino/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/arduino/deployments",
+    "created_at": "2017-10-28T03:36:18Z",
+    "updated_at": "2018-02-14T05:33:41Z",
+    "pushed_at": "2018-02-14T05:33:40Z",
+    "git_url": "git://github.com/sjl/arduino.git",
+    "ssh_url": "git@github.com:sjl/arduino.git",
+    "clone_url": "https://github.com/sjl/arduino.git",
+    "svn_url": "https://github.com/sjl/arduino",
+    "homepage": null,
+    "size": 6,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": "C++",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 117586752,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMTc1ODY3NTI=",
+    "name": "asdf",
+    "full_name": "sjl/asdf",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/asdf",
+    "description": "Another System Definition Facility, de facto standard build system for CL (mirrored from Common-Lisp.net)",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/asdf",
+    "forks_url": "https://api.github.com/repos/sjl/asdf/forks",
+    "keys_url": "https://api.github.com/repos/sjl/asdf/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/asdf/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/asdf/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/asdf/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/asdf/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/asdf/events",
+    "assignees_url": "https://api.github.com/repos/sjl/asdf/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/asdf/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/asdf/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/asdf/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/asdf/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/asdf/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/asdf/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/asdf/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/asdf/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/asdf/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/asdf/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/asdf/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/asdf/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/asdf/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/asdf/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/asdf/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/asdf/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/asdf/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/asdf/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/asdf/merges",
+    "archive_url": "https://api.github.com/repos/sjl/asdf/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/asdf/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/asdf/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/asdf/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/asdf/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/asdf/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/asdf/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/asdf/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/asdf/deployments",
+    "created_at": "2018-01-15T19:30:23Z",
+    "updated_at": "2018-01-15T19:30:25Z",
+    "pushed_at": "2018-01-07T11:33:56Z",
+    "git_url": "git://github.com/sjl/asdf.git",
+    "ssh_url": "git@github.com:sjl/asdf.git",
+    "clone_url": "https://github.com/sjl/asdf.git",
+    "svn_url": "https://github.com/sjl/asdf",
+    "homepage": "https://gitlab.common-lisp.net/asdf/asdf/",
+    "size": 7779,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": "Common Lisp",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": false,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 3424330,
+    "node_id": "MDEwOlJlcG9zaXRvcnkzNDI0MzMw",
+    "name": "badwolf",
+    "full_name": "sjl/badwolf",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/badwolf",
+    "description": "A Vim color scheme.",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/badwolf",
+    "forks_url": "https://api.github.com/repos/sjl/badwolf/forks",
+    "keys_url": "https://api.github.com/repos/sjl/badwolf/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/badwolf/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/badwolf/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/badwolf/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/badwolf/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/badwolf/events",
+    "assignees_url": "https://api.github.com/repos/sjl/badwolf/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/badwolf/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/badwolf/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/badwolf/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/badwolf/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/badwolf/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/badwolf/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/badwolf/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/badwolf/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/badwolf/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/badwolf/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/badwolf/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/badwolf/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/badwolf/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/badwolf/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/badwolf/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/badwolf/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/badwolf/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/badwolf/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/badwolf/merges",
+    "archive_url": "https://api.github.com/repos/sjl/badwolf/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/badwolf/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/badwolf/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/badwolf/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/badwolf/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/badwolf/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/badwolf/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/badwolf/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/badwolf/deployments",
+    "created_at": "2012-02-12T20:08:30Z",
+    "updated_at": "2020-07-27T20:40:36Z",
+    "pushed_at": "2020-05-01T07:04:12Z",
+    "git_url": "git://github.com/sjl/badwolf.git",
+    "ssh_url": "git@github.com:sjl/badwolf.git",
+    "clone_url": "https://github.com/sjl/badwolf.git",
+    "svn_url": "https://github.com/sjl/badwolf",
+    "homepage": "http://stevelosh.com/projects/badwolf/",
+    "size": 76,
+    "stargazers_count": 1122,
+    "watchers_count": 1122,
+    "language": "Vim script",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 218,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 14,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 218,
+    "open_issues": 14,
+    "watchers": 1122,
+    "default_branch": "master"
+  },
+  {
+    "id": 107196520,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMDcxOTY1MjA=",
+    "name": "batty",
+    "full_name": "sjl/batty",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/batty",
+    "description": "A 2D Batformer for the October 2017 Lisp Game Jam.",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/batty",
+    "forks_url": "https://api.github.com/repos/sjl/batty/forks",
+    "keys_url": "https://api.github.com/repos/sjl/batty/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/batty/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/batty/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/batty/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/batty/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/batty/events",
+    "assignees_url": "https://api.github.com/repos/sjl/batty/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/batty/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/batty/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/batty/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/batty/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/batty/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/batty/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/batty/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/batty/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/batty/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/batty/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/batty/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/batty/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/batty/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/batty/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/batty/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/batty/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/batty/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/batty/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/batty/merges",
+    "archive_url": "https://api.github.com/repos/sjl/batty/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/batty/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/batty/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/batty/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/batty/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/batty/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/batty/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/batty/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/batty/deployments",
+    "created_at": "2017-10-17T00:10:03Z",
+    "updated_at": "2017-10-17T02:06:36Z",
+    "pushed_at": "2017-10-25T14:49:47Z",
+    "git_url": "git://github.com/sjl/batty.git",
+    "ssh_url": "git@github.com:sjl/batty.git",
+    "clone_url": "https://github.com/sjl/batty.git",
+    "svn_url": "https://github.com/sjl/batty",
+    "homepage": null,
+    "size": 62721,
+    "stargazers_count": 1,
+    "watchers_count": 1,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 1,
+    "default_branch": "master"
+  },
+  {
+    "id": 65260369,
+    "node_id": "MDEwOlJlcG9zaXRvcnk2NTI2MDM2OQ==",
+    "name": "beast",
+    "full_name": "sjl/beast",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/beast",
+    "description": "Basic Entity/Aspect/System Toolkit",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/beast",
+    "forks_url": "https://api.github.com/repos/sjl/beast/forks",
+    "keys_url": "https://api.github.com/repos/sjl/beast/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/beast/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/beast/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/beast/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/beast/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/beast/events",
+    "assignees_url": "https://api.github.com/repos/sjl/beast/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/beast/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/beast/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/beast/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/beast/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/beast/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/beast/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/beast/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/beast/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/beast/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/beast/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/beast/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/beast/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/beast/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/beast/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/beast/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/beast/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/beast/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/beast/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/beast/merges",
+    "archive_url": "https://api.github.com/repos/sjl/beast/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/beast/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/beast/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/beast/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/beast/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/beast/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/beast/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/beast/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/beast/deployments",
+    "created_at": "2016-08-09T03:38:05Z",
+    "updated_at": "2020-03-31T08:34:21Z",
+    "pushed_at": "2020-01-15T00:51:22Z",
+    "git_url": "git://github.com/sjl/beast.git",
+    "ssh_url": "git@github.com:sjl/beast.git",
+    "clone_url": "https://github.com/sjl/beast.git",
+    "svn_url": "https://github.com/sjl/beast",
+    "homepage": "https://sjl.bitbucket.io/beast/",
+    "size": 36,
+    "stargazers_count": 14,
+    "watchers_count": 14,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 2,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 2,
+    "open_issues": 0,
+    "watchers": 14,
+    "default_branch": "master"
+  },
+  {
+    "id": 16869721,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxNjg2OTcyMQ==",
+    "name": "beef",
+    "full_name": "sjl/beef",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/beef",
+    "description": "shavin beefalos in common lisp",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/beef",
+    "forks_url": "https://api.github.com/repos/sjl/beef/forks",
+    "keys_url": "https://api.github.com/repos/sjl/beef/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/beef/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/beef/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/beef/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/beef/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/beef/events",
+    "assignees_url": "https://api.github.com/repos/sjl/beef/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/beef/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/beef/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/beef/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/beef/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/beef/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/beef/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/beef/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/beef/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/beef/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/beef/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/beef/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/beef/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/beef/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/beef/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/beef/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/beef/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/beef/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/beef/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/beef/merges",
+    "archive_url": "https://api.github.com/repos/sjl/beef/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/beef/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/beef/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/beef/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/beef/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/beef/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/beef/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/beef/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/beef/deployments",
+    "created_at": "2014-02-15T19:15:55Z",
+    "updated_at": "2015-12-09T14:28:20Z",
+    "pushed_at": "2015-12-09T14:28:20Z",
+    "git_url": "git://github.com/sjl/beef.git",
+    "ssh_url": "git@github.com:sjl/beef.git",
+    "clone_url": "https://github.com/sjl/beef.git",
+    "svn_url": "https://github.com/sjl/beef",
+    "homepage": null,
+    "size": 3,
+    "stargazers_count": 1,
+    "watchers_count": 1,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 1,
+    "default_branch": "master"
+  },
+  {
+    "id": 4262511,
+    "node_id": "MDEwOlJlcG9zaXRvcnk0MjYyNTEx",
+    "name": "bernhard",
+    "full_name": "sjl/bernhard",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/bernhard",
+    "description": "Python Riemann client.",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/bernhard",
+    "forks_url": "https://api.github.com/repos/sjl/bernhard/forks",
+    "keys_url": "https://api.github.com/repos/sjl/bernhard/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/bernhard/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/bernhard/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/bernhard/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/bernhard/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/bernhard/events",
+    "assignees_url": "https://api.github.com/repos/sjl/bernhard/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/bernhard/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/bernhard/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/bernhard/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/bernhard/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/bernhard/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/bernhard/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/bernhard/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/bernhard/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/bernhard/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/bernhard/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/bernhard/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/bernhard/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/bernhard/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/bernhard/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/bernhard/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/bernhard/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/bernhard/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/bernhard/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/bernhard/merges",
+    "archive_url": "https://api.github.com/repos/sjl/bernhard/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/bernhard/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/bernhard/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/bernhard/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/bernhard/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/bernhard/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/bernhard/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/bernhard/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/bernhard/deployments",
+    "created_at": "2012-05-08T16:00:40Z",
+    "updated_at": "2014-05-27T04:35:40Z",
+    "pushed_at": "2012-05-02T22:55:01Z",
+    "git_url": "git://github.com/sjl/bernhard.git",
+    "ssh_url": "git@github.com:sjl/bernhard.git",
+    "clone_url": "https://github.com/sjl/bernhard.git",
+    "svn_url": "https://github.com/sjl/bernhard",
+    "homepage": null,
+    "size": 69,
+    "stargazers_count": 2,
+    "watchers_count": 2,
+    "language": "Python",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "apache-2.0",
+      "name": "Apache License 2.0",
+      "spdx_id": "Apache-2.0",
+      "url": "https://api.github.com/licenses/apache-2.0",
+      "node_id": "MDc6TGljZW5zZTI="
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 2,
+    "default_branch": "master"
+  },
+  {
+    "id": 135077548,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMzUwNzc1NDg=",
+    "name": "bobbin",
+    "full_name": "sjl/bobbin",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/bobbin",
+    "description": "Bobbin wraps strings.",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/bobbin",
+    "forks_url": "https://api.github.com/repos/sjl/bobbin/forks",
+    "keys_url": "https://api.github.com/repos/sjl/bobbin/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/bobbin/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/bobbin/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/bobbin/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/bobbin/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/bobbin/events",
+    "assignees_url": "https://api.github.com/repos/sjl/bobbin/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/bobbin/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/bobbin/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/bobbin/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/bobbin/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/bobbin/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/bobbin/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/bobbin/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/bobbin/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/bobbin/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/bobbin/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/bobbin/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/bobbin/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/bobbin/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/bobbin/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/bobbin/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/bobbin/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/bobbin/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/bobbin/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/bobbin/merges",
+    "archive_url": "https://api.github.com/repos/sjl/bobbin/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/bobbin/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/bobbin/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/bobbin/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/bobbin/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/bobbin/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/bobbin/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/bobbin/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/bobbin/deployments",
+    "created_at": "2018-05-27T20:01:43Z",
+    "updated_at": "2020-01-15T01:10:19Z",
+    "pushed_at": "2020-01-15T01:10:17Z",
+    "git_url": "git://github.com/sjl/bobbin.git",
+    "ssh_url": "git@github.com:sjl/bobbin.git",
+    "clone_url": "https://github.com/sjl/bobbin.git",
+    "svn_url": "https://github.com/sjl/bobbin",
+    "homepage": null,
+    "size": 23,
+    "stargazers_count": 6,
+    "watchers_count": 6,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 2,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 2,
+    "open_issues": 0,
+    "watchers": 6,
+    "default_branch": "master"
+  },
+  {
+    "id": 56788188,
+    "node_id": "MDEwOlJlcG9zaXRvcnk1Njc4ODE4OA==",
+    "name": "bones",
+    "full_name": "sjl/bones",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/bones",
+    "description": "Git mirror of https://bitbucket.org/sjl/bones/",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/bones",
+    "forks_url": "https://api.github.com/repos/sjl/bones/forks",
+    "keys_url": "https://api.github.com/repos/sjl/bones/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/bones/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/bones/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/bones/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/bones/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/bones/events",
+    "assignees_url": "https://api.github.com/repos/sjl/bones/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/bones/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/bones/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/bones/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/bones/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/bones/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/bones/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/bones/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/bones/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/bones/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/bones/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/bones/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/bones/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/bones/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/bones/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/bones/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/bones/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/bones/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/bones/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/bones/merges",
+    "archive_url": "https://api.github.com/repos/sjl/bones/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/bones/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/bones/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/bones/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/bones/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/bones/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/bones/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/bones/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/bones/deployments",
+    "created_at": "2016-04-21T16:11:15Z",
+    "updated_at": "2016-08-20T22:29:44Z",
+    "pushed_at": "2016-08-20T22:29:43Z",
+    "git_url": "git://github.com/sjl/bones.git",
+    "ssh_url": "git@github.com:sjl/bones.git",
+    "clone_url": "https://github.com/sjl/bones.git",
+    "svn_url": "https://github.com/sjl/bones",
+    "homepage": null,
+    "size": 1235,
+    "stargazers_count": 2,
+    "watchers_count": 2,
+    "language": null,
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 2,
+    "default_branch": "master"
+  },
+  {
+    "id": 2529890,
+    "node_id": "MDEwOlJlcG9zaXRvcnkyNTI5ODkw",
+    "name": "bookmarkdown",
+    "full_name": "sjl/bookmarkdown",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/bookmarkdown",
+    "description": null,
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/bookmarkdown",
+    "forks_url": "https://api.github.com/repos/sjl/bookmarkdown/forks",
+    "keys_url": "https://api.github.com/repos/sjl/bookmarkdown/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/bookmarkdown/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/bookmarkdown/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/bookmarkdown/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/bookmarkdown/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/bookmarkdown/events",
+    "assignees_url": "https://api.github.com/repos/sjl/bookmarkdown/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/bookmarkdown/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/bookmarkdown/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/bookmarkdown/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/bookmarkdown/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/bookmarkdown/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/bookmarkdown/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/bookmarkdown/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/bookmarkdown/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/bookmarkdown/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/bookmarkdown/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/bookmarkdown/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/bookmarkdown/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/bookmarkdown/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/bookmarkdown/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/bookmarkdown/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/bookmarkdown/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/bookmarkdown/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/bookmarkdown/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/bookmarkdown/merges",
+    "archive_url": "https://api.github.com/repos/sjl/bookmarkdown/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/bookmarkdown/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/bookmarkdown/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/bookmarkdown/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/bookmarkdown/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/bookmarkdown/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/bookmarkdown/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/bookmarkdown/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/bookmarkdown/deployments",
+    "created_at": "2011-10-07T01:09:42Z",
+    "updated_at": "2020-05-28T06:33:30Z",
+    "pushed_at": "2017-08-31T16:37:17Z",
+    "git_url": "git://github.com/sjl/bookmarkdown.git",
+    "ssh_url": "git@github.com:sjl/bookmarkdown.git",
+    "clone_url": "https://github.com/sjl/bookmarkdown.git",
+    "svn_url": "https://github.com/sjl/bookmarkdown",
+    "homepage": "",
+    "size": 57,
+    "stargazers_count": 29,
+    "watchers_count": 29,
+    "language": "CSS",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 8,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 1,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 8,
+    "open_issues": 1,
+    "watchers": 29,
+    "default_branch": "master"
+  },
+  {
+    "id": 128549970,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMjg1NDk5NzA=",
+    "name": "boots",
+    "full_name": "sjl/boots",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/boots",
+    "description": "A simple text UI framework, inspired by _why's Shoes.",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/boots",
+    "forks_url": "https://api.github.com/repos/sjl/boots/forks",
+    "keys_url": "https://api.github.com/repos/sjl/boots/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/boots/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/boots/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/boots/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/boots/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/boots/events",
+    "assignees_url": "https://api.github.com/repos/sjl/boots/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/boots/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/boots/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/boots/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/boots/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/boots/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/boots/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/boots/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/boots/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/boots/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/boots/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/boots/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/boots/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/boots/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/boots/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/boots/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/boots/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/boots/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/boots/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/boots/merges",
+    "archive_url": "https://api.github.com/repos/sjl/boots/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/boots/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/boots/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/boots/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/boots/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/boots/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/boots/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/boots/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/boots/deployments",
+    "created_at": "2018-04-07T17:04:40Z",
+    "updated_at": "2020-05-31T22:34:53Z",
+    "pushed_at": "2020-05-03T21:36:48Z",
+    "git_url": "git://github.com/sjl/boots.git",
+    "ssh_url": "git@github.com:sjl/boots.git",
+    "clone_url": "https://github.com/sjl/boots.git",
+    "svn_url": "https://github.com/sjl/boots",
+    "homepage": null,
+    "size": 186,
+    "stargazers_count": 3,
+    "watchers_count": 3,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 3,
+    "default_branch": "master"
+  },
+  {
+    "id": 108600661,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMDg2MDA2NjE=",
+    "name": "bria",
+    "full_name": "sjl/bria",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/bria",
+    "description": "Basic, Reliable IRC Assistant",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/bria",
+    "forks_url": "https://api.github.com/repos/sjl/bria/forks",
+    "keys_url": "https://api.github.com/repos/sjl/bria/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/bria/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/bria/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/bria/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/bria/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/bria/events",
+    "assignees_url": "https://api.github.com/repos/sjl/bria/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/bria/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/bria/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/bria/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/bria/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/bria/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/bria/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/bria/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/bria/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/bria/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/bria/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/bria/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/bria/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/bria/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/bria/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/bria/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/bria/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/bria/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/bria/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/bria/merges",
+    "archive_url": "https://api.github.com/repos/sjl/bria/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/bria/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/bria/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/bria/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/bria/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/bria/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/bria/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/bria/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/bria/deployments",
+    "created_at": "2017-10-27T22:16:26Z",
+    "updated_at": "2017-10-27T22:16:57Z",
+    "pushed_at": "2017-10-29T16:38:03Z",
+    "git_url": "git://github.com/sjl/bria.git",
+    "ssh_url": "git@github.com:sjl/bria.git",
+    "clone_url": "https://github.com/sjl/bria.git",
+    "svn_url": "https://github.com/sjl/bria",
+    "homepage": null,
+    "size": 26,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 132671296,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMzI2NzEyOTY=",
+    "name": "brows",
+    "full_name": "sjl/brows",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/brows",
+    "description": "urlview in common lisp",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/brows",
+    "forks_url": "https://api.github.com/repos/sjl/brows/forks",
+    "keys_url": "https://api.github.com/repos/sjl/brows/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/brows/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/brows/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/brows/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/brows/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/brows/events",
+    "assignees_url": "https://api.github.com/repos/sjl/brows/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/brows/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/brows/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/brows/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/brows/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/brows/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/brows/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/brows/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/brows/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/brows/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/brows/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/brows/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/brows/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/brows/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/brows/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/brows/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/brows/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/brows/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/brows/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/brows/merges",
+    "archive_url": "https://api.github.com/repos/sjl/brows/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/brows/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/brows/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/brows/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/brows/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/brows/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/brows/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/brows/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/brows/deployments",
+    "created_at": "2018-05-08T22:20:14Z",
+    "updated_at": "2020-05-31T22:34:58Z",
+    "pushed_at": "2020-04-14T01:30:07Z",
+    "git_url": "git://github.com/sjl/brows.git",
+    "ssh_url": "git@github.com:sjl/brows.git",
+    "clone_url": "https://github.com/sjl/brows.git",
+    "svn_url": "https://github.com/sjl/brows",
+    "homepage": null,
+    "size": 25,
+    "stargazers_count": 3,
+    "watchers_count": 3,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 3,
+    "default_branch": "master"
+  },
+  {
+    "id": 125742277,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMjU3NDIyNzc=",
+    "name": "cacl",
+    "full_name": "sjl/cacl",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/cacl",
+    "description": null,
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/cacl",
+    "forks_url": "https://api.github.com/repos/sjl/cacl/forks",
+    "keys_url": "https://api.github.com/repos/sjl/cacl/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/cacl/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/cacl/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/cacl/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/cacl/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/cacl/events",
+    "assignees_url": "https://api.github.com/repos/sjl/cacl/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/cacl/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/cacl/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/cacl/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/cacl/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/cacl/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/cacl/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/cacl/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/cacl/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/cacl/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/cacl/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/cacl/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/cacl/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/cacl/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/cacl/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/cacl/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/cacl/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/cacl/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/cacl/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/cacl/merges",
+    "archive_url": "https://api.github.com/repos/sjl/cacl/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/cacl/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/cacl/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/cacl/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/cacl/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/cacl/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/cacl/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/cacl/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/cacl/deployments",
+    "created_at": "2018-03-18T15:59:13Z",
+    "updated_at": "2020-01-15T01:13:38Z",
+    "pushed_at": "2020-01-15T01:13:36Z",
+    "git_url": "git://github.com/sjl/cacl.git",
+    "ssh_url": "git@github.com:sjl/cacl.git",
+    "clone_url": "https://github.com/sjl/cacl.git",
+    "svn_url": "https://github.com/sjl/cacl",
+    "homepage": null,
+    "size": 20,
+    "stargazers_count": 1,
+    "watchers_count": 1,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 1,
+    "default_branch": "master"
+  },
+  {
+    "id": 4941641,
+    "node_id": "MDEwOlJlcG9zaXRvcnk0OTQxNjQx",
+    "name": "caves",
+    "full_name": "sjl/caves",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/caves",
+    "description": "The code for my Caves of Clojure series of blog posts.",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/caves",
+    "forks_url": "https://api.github.com/repos/sjl/caves/forks",
+    "keys_url": "https://api.github.com/repos/sjl/caves/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/caves/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/caves/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/caves/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/caves/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/caves/events",
+    "assignees_url": "https://api.github.com/repos/sjl/caves/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/caves/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/caves/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/caves/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/caves/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/caves/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/caves/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/caves/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/caves/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/caves/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/caves/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/caves/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/caves/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/caves/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/caves/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/caves/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/caves/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/caves/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/caves/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/caves/merges",
+    "archive_url": "https://api.github.com/repos/sjl/caves/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/caves/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/caves/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/caves/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/caves/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/caves/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/caves/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/caves/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/caves/deployments",
+    "created_at": "2012-07-07T21:56:34Z",
+    "updated_at": "2020-06-17T20:07:40Z",
+    "pushed_at": "2012-10-13T20:30:29Z",
+    "git_url": "git://github.com/sjl/caves.git",
+    "ssh_url": "git@github.com:sjl/caves.git",
+    "clone_url": "https://github.com/sjl/caves.git",
+    "svn_url": "https://github.com/sjl/caves",
+    "homepage": "http://stevelosh.com/blog/2012/07/caves-of-clojure-01/",
+    "size": 173,
+    "stargazers_count": 152,
+    "watchers_count": 152,
+    "language": "Clojure",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 20,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 20,
+    "open_issues": 0,
+    "watchers": 152,
+    "default_branch": "master"
+  },
+  {
+    "id": 223779345,
+    "node_id": "MDEwOlJlcG9zaXRvcnkyMjM3NzkzNDU=",
+    "name": "ccl",
+    "full_name": "sjl/ccl",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/ccl",
+    "description": "Clozure Common Lisp",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/ccl",
+    "forks_url": "https://api.github.com/repos/sjl/ccl/forks",
+    "keys_url": "https://api.github.com/repos/sjl/ccl/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/ccl/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/ccl/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/ccl/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/ccl/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/ccl/events",
+    "assignees_url": "https://api.github.com/repos/sjl/ccl/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/ccl/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/ccl/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/ccl/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/ccl/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/ccl/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/ccl/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/ccl/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/ccl/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/ccl/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/ccl/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/ccl/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/ccl/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/ccl/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/ccl/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/ccl/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/ccl/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/ccl/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/ccl/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/ccl/merges",
+    "archive_url": "https://api.github.com/repos/sjl/ccl/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/ccl/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/ccl/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/ccl/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/ccl/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/ccl/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/ccl/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/ccl/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/ccl/deployments",
+    "created_at": "2019-11-24T17:03:54Z",
+    "updated_at": "2019-11-24T17:03:56Z",
+    "pushed_at": "2019-11-24T17:28:02Z",
+    "git_url": "git://github.com/sjl/ccl.git",
+    "ssh_url": "git@github.com:sjl/ccl.git",
+    "clone_url": "https://github.com/sjl/ccl.git",
+    "svn_url": "https://github.com/sjl/ccl",
+    "homepage": "http://ccl.clozure.com/",
+    "size": 45448,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": null,
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "apache-2.0",
+      "name": "Apache License 2.0",
+      "spdx_id": "Apache-2.0",
+      "url": "https://api.github.com/licenses/apache-2.0",
+      "node_id": "MDc6TGljZW5zZTI="
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 223782929,
+    "node_id": "MDEwOlJlcG9zaXRvcnkyMjM3ODI5Mjk=",
+    "name": "ccl-tests",
+    "full_name": "sjl/ccl-tests",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/ccl-tests",
+    "description": "Tests for Clozure CL",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/ccl-tests",
+    "forks_url": "https://api.github.com/repos/sjl/ccl-tests/forks",
+    "keys_url": "https://api.github.com/repos/sjl/ccl-tests/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/ccl-tests/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/ccl-tests/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/ccl-tests/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/ccl-tests/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/ccl-tests/events",
+    "assignees_url": "https://api.github.com/repos/sjl/ccl-tests/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/ccl-tests/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/ccl-tests/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/ccl-tests/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/ccl-tests/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/ccl-tests/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/ccl-tests/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/ccl-tests/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/ccl-tests/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/ccl-tests/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/ccl-tests/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/ccl-tests/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/ccl-tests/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/ccl-tests/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/ccl-tests/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/ccl-tests/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/ccl-tests/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/ccl-tests/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/ccl-tests/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/ccl-tests/merges",
+    "archive_url": "https://api.github.com/repos/sjl/ccl-tests/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/ccl-tests/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/ccl-tests/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/ccl-tests/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/ccl-tests/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/ccl-tests/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/ccl-tests/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/ccl-tests/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/ccl-tests/deployments",
+    "created_at": "2019-11-24T17:29:50Z",
+    "updated_at": "2019-11-24T17:29:51Z",
+    "pushed_at": "2019-11-24T17:31:33Z",
+    "git_url": "git://github.com/sjl/ccl-tests.git",
+    "ssh_url": "git@github.com:sjl/ccl-tests.git",
+    "clone_url": "https://github.com/sjl/ccl-tests.git",
+    "svn_url": "https://github.com/sjl/ccl-tests",
+    "homepage": "",
+    "size": 1145,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": null,
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": null,
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 66941075,
+    "node_id": "MDEwOlJlcG9zaXRvcnk2Njk0MTA3NQ==",
+    "name": "cffi",
+    "full_name": "sjl/cffi",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/cffi",
+    "description": "The Common Foreign Function Interface",
+    "fork": true,
+    "url": "https://api.github.com/repos/sjl/cffi",
+    "forks_url": "https://api.github.com/repos/sjl/cffi/forks",
+    "keys_url": "https://api.github.com/repos/sjl/cffi/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/cffi/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/cffi/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/cffi/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/cffi/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/cffi/events",
+    "assignees_url": "https://api.github.com/repos/sjl/cffi/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/cffi/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/cffi/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/cffi/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/cffi/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/cffi/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/cffi/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/cffi/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/cffi/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/cffi/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/cffi/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/cffi/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/cffi/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/cffi/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/cffi/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/cffi/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/cffi/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/cffi/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/cffi/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/cffi/merges",
+    "archive_url": "https://api.github.com/repos/sjl/cffi/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/cffi/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/cffi/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/cffi/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/cffi/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/cffi/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/cffi/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/cffi/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/cffi/deployments",
+    "created_at": "2016-08-30T13:03:55Z",
+    "updated_at": "2016-08-30T13:03:56Z",
+    "pushed_at": "2016-08-30T13:07:08Z",
+    "git_url": "git://github.com/sjl/cffi.git",
+    "ssh_url": "git@github.com:sjl/cffi.git",
+    "clone_url": "https://github.com/sjl/cffi.git",
+    "svn_url": "https://github.com/sjl/cffi",
+    "homepage": "http://common-lisp.net/project/cffi",
+    "size": 2412,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": "Common Lisp",
+    "has_issues": false,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 0,
+    "default_branch": "master"
+  },
+  {
+    "id": 78659651,
+    "node_id": "MDEwOlJlcG9zaXRvcnk3ODY1OTY1MQ==",
+    "name": "chancery",
+    "full_name": "sjl/chancery",
+    "private": false,
+    "owner": {
+      "login": "sjl",
+      "id": 58365,
+      "node_id": "MDQ6VXNlcjU4MzY1",
+      "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/sjl",
+      "html_url": "https://github.com/sjl",
+      "followers_url": "https://api.github.com/users/sjl/followers",
+      "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+      "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+      "organizations_url": "https://api.github.com/users/sjl/orgs",
+      "repos_url": "https://api.github.com/users/sjl/repos",
+      "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/sjl/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/sjl/chancery",
+    "description": "A text and data generation library for Common Lisp, inspired by Tracery.",
+    "fork": false,
+    "url": "https://api.github.com/repos/sjl/chancery",
+    "forks_url": "https://api.github.com/repos/sjl/chancery/forks",
+    "keys_url": "https://api.github.com/repos/sjl/chancery/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/sjl/chancery/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/sjl/chancery/teams",
+    "hooks_url": "https://api.github.com/repos/sjl/chancery/hooks",
+    "issue_events_url": "https://api.github.com/repos/sjl/chancery/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/sjl/chancery/events",
+    "assignees_url": "https://api.github.com/repos/sjl/chancery/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/sjl/chancery/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/sjl/chancery/tags",
+    "blobs_url": "https://api.github.com/repos/sjl/chancery/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/sjl/chancery/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/sjl/chancery/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/sjl/chancery/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/sjl/chancery/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/sjl/chancery/languages",
+    "stargazers_url": "https://api.github.com/repos/sjl/chancery/stargazers",
+    "contributors_url": "https://api.github.com/repos/sjl/chancery/contributors",
+    "subscribers_url": "https://api.github.com/repos/sjl/chancery/subscribers",
+    "subscription_url": "https://api.github.com/repos/sjl/chancery/subscription",
+    "commits_url": "https://api.github.com/repos/sjl/chancery/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/sjl/chancery/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/sjl/chancery/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/sjl/chancery/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/sjl/chancery/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/sjl/chancery/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/sjl/chancery/merges",
+    "archive_url": "https://api.github.com/repos/sjl/chancery/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/sjl/chancery/downloads",
+    "issues_url": "https://api.github.com/repos/sjl/chancery/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/sjl/chancery/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/sjl/chancery/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/sjl/chancery/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/sjl/chancery/labels{/name}",
+    "releases_url": "https://api.github.com/repos/sjl/chancery/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/sjl/chancery/deployments",
+    "created_at": "2017-01-11T16:55:30Z",
+    "updated_at": "2020-01-15T00:52:05Z",
+    "pushed_at": "2020-01-15T00:52:03Z",
+    "git_url": "git://github.com/sjl/chancery.git",
+    "ssh_url": "git@github.com:sjl/chancery.git",
+    "clone_url": "https://github.com/sjl/chancery.git",
+    "svn_url": "https://github.com/sjl/chancery",
+    "homepage": "",
+    "size": 48,
+    "stargazers_count": 4,
+    "watchers_count": 4,
+    "language": "Common Lisp",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 0,
+    "license": {
+      "key": "mit",
+      "name": "MIT License",
+      "spdx_id": "MIT",
+      "url": "https://api.github.com/licenses/mit",
+      "node_id": "MDc6TGljZW5zZTEz"
+    },
+    "forks": 0,
+    "open_issues": 0,
+    "watchers": 4,
+    "default_branch": "master"
+  }
+]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/data/github/sjl.json	Tue Aug 11 23:09:18 2020 -0400
@@ -0,0 +1,34 @@
+{
+  "login": "sjl",
+  "id": 58365,
+  "node_id": "MDQ6VXNlcjU4MzY1",
+  "avatar_url": "https://avatars0.githubusercontent.com/u/58365?v=4",
+  "gravatar_id": "",
+  "url": "https://api.github.com/users/sjl",
+  "html_url": "https://github.com/sjl",
+  "followers_url": "https://api.github.com/users/sjl/followers",
+  "following_url": "https://api.github.com/users/sjl/following{/other_user}",
+  "gists_url": "https://api.github.com/users/sjl/gists{/gist_id}",
+  "starred_url": "https://api.github.com/users/sjl/starred{/owner}{/repo}",
+  "subscriptions_url": "https://api.github.com/users/sjl/subscriptions",
+  "organizations_url": "https://api.github.com/users/sjl/orgs",
+  "repos_url": "https://api.github.com/users/sjl/repos",
+  "events_url": "https://api.github.com/users/sjl/events{/privacy}",
+  "received_events_url": "https://api.github.com/users/sjl/received_events",
+  "type": "User",
+  "site_admin": false,
+  "name": "Steve Losh",
+  "company": null,
+  "blog": "http://stevelosh.com",
+  "location": "Rochester, NY",
+  "email": null,
+  "hireable": null,
+  "bio": "Move slow and make things.",
+  "twitter_username": null,
+  "public_repos": 182,
+  "public_gists": 134,
+  "followers": 2038,
+  "following": 10,
+  "created_at": "2009-02-26T21:20:05Z",
+  "updated_at": "2020-06-06T23:16:20Z"
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/data/reddit/r-common_lisp.json	Tue Aug 11 23:09:18 2020 -0400
@@ -0,0 +1,1 @@
+{"kind": "Listing", "data": {"modhash": "", "dist": 26, "children": [{"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "Hi all,\n\nEarlier this month I [posted](https://www.reddit.com/r/Common_Lisp/comments/f0jrnv/state_of_common_lisp/) to inquire about interest in a survey of Common Lisp for 2020. I received positive feedback regarding the idea, with minimal feedback on the questions (someone did track down my personal email address to discuss further!)\n\n[Here](https://forms.gle/Gr1i8NP9m2eLJeYR6) is the link to the Common Lisp survey for 2020 I have put together. I would like to keep the survey open for 2 weeks (is more time needed?), and will make the results available. Feel free to reach out below, or PM me if you have any feedback. Again, thank you for your participation!\n\nEDIT: This survey has been closed. Thank you to all who completed it. I will post a follow up reflection of the results. Thank you again!", "author_fullname": "t2_24920", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "State of Common Lisp Survey 2020", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_f8wqkj", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.99, "author_flair_background_color": null, "subreddit_type": "public", "ups": 78, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 78, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": 1583896114.0, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1582601870.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Hi all,&lt;/p&gt;\n\n&lt;p&gt;Earlier this month I &lt;a href=\"https://www.reddit.com/r/Common_Lisp/comments/f0jrnv/state_of_common_lisp/\"&gt;posted&lt;/a&gt; to inquire about interest in a survey of Common Lisp for 2020. I received positive feedback regarding the idea, with minimal feedback on the questions (someone did track down my personal email address to discuss further!)&lt;/p&gt;\n\n&lt;p&gt;&lt;a href=\"https://forms.gle/Gr1i8NP9m2eLJeYR6\"&gt;Here&lt;/a&gt; is the link to the Common Lisp survey for 2020 I have put together. I would like to keep the survey open for 2 weeks (is more time needed?), and will make the results available. Feel free to reach out below, or PM me if you have any feedback. Again, thank you for your participation!&lt;/p&gt;\n\n&lt;p&gt;EDIT: This survey has been closed. Thank you to all who completed it. I will post a follow up reflection of the results. Thank you again!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "f8wqkj", "is_robot_indexable": true, "report_reasons": null, "author": "developernotes", "discussion_type": null, "num_comments": 37, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/f8wqkj/state_of_common_lisp_survey_2020/", "parent_whitelist_status": null, "stickied": true, "url": "https://www.reddit.com/r/Common_Lisp/comments/f8wqkj/state_of_common_lisp_survey_2020/", "subreddit_subscribers": 4314, "created_utc": 1582573070.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_j6dwn", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "bgutter/cl-phonetic - A phonetic pattern matching library for Common Lisp.", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hzcwsx", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 19, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 19, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1595964098.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/bgutter/cl-phonetic", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hzcwsx", "is_robot_indexable": true, "report_reasons": null, "author": "dzecniv", "discussion_type": null, "num_comments": 2, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hzcwsx/bgutterclphonetic_a_phonetic_pattern_matching/", "parent_whitelist_status": null, "stickied": false, "url": "https://github.com/bgutter/cl-phonetic", "subreddit_subscribers": 4314, "created_utc": 1595935298.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "Greetings lispers.\n\nGoogle has re-opened source cl-protobufs.\n\nIt is in active developement, we are currently working on completeing proto3 syntax.\n\n[https://github.com/qitab/cl-protobufs](https://github.com/qitab/cl-protobufs)\n\nI know it currently loads and all tests pass with sbcl and ccl, It should work with abcl.\n\nWe've fixed a lot of the underlying bugs, dramatically improved the serialization and deserialization time, and made it completely implement the proto2 spec. Ben has implemented map and oneof.\n\nI plan on replacing the current cl-protobufs that Google released 5 ish years ago on quicklisp, but we will keep the old version on Gitlab. I wanted to warn/ see if anyone is using the gitlab version of cl-protobufs?\n\n[https://gitlab.common-lisp.net/qitab/cl-protobufs](https://gitlab.common-lisp.net/qitab/cl-protobufs)\n\nThe only downside is you have to run protoc on your .proto files, but one option is to run it once and then use the translated .lisp files produced by protoc instead.", "author_fullname": "t2_11ea1o", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "cl-protobufs [x-post with /lisp]", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hz2rjx", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 14, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 14, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595918958.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Greetings lispers.&lt;/p&gt;\n\n&lt;p&gt;Google has re-opened source cl-protobufs.&lt;/p&gt;\n\n&lt;p&gt;It is in active developement, we are currently working on completeing proto3 syntax.&lt;/p&gt;\n\n&lt;p&gt;&lt;a href=\"https://github.com/qitab/cl-protobufs\"&gt;https://github.com/qitab/cl-protobufs&lt;/a&gt;&lt;/p&gt;\n\n&lt;p&gt;I know it currently loads and all tests pass with sbcl and ccl, It should work with abcl.&lt;/p&gt;\n\n&lt;p&gt;We&amp;#39;ve fixed a lot of the underlying bugs, dramatically improved the serialization and deserialization time, and made it completely implement the proto2 spec. Ben has implemented map and oneof.&lt;/p&gt;\n\n&lt;p&gt;I plan on replacing the current cl-protobufs that Google released 5 ish years ago on quicklisp, but we will keep the old version on Gitlab. I wanted to warn/ see if anyone is using the gitlab version of cl-protobufs?&lt;/p&gt;\n\n&lt;p&gt;&lt;a href=\"https://gitlab.common-lisp.net/qitab/cl-protobufs\"&gt;https://gitlab.common-lisp.net/qitab/cl-protobufs&lt;/a&gt;&lt;/p&gt;\n\n&lt;p&gt;The only downside is you have to run protoc on your .proto files, but one option is to run it once and then use the translated .lisp files produced by protoc instead.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hz2rjx", "is_robot_indexable": true, "report_reasons": null, "author": "jgodbo", "discussion_type": null, "num_comments": 2, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hz2rjx/clprotobufs_xpost_with_lisp/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hz2rjx/clprotobufs_xpost_with_lisp/", "subreddit_subscribers": 4314, "created_utc": 1595890158.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "I tried to find full zookeeper support for Common Lisp and couldn't find any. If I am not missing something I am planning to post a bounty to implement it. How much work do you guys think it will take?", "author_fullname": "t2_16q9gbma", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Common Lisp Zookeeper support", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hyz1rj", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 7, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 7, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595906991.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I tried to find full zookeeper support for Common Lisp and couldn&amp;#39;t find any. If I am not missing something I am planning to post a bounty to implement it. How much work do you guys think it will take?&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hyz1rj", "is_robot_indexable": true, "report_reasons": null, "author": "zu1us", "discussion_type": null, "num_comments": 1, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hyz1rj/common_lisp_zookeeper_support/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hyz1rj/common_lisp_zookeeper_support/", "subreddit_subscribers": 4314, "created_utc": 1595878191.0, "num_crossposts": 1, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "I had a coworker of mine say that OOP in lisp languages is less expressive then \u201cnormal\u201d (non lisp) languages because they don\u2019t have a different syntax for methods. In a non-lisp languages you have `func(args)` for functions and `object.method(args)` for methods. In lisp you only have `(func args)`. This means you can\u2019t implement something like a polymorphic print or overload the `+` operator. You have to pick names for your methods that don\u2019t conflict with functions or namespace them.\n\nIs my coworkers assessment fair or are there practical ways that CLOS works around this?", "author_fullname": "t2_z9rto", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "OOP in Common Lisp less expressive?", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hy8y63", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.69, "author_flair_background_color": null, "subreddit_type": "public", "ups": 5, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 5, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595806614.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I had a coworker of mine say that OOP in lisp languages is less expressive then \u201cnormal\u201d (non lisp) languages because they don\u2019t have a different syntax for methods. In a non-lisp languages you have &lt;code&gt;func(args)&lt;/code&gt; for functions and &lt;code&gt;object.method(args)&lt;/code&gt; for methods. In lisp you only have &lt;code&gt;(func args)&lt;/code&gt;. This means you can\u2019t implement something like a polymorphic print or overload the &lt;code&gt;+&lt;/code&gt; operator. You have to pick names for your methods that don\u2019t conflict with functions or namespace them.&lt;/p&gt;\n\n&lt;p&gt;Is my coworkers assessment fair or are there practical ways that CLOS works around this?&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hy8y63", "is_robot_indexable": true, "report_reasons": null, "author": "celeritasCelery", "discussion_type": null, "num_comments": 19, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hy8y63/oop_in_common_lisp_less_expressive/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hy8y63/oop_in_common_lisp_less_expressive/", "subreddit_subscribers": 4314, "created_utc": 1595777814.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "FWIW: For newbies to CL.\n\nI was struggling to install cl-async library using quicklisp. Ran into various errors.\n\nFortunately I stumbled upon this [https://github.com/ceramic/ceramic/issues/50#issuecomment-347022936](https://github.com/ceramic/ceramic/issues/50#issuecomment-347022936). So I installed libuv1-dev as well. Then I was able to install cl-async.\n\nI don't know if this is the proper way of  correcting the error, but it seems to have worked. I have not yet played around with cl-async, so I don't know what happens next, but at least (ql:quickload \"cl-async\") does not throw any error.\n\nI don't know if this can be generalized. For example, if a library xyz is a requirement for a CL library, and if quicklisp-install fails, try installing xyz-dev as well. \n\nSummary:\n\nIf you want to install cl-async/cl-libuv; in addition to installing libuv, you may also need to install libuv1-dev. And that might work.", "author_fullname": "t2_5haau9gl", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Possible Useful Information (for Newbies)", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hxrqap", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.91, "author_flair_background_color": null, "subreddit_type": "public", "ups": 9, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 9, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595731042.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;FWIW: For newbies to CL.&lt;/p&gt;\n\n&lt;p&gt;I was struggling to install cl-async library using quicklisp. Ran into various errors.&lt;/p&gt;\n\n&lt;p&gt;Fortunately I stumbled upon this &lt;a href=\"https://github.com/ceramic/ceramic/issues/50#issuecomment-347022936\"&gt;https://github.com/ceramic/ceramic/issues/50#issuecomment-347022936&lt;/a&gt;. So I installed libuv1-dev as well. Then I was able to install cl-async.&lt;/p&gt;\n\n&lt;p&gt;I don&amp;#39;t know if this is the proper way of  correcting the error, but it seems to have worked. I have not yet played around with cl-async, so I don&amp;#39;t know what happens next, but at least (ql:quickload &amp;quot;cl-async&amp;quot;) does not throw any error.&lt;/p&gt;\n\n&lt;p&gt;I don&amp;#39;t know if this can be generalized. For example, if a library xyz is a requirement for a CL library, and if quicklisp-install fails, try installing xyz-dev as well. &lt;/p&gt;\n\n&lt;p&gt;Summary:&lt;/p&gt;\n\n&lt;p&gt;If you want to install cl-async/cl-libuv; in addition to installing libuv, you may also need to install libuv1-dev. And that might work.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hxrqap", "is_robot_indexable": true, "report_reasons": null, "author": "polymath-in", "discussion_type": null, "num_comments": 8, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hxrqap/possible_useful_information_for_newbies/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hxrqap/possible_useful_information_for_newbies/", "subreddit_subscribers": 4314, "created_utc": 1595702242.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "How can I easily evaluate a form in the REPL (SBCL/slime) and either inhibit entirely printing the output  value of the form, or maybe limit the output to something reasonably long.\n\nE.g.\n\nCL-USER&gt; (loop for i below 1000000 collect i)\n\nwill now output a million-entry list to the REPL (I suppose, at any rate it does for very long lists). Moreover, once it is output to the \\*slime-repl\\* buffer, the output cannot be deleted from the REPL in any way I can see.\n\nAs long as I am asking REPL questions, does SBCL have an easy way to number input prompts?", "author_fullname": "t2_5outz", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Inhibit printing in the repl?", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hxj196", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.81, "author_flair_background_color": null, "subreddit_type": "public", "ups": 3, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 3, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595692413.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;How can I easily evaluate a form in the REPL (SBCL/slime) and either inhibit entirely printing the output  value of the form, or maybe limit the output to something reasonably long.&lt;/p&gt;\n\n&lt;p&gt;E.g.&lt;/p&gt;\n\n&lt;p&gt;CL-USER&amp;gt; (loop for i below 1000000 collect i)&lt;/p&gt;\n\n&lt;p&gt;will now output a million-entry list to the REPL (I suppose, at any rate it does for very long lists). Moreover, once it is output to the *slime-repl* buffer, the output cannot be deleted from the REPL in any way I can see.&lt;/p&gt;\n\n&lt;p&gt;As long as I am asking REPL questions, does SBCL have an easy way to number input prompts?&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hxj196", "is_robot_indexable": true, "report_reasons": null, "author": "kendradog", "discussion_type": null, "num_comments": 9, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hxj196/inhibit_printing_in_the_repl/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hxj196/inhibit_printing_in_the_repl/", "subreddit_subscribers": 4314, "created_utc": 1595663613.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_24eol", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Automated Program Transformations, using the ACL2 theorem prover", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hx5eqy", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.94, "author_flair_background_color": null, "subreddit_type": "public", "ups": 12, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 12, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1595638510.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "kestrel.edu", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://www.kestrel.edu/research/apt/", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hx5eqy", "is_robot_indexable": true, "report_reasons": null, "author": "lispm", "discussion_type": null, "num_comments": 1, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hx5eqy/automated_program_transformations_using_the_acl2/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.kestrel.edu/research/apt/", "subreddit_subscribers": 4314, "created_utc": 1595609710.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_j6dwn", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "cl-aristid - Draw Lindenmayer Systems with Common LISP! (describe plant growth)", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hwzm0m", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.85, "author_flair_background_color": null, "subreddit_type": "public", "ups": 17, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 17, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1595616522.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/FdelMazo/cl-aristid/", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hwzm0m", "is_robot_indexable": true, "report_reasons": null, "author": "dzecniv", "discussion_type": null, "num_comments": 1, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hwzm0m/claristid_draw_lindenmayer_systems_with_common/", "parent_whitelist_status": null, "stickied": false, "url": "https://github.com/FdelMazo/cl-aristid/", "subreddit_subscribers": 4314, "created_utc": 1595587722.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "I have a highly superficial understanding of concurrency. I have been coming across various terms, for example\n\n1. Process\n2. Thread\n3. Green-Thread\n4. Fiber\n5. Proto-thread\n6. Callback\n7. Continuations\n8. Event-Loop\n9. Async/Await\n10. Coroutines\n11. Goroutines\n12. Etc.\n\nI also run into their taxonomy as in Hardware-managed/Software-managed; Kernel/OS-managed vs User-managed vs Runtime-managed; Shared-Memory vs No-shared-Memory.\n\nI want to understand (in some sense) just enough (basic concepts) to be able to apply my knowledge to Web Development in CL. Google/Duckduckgo searches lead me to Javascript-eventloop, or Python async-await (more often than not). I am looking for something where some basics/fundamentals are covered either in (nearly) programming-language independent manner, Or, are done specifically in CL itself. (This is to make it easier for me, as I am a beginner in programming as well as CL).\n\nAny recommendations/inputs are welcome. Even if it helps me to refine my question, so that in my next post I could ask more concrete question, that will be great. Thanks in anticipation.", "author_fullname": "t2_5haau9gl", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "What is the recommended way to learn Concurrent/Async Programming in CL? (Newbie Question).", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hwieto", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.84, "author_flair_background_color": null, "subreddit_type": "public", "ups": 11, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 11, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": 1595521800.0, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595549457.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I have a highly superficial understanding of concurrency. I have been coming across various terms, for example&lt;/p&gt;\n\n&lt;ol&gt;\n&lt;li&gt;Process&lt;/li&gt;\n&lt;li&gt;Thread&lt;/li&gt;\n&lt;li&gt;Green-Thread&lt;/li&gt;\n&lt;li&gt;Fiber&lt;/li&gt;\n&lt;li&gt;Proto-thread&lt;/li&gt;\n&lt;li&gt;Callback&lt;/li&gt;\n&lt;li&gt;Continuations&lt;/li&gt;\n&lt;li&gt;Event-Loop&lt;/li&gt;\n&lt;li&gt;Async/Await&lt;/li&gt;\n&lt;li&gt;Coroutines&lt;/li&gt;\n&lt;li&gt;Goroutines&lt;/li&gt;\n&lt;li&gt;Etc.&lt;/li&gt;\n&lt;/ol&gt;\n\n&lt;p&gt;I also run into their taxonomy as in Hardware-managed/Software-managed; Kernel/OS-managed vs User-managed vs Runtime-managed; Shared-Memory vs No-shared-Memory.&lt;/p&gt;\n\n&lt;p&gt;I want to understand (in some sense) just enough (basic concepts) to be able to apply my knowledge to Web Development in CL. Google/Duckduckgo searches lead me to Javascript-eventloop, or Python async-await (more often than not). I am looking for something where some basics/fundamentals are covered either in (nearly) programming-language independent manner, Or, are done specifically in CL itself. (This is to make it easier for me, as I am a beginner in programming as well as CL).&lt;/p&gt;\n\n&lt;p&gt;Any recommendations/inputs are welcome. Even if it helps me to refine my question, so that in my next post I could ask more concrete question, that will be great. Thanks in anticipation.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hwieto", "is_robot_indexable": true, "report_reasons": null, "author": "polymath-in", "discussion_type": null, "num_comments": 51, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hwieto/what_is_the_recommended_way_to_learn/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hwieto/what_is_the_recommended_way_to_learn/", "subreddit_subscribers": 4314, "created_utc": 1595520657.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_j6dwn", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "log4cl-extras - provides a JSON formatter, a macro to capture context variables and a macro to log unhandled tracebacks.", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hv5orp", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 17, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 17, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1595359579.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "40ants.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://40ants.com/lisp-project-of-the-day/2020/07/0136-log4cl-extras.html", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hv5orp", "is_robot_indexable": true, "report_reasons": null, "author": "dzecniv", "discussion_type": null, "num_comments": 0, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hv5orp/log4clextras_provides_a_json_formatter_a_macro_to/", "parent_whitelist_status": null, "stickied": false, "url": "https://40ants.com/lisp-project-of-the-day/2020/07/0136-log4cl-extras.html", "subreddit_subscribers": 4314, "created_utc": 1595330779.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "I need to write 2 functions for a school assignment. I have already written them and they both work, but my teacher is not happy with them and I have no idea how to do them otherwise.  \n\nThe first one is supposed to return the position in the list of the argument it's been called with, nil if it's not in the list.\n\nHere's what I got\n\n    (defun myposition (lettre liste)\n      (cond\n        ((not (member lettre liste)) (return-from myposition nil))\n        ((equal (car liste) lettre) 0)\n        ((+ 1 (myposition lettre (cdr liste)))) ) )\n\nHe won't allow us to use member, or return-from, and I don't know how one function can return either a number or nil...\n\nThe second function is supposed to return the n cdr of a list, cdr 0 being the list itself\n\nHere's what I came up with\n\n    (defun niemecdr (item liste)\n      (cond\n        ((not liste) (return-from niemecdr nil))\n        ((equal item 0) (return-from niemecdr liste))\n        (t (niemecdr (- item 1) (cdr liste))) ) )\n\nFor this one he said that my function was crazy (sorry I don't know how to better translate what he actually said) and again I shouldn't use return-from or what am I going to use when we start writing complexe functions, an atomic bomb?\n\n(Sorry about the rant, I'm kinda pissed about the whole thing)", "author_fullname": "t2_of02h", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "I need help with 2 functions !", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_huy3el", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.6, "author_flair_background_color": null, "subreddit_type": "public", "ups": 2, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 2, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595323101.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I need to write 2 functions for a school assignment. I have already written them and they both work, but my teacher is not happy with them and I have no idea how to do them otherwise.  &lt;/p&gt;\n\n&lt;p&gt;The first one is supposed to return the position in the list of the argument it&amp;#39;s been called with, nil if it&amp;#39;s not in the list.&lt;/p&gt;\n\n&lt;p&gt;Here&amp;#39;s what I got&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;(defun myposition (lettre liste)\n  (cond\n    ((not (member lettre liste)) (return-from myposition nil))\n    ((equal (car liste) lettre) 0)\n    ((+ 1 (myposition lettre (cdr liste)))) ) )\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;He won&amp;#39;t allow us to use member, or return-from, and I don&amp;#39;t know how one function can return either a number or nil...&lt;/p&gt;\n\n&lt;p&gt;The second function is supposed to return the n cdr of a list, cdr 0 being the list itself&lt;/p&gt;\n\n&lt;p&gt;Here&amp;#39;s what I came up with&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;(defun niemecdr (item liste)\n  (cond\n    ((not liste) (return-from niemecdr nil))\n    ((equal item 0) (return-from niemecdr liste))\n    (t (niemecdr (- item 1) (cdr liste))) ) )\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;For this one he said that my function was crazy (sorry I don&amp;#39;t know how to better translate what he actually said) and again I shouldn&amp;#39;t use return-from or what am I going to use when we start writing complexe functions, an atomic bomb?&lt;/p&gt;\n\n&lt;p&gt;(Sorry about the rant, I&amp;#39;m kinda pissed about the whole thing)&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "huy3el", "is_robot_indexable": true, "report_reasons": null, "author": "matmatomate", "discussion_type": null, "num_comments": 12, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/huy3el/i_need_help_with_2_functions/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/huy3el/i_need_help_with_2_functions/", "subreddit_subscribers": 4314, "created_utc": 1595294301.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "On Linux should I be installing using my distro's package manager, the package manager in Emacs, going [here](https://github.com/slime/slime), or something else altogether?", "author_fullname": "t2_5tmu0", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "How should I install Slime? (Debian Linux)", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_huk6fx", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 12, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 12, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595276035.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;On Linux should I be installing using my distro&amp;#39;s package manager, the package manager in Emacs, going &lt;a href=\"https://github.com/slime/slime\"&gt;here&lt;/a&gt;, or something else altogether?&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "huk6fx", "is_robot_indexable": true, "report_reasons": null, "author": "shogun333", "discussion_type": null, "num_comments": 4, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/huk6fx/how_should_i_install_slime_debian_linux/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/huk6fx/how_should_i_install_slime_debian_linux/", "subreddit_subscribers": 4314, "created_utc": 1595247235.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "I am trying to understand [https://github.com/fukamachi/lack](https://github.com/fukamachi/lack) (Application Builder for Clack). Further, In particular I am trying to understand the usage of the \"responder\" facility. I understand \"env\" as an alist/plist which contains http/request/response variables. What does \"responder\" contain? Is it a function? Can one call it from outside?\n\nMy goal is to use \"responder\" facility to write an SSE-handler (server-sent events). For SSE header keep-alive is true, and content-type is event-stream. And it is used to send a message to (keep-alive: true) clients whenever some event happens in another part of the program.\n\nThanking you in anticipation.", "author_fullname": "t2_5haau9gl", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "What is the recommended way to read/understand code written by others? (Newbie Question).", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hu019r", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.95, "author_flair_background_color": null, "subreddit_type": "public", "ups": 20, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 20, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595191999.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I am trying to understand &lt;a href=\"https://github.com/fukamachi/lack\"&gt;https://github.com/fukamachi/lack&lt;/a&gt; (Application Builder for Clack). Further, In particular I am trying to understand the usage of the &amp;quot;responder&amp;quot; facility. I understand &amp;quot;env&amp;quot; as an alist/plist which contains http/request/response variables. What does &amp;quot;responder&amp;quot; contain? Is it a function? Can one call it from outside?&lt;/p&gt;\n\n&lt;p&gt;My goal is to use &amp;quot;responder&amp;quot; facility to write an SSE-handler (server-sent events). For SSE header keep-alive is true, and content-type is event-stream. And it is used to send a message to (keep-alive: true) clients whenever some event happens in another part of the program.&lt;/p&gt;\n\n&lt;p&gt;Thanking you in anticipation.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hu019r", "is_robot_indexable": true, "report_reasons": null, "author": "polymath-in", "discussion_type": null, "num_comments": 62, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hu019r/what_is_the_recommended_way_to_readunderstand/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hu019r/what_is_the_recommended_way_to_readunderstand/", "subreddit_subscribers": 4314, "created_utc": 1595163199.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_dzq0o", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "html-&gt;string: the simplest HTML templating library west of the Mississippi", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_htbl8p", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.92, "author_flair_background_color": null, "subreddit_type": "public", "ups": 11, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 11, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1595080021.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "gist.github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://gist.github.com/markasoftware/ab357f1b967b3f656d026e33fec3bc0e", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "htbl8p", "is_robot_indexable": true, "report_reasons": null, "author": "markasoftware", "discussion_type": null, "num_comments": 3, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/htbl8p/htmlstring_the_simplest_html_templating_library/", "parent_whitelist_status": null, "stickied": false, "url": "https://gist.github.com/markasoftware/ab357f1b967b3f656d026e33fec3bc0e", "subreddit_subscribers": 4314, "created_utc": 1595051221.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_j6dwn", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "mmontone/hunchentoot-errors - Augments Hunchentoot error pages and logs with request and session information.", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_htdq46", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.75, "author_flair_background_color": null, "subreddit_type": "public", "ups": 4, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 4, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1595092349.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/mmontone/hunchentoot-errors", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "htdq46", "is_robot_indexable": true, "report_reasons": null, "author": "dzecniv", "discussion_type": null, "num_comments": 0, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/htdq46/mmontonehunchentooterrors_augments_hunchentoot/", "parent_whitelist_status": null, "stickied": false, "url": "https://github.com/mmontone/hunchentoot-errors", "subreddit_subscribers": 4314, "created_utc": 1595063549.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_j6dwn", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "ralt/linux-packaging - build .deb, .rpm or .pkg linux packages with a simple ASDF declaration", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hsun9v", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.97, "author_flair_background_color": null, "subreddit_type": "public", "ups": 22, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 22, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1595017006.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "gitlab.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://gitlab.com/ralt/linux-packaging", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hsun9v", "is_robot_indexable": true, "report_reasons": null, "author": "dzecniv", "discussion_type": null, "num_comments": 2, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hsun9v/raltlinuxpackaging_build_deb_rpm_or_pkg_linux/", "parent_whitelist_status": null, "stickied": false, "url": "https://gitlab.com/ralt/linux-packaging", "subreddit_subscribers": 4314, "created_utc": 1594988206.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_mgz32", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Lite Github REST API client", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_ht0o5r", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 8, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 8, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1595038142.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/ccqpein/Github-API-CL", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "ht0o5r", "is_robot_indexable": true, "report_reasons": null, "author": "ccQpein", "discussion_type": null, "num_comments": 1, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/ht0o5r/lite_github_rest_api_client/", "parent_whitelist_status": null, "stickied": false, "url": "https://github.com/ccqpein/Github-API-CL", "subreddit_subscribers": 4314, "created_utc": 1595009342.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "Hello Everyone!\n\nFirst of all, I shall say that I'm amazed and fully in love with power/productivity of common lisp. Changed my mind on how I see programming languages..So much, that I rewrote some domain logic services I had in Golang..with 1/10 of the pain and time. (Included in that pain learning common lisp from 0). They are going into production once I make sure everything is correct, but so far everything looks perfect!! :)\n\nThe question on this post is, while programming on common lisp, I tend to write small macros and save them to a utility library I created, 'martillo' (hammer in english) .\n\nI'm not sure if I'm re-inventing the wheel or if it's normal thing in common lisp , but it solves my issues at hand .  \n\nOne example, is validation \n\n(when \\*something\\* (error \"Failed\") \n\nor\n\n (when (not \\*something\\*) (error \"failed))\n\nSome domain logic I had  to write lot of this ones, so I created a macro for that. Is that correct, recommended? I'm still new to common lisp, so I guess will have to my re writes in to future I guess.\n\n&amp;#x200B;\n\nThank you!", "author_fullname": "t2_6fhgcml3", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Utility library? - CL journey to production", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hswmc9", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.94, "author_flair_background_color": null, "subreddit_type": "public", "ups": 12, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 12, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1595024863.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Hello Everyone!&lt;/p&gt;\n\n&lt;p&gt;First of all, I shall say that I&amp;#39;m amazed and fully in love with power/productivity of common lisp. Changed my mind on how I see programming languages..So much, that I rewrote some domain logic services I had in Golang..with 1/10 of the pain and time. (Included in that pain learning common lisp from 0). They are going into production once I make sure everything is correct, but so far everything looks perfect!! :)&lt;/p&gt;\n\n&lt;p&gt;The question on this post is, while programming on common lisp, I tend to write small macros and save them to a utility library I created, &amp;#39;martillo&amp;#39; (hammer in english) .&lt;/p&gt;\n\n&lt;p&gt;I&amp;#39;m not sure if I&amp;#39;m re-inventing the wheel or if it&amp;#39;s normal thing in common lisp , but it solves my issues at hand .  &lt;/p&gt;\n\n&lt;p&gt;One example, is validation &lt;/p&gt;\n\n&lt;p&gt;(when *something* (error &amp;quot;Failed&amp;quot;) &lt;/p&gt;\n\n&lt;p&gt;or&lt;/p&gt;\n\n&lt;p&gt;(when (not *something*) (error &amp;quot;failed))&lt;/p&gt;\n\n&lt;p&gt;Some domain logic I had  to write lot of this ones, so I created a macro for that. Is that correct, recommended? I&amp;#39;m still new to common lisp, so I guess will have to my re writes in to future I guess.&lt;/p&gt;\n\n&lt;p&gt;&amp;#x200B;&lt;/p&gt;\n\n&lt;p&gt;Thank you!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hswmc9", "is_robot_indexable": true, "report_reasons": null, "author": "diegogub2", "discussion_type": null, "num_comments": 11, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hswmc9/utility_library_cl_journey_to_production/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hswmc9/utility_library_cl_journey_to_production/", "subreddit_subscribers": 4314, "created_utc": 1594996063.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_nyrph4o", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Use Common Lisp to rewrite binaries -- the binary re-programmable programming language", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hs96ec", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.97, "author_flair_background_color": null, "subreddit_type": "public", "ups": 37, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 37, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1594933175.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "grammatech.github.io", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://grammatech.github.io/gtirb/md_stack-stamp.html", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hs96ec", "is_robot_indexable": true, "report_reasons": null, "author": "eric-schulte", "discussion_type": null, "num_comments": 0, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hs96ec/use_common_lisp_to_rewrite_binaries_the_binary/", "parent_whitelist_status": null, "stickied": false, "url": "https://grammatech.github.io/gtirb/md_stack-stamp.html", "subreddit_subscribers": 4314, "created_utc": 1594904375.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_1cqjsfrj", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Taps - A small number of functions that make SERIES more convenient to work", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hr3ibu", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 21, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 21, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1594769109.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/mikelevins/taps", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hr3ibu", "is_robot_indexable": true, "report_reasons": null, "author": "_priyadarshan", "discussion_type": null, "num_comments": 2, "send_replies": false, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hr3ibu/taps_a_small_number_of_functions_that_make_series/", "parent_whitelist_status": null, "stickied": false, "url": "https://github.com/mikelevins/taps", "subreddit_subscribers": 4314, "created_utc": 1594740309.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "I have been working my way through NOC and playing about first with the P5.js and then on Python by importing graphics. I got excited when I read about Sketch, which is available on Quicklisp, but holy hell if it hasn't been an absolute pain. I have followed the instructions and got added the paths but it just doesn't seem to want to work.   \nI would like to start applying some of the things I 'm learning in lisp, as I have done with other languages, but graphics and Lisp seem to circle I just can't square. Any help, or advice would be much appreciated.", "author_fullname": "t2_fagr6", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Working on Shiffman's Nature of Code using Lisp", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hpyg4j", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.95, "author_flair_background_color": null, "subreddit_type": "public", "ups": 16, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 16, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1594604485.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I have been working my way through NOC and playing about first with the P5.js and then on Python by importing graphics. I got excited when I read about Sketch, which is available on Quicklisp, but holy hell if it hasn&amp;#39;t been an absolute pain. I have followed the instructions and got added the paths but it just doesn&amp;#39;t seem to want to work.&lt;br/&gt;\nI would like to start applying some of the things I &amp;#39;m learning in lisp, as I have done with other languages, but graphics and Lisp seem to circle I just can&amp;#39;t square. Any help, or advice would be much appreciated.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hpyg4j", "is_robot_indexable": true, "report_reasons": null, "author": "Perrin_Barclay", "discussion_type": null, "num_comments": 12, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hpyg4j/working_on_shiffmans_nature_of_code_using_lisp/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hpyg4j/working_on_shiffmans_nature_of_code_using_lisp/", "subreddit_subscribers": 4314, "created_utc": 1594575685.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "Hi everyone\n\nI'm thinking of writing a programming language that compiles down to lisp. I have two questions:  \n\n\n1. I found these docs for [Clisp bytecode](https://www.gnu.org/software/clisp/impnotes/instr-set.html). How do I write some assembly in Clisp bytecode and run it?\n2. Is it better to translate into Clisp bytecode or into plain CL syntax and compile to SBCL in terms of performance?  \nThe cross-platform benefits of running on the Clisp VM isn't a concern for what I'm doing", "author_fullname": "t2_5ua3gvsg", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Best approach for language compiling to lisp", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hphwqg", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.79, "author_flair_background_color": null, "subreddit_type": "public", "ups": 8, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 8, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1594530929.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.Common_Lisp", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Hi everyone&lt;/p&gt;\n\n&lt;p&gt;I&amp;#39;m thinking of writing a programming language that compiles down to lisp. I have two questions:  &lt;/p&gt;\n\n&lt;ol&gt;\n&lt;li&gt;I found these docs for &lt;a href=\"https://www.gnu.org/software/clisp/impnotes/instr-set.html\"&gt;Clisp bytecode&lt;/a&gt;. How do I write some assembly in Clisp bytecode and run it?&lt;/li&gt;\n&lt;li&gt;Is it better to translate into Clisp bytecode or into plain CL syntax and compile to SBCL in terms of performance?&lt;br/&gt;\nThe cross-platform benefits of running on the Clisp VM isn&amp;#39;t a concern for what I&amp;#39;m doing&lt;/li&gt;\n&lt;/ol&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hphwqg", "is_robot_indexable": true, "report_reasons": null, "author": "risto2020", "discussion_type": null, "num_comments": 8, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hphwqg/best_approach_for_language_compiling_to_lisp/", "parent_whitelist_status": null, "stickied": false, "url": "https://www.reddit.com/r/Common_Lisp/comments/hphwqg/best_approach_for_language_compiling_to_lisp/", "subreddit_subscribers": 4314, "created_utc": 1594502129.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_1r2wgci2", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Archive of UMASS Lisp resources", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hp32td", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 7, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 7, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "crosspost_parent_list": [{"approved_at_utc": null, "subreddit": "lisp", "selftext": "", "author_fullname": "t2_1r2wgci2", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Archive of UMASS Lisp resources", "link_flair_richtext": [], "subreddit_name_prefixed": "r/lisp", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hp32ck", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 34, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 34, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1594466607.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "web.archive.org", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://web.archive.org/web/20070602152438/http://eksl-www.cs.umass.edu/lisp-resources/index.html", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh35", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hp32ck", "is_robot_indexable": true, "report_reasons": null, "author": "bekorchi", "discussion_type": null, "num_comments": 2, "send_replies": true, "whitelist_status": "all_ads", "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/lisp/comments/hp32ck/archive_of_umass_lisp_resources/", "parent_whitelist_status": "all_ads", "stickied": false, "url": "https://web.archive.org/web/20070602152438/http://eksl-www.cs.umass.edu/lisp-resources/index.html", "subreddit_subscribers": 28667, "created_utc": 1594437807.0, "num_crossposts": 1, "media": null, "is_video": false}], "created": 1594466663.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "web.archive.org", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://web.archive.org/web/20070602152438/http://eksl-www.cs.umass.edu/lisp-resources/index.html", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hp32td", "is_robot_indexable": true, "report_reasons": null, "author": "bekorchi", "discussion_type": null, "num_comments": 1, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "crosspost_parent": "t3_hp32ck", "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hp32td/archive_of_umass_lisp_resources/", "parent_whitelist_status": null, "stickied": false, "url": "https://web.archive.org/web/20070602152438/http://eksl-www.cs.umass.edu/lisp-resources/index.html", "subreddit_subscribers": 4314, "created_utc": 1594437863.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_leetezs", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Just found this great resource", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hobgl3", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.9, "author_flair_background_color": null, "subreddit_type": "public", "ups": 28, "total_awards_received": 0, "media_embed": {"content": "&lt;iframe width=\"600\" height=\"338\" src=\"https://www.youtube.com/embed/3GEAINRCbJ4?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen&gt;&lt;/iframe&gt;", "width": 600, "scrolling": false, "height": 338}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": {"oembed": {"provider_url": "https://www.youtube.com/", "title": "Common Lisp Tutorial 1: Coin Toss", "html": "&lt;iframe width=\"600\" height=\"338\" src=\"https://www.youtube.com/embed/3GEAINRCbJ4?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen&gt;&lt;/iframe&gt;", "thumbnail_width": 480, "height": 338, "width": 600, "version": "1.0", "author_name": "Neil Munro", "provider_name": "YouTube", "thumbnail_url": "https://i.ytimg.com/vi/3GEAINRCbJ4/hqdefault.jpg", "type": "video", "thumbnail_height": 360, "author_url": "https://www.youtube.com/user/njalmunro"}, "type": "youtube.com"}, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {"content": "&lt;iframe width=\"600\" height=\"338\" src=\"https://www.youtube.com/embed/3GEAINRCbJ4?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen&gt;&lt;/iframe&gt;", "width": 600, "scrolling": false, "media_domain_url": "https://www.redditmedia.com/mediaembed/hobgl3", "height": 338}, "link_flair_text": null, "can_mod_post": false, "score": 28, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1594357989.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "youtu.be", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://youtu.be/3GEAINRCbJ4", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hobgl3", "is_robot_indexable": true, "report_reasons": null, "author": "PanamanCreel", "discussion_type": null, "num_comments": 5, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hobgl3/just_found_this_great_resource/", "parent_whitelist_status": null, "stickied": false, "url": "https://youtu.be/3GEAINRCbJ4", "subreddit_subscribers": 4314, "created_utc": 1594329189.0, "num_crossposts": 0, "media": {"oembed": {"provider_url": "https://www.youtube.com/", "title": "Common Lisp Tutorial 1: Coin Toss", "html": "&lt;iframe width=\"600\" height=\"338\" src=\"https://www.youtube.com/embed/3GEAINRCbJ4?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen&gt;&lt;/iframe&gt;", "thumbnail_width": 480, "height": 338, "width": 600, "version": "1.0", "author_name": "Neil Munro", "provider_name": "YouTube", "thumbnail_url": "https://i.ytimg.com/vi/3GEAINRCbJ4/hqdefault.jpg", "type": "video", "thumbnail_height": 360, "author_url": "https://www.youtube.com/user/njalmunro"}, "type": "youtube.com"}, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "Common_Lisp", "selftext": "", "author_fullname": "t2_j6dwn", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "cl-spark: sparkline \"charts\" in the console", "link_flair_richtext": [], "subreddit_name_prefixed": "r/Common_Lisp", "hidden": false, "pwls": null, "link_flair_css_class": null, "downs": 0, "top_awarded_type": null, "hide_score": false, "name": "t3_hnqe4w", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 1.0, "author_flair_background_color": null, "subreddit_type": "public", "ups": 18, "total_awards_received": 0, "media_embed": {}, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 18, "approved_by": null, "author_premium": false, "thumbnail": "", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1594273825.0, "link_flair_type": "text", "wls": null, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "40ants.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://40ants.com/lisp-project-of-the-day/2020/07/0124-cl-spark.html", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": false, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qi41", "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "hnqe4w", "is_robot_indexable": true, "report_reasons": null, "author": "dzecniv", "discussion_type": null, "num_comments": 0, "send_replies": true, "whitelist_status": null, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/Common_Lisp/comments/hnqe4w/clspark_sparkline_charts_in_the_console/", "parent_whitelist_status": null, "stickied": false, "url": "https://40ants.com/lisp-project-of-the-day/2020/07/0124-cl-spark.html", "subreddit_subscribers": 4314, "created_utc": 1594245025.0, "num_crossposts": 0, "media": null, "is_video": false}}], "after": "t3_hnqe4w", "before": null}}
\ No newline at end of file
--- a/test/tests.lisp	Tue Aug 11 22:50:46 2020 -0400
+++ b/test/tests.lisp	Tue Aug 11 23:09:18 2020 -0400
@@ -37,6 +37,10 @@
 (defun v (&rest values)
   (coerce values 'vector))
 
+(defun set-equal (x y)
+  (and (null (set-difference x y :test #'equal))
+       (null (set-difference y x :test #'equal))))
+
 
 ;;;; Basic Tests --------------------------------------------------------------
 (defmacro define-basic-tests (name &rest clauses)
@@ -123,6 +127,27 @@
   (#(1 2 3 4 5) "  [  1,    2   ,3,    4,5]"))
 
 
+;;;; Real-World Data ----------------------------------------------------------
+(defmacro define-file-test (name (object path) &body body)
+  `(define-test ,name
+     (let ((,object (with-open-file (s ,path)
+                     (jarl:read t s))))
+       ;; Check that we can roundtrip it first.
+       (is (same ,object (jarl:read t (jarl:print ,object nil))))
+       ,@body)))
+
+
+(define-file-test github/sjl (o "test/data/github/sjl.json")
+  (is (string= "sjl" (gethash "login" o)))
+  (is (= 182 (gethash "public_repos" o))))
+
+(define-file-test github/sjl-repos (o "test/data/github/sjl-repos.json")
+  (is (set-equal '(:true :false)
+                 (remove-duplicates (map 'list (lambda (r) (gethash "fork" r)) o)))))
+
+(define-file-test reddit/r-common_lisp (o "test/data/reddit/r-common_lisp.json"))
+
+
 ;;;; Error Tests --------------------------------------------------------------
 (defmacro define-error-tests (name &rest clauses)
   `(define-test ,name