{"html_url": "https://github.com/simonw/datasette/issues/506#issuecomment-500183002", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/506", "id": 500183002, "node_id": "MDEyOklzc3VlQ29tbWVudDUwMDE4MzAwMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-09T03:56:06Z", "updated_at": "2019-06-09T03:56:06Z", "author_association": "OWNER", "body": "What are some other interesting tricks we can use to make binary data a bit more interesting to look at?\r\n\r\nhttps://martin.varela.fi/2017/09/09/simple-binary-data-visualization/ has some really clever visualization tricks - probably a bit much for this plugin though. See also https://codisec.com/binary-visualization-explained/ \r\n\r\nhttps://github.com/tryexceptpass/perceptio is some much simpler code for rendering an image for a binary.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 453846217, "label": "Option to display binary data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/506#issuecomment-500183106", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/506", "id": 500183106, "node_id": "MDEyOklzc3VlQ29tbWVudDUwMDE4MzEwNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-09T03:59:12Z", "updated_at": "2019-06-09T03:59:12Z", "author_association": "OWNER", "body": "Another cheap trick is the equivalent of the Unix `strings` command - https://stackoverflow.com/questions/6804582/extract-strings-from-a-binary-file-in-python", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 453846217, "label": "Option to display binary data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/506#issuecomment-500183948", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/506", "id": 500183948, "node_id": "MDEyOklzc3VlQ29tbWVudDUwMDE4Mzk0OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-09T04:22:58Z", "updated_at": "2019-06-09T04:26:53Z", "author_association": "OWNER", "body": "This is quite nice:\r\n\r\n```\r\n$ od -c /tmp/Thumb64Segment_11.data | head -n 10\r\n0000000 \\0 \\0 @ \\0 \\0 \\0 005 5 X T S F \\0 \\0 \\0 001\r\n0000020 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0\r\n*\r\n0010000 025 030 . 377 026 032 . 377 027 033 - 377 031 035 0 377\r\n0010020 032 036 1 377 036 5 377 037 ! 8 377 036 \" : 377\r\n0010040 036 8 377 $ : 377 ! & ; 377 $ * ? 377\r\n0010060 ' - ? 377 % * < 377 % , > 377 - 3 E 377\r\n0010100 6 ; M 377 : @ O 377 = C R 377 @ G V 377\r\n0010120 @ I X 377 < B Q 377 8 @ N 377 8 @ P 377\r\n0010140 : C T 377 ; C U 377 : C V 377 9 C W 377\r\n```\r\n\r\nHere's a rough Python equivalent http://code.activestate.com/recipes/579120-data_dumppy-like-the-unix-od-octal-dump-command/", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 453846217, "label": "Option to display binary data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/506#issuecomment-500220646", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/506", "id": 500220646, "node_id": "MDEyOklzc3VlQ29tbWVudDUwMDIyMDY0Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-09T15:22:12Z", "updated_at": "2019-06-09T15:22:12Z", "author_association": "OWNER", "body": "![3C9CCDBA-F346-47CB-BFEC-964B0426E728](https://user-images.githubusercontent.com/9599/59160835-789ca900-8a8f-11e9-9767-0f50890d17fe.jpeg)\r\n\r\nNew idea: show essentially this but differentiate the escape sequences in some way. Maybe wrap them in `` or put the non-escape sequences in bold?\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 453846217, "label": "Option to display binary data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/506#issuecomment-500220862", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/506", "id": 500220862, "node_id": "MDEyOklzc3VlQ29tbWVudDUwMDIyMDg2Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-09T15:25:18Z", "updated_at": "2019-06-09T15:26:23Z", "author_association": "OWNER", "body": "I'm going to call this `datasette-render-binary`: https://github.com/simonw/datasette-render-binary", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 453846217, "label": "Option to display binary data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/506#issuecomment-500224864", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/506", "id": 500224864, "node_id": "MDEyOklzc3VlQ29tbWVudDUwMDIyNDg2NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-09T16:07:39Z", "updated_at": "2019-06-09T16:07:39Z", "author_association": "OWNER", "body": "Shipped 0.1 of the plugin! I'm pretty happy with this display format:\r\n\r\n\"many-photos-tables__RKFaceCrop__58_rows\"\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 453846217, "label": "Option to display binary data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/506#issuecomment-500238035", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/506", "id": 500238035, "node_id": "MDEyOklzc3VlQ29tbWVudDUwMDIzODAzNQ==", "user": {"value": 1059677, "label": "Gagravarr"}, "created_at": "2019-06-09T19:21:18Z", "updated_at": "2019-06-09T19:21:18Z", "author_association": "NONE", "body": "If you don't mind calling out to Java, then Apache Tika is able to tell you what a load of \"binary stuff\" is, plus render it to XHTML where possible.\r\n\r\nThere's a python wrapper around the Apache Tika server, but for a more typical datasette usecase you'd probably just want to grab the Tika CLI jar, and call it with `--detect` and/or `--xhtml` to process the unknown binary blob", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 453846217, "label": "Option to display binary data"}, "performed_via_github_app": null}