{"cells":[{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":30},"source":"# Prospector Tutorial\n\nWelcome to the __Prospector__ tutorial notebook! :smile:\n\n---\n\n### What is Prospector for?\n\nAt DMS, we believe that analytics shouldn't exist in a black-box. Data transformation should be transparent and clear. __Prospector__ is a tool that lets you create rich descriptions, documentation, examples, and experiments to __help others understand how what your supply is actually doing__. When publishing a supply, instead of a generic ReadMe.md file, DMS looks for __Prospector__ notebook.\n\n---\n\n### How to start Prospector\n\n__Prospector__ is built into the DMS CLI and can be launched easily from the command line by running: \n```\ndms prospector\n```\n\nBy default, __Prospector__ will find an open port on your computer, and then launch in a new browser tab automatically. If you have a port preference, you can pass the `-p`or `--port` flag and then specify a port number. Additionally, if you want to prevent __Prospector__ from opening a new tab, you can pass the `--no-launch` flag.\n\nIn action this looks like so:\n```\ndms prospector -p 8080 --no-launch\n```\n\n__Prospector__ defaults to saving files under the name `readme.json`. If you need a different name, or want multiple notebooks stored in a single directory, then you can pass a `name` parameter from the command line as well.\n```\ndms prospector my-cool-name\n```","outputs":[]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":4},"source":"### Cells: Markdown + Node.js\n__Prospector__ notebooks are made up of many __cells__. Each cell can be used to render rich-text markdown (like this one) or run Node.js. Code cells can be linked together, or completely isolated from one another. We call each of these isolated processes a __script__.\n\nTo run a script, press `Shift-Enter`","outputs":[]},{"cell_type":"code","execution_count":1,"metadata":{"collapsed":false,"continued":true,"lineCount":2},"source":"// Click in this box to give this script focus, then press Shift-Enter \nconsole.log(\"Hello, World.\");","outputs":[{"output_type":"execute_result","data":{"application/json":["Hello, World."]},"metadata":{"method":"log","line":2,"inline":true}}]},{"cell_type":"code","execution_count":1,"metadata":{"collapsed":false,"continued":false,"lineCount":3},"source":"// This cell is not connected to the script above, and is completely independant from its variables and scope.\nvar temp = \"abc\";\nconsole.log(temp);","outputs":[{"output_type":"execute_result","data":{"application/json":["abc"]},"metadata":{"method":"log","line":3,"inline":true}}]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":1},"source":"The cells on either side of this text are connected. You can see this easily by the color coding on the left border and the green chain-link on the right. Pressing `Shift-Enter` in either cell will execute the entire script.","outputs":[]},{"cell_type":"code","execution_count":1,"metadata":{"collapsed":false,"continued":true,"lineCount":5},"source":"// Run this script to see how this cell still has access to the variables defined above.\n\nconsole.log(temp + \"def\");\n\n// Click the green chain link on the right to disconnect this cell from the code above and run it again. ","outputs":[{"output_type":"execute_result","data":{"application/json":["abcdef"]},"metadata":{"method":"log","line":6,"inline":true}}]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":3},"source":"You can toggle a cells type by clicking on it and then pressing `Ctrl-L` or `Cmd-L` (osx).\n\nCells can be reordered at anytime by dragging them via the grip-handle on left.","outputs":[]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":2},"source":"### Using Console in Prospector\nAs you can see above, using `console` allows you to print the output of your script. There are many ways to output data, based on what kind of display you need.","outputs":[]},{"cell_type":"code","execution_count":0,"metadata":{"collapsed":false,"continued":false,"lineCount":1},"source":"console.log(\"I'm a generic string so I'll be printed as text.\");","outputs":[{"output_type":"execute_result","data":{"application/json":["I'm a generic string so I'll be printed as text."]},"metadata":{"method":"log","line":1,"inline":true}}]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":1},"source":"Comma separated values that are not arrays or objects will be appended with a space.","outputs":[]},{"cell_type":"code","execution_count":0,"metadata":{"collapsed":false,"continued":true,"lineCount":1},"source":"console.log(\"a\", \"b\", \"c\", 3, 4, 5, true, false);","outputs":[{"output_type":"execute_result","data":{"application/json":["a","b","c",3,4,5,true,false]},"metadata":{"method":"log","line":2,"inline":true}}]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":1},"source":"If an object or array is included in an output, then each item will be treated as such.","outputs":[]},{"cell_type":"code","execution_count":0,"metadata":{"collapsed":false,"continued":true,"lineCount":1},"source":"console.log({ greeting: \"Hello, World.\"}, \"Hello, World.\");","outputs":[{"output_type":"execute_result","data":{"application/json":[{"greeting":"Hello, World."},"Hello, World."]},"metadata":{"method":"log","line":3,"inline":false}}]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":1},"source":"To add more context, `info`, `debug`, `warn`, and `error` will add small labels to each output.","outputs":[]},{"cell_type":"code","execution_count":0,"metadata":{"collapsed":false,"continued":true,"lineCount":5},"source":"console.log(\"Hello, World.\");\nconsole.info(\"Hello, World.\");\nconsole.debug(\"Hello, World.\");\nconsole.warn(\"Hello, World.\");\nconsole.error(\"Hello, World.\");","outputs":[{"output_type":"execute_result","data":{"application/json":["Hello, World."]},"metadata":{"method":"log","line":4,"inline":true}},{"output_type":"execute_result","data":{"application/json":["Hello, World."]},"metadata":{"method":"info","line":5,"inline":true}},{"output_type":"execute_result","data":{"application/json":["Hello, World."]},"metadata":{"method":"debug","line":6,"inline":true}},{"output_type":"execute_result","data":{"application/json":["Hello, World."]},"metadata":{"method":"warn","line":7,"inline":true}},{"output_type":"execute_result","data":{"application/json":["Hello, World."]},"metadata":{"method":"error","line":8,"inline":true}}]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":1},"source":"Sometimes its easier to read data in a table. __Prospector__ has tables built into `console` to make it super easy.","outputs":[]},{"cell_type":"code","execution_count":0,"metadata":{"collapsed":false,"continued":false,"lineCount":14},"source":"// First let's make some fake data:\nvar myData = [];\n\nfor(var i = 0; i < 100; i++){\n  myData.push({\n    someString: 'a',\n    aBoolean: true,\n    randomTimestamp: new Date(Math.random() * new Date().getTime()).toISOString(),\n    randomInteger: parseInt(Math.random() * 100)\n  });\n}\n\n// Then print it:\nconsole.table(myData);","outputs":[{"output_type":"display_data","data":{"application/json":{"data":[{"someString":"a","aBoolean":true,"randomTimestamp":"1986-06-17T12:45:25.806Z","randomInteger":50},{"someString":"a","aBoolean":true,"randomTimestamp":"1971-03-18T10:38:34.201Z","randomInteger":71},{"someString":"a","aBoolean":true,"randomTimestamp":"1987-12-22T09:20:12.477Z","randomInteger":70},{"someString":"a","aBoolean":true,"randomTimestamp":"1999-06-28T12:16:19.451Z","randomInteger":55},{"someString":"a","aBoolean":true,"randomTimestamp":"1973-12-02T11:55:36.301Z","randomInteger":71},{"someString":"a","aBoolean":true,"randomTimestamp":"1972-06-30T17:12:32.824Z","randomInteger":14},{"someString":"a","aBoolean":true,"randomTimestamp":"1980-07-25T06:00:25.199Z","randomInteger":75},{"someString":"a","aBoolean":true,"randomTimestamp":"1978-04-29T01:26:17.631Z","randomInteger":90},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-04-10T16:30:33.464Z","randomInteger":8},{"someString":"a","aBoolean":true,"randomTimestamp":"1979-02-14T20:12:49.215Z","randomInteger":6},{"someString":"a","aBoolean":true,"randomTimestamp":"2006-12-26T15:06:05.726Z","randomInteger":71},{"someString":"a","aBoolean":true,"randomTimestamp":"2012-05-15T12:12:12.649Z","randomInteger":90},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-12-20T11:53:04.121Z","randomInteger":91},{"someString":"a","aBoolean":true,"randomTimestamp":"1976-06-05T08:17:05.977Z","randomInteger":58},{"someString":"a","aBoolean":true,"randomTimestamp":"2010-06-04T15:37:09.168Z","randomInteger":47},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-05-17T09:24:52.443Z","randomInteger":58},{"someString":"a","aBoolean":true,"randomTimestamp":"1996-05-15T19:09:37.374Z","randomInteger":75},{"someString":"a","aBoolean":true,"randomTimestamp":"1992-05-26T04:50:37.056Z","randomInteger":40},{"someString":"a","aBoolean":true,"randomTimestamp":"2007-09-10T06:17:41.082Z","randomInteger":96},{"someString":"a","aBoolean":true,"randomTimestamp":"2004-09-01T15:23:08.804Z","randomInteger":4},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-12-04T06:40:25.891Z","randomInteger":68},{"someString":"a","aBoolean":true,"randomTimestamp":"1980-11-22T02:27:05.372Z","randomInteger":92},{"someString":"a","aBoolean":true,"randomTimestamp":"1977-05-17T00:54:14.905Z","randomInteger":8},{"someString":"a","aBoolean":true,"randomTimestamp":"1976-06-09T12:50:54.626Z","randomInteger":87},{"someString":"a","aBoolean":true,"randomTimestamp":"2000-05-24T14:21:05.503Z","randomInteger":17},{"someString":"a","aBoolean":true,"randomTimestamp":"2001-04-24T05:19:02.872Z","randomInteger":15},{"someString":"a","aBoolean":true,"randomTimestamp":"2002-01-24T23:27:25.449Z","randomInteger":23},{"someString":"a","aBoolean":true,"randomTimestamp":"1996-08-02T07:13:16.976Z","randomInteger":44},{"someString":"a","aBoolean":true,"randomTimestamp":"1978-10-12T21:58:29.618Z","randomInteger":83},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-06-29T22:37:10.368Z","randomInteger":77},{"someString":"a","aBoolean":true,"randomTimestamp":"1989-04-14T00:04:10.501Z","randomInteger":45},{"someString":"a","aBoolean":true,"randomTimestamp":"1986-08-16T20:08:53.551Z","randomInteger":74},{"someString":"a","aBoolean":true,"randomTimestamp":"1994-10-11T14:51:11.718Z","randomInteger":37},{"someString":"a","aBoolean":true,"randomTimestamp":"2005-12-18T19:49:55.971Z","randomInteger":51},{"someString":"a","aBoolean":true,"randomTimestamp":"1987-11-01T19:07:55.964Z","randomInteger":31},{"someString":"a","aBoolean":true,"randomTimestamp":"1991-11-09T16:09:33.151Z","randomInteger":24},{"someString":"a","aBoolean":true,"randomTimestamp":"2011-03-18T06:25:42.439Z","randomInteger":44},{"someString":"a","aBoolean":true,"randomTimestamp":"2006-12-04T11:22:07.622Z","randomInteger":63},{"someString":"a","aBoolean":true,"randomTimestamp":"1982-11-19T17:41:22.734Z","randomInteger":82},{"someString":"a","aBoolean":true,"randomTimestamp":"1978-08-31T01:32:45.476Z","randomInteger":22},{"someString":"a","aBoolean":true,"randomTimestamp":"1977-09-13T20:42:00.637Z","randomInteger":72},{"someString":"a","aBoolean":true,"randomTimestamp":"2004-03-28T20:20:28.301Z","randomInteger":95},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-08-08T16:44:36.777Z","randomInteger":47},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-12-03T18:17:57.669Z","randomInteger":45},{"someString":"a","aBoolean":true,"randomTimestamp":"1971-09-06T15:48:27.395Z","randomInteger":35},{"someString":"a","aBoolean":true,"randomTimestamp":"2009-02-24T19:07:22.223Z","randomInteger":19},{"someString":"a","aBoolean":true,"randomTimestamp":"1972-11-20T10:30:43.295Z","randomInteger":73},{"someString":"a","aBoolean":true,"randomTimestamp":"1980-01-06T12:18:36.617Z","randomInteger":47},{"someString":"a","aBoolean":true,"randomTimestamp":"1983-01-10T10:38:16.549Z","randomInteger":14},{"someString":"a","aBoolean":true,"randomTimestamp":"1991-12-06T16:49:10.207Z","randomInteger":49},{"someString":"a","aBoolean":true,"randomTimestamp":"1993-09-19T17:09:43.131Z","randomInteger":44},{"someString":"a","aBoolean":true,"randomTimestamp":"2013-11-17T23:25:17.124Z","randomInteger":59},{"someString":"a","aBoolean":true,"randomTimestamp":"2009-04-25T00:19:47.321Z","randomInteger":95},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-08-05T21:55:04.499Z","randomInteger":12},{"someString":"a","aBoolean":true,"randomTimestamp":"1981-08-24T10:41:55.103Z","randomInteger":57},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-01-08T00:16:55.135Z","randomInteger":42},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-09-06T18:16:06.976Z","randomInteger":81},{"someString":"a","aBoolean":true,"randomTimestamp":"1995-10-05T14:02:36.153Z","randomInteger":31},{"someString":"a","aBoolean":true,"randomTimestamp":"1989-03-05T03:39:21.877Z","randomInteger":92},{"someString":"a","aBoolean":true,"randomTimestamp":"2008-05-24T05:18:07.597Z","randomInteger":38},{"someString":"a","aBoolean":true,"randomTimestamp":"2002-10-30T05:56:46.580Z","randomInteger":4},{"someString":"a","aBoolean":true,"randomTimestamp":"1998-04-10T18:17:20.838Z","randomInteger":32},{"someString":"a","aBoolean":true,"randomTimestamp":"1996-12-01T03:43:34.687Z","randomInteger":21},{"someString":"a","aBoolean":true,"randomTimestamp":"1981-04-29T18:46:20.857Z","randomInteger":41},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-06-29T01:06:05.100Z","randomInteger":66},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-09-14T20:41:58.009Z","randomInteger":29},{"someString":"a","aBoolean":true,"randomTimestamp":"1994-12-10T17:36:44.013Z","randomInteger":84},{"someString":"a","aBoolean":true,"randomTimestamp":"1975-09-06T07:56:01.173Z","randomInteger":96},{"someString":"a","aBoolean":true,"randomTimestamp":"1975-10-06T11:24:29.516Z","randomInteger":5},{"someString":"a","aBoolean":true,"randomTimestamp":"2012-08-19T23:59:52.792Z","randomInteger":56},{"someString":"a","aBoolean":true,"randomTimestamp":"1973-02-10T06:48:38.158Z","randomInteger":28},{"someString":"a","aBoolean":true,"randomTimestamp":"1991-03-19T11:02:48.883Z","randomInteger":84},{"someString":"a","aBoolean":true,"randomTimestamp":"2005-02-12T18:39:57.861Z","randomInteger":70},{"someString":"a","aBoolean":true,"randomTimestamp":"1976-09-05T16:38:17.095Z","randomInteger":92},{"someString":"a","aBoolean":true,"randomTimestamp":"1980-06-11T08:51:10.863Z","randomInteger":63},{"someString":"a","aBoolean":true,"randomTimestamp":"1993-11-01T16:08:27.493Z","randomInteger":31},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-02-25T00:54:08.120Z","randomInteger":33},{"someString":"a","aBoolean":true,"randomTimestamp":"1975-03-15T14:12:05.717Z","randomInteger":35},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-01-17T17:34:04.900Z","randomInteger":47},{"someString":"a","aBoolean":true,"randomTimestamp":"2002-06-15T10:27:46.649Z","randomInteger":21},{"someString":"a","aBoolean":true,"randomTimestamp":"1993-04-22T20:47:48.524Z","randomInteger":93},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-09-29T05:16:49.238Z","randomInteger":31},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-12-30T19:42:41.774Z","randomInteger":49},{"someString":"a","aBoolean":true,"randomTimestamp":"1971-07-20T06:14:56.435Z","randomInteger":4},{"someString":"a","aBoolean":true,"randomTimestamp":"1992-09-20T09:03:18.860Z","randomInteger":96},{"someString":"a","aBoolean":true,"randomTimestamp":"1989-06-20T12:42:41.468Z","randomInteger":34},{"someString":"a","aBoolean":true,"randomTimestamp":"2010-03-27T20:37:28.922Z","randomInteger":66},{"someString":"a","aBoolean":true,"randomTimestamp":"1979-04-12T08:18:35.457Z","randomInteger":82},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-03-10T04:30:07.151Z","randomInteger":9},{"someString":"a","aBoolean":true,"randomTimestamp":"1982-07-26T03:38:06.122Z","randomInteger":51},{"someString":"a","aBoolean":true,"randomTimestamp":"1976-07-20T10:07:45.204Z","randomInteger":41},{"someString":"a","aBoolean":true,"randomTimestamp":"2009-10-07T11:46:07.928Z","randomInteger":14},{"someString":"a","aBoolean":true,"randomTimestamp":"2004-01-25T11:42:22.369Z","randomInteger":79},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-05-06T14:45:00.384Z","randomInteger":23},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-05-13T14:45:56.366Z","randomInteger":94},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-08-11T11:54:09.652Z","randomInteger":60},{"someString":"a","aBoolean":true,"randomTimestamp":"2001-03-25T07:56:23.992Z","randomInteger":64},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-02-09T03:11:52.802Z","randomInteger":53},{"someString":"a","aBoolean":true,"randomTimestamp":"2009-06-03T11:52:10.926Z","randomInteger":26},{"someString":"a","aBoolean":true,"randomTimestamp":"1989-07-15T14:56:53.539Z","randomInteger":98}],"pageSize":10}},"metadata":{"method":"table","line":20}}]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":16},"source":"If you want to customize how this table is displayed, send data as an object with settings instead:\n\n - __`data`__ - your array of data points. _This is the only required setting._\n - `fullWidth` - set to `true` to make the table fill the width of the page\n - `pageSize` - how many rows to display on each page\n - `title` - a large label for this table\n - `subtitle` - a slightly smaller label for this table\n - `sortBy` - a field from your data to auto-sort the table by\n - `sortDirection` - either `ASC` for ascending or `DESC`for descending sort\n - `headers` - an array of fields to extract from your data - can be a `string` of the field name, or an `object` with additional settings:\n   - `field` - the name of your data's attribute\n   - `label` - a replacement name to display nicely\n   - `superLabel` - a meta label that will span and group multiple fields\n   - `color` - an object for setting a color scale\n     - `domain` - a numeric array for lower and upper bounds of the color scale (defaults to the field's bounds)\n     - `range` - a string array for lower and upper color settings","outputs":[]},{"cell_type":"code","execution_count":0,"metadata":{"collapsed":false,"continued":true,"lineCount":25},"source":"console.table({\n  data: myData,\n  fullWidth: true,\n  pageSize: 15, \n  title: 'My Sweet Table',\n  subtitle: 'Much more useful and readable than the table above, right? Plus we hid that useless boolean field...',\n  sortBy: 'randomTimestamp',\n  sortDirection: 'DESC',\n  headers: [\n    'someString',\n    {\n    \tfield: 'randomTimestamp',\n    \tlabel: 'A Random Timestamp',\n    \tsuperLabel: 'Related Fields'\n    },\n    {\n    \tfield: 'randomInteger',\n    \tsuperLabel: 'Related Fields',\n    \tcolor: {\n    \t\tdomain: [0, 100],\n  \t\t\trange: ['#3aa3e3', '#d71460']\n    \t}\n    }\n  ]\n});","outputs":[{"output_type":"display_data","data":{"application/json":{"data":[{"someString":"a","aBoolean":true,"randomTimestamp":"1986-06-17T12:45:25.806Z","randomInteger":50},{"someString":"a","aBoolean":true,"randomTimestamp":"1971-03-18T10:38:34.201Z","randomInteger":71},{"someString":"a","aBoolean":true,"randomTimestamp":"1987-12-22T09:20:12.477Z","randomInteger":70},{"someString":"a","aBoolean":true,"randomTimestamp":"1999-06-28T12:16:19.451Z","randomInteger":55},{"someString":"a","aBoolean":true,"randomTimestamp":"1973-12-02T11:55:36.301Z","randomInteger":71},{"someString":"a","aBoolean":true,"randomTimestamp":"1972-06-30T17:12:32.824Z","randomInteger":14},{"someString":"a","aBoolean":true,"randomTimestamp":"1980-07-25T06:00:25.199Z","randomInteger":75},{"someString":"a","aBoolean":true,"randomTimestamp":"1978-04-29T01:26:17.631Z","randomInteger":90},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-04-10T16:30:33.464Z","randomInteger":8},{"someString":"a","aBoolean":true,"randomTimestamp":"1979-02-14T20:12:49.215Z","randomInteger":6},{"someString":"a","aBoolean":true,"randomTimestamp":"2006-12-26T15:06:05.726Z","randomInteger":71},{"someString":"a","aBoolean":true,"randomTimestamp":"2012-05-15T12:12:12.649Z","randomInteger":90},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-12-20T11:53:04.121Z","randomInteger":91},{"someString":"a","aBoolean":true,"randomTimestamp":"1976-06-05T08:17:05.977Z","randomInteger":58},{"someString":"a","aBoolean":true,"randomTimestamp":"2010-06-04T15:37:09.168Z","randomInteger":47},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-05-17T09:24:52.443Z","randomInteger":58},{"someString":"a","aBoolean":true,"randomTimestamp":"1996-05-15T19:09:37.374Z","randomInteger":75},{"someString":"a","aBoolean":true,"randomTimestamp":"1992-05-26T04:50:37.056Z","randomInteger":40},{"someString":"a","aBoolean":true,"randomTimestamp":"2007-09-10T06:17:41.082Z","randomInteger":96},{"someString":"a","aBoolean":true,"randomTimestamp":"2004-09-01T15:23:08.804Z","randomInteger":4},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-12-04T06:40:25.891Z","randomInteger":68},{"someString":"a","aBoolean":true,"randomTimestamp":"1980-11-22T02:27:05.372Z","randomInteger":92},{"someString":"a","aBoolean":true,"randomTimestamp":"1977-05-17T00:54:14.905Z","randomInteger":8},{"someString":"a","aBoolean":true,"randomTimestamp":"1976-06-09T12:50:54.626Z","randomInteger":87},{"someString":"a","aBoolean":true,"randomTimestamp":"2000-05-24T14:21:05.503Z","randomInteger":17},{"someString":"a","aBoolean":true,"randomTimestamp":"2001-04-24T05:19:02.872Z","randomInteger":15},{"someString":"a","aBoolean":true,"randomTimestamp":"2002-01-24T23:27:25.449Z","randomInteger":23},{"someString":"a","aBoolean":true,"randomTimestamp":"1996-08-02T07:13:16.976Z","randomInteger":44},{"someString":"a","aBoolean":true,"randomTimestamp":"1978-10-12T21:58:29.618Z","randomInteger":83},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-06-29T22:37:10.368Z","randomInteger":77},{"someString":"a","aBoolean":true,"randomTimestamp":"1989-04-14T00:04:10.501Z","randomInteger":45},{"someString":"a","aBoolean":true,"randomTimestamp":"1986-08-16T20:08:53.551Z","randomInteger":74},{"someString":"a","aBoolean":true,"randomTimestamp":"1994-10-11T14:51:11.718Z","randomInteger":37},{"someString":"a","aBoolean":true,"randomTimestamp":"2005-12-18T19:49:55.971Z","randomInteger":51},{"someString":"a","aBoolean":true,"randomTimestamp":"1987-11-01T19:07:55.964Z","randomInteger":31},{"someString":"a","aBoolean":true,"randomTimestamp":"1991-11-09T16:09:33.151Z","randomInteger":24},{"someString":"a","aBoolean":true,"randomTimestamp":"2011-03-18T06:25:42.439Z","randomInteger":44},{"someString":"a","aBoolean":true,"randomTimestamp":"2006-12-04T11:22:07.622Z","randomInteger":63},{"someString":"a","aBoolean":true,"randomTimestamp":"1982-11-19T17:41:22.734Z","randomInteger":82},{"someString":"a","aBoolean":true,"randomTimestamp":"1978-08-31T01:32:45.476Z","randomInteger":22},{"someString":"a","aBoolean":true,"randomTimestamp":"1977-09-13T20:42:00.637Z","randomInteger":72},{"someString":"a","aBoolean":true,"randomTimestamp":"2004-03-28T20:20:28.301Z","randomInteger":95},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-08-08T16:44:36.777Z","randomInteger":47},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-12-03T18:17:57.669Z","randomInteger":45},{"someString":"a","aBoolean":true,"randomTimestamp":"1971-09-06T15:48:27.395Z","randomInteger":35},{"someString":"a","aBoolean":true,"randomTimestamp":"2009-02-24T19:07:22.223Z","randomInteger":19},{"someString":"a","aBoolean":true,"randomTimestamp":"1972-11-20T10:30:43.295Z","randomInteger":73},{"someString":"a","aBoolean":true,"randomTimestamp":"1980-01-06T12:18:36.617Z","randomInteger":47},{"someString":"a","aBoolean":true,"randomTimestamp":"1983-01-10T10:38:16.549Z","randomInteger":14},{"someString":"a","aBoolean":true,"randomTimestamp":"1991-12-06T16:49:10.207Z","randomInteger":49},{"someString":"a","aBoolean":true,"randomTimestamp":"1993-09-19T17:09:43.131Z","randomInteger":44},{"someString":"a","aBoolean":true,"randomTimestamp":"2013-11-17T23:25:17.124Z","randomInteger":59},{"someString":"a","aBoolean":true,"randomTimestamp":"2009-04-25T00:19:47.321Z","randomInteger":95},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-08-05T21:55:04.499Z","randomInteger":12},{"someString":"a","aBoolean":true,"randomTimestamp":"1981-08-24T10:41:55.103Z","randomInteger":57},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-01-08T00:16:55.135Z","randomInteger":42},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-09-06T18:16:06.976Z","randomInteger":81},{"someString":"a","aBoolean":true,"randomTimestamp":"1995-10-05T14:02:36.153Z","randomInteger":31},{"someString":"a","aBoolean":true,"randomTimestamp":"1989-03-05T03:39:21.877Z","randomInteger":92},{"someString":"a","aBoolean":true,"randomTimestamp":"2008-05-24T05:18:07.597Z","randomInteger":38},{"someString":"a","aBoolean":true,"randomTimestamp":"2002-10-30T05:56:46.580Z","randomInteger":4},{"someString":"a","aBoolean":true,"randomTimestamp":"1998-04-10T18:17:20.838Z","randomInteger":32},{"someString":"a","aBoolean":true,"randomTimestamp":"1996-12-01T03:43:34.687Z","randomInteger":21},{"someString":"a","aBoolean":true,"randomTimestamp":"1981-04-29T18:46:20.857Z","randomInteger":41},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-06-29T01:06:05.100Z","randomInteger":66},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-09-14T20:41:58.009Z","randomInteger":29},{"someString":"a","aBoolean":true,"randomTimestamp":"1994-12-10T17:36:44.013Z","randomInteger":84},{"someString":"a","aBoolean":true,"randomTimestamp":"1975-09-06T07:56:01.173Z","randomInteger":96},{"someString":"a","aBoolean":true,"randomTimestamp":"1975-10-06T11:24:29.516Z","randomInteger":5},{"someString":"a","aBoolean":true,"randomTimestamp":"2012-08-19T23:59:52.792Z","randomInteger":56},{"someString":"a","aBoolean":true,"randomTimestamp":"1973-02-10T06:48:38.158Z","randomInteger":28},{"someString":"a","aBoolean":true,"randomTimestamp":"1991-03-19T11:02:48.883Z","randomInteger":84},{"someString":"a","aBoolean":true,"randomTimestamp":"2005-02-12T18:39:57.861Z","randomInteger":70},{"someString":"a","aBoolean":true,"randomTimestamp":"1976-09-05T16:38:17.095Z","randomInteger":92},{"someString":"a","aBoolean":true,"randomTimestamp":"1980-06-11T08:51:10.863Z","randomInteger":63},{"someString":"a","aBoolean":true,"randomTimestamp":"1993-11-01T16:08:27.493Z","randomInteger":31},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-02-25T00:54:08.120Z","randomInteger":33},{"someString":"a","aBoolean":true,"randomTimestamp":"1975-03-15T14:12:05.717Z","randomInteger":35},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-01-17T17:34:04.900Z","randomInteger":47},{"someString":"a","aBoolean":true,"randomTimestamp":"2002-06-15T10:27:46.649Z","randomInteger":21},{"someString":"a","aBoolean":true,"randomTimestamp":"1993-04-22T20:47:48.524Z","randomInteger":93},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-09-29T05:16:49.238Z","randomInteger":31},{"someString":"a","aBoolean":true,"randomTimestamp":"1997-12-30T19:42:41.774Z","randomInteger":49},{"someString":"a","aBoolean":true,"randomTimestamp":"1971-07-20T06:14:56.435Z","randomInteger":4},{"someString":"a","aBoolean":true,"randomTimestamp":"1992-09-20T09:03:18.860Z","randomInteger":96},{"someString":"a","aBoolean":true,"randomTimestamp":"1989-06-20T12:42:41.468Z","randomInteger":34},{"someString":"a","aBoolean":true,"randomTimestamp":"2010-03-27T20:37:28.922Z","randomInteger":66},{"someString":"a","aBoolean":true,"randomTimestamp":"1979-04-12T08:18:35.457Z","randomInteger":82},{"someString":"a","aBoolean":true,"randomTimestamp":"1985-03-10T04:30:07.151Z","randomInteger":9},{"someString":"a","aBoolean":true,"randomTimestamp":"1982-07-26T03:38:06.122Z","randomInteger":51},{"someString":"a","aBoolean":true,"randomTimestamp":"1976-07-20T10:07:45.204Z","randomInteger":41},{"someString":"a","aBoolean":true,"randomTimestamp":"2009-10-07T11:46:07.928Z","randomInteger":14},{"someString":"a","aBoolean":true,"randomTimestamp":"2004-01-25T11:42:22.369Z","randomInteger":79},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-05-06T14:45:00.384Z","randomInteger":23},{"someString":"a","aBoolean":true,"randomTimestamp":"1988-05-13T14:45:56.366Z","randomInteger":94},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-08-11T11:54:09.652Z","randomInteger":60},{"someString":"a","aBoolean":true,"randomTimestamp":"2001-03-25T07:56:23.992Z","randomInteger":64},{"someString":"a","aBoolean":true,"randomTimestamp":"1984-02-09T03:11:52.802Z","randomInteger":53},{"someString":"a","aBoolean":true,"randomTimestamp":"2009-06-03T11:52:10.926Z","randomInteger":26},{"someString":"a","aBoolean":true,"randomTimestamp":"1989-07-15T14:56:53.539Z","randomInteger":98}],"fullWidth":true,"pageSize":15,"title":"My Sweet Table","subtitle":"Much more useful and readable than the table above, right? Plus we hid that useless boolean field...","sortBy":"randomTimestamp","sortDirection":"DESC","headers":["someString",{"field":"randomTimestamp","label":"A Random Timestamp","superLabel":"Related Fields"},{"field":"randomInteger","superLabel":"Related Fields","color":{"domain":[0,100],"range":["#3aa3e3","#d71460"]}}]}},"metadata":{"method":"table","line":21}}]},{"cell_type":"markdown","execution_count":0,"metadata":{"collapsed":true,"continued":true,"lineCount":1},"source":"Finally, sometimes you may need a fully custom solution for visualizing your data. We extended `console` even further, with an `html` option.","outputs":[]},{"cell_type":"code","execution_count":1,"metadata":{"collapsed":false,"continued":false,"lineCount":1},"source":"console.html('<h1>Just pass some HTML as a string</h1>');","outputs":[{"output_type":"display_data","data":{"application/json":{"content":"<h1>Just pass some HTML as a string</h1>","height":300}},"metadata":{"method":"html","line":1}}]}]}
