{
 "blyg": "0.4",
 "id": "71z4maskp9mbyn1r8fm9m4eykw",
 "kind": "thread",
 "origin": "https://notionparallax.co.uk/",
 "page": "https://notionparallax.co.uk/2020/reading-plan",
 "author": {
  "name": "Ben Doherty",
  "url": "https://notionparallax.co.uk/"
 },
 "created": "2020-01-12T09:00:00Z",
 "updated": "2020-01-12T09:00:00Z",
 "version": 1,
 "content_md": "# A more diverse 2020 reading list\n\n\n<style>\n.planned:before {\n    background-color: silver;\n    content: \"planned\";\n}\n.finished:before {\n    background-color: hsl(174, 100%, 29%);\n    content: \"finished\";\n}\n.in-progress:before {\n    background-color: hsl(199, 100%, 48%);\n    content: \"in-progress\";\n}\n.Looking-for-suggestions:before {\n    background-color: hsl(30, 100%, 48%);\n    content: \"still looking\";\n}\n.planned:before,\n.finished:before, \n.in-progress:before,\n.Looking-for-suggestions:before {\n    display: block;\n    font-size: 50%;\n    height: 100%;\n    left: 0;\n    margin-right: 1em;\n    position: absolute;\n    text-align: center;\n    top: 0;\n    transform: translateX(-3.6em);\n    width: 3.6em;\n    writing-mode: vertical-rl;\n}\n.planned, \n.finished,\n.in-progress,\n.Looking-for-suggestions {\n    position: relative;\n}\n#plotly_div {\n    height: 85vh;\n}\narticle.post dt {\n    width: 50%;\n    text-align: right;\n    padding-right: .5em;\n    min-height: 2em;\n}\narticle.post dd {\n    width: 49%;\n}\n</style>\n\n<script></script>\n\nBased on [how poorly I did](https://notionparallax.co.uk/2019/goodreads2019) with reading a diverse set of authors last year, even with an explicit plan to try harder to _read books by people who are not like me_, I thought I'd try a quota approach.\n\n<figure class=\"half-width right\">\n\n![](https://notionparallax.co.uk/assets/19/goodreads/compound_diversity_Fic_Nonfic.png)\n\n<figcaption>\nThis is my reading habits for the last few years; pretty unbalanced. If I use a quota for this year's reading, the graph will be flat across all categories.\n</figcaption>\n\n</figure>\n\nI used the categories that I used in the [analysis of last year's books](https://notionparallax.co.uk/2019/goodreads2019), which were:\n\n-   Book is [fiction \\| non-fiction]\n-   Book age is [under 2 years old \\| 2&ndash;15 years old \\| over 15 years old]\n-   Author is a [woman \\| man]\n-   Author is [black \\| white \\| Asian \\| Hispanic]\n\nThat's 2&times;3&times;2&times;4=48 books. The more I look at these categories the more uncomfortable they make me, but given the combinatorial explosion of going deeper into the implications of intersectionality, I'm not sure my life is long enough. This seems like a good enough start as an experiment.\n\nI really enjoyed reading a lot of [Ursula K. Le Guin](https://www.goodreads.com/author/show/874602.Ursula_K_Le_Guin), [N.K. Jemisin](https://www.goodreads.com/author/show/2917917.N_K_Jemisin) and [Octavia E. Butler](https://www.goodreads.com/author/show/29535.Octavia_E_Butler) last year, so I imagine that the trend of enjoyment will continue with increased diversity. (Fingers crossed.)\n\nI'm going to need help finding these books to read, so I made a [spreadsheet that actually drives this page (it's here)](https://docs.google.com/spreadsheets/d/17dwAQMFu06MTK5rBdIMrXkCEu2d1yfmte0YuWHCqIrk/edit?usp=sharing). You can put comments on that if there's categories that you have a suggestion for.\n\nIf you need some idea of what I have been reading, here's [2019](https://www.goodreads.com/user_challenges/14706992) and [2018](https://www.goodreads.com/user_challenges/11862761).\n\n---\n\n<script src='https://cdnjs.cloudflare.com/ajax/libs/tabletop.js/1.5.1/tabletop.min.js'></script>\n<script type='text/javascript'>    \n  var publicSpreadsheetUrl = 'https://docs.google.com/spreadsheets/d/17dwAQMFu06MTK5rBdIMrXkCEu2d1yfmte0YuWHCqIrk/edit';\n\n  function init() {\n    Tabletop.init( { key: publicSpreadsheetUrl,\n                     callback: showInfo,\n                     simpleSheet: true } )\n  }\n\n  function showInfo(data, tabletop) {\n    // console.log(data);\n \n    htmlText = [];\n    data.forEach(d=>{\n        let by = \"\";\n        if(d.authorName1 !== undefined && d.authorName1 != \"\"){\n            if(d.authorName2 == \"\"){\n                by = `by <a href=\"${d.authorLink}\">${d.authorName}</a></dd>`\n            } else {\n                by = `by <a href=\"${d.authorLink}\">${d.authorName}</a> and <a href=\"${d.authorLink2}\">${d.authorName2}</a></dd>`\n            }\n        }\n        htmlText.push(`<dt class=\"${d.status}\">${d.fnf}, ${d.race} ${d.sex} author, ${d.age}</dt>`)\n        htmlText.push(`<dd><a href=\"${d.bookLink}\">${d.bookName}</a> ${by}`)\n    });\n    container = document.getElementById(\"book_list_div\");\n    container.insertAdjacentHTML(\"afterbegin\", htmlText.join(\" \"));\n\n    let fnf = [...new Set(data.map(x=>x.fnf))];        //[\"Fiction\", \"Non-fiction\"];\n    let age = [...new Set(data.map(x=>x.age))];        //[\"<2yo\", \"2–15yo\", \">15yo\"];\n    let sex = [...new Set(data.map(x=>x.sex))];        //[\"Woman\", \"Man\"];\n    let race = [...new Set(data.map(x=>x.race))];      //[\"Black\", \"White\", \"Asian\", \"Hispanic\"];\n    let status = [...new Set(data.map(x=>x.status))];  //\n    cats = [fnf, age, sex, race];\n    labels = [];\n    parents = [];\n    colours = []\n    cats[0].forEach(a => {\n    labels.push(a);\n    parents.push(\"\");\n    colours.push(\"\");\n    cats[1].forEach(b => {\n        labels.push(`${a}:${b}`);\n        parents.push(a);\n        colours.push(\"\");\n        cats[2].forEach(c => {\n        labels.push(`${a}:${b}:${c}`);\n        parents.push(`${a}:${b}`);\n        colours.push(\"\");\n        cats[3].forEach(d => {\n            let book = data.filter(x=>x.fnf==a && x.age==b && x.sex == c && x.race == d)[0];\n            console.log(data);\n            \n            labels.push(`${book.status}:<br>`+\n                        `${a}:<br>`+\n                        `${b}:<br>`+\n                        `${c}:<br>`+\n                        `${d}:<br>`+\n                        `${book.bookName}<br>`+\n                        `${book.authorName}`);\n            parents.push(`${a}:${b}:${c}`);\n\n            cols = [\n                \"hsl(30, 100%, 48%)\",  //\"Looking-for-suggestions\"\n                \"hsl(174, 100%, 29%)\", //\"finished\"\n                \"silver\",              //\"planned\"\n                \"hsl(30, 100%, 48%)\"   //\"in-progress\"\n            ]\n            colours.push(cols[status.indexOf(book.status)]);\n        });\n        });\n    });\n    });\n    // console.log(\"labels\", labels);\n    // console.log(\"parents\", parents);\n\n    treemapData = [\n    {\n        type: \"treemap\",\n        labels: labels,\n        parents: parents,\n        marker: {colors: colours}\n    }\n    ];\n\n    Plotly.newPlot(\"plotly_div\", treemapData, {scrollZoom: true, editable: true});\n\n  }\n\n  window.addEventListener('DOMContentLoaded', init)\n</script>\n\n<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>\n<div id='plotly_div'><!-- Plotly chart will be drawn inside this DIV --></div>\n<div id='book_list_div'><!-- Book list will be dropped inside this DIV --></div>\n",
 "content_html": "<h1>A more diverse 2020 reading list</h1>\n<style>\n.planned:before {\n    background-color: silver;\n    content: \"planned\";\n}\n.finished:before {\n    background-color: hsl(174, 100%, 29%);\n    content: \"finished\";\n}\n.in-progress:before {\n    background-color: hsl(199, 100%, 48%);\n    content: \"in-progress\";\n}\n.Looking-for-suggestions:before {\n    background-color: hsl(30, 100%, 48%);\n    content: \"still looking\";\n}\n.planned:before,\n.finished:before, \n.in-progress:before,\n.Looking-for-suggestions:before {\n    display: block;\n    font-size: 50%;\n    height: 100%;\n    left: 0;\n    margin-right: 1em;\n    position: absolute;\n    text-align: center;\n    top: 0;\n    transform: translateX(-3.6em);\n    width: 3.6em;\n    writing-mode: vertical-rl;\n}\n.planned, \n.finished,\n.in-progress,\n.Looking-for-suggestions {\n    position: relative;\n}\n#plotly_div {\n    height: 85vh;\n}\narticle.post dt {\n    width: 50%;\n    text-align: right;\n    padding-right: .5em;\n    min-height: 2em;\n}\narticle.post dd {\n    width: 49%;\n}\n</style>\n\n<script></script>\n\n<p>Based on <a href=\"https://notionparallax.co.uk/2019/goodreads2019\">how poorly I did</a> with reading a diverse set of authors last year, even with an explicit plan to try harder to <em>read books by people who are not like me</em>, I thought I’d try a quota approach.</p>\n\n<figure class=\"half-width right\">\n\n  <p><img src=\"https://notionparallax.co.uk/assets/19/goodreads/compound_diversity_Fic_Nonfic.png\" alt=\"\" /></p>\n\n  <figcaption>\n    <p>This is my reading habits for the last few years; pretty unbalanced. If I use a quota for this year’s reading, the graph will be flat across all categories.</p>\n  </figcaption>\n\n</figure>\n\n<p>I used the categories that I used in the <a href=\"https://notionparallax.co.uk/2019/goodreads2019\">analysis of last year’s books</a>, which were:</p>\n\n<ul>\n  <li>Book is [fiction | non-fiction]</li>\n  <li>Book age is [under 2 years old | 2–15 years old | over 15 years old]</li>\n  <li>Author is a [woman | man]</li>\n  <li>Author is [black | white | Asian | Hispanic]</li>\n</ul>\n\n<p>That’s 2×3×2×4=48 books. The more I look at these categories the more uncomfortable they make me, but given the combinatorial explosion of going deeper into the implications of intersectionality, I’m not sure my life is long enough. This seems like a good enough start as an experiment.</p>\n\n<p>I really enjoyed reading a lot of <a href=\"https://www.goodreads.com/author/show/874602.Ursula_K_Le_Guin\">Ursula K. Le Guin</a>, <a href=\"https://www.goodreads.com/author/show/2917917.N_K_Jemisin\">N.K. Jemisin</a> and <a href=\"https://www.goodreads.com/author/show/29535.Octavia_E_Butler\">Octavia E. Butler</a> last year, so I imagine that the trend of enjoyment will continue with increased diversity. (Fingers crossed.)</p>\n\n<p>I’m going to need help finding these books to read, so I made a <a href=\"https://docs.google.com/spreadsheets/d/17dwAQMFu06MTK5rBdIMrXkCEu2d1yfmte0YuWHCqIrk/edit?usp=sharing\">spreadsheet that actually drives this page (it’s here)</a>. You can put comments on that if there’s categories that you have a suggestion for.</p>\n\n<p>If you need some idea of what I have been reading, here’s <a href=\"https://www.goodreads.com/user_challenges/14706992\">2019</a> and <a href=\"https://www.goodreads.com/user_challenges/11862761\">2018</a>.</p>\n\n<hr />\n\n<script src=\"https://cdnjs.cloudflare.com/ajax/libs/tabletop.js/1.5.1/tabletop.min.js\"></script>\n\n<script type=\"text/javascript\">    \n  var publicSpreadsheetUrl = 'https://docs.google.com/spreadsheets/d/17dwAQMFu06MTK5rBdIMrXkCEu2d1yfmte0YuWHCqIrk/edit';\n\n  function init() {\n    Tabletop.init( { key: publicSpreadsheetUrl,\n                     callback: showInfo,\n                     simpleSheet: true } )\n  }\n\n  function showInfo(data, tabletop) {\n    // console.log(data);\n \n    htmlText = [];\n    data.forEach(d=>{\n        let by = \"\";\n        if(d.authorName1 !== undefined && d.authorName1 != \"\"){\n            if(d.authorName2 == \"\"){\n                by = `by <a href=\"${d.authorLink}\">${d.authorName}</a></dd>`\n            } else {\n                by = `by <a href=\"${d.authorLink}\">${d.authorName}</a> and <a href=\"${d.authorLink2}\">${d.authorName2}</a></dd>`\n            }\n        }\n        htmlText.push(`<dt class=\"${d.status}\">${d.fnf}, ${d.race} ${d.sex} author, ${d.age}</dt>`)\n        htmlText.push(`<dd><a href=\"${d.bookLink}\">${d.bookName}</a> ${by}`)\n    });\n    container = document.getElementById(\"book_list_div\");\n    container.insertAdjacentHTML(\"afterbegin\", htmlText.join(\" \"));\n\n    let fnf = [...new Set(data.map(x=>x.fnf))];        //[\"Fiction\", \"Non-fiction\"];\n    let age = [...new Set(data.map(x=>x.age))];        //[\"<2yo\", \"2–15yo\", \">15yo\"];\n    let sex = [...new Set(data.map(x=>x.sex))];        //[\"Woman\", \"Man\"];\n    let race = [...new Set(data.map(x=>x.race))];      //[\"Black\", \"White\", \"Asian\", \"Hispanic\"];\n    let status = [...new Set(data.map(x=>x.status))];  //\n    cats = [fnf, age, sex, race];\n    labels = [];\n    parents = [];\n    colours = []\n    cats[0].forEach(a => {\n    labels.push(a);\n    parents.push(\"\");\n    colours.push(\"\");\n    cats[1].forEach(b => {\n        labels.push(`${a}:${b}`);\n        parents.push(a);\n        colours.push(\"\");\n        cats[2].forEach(c => {\n        labels.push(`${a}:${b}:${c}`);\n        parents.push(`${a}:${b}`);\n        colours.push(\"\");\n        cats[3].forEach(d => {\n            let book = data.filter(x=>x.fnf==a && x.age==b && x.sex == c && x.race == d)[0];\n            console.log(data);\n            \n            labels.push(`${book.status}:<br>`+\n                        `${a}:<br>`+\n                        `${b}:<br>`+\n                        `${c}:<br>`+\n                        `${d}:<br>`+\n                        `${book.bookName}<br>`+\n                        `${book.authorName}`);\n            parents.push(`${a}:${b}:${c}`);\n\n            cols = [\n                \"hsl(30, 100%, 48%)\",  //\"Looking-for-suggestions\"\n                \"hsl(174, 100%, 29%)\", //\"finished\"\n                \"silver\",              //\"planned\"\n                \"hsl(30, 100%, 48%)\"   //\"in-progress\"\n            ]\n            colours.push(cols[status.indexOf(book.status)]);\n        });\n        });\n    });\n    });\n    // console.log(\"labels\", labels);\n    // console.log(\"parents\", parents);\n\n    treemapData = [\n    {\n        type: \"treemap\",\n        labels: labels,\n        parents: parents,\n        marker: {colors: colours}\n    }\n    ];\n\n    Plotly.newPlot(\"plotly_div\", treemapData, {scrollZoom: true, editable: true});\n\n  }\n\n  window.addEventListener('DOMContentLoaded', init)\n</script>\n\n<script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script>\n\n<div id=\"plotly_div\">\n  <!-- Plotly chart will be drawn inside this DIV -->\n</div>\n<div id=\"book_list_div\">\n  <!-- Book list will be dropped inside this DIV -->\n</div>\n",
 "content_hash": "sha256:5b05a2081bfdcb34e65c1d3042d5e41bb36cb187fadb2f77c58bae78037da8f3",
 "media": [],
 "changelog": [
  {
   "version": 1,
   "at": "2020-01-12T09:00:00Z",
   "note": null
  }
 ],
 "transclusions": []
}