github
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/datasette/issues/59#issuecomment-344081876 | https://api.github.com/repos/simonw/datasette/issues/59 | 344081876 | MDEyOklzc3VlQ29tbWVudDM0NDA4MTg3Ng== | 9599 | 2017-11-13T22:33:43Z | 2017-11-13T22:33:43Z | OWNER | The `datasette package` command introduced in 4143e3b45c16cbae5e3e3419ef479a71810e7df3 is relevant here. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273157085 | |
https://github.com/simonw/datasette/pull/81#issuecomment-344076554 | https://api.github.com/repos/simonw/datasette/issues/81 | 344076554 | MDEyOklzc3VlQ29tbWVudDM0NDA3NjU1NA== | 9599 | 2017-11-13T22:12:57Z | 2017-11-13T22:12:57Z | OWNER | Hah, I haven't even announced this yet :) Travis is upset because I'm using SQL in the tests which isn't compatible with their version of Python 3. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273595473 | |
https://github.com/simonw/datasette/issues/80#issuecomment-344075696 | https://api.github.com/repos/simonw/datasette/issues/80 | 344075696 | MDEyOklzc3VlQ29tbWVudDM0NDA3NTY5Ng== | 9599 | 2017-11-13T22:09:46Z | 2017-11-13T22:09:46Z | OWNER | Parlgov was throwing errors on one of the views, which takes longer than 1000ms to execute - so I added the ability to customize the time limit in https://github.com/simonw/datasette/commit/1e698787a4dd6df0432021a6814c446c8b69bba2 datasette publish now parlgov.db --metadata parlgov.json --name parlgov --extra-options="--sql_time_limit_ms=3500" now alias https://parlgov-nvkcowlixq.now.sh parlgov.datasettes.com https://parlgov.datasettes.com/parlgov-25f9855/view_cabinet now returns in just over 2.5s | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273569477 | |
https://github.com/simonw/datasette/issues/80#issuecomment-344074443 | https://api.github.com/repos/simonw/datasette/issues/80 | 344074443 | MDEyOklzc3VlQ29tbWVudDM0NDA3NDQ0Mw== | 9599 | 2017-11-13T22:04:54Z | 2017-11-13T22:05:02Z | OWNER | The fivethirtyeight dataset: datasette publish now --name fivethirtyeight --metadata metadata.json fivethirtyeight.db now alias https://fivethirtyeight-jyqfudvjli.now.sh fivethirtyeight.datasettes.com And parlgov: datasette publish now parlgov.db --name=parlgov --metadata=parlgov.json now alias https://parlgov-hqvxuhmbyh.now.sh parlgov.datasettes.com | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273569477 | |
https://github.com/simonw/datasette/issues/55#issuecomment-344061762 | https://api.github.com/repos/simonw/datasette/issues/55 | 344061762 | MDEyOklzc3VlQ29tbWVudDM0NDA2MTc2Mg== | 9599 | 2017-11-13T21:19:43Z | 2017-11-13T21:19:43Z | OWNER | And we're live! https://pypi.python.org/pypi/datasette | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273127117 | |
https://github.com/simonw/datasette/issues/55#issuecomment-344060070 | https://api.github.com/repos/simonw/datasette/issues/55 | 344060070 | MDEyOklzc3VlQ29tbWVudDM0NDA2MDA3MA== | 9599 | 2017-11-13T21:14:13Z | 2017-11-13T21:14:13Z | OWNER | I'm going to add some extra metadata to setup.py and then tag this as version 0.8: git tag 0.8 git push --tags Then to ship to PyPI: python setup.py bdist_wheel twine register dist/datasette-0.8-py3-none-any.whl twine upload dist/datasette-0.8-py3-none-any.whl | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273127117 | |
https://github.com/simonw/datasette/issues/69#issuecomment-344048656 | https://api.github.com/repos/simonw/datasette/issues/69 | 344048656 | MDEyOklzc3VlQ29tbWVudDM0NDA0ODY1Ng== | 9599 | 2017-11-13T20:32:47Z | 2017-11-13T20:32:47Z | OWNER | <img width="908" alt="ak" src="https://user-images.githubusercontent.com/9599/32745247-071aa764-c867-11e7-9748-88e22f5eee57.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273248366 | |
https://github.com/simonw/datasette/issues/69#issuecomment-344019631 | https://api.github.com/repos/simonw/datasette/issues/69 | 344019631 | MDEyOklzc3VlQ29tbWVudDM0NDAxOTYzMQ== | 9599 | 2017-11-13T18:53:13Z | 2017-11-13T18:53:13Z | OWNER | I'm going with a page size of 100 and a max limit of 1000 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273248366 | |
https://github.com/simonw/datasette/issues/74#issuecomment-344018680 | https://api.github.com/repos/simonw/datasette/issues/74 | 344018680 | MDEyOklzc3VlQ29tbWVudDM0NDAxODY4MA== | 9599 | 2017-11-13T18:49:58Z | 2017-11-13T18:49:58Z | OWNER | Turns out it does this already: https://github.com/simonw/datasette/blob/6b3b05b6db0d2a7b7cec8b8dbb4ddc5e12a376b2/datasette/app.py#L96-L107 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273296684 | |
https://github.com/simonw/datasette/issues/51#issuecomment-344017088 | https://api.github.com/repos/simonw/datasette/issues/51 | 344017088 | MDEyOklzc3VlQ29tbWVudDM0NDAxNzA4OA== | 9599 | 2017-11-13T18:44:23Z | 2017-11-13T18:44:23Z | OWNER | Implemented in https://github.com/simonw/datasette/commit/e838bd743d31358b362875854a0ac5e78047727f | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
272735257 | |
https://github.com/simonw/datasette/issues/75#issuecomment-344000982 | https://api.github.com/repos/simonw/datasette/issues/75 | 344000982 | MDEyOklzc3VlQ29tbWVudDM0NDAwMDk4Mg== | 9599 | 2017-11-13T17:50:27Z | 2017-11-13T17:50:27Z | OWNER | This is necessary because one of the fun things to do with this tool is run it locally, e.g.: datasette ~/Library/Application\ Support/Google/Chrome/Default/History -p 8003 BUT... if we enable CORS by default, an evil site could try sniffing for localhost:8003 and attempt to steal data. So we'll enable the CORS headers only if `--cors` is provided to the command, and then use that command in the default Dockerfile. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273509159 | |
https://github.com/simonw/datasette/issues/67#issuecomment-343967020 | https://api.github.com/repos/simonw/datasette/issues/67 | 343967020 | MDEyOklzc3VlQ29tbWVudDM0Mzk2NzAyMA== | 9599 | 2017-11-13T16:06:10Z | 2017-11-13T16:06:10Z | OWNER | http://odewahn.github.io/docker-jumpstart/example.html is helpful | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273192789 | |
https://github.com/simonw/datasette/issues/67#issuecomment-343961784 | https://api.github.com/repos/simonw/datasette/issues/67 | 343961784 | MDEyOklzc3VlQ29tbWVudDM0Mzk2MTc4NA== | 9599 | 2017-11-13T15:50:50Z | 2017-11-13T15:50:50Z | OWNER | `datasette package ...` - same arguments as `datasette publish`. Creates Docker container in your local repo, optionally tagged with `--tag` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273192789 | |
https://github.com/simonw/datasette/issues/68#issuecomment-343951751 | https://api.github.com/repos/simonw/datasette/issues/68 | 343951751 | MDEyOklzc3VlQ29tbWVudDM0Mzk1MTc1MQ== | 9599 | 2017-11-13T15:21:04Z | 2017-11-13T15:21:04Z | OWNER | For first version, I'm just supporting title, source and license information at the database level. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273247186 | |
https://github.com/simonw/datasette/issues/73#issuecomment-343801392 | https://api.github.com/repos/simonw/datasette/issues/73 | 343801392 | MDEyOklzc3VlQ29tbWVudDM0MzgwMTM5Mg== | 9599 | 2017-11-13T03:36:47Z | 2017-11-13T03:36:47Z | OWNER | While I’m at it, let’s allow people to opt out of HTTP/2 push with a ?_nopush=1 argument too - in case they decide they don’t want to receive large 302 responses. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273296178 | |
https://github.com/simonw/datasette/issues/68#issuecomment-343791348 | https://api.github.com/repos/simonw/datasette/issues/68 | 343791348 | MDEyOklzc3VlQ29tbWVudDM0Mzc5MTM0OA== | 9599 | 2017-11-13T02:12:58Z | 2017-11-13T02:12:58Z | OWNER | I should use this on https://fivethirtyeight.datasettes.com/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273247186 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343790984 | https://api.github.com/repos/simonw/datasette/issues/71 | 343790984 | MDEyOklzc3VlQ29tbWVudDM0Mzc5MDk4NA== | 9599 | 2017-11-13T02:09:34Z | 2017-11-13T02:09:34Z | OWNER | HTTP/2 push totally worked on the redirect! fetch('https://fivethirtyeight.datasettes.com/fivethirtyeight/riddler-pick-lowest%2Flow_numbers.csv.jsono').then(r => r.json()).then(console.log) <img width="735" alt="eventbrite_api___v3_destination_search_" src="https://user-images.githubusercontent.com/9599/32706785-6c8dc178-c7d4-11e7-9130-8b6ec84a7430.png"> Meanwhile, in the network pane... <img width="770" alt="eventbrite_api___v3_destination_search_" src="https://user-images.githubusercontent.com/9599/32706803-7f92aac2-c7d4-11e7-9b01-c87e3d2c3891.png"> <img width="771" alt="eventbrite_api___v3_destination_search_" src="https://user-images.githubusercontent.com/9599/32706821-95106bb4-c7d4-11e7-9ad5-31107faa5795.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343781030 | https://api.github.com/repos/simonw/datasette/issues/71 | 343781030 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MTAzMA== | 9599 | 2017-11-13T00:21:05Z | 2017-11-13T02:09:32Z | OWNER | - [x] Have `now domain add -e datasettes.com` run without errors (hopefully just a matter of waiting for the DNS to update) - [x] Alias an example dataset hosted on Now on a datasettes.com subdomain - [x] Confirm that HTTP caching and HTTP/2 redirect pushing works as expected - this may require another page rule | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343789162 | https://api.github.com/repos/simonw/datasette/issues/71 | 343789162 | MDEyOklzc3VlQ29tbWVudDM0Mzc4OTE2Mg== | 9599 | 2017-11-13T01:53:29Z | 2017-11-13T01:53:29Z | OWNER | ``` $ curl -i 'https://fivethirtyeight.datasettes.com/fivethirtyeight-75d605c/obama-commutations%2Fobama_commutations.csv.jsono' HTTP/1.1 200 OK Date: Mon, 13 Nov 2017 01:50:57 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive Set-Cookie: __cfduid=de836090f3e12a60579cc7a1696cf0d9e1510537857; expires=Tue, 13-Nov-18 01:50:57 GMT; path=/; domain=.datasettes.com; HttpOnly; Secure Access-Control-Allow-Origin: * Cache-Control: public, max-age=31536000 X-Now-Region: now-sfo CF-Cache-Status: HIT Expires: Tue, 13 Nov 2018 01:50:57 GMT Server: cloudflare-nginx CF-RAY: 3bce154a6d9293b4-SJC {"database": "fivethirtyeight", "table": "obama-commutations/obama_commutations.csv"...``` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343788817 | https://api.github.com/repos/simonw/datasette/issues/71 | 343788817 | MDEyOklzc3VlQ29tbWVudDM0Mzc4ODgxNw== | 9599 | 2017-11-13T01:50:27Z | 2017-11-13T01:50:27Z | OWNER | https://fivethirtyeight.datasettes.com/ is now up and running. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343788780 | https://api.github.com/repos/simonw/datasette/issues/71 | 343788780 | MDEyOklzc3VlQ29tbWVudDM0Mzc4ODc4MA== | 9599 | 2017-11-13T01:50:01Z | 2017-11-13T01:50:01Z | OWNER | Added another page rule in order to get Cloudflare to always obey cache headers sent by the server: <img width="978" alt="page_rules__datasettes_com___cloudflare_-_web_performance___security" src="https://user-images.githubusercontent.com/9599/32706355-ded7c60a-c7d1-11e7-93da-20989f40d527.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343788581 | https://api.github.com/repos/simonw/datasette/issues/71 | 343788581 | MDEyOklzc3VlQ29tbWVudDM0Mzc4ODU4MQ== | 9599 | 2017-11-13T01:48:17Z | 2017-11-13T01:48:17Z | OWNER | I had to add a rule like this to get letsencrypt certificates on now.sh working: https://github.com/zeit/now-cli/issues/188#issuecomment-270105052 <img width="975" alt="page_rules__datasettes_com___cloudflare_-_web_performance___security" src="https://user-images.githubusercontent.com/9599/32706131-c3d88742-c7cf-11e7-8d39-07d3554ce3cf.png"> I also have to flip this switch off every time I want to add a new alias: <img width="993" alt="crypto__datasettes_com___cloudflare_-_web_performance___security" src="https://user-images.githubusercontent.com/9599/32706326-a8ba1320-c7d1-11e7-8846-eb1e62efa3ed.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343780539 | https://api.github.com/repos/simonw/datasette/issues/71 | 343780539 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDUzOQ== | 9599 | 2017-11-13T00:13:29Z | 2017-11-13T00:19:46Z | OWNER | https://zeit.co/docs/features/dns is docs now domain add -e datasettes.com I had to set up a custom TXT record on `_now.datasettes.com` to get this to work. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343780814 | https://api.github.com/repos/simonw/datasette/issues/71 | 343780814 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDgxNA== | 9599 | 2017-11-13T00:17:50Z | 2017-11-13T00:18:19Z | OWNER | Achieved those redirects using Cloudflare "page rules": https://www.cloudflare.com/a/page-rules/datasettes.com | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343780671 | https://api.github.com/repos/simonw/datasette/issues/71 | 343780671 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDY3MQ== | 9599 | 2017-11-13T00:15:21Z | 2017-11-13T00:17:37Z | OWNER | - [x] Redirect https://datasettes.com/ and https://www.datasettes.com/ to https://github.com/simonw/datasette | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/71#issuecomment-343780141 | https://api.github.com/repos/simonw/datasette/issues/71 | 343780141 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDE0MQ== | 9599 | 2017-11-13T00:06:52Z | 2017-11-13T00:06:52Z | OWNER | I've registered datasettes.com as a domain name for doing this. Now setting it up so Cloudflare and Now can serve content from it. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273278840 | |
https://github.com/simonw/datasette/issues/69#issuecomment-343780039 | https://api.github.com/repos/simonw/datasette/issues/69 | 343780039 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDAzOQ== | 9599 | 2017-11-13T00:05:27Z | 2017-11-13T00:05:27Z | OWNER | I think the only safe way to do this is using SQLite `.fetchmany(1000)` - I can't guarantee that the user has not entered SQL that will outfox a limit in some way. So instead of attempting to edit their SQL, I'll always return 1001 records and let them know if they went over 1000 or not. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273248366 |