<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>Mikko Kotila · Writing</title><link href="https://mikkokotila.com/writing/"/><link rel="self" href="https://mikkokotila.com/writing/feed.xml"/><id>https://mikkokotila.com/writing/</id><updated>2025-12-18T00:00:00Z</updated><author><name>Mikko Kotila</name></author><entry><title>Two People Never Share the Same Meaning</title><link href="https://mikkokotila.com/writing/two-people-never-share-the-same-meaning/"/><id>https://mikkokotila.com/writing/two-people-never-share-the-same-meaning/</id><published>2025-12-18T00:00:00Z</published><updated>2025-12-18T00:00:00Z</updated><category term="wisdom"/><summary>Definitions trap us in an infinite regress of words defining words While definitions trap us in an infinite regress of words defining words, failing to ever reach a satisfying conclusion, meaning is the direct,…</summary><content type="html">&lt;h4 class=&quot;h-2&quot; id=&quot;definitions-trap-us-in-an-infinite-regress-of-words-defining-words&quot;&gt;Definitions trap us in an infinite regress of words defining words&lt;/h4&gt;
&lt;figure class=&quot;fig regress&quot; data-fig=&quot;regress&quot; data-slow=&quot;10&quot; data-times=&quot;{&amp;#x22;shift&amp;#x22;:100,&amp;#x22;narration&amp;#x22;:[200,300]}&quot; data-says=&quot;{&amp;#x22;read&amp;#x22;:&amp;#x22;“Water”, its definition, and the words that definition needs defined in turn: words defining words, winding in, never reaching the centre.&amp;#x22;,&amp;#x22;heard&amp;#x22;:&amp;#x22;“Water”, heard. Slowed down ten times.&amp;#x22;,&amp;#x22;shift&amp;#x22;:&amp;#x22;At about {ms} milliseconds: a state shift, felt before any word.&amp;#x22;,&amp;#x22;narration&amp;#x22;:&amp;#x22;{from} to {to} milliseconds after that: the narration, word after word.&amp;#x22;,&amp;#x22;end&amp;#x22;:&amp;#x22;And so on, ad infinitum: the words never reach the centre.&amp;#x22;}&quot; aria-label=&quot;A spiral of words: “water”, its definition, and the words the definition needs defined in turn, winding in towards a centre they never reach&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;“Water”, its definition, and the words that definition needs defined in turn: words defining words, winding in, never reaching the centre.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 560&quot; role=&quot;img&quot; aria-label=&quot;Words defining words: “water”, a liquid without colour, smell or taste that falls as rain, is in lakes, rivers and seas, and is used for drinking, washing, etc. Then liquid, colour, smell, taste, falls, rain, lakes, rivers, seas, used, drinking, washing, and so on.&quot;&gt;&lt;path id=&quot;words-defining-words-spiral&quot; class=&quot;spiral&quot; d=&quot;M102.9 170.4L109.4 159.0L116.3 148.0L123.8 137.3L131.8 127.0L140.3 117.2L149.2 107.9L158.6 99.0L168.4 90.6L178.5 82.7L189.1 75.4L199.9 68.7L211.1 62.4L222.5 56.8L234.2 51.8L246.0 47.4L258.1 43.5L270.3 40.3L282.6 37.8L295.0 35.8L307.4 34.5L319.9 33.8L332.3 33.7L344.7 34.2L357.1 35.4L369.3 37.1L381.4 39.5L393.3 42.5L405.1 46.1L416.6 50.2L427.8 54.9L438.8 60.1L449.5 65.9L459.9 72.2L469.9 78.9L479.5 86.2L488.7 93.9L497.6 102.0L505.9 110.6L513.8 119.5L521.3 128.8L528.2 138.4L534.6 148.3L540.6 158.5L545.9 169.0L550.8 179.7L555.1 190.6L558.8 201.7L561.9 212.9L564.5 224.3L566.5 235.7L567.9 247.1L568.8 258.6L569.0 270.1L568.7 281.6L567.9 293.0L566.4 304.3L564.4 315.5L561.8 326.6L558.7 337.4L555.1 348.1L550.9 358.6L546.3 368.8L541.1 378.7L535.5 388.4L529.4 397.7L522.9 406.7L515.9 415.3L508.6 423.5L500.9 431.3L492.8 438.7L484.3 445.7L475.6 452.2L466.6 458.3L457.2 463.9L447.7 469.0L437.9 473.6L428.0 477.7L417.9 481.3L407.6 484.3L397.3 486.9L386.8 488.9L376.3 490.3L365.8 491.3L355.2 491.7L344.7 491.6L334.3 490.9L323.9 489.8L313.6 488.1L303.4 485.9L293.4 483.2L283.6 480.1L274.0 476.4L264.6 472.3L255.4 467.7L246.5 462.7L237.9 457.3L229.6 451.4L221.6 445.2L214.0 438.6L206.7 431.7L199.9 424.4L193.4 416.8L187.3 408.9L181.6 400.7L176.4 392.3L171.6 383.7L167.3 374.9L163.4 365.8L160.0 356.7L157.1 347.4L154.7 338.0L152.7 328.5L151.2 319.0L150.2 309.4L149.7 299.8L149.6 290.3L150.1 280.7L151.0 271.3L152.4 261.9L154.2 252.7L156.5 243.5L159.3 234.6L162.5 225.8L166.1 217.2L170.1 208.8L174.5 200.7L179.3 192.8L184.5 185.2L190.0 177.9L195.9 171.0L202.1 164.3L208.6 158.0L215.4 152.0L222.5 146.4L229.8 141.2L237.3 136.4L245.0 131.9L253.0 127.9L261.0 124.3L269.3 121.1L277.6 118.4L286.1 116.0L294.6 114.1L303.2 112.7L311.8 111.7L320.4 111.1L329.0 110.9L337.6 111.2L346.1 111.9L354.5 113.0L362.9 114.6L371.1 116.5L379.2 118.9L387.1 121.7L394.9 124.8L402.4 128.3L409.8 132.2L416.9 136.4L423.8 140.9L430.4 145.8L436.7 151.0L442.7 156.5L448.5 162.2L453.9 168.2L459.0 174.5L463.7 180.9L468.1 187.6L472.1 194.5L475.8 201.5L479.1 208.7L482.1 216.0L484.6 223.4L486.8 230.9L488.6 238.5L489.9 246.1L491.0 253.8L491.6 261.4L491.8 269.1L491.6 276.7L491.1 284.3L490.2 291.8L488.9 299.2L487.2 306.5L485.2 313.7L482.9 320.8L480.2 327.7L477.1 334.4L473.8 340.9L470.1 347.3L466.1 353.4L461.9 359.3L457.4 364.9L452.6 370.3L447.6 375.4L442.3 380.3L436.9 384.8L431.2 389.0L425.4 393.0L419.4 396.6L413.2 399.9L406.9 402.9L400.5 405.5L394.0 407.8L387.5 409.8L380.8 411.4L374.2 412.7L367.5 413.6L360.8 414.2L354.1 414.5L347.4 414.4L340.8 414.0L334.2 413.3L327.7 412.2L321.3 410.8L315.0 409.1L308.8 407.1L302.8 404.8L296.9 402.2L291.2 399.3L285.6 396.2L280.3 392.8L275.2 389.1L270.2 385.3L265.5 381.1L261.1 376.8L256.8 372.3L252.9 367.6L249.2 362.7L245.7 357.7L242.5 352.5L239.7 347.2L237.1 341.8L234.7 336.3L232.7 330.8L231.0 325.1L229.6 319.4L228.4 313.7L227.6 307.9L227.0 302.2L226.8 296.4L226.8 290.7L227.1 285.0L227.7 279.4L228.6 273.8L229.8 268.3L231.2 262.9L232.9 257.7L234.8 252.5L237.0 247.5L239.5 242.6L242.1 237.9L245.0 233.3L248.1 228.9L251.4 224.8L254.8 220.8L258.5 217.0L262.3 213.4L266.3 210.0L270.4 206.9L274.6 204.0L279.0 201.3L283.4 198.8L288.0 196.6L292.6 194.7L297.3 193.0L302.0 191.5L306.8 190.3L311.6 189.4L316.4 188.7L321.2 188.2L326.0 188.0L330.8 188.0L335.6 188.3L340.2 188.8L344.9 189.6L349.4 190.5L353.9 191.7L358.3 193.1L362.5 194.7L366.7 196.6L370.7 198.6L374.6 200.8L378.3 203.2L381.9 205.7L385.4 208.4L388.6 211.3L391.7 214.3L394.7 217.5L397.4 220.7L399.9 224.1L402.3 227.6L404.4 231.1L406.4 234.8L408.2 238.5L409.7 242.3L411.1 246.1L412.2 249.9L413.2 253.8L413.9 257.7L414.4 261.6L414.7 265.4L414.9 269.3L414.8 273.1L414.5 276.9L414.1 280.7L413.4 284.3L412.6 288.0L411.6 291.5L410.4 295.0L409.1 298.3L407.6 301.6L406.0 304.7L404.2 307.8L402.3 310.7L400.2 313.5L398.0 316.1L395.7 318.7L393.3 321.0L390.8 323.3L388.2 325.3L385.6 327.3L382.8 329.0L380.1 330.6L377.2 332.1L374.3 333.4L371.4 334.5L368.4 335.4L365.5 336.2L362.5 336.9L359.5 337.4L356.5 337.7L353.6 337.8L350.7 337.8L347.8 337.7L344.9 337.4L342.1 337.0L339.4 336.4L336.7 335.7L334.1 334.8L331.6 333.9L329.1 332.8L326.8 331.6L324.5 330.3L322.3 328.8L320.2 327.3L318.3 325.7L316.4 324.1L314.7 322.3L313.0 320.5L311.5 318.6L310.1 316.7L308.9 314.7L307.7 312.7L306.7 310.6L305.8 308.5L305.0 306.4L304.4 304.3L303.8 302.2L303.4 300.1L303.1 298.0L302.9 295.9L302.9 293.9L302.9 291.9L303.1 289.9L303.3 287.9L303.7 286.0L304.2 284.1L304.7 282.3L305.4 280.6L306.1 278.9L306.9 277.3L307.8 275.8L308.7 274.3L309.7 273.0L310.8 271.7L311.9 270.5L313.1 269.3L314.3 268.3L315.6 267.3L316.8 266.5L318.1 265.7L319.4 265.0L320.8 264.4L322.1 263.9L323.4 263.5L324.8 263.2L326.1 263.0L327.4 262.8L328.7 262.7&quot;&gt;&lt;/path&gt;&lt;text class=&quot;chain&quot;&gt;&lt;textPath href=&quot;#words-defining-words-spiral&quot;&gt;&lt;tspan class=&quot;word&quot; data-k=&quot;0&quot; font-size=&quot;31.0&quot;&gt;water&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;1&quot; font-size=&quot;30.5&quot;&gt; a&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;2&quot; font-size=&quot;30.3&quot;&gt; liquid&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;3&quot; font-size=&quot;29.7&quot;&gt; without&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;4&quot; font-size=&quot;28.9&quot;&gt; colour,&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;5&quot; font-size=&quot;28.2&quot;&gt; smell&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;6&quot; font-size=&quot;27.6&quot;&gt; or&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;7&quot; font-size=&quot;27.3&quot;&gt; taste&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;8&quot; font-size=&quot;26.8&quot;&gt; that&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;9&quot; font-size=&quot;26.4&quot;&gt; falls&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;10&quot; font-size=&quot;25.8&quot;&gt; as&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;11&quot; font-size=&quot;25.5&quot;&gt; rain,&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;12&quot; font-size=&quot;25.0&quot;&gt; is&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;13&quot; font-size=&quot;24.7&quot;&gt; in&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;14&quot; font-size=&quot;24.5&quot;&gt; lakes,&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;15&quot; font-size=&quot;23.9&quot;&gt; rivers&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;16&quot; font-size=&quot;23.3&quot;&gt; and&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;17&quot; font-size=&quot;22.9&quot;&gt; seas,&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;18&quot; font-size=&quot;22.4&quot;&gt; and&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;19&quot; font-size=&quot;22.1&quot;&gt; is&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;20&quot; font-size=&quot;21.8&quot;&gt; used&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;21&quot; font-size=&quot;21.3&quot;&gt; for&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;22&quot; font-size=&quot;21.0&quot;&gt; drinking,&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;23&quot; font-size=&quot;20.1&quot;&gt; washing,&lt;/tspan&gt;&lt;tspan class=&quot;def&quot; data-k=&quot;24&quot; font-size=&quot;19.4&quot;&gt; etc.&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;25&quot; font-size=&quot;19.0&quot;&gt; liquid?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;26&quot; font-size=&quot;18.3&quot;&gt; colour?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;27&quot; font-size=&quot;17.7&quot;&gt; smell?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;28&quot; font-size=&quot;17.1&quot;&gt; taste?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;29&quot; font-size=&quot;16.5&quot;&gt; falls?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;30&quot; font-size=&quot;16.0&quot;&gt; rain?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;31&quot; font-size=&quot;15.5&quot;&gt; lakes?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;32&quot; font-size=&quot;15.0&quot;&gt; rivers?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;33&quot; font-size=&quot;14.3&quot;&gt; seas?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;34&quot; font-size=&quot;13.9&quot;&gt; used?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;35&quot; font-size=&quot;13.4&quot;&gt; drinking?&lt;/tspan&gt;&lt;tspan class=&quot;next&quot; data-k=&quot;36&quot; font-size=&quot;12.7&quot;&gt; washing?&lt;/tspan&gt;&lt;/textPath&gt;&lt;/text&gt;&lt;circle class=&quot;meaning&quot; cx=&quot;340&quot; cy=&quot;282&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;text class=&quot;clock&quot; x=&quot;672&quot; y=&quot;550&quot; text-anchor=&quot;end&quot;&gt;&lt;/text&gt;&lt;/svg&gt;&lt;div class=&quot;fig-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play&quot;&gt;Hear the word&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;“Water”, as the Oxford dictionary defines it, and the words that definition needs defined in turn.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-cb7da96&quot; class=&quot;opening&quot;&gt;While definitions trap us in an infinite regress of words defining words, failing to ever reach a satisfying conclusion, meaning is the direct, pre-conceptual embodied resonance unique to each &lt;span class=&quot;nowrap&quot;&gt;individual’s experience.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-2d11c66&quot;&gt;At best, communication based on words is an invitation to embodied co-experience, but it can never be some kind of true transfer of meaning.&lt;/p&gt;
&lt;p id=&quot;p-c477223&quot;&gt;This article makes that case through three short sections: &lt;em&gt;Birth of a Word, Definition is Not Meaning, &lt;/em&gt;and &lt;em&gt;Meaning is Not Definition.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-bca1489&quot;&gt;&lt;strong&gt;&lt;em&gt;Birth of a Word&lt;/em&gt;&lt;/strong&gt; shows how words appear and work.&lt;/p&gt;
&lt;p id=&quot;p-20e0045&quot;&gt;&lt;strong&gt;&lt;em&gt;Definition is Not Meaning&lt;/em&gt;&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;shows how definitions work.&lt;/p&gt;
&lt;p id=&quot;p-c8d24f3&quot;&gt;&lt;strong&gt;&lt;em&gt;Meaning is Not Definition &lt;/em&gt;&lt;/strong&gt;points to how meaning works.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;birth-of-a-word&quot;&gt;Birth of a Word&lt;/h3&gt;
&lt;p id=&quot;p-effa961&quot;&gt;Words are based on vowels and consonants, and vowels and consonants are based on sound. New words occur all the time; thousands of new words are added to English language every year.&lt;/p&gt;
&lt;p id=&quot;p-a83b349&quot;&gt;Every word has its origin in the thought process. In the case of a word that has never previously occurred, it initially occurs as a thought. In the case of a word that is already well-established, it keeps occurring in the thought process. Sometimes thoughts are simultaneously spoken or otherwise communicated, and sometimes not, but words always occur as thought.&lt;/p&gt;
&lt;p id=&quot;p-ae3962e&quot;&gt;When you think of the word “water”, the activation that shows up in a brain scan is more or less the same regardless if you just think about the word, or if you also say it out loud. Moreover, sensitive electrodes placed on the throat can detect muscle activations — micromovements — in the voice box and tongue, even if it’s just thought.&lt;/p&gt;
&lt;p id=&quot;p-7ea4eba&quot;&gt;In the case of thinking, there is an inhibitory signal sent by the prefrontal cortex that cancels the motor command coming from your brain’s language centre, Broca’s area, leaving behind a faint echo rather than audible speech.&lt;/p&gt;
&lt;p id=&quot;p-da47fdf&quot;&gt;Once a new word occur in the thought process, it always has some sense of experience co-occuring with it. That is meaning. Meaning is foundational for words. What can happen next is, that familiar words are used to add a narrative for the new word. That is definition, and it’s a second-order matter with words.&lt;/p&gt;
&lt;p id=&quot;p-65d2711&quot;&gt;&lt;strong&gt;Meaning&lt;/strong&gt; is connected with experience.&lt;/p&gt;
&lt;p id=&quot;p-d0d4edc&quot;&gt;&lt;strong&gt;Definition &lt;/strong&gt;is connected with concepts and narratives.&lt;/p&gt;
&lt;p id=&quot;p-4f2e73b&quot;&gt;When a baby learns to say “water”, it goes through experiening hundreds of events in which water somehow plays a role. Somebody says “water”, or water has some presence in the immediacy of the baby’s experience, or itself making sounds that eventually mature as “water”. The baby experiences water and develops meaning for it long before being able to say “water” or have any definition for it.&lt;/p&gt;
&lt;p id=&quot;p-900f466&quot;&gt;&lt;strong&gt;Every word is sound shaped by thought and steeped in experience.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;definition-is-not-meaning&quot;&gt;Definition is not Meaning&lt;/h3&gt;
&lt;p id=&quot;p-3673db9&quot;&gt;If you ask Oxford dictionary, what is the definition of the word “water”, you get the following:&lt;/p&gt;
&lt;blockquote id=&quot;p-225f37b&quot;&gt;
&lt;p&gt;“a liquid without colour, smell or taste that falls as rain, is in lakes, rivers and seas, and is used for drinking, washing, etc.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-6920448&quot;&gt;Definitions, such as the one above, consist of words used for defining words. In a sense, it is words talking about words. Essentially, language is a system based on infinite recursion of words, every word always depending on other words.&lt;/p&gt;
&lt;p id=&quot;p-af6bc4b&quot;&gt;For every definition you get, you have to get definitions for each of its words, and for every word in those definitions…ad infinitum. This is called &lt;em&gt;symbol grounding problem.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-e6f0b37&quot;&gt;Yet, considering definition to be meaning is extremely common in modern discourse. We all say things like “this literally means” and “the real meaning” in an effort to imply that definitions are meaning or that meaning can be precisely defined.&lt;/p&gt;
&lt;p id=&quot;p-5b5f5c5&quot;&gt;Superficially, definitions appear coherent and based on something concrete. The symbol grounding problem demonstrates how it’s just words chasing after other words, forever. Therefore, definitions correspond with mind in general, and with the thought process specifically.&lt;/p&gt;
&lt;p id=&quot;p-acc816d&quot;&gt;&lt;strong&gt;When it comes to meaning, it is embodied, it relates with the entire human system: body, energy, and mind.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;meaning-is-not-definition&quot;&gt;Meaning is not Definition&lt;/h3&gt;
&lt;p id=&quot;p-cc3ea4c&quot;&gt;Whereas, defining words leads to semantic regress, a kind of a vertigo, meaning is nothing like that. Meaning is less related with the thought process, and more with direct experience. Basically, meaning is how one’s neurophysiology resonates with respect to a particular appearance, for example, the word “water” spoken out by someone.&lt;/p&gt;
&lt;p id=&quot;p-364b96e&quot;&gt;Simply by hearing the word “water”, there is an immediate neurophysiological response. In the first instance, maybe around 100 milliseconds, a state shift can be experienced. It can be a very subtle, or very gross, sensation of state change. For example, a sense of energy moving upwards the torso. Immediately after, in around 200–300 milliseconds later, gross conceptuality kicks in with a narration of the situation. This narration, definition, is riding the thought process, and the thought process is riding the neurophysiology.&lt;/p&gt;
&lt;p id=&quot;p-25572e3&quot;&gt;The neurophysiology itself, is in the shape of the meaning. The shape of the neurophysiology, is in itself meaning. It is the neurophysiology that is experience, and it is the experience that is meaning.&lt;/p&gt;
&lt;p id=&quot;p-e4bd056&quot;&gt;Therefore, there is a very clear and important difference between meaning and definition. All definitions are based on words, and all words are based on thoughts. Meaning is direct resonant experience. Thoughts may or may not be part of direct experience, depending if they occur or not.&lt;/p&gt;
&lt;p id=&quot;p-7d0631e&quot;&gt;What is meant by resonance here then? When we say hearing the word “water”, what we are talking about is sound, and in the particular context of human communication, that sound arise and is processed through the neurophysiology of an individual.&lt;/p&gt;
&lt;p id=&quot;p-8708fc4&quot;&gt;That neurophysiology has a particular “shape”, the way in which it is arranged. The macrostructure is the gross shape of the whole biological mass, and its appearance is similar in all humans. The macrostructure is the substrate that makes it possible for highly individualised microstructures to appear. The microstructure is the substrate that makes it possible for highly individualised sense of meaning to appear.&lt;/p&gt;
&lt;p id=&quot;p-dd1662c&quot;&gt;The shape of the microstructure is highly refined by one’s experience, genetics, and other factors. The neurophysiological microstructure is entirely unique for each individual.&lt;/p&gt;
&lt;p id=&quot;p-43c6d6c&quot;&gt;Because two neurophysiologies can never be the same, and even for a single individual their neurophysiology is in constant flux, and because meaning is neurophysiology, meaning can never be the same for two individuals. Meaning can’t be expressed through words.&lt;/p&gt;
&lt;p id=&quot;p-efaf841&quot;&gt;&lt;strong&gt;Meaning is experienced individually, within one’s body, energy, and mind.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;turtles-all-the-way-down&quot;&gt;Turtles All the Way Down&lt;/h3&gt;
&lt;p id=&quot;p-276fddd&quot;&gt;If you observe your own thought process, you find that it is a kind of a narrative that is always working to define things, it’s always working to define itself. The thought process is a kind of a commentary, that adds context to things.&lt;/p&gt;
&lt;p id=&quot;p-ac078a0&quot;&gt;Even if thought process goes on forever justifying its definitions with other definitions, it will never reach the end of it, it will never land on the ground truth. It’s just words chasing words in a fantastical metalinguistic construct, kind of a matrix.&lt;/p&gt;
&lt;p id=&quot;p-83f5f6e&quot;&gt;As mere direct self-apparent experience, meaning is radically different. True meaning is the ground truth, it is what is without anything added or removed.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;you-might-also-enjoy-dont-believe-your-thoughts&quot;&gt;You might also enjoy &lt;a href=&quot;https://medium.com/@mikkokotila/do-you-believe-your-thoughts-eec1715733b3&quot;&gt;Don’t Believe Your Thoughts&lt;/a&gt;&lt;/h4&gt;</content></entry><entry><title>Adverse Events Are Invitations for Process Improvement</title><link href="https://mikkokotila.com/writing/adverse-events-are-invitations-for-process-improvement/"/><id>https://mikkokotila.com/writing/adverse-events-are-invitations-for-process-improvement/</id><published>2025-12-16T00:00:00Z</published><updated>2025-12-16T00:00:00Z</updated><category term="research-and-development"/><summary>This article is part of Short essays covering what I learned from running software projects for three decades.</summary><content type="html">&lt;p id=&quot;p-f3eb4ec&quot;&gt;This article is part of &lt;a href=&quot;https://medium.com/@mikkokotila/a-reading-list-of-short-essays-covering-what-i-learned-running-software-projects-for-three-decades-59241aaf5a65&quot;&gt;&lt;strong&gt;Short essays covering what I learned from running software projects for three decades.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-a258899&quot;&gt;All kinds of projects suffer from repeated occurrence of various adverse events and from organizations responding to such events reactively. Basically, something happens, the adverse event, and then something else happens as a reaction to that, the response. The adverse event is treated as a problem, and the response is treated as a solution, but they are actually both part of the problem.&lt;/p&gt;
&lt;p id=&quot;p-120f0ae&quot;&gt;Simply put, a purely reactive &lt;strong&gt;incident → response&lt;/strong&gt; stance is a high-probability long-term loser in technology projects for a simple reason: it fights glaring symptoms in systems where the real damage accumulates quietly, upstream, and combinatorially.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;1-adverse-events-rarely-arise-from-single-causes-theyre-alignments-of-latent-conditions&quot;&gt;1) Adverse events rarely arise from single causes; they’re alignments of latent conditions.&lt;/h4&gt;
&lt;p id=&quot;p-4ac185b&quot;&gt;A more systematic approach distinguishes active failures from latent conditions (design gaps, staffing, incentives, tooling, coupling, etc.,) and argues that serious incidents usually require both. If you only react to the active failure, you leave the latent conditions in place — so the system remains primed to generate the next “surprising” failure.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;2-in-complex-tightly-coupled-systems-after-the-fact-fixes-systematically-miss-the-real-dynamics&quot;&gt;2) In complex, tightly coupled systems, “after-the-fact fixes” systematically miss the real dynamics.&lt;/h4&gt;
&lt;p id=&quot;p-dc88e3e&quot;&gt;In systems with high interactive complexity and tight coupling, small issues can combine and cascade in unpredictable ways — making “we’ll fix it when it breaks” structurally unreliable as a control strategy. To mitigate this, successful projects essentially evolve into complexity management engines.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;3-reactive-mode-creates-a-reinforcing-loop-firefighting-consumes-the-very-capacity-needed-to-prevent-fires&quot;&gt;3) Reactive mode creates a reinforcing loop: firefighting consumes the very capacity needed to prevent fires.&lt;/h4&gt;
&lt;p id=&quot;p-6d7400d&quot;&gt;Literature makes this clear: toil, often celebrated in software projects, tends to be interrupt-driven and reactive and is often work with no enduring value. When such work dominates, actual reliability work gets crowded out — so incidents keep coming, and toil grows. There is an aggrevating hidden force at play here: firefighting produces heroes, which creates cultural incentives to tolerate the conditions that produce fires. This is a dangerous cultural pattern.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;4-complex-systems-drift-into-failureso-waiting-for-a-clear-alarm-is-waiting-too-long&quot;&gt;4) Complex systems “drift” into failure — so waiting for a clear alarm is waiting too long.&lt;/h4&gt;
&lt;p id=&quot;p-f29b733&quot;&gt;Global risk increases gradually through locally reasonable decisions made under pressure (schedule, cost, workarounds, etc.,), exhausting available margins. A reactive posture detects problems late, when options are costlier and side-effects larger. Drift is particularly insidious because each individual step is defensible. No single decision looks reckless — the danger lives in the aggregate trajectory, which nobody in a reactive organization is tracking.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;5-in-software-late-discovery-and-late-correction-is-economically-untenable&quot;&gt;5) In software, late discovery and late correction is economically untenable.&lt;/h4&gt;
&lt;p id=&quot;p-df95868&quot;&gt;Defect-fix cost rises sharply the later issues are found. A reactive strategy is, by design, a late-discovery strategy — so its cost curve tends to steepen over time. Fixing a bug in design costs $1. Fixing it in QA costs $10. Fixing it in Production during an outage costs $100 (plus reputation cost). Reactive organizations are permanently operating on the most expensive part of the curve.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p id=&quot;p-4b98911&quot;&gt;Reactive postures aren’t just slower — they’re systematically mismatched to the failure dynamics of complex systems. They address the proximate trigger while leaving the generative structure intact. This is why adverse events really are an invitation for process improvement.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;you-might-also-enjoy-the-three-fundamental-principles-of-software-projects&quot;&gt;You might also enjoy* &lt;em&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/the-three-fundamental-principles-of-software-projects-3e798810083d&quot;&gt;&lt;em&gt;The Three Fundamental Principles of Software Projects&lt;/em&gt;&lt;/a&gt;&lt;/em&gt;.*&lt;/h4&gt;</content></entry><entry><title>A reading list of short essays covering what I learned running software projects for three decades</title><link href="https://mikkokotila.com/writing/a-reading-list-of-short-essays-covering-what-i-learned-running-software/"/><id>https://mikkokotila.com/writing/a-reading-list-of-short-essays-covering-what-i-learned-running-software/</id><published>2024-08-28T00:00:00Z</published><updated>2024-08-28T00:00:00Z</updated><category term="research-and-development"/><summary>1. Fundamentals Under this heading, the articles focus on helping the reader to understand fundamental principles underpinning all software projects.</summary><content type="html">&lt;h3 class=&quot;h-1&quot; id=&quot;1-fundamentals&quot;&gt;1. Fundamentals&lt;/h3&gt;
&lt;p id=&quot;p-bbcbfc4&quot;&gt;&lt;em&gt;Under this heading, the articles focus on helping the reader to understand fundamental principles underpinning all software projects.&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;the-pyramid-of-goodness-for-research-and-development-organizations&quot;&gt;&lt;a href=&quot;https://medium.com/art-technology/the-pyramid-of-goodness-for-research-and-development-organizations-78ffc28c131f&quot;&gt;The Pyramid of Goodness for Research and Development Organizations&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-0d51db7&quot;&gt;&lt;em&gt;A practical framework for thinking about resource allocation in software companies as a thermodynamic system&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;creating-software-through-experiencing-the-domain&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/creating-software-through-experiencing-the-domain-b71db5505e43&quot;&gt;Creating Software Through Experiencing the Domain&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-5a0b24b&quot;&gt;&lt;em&gt;Seven steps for bridging the gap between human experience and software engineering&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;the-three-eras-of-knowledge-objects&quot;&gt;&lt;a href=&quot;https://medium.com/aecmaster/the-three-eras-of-knowledge-objects-994fa4ed9372&quot;&gt;The Three Eras of Knowledge Objects&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-a033094&quot;&gt;&lt;em&gt;Future-proof technology innovation requires the innovator to have a future perspective&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;the-three-fundamental-principles-of-software-projects&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/the-three-fundamental-principles-of-software-projects-3e798810083d&quot;&gt;The Three Fundamental Principles of Software Projects&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-620bafd&quot;&gt;&lt;em&gt;Three vitally important things I learned building software for 30 years — explained in five minutes.&lt;/em&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;2-from-an-idea-to-marketability&quot;&gt;2. From an idea to marketability&lt;/h3&gt;
&lt;p id=&quot;p-3ba7cba&quot;&gt;&lt;em&gt;Under this heading, the articles focus on helping the reader clearly see how ideas are nothing but cost until they are built and are made marketable, and how on each step along the way the cost keeps exponentially growing.&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;thinking-about-ideas-as-a-system-ideas-as-cost&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/thinking-about-ideas-as-a-system-ideas-as-cost-7ddff76dc944&quot;&gt;Thinking about Ideas as a System: Ideas as Cost&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-e1b0991&quot;&gt;&lt;em&gt;Ideas are generally thought of as having value, but in fact, ideas only have cost.&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;thinking-about-ideas-as-a-system-evaluation-of-ideas&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/thinking-about-ideas-as-a-system-evaluation-of-ideas-38054fafcffb&quot;&gt;Thinking about Ideas as a System: Evaluation of Ideas&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-76ff788&quot;&gt;&lt;em&gt;How great ideas can be bad ideas, and a guideline for going beyond&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;thinking-about-ideas-as-a-system-effective-communication&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/thinking-about-ideas-as-a-system-effective-communication-700b8de6479c&quot;&gt;Thinking about Ideas as a System: Effective Communication&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-7f906b6&quot;&gt;&lt;em&gt;Guidelines for a culture where the right ideas thrive&lt;/em&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;3-sustainability-leadership-in-engineering&quot;&gt;3. Sustainability leadership in engineering&lt;/h3&gt;
&lt;p id=&quot;p-daaf320&quot;&gt;&lt;em&gt;Under this heading, the articles focus on introducing a novel framework for engineers and engineering leaders to think about the relationship engineering work has with sustainability. Even though the articles use advertising technology projects as an example, the framework is applicable to all data intensive fields.&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;moving-towards-ecologically-sustainable-advertising-introduction&quot;&gt;&lt;a href=&quot;https://medium.com/art-technology/towards-ecologically-sustainable-advertising-d68840cf68c8&quot;&gt;Moving Towards Ecologically Sustainable Advertising: Introduction&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-e2c601a&quot;&gt;&lt;em&gt;Sustainability aspirations often become misguided by lack of available relevant information and the general difficulty of understanding complex systems&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;moving-towards-ecologically-sustainable-advertising-the-five-fives&quot;&gt;&lt;a href=&quot;https://medium.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Five Fives&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-cdaff8d&quot;&gt;&lt;em&gt;A practical outline for thinking about emissions caused by software systems&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;moving-towards-ecologically-sustainable-advertising-the-actual-method&quot;&gt;&lt;a href=&quot;https://medium.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-actual-method-fc32fb52ad7&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Actual Method&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-8111681&quot;&gt;&lt;em&gt;Whereas in the &lt;/em&gt;&lt;a href=&quot;https://medium.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;&lt;em&gt;Five Fives&lt;/em&gt;&lt;/a&gt;&lt;em&gt; we outlined the framework for understanding sustainability in online advertising, in this article, we introduce the actual method for achieving it through optimizing the Five Aspects.&lt;/em&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;4-miscellaneous-writings&quot;&gt;4. Miscellaneous writings&lt;/h3&gt;
&lt;p id=&quot;p-4558396&quot;&gt;&lt;em&gt;Under this heading, writings on various relevant topics are included.&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;data-as-costbig-cakes-are-nice-if-you-like-cake&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/data-as-cost-big-cakes-are-nice-if-you-like-cake-5da7ef8be9f5&quot;&gt;Data as Cost — Big Cakes are Nice if you Like Cake&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-bcca33c&quot;&gt;&lt;em&gt;If data is cost, and algos are a commodity, what is it that we should value in the coming age of automated decision making?&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;five-essential-points-on-data-visualization&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/five-essential-points-on-data-visualization-2856b80730b3&quot;&gt;Five Essential Points on Data Visualization&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-80bbf6f&quot;&gt;&lt;em&gt;The goal of data visualization is to act as a catalyst for some sort of behavior change, yet mostly practitioners focus on other things.&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;thoughts-on-pseudo-decentralization&quot;&gt;&lt;a href=&quot;https://medium.com/eka-foundation/thoughts-on-pseudo-decentralization-e07c306aa388&quot;&gt;Thoughts on Pseudo Decentralization&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-6c2131e&quot;&gt;&lt;em&gt;Can you name one thing that is actually decentralized? Is centralization in itself a negative force? Can organizations between people and things work without order? This commentary attempts to answer these questions in a new light.&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;demystifying-causalityhow-to-move-from-guesswork-to-knowing&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/demystifying-causality-how-to-move-from-guesswork-to-knowing-3f2662b4ace4&quot;&gt;Demystifying Causality — How to Move from Guesswork to Knowing&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-d1d64aa&quot;&gt;&lt;em&gt;If researchers agree that cause and effect is important, why is it not the standard and correlation is — the blocker, is it philosophical or logistical?&lt;/em&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;whenever-i-will-post-new-articles-on-similar-topics-the-articles-will-be-automatically-added-also-here-thank-you-for-reading-️&quot;&gt;Whenever I will post new articles on similar topics, the articles will be automatically added also here. Thank you for reading ❤️&lt;/h4&gt;</content></entry><entry><title>Eat what you like to eat diet</title><link href="https://mikkokotila.com/writing/eat-what-you-like-to-eat-diet/"/><id>https://mikkokotila.com/writing/eat-what-you-like-to-eat-diet/</id><published>2024-07-07T00:00:00Z</published><updated>2024-07-07T00:00:00Z</updated><category term="health"/><summary>It’s easier to eat too much protein than it is to eat too little protein and nine other things I learned about food and performance Eat what you like to eat If you don’t eat what you like to eat now, the chances are,…</summary><content type="html">&lt;h4 class=&quot;h-1&quot; id=&quot;its-easier-to-eat-too-much-protein-than-it-is-to-eat-too-little-protein-and-nine-other-things-i-learned-about-food-and-performance&quot;&gt;It’s easier to eat too much protein than it is to eat too little protein and nine other things I learned about food and performance&lt;/h4&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-what-you-like-to-eat&quot;&gt;Eat what you like to eat&lt;/h4&gt;
&lt;p id=&quot;p-b07bd04&quot; class=&quot;opening&quot;&gt;If you don’t eat what you like to eat now, the chances are, soon you will. That is why the single most important principle in structuring our diet is to eat what you like to eat. The more serious you are as an athlete, the more likely you are making important sacrifices for the sake of athleticism. What you eat, should not need to be one of &lt;span class=&quot;nowrap&quot;&gt;those sacrifices.&lt;/span&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-to-fuel-training&quot;&gt;Eat to fuel training&lt;/h4&gt;
&lt;p id=&quot;p-b2ac13a&quot;&gt;If you do a big gym session, eat for that session before and after. If you know you’re going to do a long ride on Sunday, start eating for it no later than Friday and make sure you take in what you need afterwards.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-as-you-plan-to-eat&quot;&gt;Eat as you plan to eat&lt;/h4&gt;
&lt;p id=&quot;p-f6bdc1b&quot;&gt;Make a diet plan, and stick to it. For example, if you eat breakfast and dinner each day, decide on seven different dinner dishes (one for each day of the week), and master cooking those, while sticking to same breakfast every day. Change things around based on seasonality and other factors.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-more-vegetables-and-fruits&quot;&gt;Eat more vegetables and fruits&lt;/h4&gt;
&lt;p id=&quot;p-6d5ab73&quot;&gt;If you feel like eating burger and fries, go ahead, but make sure to eat plenty of vegetables and fruits on that same day. Green leafy vegetables are specifically beneficial, but any vegetable and fruit goes a long way.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-more-carbs&quot;&gt;Eat more carbs&lt;/h4&gt;
&lt;p id=&quot;p-2035373&quot;&gt;If you don’t eat more carbs than you would otherwise eat, you will not have the fuel you need to keep your engine running near its full capacity. If you can’t keep your engine running near its full capacity when scheduled, you will not make the athletic gains you are looking for, or you will make them much slower than you otherwise could.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-enough-protein&quot;&gt;Eat enough protein&lt;/h4&gt;
&lt;p id=&quot;p-1b051ef&quot;&gt;There are a lot of beliefs about protein and what is enough. I think it’s easier to eat too much protein than it is to eat too little protein. If your main objective is not muscle growth, you can probably get away with a small amount of protein on most days of the week.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-good-fats&quot;&gt;Eat good fats&lt;/h4&gt;
&lt;p id=&quot;p-7078fe9&quot;&gt;The difference between bad fats and good fats is very important for human physiology. Whereas trans fats should probably never be eaten by anyone, things like nuts and olives should probably be eaten by everyone. Sufficient intake of fish oil reduces all-cause mortality as much as daily smoking increases it.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-more-whole-foods&quot;&gt;Eat more whole foods&lt;/h4&gt;
&lt;p id=&quot;p-760112f&quot;&gt;Instead of drinking juice, eat fruit. Instead of eating a sausage, eat meat. Instead of highly refined bread, eat a wholemeal tortilla. Eat whatever you like, but eat a more wholesome version of it.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;restricting-eating-to-a-time-window&quot;&gt;Restricting eating to a time window&lt;/h4&gt;
&lt;p id=&quot;p-19212f8&quot;&gt;Instead of eating the first thing in the morning, eat few hours after waking up. Instead of eating the last thing in the night, eat a few hours before going to sleep.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;eat-supplements-sparingly&quot;&gt;Eat supplements sparingly&lt;/h4&gt;
&lt;p id=&quot;p-47b44a7&quot;&gt;Supplements, such as creatine and protein should be taken periodically and with consideration to circumstances. We don’t need supplements, but with correct timing and dosing, they can be beneficial. Doing blood work annually is a great way to guide supplementation.&lt;/p&gt;</content></entry><entry><title>Some important differences between the meaning of wisdom in East and West</title><link href="https://mikkokotila.com/writing/some-important-differences-between-the-meaning-of-wisdom-in-east-and-west/"/><id>https://mikkokotila.com/writing/some-important-differences-between-the-meaning-of-wisdom-in-east-and-west/</id><published>2023-11-12T00:00:00Z</published><updated>2023-11-12T00:00:00Z</updated><category term="wisdom"/><summary>TL;DR What is considered liberation in the East is called insanity in the West. What is considered liberation in the West, is considered an illusion in the East.</summary><content type="html">&lt;p id=&quot;p-7d25791&quot; class=&quot;opening&quot;&gt;&lt;strong&gt;&lt;em&gt;TL;DR &lt;/em&gt;&lt;/strong&gt;&lt;em&gt;What is considered liberation in the East is called insanity in the West. What is considered liberation in the West, is considered an illusion in the East. Furthermore, holding firmly to the illusion as if it was, in fact, real, is considered in the East an utter waste of this &lt;span class=&quot;nowrap&quot;&gt;precious life.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-6b95a1a&quot;&gt;While East and West may sometimes appear superficially similar, in many ways, once the differences are made apparent, these two cultures could not be further from one another.&lt;/p&gt;
&lt;p id=&quot;p-5977f2a&quot;&gt;This will now be explained in detail through several superficial similarities, which under closer inspection reveal themselves as gross differences between Eastern and Western cultures.&lt;/p&gt;
&lt;p id=&quot;p-18554f9&quot;&gt;The intention of this article is not at all to say what is right or wrong, but simply to highlight readily occurring observations about the differences in the way the concept of wisdom appears in the East versus the West.&lt;/p&gt;
&lt;p id=&quot;p-d6db53d&quot;&gt;Regardless if you find Eastern or Western wisdom traditions more practical and beneficial, these differences are something that can be very beneficial for us to clearly understand.&lt;/p&gt;
&lt;p id=&quot;p-ae6dcb0&quot;&gt;Whereas in Eastern culture, wisdom is conceptualized as an effort to bring us closer to our true nature, in Western culture, wisdom is conceptualized almost exclusively as an effort to understand and control the ego as well as the external world.&lt;/p&gt;
&lt;p id=&quot;p-1c67de9&quot;&gt;The Western approach of controlling ego here refers to the process commonly known as self-development. In this process, the current self criticizes the past self in an effort to control the future self. Conversely, in the East, any attempt to control ego in such a way is seen as a supplementary practice at best.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;both-eastern-and-western-cultures-have-wisdom-traditions&quot;&gt;Both Eastern and Western cultures have wisdom traditions&lt;/h3&gt;
&lt;p id=&quot;p-9ebddbb&quot;&gt;Whereas in Eastern cultures, in a series of progressively more subtle techniques, reason (the use of syllogisms) is the first step towards wisdom, Western cultures typically use syllogisms as the be-all-end-all of wisdom. The exception to this is the Western New Age movement, and whatever remnants we can find from Western ancestral traditions. In some interpretations of quantum physics and cognitive sciences, we start to see signs of increasingly subtle methods being used.&lt;/p&gt;
&lt;p id=&quot;p-863f486&quot;&gt;To highlight the significance of this difference between the two cultures, in Tibetan there is a saying that a syllogism at best ends up being like the last night’s wet dream. In the West, for the most part, the syllogism is considered the wisdom gold standard.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;both-eastern-and-western-cultures-have-the-tradition-of-cultivating-wisdom&quot;&gt;Both Eastern and Western cultures have the tradition of cultivating wisdom&lt;/h3&gt;
&lt;p id=&quot;p-ae2bbd8&quot;&gt;Here the phrase “dissolution of eco clinging” comes into play. Without understanding the meaning of this, it is not possible to understand Eastern wisdom at all. The distinction here is between the ego, and clinging to the ego.&lt;/p&gt;
&lt;p id=&quot;p-704e183&quot;&gt;Eastern wisdom is not saying that ego is problematic, but it’s saying that clinging to ego’s reality is problematic. Most Eastern wisdom traditions consider ego to exist merely as a moment by moment result of causes and conditions. For example, Indian wisdom traditions tend to use the &lt;em&gt;The Five Faces of the Ego &lt;/em&gt;to explain how this moment by moment arising of the ego can be experienced by anyone.&lt;/p&gt;
&lt;p id=&quot;p-608d702&quot;&gt;Dissolution of eco clinging here refers to what could be characterised as moment by moment dissolution of ego’s moment by moment reality.&lt;/p&gt;
&lt;p id=&quot;p-e512b89&quot;&gt;The contrasting term “development of ego clinging” here refers to what could be characterised as actively working to develop clinging to ego’s reality.&lt;/p&gt;
&lt;p id=&quot;p-f293147&quot;&gt;The term “cultivation” here has the primary meaning of taking something, for example, the impermanence of all things, and then contemplating on that until it becomes a lived experience.&lt;/p&gt;
&lt;p id=&quot;p-5222499&quot;&gt;&lt;strong&gt;NOTE: It is critically important to understand clearly what these terms mean and what they don’t mean. These are not theoretical frameworks or ideas, but all of this talks about lived experience.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-7563e29&quot;&gt;Whereas in Eastern cultures, the intention of cultivating wisdom is focused on the dissolution of ego clinging, in Western cultures a different approach is taken. In the West, there are two approaches to this.&lt;/p&gt;
&lt;p id=&quot;p-914ab58&quot;&gt;For example, in the wisdom tradition of quantum mechanics, there is no focus on either the dissolution of eco clinging or development of ego clinging. The second common Western approach, the far more prominent one, focuses on the development of ego clinging. In effect, most Western methods are ego clinging.&lt;/p&gt;
&lt;p id=&quot;p-fbf9d9e&quot;&gt;Western wisdom does acknowledge dissolution of eco clinging, but never as an outcome of cultivating wisdom, nor as something one should seek after. But instead, oftentimes ends up dealing with it as a mental disorder&lt;/p&gt;
&lt;p id=&quot;p-979ca41&quot;&gt;Both of these Western approaches are in stark contrast with the East, where the focus of cultivating wisdom is on dissolution of eco clinging.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;both-eastern-and-western-cultures-acknowledge-dissolution-of-eco-clinging&quot;&gt;Both Eastern and Western cultures acknowledge dissolution of eco clinging&lt;/h3&gt;
&lt;p id=&quot;p-a476fc6&quot;&gt;Whereas in Eastern cultures, dissolution of eco clinging is considered a goal of cultivating wisdom, in Western cultures it is considered a mental disorder.&lt;/p&gt;
&lt;p id=&quot;p-87dc754&quot;&gt;The current &lt;em&gt;Diagnostic and Statistical Manual of Mental Disorders (DSM-5) &lt;/em&gt;highlights this difference very clearly.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;both-eastern-and-western-cultures-conceptualize-liberation&quot;&gt;Both Eastern and Western cultures conceptualize liberation&lt;/h3&gt;
&lt;p id=&quot;p-db60073&quot;&gt;Whereas in Eastern cultures, liberation refers to liberation from ego, in the Western cultures liberation refers to the fortification of ego through the ability to decide which labels apply to oneself, and which do not.&lt;/p&gt;
&lt;p id=&quot;p-4500a22&quot;&gt;This is highlighted by Western cultural curiosities such as the case where a biological male with a common appearance of a male, becomes offended for being referred to as “he”.&lt;/p&gt;
&lt;p id=&quot;p-aeb22bb&quot;&gt;The other way to understand this is through the contrast between what is referred to by Western philosophers as positive and negative liberty. While positive liberty has a more traditional sense of the word liberty, the meaning of negative liberty refers to how we are free to eat what we want, watch what we want, and indulge in myriad ways as per our preferences.&lt;/p&gt;
&lt;p id=&quot;p-299bc93&quot;&gt;To summarize, the first major difference we find here is that the Western interpretation of positive liberty focuses on being able to decide which labels apply to oneself and which do not, and on the right one has to consequently become offended if others do not comply with one’s expectations in this regard.&lt;/p&gt;
&lt;p id=&quot;p-b6d77e5&quot;&gt;The second major difference we find is that where Western cultures prominently focus on negative liberty, such as being able to watch whatever one wants whenever one wants, Eastern cultures tend to see negative liberty as a gross manifestation of that which we should liberate from.&lt;/p&gt;
&lt;p id=&quot;p-162fed4&quot;&gt;While Westerners make their lives about the attainment of negative liberty, Eastern conceptualization of wisdom makes life about the attainment of negative liberty, as well as the positive one.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p id=&quot;p-e9b89a5&quot;&gt;Whereas wisdom in Eastern culture tends to focus on liberation through spiritualism, Western culture tends to focus on liberation through materialism.&lt;/p&gt;
&lt;p id=&quot;p-088c5aa&quot;&gt;Because of this, when Westerners initially become curious about Eastern spiritual ideas, those ideas become immediately captured by the ego, in a sense they become ego, and whatever spiritual potential there may have been associated with those ideas becomes material potential.&lt;/p&gt;
&lt;p id=&quot;p-b8babee&quot;&gt;This is called spiritual materialism. Anyone interested in understanding, practicing, teaching, or otherwise communicating Eastern wisdom in the context of Western culture will have to be able to break through this spiritual materialism.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;if-you-found-this-article-useful-why-not-do-whatever-you-like-to-help-share-it-so-that-others-can-benefit-from-it-in-the-same-way-you-did&quot;&gt;If you found this article useful, why not do whatever you like to help share it so that others can benefit from it in the same way you did?&lt;/h3&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;️&quot;&gt;❤️&lt;/h3&gt;</content></entry><entry><title>Do you believe your thoughts?</title><link href="https://mikkokotila.com/writing/do-you-believe-your-thoughts/"/><id>https://mikkokotila.com/writing/do-you-believe-your-thoughts/</id><published>2023-10-30T00:00:00Z</published><updated>2023-10-30T00:00:00Z</updated><category term="wisdom"/><summary>We base virtually everything we do on thoughts, but what is a thought? How is it produced? What produces it?</summary><content type="html">&lt;h4 class=&quot;h-1&quot; id=&quot;we-base-virtually-everything-we-do-on-thoughts-but-what-is-a-thought-how-is-it-produced-what-produces-it&quot;&gt;We base virtually everything we do on thoughts, but what is a thought? How is it produced? What produces it?&lt;/h4&gt;
&lt;p id=&quot;p-bee4bb6&quot; class=&quot;opening&quot;&gt;One modern neuroscientifically meaningful way to explain it is that there are areas of the brain, like Broca’s area, that are heavily involved in the production of thoughts. So we can say that the brain produces thoughts. Physiologically these thoughts can be explained as chainlike &lt;span class=&quot;nowrap&quot;&gt;chemical reactions.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-372bb75&quot;&gt;The way it appears to work is that there is a thought and then there is another thought, and the relationship between these two thoughts is that the second always follows the first. One thought forever following another one is another way to explain the process of thought production.&lt;/p&gt;
&lt;p id=&quot;p-805ccbd&quot;&gt;There are many patterns in which this takes place, for example make-believe. First there is a thought that says something about something, and then there is the second thought that believes it. One finds this simply by observing one’s cognitive flow.&lt;/p&gt;
&lt;p id=&quot;p-2d60b62&quot;&gt;All the other patterns are similar. There is a statement of some kind (stimuli), and then there is a commentary for that statement (response). Typically, the response then becomes a stimuli for more responses and the commentary goes on without end.&lt;/p&gt;
&lt;p id=&quot;p-41537b8&quot;&gt;It is very important to understand that this process is decoupled from reason. Unless reason (syllogisms) is forcefully interjected into this process, thoughts are just stories. Made-up stories.&lt;/p&gt;
&lt;p id=&quot;p-4027af1&quot;&gt;In fact, we can immediately observe this to be the case. For example, if I ask you to give “three numbers whose product is ten?” you can then observe a voice within your cognitive flow appearing, that either gives the answer, or adds some commentary.&lt;/p&gt;
&lt;p id=&quot;p-7ca86f1&quot;&gt;The correct answer to this question is “There are infinitely many possible sets of three numbers where their product will total ten”. There is no other correct answer to the posed question. After having read that, you may have observed another voice that adds commentary to the wrong answer.&lt;/p&gt;
&lt;p id=&quot;p-73e75a6&quot;&gt;Asking this question to 100 people will produce answers such as 1, 2, and 5 as the answer. Not only thoughts are decoupled from any deliberate process of reason, but for the most part they are automatically and instantly produced without any deliberation at all.&lt;/p&gt;
&lt;p id=&quot;p-7549402&quot;&gt;Even when there seems to be deliberation — unless we have forcefully pushed everything through syllogisms — if we observe how that is produced, it is produced in the same way. In other words, it’s just more make-believe, just more nice sounding stories. Deliberation is just one of the types of commentary that appear within one’s cognitive flow as thoughts.&lt;/p&gt;
&lt;p id=&quot;p-6b1df1b&quot;&gt;All of this can be summarised readily into a simple mind-training slogan:&lt;/p&gt;</content></entry><entry><title>What Is Our Philosophical View?</title><link href="https://mikkokotila.com/writing/what-is-our-philosophical-view/"/><id>https://mikkokotila.com/writing/what-is-our-philosophical-view/</id><published>2023-08-03T00:00:00Z</published><updated>2023-08-03T00:00:00Z</updated><category term="wisdom"/><summary>Lately, I’ve been thinking about our way of living through the differentiation between our modern way and the way of ancient India.</summary><content type="html">&lt;p id=&quot;p-96adbfe&quot; class=&quot;opening&quot;&gt;Lately, I’ve been thinking about our way of living through the differentiation between our modern way and the way of ancient India. For example, through the traditional way of explaining philosophical views as the 64 different views present in India at &lt;span class=&quot;nowrap&quot;&gt;that time.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-2742a8a&quot;&gt;So which view is the prominent one today? Strictly speaking, none of them. Philosophical views serve a single purpose of answering “what is reality” and such questions have been pushed to the very fringes of modern society.&lt;/p&gt;
&lt;p id=&quot;p-9c2540b&quot;&gt;So which one is the closest to the general perspective we hold? It is the view of the Charvakas (also called Lokayata), the view that was considered the most extreme by holders of all the other views.&lt;/p&gt;
&lt;p id=&quot;p-76156a7&quot;&gt;In which way it is to be understood as extreme? Being materialistic, rejecting all kinds of scriptures and spiritual practices, emphasizing sensory experiences, promoting hedonism, and denying any kind of continuity beyond the mere materialism of this life.&lt;/p&gt;
&lt;p id=&quot;p-bb50599&quot;&gt;The major difference between Charvakas and us, even though our attitudes are strikingly similar, is that they held it (based on contemplation) as a view, and we blindly follow it.&lt;/p&gt;</content></entry><entry><title>Creating Software Through Experiencing the Domain</title><link href="https://mikkokotila.com/writing/creating-software-through-experiencing-the-domain/"/><id>https://mikkokotila.com/writing/creating-software-through-experiencing-the-domain/</id><published>2023-07-22T00:00:00Z</published><updated>2023-07-22T00:00:00Z</updated><category term="research-and-development"/><summary>Seven steps for bridging the gap between human experience and software engineering - To create software, you have to create a data model - To create a data model, you have to know the relationship of things - To know the relationship of things, you have to know their meaning -…</summary><content type="html">&lt;h4 class=&quot;h-1&quot; id=&quot;seven-steps-for-bridging-the-gap-between-human-experience-and-software-engineering&quot;&gt;Seven steps for bridging the gap between human experience and software engineering&lt;/h4&gt;
&lt;ul&gt;
&lt;li id=&quot;p-7a60592&quot;&gt;To create software, you have to create a data model&lt;/li&gt;
&lt;li id=&quot;p-3a394ff&quot;&gt;To create a data model, you have to know the relationship of things&lt;/li&gt;
&lt;li id=&quot;p-2f75d7e&quot;&gt;To know the relationship of things, you have to know their meaning&lt;/li&gt;
&lt;li id=&quot;p-a1b5216&quot;&gt;To know the meaning, you have to know the words&lt;/li&gt;
&lt;li id=&quot;p-875285e&quot;&gt;To know the words, you have to know the first principles&lt;/li&gt;
&lt;li id=&quot;p-341229f&quot;&gt;To know the first principles, you have to understand the domain&lt;/li&gt;
&lt;li id=&quot;p-3751e69&quot;&gt;To understand the domain, you have to experience it&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-dbcb403&quot;&gt;It is therefore through experiencing the domain, that one is able to create software for it.&lt;/p&gt;</content></entry><entry><title>The Eclipsing of Wisdom by the Cult of Celebrity</title><link href="https://mikkokotila.com/writing/the-eclipsing-of-wisdom-by-the-cult-of-celebrity/"/><id>https://mikkokotila.com/writing/the-eclipsing-of-wisdom-by-the-cult-of-celebrity/</id><published>2023-03-27T00:00:00Z</published><updated>2023-03-27T00:00:00Z</updated><category term="wisdom"/><summary>Is the Siren Song of Fame Fading Out the Voice of Wisdom in a World Obsessed with Appearances?</summary><content type="html">&lt;p id=&quot;p-0fb528f&quot;&gt;&lt;em&gt;The article below was crafted with human assistance.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-1b168c8&quot;&gt;In these times, it seems as though the masses have become entranced by a curious phenomenon — the exaltation of popular figures who, with their charming faces and mellifluous voices, weave seductive narratives about health and well-being. We live in an age where the once-cherished pursuits of philosophers, scientists, and mendicant yogis have been eclipsed by the glamour and allure of singers, chefs, and other such figures whose renown is born of the corruption that pervades our era.&lt;/p&gt;
&lt;p id=&quot;p-90481f3&quot;&gt;This lamentable state of affairs has manifested in a culture where the gurus — once revered as the wise and noble guardians of profound secrets — have been supplanted by a new breed of street-side vendors who peddle their wares with an air of authority that disguises their true value. They captivate their audiences with mesmeric promises of health and happiness, ensnaring the gullible and the desperate in a web of anecdotes, half-truths, and unsubstantiated claims.&lt;/p&gt;
&lt;p id=&quot;p-1aa8357&quot;&gt;The word “guru,” once synonymous with the most intimate and sacred of relationships, has been defiled by its association with these pretenders who, with the brazenness of street-side vendors, dare to claim the mantle of wisdom. In these ways, the true guru-disciple relationship, forged in the crucible of trust and dedication, is reduced to a mere transaction, a tawdry spectacle that plays out before an audience hungry for self-betterment.&lt;/p&gt;
&lt;p id=&quot;p-219ad56&quot;&gt;In this climate of intellectual decay, the very notion of wisdom has become tainted by the ever-present specter of fame and fortune. Our collective appetite for sensation and spectacle has led us to elevate the trivial and the superficial above the profound and the consequential. The true purveyors of knowledge, those who toil in obscurity, dedicating their lives to the pursuit of truth and understanding, have been cast into the shadows, their voices drowned out by the cacophony of unfounded promises that fill the air.&lt;/p&gt;
&lt;p id=&quot;p-d9eb3bd&quot;&gt;One cannot help but wonder at the fate that awaits a society that has turned its back on the very principles that once nourished its growth and development. Have we become so fascinated by the ephemeral that we have lost sight of the eternal truths that underpin our being?&lt;/p&gt;
&lt;p id=&quot;p-3384c20&quot;&gt;It seems, then, that the task falls to those of us who still hold dear the values of wisdom and discernment to resist the siren song of celebrity and to seek out the quiet voices of reason that still persist amid the clamor. We must endeavor to pierce the curtain of misconceptions that has been cast over our eyes, to recognize the false prophets for what they are, and to return our gaze to the true luminaries who have been so severely obscured.&lt;/p&gt;
&lt;p id=&quot;p-dede227&quot;&gt;In this age of unreason, it is incumbent upon us to cultivate the virtues of skepticism and critical thinking, to question the validity of the claims that are presented to us, and to demand evidence in support of the grandiose pronouncements that are so carelessly thrown about. Only then can we hope to restore the rightful place of wisdom in our lives and reclaim the hallowed ground that has been so wantonly desecrated by the corrupting influence of fame and fortune.&lt;/p&gt;
&lt;p id=&quot;p-de763a6&quot;&gt;In the end, it is the quiet, unassuming voices of the true philosophers, scientists, and mendicant yogis, that will guide us through the treacherous landscape of our times. As we turn our backs on the false gurus and their insidious promises, we may yet rediscover the path to genuine health and well-being, a path that leads not through the glittering halls of celebrity, but through the sacred groves of wisdom, where the eternal truth of our being await our return.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;if-this-essay-resonated-with-you-please-consider-sharing-it-with-your-friends-and-connections&quot;&gt;If this essay resonated with you, please consider sharing it with your friends and connections.&lt;/h3&gt;</content></entry><entry><title>Answering Common Questions about DesignFlow</title><link href="https://mikkokotila.com/writing/answering-common-questions-about-designflow/"/><id>https://mikkokotila.com/writing/answering-common-questions-about-designflow/</id><published>2023-03-09T00:00:00Z</published><updated>2023-03-09T00:00:00Z</updated><category term="research-and-development"/><summary>DesignFlow brings design software interoperability to construction projects, without asking designers to change anything in the way they work.</summary><content type="html">&lt;h4 class=&quot;h-1&quot; id=&quot;designflow-brings-design-software-interoperability-to-construction-projects-without-asking-designers-to-change-anything-in-the-way-they-work&quot;&gt;DesignFlow brings design software interoperability to construction projects, without asking designers to change anything in the way they work.&lt;/h4&gt;
&lt;p id=&quot;p-b03c70d&quot; class=&quot;opening&quot;&gt;DesignFlow is the first zero-coding design model interoperability solution for the construction industry. This article will answer commonly occurring questions &lt;span class=&quot;nowrap&quot;&gt;about DesignFlow.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-cf098e0&quot;&gt;&lt;strong&gt;What is DesignFlow?&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-de19fbe&quot;&gt;&lt;strong&gt;Is DesignFlow a design software?&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-7b1e450&quot;&gt;&lt;strong&gt;Can I make design changes through DesignFlow?&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-32984a7&quot;&gt;&lt;strong&gt;How is DesignFlow different from Speckle?&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-5b44b70&quot;&gt;&lt;strong&gt;How is DesigFlow different from Bhom?&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-5da87ab&quot;&gt;&lt;strong&gt;Why does DesignFlow focus on providing a “zero-code” experience?&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-58e1432&quot;&gt;&lt;strong&gt;Is parametric design possible in DesignFlow?&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-d3f7832&quot;&gt;&lt;strong&gt;Why is DesignFlow not open-source?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-4225f26&quot;&gt;Each of these questions will be answered in the below sections.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;what-is-designflow&quot;&gt;What is DesignFlow?&lt;/h4&gt;
&lt;p id=&quot;p-b3a824d&quot;&gt;aecmaster DesignFlow is a software interoperability solution for the construction industry. DesignFlow makes seamless interoperability, version control, and other mission-critical computational features available for construction projects of all sizes.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;is-designflow-a-design-software&quot;&gt;Is DesignFlow a design software?&lt;/h4&gt;
&lt;p id=&quot;p-080e4d2&quot;&gt;No, DesignFlow focuses on design software interoperability while allowing designers to continue to work on their preferred design software without making any changes to their workflow.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;can-i-make-design-changes-through-designflow&quot;&gt;Can I make design changes through DesignFlow?&lt;/h4&gt;
&lt;p id=&quot;p-98d67c2&quot;&gt;No, design changes can only be made through a supported design software (e.g., Archicad or Tekla). We believe that designers should be able to do all their work with the design software they are already using and are familiar with.&lt;/p&gt;
&lt;p id=&quot;p-a1b6253&quot;&gt;In terms of those stakeholders that are not already using design software, they should probably not be making design changes anyways.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;how-is-designflow-different-from-speckle&quot;&gt;How is DesignFlow different from Speckle?&lt;/h4&gt;
&lt;p id=&quot;p-2f5d7b0&quot;&gt;Whereas Speckle, according to their communications, is “built for programmers,” DesignFlow is built for designers and design managers.&lt;/p&gt;
&lt;p id=&quot;p-7230de9&quot;&gt;Whereas Speckle requires programming skills and other specialized knowledge, DesignFlow does not require any new skills or knowledge and does not ask designers to change anything in their way of work.&lt;/p&gt;
&lt;p id=&quot;p-489421f&quot;&gt;Whereas organizations using Speckle are heavily relying on construction designers with programming skills and specialized knowledge, DesignFlow does not require any organizational changes and doesn’t create new mission-critical dependencies.&lt;/p&gt;
&lt;p id=&quot;p-b2899ce&quot;&gt;Whereas Speckle is generally speaking feasible only for very large projects, DesignFlow can be readily used for projects of any size.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;how-is-designflow-different-from-bhom&quot;&gt;How is DesignFlow different from Bhom?&lt;/h4&gt;
&lt;p id=&quot;p-73a5bc6&quot;&gt;Whereas Bhom, according to their communications, is a compromise between the needs of designers and programmers, DesignFlow makes no compromises regarding the needs of designers.&lt;/p&gt;
&lt;p id=&quot;p-0f4324c&quot;&gt;Whereas Bhom requires programming skills and other specialized knowledge, DesignFlow does not require any new skills or knowledge and does not ask designers to change anything in their way of work.&lt;/p&gt;
&lt;p id=&quot;p-353c99b&quot;&gt;Whereas organizations using Bhom still rely on construction designers with programming skills and specialized knowledge, DesignFlow does not require any organizational changes and doesn’t create new mission-critical dependencies.&lt;/p&gt;
&lt;p id=&quot;p-8410e2a&quot;&gt;Whereas Bhom is generally speaking feasible only for very large projects, DesignFlow can be readily used for projects of any size.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;why-does-designflow-focus-on-providing-a-zero-code-experience&quot;&gt;Why does DesignFlow focus on providing a “zero-code” experience?&lt;/h4&gt;
&lt;p id=&quot;p-f6dfe5e&quot;&gt;Less than 1% of all construction designers know how to program. Academic institutions where future construction designers are trained have not widely included programming as a major focus in their curriculums. Construction design approaches requiring programming are only as feasible as the immediate and near-future availability of construction designers with programming skills.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;is-parametric-design-possible-in-designflow&quot;&gt;Is parametric design possible in DesignFlow?&lt;/h4&gt;
&lt;p id=&quot;p-86d6717&quot;&gt;DesignFlow does not limit designers from using available features in the design software they are already using. So, for example, Archicad users can use its built-in parametric object design tool PARAM-O and still fully leverage DesignFlow’s interoperability and other features. We believe that all major design software will eventually offer their users zero-code parametric design capabilities.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;why-is-designflow-not-open-source&quot;&gt;Why is DesignFlow not open-source?&lt;/h4&gt;
&lt;p id=&quot;p-fa152a8&quot;&gt;While there are many benefits from a given software being open-source, there are no major open-source success stories outside of the actual software engineering industry. There is a good reason for this; it requires a great number of highly talented software engineers with a high level of domain knowledge (e.g., construction design) dedicated to an open-source project in order for that project to be successful in a given industry such as the construction industry.&lt;/p&gt;
&lt;p id=&quot;p-4ee8340&quot;&gt;Our mission is to meet the rapidly evolving needs of our customers. Proprietary software is the proven method to accomplish this goal.&lt;/p&gt;
&lt;hr&gt;
&lt;p id=&quot;p-396d6d7&quot;&gt;&lt;a href=&quot;https://medium.com/aecmaster/answering-common-questions-about-designflow-ad2d4b6c81ab&quot;&gt;Answering Common Questions about DesignFlow&lt;/a&gt; was originally published in &lt;a href=&quot;https://medium.com/aecmaster&quot;&gt;aecmaster&lt;/a&gt; on Medium, where people are continuing the conversation by highlighting and responding to this story.&lt;/p&gt;</content></entry><entry><title>Thinking about Ideas as a System: Effective Communication</title><link href="https://mikkokotila.com/writing/thinking-about-ideas-as-a-system-effective-communication/"/><id>https://mikkokotila.com/writing/thinking-about-ideas-as-a-system-effective-communication/</id><published>2023-03-08T00:00:00Z</published><updated>2023-03-08T00:00:00Z</updated><category term="research-and-development"/><summary>Guidelines for a culture where the right ideas thrive TL;DR - Be kind - Ask questions - Challenge things - Debate - Avoid bullshit - Be specific - Be public The most important thing is to be kind.</summary><content type="html">&lt;h4 class=&quot;h-2&quot; id=&quot;guidelines-for-a-culture-where-the-right-ideas-thrive&quot;&gt;Guidelines for a culture where the right ideas thrive&lt;/h4&gt;
&lt;p id=&quot;p-5ff57f4&quot;&gt;TL;DR&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-cdf3b54&quot;&gt;Be kind&lt;/li&gt;
&lt;li id=&quot;p-33ae609&quot;&gt;Ask questions&lt;/li&gt;
&lt;li id=&quot;p-6a7ddd3&quot;&gt;Challenge things&lt;/li&gt;
&lt;li id=&quot;p-b7b027e&quot;&gt;Debate&lt;/li&gt;
&lt;li id=&quot;p-1debe68&quot;&gt;Avoid bullshit&lt;/li&gt;
&lt;li id=&quot;p-ea18f61&quot;&gt;Be specific&lt;/li&gt;
&lt;li id=&quot;p-8b0b24b&quot;&gt;Be public&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-1a95d26&quot;&gt;The most important thing is to be kind. This is easy to understand. When people are kind to us, we feel good interacting with them. When people are nasty to us, we don’t feel good interacting with them. The same goes the other way. When we are kind to people, they feel good interacting with us. When we are nasty to people, they don’t feel good interacting with us.&lt;/p&gt;
&lt;p id=&quot;p-bc701e0&quot;&gt;When you communicate with someone, you should make an effort to make your communication likable to that person. Generally speaking, it is more important to be kind, than it is to be right.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;ask-questions&quot;&gt;Ask Questions&lt;/h3&gt;
&lt;p id=&quot;p-ba536dd&quot;&gt;If you believe there is an issue with something, the incorrect way to communicate that issue is to tell the other person about your issue. The correct way is by asking questions.&lt;/p&gt;
&lt;p id=&quot;p-415d8cd&quot;&gt;It’s valuable to consider &lt;em&gt;Chesteron’s Fence&lt;/em&gt; here:&lt;/p&gt;
&lt;blockquote id=&quot;p-0a59450&quot;&gt;
&lt;p&gt;A core component of making great decisions is understanding the rationale behind previous decisions. If we don’t understand how we got here, we run the risk of making things much worse.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-f80f12e&quot;&gt;Direct confrontation is never the correct way. That is the way animals interact with each other. As human beings, we can do better. We are not beasts of the wilderness.&lt;/p&gt;
&lt;p id=&quot;p-c164dc1&quot;&gt;It may seem efficient to point out other people’s weaknesses, but that is also mistaken. Anyone can find other people’s mistakes and shortcomings, but that is merely a reflection of the way one sees oneself. So whenever you have negative thoughts about others, be very careful, your mind is now in the grip of destructive forces. Do not speak or otherwise act under such influence.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;challenge-things&quot;&gt;Challenge Things&lt;/h3&gt;
&lt;p id=&quot;p-8822862&quot;&gt;It is oftentimes important to be able to effectively challenge things. The primary method to do this is called &lt;em&gt;challenging through questions&lt;/em&gt;. The method has some resemblance with &lt;em&gt;reductio ad absurdum, &lt;/em&gt;a means by which a particular view is proven wrong without taking an opposing position, or for that matter, any position at all.&lt;/p&gt;
&lt;p id=&quot;p-560b359&quot;&gt;So how does one challenge through questions?&lt;/p&gt;
&lt;p id=&quot;p-f63f759&quot;&gt;The particular thing to be challenged is challenged through a series of questions, starting from those that focus on ensuring that one has all the required information about the given topic.&lt;/p&gt;
&lt;p id=&quot;p-569f643&quot;&gt;Again, consider &lt;em&gt;Chesteron’s Fence&lt;/em&gt; here:&lt;/p&gt;
&lt;blockquote id=&quot;p-9375200&quot;&gt;
&lt;p&gt;A core component of making great decisions is understanding the rationale behind previous decisions. If we don’t understand how we got here, we run the risk of making things much worse.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-7811a25&quot;&gt;You might look at something and think “this is wrong”, but upon the emergence of such a thought, can you know it to be so? How do you know that a particular thing is not right, at the moment when you think it is not right?&lt;/p&gt;
&lt;p id=&quot;p-6603773&quot;&gt;First and foremost, very few things are categorical objective truths where right and wrong can be established clearly. In fact, whenever there is an appearance of a thing, that thing is necessarily relative. If you can understand that things appear due to causes and conditions — and not for example due to intrinsic existence — you will then also understand how such things are relative. It will then not be hard to see how mistaken it is to approach things through a premise such as “this is wrong”.&lt;/p&gt;
&lt;p id=&quot;p-d94af8e&quot;&gt;It is very important to understand relativity. What is pleasing to one person, is annoying to another person. What other people consider attractive, others might find neutral or repulsive. When one person wants more, the other wants less. And so on.&lt;/p&gt;
&lt;p id=&quot;p-db3317b&quot;&gt;When a person works with something for a long time, it starts to feel like things are solid and objectively true. This is referred to as &lt;em&gt;the expert mind&lt;/em&gt;. Such a mind is like an iron cast pot. Whatever is coming in, has no way to go out. It is an incredibly claustrophobic situation. Instead, one wants to cultivate &lt;em&gt;the beginner’s mind&lt;/em&gt;. Consider here the great contemporary Zen Master Shunryu Suzuki’s words:&lt;/p&gt;
&lt;blockquote id=&quot;p-2055bc4&quot;&gt;
&lt;p&gt;In the beginner’s mind there are many possibilities, in the expert’s only few.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-8670630&quot;&gt;To understand the relativity of things is to have a beginner’s mind. A wise person will not say “this is like this”, but will say “this appears to be like this because all those other things appear to be like that”. The beginner’s mind is like a sieve, everything that comes in can also go out. Because of this, everything can come in.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;debate&quot;&gt;Debate&lt;/h3&gt;
&lt;p id=&quot;p-10223cf&quot;&gt;Sometimes it’s useful to assume a position, and clearly articulate it with others. The primary method to do this is debating. The main objective of a debate is for the best idea to win. Consequently, some other position/s always lose.&lt;/p&gt;
&lt;p id=&quot;p-b374322&quot;&gt;Before engaging in a debate, consider the following questions carefully:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-a3cb2aa&quot;&gt;What is it exactly that my opponent is proposing?&lt;/li&gt;
&lt;li id=&quot;p-a9f02ea&quot;&gt;Why is my opponent proposing it?&lt;/li&gt;
&lt;li id=&quot;p-c686b1d&quot;&gt;What are the merits of that position?&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-d807b45&quot;&gt;During the debate, make sure to follow these basic guidelines:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-43d4324&quot;&gt;Let your opponent finish what they are saying&lt;/li&gt;
&lt;li id=&quot;p-25cccfe&quot;&gt;Once they have finished, have a think about why they hold that view&lt;/li&gt;
&lt;li id=&quot;p-38e420d&quot;&gt;Keep going back to considering the possible merits of the view&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-8491fc4&quot;&gt;Remember that a debate is not a competition between people. It is a meeting of two opposing — but oftentimes complementary — views. Debating is positive-sum; all parties win when the right ideas and views go forward.&lt;/p&gt;
&lt;p id=&quot;p-78ec119&quot;&gt;Once, a wise man told me the story of four kinds of people. He said, there is one who knows and he knows that he knows, and that is a master. There is one who knows but does not know that he knows, and he is close, but still needs help. There is one who does not know and knows that he does not know, he is someone who is well on his way. Then there is one who does not know and does not know that he does not know, that is an idiot. Thinking in this way is very helpful.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;avoid-bullshit&quot;&gt;Avoid Bullshit&lt;/h3&gt;
&lt;p id=&quot;p-f9f6e38&quot;&gt;If you focus too much on making your case, you risk diverging to bullshit. Bullshit is very attractive for making arguments; it takes an order of magnitude more time and effort to unwind bullshit arguments than it takes to make them. If not more.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;be-specific&quot;&gt;Be Specific&lt;/h3&gt;
&lt;p id=&quot;p-bd8f796&quot;&gt;Take time to deliberate what you will say before you say it. Avoid saying things that appear as a reaction to something someone else said.&lt;/p&gt;
&lt;p id=&quot;p-bde2b4a&quot;&gt;Some useful things to keep in mind when formulating arguments:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-8f41eba&quot;&gt;Make sure to say things in a way that is clear to others&lt;/li&gt;
&lt;li id=&quot;p-739f8d7&quot;&gt;Say things as briefly and to the point as possible&lt;/li&gt;
&lt;li id=&quot;p-e320295&quot;&gt;Start by saying what you are going to talk about&lt;/li&gt;
&lt;li id=&quot;p-535c0c0&quot;&gt;Avoid sarcasm and other sources of ambiguity&lt;/li&gt;
&lt;li id=&quot;p-8819442&quot;&gt;If countering an argument, ensure to directly counter the given argument&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-e4ccf2b&quot;&gt;One part of being specific has to do with staying on topic. Sometimes it’s attractive, especially in long text-based correspondences such as GitHub issues, to divert from the original topic. Do not do that. It’s always better to remain focused on the original topic. If others divert, help reel them back into the topic at hand.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;be-public&quot;&gt;Be Public&lt;/h3&gt;
&lt;p id=&quot;p-43c6036&quot;&gt;It is a useful practice to structure communication channels in a manner that advocates public discourse. For example, having channels in Discord topically aligned with the way the project is structured on Github is very useful. For example, if there is a repository called Application-Backend in Github, then there should be a channel on Discord by that same name.&lt;/p&gt;
&lt;p id=&quot;p-4fc8d68&quot;&gt;It is very important — and very valuable — to maximize the use of such topical channels in place of private messages or temporary group chats. Failing to do so leads to two important adverse effects:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-059bcba&quot;&gt;Private messages deprive others of the opportunity of learning from the content of the messages&lt;/li&gt;
&lt;li id=&quot;p-03fbd2c&quot;&gt;Private messages deprive ourselves of the opportunity of learning from the feedback our messages could receive from others&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-c03609c&quot;&gt;Neither of these outcomes is acceptable. The simple rule to keep in mind here is that if a message is topically relevant, it belongs to the public channels for all to see. Whenever you catch yourself not following this simple guideline (or catch someone else leading you to not follow it), the correct thing to do is to simply move that discussion to one of the topical channels.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;thanks-for-taking-the-time-to-read-this-article-i-would-love-to-hear-your-thoughts-&quot;&gt;Thanks for taking the time to read this article, I would love to hear your thoughts. 🧡&lt;/h4&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;if-you-havent-already-read-the-first-part-of-this-article-seriesideas-as-costby-clicking-here&quot;&gt;If you haven’t already, read the first part of this article series — Ideas as Cost — by clicking &lt;a href=&quot;https://mikkokotila.medium.com/thinking-about-ideas-as-a-system-ideas-as-cost-7ddff76dc944&quot;&gt;here&lt;/a&gt;.&lt;/h4&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;or-read-the-second-part-of-this-article-seriesevaluation-of-ideasby-clicking-here&quot;&gt;Or read the second part of this article series — Evaluation of Ideas — by clicking &lt;a href=&quot;https://mikkokotila.medium.com/thinking-about-ideas-as-a-system-evaluation-of-ideas-38054fafcffb&quot;&gt;here&lt;/a&gt;.&lt;/h4&gt;</content></entry><entry><title>The Three Eras of Knowledge Objects</title><link href="https://mikkokotila.com/writing/the-three-eras-of-knowledge-objects/"/><id>https://mikkokotila.com/writing/the-three-eras-of-knowledge-objects/</id><published>2023-02-10T00:00:00Z</published><updated>2023-02-10T00:00:00Z</updated><category term="research-and-development"/><summary>Future-proof technology innovation requires the innovator to have a future perspective. This article shows how to have it.</summary><content type="html">&lt;p id=&quot;p-3ac8174&quot;&gt;For soundtrack click: &lt;a href=&quot;https://www.youtube.com/watch?v=qT0iQRjHbW4&quot;&gt;https://www.youtube.com/watch?v=qT0iQRjHbW4&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p id=&quot;p-b5d0f04&quot;&gt;In this article, we will introduce the concept of Knowledge Object, and show how Knowledge Objects differ in terms of which era they belong to. The eras themselves represent the evolution of Knowledge Objects.&lt;/p&gt;
&lt;p id=&quot;p-1ee26ad&quot;&gt;The first section of the article will clearly explain the concept of Knowledge Object. The second section of the article takes that understanding and applies it throughout the three eras. The article is then briefly concluded.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;1-definition-of-a-knowledge-object&quot;&gt;1. Definition of a Knowledge Object&lt;/h2&gt;
&lt;p id=&quot;p-3789b47&quot;&gt;Here, &lt;strong&gt;Knowledge Object&lt;/strong&gt; has two meanings:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-88e9009&quot;&gt;The object has an explicit property of containing knowledge&lt;/li&gt;
&lt;li id=&quot;p-270913d&quot;&gt;The object was created by humans&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-102616b&quot;&gt;For an object to qualify as a Knowledge Object, both meanings have to be true at the same time.&lt;/p&gt;
&lt;p id=&quot;p-0ce2897&quot;&gt;The second meaning has two categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-bd37f73&quot;&gt;Objects directly created by humans&lt;/li&gt;
&lt;li id=&quot;p-e672cc9&quot;&gt;Objects created by objects which were created by humans&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-4ca657b&quot;&gt;To clearly indicate the first meaning, it is important to understand the way in which the term “explicit property” is used here. The explicit property of containing knowledge means that the object is created in such a manner, that there is an explicit consideration for the property of the object being able to contain knowledge.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;2-the-three-eras&quot;&gt;2. The Three Eras&lt;/h2&gt;
&lt;p id=&quot;p-847932a&quot;&gt;There are three eras throughout which Knowledge Objects appear:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-c4b9da4&quot;&gt;The pen-and-paper-era&lt;/li&gt;
&lt;li id=&quot;p-1b43b49&quot;&gt;The digitalized pen-and-paper-era&lt;/li&gt;
&lt;li id=&quot;p-c6f387f&quot;&gt;The post-pen-and-paper-era&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-c10e99f&quot;&gt;An example of a pen-and-paper-era Knowledge Object is a drawing of a building.&lt;/p&gt;
&lt;p id=&quot;p-87df4a9&quot;&gt;An example of a digitalized pen-and-paper era Knowledge Object is a 3D model of a building.&lt;/p&gt;
&lt;p id=&quot;p-c419e1c&quot;&gt;An example of a post-pen-and-paper-era Knowledge Object is a data model of a building.&lt;/p&gt;
&lt;p id=&quot;p-90d9e25&quot;&gt;In each of these examples, the building represented by the Knowledge Object can be exactly the same, yet it is described in an increasingly rich and valuable manner through the three eras.&lt;/p&gt;
&lt;p id=&quot;p-fa0cacd&quot;&gt;Each of these eras will be covered in more detail below, through four aspects; main property, readability, native dimensionality, and timeframe.&lt;/p&gt;
&lt;p id=&quot;p-4816db5&quot;&gt;The main property is the distinguishing feature of all objects of a given era.&lt;/p&gt;
&lt;p id=&quot;p-aac8a11&quot;&gt;The readability says if the objects of a given era are human-readable, machine-readable, or both.&lt;/p&gt;
&lt;p id=&quot;p-ce3d544&quot;&gt;The native dimensionality is the number of dimensions supported by the objects of a given era.&lt;/p&gt;
&lt;p id=&quot;p-1fc393b&quot;&gt;The timeframe is the period of time during which objects of a given era are appearing.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;21-pen-and-paper-era&quot;&gt;2.1. Pen-and-Paper Era&lt;/h3&gt;
&lt;p id=&quot;p-48fd54c&quot;&gt;Next, the pen-and-paper era will be explained through four aspects.&lt;/p&gt;
&lt;p id=&quot;p-ebbdc18&quot;&gt;The main property of a pen-and-paper era Knowledge Object is that it is material/physical.&lt;/p&gt;
&lt;p id=&quot;p-0380edf&quot;&gt;The readability is limited to humans.&lt;/p&gt;
&lt;p id=&quot;p-b7f0d1a&quot;&gt;Its native dimensionality is two. Overcoming the dimensional limitations become easily laborious and challenging.&lt;/p&gt;
&lt;p id=&quot;p-aed4748&quot;&gt;The timeframe for the pen-and-paper era is from roughly 6,000 years ago, up to today, and going forward to the future.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;22-the-digitalized-pen-and-paper-era&quot;&gt;2.2. The Digitalized Pen-and-Paper Era&lt;/h3&gt;
&lt;p id=&quot;p-d2bb1bb&quot;&gt;Next, the digitalized pen-and-paper era will be explained through the same four aspects.&lt;/p&gt;
&lt;p id=&quot;p-2d23813&quot;&gt;The main property of a digitalized pen-and-paper era Knowledge Object is that it is immaterial.&lt;/p&gt;
&lt;p id=&quot;p-cbaf37b&quot;&gt;The readability is limited to humans. Here it is important to appreciate the distinction between the ability of a machine to load a file (e.g. 3D model), and actual machine readability.&lt;/p&gt;
&lt;p id=&quot;p-748c272&quot;&gt;Its native dimensionality is three. This can be overcome readily, but complexity can grow rapidly together with more dimensionality.&lt;/p&gt;
&lt;p id=&quot;p-9ec68b3&quot;&gt;The timeframe for digitalized pen-and-paper is from roughly 60 years ago, up to today, and going forward to the future.&lt;/p&gt;
&lt;p id=&quot;p-60aa362&quot;&gt;When it is said that something is digitalized, it refers to activities of this particular era.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;23-the-post-pen-and-paper-era&quot;&gt;2.3. The Post-Pen-and-Paper Era&lt;/h3&gt;
&lt;p id=&quot;p-282474c&quot;&gt;Next, the post-pen-and-paper era will be explained through the same four aspects.&lt;/p&gt;
&lt;p id=&quot;p-e5ba904&quot;&gt;The main property of a post-pen-and-paper era Knowledge Object is that it can contain knowledge of all of its previous states.&lt;/p&gt;
&lt;p id=&quot;p-8a0bd51&quot;&gt;The readability is for both machines and humans.&lt;/p&gt;
&lt;p id=&quot;p-05baed0&quot;&gt;The dimensionality is n. This is to say, post-pen-and-paper era Knowledge Objects can natively have any number of dimensions, even without it necessarily affecting complexity.&lt;/p&gt;
&lt;p id=&quot;p-72c598c&quot;&gt;The timeframe for post-pen-and-paper era Knowledge Objects is from the past two decades to a very small degree, up to today, and dramatically increasing in the coming years and decades.&lt;/p&gt;
&lt;p id=&quot;p-559e5c7&quot;&gt;When it is said that something is made &lt;em&gt;parametric&lt;/em&gt;, it refers to activities of this particular era. &lt;em&gt;Computerized&lt;/em&gt;, &lt;em&gt;programmatic&lt;/em&gt;, &lt;em&gt;machine-readable&lt;/em&gt;, and several other terms, are interchangeable with the term “post-pen-and-paper”.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;ul&gt;
&lt;li id=&quot;p-58ace68&quot;&gt;Post-pen-and-paper era Knowledge Objects are superior to all other Knowledge Objects&lt;/li&gt;
&lt;li id=&quot;p-3e56beb&quot;&gt;Post-pen-and-paper era Knowledge Objects are the only kind of machine-readable objects&lt;/li&gt;
&lt;li id=&quot;p-2efd34a&quot;&gt;Post-pen-and-paper era Knowledge Objects will become the most prominent class of Knowledge Objects&lt;/li&gt;
&lt;li id=&quot;p-3adb5dd&quot;&gt;There are many synonyms for describing post-pen-and-paper Knowledge Objects, such as parametric and machine-readable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;if-you-found-this-article-valuable-why-not-share-it-with-your-peers-and-on-your-socials-so-others-can-benefit-from-it-too&quot;&gt;If you found this article valuable, why not share it with your peers and on your socials so others can benefit from it too.&lt;/h2&gt;</content></entry><entry><title>The Missing Half of Programmatic</title><link href="https://mikkokotila.com/writing/the-missing-half-of-programmatic/"/><id>https://mikkokotila.com/writing/the-missing-half-of-programmatic/</id><published>2022-09-19T00:00:00Z</published><updated>2022-09-19T00:00:00Z</updated><category term="advertising"/><summary>The intention of this article is to raise awareness among brand owners and their partners on the emerging trend of programmatic creativity. The article aims to provide a general understanding of the meaning of the term “programmatic creative”, its practical application, and its near-future roadmap.</summary><content type="html">&lt;p id=&quot;p-2910735&quot;&gt;&lt;strong&gt;What is Programmatic Creative?&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-e0c75b0&quot;&gt;&lt;em&gt;Creative &lt;/em&gt;here means any advertising creative. &lt;em&gt;Programmatic &lt;/em&gt;makes it the kind of creative that is represented as code, instead of visual assets. Examples of programmatic creative include conversational and other highly interactive ad experiences, that are not possible with conventional creatives. Programmatic creatives can be captive, valuable, and as interactive as is required for a given ad experience. Programmatic creatives can be delivered on all platforms; on display, mobile, video, social, and apps. Programmatic creatives can be delivered on all buying platforms and publisher ad servers, without changing anything else in the way programmatic campaigns currently work.&lt;/p&gt;
&lt;p id=&quot;p-b4da5e4&quot;&gt;&lt;strong&gt;Programmatic Media&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-ea1325b&quot;&gt;The premise of programmatic media has been and continues to be the computerization of buying and selling media. In other words, the value promise of programmatic media is to unlock efficiencies in buying and selling of media. It must not be confused with the broader term “programmatic advertising”, as programmatic media can at best represent no more than half of programmatic advertising.&lt;/p&gt;
&lt;p id=&quot;p-9d96e7c&quot;&gt;Communication theory uses &lt;em&gt;message-vehicle&lt;/em&gt; dichotomy to explain advertising. &lt;em&gt;The message&lt;/em&gt; represents the advertising creative, and the &lt;em&gt;vehicle &lt;/em&gt;represents the media. Whereas the &lt;em&gt;message &lt;/em&gt;is about creating a communication, the &lt;em&gt;vehicle &lt;/em&gt;is about delivering the created communication. The &lt;em&gt;message&lt;/em&gt; is the realm of advertisers and their partners, and the &lt;em&gt;vehicle&lt;/em&gt; is the realm of publishers and their partners. &lt;em&gt;The message &lt;/em&gt;is commonly referred to as the “creative”, and the &lt;em&gt;vehicle &lt;/em&gt;is commonly referred to as the “media.”&lt;/p&gt;
&lt;p id=&quot;p-3819d37&quot;&gt;Since the invention of programmatic advertising in 2004, industry research and development have almost exclusively focused on the vehicle/media aspect of advertising.&lt;/p&gt;
&lt;p id=&quot;p-d257a9f&quot;&gt;&lt;strong&gt;Creative-As-Code&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-c3f21d9&quot;&gt;For a given process to be programmatic, it means that it is represented by a computer program. Moreover, its function can be readily performed by another computer program. Typically there is a protocol that certain computer programs share, and as a result, they can communicate with each other in a predictable way. For example, in the case of programmatic media, DSPs and Exchanges communicate with each other based on the OpenRTB standard. This process of making something programmatic can be referred to as computerization.&lt;/p&gt;
&lt;p id=&quot;p-c2187e8&quot;&gt;In the case of computerization of advertising creative, the objective is to represent the creative not through visual assets, but code. But the result might still look exactly the same. Such an approach permits everything possible with visual assets, everything possible with computer code, and the borderline magical synthesis of the two.&lt;/p&gt;
&lt;p id=&quot;p-f77bba8&quot;&gt;Computerization should not be confused with digitalization. Take a TV advertisement as an example. Digitalization focus on making the ad available for human consumption in a digital environment. Computerization also focuses on making the ad available for human consumption in a digital environment, but in a way that allows it to be entirely computer readable and operable.&lt;/p&gt;
&lt;p id=&quot;p-9fddf7d&quot;&gt;There is a very simple way to understand this distinction. Digitalized entities behave like their pen and paper counterparts. You can store them, access them, render them (into view), and edit them. There is no way to extend their potential behavior. Computerized entities behave like vending machines. You have a way to insert a token, which gives you the right to operate the entity’s functions. In stark contrast to their digitalized counterparts, the potential behavior of computerized entities is infinitely extendable.&lt;/p&gt;
&lt;p id=&quot;p-5245eec&quot;&gt;The basic principle is straightforward; everything possible with computer code becomes possible in a computerized system. A digital creative asset closely resembles a conventional print ad, but a computerized version of the same creative can readily adopt any imaginable interactivity or other feature to extend the ad experience.&lt;/p&gt;
&lt;p id=&quot;p-84a8a0b&quot;&gt;&lt;strong&gt;On Pens, Papers, and Rocket-ships&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-1a5df9c&quot;&gt;To fully appreciate the opportunity with programmatic creative, we have to leap from thinking about advertising creatives as visual assets to thinking about advertising creatives as computer programs. Every imaginable visual asset is representable as a computer program. Conversely, no computer program, not even the simplest imaginable one, is representable by visual assets. Whereas digital versions of visual assets mark an end of an era of pen and paper approaches, computerized versions pave the way to a brave new world of creativity in advertising.&lt;/p&gt;</content></entry><entry><title>Thinking about Ideas as a System: Evaluation of Ideas</title><link href="https://mikkokotila.com/writing/thinking-about-ideas-as-a-system-evaluation-of-ideas/"/><id>https://mikkokotila.com/writing/thinking-about-ideas-as-a-system-evaluation-of-ideas/</id><published>2022-09-06T00:00:00Z</published><updated>2022-09-06T00:00:00Z</updated><category term="research-and-development"/><summary>How great ideas can be bad ideas, and a guideline for going beyond</summary><content type="html">&lt;h3 class=&quot;h-2&quot; id=&quot;background&quot;&gt;Background&lt;/h3&gt;
&lt;p id=&quot;p-f4b6aa3&quot; class=&quot;opening&quot;&gt;In &lt;a href=&quot;https://mikkokotila.com/thinking-about-ideas-as-a-system-ideas-as-cost-7ddff76dc944&quot;&gt;&lt;em&gt;Thinking about Ideas as a System: Ideas as Cost&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;we concluded that ideas are not value but cost. Therefore, a system is required to evaluate, explore, and exploit ideas. This article will refer to that system as &lt;em&gt;Ideas as &lt;span class=&quot;nowrap&quot;&gt;a System&lt;/span&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p id=&quot;p-255253b&quot;&gt;&lt;em&gt;Ideas as a System &lt;/em&gt;has three sub-systems:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-81d363e&quot;&gt;A sub-system for evaluation of ideas&lt;/li&gt;
&lt;li id=&quot;p-c4ddb57&quot;&gt;A sub-system for exploration of ideas&lt;/li&gt;
&lt;li id=&quot;p-28a71f2&quot;&gt;A sub-system for exploitation of ideas&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-3b8a06f&quot;&gt;&lt;strong&gt;Evaluation of ideas &lt;/strong&gt;aims toward removing as much noise as possible. At this point, the number of people exposed to the idea is the lowest among the three sub-systems. The sub-system boundary is from being exposed to the idea to the point when the idea’s value has been found to meet the criteria for being a valid candidate for exploration.&lt;/p&gt;
&lt;p id=&quot;p-059f6a9&quot;&gt;&lt;strong&gt;Exploration of ideas &lt;/strong&gt;is focused on making ideas as buildable as possible. At this point, the number of people actively engaged with the idea is the highest among the three sub-systems. The sub-system boundary is from an idea having successfully passed an evaluation to the point where a commitment is made to exploit it.&lt;/p&gt;
&lt;p id=&quot;p-a95bb8c&quot;&gt;&lt;strong&gt;Exploitation of ideas &lt;/strong&gt;is focused on building things. At this point, the number of people actively engaged with the idea mostly consists of those who are building things, such as software engineers. The sub-system boundary is from an idea having become a work order — a confirmed resource allocation — up to the point where the work order has been fulfilled and the built thing can be released.&lt;/p&gt;
&lt;p id=&quot;p-a687ade&quot;&gt;The sub-system for evaluating ideas is introduced next.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-process&quot;&gt;The Process&lt;/h3&gt;
&lt;p id=&quot;p-f119818&quot;&gt;There are in total eight stages between the conception of an idea, and the idea becoming a thing that can be released and monetized.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-541de6c&quot;&gt;&lt;strong&gt;Idea&lt;/strong&gt; (Evaluation)&lt;/li&gt;
&lt;li id=&quot;p-72e5e37&quot;&gt;&lt;strong&gt;Hypothesis&lt;/strong&gt; (Evaluation)&lt;/li&gt;
&lt;li id=&quot;p-24d3e0e&quot;&gt;&lt;strong&gt;Business Case&lt;/strong&gt; (Evaluation)&lt;/li&gt;
&lt;li id=&quot;p-661da30&quot;&gt;&lt;strong&gt;Concept&lt;/strong&gt; (Exploration)&lt;/li&gt;
&lt;li id=&quot;p-9929871&quot;&gt;&lt;strong&gt;Proof-of-Concept&lt;/strong&gt; (Exploration)&lt;/li&gt;
&lt;li id=&quot;p-c68d561&quot;&gt;&lt;strong&gt;Request-for-Work&lt;/strong&gt; (Exploration)&lt;/li&gt;
&lt;li id=&quot;p-b6878cc&quot;&gt;&lt;strong&gt;Request-for-Comments&lt;/strong&gt; (Exploitation)&lt;/li&gt;
&lt;li id=&quot;p-3d7122a&quot;&gt;&lt;strong&gt;Work Order&lt;/strong&gt; (Exploitation)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-4a5e78a&quot;&gt;&lt;strong&gt;Idea &lt;/strong&gt;is the actual idea. At this point, no formal evaluation has taken place. The idea may have been casually discussed and otherwise informally evaluated.&lt;/p&gt;
&lt;p id=&quot;p-e9f3b0a&quot;&gt;This marks the outer boundary of the Evaluation sub-system.&lt;/p&gt;
&lt;p id=&quot;p-1b3c48a&quot;&gt;&lt;strong&gt;Hypothesis &lt;/strong&gt;is a statement such as “This particular features is not the right idea to exploit further” followed by at least some basic testing of that hypothesis. The purpose of this stage is to ensure that the ideas that move to the subsequent phases are the right ideas. The primary means by which evaluation is performed is the Three Rs introduced in the following section of this article.&lt;/p&gt;
&lt;p id=&quot;p-902b185&quot;&gt;&lt;strong&gt;Business case &lt;/strong&gt;is a proposal, which illustrates why a particular idea is a right idea, what the implications are for exploiting the idea, what resources are required to exploit it, and how much value can be generated through exploiting it. The primary means by which evaluation is performed are financial modeling and business planning.&lt;/p&gt;
&lt;p id=&quot;p-0a1bcbb&quot;&gt;This marks the inner boundary of the Evaluation sub-system and the outer boundary of the Exploration sub-system.&lt;/p&gt;
&lt;p id=&quot;p-ff30681&quot;&gt;&lt;strong&gt;Concept &lt;/strong&gt;is a refined and detailed description of how the idea will manifest as it is exploited, in terms of features, data, user experience, and other such factors. The primary means by which evaluation is performed are the so-called conceptual design frameworks and similar approaches.&lt;/p&gt;
&lt;p id=&quot;p-2979fbc&quot;&gt;&lt;strong&gt;Proof-of-Concept &lt;/strong&gt;is an actual — albeit rough, limited, and hacked together — demo which somehow resembles the thing to be built. Sometimes it’s not feasible to create such a demo, in which case words are used to clearly explain the user experience of an imagined demo. The primary means by which evaluation is performed are software development or “industry fiction” where narrative in prose is created instead of software.&lt;/p&gt;
&lt;p id=&quot;p-961553a&quot;&gt;This marks the inner boundary of the Evaluation sub-system and the outer boundary of the Exploitation sub-system.&lt;/p&gt;
&lt;p id=&quot;p-cbf248a&quot;&gt;&lt;strong&gt;It is important to note that the artifacts produced in each of the stages become the basis for the artifacts produced in the following stage. Each progression in stages stands as a refinement of what had already been done in the previous stage.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-7ddb4cc&quot;&gt;Request-for-Work, Request-for-Comment, and Work Order belong to the exploitation sub-system, and will not be covered in this article further. They are anyhow explained in some detail in &lt;em&gt;The Pyramid of Goodness for Research and Development Organizations [&lt;/em&gt;&lt;a href=&quot;https://medium.com/art-technology/the-pyramid-of-goodness-for-research-and-development-organizations-78ffc28c131f&quot;&gt;&lt;em&gt;link&lt;/em&gt;&lt;/a&gt;&lt;em&gt;] &lt;/em&gt;and will not be further explained here.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-actors&quot;&gt;The Actors&lt;/h3&gt;
&lt;p id=&quot;p-ddea5ef&quot;&gt;In a typical scenario, the primary actors playing either an owning or a contributory role in the process laid out in the above section, are four:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-5bef08a&quot;&gt;Sales department&lt;/li&gt;
&lt;li id=&quot;p-ce07214&quot;&gt;Marketing department&lt;/li&gt;
&lt;li id=&quot;p-1ebb342&quot;&gt;Product department&lt;/li&gt;
&lt;li id=&quot;p-86f9b82&quot;&gt;R&amp;#x26;D department&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-b38b8db&quot;&gt;The below graphic illustrates the roles that different departments play in the various stages. There are exactly two roles; contributor and owner.&lt;/p&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;



























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Idea&lt;/th&gt;&lt;th&gt;Hypothesis&lt;/th&gt;&lt;th&gt;Business case&lt;/th&gt;&lt;th&gt;Concept&lt;/th&gt;&lt;th&gt;Proof of concept&lt;/th&gt;&lt;th&gt;Request for work&lt;/th&gt;&lt;th&gt;Request for comments&lt;/th&gt;&lt;th&gt;Work order&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;R&amp;#x26;D&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Owner&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Owner&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Product&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Owner&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Owner&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Owner&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Owner&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Owner&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Owner&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Marketing&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sales&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-9202b65&quot;&gt;The basic rule is that contributors contribute based on receiving prompts from the owner of the stage. So for example, during the Request-for-Comments phase, Product department actors can no longer proactively make changes or suggestions, but do so solely based on receiving prompts from R&amp;#x26;D department actors.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-three-rs&quot;&gt;The Three Rs&lt;/h3&gt;
&lt;p id=&quot;p-2c1387e&quot;&gt;During the Hypothesis stage — the stage with the primary function of conserving available resources and reducing noise — the primary means by which ideas are evaluated is the Three Rs method. Using the analogue of a mountain stream, the Hypothesis stage is like the glacier. If the ice of the glacier is polluted, then the water of the whole stream will also be polluted. It is therefore critically important that most ideas never make it past the Hypothesis phase.&lt;/p&gt;
&lt;p id=&quot;p-b8bf8b1&quot;&gt;While using the Three Rs, the assumption is always — regardless of the idea — that it’s not the right idea. The assumption is that it must not be allowed into to pollute the stream (of ideas flowing through the organization). This is regardless of how great or amazing the idea may seem or feel.&lt;/p&gt;
&lt;p id=&quot;p-ee9ebef&quot;&gt;The aspects through which ideas are tested are:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-021493f&quot;&gt;Resource&lt;/li&gt;
&lt;li id=&quot;p-5a8f23f&quot;&gt;Risk&lt;/li&gt;
&lt;li id=&quot;p-c7d7652&quot;&gt;Reward&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-b6e8644&quot;&gt;&lt;strong&gt;Resource &lt;/strong&gt;here means how much money, time, and other things are required for exploiting the idea. Important questions include:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-2b85210&quot;&gt;Why this idea?&lt;/li&gt;
&lt;li id=&quot;p-fb8d198&quot;&gt;Why the timing is right for this idea?&lt;/li&gt;
&lt;li id=&quot;p-f5be027&quot;&gt;Why not another idea instead?&lt;/li&gt;
&lt;li id=&quot;p-3ba6468&quot;&gt;Why not a simpler version of this idea?&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-1093019&quot;&gt;&lt;strong&gt;Risk &lt;/strong&gt;here means how much there is economic and other risk associated with exploiting the idea. Important questions include:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-3ded5d2&quot;&gt;How complex it is to build?&lt;/li&gt;
&lt;li id=&quot;p-7cfe666&quot;&gt;How many unknowns building it involves?&lt;/li&gt;
&lt;li id=&quot;p-7006199&quot;&gt;How aligned it is with current engineering resources?&lt;/li&gt;
&lt;li id=&quot;p-e89ce38&quot;&gt;How clearly understood total cost of ownership is?&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-96fccf3&quot;&gt;&lt;strong&gt;Reward &lt;/strong&gt;here means how much money and other benefits are associated with exploiting the idea. Important questions include:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-14d1f0b&quot;&gt;How does this unlock new financial value (e.g. revenue)?&lt;/li&gt;
&lt;li id=&quot;p-ff8a38e&quot;&gt;How does this unlock other customer value (e.g. reduce the time required for critical workflows)?&lt;/li&gt;
&lt;li id=&quot;p-fc47712&quot;&gt;How does this reduce the cost of ownership of the system?&lt;/li&gt;
&lt;li id=&quot;p-42e87b6&quot;&gt;How does this reduce the energy consumption of the system?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p id=&quot;p-e03aa32&quot;&gt;Ideas can and must be evaluated in the same way and with the same rigor — following a formalized system — as other important business decisions are evaluated. In this article, we have provided a high-level overview of a system to do just that. We call it &lt;em&gt;Ideas as a System&lt;/em&gt;.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-so-much-for-taking-the-time-to-read-this-article-i-would-love-to-hear-your-thoughts-about-it-&quot;&gt;Thanks so much for taking the time to read this article, I would love to hear your thoughts about it. 🧡&lt;/h2&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;if-you-didnt-already-read-ideas-as-cost-the-first-part-of-this-article-series-here&quot;&gt;If you didn’t already, read Ideas as Cost, the first part of this article series &lt;a href=&quot;https://mikkokotila.com/thinking-about-ideas-as-a-system-ideas-as-cost-7ddff76dc944&quot;&gt;here&lt;/a&gt;.&lt;/h2&gt;</content></entry><entry><title>Thinking about Ideas as a System: Ideas as Cost</title><link href="https://mikkokotila.com/writing/thinking-about-ideas-as-a-system-ideas-as-cost/"/><id>https://mikkokotila.com/writing/thinking-about-ideas-as-a-system-ideas-as-cost/</id><published>2022-08-29T00:00:00Z</published><updated>2022-08-29T00:00:00Z</updated><category term="research-and-development"/><summary>Ideas are generally thought of as having value, but in fact, ideas only have cost.</summary><content type="html">&lt;h3 class=&quot;h-2&quot; id=&quot;about-ideas&quot;&gt;About Ideas&lt;/h3&gt;
&lt;p id=&quot;p-25b640b&quot;&gt;Ideas appear in the minds of human beings and there can appear infinitely many ideas.&lt;/p&gt;
&lt;p id=&quot;p-e115126&quot;&gt;An important thing to understand is that an idea can be a great idea, but still not the right idea.&lt;/p&gt;
&lt;p id=&quot;p-a7965ad&quot;&gt;Here, the right idea means an idea that is the correct idea to be implemented. The correct idea to be implemented is one with the greatest potential.&lt;/p&gt;
&lt;p id=&quot;p-c9d8fe8&quot;&gt;Here, potential means the degree to which a feature or a project can have value, as a result of implementing that idea.&lt;/p&gt;
&lt;p id=&quot;p-0b6b9bd&quot;&gt;What is value then? It depends entirely on the context in which the idea is expressed. For example, ideas related to businesses tend to be evaluated against their ability to generate cash flows.&lt;/p&gt;
&lt;p id=&quot;p-6543bc6&quot;&gt;There are many reasons why great ideas usually are not the right ideas.&lt;/p&gt;
&lt;p id=&quot;p-b105842&quot;&gt;An idea can be great, but not feasible due to being too complex.&lt;/p&gt;
&lt;p id=&quot;p-84dc806&quot;&gt;An idea can be great, but not correctly timed.&lt;/p&gt;
&lt;p id=&quot;p-6e6a554&quot;&gt;An idea can be great but require too many resources.&lt;/p&gt;
&lt;p id=&quot;p-1864982&quot;&gt;An idea can be great, but not the greatest among the known universe of ideas.&lt;/p&gt;
&lt;p id=&quot;p-cda9dd9&quot;&gt;There are other cases where an idea can be great, but still not the right idea. The ones mentioned above are the most important ones.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;cost-of-ideas&quot;&gt;Cost of Ideas&lt;/h3&gt;
&lt;p id=&quot;p-9071156&quot;&gt;The cost of an idea is at its minimum upon its initial emergence in the stream of cognition of a single individual. In other words, the cost of ideas is the lowest immediately upon its conception.&lt;/p&gt;
&lt;p id=&quot;p-f47fc65&quot;&gt;From there onwards, the cost of ideas dramatically expands.&lt;/p&gt;
&lt;p id=&quot;p-612e73b&quot;&gt;At first, the cost increases as the single individual starts thinking about it.&lt;/p&gt;
&lt;p id=&quot;p-1c002d5&quot;&gt;Then, the cost increases as the single individual share the idea with others.&lt;/p&gt;
&lt;p id=&quot;p-348b8cc&quot;&gt;Then, the cost increases as the others start thinking about it and sharing it with more people.&lt;/p&gt;
&lt;p id=&quot;p-54d7ce1&quot;&gt;Using a software product company as an example, without the right countermeasures, the idea then finds its way through product innovation and product management processes, increasing the cost by several orders of magnitude.&lt;/p&gt;
&lt;p id=&quot;p-cf501e6&quot;&gt;Again, without the right countermeasures, then the idea is formulated as an engineering spec and goes through the motions where it is fulfilled as an immaterial artifact such as a user interface or other functionality. Depending on the idea, it has generally become an order or two orders of magnitude more costly than in the previous step.&lt;/p&gt;
&lt;p id=&quot;p-dd901a2&quot;&gt;Some ideas are able to attract energy to a degree where the idea becomes implemented and monetizable. Everything up to that point is cost.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;anatomy-of-an-idea&quot;&gt;Anatomy of an Idea&lt;/h3&gt;
&lt;p id=&quot;p-950f561&quot;&gt;Ideas appear as thoughts. Following the appearance of an idea, there can be a sense of being pulled toward that thought. When that happens, many more thoughts appear related to the idea as the idea expands. As the fascination and involvement one has with the idea increases, the idea becomes concrete. Basically, the more one thinks about it and talks about it, and the more one shares it with others, and so forth, the more concrete it becomes. The process of concretization oftentimes involves the appearance of various artifacts. Such as notes, documents, and presentations. As ideas become concrete enough, a committed investment is made into implementing the idea. There is a business case for implementing the idea, and the case attains wide acceptance. The idea is then implemented and brought to such a point where it can be readily monetized.&lt;/p&gt;
&lt;p id=&quot;p-132492b&quot;&gt;In summary, there are in total seven phases of an idea making its way from being just cost to unlocking its potential for value:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-41def7a&quot;&gt;Appearance&lt;/li&gt;
&lt;li id=&quot;p-fa0be8e&quot;&gt;Attraction&lt;/li&gt;
&lt;li id=&quot;p-5210fc6&quot;&gt;Expansion&lt;/li&gt;
&lt;li id=&quot;p-83dd893&quot;&gt;Concretization&lt;/li&gt;
&lt;li id=&quot;p-0401729&quot;&gt;Investment&lt;/li&gt;
&lt;li id=&quot;p-8781d61&quot;&gt;Implementation&lt;/li&gt;
&lt;li id=&quot;p-71b4f30&quot;&gt;Monetization&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-5da4e3a&quot;&gt;Once the idea actually delivers value, it is no longer an idea. The idea is the cause for the value that may arise after the idea has been brought to a point where it can be readily monetized. Ideas and value should therefore not be confused with one another.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;ul&gt;
&lt;li id=&quot;p-8942a68&quot;&gt;Ideas are cost and nothing but cost&lt;/li&gt;
&lt;li id=&quot;p-dd947ba&quot;&gt;Value can be optimally created through implementing the right ideas&lt;/li&gt;
&lt;li id=&quot;p-b541dcb&quot;&gt;Ideas can be managed and exploited systematically&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-for-taking-the-time-to-read-this-article-i-would-love-to-hear-your-thoughts-about-it-&quot;&gt;Thanks for taking the time to read this article, I would love to hear your thoughts about it. 🧡&lt;/h2&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;next-read-the-second-part-of-this-article-series-here&quot;&gt;Next, read the second part of this article series &lt;a href=&quot;https://mikkokotila.com/thinking-about-ideas-as-a-system-evaluation-of-ideas-38054fafcffb&quot;&gt;here&lt;/a&gt;.&lt;/h2&gt;</content></entry><entry><title>The Three Fundamental Principles of Software Projects</title><link href="https://mikkokotila.com/writing/the-three-fundamental-principles-of-software-projects/"/><id>https://mikkokotila.com/writing/the-three-fundamental-principles-of-software-projects/</id><published>2022-05-03T00:00:00Z</published><updated>2022-05-03T00:00:00Z</updated><category term="research-and-development"/><summary>Three vitally important things I learned building software for 30 years — explained in five minutes.</summary><content type="html">&lt;h2 class=&quot;h-1&quot; id=&quot;we-cant-control-time-but-we-can-control-scope&quot;&gt;We Can’t Control Time (But We Can Control Scope)&lt;/h2&gt;
&lt;p id=&quot;p-009f197&quot; class=&quot;opening&quot;&gt;It can be very hard to know precisely, sometimes even roughly, how long it will take to solve a particular problem using the software engineering method. At the same time, all the stakeholders, including the software engineer, want to know precisely how long it will take. Moreover, it can be very hard to assess progress accurately once the project is already on its way to complicate &lt;span class=&quot;nowrap&quot;&gt;things further.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-a84f1e5&quot;&gt;In this light, it is helpful to think about software projects from two aspects. One aspect is &lt;em&gt;time&lt;/em&gt;, and the other aspect is &lt;em&gt;scope&lt;/em&gt;.&lt;/p&gt;
&lt;p id=&quot;p-1f8c561&quot;&gt;The aspect of time&lt;em&gt; &lt;/em&gt;is not something we can directly control.&lt;/p&gt;
&lt;p id=&quot;p-b54c273&quot;&gt;The aspect of scope is something we can directly control.&lt;/p&gt;
&lt;p id=&quot;p-161c06f&quot;&gt;&lt;strong&gt;Because we can’t control time, but we can control scope, the first principle is that we must focus on controlling the scope.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;partitional-optimum&quot;&gt;&lt;em&gt;Partitional Optimum&lt;/em&gt;&lt;/h2&gt;
&lt;p id=&quot;p-8599bcb&quot;&gt;You might argue that we can control time by adding more people to the software project. Here the simple counter-argument is Brook’s law which states:&lt;/p&gt;
&lt;blockquote id=&quot;p-0d8b10b&quot;&gt;
&lt;p&gt;“Adding manpower to late software project makes it later”.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-bfe6e4c&quot;&gt;A slightly more elaborate version of the counter-argument here is that software projects tend to have a high cost of partitioning. We can understand the concept of partitioning (work) through strawberry fields.&lt;/p&gt;
&lt;p id=&quot;p-99b8928&quot;&gt;Imagine a field of strawberries that is the size of a football field. Let’s say one person (picker) can pick 2,000 strawberries per day. Two pickers can pick 4,000 strawberries per day, and so on. Up to a point, for every new person working in the field, you get 2000 strawberries per day more. As the number of people in the field increases, the pickers start slowing each other down. As you keep adding more pickers, the congestion on the field increases, and the strawberries per day per picker declines. If you don’t stop adding pickers, the field will become so congested that pickers can no longer pick strawberries on it. Moving has become impossible.&lt;/p&gt;
&lt;p id=&quot;p-ac91fd1&quot;&gt;Between these two states — the minimum and total collapse — there is the &lt;em&gt;partitional optimum&lt;/em&gt;, a state where there is the correct number of people in the field. The correct number is the one that allows achieving 2,000 strawberries per day per picker and allows emptying the field from strawberries in the shortest possible calendar time.&lt;/p&gt;
&lt;p id=&quot;p-3b4d489&quot;&gt;The nuance here is that the &lt;em&gt;partitional optimum &lt;/em&gt;cannot be improved by means of communication. This is to say that by means of communication, people in the field can not organize in a way that makes it possible to add more people to the field without adversely affecting the strawberries per day per person.&lt;/p&gt;
&lt;p id=&quot;p-59f3e64&quot;&gt;&lt;strong&gt;For every task, there is a number— &lt;em&gt;partitional optimum — &lt;/em&gt;which indicates how many people can work on the task without adverse effects on the throughput per person.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-1e0499f&quot;&gt;Strawberry field operations are an example of highly partitionable tasks. Car mechanics is an example of poorly partitionable tasks. Software engineering tends to be closer to car mechanics than strawberry picking.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;communication-as-cost&quot;&gt;Communication as Cost&lt;/h2&gt;
&lt;p id=&quot;p-2d9f0cd&quot;&gt;At this point, it will be helpful to introduce two new concepts; &lt;em&gt;intra-work communication &lt;/em&gt;and &lt;em&gt;extra-work communication.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-632aaae&quot;&gt;Intra-work communication protocols are those that are a by-product of the actual work. For example, in software engineering, we have daily code commits. Extra-work communication protocols are those that are there to compensate for partitioning. Whereas intra-work communication protocols tend to have no time cost or very low time cost, extra-work communication protocols always have a time cost, often a high one. A particularly costly communication pattern—communication about extra-work communication — can have devastating effects on software engineering projects.&lt;/p&gt;
&lt;p id=&quot;p-5aed5a8&quot;&gt;&lt;strong&gt;While we can’t make people pick strawberries faster by introducing communication protocols, we can make them pick strawberries a lot slower as we keep introducing more communication protocols.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote id=&quot;p-bc9a558&quot;&gt;
&lt;p&gt;We tend to think of communication as a value, but actually, it is a cost.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-b7156e7&quot;&gt;Let’s return to the strawberry field to explore the proposition of communication as cost.&lt;/p&gt;
&lt;p id=&quot;p-e8305d6&quot;&gt;Let’s say we are now approaching the number of people on the field where they can focus on picking strawberries without communicating about it at all. Each day they have eight hours of uninterrupted time for picking strawberries, just enough to pick 2000 strawberries on that day. We now add enough new people to cause a situation where pickers can’t avoid collisions without communication. We then introduce an intra-work communication protocol that takes 15 minutes per day from each picker. So instead of having eight hours for picking, the pickers now have 15 minutes less. This means every picker will pick 63 strawberries less per day. The cost of communication, in this case, is 3.25% of absolute throughput.&lt;/p&gt;
&lt;p id=&quot;p-e2763aa&quot;&gt;&lt;strong&gt;The first-order cost of communication should be understood — and measured — as a decline in throughput.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-cfeeca5&quot;&gt;As we keep adding more people, we have to add more communication to compensate for more people in the field. We compensate by making communication more complex because we can’t just endlessly keep adding more communication. We start to introduce extra-work communication protocols. This presents a new problem; as communication increases in complexity — and deviates pickers from the actual work — misunderstandings and other communication issues become a new cause for collisions. Where in the first place, we started to introduce communication for the sole purpose of avoiding collisions, communication is now causing them.&lt;/p&gt;
&lt;p id=&quot;p-1f97d9e&quot;&gt;&lt;strong&gt;The second-order cost of communication is collisions caused by extra-work communication protocols. The collisions have a direct negative effect on throughput.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-7380750&quot;&gt;Because we can’t anymore reduce communication or make it simpler, and we can’t keep on making it more complex either, we start adding layers to it. There is the planning of communication, coordination of communication, and actual communication. With all this communication, there is now the need to assess communication. This pattern leads to highly ritualized forms of communication, and the communication ends up far distances from the actual work.&lt;/p&gt;
&lt;p id=&quot;p-029b218&quot;&gt;Whereas initially, the communication was a byproduct of the activity of picking strawberries, for example, one picker communicating their intended direction to another picker to avoid a collision, the communication is now increasingly focused on communication. Communication about the planning of communication, communication about coordination of communication, and communication about actual communication. Then followed by communication about the assessment of communication which inevitably leads to more communication. A small fraction of all this communication is about the actual thing, which here is picking strawberries.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Acta est fabula&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/9b212d2e4136c83a.png&quot; alt=&quot;“Game over” in white pixel letters on blue&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;The play is over.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;said to be the last words of Augustus&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “Game over.”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-54a0735&quot;&gt;This kind of highly ritualized communication is the third-order cost of communication. It has devastating effects on the experience pickers have with their job. It’s hard to overstate its adverse effects on throughput.&lt;/p&gt;
&lt;p id=&quot;p-05d9868&quot;&gt;&lt;strong&gt;&lt;em&gt;Cost of communication &lt;/em&gt;is our next, and for now last, first principle. It means that while communication can result in some value, by itself it is a cost.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-three-fundamental-principles&quot;&gt;The Three Fundamental Principles&lt;/h2&gt;
&lt;ul&gt;
&lt;li id=&quot;p-1cde618&quot;&gt;Because we can’t control time, but we can control scope, we must focus on controlling the scope&lt;/li&gt;
&lt;li id=&quot;p-8c3de0d&quot;&gt;Every project has its &lt;em&gt;partitional optimum, &lt;/em&gt;which defines how many people can perform work without collision&lt;/li&gt;
&lt;li id=&quot;p-2b451ec&quot;&gt;While communication can result in value by itself, it is a cost&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;if-you-found-this-article-helpful-why-not-take-a-moment-to-share-it-with-those-you-believe-might-benefit-from-it&quot;&gt;If you found this article helpful, why not take a moment to share it with those you believe might benefit from it.&lt;/h2&gt;</content></entry><entry><title>The Pyramid of Goodness for Research and Development Organizations</title><link href="https://mikkokotila.com/writing/the-pyramid-of-goodness-for-research-and-development-organizations/"/><id>https://mikkokotila.com/writing/the-pyramid-of-goodness-for-research-and-development-organizations/</id><published>2022-02-04T00:00:00Z</published><updated>2022-02-04T00:00:00Z</updated><category term="research-and-development"/><summary>A practical framework for thinking about resource allocation in software companies as a thermodynamic system Introduction For software engineering startups, particularly ones working on more complex problems, the great…</summary><content type="html">&lt;h2 class=&quot;h-1&quot; id=&quot;a-practical-framework-for-thinking-about-resource-allocation-in-software-companies-as-a-thermodynamic-system&quot;&gt;A practical framework for thinking about resource allocation in software companies as a thermodynamic system&lt;/h2&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The Pyramid of Goodness: Mission; Strategy; Budget and Targets; Product Roadmap, Engineering Objectives and Maintenance; Engineering Cycles; Work Orders; Pull Requests; Commits&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;The Pyramid of Goodness, from the top&lt;/p&gt;&lt;ol class=&quot;steps&quot;&gt;&lt;li&gt;&lt;span class=&quot;step-name&quot;&gt;Mission&lt;/span&gt;&lt;span class=&quot;step-text&quot;&gt;The reason the company exists&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;step-name&quot;&gt;Strategy&lt;/span&gt;&lt;span class=&quot;step-text&quot;&gt;How the mission is pursued&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;step-name&quot;&gt;Budget and targets&lt;/span&gt;&lt;span class=&quot;step-text&quot;&gt;For a given period of time&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;step-name&quot;&gt;Roadmap, objectives, maintenance&lt;/span&gt;&lt;span class=&quot;step-text&quot;&gt;Every possible activity of R&amp;#x26;D&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;step-name&quot;&gt;Engineering cycles&lt;/span&gt;&lt;span class=&quot;step-text&quot;&gt;The time in which the work happens&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;step-name&quot;&gt;Work orders&lt;/span&gt;&lt;span class=&quot;step-text&quot;&gt;Each one a request for comments&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;step-name&quot;&gt;Pull requests&lt;/span&gt;&lt;span class=&quot;step-text&quot;&gt;The boxes to check in a work order&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;step-name&quot;&gt;Commits&lt;/span&gt;&lt;span class=&quot;step-text&quot;&gt;Code: the unit of work&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;figcaption&gt;The Pyramid of Goodness, read from the top down; read from the bottom up, code makes the mission.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;
&lt;p id=&quot;p-d0af367&quot; class=&quot;opening&quot;&gt;For software engineering startups, particularly ones working on more complex problems, the great majority of capital may be invested in research and development. It is therefore vitally important to have a system of resource allocation that meets &lt;span class=&quot;nowrap&quot;&gt;several criteria:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-1510377&quot;&gt;It provides complete transparency&lt;/li&gt;
&lt;li id=&quot;p-e5544ed&quot;&gt;The transparency is available continuously in all time horizons&lt;/li&gt;
&lt;li id=&quot;p-d4fa01a&quot;&gt;All stakeholders can access it&lt;/li&gt;
&lt;li id=&quot;p-65787e1&quot;&gt;All stakeholders can clearly understand it&lt;/li&gt;
&lt;li id=&quot;p-d5c115f&quot;&gt;It must be a product of the work itself (i.e. it does not depend on voluntarily reports and such)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-68d553c&quot;&gt;Moreover, the system is one of thermodynamic integrity. This is to say, that in all levels of R&amp;#x26;D activity, there is no separation between that activity, and the mission of the company.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-pyramid-of-goodness-from-top-down&quot;&gt;The Pyramid of Goodness: From Top-Down&lt;/h3&gt;
&lt;p id=&quot;p-02b8cd2&quot;&gt;Starting from the top, every serious business has a clearly articulated &lt;strong&gt;Mission&lt;/strong&gt;.&lt;/p&gt;
&lt;p id=&quot;p-a20a3d1&quot;&gt;The &lt;strong&gt;Mission &lt;/strong&gt;is explained through the &lt;strong&gt;Strategic plan&lt;/strong&gt;.&lt;/p&gt;
&lt;p id=&quot;p-1755a14&quot;&gt;The &lt;strong&gt;Strategic Plan &lt;/strong&gt;sets the &lt;strong&gt;Targets &lt;/strong&gt;and &lt;strong&gt;Budgets &lt;/strong&gt;for a given period of time.&lt;/p&gt;
&lt;p id=&quot;p-1dabfb0&quot;&gt;The &lt;strong&gt;Targets &lt;/strong&gt;and &lt;strong&gt;Budgets &lt;/strong&gt;dictate the &lt;strong&gt;Product Roadmap&lt;/strong&gt;, which in turn influence &lt;strong&gt;Engineering Objectives &lt;/strong&gt;and &lt;strong&gt;Maintenance.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-f559707&quot;&gt;These three — &lt;strong&gt;Product Roadmap&lt;/strong&gt;, &lt;strong&gt;Engineering Objectives&lt;/strong&gt;, and &lt;strong&gt;Maintenance&lt;/strong&gt; — contain all the possible activities of R&amp;#x26;D.&lt;/p&gt;
&lt;p id=&quot;p-028894c&quot;&gt;The &lt;strong&gt;Engineering Cycle &lt;/strong&gt;is the temporal plane in which the work takes place. Typically not shorter than a quarter.&lt;/p&gt;
&lt;p id=&quot;p-f839fc2&quot;&gt;Each &lt;strong&gt;Engineering Cycle &lt;/strong&gt;is broken down into &lt;strong&gt;Work Orders. &lt;/strong&gt;The manifest form each &lt;strong&gt;Work Order &lt;/strong&gt;takes is called a &lt;em&gt;Request for Comments (RFC) &lt;/em&gt;i.e. an engineering spec.&lt;/p&gt;
&lt;p id=&quot;p-1a9af63&quot;&gt;Each &lt;strong&gt;Work Order&lt;/strong&gt; (RFC) is broken down into &lt;strong&gt;Pull Requests. &lt;/strong&gt;These are expressed as boxes to check (as the work progresses) in the &lt;strong&gt;Work Order&lt;/strong&gt; itself.&lt;/p&gt;
&lt;p id=&quot;p-36e0626&quot;&gt;Each &lt;strong&gt;Pull Request &lt;/strong&gt;is broken down into individual &lt;strong&gt;Commits. &lt;/strong&gt;In most cases, the commits are expressed as checkboxes in the &lt;strong&gt;Pull Request.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-a776e65&quot;&gt;The &lt;strong&gt;Commits &lt;/strong&gt;are made of code. Code is the unit of work.&lt;/p&gt;
&lt;p id=&quot;p-47955e3&quot;&gt;Next, the same, from the bottom-up.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-pyramid-of-goodness-from-bottom-up&quot;&gt;The Pyramid of Goodness: From Bottom-Up&lt;/h3&gt;
&lt;p id=&quot;p-5b894cf&quot;&gt;Code makes Commits, Commits make Pull Requests and Pull Requests make Work Orders. Work Orders make Engineering Cycles, and Engineering Cycles make Product Roadmap, Engineering Objectives, and Maintenance. These three make Budgets and Targets. Budgets and Targets make Strategic Plan, and Strategic Plan makes the Mission.&lt;/p&gt;
&lt;p id=&quot;p-3a1e165&quot;&gt;(From the perspective of research and development work) there is no other work than that.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;caveats&quot;&gt;Caveats&lt;/h3&gt;
&lt;p id=&quot;p-dacbd8c&quot;&gt;An astute reader will observe that “engineering work is not only coding”. This is why the checkboxes in &lt;strong&gt;Work Orders &lt;/strong&gt;can have items such as “research so and so technology” or “perform benchmarking tests”.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;roles-and-responsibilities&quot;&gt;Roles and Responsibilities&lt;/h3&gt;
&lt;p id=&quot;p-3b26930&quot;&gt;The board and management team are responsible for &lt;strong&gt;Mission &lt;/strong&gt;and&lt;strong&gt; Strategic Plan. &lt;/strong&gt;The CTO works together with management team counterparts and the board to formulate &lt;strong&gt;Budgets&lt;/strong&gt; and &lt;strong&gt;Targets&lt;/strong&gt; (i.e. R&amp;#x26;D specific high-level objectives such as “improve energy efficiency by a factor of x”).&lt;/p&gt;
&lt;p id=&quot;p-50e41da&quot;&gt;The product team provides a &lt;strong&gt;Product Roadmap&lt;/strong&gt;, which the CTO and SVP of Engineering extend into &lt;strong&gt;Engineering Objectives&lt;/strong&gt; and &lt;strong&gt;Maintenance &lt;/strong&gt;priorities.&lt;/p&gt;
&lt;p id=&quot;p-a3230fb&quot;&gt;From there onwards, the subsequent layers of the pyramid are the sole responsibility of the R&amp;#x26;D department.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;why-not-continue-with-other-articles-in-this-series&quot;&gt;Why not continue with other articles in this series:&lt;/h3&gt;
&lt;ul&gt;
&lt;li id=&quot;p-676c6df&quot;&gt;The Three Fundamental Principles of Software Projects &lt;a href=&quot;https://medium.com/@mikkokotila/the-three-fundamental-principles-of-software-projects-3e798810083d&quot;&gt;&lt;em&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-5d0ce2c&quot;&gt;Thinking about Ideas as a System: Ideas as Cost &lt;a href=&quot;https://medium.com/@mikkokotila/thinking-about-ideas-as-a-system-ideas-as-cost-7ddff76dc944&quot;&gt;&lt;em&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-a972845&quot;&gt;Thinking about Ideas as a System: Evaluation of Ideas &lt;a href=&quot;https://medium.com/@mikkokotila/thinking-about-ideas-as-a-system-evaluation-of-ideas-38054fafcffb&quot;&gt;&lt;em&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-c77994e&quot;&gt;Thinking about Ideas as a System: Effective Communication &lt;a href=&quot;https://medium.com/@mikkokotila/thinking-about-ideas-as-a-system-effective-communication-700b8de6479c&quot;&gt;&lt;em&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content></entry><entry><title>Quantum Coin Toss</title><link href="https://mikkokotila.com/writing/quantum-coin-toss/"/><id>https://mikkokotila.com/writing/quantum-coin-toss/</id><published>2022-01-27T00:00:00Z</published><updated>2022-01-27T00:00:00Z</updated><category term="computing"/><summary>An easy-to-perform quantum mechanics-based alternative to tossing a coin</summary><content type="html">&lt;figure class=&quot;code code-python&quot; id=&quot;code-1&quot; data-lines=&quot;10&quot; aria-label=&quot;Python, 10 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Python&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;10 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-keyword&quot;&gt;import&lt;/span&gt; chances&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-keyword&quot;&gt;import&lt;/span&gt; random&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L3&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L3&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;3&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;# use pseudo randomness to pick either even or odd&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L4&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L4&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;4&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;random&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;([&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;even&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;odd&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L5&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L5&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;5&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;# use pseudo randomness to pick either head or tail&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L6&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L6&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;6&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;random&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;([&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;heads&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;tails&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L7&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L7&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;7&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;# set the `max` and `n` values for the random generator&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L8&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L8&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;8&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;rand &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; chances&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-type&quot;&gt;Randomizer&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;1000000&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L9&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L9&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;9&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;# use quantum mechanical randomness to pick a number&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L10&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L10&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;10&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;rand&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;quantum&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-e2affd6&quot;&gt;In the first two lines of the actual code, we decide if even or odd will be head or tails.&lt;/p&gt;
&lt;p id=&quot;p-d4930cb&quot;&gt;In the third line, we initiate the random number generator to give a single value that is not greater than 1,000,000.&lt;/p&gt;
&lt;p id=&quot;p-21f771f&quot;&gt;In the fourth line, we do the actual pick from a real-time stream of quantum mechanically appearing numbers.&lt;/p&gt;
&lt;p id=&quot;p-5780885&quot;&gt;Putting it all together, if we get as output&lt;code&gt;even&lt;/code&gt; from the first line, and &lt;code&gt;heads&lt;/code&gt; from the second line, and &lt;code&gt;20301&lt;/code&gt; from the fourth line, we then know we have &lt;code&gt;tails&lt;/code&gt; .&lt;/p&gt;
&lt;p id=&quot;p-f718045&quot;&gt;To express the some properly in a function that directly answers the question between two arbitrary alternatives:&lt;/p&gt;
&lt;figure class=&quot;code code-python&quot; id=&quot;code-2&quot; data-lines=&quot;51&quot; aria-label=&quot;Python, 51 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Python&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;51 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;t-function&quot;&gt;quantum_coin_toss&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;a&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; b&lt;span class=&quot;t-punctuation&quot;&gt;):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L3&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L3&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;3&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;&apos;&apos;Quantum coin tosser&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L4&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L4&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;4&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;a | str or int or list or dict | any value or set of values&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L5&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L5&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;5&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;b | str or int or list or dict | any value or set of values&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L6&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L6&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;6&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L7&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L7&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;7&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;&apos;&apos;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L8&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L8&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;8&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L9&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L9&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;9&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;import&lt;/span&gt; chances&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L10&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L10&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;10&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;import&lt;/span&gt; random&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L11&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L11&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;11&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L12&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L12&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;12&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# use pseudo randomness to pick either even or odd&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L13&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L13&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;13&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; random&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;([&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;even&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;odd&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L14&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L14&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;14&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L15&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L15&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;15&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# use pseudo randomness to pick either head or tail&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L16&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L16&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;16&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; random&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;([&lt;/span&gt;&lt;wbr&gt;a&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; b&lt;span class=&quot;t-punctuation&quot;&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L17&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L17&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;17&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L18&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L18&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;18&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# set the `max` and `n` values for the random generator&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L19&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L19&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;19&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;rand &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; chances&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-type&quot;&gt;Randomizer&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;1000000&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L20&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L20&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;20&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L21&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L21&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;21&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# use quantum mechanical randomness to pick a number&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L22&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L22&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;22&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;quantum_random_number &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; rand&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;quantum&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;()[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L23&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L23&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;23&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L24&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L24&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;24&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# handle the case where quantum random number is even&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L25&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L25&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;25&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;if&lt;/span&gt; quantum_random_number &lt;span class=&quot;t-punctuation&quot;&gt;%&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L26&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L26&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;26&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L27&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L27&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;27&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;if&lt;/span&gt; even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;even&apos;&lt;/span&gt; &lt;span class=&quot;t-keyword&quot;&gt;and&lt;/span&gt; a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; a&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L28&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L28&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;28&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; a&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L29&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L29&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;29&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L30&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L30&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;30&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;elif&lt;/span&gt; even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;even&apos;&lt;/span&gt; &lt;span class=&quot;t-keyword&quot;&gt;and&lt;/span&gt; a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; b&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L31&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L31&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;31&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; b&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L32&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L32&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;32&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L33&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L33&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;33&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;elif&lt;/span&gt; even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;odd&apos;&lt;/span&gt; &lt;span class=&quot;t-keyword&quot;&gt;and&lt;/span&gt; a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; a&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L34&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L34&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;34&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; b&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L35&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L35&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;35&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L36&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L36&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;36&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;elif&lt;/span&gt; even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;odd&apos;&lt;/span&gt; &lt;span class=&quot;t-keyword&quot;&gt;and&lt;/span&gt; a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; b&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L37&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L37&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;37&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; a&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L38&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L38&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;38&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L39&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L39&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;39&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;if&lt;/span&gt; quantum_random_number &lt;span class=&quot;t-punctuation&quot;&gt;%&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;t-punctuation&quot;&gt;!=&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L40&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L40&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;40&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L41&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L41&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;41&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;if&lt;/span&gt; even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;even&apos;&lt;/span&gt; &lt;span class=&quot;t-keyword&quot;&gt;and&lt;/span&gt; a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; a&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L42&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L42&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;42&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; b&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L43&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L43&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;43&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L44&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L44&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;44&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;elif&lt;/span&gt; even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;even&apos;&lt;/span&gt; &lt;span class=&quot;t-keyword&quot;&gt;and&lt;/span&gt; a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; b&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L45&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L45&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;45&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; a&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L46&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L46&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;46&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L47&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L47&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;47&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;elif&lt;/span&gt; even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;odd&apos;&lt;/span&gt; &lt;span class=&quot;t-keyword&quot;&gt;and&lt;/span&gt; a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; a&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L48&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L48&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;48&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; a&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L49&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L49&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;49&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L50&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L50&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;50&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:8&quot;&gt;&lt;span class=&quot;ind&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;elif&lt;/span&gt; even_or_odd &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&apos;odd&apos;&lt;/span&gt; &lt;span class=&quot;t-keyword&quot;&gt;and&lt;/span&gt; a_or_b &lt;span class=&quot;t-punctuation&quot;&gt;==&lt;/span&gt;&lt;wbr&gt; b&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L51&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L51&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;51&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; b&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;</content></entry><entry><title>Our Commitment to Ecologically Sustainable Online Advertising</title><link href="https://mikkokotila.com/writing/our-commitment-to-ecologically-sustainable-online-advertising/"/><id>https://mikkokotila.com/writing/our-commitment-to-ecologically-sustainable-online-advertising/</id><published>2022-01-11T00:00:00Z</published><updated>2022-01-11T00:00:00Z</updated><category term="sustainability"/><summary>With our commitment to the environmental and societal impact, Cavai is leading the way to a more energy-efficient and entirely carbon-free online advertising eco-system.</summary><content type="html">&lt;h3 class=&quot;h-2&quot; id=&quot;with-our-commitment-to-the-environmental-and-societal-impact-cavai-is-leading-the-way-to-a-more-energy-efficient-and-entirely-carbon-free-online-advertising-eco-system&quot;&gt;With our commitment to the environmental and societal impact, Cavai is leading the way to a more energy-efficient and entirely carbon-free online advertising eco-system.&lt;/h3&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;where-most-others-stop-we-start&quot;&gt;Where most others stop, we start&lt;/h3&gt;
&lt;p id=&quot;p-45fb82b&quot; class=&quot;opening&quot;&gt;While following standards such as &lt;a href=&quot;https://ghgprotocol.org/&quot;&gt;GHG Protocol&lt;/a&gt; and &lt;a href=&quot;https://www.iso.org/standard/38381.html&quot;&gt;ISO14061&lt;/a&gt; provides a common starting point for everyone, that is where we see the work of the online advertising industry starts. This can be clearly understood through &lt;span class=&quot;nowrap&quot;&gt;three points:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-acf9b84&quot;&gt;Focusing on funding fundamental research as opposed to just following common nominator standards&lt;/li&gt;
&lt;li id=&quot;p-bd26185&quot;&gt;Focusing on energy efficiency innovation as opposed to just replacing fossil fuels with renewable ones&lt;/li&gt;
&lt;li id=&quot;p-ba5fc7d&quot;&gt;Focusing on assessing, offsetting, and reporting Scopes 1, 2, and 3 instead of just Scopes 1 and 2&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-8961aa5&quot;&gt;Because online advertising &lt;a href=&quot;https://research.aalto.fi/en/publications/environmental-impact-assessment-of-online-advertising&quot;&gt;already consumes more than 1% of global energy&lt;/a&gt;, we believe setting a high standard for our industry is the most significant contribution we can make.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;fundamental-research-on-emissions-caused-by-online-advertising&quot;&gt;Fundamental research on emissions caused by online advertising&lt;/h3&gt;
&lt;p id=&quot;p-07f15ca&quot;&gt;Every industry is different, and the way industries generate carbon varies greatly. As an industry, we deliver “digital services” (online ads) to roughly four billion internet users, several dozen per day per user. Many additional connections are made to make data collection and other auxiliary functions possible every time an ad is delivered. Moreover, the mere delivery of an ad often involves 10–20 additional connections as part of moving the ad from the ad delivery system to a web browser on a user’s device.&lt;/p&gt;
&lt;p id=&quot;p-3e4fde4&quot;&gt;The net result is that delivering online ads constitutes in the order of tens of trillions of connections (between networked devices) each day. Each of these connections consumes energy.&lt;/p&gt;
&lt;p id=&quot;p-a0019f3&quot;&gt;The way things are done today, in January 2022, many such connections can be eradicated, and virtually all the rest can be made more efficient.&lt;/p&gt;
&lt;p id=&quot;p-3b4104a&quot;&gt;Before it is possible to take action, we must clearly understand the problem. Once we understand the problem, we can then take the right actions. Examples of this include articles we’ve already published:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-f20db10&quot;&gt;&lt;strong&gt;Environmental impact assessment of online advertising&lt;/strong&gt; [&lt;a href=&quot;https://www.researchgate.net/publication/328665574_Environmental_impact_assessment_of_online_advertising&quot;&gt;link]&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-6ec6a75&quot;&gt;&lt;strong&gt;Moving Towards Ecologically Sustainable Advertising: Introduction&lt;/strong&gt; [&lt;a href=&quot;https://mikkokotila.com/art-technology/towards-ecologically-sustainable-advertising-d68840cf68c8&quot;&gt;link]&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-a3778e8&quot;&gt;&lt;strong&gt;Moving Towards Ecologically Sustainable Advertising: The Five Fives&lt;/strong&gt; [&lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;link]&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-e83cf79&quot;&gt;&lt;strong&gt;Moving Towards Ecologically Sustainable Advertising: The Actual Method&lt;/strong&gt; [&lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-actual-method-fc32fb52ad7&quot;&gt;link]&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-ec76180&quot;&gt;&lt;strong&gt;How Much Does an Ad Impression Emit Carbon?&lt;/strong&gt; [&lt;a href=&quot;https://mikkokotila.com/art-technology/how-much-does-an-ad-impression-emit-carbon-d31daea57184&quot;&gt;link]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-15fcfa8&quot;&gt;In addition to our own research, we have joined forces with the highly-acclaimed online advertising research team led by Professor Ruben Cuevas in UC3M to start a fully-funded scientific research lab focused on emissions and energy efficiency in online advertising. The lab commenced its work in late 2021, and we will start publishing the findings throughout 2022 and 2023 as they become available.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;energy-efficiency-leads-the-way-to-societal-impact&quot;&gt;Energy efficiency leads the way to societal impact&lt;/h3&gt;
&lt;p id=&quot;p-406e05a&quot;&gt;Energy efficiency is best understood by a simple example. Imagine you have a house, where you always have lights on. Regardless of whether anyone is home or if anyone is using a particular room, the lights are always on. The energy for the house comes from fossil fuels.&lt;/p&gt;
&lt;p id=&quot;p-3a5147c&quot;&gt;&lt;strong&gt;How do we address this problem by means of renewable energy?&lt;/strong&gt; We change the contract for the incoming energy from fossil fuels to certified renewables.&lt;/p&gt;
&lt;p id=&quot;p-26a290a&quot;&gt;&lt;strong&gt;How do we address this problem by means of energy efficiency?&lt;/strong&gt; We adopt a smart-home system that keeps the lights on only when somebody is home and keeps the lights on in a particular room only when someone is in it. Having addressed the actual problem — wasteful use of energy — we then change the contract for the incoming energy from fossil fuels to certified renewables.&lt;/p&gt;
&lt;p id=&quot;p-b04023c&quot;&gt;There is a further nuance between two kinds of energy efficiency improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-75ab875&quot;&gt;Where business value is compromised&lt;/li&gt;
&lt;li id=&quot;p-b215101&quot;&gt;Where business value is not compromised&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-d9d70e1&quot;&gt;&lt;strong&gt;Where business value is compromised &lt;/strong&gt;in the context of the given example, means that due to having a gross system configuration, sometimes lights go off even though the person is in a particular room or go on at night while a person is sleeping and moves around in their bed.&lt;/p&gt;
&lt;p id=&quot;p-f3fc2f2&quot;&gt;&lt;strong&gt;Where business value is not compromised &lt;/strong&gt;in the context of the given example, means that due to increasing the complexity of the system configuration (i.e., the rules that govern when lights are on or off), lights being on or off closely resembles the expectations of people living in the house.&lt;/p&gt;
&lt;p id=&quot;p-27c6b57&quot;&gt;Energy efficiency is generally a much more complex problem than in the given example, and it is a particularly complex problem in online advertising. We demonstrate this concretely in &lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;&lt;em&gt;Moving Towards Ecologically Sustainable Advertising: The Five Fives&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. &lt;/em&gt;Because energy efficiency is a complex problem, it will be very attractive for companies to take the easy way out and focus on buying renewable energy. That will not address the underlying problem, which is that online advertising already consumes more than 1% of global energy, whereas it could be made to consume less than 0.1% instead without compromising any business value.&lt;/p&gt;
&lt;p id=&quot;p-17fb0e4&quot;&gt;The responsibility mostly lies on those who own and operate online advertising systems.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;why-scope-3-matters-for-advertising&quot;&gt;Why Scope-3 matters for advertising&lt;/h3&gt;
&lt;p id=&quot;p-4772f26&quot;&gt;The GHG Protocol defines emissions in three scopes. These apply to all kinds of companies and industries, but it’s imperative to clearly understand the implications they have specifically to online advertising.&lt;/p&gt;
&lt;p id=&quot;p-7bbb639&quot;&gt;By the definition of the GHG Protocol, the scopes can be understood in terms of direct and indirect. Additionally, the scopes can be understood in terms of things that a given company is responsible to report, and things that the company is not responsible to report.&lt;/p&gt;
&lt;p id=&quot;p-32669d1&quot;&gt;What companies are responsible to report, are the direct (Scope-1) emissions, as well as the Scope-2 part of the indirect emissions. In other words, the requirement responsibility of a company can be summarized in three points:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-faab587&quot;&gt;The company is required to report its direct energy consumption (e.g., office electricity bill)&lt;/li&gt;
&lt;li id=&quot;p-ac83113&quot;&gt;The company is required to report the energy consumption of its buildings (e.g., heating cost)&lt;/li&gt;
&lt;li id=&quot;p-109456d&quot;&gt;The company is required to report the energy consumption of its vehicles (e.g., a private bus bringing employees to the office)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-1e47e03&quot;&gt;As per the GHG Protocol, companies are not required to report anything else.&lt;/p&gt;
&lt;p id=&quot;p-49f7d60&quot;&gt;&lt;strong&gt;In terms of companies operating ad delivery systems, more than 99% of emissions come from Scope-3, which companies are not required to report.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-8e1441d&quot;&gt;In other words, it makes no difference from the standpoint of claiming “Zero Emissions” as per the GHG Protocol if the company is doing all of its ad delivery on fossil fuels without any carbon offsetting or delivering all the ads on renewable energy. The question of the energy source is entirely irrelevant; what matters is who pays the energy bill. In the case of online advertising, except for Google and a few other major companies, nobody pays energy bills.&lt;/p&gt;
&lt;p id=&quot;p-c739db6&quot;&gt;By assessing, reporting, and offsetting Scope-3 emissions, we set the gold standard for taking responsibility for the direct impact online advertising has on the environment.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p id=&quot;p-5994d84&quot;&gt;For the online advertising industry to become a positive factor in a meaningful, environmentally and societally sustainable future, three critical shifts in mindset are required.&lt;/p&gt;
&lt;p id=&quot;p-98d6af1&quot;&gt;&lt;strong&gt;First,&lt;/strong&gt; companies must invest in fundamental research and capacity development, which can be propriety, open, or both.&lt;/p&gt;
&lt;p id=&quot;p-3419a7d&quot;&gt;&lt;strong&gt;Second,&lt;/strong&gt; companies must focus on energy efficiency primarily and on replacing fossil fuel sources with renewable ones as a secondary measure.&lt;/p&gt;
&lt;p id=&quot;p-412202b&quot;&gt;&lt;strong&gt;Third,&lt;/strong&gt; companies must focus on assessing, reporting, and offsetting Scope-3 emissions in addition to Scope-1 and 2.&lt;/p&gt;
&lt;p id=&quot;p-924239b&quot;&gt;In this industry, we take pride in our ability to innovate, yet most of the so-called innovation is short-sighted and self-serving. We have now been offered a historic opportunity to demonstrate our ability to innovate. Taking up this opportunity, we will end up inspiring other industries to follow our lead.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-for-your-time-if-you-found-the-article-valuable-please-share&quot;&gt;Thanks for your time! If you found the article valuable, please share.&lt;/h2&gt;</content></entry><entry><title>How Much Does an Ad Impression Emit Carbon?</title><link href="https://mikkokotila.com/writing/how-much-does-an-ad-impression-emit-carbon/"/><id>https://mikkokotila.com/writing/how-much-does-an-ad-impression-emit-carbon/</id><published>2021-11-08T00:00:00Z</published><updated>2021-11-08T00:00:00Z</updated><category term="sustainability"/><category term="advertising"/><summary>Background The purpose of this article is to summarize our findings regarding the environmental impact of an ad impression. ”.</summary><content type="html">&lt;h2 class=&quot;h-1&quot; id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;p id=&quot;p-095707c&quot; class=&quot;opening&quot;&gt;The purpose of this article is to summarize our findings regarding the environmental impact of an ad impression. Simply put, we will answer the question, “how much does an ad impression emit carbon dioxide into &lt;span class=&quot;nowrap&quot;&gt;the atmosphere?”.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-928969b&quot;&gt;To answer this question, we utilize our novel eight-phase framework defined in the peer-reviewed scientific article &lt;em&gt;Environmental impact assessment of online advertising&lt;/em&gt;, published in Environmental Impact Assessment Review Journal.&lt;/p&gt;
&lt;p id=&quot;p-fb00d45&quot;&gt;In the article, we assess the total energy consumption of traditional ICT infrastructure as the basis for approximating the total energy consumption of global online advertising delivery. We then established the share of online ads from total ICT energy consumption.&lt;/p&gt;
&lt;p id=&quot;p-38a1986&quot;&gt;&lt;strong&gt;As the results of the article, we find:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-db52c9a&quot;&gt;20–282 TWh of energy consumed by online advertising in 2016&lt;/li&gt;
&lt;li id=&quot;p-ab1b0e4&quot;&gt;Total ICT infrastructure consumption ranged from 791 to 1334 TWh&lt;/li&gt;
&lt;li id=&quot;p-f7bfadb&quot;&gt;With an emission factor of 0.5656 g / Wh, online advertising produced between 12 and 159 million tons of CO2e before offsetting&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;energy-consumption-of-a-single-ad-impression&quot;&gt;Energy consumption of a single ad impression&lt;/h2&gt;
&lt;p id=&quot;p-f136810&quot;&gt;There are significant uncertainties when the energy consumption of a single ad impression is evaluated. The outcome of such an assessment is necessarily a broad distribution of possible results instead of a single figure. The simplest option to establish energy consumption per ad impression is to divide the total energy consumption of online advertising by the total amount of impressions. Here we have used the expert opinion of 146 trillion ad impressions per annum.&lt;/p&gt;
&lt;p id=&quot;p-020c117&quot;&gt;&lt;strong&gt;As the result of the analysis, we find the following:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-8964342&quot;&gt;The energy consumption of a single impression is between 0.14 Wh and 1.93 Wh&lt;/li&gt;
&lt;li id=&quot;p-9bfc10c&quot;&gt;With the emission factor of 0.5656 g / Wh, a single online ad impression produces between 0.08 and 1.09 grams of CO2 before offsetting&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-2d6498c&quot;&gt;&lt;strong&gt;It is important to understand that these results come with several caveats:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-b6a1a6e&quot;&gt;The figures are averages, and there can be significant differences between ad impressions&lt;/li&gt;
&lt;li id=&quot;p-2dba6c7&quot;&gt;The emission factor is based on Germany and will change country-by-country&lt;/li&gt;
&lt;li id=&quot;p-22044e0&quot;&gt;The figure assumes no offsetting, where in fact, some of the emissions are already offsetted&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-ccabb84&quot;&gt;&lt;strong&gt;An average online ad impression emits carbon equal to:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-d3d0da6&quot;&gt;Driving an electric car between 0.4 to 9.65 meters&lt;/li&gt;
&lt;li id=&quot;p-262a5cf&quot;&gt;Watching a 40” OLED TV on 4K between 1.5 to 35 seconds&lt;/li&gt;
&lt;li id=&quot;p-df36f55&quot;&gt;Having a LED light bulb on between 30 and 700 seconds&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;




















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;An average online ad impression emits carbon equal to&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Driving an electric car&lt;/td&gt;&lt;td&gt;between 0.4 and 9.65 metres&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Watching a 40-inch OLED TV in 4K&lt;/td&gt;&lt;td&gt;between 1.5 and 35 seconds&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Having an LED light bulb on&lt;/td&gt;&lt;td&gt;between 30 and 700 seconds&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-86b78b3&quot;&gt;&lt;em&gt;These examples should be considered only as a way to understand the magnitude, and not as an absolute comparison.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-bbd8ca9&quot;&gt;These examples should be considered only as a way to understand the magnitude and not as an absolute comparison.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p id=&quot;p-25cc510&quot;&gt;For every thousand ad impressions delivered, between 140 Wh and 1930 Wh of energy is consumed, resulting in 0.08 kg to 1.09 kg of carbon emissions before offsetting.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;read-another-article-in-this-series&quot;&gt;Read another article in this series:&lt;/h2&gt;
&lt;ul&gt;
&lt;li id=&quot;p-d730b40&quot;&gt;Moving Towards Ecologically Sustainable Advertising: Introduction[&lt;a href=&quot;https://mikkokotila.com/art-technology/towards-ecologically-sustainable-advertising-d68840cf68c8&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-9190309&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Five Fives [&lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-ba86b5a&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Actual Method [&lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-actual-method-fc32fb52ad7&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-5334637&quot;&gt;Is carbon offsetting a viable solution for reaching sustainability goals? [&lt;a href=&quot;https://mikkokotila.com/art-technology/is-carbon-neutrality-a-viable-solution-for-reaching-sustainability-goals-95eda3e1c4cf&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-for-your-time-if-you-have-a-moment-more-please-share&quot;&gt;Thanks for your time! If you have a moment more, please share.&lt;/h2&gt;</content></entry><entry><title>Moving Towards Ecologically Sustainable Advertising: The Actual Method</title><link href="https://mikkokotila.com/writing/moving-towards-ecologically-sustainable-advertising-the-actual-method/"/><id>https://mikkokotila.com/writing/moving-towards-ecologically-sustainable-advertising-the-actual-method/</id><published>2021-09-23T00:00:00Z</published><updated>2021-09-23T00:00:00Z</updated><category term="sustainability"/><category term="advertising"/><summary>Whereas in the Five Fives we outlined the framework for understanding sustainability in online advertising, in this article, we introduce the actual method for achieving it through optimizing the Five…</summary><content type="html">&lt;p id=&quot;p-8111681&quot; class=&quot;opening&quot;&gt;&lt;em&gt;Whereas in the &lt;/em&gt;&lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;&lt;em&gt;Five Fives&lt;/em&gt;&lt;/a&gt;&lt;em&gt; we outlined the framework for understanding sustainability in online advertising, in this article, we introduce the actual method for achieving it through optimizing the &lt;span class=&quot;nowrap&quot;&gt;Five Aspects.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The Five Aspects of advertising systems: Creation, Delivery, Data, Intelligence, Access&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;The Five Aspects of advertising systems&lt;/p&gt;&lt;svg class=&quot;cycle&quot; viewBox=&quot;-260 -170 520 340&quot; role=&quot;img&quot; aria-label=&quot;The Five Aspects of advertising systems: Creation, Delivery, Data, Intelligence, Access&quot;&gt;&lt;circle class=&quot;ring&quot; r=&quot;120&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;hub&quot; r=&quot;40&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;0.0&quot; y1=&quot;-40.0&quot; x2=&quot;0.0&quot; y2=&quot;-120.0&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;0.0&quot; cy=&quot;-120.0&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;38.0&quot; y1=&quot;-12.4&quot; x2=&quot;114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;23.5&quot; y1=&quot;32.4&quot; x2=&quot;70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-23.5&quot; y1=&quot;32.4&quot; x2=&quot;-70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-38.0&quot; y1=&quot;-12.4&quot; x2=&quot;-114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;0.0&quot; y=&quot;-138.0&quot; text-anchor=&quot;middle&quot;&gt;Creation&lt;/text&gt;&lt;text x=&quot;127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;start&quot;&gt;Delivery&lt;/text&gt;&lt;text x=&quot;78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;start&quot;&gt;Data&lt;/text&gt;&lt;text x=&quot;-78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;end&quot;&gt;Intelligence&lt;/text&gt;&lt;text x=&quot;-127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;end&quot;&gt;Access&lt;/text&gt;&lt;/svg&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;which-aspects-to-focus-on&quot;&gt;Which aspects to focus on?&lt;/h3&gt;
&lt;p id=&quot;p-6a97f20&quot;&gt;There are four parts to understanding which aspects to focus on. The first part is related to the direct effect an aspect has on the energy consumption of the system. The second part is related to the indirect effect an aspect has on the energy consumption of the system. The third part is related to how hard it is to optimize the (energy efficiency of the) aspect. The fourth part is related to how many different things there are that can be optimized.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-direct-effect-an-aspect-has-on-energy-consumption&quot;&gt;The direct effect an aspect has on energy consumption&lt;/h3&gt;
&lt;p id=&quot;p-36dac6f&quot;&gt;Each of the Five Aspects can be understood through its direct effect on energy consumption.&lt;/p&gt;
&lt;p id=&quot;p-c5460ee&quot;&gt;The aspect of &lt;strong&gt;Creation &lt;/strong&gt;has a negligible direct effect on energy consumption.&lt;/p&gt;
&lt;p id=&quot;p-26f010b&quot;&gt;The aspect of &lt;strong&gt;Delivery &lt;/strong&gt;has a very important direct effect on energy consumption. Depending on the system, up to 80% of all energy consumed by an advertising system is consumed by the Delivery aspect.&lt;/p&gt;
&lt;p id=&quot;p-3257e45&quot;&gt;The aspect of &lt;strong&gt;Data &lt;/strong&gt;has a very important direct effect on energy consumption. In some advertising systems, most of the energy ends up being consumed by poorly designed data architecture.&lt;/p&gt;
&lt;p id=&quot;p-e68ddbe&quot;&gt;The aspect of &lt;strong&gt;Intelligence &lt;/strong&gt;has a very important direct effect on energy consumption. In some systems, vast amounts of energy are consumed by poorly optimized predictive models and such.&lt;/p&gt;
&lt;p id=&quot;p-8639fdc&quot;&gt;The aspect of &lt;strong&gt;Access &lt;/strong&gt;has a negligible direct effect on energy consumption in advertising systems. It should not be confused with the energy consumption resulting from an ad being displayed on a device after having delivered it, as that belongs to the aspect of Delivery.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-indirect-effect-an-aspect-has-on-energy-consumption&quot;&gt;The indirect effect an aspect has on energy consumption&lt;/h3&gt;
&lt;p id=&quot;p-5edc22b&quot;&gt;In addition to their direct effect, each of the Five Aspects can be understood through its indirect effect on energy consumption.&lt;/p&gt;
&lt;p id=&quot;p-bc7fce4&quot;&gt;The aspect of &lt;strong&gt;Creation &lt;/strong&gt;has a major indirect effect on energy consumption in the sense of being the source for the thing that is being delivered.&lt;/p&gt;
&lt;p id=&quot;p-ae40418&quot;&gt;The aspect of &lt;strong&gt;Delivery &lt;/strong&gt;has virtually no indirect effect on the energy consumption of advertising systems.&lt;/p&gt;
&lt;p id=&quot;p-c36be67&quot;&gt;The aspect of &lt;strong&gt;Data &lt;/strong&gt;has a very important indirect effect on energy consumption in the sense that it affects everything that is later done with the data, such as accessing it, or processing it, or storing it in another system for example.&lt;/p&gt;
&lt;p id=&quot;p-abba4ec&quot;&gt;The aspect of &lt;strong&gt;Intelligence &lt;/strong&gt;has virtually no indirect effect on the energy consumption of advertising systems.&lt;/p&gt;
&lt;p id=&quot;p-59324bf&quot;&gt;The aspect of &lt;strong&gt;Access &lt;/strong&gt;has virtually no indirect effect on the energy consumption of advertising systems.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;how-hard-it-is-to-optimize-the-aspect&quot;&gt;How hard it is to optimize the aspect&lt;/h3&gt;
&lt;p id=&quot;p-2cab361&quot;&gt;The aspect of &lt;strong&gt;Creation &lt;/strong&gt;is simple to optimize.&lt;/p&gt;
&lt;p id=&quot;p-b45885c&quot;&gt;The aspect of &lt;strong&gt;Delivery &lt;/strong&gt;is very complex to optimize.&lt;/p&gt;
&lt;p id=&quot;p-84f6bbc&quot;&gt;The aspect of &lt;strong&gt;Data &lt;/strong&gt;is both simple and complex to optimize. This is to say, that while other means are simple, others are complex. The ones with the greatest reduction in energy consumption generally speaking can be simple technical interventions, but hard to point out.&lt;/p&gt;
&lt;p id=&quot;p-2bbcc72&quot;&gt;The aspect of &lt;strong&gt;Intelligence &lt;/strong&gt;is relatively complex to optimize.&lt;/p&gt;
&lt;p id=&quot;p-3e2818a&quot;&gt;The aspect of &lt;strong&gt;Access &lt;/strong&gt;is relatively simple to optimize.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;how-many-things-are-there-to-optimize&quot;&gt;How many things are there to optimize&lt;/h3&gt;
&lt;p id=&quot;p-a80d848&quot;&gt;The aspect of &lt;strong&gt;Creation &lt;/strong&gt;has a moderate number of things to optimize. For example, reduce the size of objects to be displayed in various user interfaces.&lt;/p&gt;
&lt;p id=&quot;p-a878478&quot;&gt;The aspect of &lt;strong&gt;Delivery &lt;/strong&gt;has only a few things to optimize. For example, reducing the distance between the sender (of the ad) and receiver (of the ad).&lt;/p&gt;
&lt;p id=&quot;p-a790285&quot;&gt;The aspect of &lt;strong&gt;Data &lt;/strong&gt;has as many things to optimize as there are things to do with data. For example, reducing the sampling frequency from a minute to an hour.&lt;/p&gt;
&lt;p id=&quot;p-0ed0ea1&quot;&gt;The aspect of &lt;strong&gt;Intelligence &lt;/strong&gt;has a moderate number of things to optimize. For example, optimizing models towards energy efficiency together with other optimization goals.&lt;/p&gt;
&lt;p id=&quot;p-ac75216&quot;&gt;The aspect of &lt;strong&gt;Access &lt;/strong&gt;has a moderate amount of things to optimize. For example, reduce the size of objects to be displayed in various user interfaces.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;focusing-on-delivery-and-data-is-superior&quot;&gt;Focusing on Delivery and Data is Superior&lt;/h3&gt;
&lt;p id=&quot;p-72754ef&quot;&gt;By appropriately focusing on &lt;strong&gt;Delivery &lt;/strong&gt;and &lt;strong&gt;Data &lt;/strong&gt;aspects, the energy consumption of a typical advertising system can be reduced by roughly 90%. This means that simply by solving energy efficiency in the Delivery and Data aspects, most of the carbon emitted by an advertising system can be eradicated.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;means-by-which-energy-efficiency-can-be-improved&quot;&gt;Means by which energy efficiency can be improved&lt;/h3&gt;
&lt;p id=&quot;p-f7d06a4&quot;&gt;Before evaluating the actual means by which energy efficiency can be improved in each of the five aspects, it is important to understand the potential of each aspect and factor. For example, even though Creation only plays a negligible role in terms of emissions, it is of practical value to understand that the factor of Size is more important for that aspect than the other factors are.&lt;/p&gt;
&lt;p id=&quot;p-ddcf9bb&quot;&gt;The below table illustrates the relationship each Aspect has with each Factor.&lt;/p&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;




















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Creation&lt;/th&gt;&lt;th&gt;Delivery&lt;/th&gt;&lt;th&gt;Data&lt;/th&gt;&lt;th&gt;Intelligence&lt;/th&gt;&lt;th&gt;Access&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Size&lt;/td&gt;&lt;td&gt;●●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●●&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Duration&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Frequency&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Number&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Distance&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●●●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;td&gt;●&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-1e92794&quot;&gt;&lt;em&gt;The Five Factors against the Five Aspects: one mark to three, as in the original chart.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-dca4a7f&quot;&gt;The pattern of energy efficiency optimization following the framework outlined here is straightforward; one simply combines Aspects with Factors, for example, by taking the Aspect of Delivery and then optimizing the Factor of Distance. In advertising, doing this particular thing with only moderate success will bring 50% or more of all possible benefits. Because most advertising actors do not have direct control over the Aspect of Delivery — and are therefore forced to look elsewhere — the particular way of approaching the problem remains the same. This can be understood in four steps as shown below.&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-fb3dae5&quot;&gt;Identify which relevant Aspect is consuming the most energy&lt;/li&gt;
&lt;li id=&quot;p-0096387&quot;&gt;Identify which Factor is the most important in terms of energy cost&lt;/li&gt;
&lt;li id=&quot;p-c918f7b&quot;&gt;Identify ways in which the particular Factor in the given Aspect can be optimized&lt;/li&gt;
&lt;li id=&quot;p-0db0418&quot;&gt;Go back to the first step and repeat&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-26c27e8&quot;&gt;Moreover, each of the Aspects can be analyzed systematically through each of the Factors. This means that there are in total 25 Aspect-Factor pairs (e.g., Delivery-Size). Such pairs are described as &lt;strong&gt;Intervention Vectors.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-62415d9&quot;&gt;The below sections will highlight at least one energy efficiency optimization intervention for each of the vectors.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;interventions-for-the-aspect-of-creation&quot;&gt;Interventions for the aspect of Creation&lt;/h3&gt;
&lt;ul&gt;
&lt;li id=&quot;p-865b58c&quot;&gt;Reduce Size by representing images and such as parameters instead of visual assets&lt;/li&gt;
&lt;li id=&quot;p-642bbbb&quot;&gt;Reduce &lt;strong&gt;Size&lt;/strong&gt; further by having fewer dependencies and by reducing the size of the dependencies&lt;/li&gt;
&lt;li id=&quot;p-22812b4&quot;&gt;Reduce &lt;strong&gt;Duration&lt;/strong&gt; by minimizing the time it takes to complete common workflows&lt;/li&gt;
&lt;li id=&quot;p-4122a49&quot;&gt;Reduce &lt;strong&gt;Number&lt;/strong&gt; by minimizing the need to connect to 3rd-parties&lt;/li&gt;
&lt;li id=&quot;p-337c1b8&quot;&gt;Reduce &lt;strong&gt;Frequency&lt;/strong&gt; by reducing the variety of things*&lt;/li&gt;
&lt;li id=&quot;p-75f3b59&quot;&gt;Reduce &lt;strong&gt;Frequency&lt;/strong&gt; further by caching&lt;/li&gt;
&lt;li id=&quot;p-9c603f1&quot;&gt;Reduce &lt;strong&gt;Distance&lt;/strong&gt; by delivering from edge&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-57fa8de&quot;&gt;*NOTE: Here the emphasis is on the kind of variety reduction where the business value is not compromised. We’ve introduced this key concept in &lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;&lt;em&gt;Five Fives&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;interventions-for-the-aspect-of-delivery&quot;&gt;Interventions for the aspect of Delivery&lt;/h3&gt;
&lt;p id=&quot;p-20e665b&quot;&gt;It is important to understand that Creation-Size has a significant impact on energy consumption in the Aspect of Delivery.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-8c5ed2c&quot;&gt;Reduce &lt;strong&gt;Size&lt;/strong&gt; by green coding practices&lt;/li&gt;
&lt;li id=&quot;p-9cb6158&quot;&gt;Reduce &lt;strong&gt;Duration&lt;/strong&gt; through avoiding connections that remain open&lt;/li&gt;
&lt;li id=&quot;p-6b49fbd&quot;&gt;Reduce &lt;strong&gt;Number&lt;/strong&gt; by reducing the number of tags and other 3rd-party things loaded together with the ad&lt;/li&gt;
&lt;li id=&quot;p-74c0488&quot;&gt;Reduce &lt;strong&gt;Frequency&lt;/strong&gt; by avoiding things such as frequent polling (for viewability and such)&lt;/li&gt;
&lt;li id=&quot;p-f2531a9&quot;&gt;Reduce &lt;strong&gt;Distance&lt;/strong&gt; by delivering from the edge&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;interventions-for-the-aspect-of-data&quot;&gt;Interventions for the aspect of Data&lt;/h3&gt;
&lt;ul&gt;
&lt;li id=&quot;p-ef5805e&quot;&gt;Reduce &lt;strong&gt;Size&lt;/strong&gt; by following “Just Enough” principles* (Just enough entities, features, sampling, metrics)&lt;/li&gt;
&lt;li id=&quot;p-c051ae5&quot;&gt;Further, reduce Reduce &lt;strong&gt;Frequency&lt;/strong&gt; by caching&lt;/li&gt;
&lt;li id=&quot;p-8f87d67&quot;&gt;Reduce &lt;strong&gt;Distance&lt;/strong&gt; by delivering from edgeSize by implementing reduction techniques such as probabilistic data structures.&lt;/li&gt;
&lt;li id=&quot;p-a784d4e&quot;&gt;Reduce &lt;strong&gt;Duration&lt;/strong&gt; through better algorithm design and a greater appreciation of computational complexity&lt;/li&gt;
&lt;li id=&quot;p-2fa6d3b&quot;&gt;Reduce &lt;strong&gt;Number&lt;/strong&gt; by ensuring that the data model is free from unwanted redundancy&lt;/li&gt;
&lt;li id=&quot;p-056093e&quot;&gt;Reduce &lt;strong&gt;Frequency&lt;/strong&gt; by limiting data access to real-time streaming, after which the data is no longer available&lt;/li&gt;
&lt;li id=&quot;p-d7acdc5&quot;&gt;Reduce &lt;strong&gt;Distance&lt;/strong&gt; by ensuring that all related systems are in the exact physical location (e.g., same Cloud region)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-081442b&quot;&gt;Learn more about the “Just Enough” paradigm in the article &lt;em&gt;Data as Cost — Big Cakes are Nice if you Like Cake&lt;/em&gt; [&lt;a href=&quot;https://mikkokotila.medium.com/data-as-cost-big-cakes-are-nice-if-you-like-cake-5da7ef8be9f5&quot;&gt;LINK&lt;/a&gt;].&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;interventions-for-the-aspect-of-intelligence&quot;&gt;Interventions for the aspect of Intelligence&lt;/h3&gt;
&lt;p id=&quot;p-4c2ac17&quot;&gt;The aspect of Intelligence importantly depends on the aspect of Data. For example, whatever is large in the factor of Size in the aspect of Data, will be large in the factor of Size in the aspect of Intelligence. The focus here is mostly on reducing Duration by preferring shallow models over deep ones. The implementation of those (shallow) models should be where the depth is. In other words, shallow models, deep implementations. When models are initially implemented, advanced understanding of computational complexity, as well as algorithmic design, are required prerequisites; such work is otherwise not possible.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-ff5171a&quot;&gt;Reduce &lt;strong&gt;Size&lt;/strong&gt; by feature selection&lt;/li&gt;
&lt;li id=&quot;p-e07a91a&quot;&gt;Reduce &lt;strong&gt;Duration&lt;/strong&gt; by preferring shallower models&lt;/li&gt;
&lt;li id=&quot;p-9ecf020&quot;&gt;Reduce &lt;strong&gt;Frequency&lt;/strong&gt; by improving workflow to avoid errors and redundant training runs&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-745fd85&quot;&gt;The Aspects of Number and Distance have little relevance in the Factor of Intelligence.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;improving-the-aspect-of-access&quot;&gt;Improving the aspect of Access&lt;/h3&gt;
&lt;p id=&quot;p-44a7beb&quot;&gt;The Aspect of Access is similar to the Aspect of Creation in that it focuses on the “user experience” aspect of the system. The main difference is that the things done in Access do not affect the other Aspects.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-b39ca79&quot;&gt;Reduce &lt;strong&gt;Size&lt;/strong&gt; by having fewer dependencies and by reducing the size of the dependencies&lt;/li&gt;
&lt;li id=&quot;p-22812b4-2&quot;&gt;Reduce &lt;strong&gt;Duration&lt;/strong&gt; by minimizing the time it takes to complete common workflows&lt;/li&gt;
&lt;li id=&quot;p-4122a49-2&quot;&gt;Reduce &lt;strong&gt;Number&lt;/strong&gt; by minimizing the need to connect to 3rd-parties&lt;/li&gt;
&lt;li id=&quot;p-337c1b8-2&quot;&gt;Reduce &lt;strong&gt;Frequency&lt;/strong&gt; by reducing the variety of things*&lt;/li&gt;
&lt;li id=&quot;p-75f3b59-2&quot;&gt;Reduce &lt;strong&gt;Frequency&lt;/strong&gt; further by caching&lt;/li&gt;
&lt;li id=&quot;p-9c603f1-2&quot;&gt;Reduce &lt;strong&gt;Distance&lt;/strong&gt; by delivering from edge&lt;/li&gt;
&lt;li id=&quot;p-ab45938&quot;&gt;NOTE: Here the emphasis is on the kind of variety reduction where the business value is not compromised.&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-b2ac9b3&quot;&gt;&lt;em&gt;In the next article in this series, we will show the energy consumption of a single online ad impression, the carbon emitted by it, based on the 8-Phase Framework for Approximating Energy Consumption of Online Advertising.&lt;/em&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;read-another-article-in-this-series&quot;&gt;Read another article in this series:&lt;/h2&gt;
&lt;ul&gt;
&lt;li id=&quot;p-d730b40&quot;&gt;Moving Towards Ecologically Sustainable Advertising: Introduction[&lt;a href=&quot;https://mikkokotila.com/art-technology/towards-ecologically-sustainable-advertising-d68840cf68c8&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-9190309&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Five Fives [&lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-5334637&quot;&gt;Is carbon offsetting a viable solution for reaching sustainability goals? [&lt;a href=&quot;https://mikkokotila.com/art-technology/is-carbon-neutrality-a-viable-solution-for-reaching-sustainability-goals-95eda3e1c4cf&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-48cf3d4&quot;&gt;How Much Does an Ad Impression Emit Carbon? [&lt;a href=&quot;https://mikkokotila.com/art-technology/how-much-does-an-ad-impression-emit-carbon-d31daea57184&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;</content></entry><entry><title>Moving Towards Ecologically Sustainable Advertising: The Five Fives</title><link href="https://mikkokotila.com/writing/moving-towards-ecologically-sustainable-advertising-the-five-fives/"/><id>https://mikkokotila.com/writing/moving-towards-ecologically-sustainable-advertising-the-five-fives/</id><published>2021-09-08T00:00:00Z</published><updated>2021-09-08T00:00:00Z</updated><category term="sustainability"/><category term="advertising"/><summary>Establishing Preliminary Understanding There is a great sense of enthusiasm in making advertising as environmentally sustainable as possible. Many leading companies have already made notable commitments in this respect.</summary><content type="html">&lt;h2 class=&quot;h-1&quot; id=&quot;establishing-preliminary-understanding&quot;&gt;Establishing Preliminary Understanding&lt;/h2&gt;
&lt;p id=&quot;p-86286eb&quot; class=&quot;opening&quot;&gt;There is a great sense of enthusiasm in making advertising as environmentally sustainable as possible. Many leading companies have already made notable commitments in &lt;span class=&quot;nowrap&quot;&gt;this respect.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-3c2d84d&quot;&gt;Such aspirations are oftentimes misguided by a lack of available relevant information — such as environmental information pertaining to the advertising industry — and the general difficulty associated with understanding complex systems. For example, many in the advertising industry believe that the industry’s main contribution to carbon emissions is through office buildings and business travel, where in fact those only accounts for 1% or less of all the emissions caused by advertising.&lt;/p&gt;
&lt;p id=&quot;p-caf08cc&quot;&gt;In this article, we show how ecological sustainability in advertising can only be achieved through improving the energy efficiency of advertising systems, and provide a practical outline for thinking about emissions caused by the advertising industry.&lt;/p&gt;
&lt;p id=&quot;p-ff90d83&quot;&gt;The outline can be summarized as the &lt;em&gt;Five Fives of Sustainable Advertising.&lt;/em&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-five-ways&quot;&gt;The Five Ways&lt;/h2&gt;
&lt;p id=&quot;p-97bfe97&quot;&gt;The first of the &lt;em&gt;F&lt;/em&gt;ive &lt;em&gt;Fives — &lt;/em&gt;The Five Ways — consist of all the various means through which activities aiming towards sustainable advertising are possible. The five are:&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The Five Ways: Eradicating, Energising, Educating, Empowering, Engaging&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;The Five Ways&lt;/p&gt;&lt;svg class=&quot;cycle&quot; viewBox=&quot;-260 -170 520 340&quot; role=&quot;img&quot; aria-label=&quot;The Five Ways: Eradicating, Energising, Educating, Empowering, Engaging&quot;&gt;&lt;circle class=&quot;ring&quot; r=&quot;120&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;hub&quot; r=&quot;40&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;0.0&quot; y1=&quot;-40.0&quot; x2=&quot;0.0&quot; y2=&quot;-120.0&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;0.0&quot; cy=&quot;-120.0&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;38.0&quot; y1=&quot;-12.4&quot; x2=&quot;114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;23.5&quot; y1=&quot;32.4&quot; x2=&quot;70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-23.5&quot; y1=&quot;32.4&quot; x2=&quot;-70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-38.0&quot; y1=&quot;-12.4&quot; x2=&quot;-114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;0.0&quot; y=&quot;-138.0&quot; text-anchor=&quot;middle&quot;&gt;Eradicating&lt;/text&gt;&lt;text x=&quot;127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;start&quot;&gt;Energising&lt;/text&gt;&lt;text x=&quot;78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;start&quot;&gt;Educating&lt;/text&gt;&lt;text x=&quot;-78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;end&quot;&gt;Empowering&lt;/text&gt;&lt;text x=&quot;-127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;end&quot;&gt;Engaging&lt;/text&gt;&lt;/svg&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li id=&quot;p-26f0fee&quot;&gt;Eradicating (wrong views and wrong understanding)&lt;/li&gt;
&lt;li id=&quot;p-46b6dfd&quot;&gt;Energising (with the correct motivation)&lt;/li&gt;
&lt;li id=&quot;p-df018f7&quot;&gt;Educating (with state-of-the-art information)&lt;/li&gt;
&lt;li id=&quot;p-13f564c&quot;&gt;Empowering (with the correct methods and tools)&lt;/li&gt;
&lt;li id=&quot;p-8d87ad2&quot;&gt;Engaging (with relevant stakeholders)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-a98587e&quot;&gt;The way of &lt;strong&gt;Eradicating &lt;/strong&gt;focuses on dispelling myths, revealing wrong views, and pointing out wrong understanding. Such as dispelling the &lt;em&gt;Five Pertinent Myths &lt;/em&gt;found in this article.&lt;/p&gt;
&lt;p id=&quot;p-2b323d2&quot;&gt;The way of &lt;strong&gt;Energizing&lt;/strong&gt; focuses on pointing out and clarifying the correct motivations. Such as the &lt;em&gt;Five Levels of Motivation &lt;/em&gt;explained in this document.&lt;/p&gt;
&lt;p id=&quot;p-34f4ed2&quot;&gt;The way of &lt;strong&gt;Educating &lt;/strong&gt;focuses on using state-of-the-art information to educate stakeholders in a meaningful way. Such as various aspects of this article.&lt;/p&gt;
&lt;p id=&quot;p-cf56791&quot;&gt;The way of &lt;strong&gt;Empowering &lt;/strong&gt;focuses on ensuring that stakeholders have the correct methods and tools available to them. Such as the &lt;em&gt;25 Intervention Vectors &lt;/em&gt;as outlined in this article.&lt;/p&gt;
&lt;p id=&quot;p-46de518&quot;&gt;The way of &lt;strong&gt;Engaging &lt;/strong&gt;focuses on working with relevant stakeholders across the industry, including trade bodies, companies, and organizations focused on sustainability.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-five-levels-of-motivation&quot;&gt;The Five Levels of Motivation&lt;/h2&gt;
&lt;p id=&quot;p-949bdd5&quot;&gt;There are five levels of motivation in respect to countering and managing emissions in advertising:&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The Five Levels of Motivation: Offset carbon emissions, Net-zero emissions, Energy efficiency, Net energy consumption, Societal impact&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;The Five Levels of Motivation&lt;/p&gt;&lt;svg class=&quot;cycle&quot; viewBox=&quot;-260 -170 520 340&quot; role=&quot;img&quot; aria-label=&quot;The Five Levels of Motivation: Offset carbon emissions, Net-zero emissions, Energy efficiency, Net energy consumption, Societal impact&quot;&gt;&lt;circle class=&quot;ring&quot; r=&quot;120&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;hub&quot; r=&quot;40&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;0.0&quot; y1=&quot;-40.0&quot; x2=&quot;0.0&quot; y2=&quot;-120.0&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;0.0&quot; cy=&quot;-120.0&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;38.0&quot; y1=&quot;-12.4&quot; x2=&quot;114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;23.5&quot; y1=&quot;32.4&quot; x2=&quot;70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-23.5&quot; y1=&quot;32.4&quot; x2=&quot;-70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-38.0&quot; y1=&quot;-12.4&quot; x2=&quot;-114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;0.0&quot; y=&quot;-138.0&quot; text-anchor=&quot;middle&quot;&gt;Offset carbon emissions&lt;/text&gt;&lt;text x=&quot;127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;start&quot;&gt;Net-zero emissions&lt;/text&gt;&lt;text x=&quot;78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;start&quot;&gt;Energy efficiency&lt;/text&gt;&lt;text x=&quot;-78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;end&quot;&gt;Net energy consumption&lt;/text&gt;&lt;text x=&quot;-127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;end&quot;&gt;Societal impact&lt;/text&gt;&lt;/svg&gt;&lt;p class=&quot;blog-figure-note&quot;&gt;Energy efficiency comes in two kinds: where business value is compromised, and where it is not.&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-e67027e&quot;&gt;These motivations can be considered as a left-to-right progression from the least evolved to the most evolved. The least evolved being the practice of emitting carbon and then paying to offset it and the most evolved being the practice of working for societal impact.&lt;/p&gt;
&lt;p id=&quot;p-9ec058b&quot;&gt;The way these motivations should be understood is as follows. The company must address the problem through &lt;strong&gt;improving energy efficiency innovation by means which do not compromise business value&lt;/strong&gt;, and as a result, successfully reduces net energy consumption. This inevitably leads to societal impact. This should be understood as the means by which the problem of carbon emissions in advertising is solved. Furthermore, having taken this path, the company ensures that all the energy its activity consumes either directly or indirectly comes from certified renewable sources. Finally, it is important for the company to play an active role in the conservation of trees, particularly of the mature rain-forest, as well as in other activities that improve this planet’s resilience.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;a-formal-framework-for-understanding-emissions-in-advertising&quot;&gt;A Formal Framework for Understanding Emissions in Advertising&lt;/h2&gt;
&lt;p id=&quot;p-66c3a3c&quot;&gt;Understanding emissions in the advertising industry — which is becoming increasingly digital — has four parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-69f71c5&quot;&gt;The condition&lt;/li&gt;
&lt;li id=&quot;p-feadb07&quot;&gt;The causes of the condition&lt;/li&gt;
&lt;li id=&quot;p-7eece8a&quot;&gt;The solution&lt;/li&gt;
&lt;li id=&quot;p-667163a&quot;&gt;The actions leading to the solution&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-fb4d260&quot;&gt;&lt;strong&gt;The condition&lt;/strong&gt; is that advertising consumes more than 1% of global energy, and is a major cause of carbon dioxide in the atmosphere. The great majority of this is due to online advertising.&lt;/p&gt;
&lt;p id=&quot;p-5ffc1f1&quot;&gt;&lt;strong&gt;The causes of the condition&lt;/strong&gt; can be explained as the primary and auxiliary causes. The primary causes consist of ad delivery and displaying of delivered ads. The auxiliary causes consist of everything else, such as office buildings, business travel, and other things required to operate an advertising business. The primary causes are responsible for almost 100% of the condition; ad delivery causing roughly 80% of the condition and displaying the delivered ads causing roughly 20%. All the auxiliary factors combined, cause 1% or less of the condition.&lt;/p&gt;
&lt;p id=&quot;p-e5458ab&quot;&gt;&lt;strong&gt;The solution&lt;/strong&gt; has three parts: 1) reducing energy consumption, 2) reducing non-renewable energy sources, and 3) increasing the planet’s resilience. In terms of reducing energy consumption, there are ways that reduce energy consumption by reducing the business value that is delivered, and ways that directly target energy consumption without reducing the business value that is delivered.&lt;/p&gt;
&lt;p id=&quot;p-a579854&quot;&gt;&lt;strong&gt;The actions&lt;/strong&gt; leading to the solution can be understood based on the &lt;em&gt;Five Aspects of Advertising Systems &lt;/em&gt;and the &lt;em&gt;Five Factors Affecting Energy Consumption in Advertising Systems. &lt;/em&gt;These are covered in the sections below.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-five-aspects-of-advertising-systems&quot;&gt;The Five Aspects of Advertising Systems&lt;/h2&gt;
&lt;p id=&quot;p-ecbcf63&quot;&gt;Because nearly 100% of the energy consumed by the advertising industry comes from advertising systems and not the various auxiliary business operations, this article will focus solely on understanding the condition from the standpoint of advertising systems.&lt;/p&gt;
&lt;p id=&quot;p-c54c321&quot;&gt;An advertising system has five aspects:&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The Five Aspects of advertising systems: Creation, Delivery, Data, Intelligence, Access&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;The Five Aspects of advertising systems&lt;/p&gt;&lt;svg class=&quot;cycle&quot; viewBox=&quot;-260 -170 520 340&quot; role=&quot;img&quot; aria-label=&quot;The Five Aspects of advertising systems: Creation, Delivery, Data, Intelligence, Access&quot;&gt;&lt;circle class=&quot;ring&quot; r=&quot;120&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;hub&quot; r=&quot;40&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;0.0&quot; y1=&quot;-40.0&quot; x2=&quot;0.0&quot; y2=&quot;-120.0&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;0.0&quot; cy=&quot;-120.0&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;38.0&quot; y1=&quot;-12.4&quot; x2=&quot;114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;23.5&quot; y1=&quot;32.4&quot; x2=&quot;70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-23.5&quot; y1=&quot;32.4&quot; x2=&quot;-70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-38.0&quot; y1=&quot;-12.4&quot; x2=&quot;-114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;0.0&quot; y=&quot;-138.0&quot; text-anchor=&quot;middle&quot;&gt;Creation&lt;/text&gt;&lt;text x=&quot;127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;start&quot;&gt;Delivery&lt;/text&gt;&lt;text x=&quot;78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;start&quot;&gt;Data&lt;/text&gt;&lt;text x=&quot;-78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;end&quot;&gt;Intelligence&lt;/text&gt;&lt;text x=&quot;-127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;end&quot;&gt;Access&lt;/text&gt;&lt;/svg&gt;&lt;/figure&gt;
&lt;p id=&quot;p-b998e0c&quot;&gt;Combinations of these five aspects represent all possible advertising systems.&lt;/p&gt;
&lt;p id=&quot;p-6c179b6&quot;&gt;The five aspects of advertising systems are defined as follows.&lt;/p&gt;
&lt;p id=&quot;p-7d4b574&quot;&gt;The aspect of &lt;strong&gt;Creation&lt;/strong&gt; is defined as the processes involved in creating advertisements and managing advertisements that have already been created.&lt;/p&gt;
&lt;p id=&quot;p-de8b706&quot;&gt;The aspect of &lt;strong&gt;Delivery&lt;/strong&gt; is defined as the processes involved in receiving a request, handling it, and communicating a confirmation of having done so.&lt;/p&gt;
&lt;p id=&quot;p-4fea73c&quot;&gt;The aspect of &lt;strong&gt;Data&lt;/strong&gt; is defined as the processes involved in capturing, storing, and making available various information (data) resulting from the Creation, Delivery, Intelligence, and Access aspects.&lt;/p&gt;
&lt;p id=&quot;p-1e418f4&quot;&gt;The aspect of &lt;strong&gt;Intelligence&lt;/strong&gt; is defined as the processes involved in using data to make inferences, such as predictions and decisions. The processes are exclusively programmatic i.e., automatically operated by machines.&lt;/p&gt;
&lt;p id=&quot;p-e5f0ebe&quot;&gt;The aspect of &lt;strong&gt;Access&lt;/strong&gt; is defined as the processes involved in making various features and data available in user interfaces and such, for example, for reporting or data access purposes.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;showing-the-five-aspects-as-a-procedural-continuity&quot;&gt;Showing the Five Aspects as a Procedural Continuity&lt;/h2&gt;
&lt;p id=&quot;p-d9e6b75&quot;&gt;Any event or a sequence of events taking place as part of an advertising system can be readily placed in the framework provided in the section &lt;em&gt;The Five Aspects of Advertising Systems &lt;/em&gt;above. Below we will clearly define the order in which each appears as well as their boundaries. The appearance is as follows.&lt;/p&gt;
&lt;p id=&quot;p-3c8124f&quot;&gt;The &lt;strong&gt;Creation&lt;/strong&gt; aspect is followed by the &lt;strong&gt;Delivery&lt;/strong&gt; aspect.&lt;/p&gt;
&lt;p id=&quot;p-4ef42cb&quot;&gt;The &lt;strong&gt;Delivery&lt;/strong&gt; aspect is followed by the &lt;strong&gt;Data&lt;/strong&gt; aspect.&lt;/p&gt;
&lt;p id=&quot;p-8bdc7d8&quot;&gt;The &lt;strong&gt;Data&lt;/strong&gt; aspect can be followed by the &lt;strong&gt;Intelligence&lt;/strong&gt; aspect and/or the &lt;strong&gt;Access&lt;/strong&gt; aspect.&lt;/p&gt;
&lt;p id=&quot;p-f969df7&quot;&gt;Each aspect can be alienated from the other by understanding how they meet the other aspect/s within their boundaries. The boundaries are as follows.&lt;/p&gt;
&lt;p id=&quot;p-ef1e9df&quot;&gt;The &lt;strong&gt;Creation&lt;/strong&gt; aspect ends at the point where a reference for the advertisement to be delivered has been successfully established.&lt;/p&gt;
&lt;p id=&quot;p-1093269&quot;&gt;The &lt;strong&gt;Delivery&lt;/strong&gt; aspect begins at the point where the above-mentioned reference for the advertisement is ingested. The aspect ends at the point where the advertisement has been delivered, and the fact that it is delivered has been communicated.&lt;/p&gt;
&lt;p id=&quot;p-0429efa&quot;&gt;The &lt;strong&gt;Data&lt;/strong&gt; aspect begins at the point where the above-mentioned communication is received. The aspect ends at the point where all kinds of processes involved with (data) transforming, storing (of data), and making (data) available has been completed.&lt;/p&gt;
&lt;p id=&quot;p-debd46c&quot;&gt;The &lt;strong&gt;Intelligence&lt;/strong&gt; and &lt;strong&gt;Access&lt;/strong&gt; aspects both begin at the point where the above-mentioned processes have been completed.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-five-factors-affecting-energy-consumption-in-advertising-systems&quot;&gt;The Five Factors Affecting Energy Consumption in Advertising Systems&lt;/h2&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The Five Factors: Size, Duration, Number, Frequency, Distance&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;The Five Factors&lt;/p&gt;&lt;svg class=&quot;cycle&quot; viewBox=&quot;-260 -170 520 340&quot; role=&quot;img&quot; aria-label=&quot;The Five Factors: Size, Duration, Number, Frequency, Distance&quot;&gt;&lt;circle class=&quot;ring&quot; r=&quot;120&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;hub&quot; r=&quot;40&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;0.0&quot; y1=&quot;-40.0&quot; x2=&quot;0.0&quot; y2=&quot;-120.0&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;0.0&quot; cy=&quot;-120.0&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;38.0&quot; y1=&quot;-12.4&quot; x2=&quot;114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;23.5&quot; y1=&quot;32.4&quot; x2=&quot;70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-23.5&quot; y1=&quot;32.4&quot; x2=&quot;-70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-38.0&quot; y1=&quot;-12.4&quot; x2=&quot;-114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;0.0&quot; y=&quot;-138.0&quot; text-anchor=&quot;middle&quot;&gt;Size&lt;/text&gt;&lt;text x=&quot;127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;start&quot;&gt;Duration&lt;/text&gt;&lt;text x=&quot;78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;start&quot;&gt;Number&lt;/text&gt;&lt;text x=&quot;-78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;end&quot;&gt;Frequency&lt;/text&gt;&lt;text x=&quot;-127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;end&quot;&gt;Distance&lt;/text&gt;&lt;/svg&gt;&lt;/figure&gt;
&lt;p id=&quot;p-903719c&quot;&gt;The factor of &lt;strong&gt;Size&lt;/strong&gt; refers to the size in bytes for various computational objects, such as the advertisement, the connections required for delivering it, the data associated with it, and so forth.&lt;/p&gt;
&lt;p id=&quot;p-aca1be2&quot;&gt;The factor of &lt;strong&gt;Duration&lt;/strong&gt; refers to the duration of each computational process, such as the advertisement becoming visible on a mobile device or delivering the ad to that device in the first place.&lt;/p&gt;
&lt;p id=&quot;p-f5173f9&quot;&gt;The factor of &lt;strong&gt;Number&lt;/strong&gt; refers to the number of connections required to complete a given computational process, such as delivering the ad. For example, if many tracking tags are required for displaying an ad, then many connections are required.&lt;/p&gt;
&lt;p id=&quot;p-06b6c76&quot;&gt;The factor of &lt;strong&gt;Frequency&lt;/strong&gt; refers to how frequently something is accessed. For example, if a report needs to be updated every minute, then all the computational processes and objects related to that report have to be run every minute.&lt;/p&gt;
&lt;p id=&quot;p-b148e6f&quot;&gt;Whereas &lt;strong&gt;Number&lt;/strong&gt; deals with how many things are done simultaneously in order to achieve one result, &lt;strong&gt;Frequency&lt;/strong&gt; deals with how things are done to achieve one result repeatedly.&lt;/p&gt;
&lt;p id=&quot;p-bf93824&quot;&gt;The factor of &lt;strong&gt;Distance&lt;/strong&gt; deals with the spatial (particularly in relation to the number of intermediary steps caused by an increase in distance) dimension, in other words, how close the sending and receiving parties can be brought.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-five-pertinent-myths&quot;&gt;The Five Pertinent Myths&lt;/h2&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The Five Myths: Planting trees, Renewable energy, Less emissions, Energy consumption, Emission goals&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;The Five Myths&lt;/p&gt;&lt;svg class=&quot;cycle&quot; viewBox=&quot;-260 -170 520 340&quot; role=&quot;img&quot; aria-label=&quot;The Five Myths: Planting trees, Renewable energy, Less emissions, Energy consumption, Emission goals&quot;&gt;&lt;circle class=&quot;ring&quot; r=&quot;120&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;hub&quot; r=&quot;40&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;0.0&quot; y1=&quot;-40.0&quot; x2=&quot;0.0&quot; y2=&quot;-120.0&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;0.0&quot; cy=&quot;-120.0&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;38.0&quot; y1=&quot;-12.4&quot; x2=&quot;114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;23.5&quot; y1=&quot;32.4&quot; x2=&quot;70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-23.5&quot; y1=&quot;32.4&quot; x2=&quot;-70.5&quot; y2=&quot;97.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-70.5&quot; cy=&quot;97.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;spoke&quot; x1=&quot;-38.0&quot; y1=&quot;-12.4&quot; x2=&quot;-114.1&quot; y2=&quot;-37.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node&quot; cx=&quot;-114.1&quot; cy=&quot;-37.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;0.0&quot; y=&quot;-138.0&quot; text-anchor=&quot;middle&quot;&gt;Planting trees&lt;/text&gt;&lt;text x=&quot;127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;start&quot;&gt;Renewable energy&lt;/text&gt;&lt;text x=&quot;78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;start&quot;&gt;Less emissions&lt;/text&gt;&lt;text x=&quot;-78.8&quot; y=&quot;122.4&quot; text-anchor=&quot;end&quot;&gt;Energy consumption&lt;/text&gt;&lt;text x=&quot;-127.4&quot; y=&quot;-45.4&quot; text-anchor=&quot;end&quot;&gt;Emission goals&lt;/text&gt;&lt;/svg&gt;&lt;/figure&gt;
&lt;p id=&quot;p-caf3d31&quot;&gt;Even those who are seriously motivated to work towards societal impact will inevitably fail in reaching their goals if their activity is based on believing myths. At best, a company following myths will appear to have reached its goals, but under objective analysis, it would become apparent that there has been no societal impact, or that only little such impact (in comparison to the full potential of the company) has been delivered.&lt;/p&gt;
&lt;p id=&quot;p-a3dc2f7&quot;&gt;&lt;strong&gt;Planting trees is a meaningful way to offset carbon emissions.&lt;/strong&gt;&lt;br&gt;
In &lt;em&gt;Is carbon neutrality a viable solution for reaching sustainability goals? &lt;/em&gt;we provide a unique perspective to why most of the tree planting programs do not work[&lt;a href=&quot;https://medium.com/art-technology/is-carbon-neutrality-a-viable-solution-for-reaching-sustainability-goals-95eda3e1c4cf&quot;&gt;LINK&lt;/a&gt;]. That said, planting trees can in fact be a part of the solution when it is meticulously planned in terms of geography and other aspects, as well as focused on long-term economic incentives that foster the motivations of tree planters and forest caretakers.&lt;/p&gt;
&lt;p id=&quot;p-8644dd7&quot;&gt;&lt;strong&gt;There will be enough certified renewable energy to meet the demand.&lt;/strong&gt;&lt;br&gt;
The forecast for the availability of certified renewable energy in the coming decades suggests less availability than there will be demand. In other words, renewable energy will run out in the coming decades due to energy production trends not being able to respond to consumption trends in a timely manner.&lt;/p&gt;
&lt;p id=&quot;p-93f8712&quot;&gt;&lt;strong&gt;Digital advertising causes fewer emissions than conventional advertising.&lt;/strong&gt;&lt;br&gt;
Conventional advertising, albeit being production-heavy, consumes almost no energy in comparison to the amount of energy consumed by digital advertising. This is due to the fact that almost all emissions in advertising result from the delivery and display of digital ads.&lt;/p&gt;
&lt;p id=&quot;p-24b54e2&quot;&gt;&lt;strong&gt;Most of the energy in advertising companies is consumed by buildings and travel.&lt;/strong&gt;&lt;br&gt;
For a typical advertising company involved in digital advertising in one way or another, close to 100% of energy consumption is due to the delivery and displaying of ads.&lt;/p&gt;
&lt;p id=&quot;p-41d3baf&quot;&gt;&lt;strong&gt;It will be straightforward to reach various available emission goals in advertising.&lt;/strong&gt;&lt;br&gt;
Because sustainability will depend on energy efficiency optimization, which is an optimization problem, the degree to which it is straightforward can be established through clearly understanding the problem as an optimization problem. As an optimization problem, energy efficiency is multi-dimensional, with infinitely many variables, and can be considered both non-convex and non-smooth. In summary, such an optimization problem falls into the hardest category of optimization problems&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;read-another-article-in-this-series&quot;&gt;Read another article in this series:&lt;/h2&gt;
&lt;ul&gt;
&lt;li id=&quot;p-d730b40&quot;&gt;Moving Towards Ecologically Sustainable Advertising: Introduction[&lt;a href=&quot;https://medium.com/art-technology/towards-ecologically-sustainable-advertising-d68840cf68c8&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-ba86b5a&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Actual Method [&lt;a href=&quot;https://medium.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-actual-method-fc32fb52ad7&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-5334637&quot;&gt;Is carbon offsetting a viable solution for reaching sustainability goals? [&lt;a href=&quot;https://medium.com/art-technology/is-carbon-neutrality-a-viable-solution-for-reaching-sustainability-goals-95eda3e1c4cf&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-48cf3d4&quot;&gt;How Much Does an Ad Impression Emit Carbon? [&lt;a href=&quot;https://medium.com/art-technology/how-much-does-an-ad-impression-emit-carbon-d31daea57184&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-for-your-time-if-you-have-a-moment-more-please-share&quot;&gt;Thanks for your time! If you have a moment more, please share.&lt;/h2&gt;</content></entry><entry><title>Moving Towards Ecologically Sustainable Advertising: Introduction</title><link href="https://mikkokotila.com/writing/moving-towards-ecologically-sustainable-advertising-introduction/"/><id>https://mikkokotila.com/writing/moving-towards-ecologically-sustainable-advertising-introduction/</id><published>2021-06-16T00:00:00Z</published><updated>2021-06-16T00:00:00Z</updated><category term="sustainability"/><category term="advertising"/><summary>Background There is a great sense of enthusiasm in making advertising as environmentally sustainable as possible. Many leading companies have already made significant commitments in this respect.</summary><content type="html">&lt;h3 class=&quot;h-2&quot; id=&quot;background&quot;&gt;Background&lt;/h3&gt;
&lt;p id=&quot;p-f0ac4f8&quot; class=&quot;opening&quot;&gt;There is a great sense of enthusiasm in making advertising as environmentally sustainable as possible. Many leading companies have already made significant commitments in this respect. But, such aspirations often become misguided by lack of available relevant information and the general difficulty of understanding &lt;span class=&quot;nowrap&quot;&gt;complex systems.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-problem&quot;&gt;The Problem&lt;/h3&gt;
&lt;p id=&quot;p-d3b8b27&quot;&gt;&lt;em&gt;Environmental Impact Assessment of Online Advertising, &lt;/em&gt;a peer-reviewed paper published in 2018, highlights how close to 100% of emissions in advertising come from delivering and displaying online ads. However, today in 2021, most advertising industry companies believe that emissions instead come from auxiliary sources, such as office buildings and business travel. In summary, what the industry decision-makers widely believe in causing 100% of industry emissions, actually causes less than 1% of emissions.&lt;/p&gt;
&lt;blockquote id=&quot;p-057e957&quot;&gt;
&lt;p&gt;“Less than 1% of emissions in advertising are caused by buildings and travel”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-c1d2d4a&quot;&gt;Moreover, there is a misunderstanding that it is possible to offset carbon emissions by planting trees effectively. Carbon offsetting is the practice where fossil fuels are used as a source of energy, and trees are planted to offset that. But planting new trees is not a viable solution as long as mature trees are being cut down. A decade after planting, ten thousand Birch trees in Finland cannot offset the same amount of carbon a single mature rainforest tree can offset.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;the-solution&quot;&gt;The Solution&lt;/h3&gt;
&lt;p id=&quot;p-e3b724a&quot;&gt;The primary means by which advertising emissions can be minimized are two. First, there are various means of reducing energy consumption. Second, there is a way to limit energy consumption to certified renewable energy. In terms of reducing energy consumption, there are two ways. One way is to reduce energy consumption at the expense of the value delivered to advertisers and their partners. This is called “Primitive Energy Efficiency.” The second way is to reduce energy consumption without compromising the value delivered to advertisers and their partners. This is called “Energy Efficiency.” The second and superior way is achieved by engineering excellence.&lt;/p&gt;
&lt;blockquote id=&quot;p-6a265f0&quot;&gt;
&lt;p&gt;“When energy consumption is reduced without compromising business value, this is called energy efficiency”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-8b3c812&quot;&gt;With Cavai, we work hard to be the stalwarts of energy efficiency in advertising. As our first major industry contribution in this respect, we will be publishing a novel framework for attaining energy efficiency in the advertising industry. The framework establishes five factors that can be used to describe any advertising system. Furthermore, the framework introduces five aspects of each of the factors, making up the &lt;em&gt;25 Intervention Vectors. &lt;/em&gt;Advertising technology companies can readily apply the &lt;em&gt;Intervention Vectors &lt;/em&gt;to improve their energy efficiency dramatically without compromising advertiser value.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;read-another-article-in-this-series&quot;&gt;Read another article in this series:&lt;/h2&gt;
&lt;ul&gt;
&lt;li id=&quot;p-9190309&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Five Fives [&lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-ba86b5a&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Actual Method [&lt;a href=&quot;https://mikkokotila.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-actual-method-fc32fb52ad7&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-5334637&quot;&gt;Is carbon offsetting a viable solution for reaching sustainability goals? [&lt;a href=&quot;https://mikkokotila.com/art-technology/is-carbon-neutrality-a-viable-solution-for-reaching-sustainability-goals-95eda3e1c4cf&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-48cf3d4&quot;&gt;How Much Does an Ad Impression Emit Carbon? [&lt;a href=&quot;https://mikkokotila.com/art-technology/how-much-does-an-ad-impression-emit-carbon-d31daea57184&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-for-your-time-if-you-have-a-moment-more-please-share&quot;&gt;Thanks for your time! If you have a moment more, please share.&lt;/h2&gt;</content></entry><entry><title>Is carbon neutrality a viable solution for reaching sustainability goals?</title><link href="https://mikkokotila.com/writing/is-carbon-neutrality-a-viable-solution-for-reaching-sustainability-goals/"/><id>https://mikkokotila.com/writing/is-carbon-neutrality-a-viable-solution-for-reaching-sustainability-goals/</id><published>2021-06-07T00:00:00Z</published><updated>2021-06-07T00:00:00Z</updated><category term="sustainability"/><summary>Background Many companies use the technique of “carbon offsetting” to reach their sustainability goals.</summary><content type="html">&lt;h2 class=&quot;h-1&quot; id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;p id=&quot;p-1cb0631&quot; class=&quot;opening&quot;&gt;Many companies use the technique of “carbon offsetting” to reach their sustainability goals. This article analyzes — using first principles — if carbon offsetting can be a viable solution to reach &lt;span class=&quot;nowrap&quot;&gt;sustainability goals.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;observations-and-analysis&quot;&gt;Observations and Analysis&lt;/h2&gt;
&lt;p id=&quot;p-40660d0&quot;&gt;Carbon neutrality can be understood as the result of having offset carbon emissions by compensating those emissions elsewhere. A typical example is offsetting by planting trees.&lt;/p&gt;
&lt;p id=&quot;p-ccfe305&quot;&gt;Oftentimes we are talking in terms of “how many trees are being planted this year”, “number of trees is increasing every year”, and “there is more tree canopy cover than in 50 years”. Such analogies can be compelling, but fail to appreciate the first principles of the underlying problem.&lt;/p&gt;
&lt;p id=&quot;p-512acb6&quot;&gt;What is the given underlying then? The given problem is controlling the net quantity of carbon in the atmosphere, in other words, the total amount of carbon in the atmosphere at a given point in time. To understand complex systems — such as the atmosphere — and the first principles governing such systems, it is useful to reduce the complexity of the system.&lt;/p&gt;
&lt;p id=&quot;p-7e680fd&quot;&gt;For example, let’s imagine a system, where there are 100 Birch trees and one Sumaumeira tree. These are the only trees in the system with reduced complexity.&lt;/p&gt;
&lt;p id=&quot;p-ceef3dc&quot;&gt;We know that if we cut all 101 trees, there is no carbon offsetting capability left. We also know that if we don’t anything, the current carbon offsetting capability remains the same.&lt;/p&gt;
&lt;p id=&quot;p-2aee75e&quot;&gt;Then we end up with a question:&lt;/p&gt;
&lt;p id=&quot;p-e6c1c62&quot;&gt;“Which one will offset carbon more, 100 Birch trees or one Sumaumeira tree, assuming both at full maturity.”&lt;/p&gt;
&lt;p id=&quot;p-17dfc50&quot;&gt;This question leads us to the first principle of “tree mass”; the greater the mass of the tree — everything else is the same — the greater its ability to offset carbon.&lt;/p&gt;
&lt;p id=&quot;p-2b3625e&quot;&gt;Because Birch trees have a diameter of roughly 0.3 meters and length of roughly 20 meters, and Sumaumeira trees have a diameter of roughly 2 meters and length of roughly 50 meters, using the first principle of tree mass, we can approximate the answer to our question. Assuming both to have equal density, we can use volume as a proxy for mass.&lt;/p&gt;
&lt;p id=&quot;p-0b275d7&quot;&gt;So what is the answer? Because a single Sumaumeira tree has a volume of 157 cubic meters, and a single Birch tree has a volume of 1.43 cubic meters, a single Sumaueira tree will offset 10% more carbon than 100 Birch trees.&lt;/p&gt;
&lt;p id=&quot;p-8f34b51&quot;&gt;Once we understand that tree mass is a first principle in the practice of carbon offsetting by planting trees, we come to understand that age of the tree matters. The closer a given tree is to its full maturity, the more carbon it will offset.&lt;/p&gt;
&lt;p id=&quot;p-68d71b4&quot;&gt;Then, we find that the 100 Birch trees planted for carbon offsetting purposes are about 1% of their mature size 10 years after being planted. We will also find, that Sumaumeira trees tend to be of mature size at the time of cutting them. It follows that to have the carbon offsetting capacity of a single Sumameiru tree, thousands of Birch trees need to be planted.&lt;/p&gt;
&lt;p id=&quot;p-0fa0b54&quot;&gt;Furthermore, we have to consider the location of the tree. Whereas Sumameiru trees vegetate year-round, Birch trees tend to vegetate not more than half of the year. The carbon offsetting capacity of a tree during the winter is close to none. Therefore, we have to further double the number of Birch trees to be planted, for every Sumameiru tree we cut down.&lt;/p&gt;
&lt;p id=&quot;p-66fa61d&quot;&gt;So what kind of trees are we planting in the world, and what kind of trees are we cutting down in the world?&lt;/p&gt;
&lt;figure class=&quot;fig atlas wide&quot; data-fig=&quot;atlas&quot; aria-label=&quot;World map of the annual change in forest area as a share of forest area: losses across the tropics, gains in much of Europe and Asia (Our World in Data, from the UN FAO Forest Resources Assessment)&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Forest is lost across the tropics, in Latin America, Africa and South-east Asia, and gained in much of Europe and Asia.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 327&quot; role=&quot;img&quot; aria-label=&quot;Annual change in forest area as a share of forest area: Forest is lost across the tropics, in Latin America, Africa and South-east Asia, and gained in much of Europe and Asia.&quot;&gt;&lt;defs&gt;&lt;pattern id=&quot;forest-change-h4&quot; class=&quot;hatch&quot; patternUnits=&quot;userSpaceOnUse&quot; width=&quot;4.5&quot; height=&quot;4.5&quot; patternTransform=&quot;rotate(45)&quot;&gt;&lt;rect width=&quot;4.5&quot; height=&quot;4.5&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;1&quot; y1=&quot;0&quot; x2=&quot;1&quot; y2=&quot;4.5&quot; stroke-width=&quot;0.55&quot;&gt;&lt;/line&gt;&lt;/pattern&gt;&lt;pattern id=&quot;forest-change-h5&quot; class=&quot;hatch&quot; patternUnits=&quot;userSpaceOnUse&quot; width=&quot;4.5&quot; height=&quot;4.5&quot; patternTransform=&quot;rotate(45)&quot;&gt;&lt;rect width=&quot;4.5&quot; height=&quot;4.5&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;1&quot; y1=&quot;0&quot; x2=&quot;1&quot; y2=&quot;4.5&quot; stroke-width=&quot;1.05&quot;&gt;&lt;/line&gt;&lt;/pattern&gt;&lt;pattern id=&quot;forest-change-h6&quot; class=&quot;hatch&quot; patternUnits=&quot;userSpaceOnUse&quot; width=&quot;4.5&quot; height=&quot;4.5&quot; patternTransform=&quot;rotate(45)&quot;&gt;&lt;rect width=&quot;4.5&quot; height=&quot;4.5&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;1&quot; y1=&quot;0&quot; x2=&quot;1&quot; y2=&quot;4.5&quot; stroke-width=&quot;1.55&quot;&gt;&lt;/line&gt;&lt;/pattern&gt;&lt;pattern id=&quot;forest-change-h7&quot; class=&quot;hatch&quot; patternUnits=&quot;userSpaceOnUse&quot; width=&quot;4.5&quot; height=&quot;4.5&quot; patternTransform=&quot;rotate(45)&quot;&gt;&lt;rect width=&quot;4.5&quot; height=&quot;4.5&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;1&quot; y1=&quot;0&quot; x2=&quot;1&quot; y2=&quot;4.5&quot; stroke-width=&quot;2.05&quot;&gt;&lt;/line&gt;&lt;/pattern&gt;&lt;/defs&gt;&lt;path class=&quot;none&quot; tabindex=&quot;0&quot; data-says=&quot;No data for this country.&quot; fill-rule=&quot;evenodd&quot; d=&quot;M68 26.4L68.5 25.8L69.6 27.9L72.7 27.9L73.8 29L81.2 29L82.2 30L83.3 29L84.9 29.5L69.6 43.8L68.5 43.8L64.3 49L62.2 48L58 48L56.9 46.9L54.8 46.9L52.7 49L49.6 49L49.6 48L52.2 47.4L52.2 46.4L50.6 45.9L45.3 49L43.2 49L40.1 52.2L35.8 53.2L35.3 52.7L36.4 51.7L34.8 51.1L33.7 53.2L32.7 51.1L30.6 50.1L29.5 51.1L29 50.6L30 49.6L26.9 48.5L28.5 45.9L35.8 42.7L36.9 43.8L38 42.7L41.1 42.7L44.8 39L42.2 38.5L41.1 39.5L36.9 39.5L36.9 37.4L40.1 37.4L41.1 36.4L47.4 36.4L47.4 32.2L55.9 30L59 27.9L60.1 29L61.1 27.9L66.4 27.9ZM332.6 29.5L333.1 29L334.7 30.6L334.7 32.7L337.9 36.9L338.9 42.2L341.1 44.3L339.5 44.8L337.4 48L332.1 48L331 49L327.3 46.4L327.3 43.2L328.4 41.1L332.6 38L329.5 35.8L329.5 32.7ZM69.1 51.7L72.2 51.7L70.6 53.2ZM284.1 53.8L284.7 53.2L286.8 55.3L287.8 54.3L288.3 54.8L287.3 56.9L294.7 65.4L294.1 68L291 68L289.9 69.1L286.2 68.5L287.3 67.5L285.7 66.9L285.2 66.4L286.2 65.4L284.1 64.3L286.8 63.8L288.3 62.2L283.1 55.9ZM409.6 60.1L412.2 59.6L414.3 62.7L416.4 61.7L419.6 63.8L423.8 62.7L432.2 69.1L435.4 69.1L436.5 70.1L438.6 69.1L442.8 72.2L446 72.2L446.5 72.7L444.4 73.8L445.4 75.9L443.8 76.4L442.8 75.4L441.2 77L441.2 80.1L438 81.2L438 83.3L440.2 85.4L440.2 86.4L439.6 87L438.6 85.9L432.2 85.9L431.2 84.9L429.1 84.9L428 85.9L423.8 85.9L422.8 88L421.7 88L419.6 90.1L417.5 90.1L417 88.6L412.2 83.8L409.1 83.8L408 84.9L401.7 81.7L399.6 79.6L395.3 80.7L393.8 82.2L394.8 84.3L394.3 88L393.2 87L391.1 88L389 85.9L388 85.9L385.3 83.3L389 81.7L389.6 79.1L388 77.5L385.9 77.5L384.8 76.4L381.6 78.5L381.1 77L376.9 73.8L376.9 71.7L377.4 71.2L378.5 72.2L379 69.6L380.6 68L385.9 68L389 70.1L392.2 70.1L393.2 69.1L395.3 69.1L396.4 70.1L400.6 70.1L401.1 67.5L399 66.4L400.1 64.3L399 63.3L402.7 61.7L403.8 62.7ZM295.7 69.6L296.2 69.1L305.2 73.8L305.2 75.9L303.1 78L303.1 79.1L305.2 81.2L304.2 82.2L305.7 83.8L306.8 80.7L308.9 80.7L313.1 78.5L315.2 79.6L316.3 78.5L316.8 79.1L314.7 81.2L314.7 84.3L316.3 84.9L319.4 89.1L321.6 89.1L324.2 91.7L322.6 93.3L318.4 90.1L316.3 90.1L315.2 88L312.6 87.5L312.6 85.4L310 82.8L307.8 82.8L304.7 85.9L303.6 84.9L301.5 85.9L300.5 84.9L297.3 87L295.2 87L294.1 85.9L293.1 87L291 85.9L290.4 85.4L291.5 84.3L291.5 81.2L290.4 80.1L290.4 78L288.9 76.4L285.7 75.4L285.2 73.8L285.7 73.3L286.8 74.3L289.9 74.3L292 72.2L294.1 72.2ZM317.9 69.6L318.4 69.1L321.6 71.2L323.7 71.2L324.7 73.3L326.8 72.2L327.3 73.8L324.7 75.4L322.6 72.2L321.6 73.3L320.5 72.2L317.3 72.2L315.8 70.6ZM76.4 73.8L123.3 73.3L124.4 74.3L130.7 75.4L131.8 76.4L134.9 76.4L136 75.4L139.2 78.5L140.2 78.5L141.8 81.2L141.8 84.3L137.6 88.6L139.2 90.1L142.3 90.1L145.5 88L147.6 88L149.7 85.9L152.9 85.9L157.1 82.8L163.4 82.8L165.5 81.7L168.7 77.5L170.3 79.1L168.7 82.8L163.4 84.9L161.8 86.4L161.3 89.1L159.2 90.1L156 90.1L152.9 94.4L150.8 94.4L148.1 97L148.1 102.3L135.5 111.8L134.4 113.9L133.9 126L132.8 126L131.3 123.3L131.3 120.2L132.3 119.1L131.3 117L129.7 115.4L127.6 116.5L124.4 114.4L122.3 115.4L120.2 114.4L114.9 118.6L113.9 116.5L108.6 116.5L106.5 118.6L103.3 119.7L100.2 124.9L98.6 123.3L98.6 121.2L95.9 116.5L92.8 116.5L90.7 117.6L89.1 113.9L86.4 111.2L83.3 111.2L82.2 112.3L77 112.3L75.9 111.2L73.8 111.2L71.7 109.1L67.5 109.1L62.7 105.4L62.7 103.3L60.6 101.2L61.7 100.2L61.7 93.8L60.6 92.8L62.7 91.7L63.8 87.5L68 83.3L71.2 75.9L71.7 75.4L73.8 77.5ZM323.1 82.2L323.7 81.7L327.3 84.3L325.8 85.9L323.1 83.3ZM551.9 83.3L552.4 82.8L555.6 84.9L557.7 84.9L558.8 83.8L559.3 84.3L556.7 88L555.6 87L553.5 87L552.4 89.1L550.9 87.5L550.9 86.4L553 85.4ZM276.7 89.6L277.3 89.1L279.9 90.7L277.8 93.8L278.9 98L277.3 99.6L275.7 97L275.7 94.9L276.7 93.8ZM399 89.6L402.7 89.1L404.8 91.2L406.9 91.2L408.5 93.8L412.2 96.5L416.4 97.5L417 98L414.9 100.2L413.8 102.3L414.3 102.8L415.4 102.8L417.5 99.6L423.8 100.7L424.3 99.1L422.2 99.1L423.3 98L422.2 95.9L425.9 95.4L426.4 95.9L425.4 98L427 98.6L428.6 101.2L427.5 102.3L428.6 103.3L428.6 105.4L426.4 106.5L428 109.1L430.7 104.4L429.6 103.3L430.1 101.7L435.4 100.7L440.2 104.4L436.5 104.9L435.4 103.8L433.8 105.4L433.8 107.5L435.9 110.7L435.9 114.9L433.8 119.1L432.2 120.7L431.2 119.7L428.6 123.3L431.7 127.6L431.2 128.1L427 129.1L423.8 126L415.4 127L414.9 126.5L418 123.3L414.9 119.1L422.2 117L416.4 116.5L415.4 117.6L413.3 116.5L412.7 114.9L413.8 113.9L410.6 110.7L410.1 108.1L409.6 111.8L411.7 113.9L410.6 117L415.9 122.3L415.9 123.3L413.8 124.4L413.3 127L411.2 126L410.1 127L409.1 126L406.9 126L403.8 121.8L399.6 123.9L397.5 121.8L394.3 120.7L390.1 115.4L388 115.4L386.4 113.9L386.4 111.8L381.1 107.5L381.1 105.4L382.2 104.4L381.1 102.3L379 101.2L378 97L378.5 96.5L379.5 97.5L380.6 96.5L382.7 96.5L384.8 97.5L385.9 99.6L388 99.6L391.1 101.7L395.3 100.7L400.1 98L397.5 97.5L395.3 98.6L394.8 95.9L392.7 93.8L392.7 92.8L394.3 92.2L395.3 90.1L396.4 91.2L398.5 91.2ZM329.5 90.7L330 90.1L332.1 92.2L334.2 91.2L336.8 91.7L334.7 92.8L336.8 97L335.3 100.7L331.6 94.9L331.6 92.8L329.5 92.8ZM555.1 90.7L555.6 90.1L556.1 92.8L558.2 93.8L558.2 99.1L560.3 101.2L559.3 102.3L560.3 104.4L555.6 104.9L553.5 107L551.4 104.9L547.2 106L546.1 107L545.6 105.4L547.2 103.8L551.4 103.8L551.9 101.2L556.1 98L556.1 93.8L554 91.7ZM309.4 92.8L310.5 92.8L310 94.4L308.4 93.8ZM428.6 95.9L430.1 95.4L431.7 97L430.1 99.6L429.1 99.6L427.5 97ZM317.9 98L318.4 97.5L321 99.1L319.4 99.6ZM369.5 101.2L370.6 101.2L370.6 105.4L365.8 109.1L361.6 110.2L361.1 109.6L363.2 107.5L362.1 103.3L363.7 101.7ZM406.9 100.7L406.4 101.2L408.5 102.3L409.1 108.1L409.6 106.5L412.7 104.4L410.1 102.8L409.1 100.7ZM543.5 108.6L545.1 108.1L547.7 109.6L546.1 112.3L543.5 109.6ZM316.8 109.6L317.3 109.1L321.6 111.2L322.6 113.3L326.8 114.4L330 116.5L332.6 113.9L331.6 111.8L334.2 110.2L338.4 112.3L340.5 112.3L341.1 112.8L340 113.9L341.1 114.9L340 116L341.1 117L341.1 128.6L342.6 130.2L343.2 123.3L342.1 122.3L342.1 113.9L343.7 112.3L346.9 114.4L350 114.4L351.1 113.3L353.2 113.3L354.2 114.4L358.4 114.4L360 116L360 120.2L359.5 120.7L356.3 116.5L355.8 119.1L357.9 121.2L360 126.5L362.1 128.6L362.1 131.8L363.2 132.8L362.7 134.4L344.7 134.4L343.7 133.4L341.6 134.4L341.1 138.1L337.9 139.2L340 143.4L340 147.6L336.8 150.8L336.8 157.1L337.9 159.2L336.3 159.7L334.2 162.9L330 163.9L329.5 165.5L326.8 167.1L324.2 166.6L324.2 164.5L323.1 163.4L324.2 162.4L324.2 158.1L321 151.8L321 150.8L324.2 147.6L324.2 143.4L325.2 142.3L324.2 140.2L325.2 138.1L324.2 137.1L323.1 132.8L326.3 131.8L322.6 131.3L320.5 132.3L312.6 126.5L312.6 113.9ZM427 109.1L424.9 112.3L422.8 112.3L421.2 113.9L421.7 115.4L423.8 113.3L425.9 113.3L427.5 111.8ZM365.3 110.7L366.9 110.2L366.9 112.3L370 112.3L374.3 114.4L377.4 117.6L379.5 118.6L383.8 118.6L385.9 120.7L390.1 122.8L391.7 126.5L393.8 126.5L392.7 128.6L394.8 130.7L394.8 131.8L396.4 133.4L399.6 133.4L402.2 134.9L402.2 138.1L401.1 139.2L401.7 139.7L403.3 139.2L403.3 136L404.3 134.9L403.3 133.9L403.3 130.7L404.8 129.1L405.9 131.3L409.1 131.3L409.6 132.8L411.7 133.9L409.6 136L409.6 137.1L407.5 138.1L407.5 140.2L404.8 143.9L399.6 146L398 142.3L401.1 140.2L398.5 139.7L396.9 141.3L398 147.6L394.3 150.2L392.2 150.2L388 153.4L385.9 153.4L382.7 156.6L380.1 155L380.1 150.8L379 149.7L380.1 147.6L380.1 144.4L379.5 143.9L378.5 146L374.8 142.3L375.8 141.3L374.8 139.2L371.6 137.1L369.5 130.7L366.4 127.6L365.3 124.4L361.1 119.1L363.7 118.6L367.4 114.9L366.4 112.8L364.8 112.3L364.2 113.9L365.3 114.9L362.7 117.6L362.1 117L362.1 111.8ZM266.2 123.3L274.1 122.8L274.6 124.4L269.9 124.9L268.3 126.5L268.3 129.7L266.2 131.8L265.7 135.5L260.4 135.5L259.9 134.9L260.9 133.9L260.9 131.8L264.1 128.6L264.1 126.5L266.2 124.4ZM401.1 128.6L402.2 128.6L401.7 132.3L396.9 131.8L397.5 130.2L399.6 130.2ZM531.9 128.6L532.4 128.1L534 129.7L532.4 132.3L530.8 130.7ZM326.8 132.3L326.3 132.8L327.9 134.4L329.5 133.9ZM330 134.4L330 135.5L333.1 136.5L335.3 138.6L337.9 138.1L332.1 134.4ZM496 137.1L496.6 136.5L500.2 139.2L499.2 140.2L500.2 142.3L499.7 142.9L496.6 142.9L495.5 143.9L495 143.4L496 140.2L494.4 139.7L493.9 138.1ZM150.2 140.2L151.8 139.7L153.4 141.3L150.8 142.9ZM394.3 140.7L393.2 141.8L390.1 141.8L388.5 144.4L389 145L391.1 142.9L395.3 142.9L395.9 141.3ZM382.7 143.9L381.1 145.5L381.6 146L385.9 146L386.9 147.1L388.5 145.5L383.8 145ZM502.4 144.4L502.9 143.9L507.6 149.7L506.6 151.8L508.7 155L502.9 160.8L500.2 158.1L500.2 153.9L506.6 152.9L505.5 151.8L505.5 148.7ZM534 144.4L537.1 144.4L536.1 150.8L538.2 152.9L537.7 153.4L536.6 153.4L534 149.7L535 147.6ZM367.4 146.5L370 146L370.6 148.7L372.2 149.2L372.7 150.8L372.2 151.3L371.1 150.2L367.9 150.2ZM291.5 151.8L292.6 151.8L295.7 158.1L298.4 158.7L299.9 161.3L297.3 163.9L295.2 158.7L292 158.7L291 159.7L289.9 158.7L288.9 159.7L286.8 159.7L284.7 161.8L283.1 161.3L283.1 158.1L286.8 154.4ZM262 157.1L263 157.1L262.5 158.7L260.9 158.1ZM265.1 158.1L269.9 157.6L270.9 158.7L274.1 158.7L275.7 161.3L275.7 165.5L274.1 166L270.9 161.8L267.8 161.8L265.7 163.9L263 160.2ZM287.3 161.3L292 160.8L292.6 164.5L293.6 165.5L293.6 170.8L288.9 174.5L287.3 172.9L287.3 168.7L288.3 167.6L288.3 163.4ZM357.9 161.3L358.4 160.8L360 162.4L359 167.6L361.1 168.7L363.2 172.9L365.8 175.5L370 177.6L375.8 177.1L374.8 179.2L374.8 186.6L375.8 187.7L375.8 189.8L372.2 194.5L366.9 189.2L363.2 187.7L362.1 185.6L365.3 180.3L364.2 179.2L364.2 177.1L361.6 174.5L357.4 176.6L356.3 175.5L355.3 176.6L353.2 174.5L349.5 175L352.1 175.5L354.8 178.2L354.8 180.3L352.7 182.4L352.7 184.5L351.6 185.6L352.7 187.7L350.5 191.9L351.6 192.9L351.6 200.3L353.7 203.5L351.1 204L349.5 205.6L350.5 207.7L349 211.4L345.8 211.4L341.6 209.3L338.4 209.3L337.9 210.9L339.5 211.4L340 213L335.8 215.1L335.8 222.4L337.9 224.6L329.5 224.6L330 226.1L333.7 227.7L334.2 232.5L336.3 227.2L342.6 227.2L348.4 236.2L345.3 239.3L345.3 240.4L343.2 241.4L342.6 243L337.4 243L335.3 245.1L332.6 241.4L332.1 237.7L331.6 249.9L328.9 251.4L326.8 249.3L324.7 249.3L323.1 247.8L322.1 236.2L316.8 225.6L328.4 224.6L320.5 224L319.4 223L317.3 224L316.8 223.5L317.9 217.2L321 213L320 210.9L321 209.8L320 208.7L320 202.4L318.9 200.3L320.5 198.7L326.3 199.3L325.8 197.7L323.1 197.1L325.2 195L326.3 190.8L328.4 188.7L330.5 184.5L329.5 183.4L329.5 181.3L330.5 180.3L330.5 177.1L331.6 175L333.1 174.5L336.3 176.6L338.4 176.6L344.7 173.4L345.8 174.5L349 174.5L349.5 172.9L346.3 170.8L346.3 168.7L343.2 165.5L343.2 163.4L344.7 162.9L345.8 163.9L352.1 163.9L354.2 162.9L355.3 163.9ZM268.3 163.4L270.4 163.4L270.4 166.6L268.8 169.2L267.3 166.6L267.3 164.5ZM276.7 163.4L286.2 163.4L287.3 165.5L286.2 166.6L286.2 169.7L285.2 170.8L286.2 171.8L285.7 173.4L284.7 172.4L281.5 172.4L280.4 173.4L277.8 172.9L277.8 170.8L276.7 169.7L276.7 165.5L277.8 164.5ZM454.9 164.5L455.4 163.9L457 165.5L457 167.6L458.1 168.7L456.5 170.3L454.9 169.7L454.9 166.6L453.9 165.5ZM546.6 164.5L547.7 164.5L547.7 167.6L545.1 170.3L543.5 166.6ZM529.8 169.7L530.3 169.2L532.9 172.9L531.3 174.5L527.7 174ZM500.2 171.8L501.3 171.8L500.2 172.9L501.3 174L501.3 177.1L503.4 180.3L501.8 181.9L501.3 180.3L499.7 179.8L497.1 176.1L497.1 174L496 172.9L497.6 172.4L498.7 173.4ZM184 172.9L184.5 172.4L187.1 175L185.6 178.7L184 178.2L184 176.1L182.9 175ZM524.5 176.1L526.6 176.1L524.5 179.2L524 181.9L522.9 180.8L520.8 180.8L519.8 181.9L517.1 181.3L518.7 180.8L519.8 178.7L521.9 178.7ZM326.8 199.8L326.3 202.4L327.9 204L331 204L332.6 202.4L331 201.9L328.9 202.9ZM333.1 200.8L333.1 201.9L336.8 203.5L335.8 206.6L337.4 208.2L337.9 202.4L336.3 200.8ZM560.3 213L568.8 213L565.6 216.1L564.6 219.3L566.1 221.9L567.2 221.9L572.5 226.1L574.6 226.1L577.2 222.4L577.2 220.3L578.3 219.3L577.2 217.2L579.3 213L579.8 212.4L581.4 214L581.4 218.2L583.5 219.3L583.5 223.5L585.6 224.6L584.6 225.6L584.6 228.8L588.8 233L588.8 236.2L590.9 237.2L590.9 239.3L593 240.4L592 241.4L594.1 243.5L593 245.6L593 249.9L589.9 256.2L580.4 264.6L581.4 265.7L579.8 266.2L575.6 271.5L573.5 272.5L571.4 271.5L568.2 273.6L567.2 273.6L566.1 271.5L565.1 271.5L563 273.6L558.8 272.5L558.2 270.9L559.3 269.9L559.3 267.8L557.2 265.7L559.3 261.5L556.7 260.9L554.5 263L553.5 263L551.4 258.8L549.3 257.8L546.1 257.8L545.1 256.7L542.9 256.7L538.7 258.8L535.6 258.8L530.3 262L524 262L518.7 265.1L515.5 265.1L514 263.6L517.1 260.4L517.1 256.2L516.1 255.1L518.2 253L517.1 250.9L517.1 246.7L518.2 245.6L518.2 239.3L519.2 237.2L524 233.5L527.1 233.5L530.3 231.4L533.5 231.4L534 229.8L535.6 229.3L538.7 225.1L541.4 224.6L542.4 221.4L544 220.9L546.1 217.7L549.3 217.7L550.3 219.8L553.5 219.8L554 217.2L556.1 215.1L556.1 214ZM390.6 216.1L393.8 216.1L392.7 217.2L390.6 228.8L388.5 231.9L386.4 240.4L383.8 243L381.6 243L380.1 241.4L380.1 238.3L379 237.2L382.2 230.9L381.1 225.6L382.2 223.5L385.9 221.9L387.4 219.3L390.6 217.2ZM181.9 256.2L182.4 255.7L186.6 257.8L189.2 260.4L188.7 264.1L184.5 264.1L181.9 262.5L181.9 259.3L180.8 258.3ZM562.4 279.4L563 278.9L564 279.9L567.7 280.4L561.9 284.1L561.4 282.5L562.4 281.5L561.4 280.4Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;band b0&quot; tabindex=&quot;0&quot; data-pick-of=&quot;0&quot; data-says=&quot;A loss of 1.5% or more of its forest a year.&quot; fill-rule=&quot;evenodd&quot; d=&quot;M275.7 124.4L277.3 123.9L281 126.5L279.9 127.6L279.9 133.9L281 134.9L281 145.5L282 146.5L282 148.7L274.1 149.2L273.1 150.2L270.9 150.2L269.9 149.2L267.8 150.2L264.6 147.1L260.4 147.1L260.9 138.1L259.9 137.1L266.7 136.5L267.3 132.8L269.4 130.7L269.4 126.5L275.2 126ZM122.8 151.8L124.9 151.8L124.9 156L122.3 159.7L120.2 159.7L117.6 156L119.1 153.4L121.2 153.4ZM357.9 177.1L361.6 176.6L363.2 178.2L363.2 182.4L361.1 184.5L360.6 187.1L354.2 187.1L353.7 183.4L355.8 181.3L355.8 178.2ZM361.1 209.8L362.1 209.8L362.1 216.1L364.2 218.2L364.2 221.4L362.7 223L362.1 218.2L359 216.1L360 214L360 210.9ZM172.4 229.8L174 229.3L176.1 230.4L177.6 233L177.6 236.2L181.3 236.7L182.9 238.3L182.9 240.4L185 241.4L185 245.6L182.4 248.3L180.3 248.3L178.7 246.7L179.8 243.5L178.2 242L172.9 239.8L169.2 236.2L169.2 231.9Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;band b1&quot; tabindex=&quot;0&quot; data-pick-of=&quot;1&quot; data-says=&quot;A loss of 1% to 1.5% of its forest a year.&quot; fill-rule=&quot;evenodd&quot; d=&quot;M314.7 132.8L319.4 132.3L321.6 133.4L322.1 136L324.2 138.1L324.2 140.2L323.1 141.3L323.1 146.5L320 149.7L320 152.9L318.4 154.4L316.3 154.4L315.2 153.4L314.2 154.4L306.8 154.4L302.6 152.3L299.9 155L299.4 157.6L297.3 155.5L296.2 155.5L294.7 153.9L294.7 151.8L296.2 150.2L299.4 150.2L301 148.7L302 146.5L302 142.3ZM391.7 159.2L395.9 159.2L394.8 160.2L394.8 164.5L391.7 171.8L389.6 174L387.4 178.2L377.4 187.1L375.8 185.6L375.8 180.3L376.9 179.2L376.9 177.1L382.7 173.4L384.8 173.4L385.3 171.8L389.6 167.6L388 166L385.9 166L381.6 163.9L379 161.3L380.6 159.7L381.1 161.3L382.7 161.8L383.8 160.8L388 160.8Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;band b2&quot; tabindex=&quot;0&quot; data-pick-of=&quot;2&quot; data-says=&quot;A loss of 0.5% to 1% of its forest a year.&quot; fill-rule=&quot;evenodd&quot; d=&quot;M484.4 122.3L485 121.8L486.5 123.3L486.5 125.5L485.5 126.5L485.5 130.7L486 131.3L487.1 130.2L489.7 132.8L489.7 134.9L491.8 136L491.8 137.1L487.6 140.2L487.6 144.4L488.7 146.5L490.8 147.6L489.2 150.2L488.7 147.6L487.1 146L485 147.1L483.9 149.2L482.3 147.6L482.3 144.4L481.3 142.3L479.2 140.2L479.2 139.2L477.1 138.1L477.1 134.9L478.1 133.9L478.1 131.8L480.2 129.7L480.2 126.5L481.3 125.5L480.2 124.4L481.8 122.8L482.9 123.9ZM344.2 134.9L364.8 134.4L366.4 136L366.4 141.3L368.5 144.4L366.4 145.5L366.4 147.6L365.3 148.7L366.4 149.7L365.3 150.8L365.3 155L361.6 160.8L360 160.2L360 157.1L358.4 156.6L356.9 158.1L357.9 159.2L355.3 161.8L353.2 160.8L351.1 162.9L346.9 162.9L344.7 160.8L343.7 160.8L342.1 163.4L341.1 163.4L340 159.2L337.9 157.1L337.9 153.9L338.9 152.9L338.9 150.8L341.1 149.7L341.1 140.2L343.2 139.2L343.2 136ZM302 155L304.7 154.4L305.7 155.5L310 155.5L311 156.6L313.1 155.5L319.4 155.5L321 157.1L318.9 161.3L318.9 163.4L316.8 165.5L316.8 167.6L315.2 169.2L314.2 168.2L312.1 169.2L308.9 174.5L305.7 174.5L302.6 170.3L298.9 169.7L298.9 165.5L301 162.4L299.9 161.3L301 160.2L301 158.1L299.9 157.1ZM487.6 174L489.2 173.4L491.3 174.5L493.9 177.1L493.9 178.2L496 179.2L496.6 180.8L498.7 180.8L502.4 184.5L502.4 186.6L504.5 188.7L504.5 189.8L507.6 191.9L506.6 192.9L506 197.7L501.3 195L501.3 194L498.1 190.8L496 185.6L493.9 183.4L493.9 181.3ZM527.7 176.1L530.3 175.5L530.8 176.1L529.8 177.1L531.9 180.3L531.9 183.4L530.8 184.5L530.8 186.6L528.7 188.7L527.7 192.9L525 193.5L521.9 191.3L520.8 192.4L517.6 191.3L515 187.7L515 183.4L515.5 182.9L516.6 184L518.7 184L519.8 182.9L525 182.9L526.6 181.3ZM132.3 183.4L133.9 182.9L137.1 185L139.7 185.6L138.6 189.8L134.9 191.3L132.8 195.6L131.3 195L131.3 190.8L129.1 189.8L129.1 187.7ZM355.8 187.7L359.5 187.1L363.7 189.2L371.6 196.1L370.6 199.3L371.6 200.3L371.6 205.6L373.7 208.7L373.2 209.3L369 210.3L367.9 211.4L364.8 211.4L360.6 206.1L357.4 205.1L354.8 202.4L352.7 198.2L353.7 197.1L352.7 196.1L354.2 195.6L355.8 192.9ZM559.3 187.7L563 187.1L564.6 189.8L564 190.3L563 189.2L560.9 189.2ZM535 188.7L540.3 188.7L539.3 189.8L540.3 191.9L539.8 194.5L538.2 192.9L537.7 190.3L535.6 192.4L534 191.9L535 190.8ZM570.9 189.8L573.5 189.2L578.3 192.9L578.3 197.1L577.2 198.2L577.2 201.4L578.3 202.4L576.7 204L575.6 202.9L573.5 204L571.9 203.5L574 201.4L574 199.3L570.4 195.6L566.1 194.5L564 192.4L563 193.5L561.4 191.9L565.1 191.3L567.2 193.5ZM507.6 200.3L511.3 199.8L513.4 200.8L514 202.4L513.4 202.9L512.4 201.9L509.2 201.9ZM516.1 201.4L518.7 200.8L522.4 203.5L518.7 204L517.6 202.9L515.5 202.9L515 202.4ZM372.7 210.9L373.7 210.9L373.7 213L374.8 214L373.7 220.3L361.1 230.9L362.1 231.9L362.1 234L363.2 235.1L362.1 236.2L363.2 237.2L362.1 238.3L362.1 240.4L360.6 242L357.4 243L356.3 245.1L355.8 243.5L356.9 242.5L356.9 240.4L355.8 239.3L355.8 235.1L357.4 234.6L359 231.9L359 222.4L355.3 220.9L354.8 219.3L359.5 217.7L361.1 219.3L361.1 222.4L363.7 224L364.2 219.3L365.3 218.2L363.2 216.1L362.1 213L369 212.4Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;band b3&quot; tabindex=&quot;0&quot; data-pick-of=&quot;3&quot; data-says=&quot;A loss of up to 0.5% of its forest a year.&quot; fill-rule=&quot;evenodd&quot; d=&quot;M250.4 6.3L253 5.8L254.1 9L263.6 9L264.6 10L265.7 9L269.4 11.6L267.8 12.1L264.1 16.9L265.1 17.9L264.1 20L262.5 21.6L260.4 21.6L257.8 24.2L259.9 26.4L256.2 26.9L253 31.1L249.9 31.1L248.8 32.2L243.5 32.2L242.5 34.3L238.3 36.4L234 36.4L231.9 37.4L226.7 42.7L225.1 43.2L225.1 45.3L222.4 48L215.1 46.9L214.5 43.2L212.4 41.1L212.4 34.8L218.8 29.5L215.1 29L214 30L213.5 28.5L218.8 27.4L215.6 25.3L215.6 21.1L211.9 17.4L201.4 17.4L200.8 16.9L202.9 15.8L201.9 14.8L203.5 13.2L206.6 13.2L207.7 12.1L208.7 13.2L211.9 10L215.1 10L219.3 7.9L221.4 7.9L222.4 9L230.9 9L231.9 7.9L234 9L235.1 7.9L237.2 9L238.3 6.9L239.3 7.9L240.4 6.9ZM193.5 7.4L194 6.9L195 7.9L197.1 7.9L198.2 6.9L201.4 6.9L202.4 7.9L203.5 6.9L209.8 6.9L210.3 8.4L208.7 10L207.7 9L203.5 11.1L197.1 11.1L184.5 17.4L183.4 16.3L181.3 17.4L177.6 15.8L180.3 15.3L181.3 16.3L181.9 13.7L183.4 13.2L184.5 11.1L190.3 10.5L182.4 10L181.9 9.5L183.4 7.9L187.7 9L188.7 7.9ZM174.5 10.5L180.3 10L181.9 11.6L177.1 14.2L176.1 13.2L172.9 14.2L172.4 13.7L174.5 12.7L172.4 11.6ZM168.2 16.9L169.7 16.3L170.8 18.4L174 18.4L174.5 20L171.8 20.6L170.8 19.5L168.7 19.5ZM146 17.9L147.1 17.9L146.5 19.5L143.9 19ZM157.6 17.9L159.7 17.9L158.1 19.5L156.6 19ZM122.8 21.1L124.4 20.6L125.5 21.6L127.6 21.6L127.6 22.7L123.3 23.7L120.2 25.8L115.4 25.3L117 23.7L119.1 23.7ZM160.8 22.1L163.9 22.1L159.2 24.8L158.7 24.2ZM141.8 23.2L142.9 23.2L142.9 28.5L144.4 29L144.4 30L142.3 29L141.3 31.1L140.2 30L134.9 30L133.9 31.1L132.8 30L131.8 31.1L125.5 31.1L123.9 29.5L129.1 28.5L126.5 26.9L124.9 25.3L125.5 24.8L127.6 24.8L128.6 23.7L130.7 23.7L131.8 24.8L134.9 23.7L137.1 24.8L138.1 23.7L138.6 24.2L137.6 25.3L139.2 25.8ZM152.3 23.2L155 22.7L155.5 24.2L153.9 25.8L150.8 25.8L150.2 25.3ZM169.2 23.2L169.7 22.7L171.8 24.8L172.9 24.8L176.1 22.7L178.2 22.7L178.2 25.8L180.3 25.8L181.3 24.8L185.6 24.8L186.6 26.9L192.9 27.9L193.5 29.5L191.3 31.6L192.9 33.2L195 33.2L197.7 35.8L194 38.5L191.9 35.3L190.8 36.4L189.8 35.3L188.2 38L191.3 41.1L188.7 42.7L186.6 40.6L185.6 40.6L185 41.1L186.1 43.2L183.4 43.8L181.3 42.7L179.2 39.5L177.6 39L179.2 38.5L180.3 36.4L183.4 35.3L184 32.7L178.2 27.9L176.1 29L170.8 29L169.7 27.9L166.6 27.9L166 25.3ZM156.6 26.4L158.7 26.4L157.6 30.6L159.2 32.2L161.3 31.1L161.3 34.3L165.5 33.2L167.6 30L172.4 30.6L169.7 34.3L165.5 36.4L164.5 35.3L162.4 35.3L157.1 39.5L150.8 40.6L148.7 42.7L146.5 42.7L143.4 45.9L140.2 46.9L137.6 50.6L139.7 52.7L138.6 53.8L140.2 55.3L144.4 56.4L148.7 59.6L152.9 59.6L153.4 60.1L151.3 62.2L151.3 66.4L152.9 68L155 68L157.6 65.4L158.7 61.1L162.4 59.6L166 55.9L166 53.8L165 52.7L168.2 48.5L169.2 45.3L177.1 44.8L177.6 46.4L179.8 47.4L179.8 49.6L178.7 50.6L181.3 53.2L183.4 53.2L187.7 50.1L189.2 51.7L189.2 53.8L190.3 54.8L189.2 58L194 60.6L194.5 62.2L196.6 63.3L196.6 64.3L192.9 68L191.9 66.9L190.8 68L188.7 68L186.6 70.1L177.1 69.1L166.6 75.4L165 77L164.5 80.7L162.4 81.7L155 81.7L151.8 84.9L147.6 84.9L146.5 87L143.4 87L142.3 88L141.8 86.4L143.9 82.2L141.8 78L136 74.3L128.6 74.3L124.4 71.2L123.3 73.3L75.9 73.3L74.3 70.6L71.2 68.5L72.2 66.4L71.2 64.3L71.2 61.1L74.3 59L74.3 56.9L73.3 55.9L74.3 52.7L72.7 49L68.5 50.1L66.9 47.4L68.5 46.9L73.8 40.6L74.9 40.6L87.5 30L88.6 30L90.7 32.2L91.7 31.1L94.9 31.1L95.9 30L102.3 30L103.3 29L105.4 30L107.5 29L111.8 31.1L113.9 29L117 31.1L119.1 31.1L122.3 34.3L123.3 33.2L124.4 34.3L127.6 34.3L128.6 33.2L130.7 34.3L132.8 32.2L134.9 32.2L136 31.1L137.1 33.2L139.2 33.2L140.2 34.3L141.3 33.2L142.3 34.3L145.5 34.3L147.6 32.2L148.7 32.2L149.2 32.7L148.1 33.7L149.7 34.3L150.8 33.2L152.9 33.2L154.4 31.6L153.4 28.5ZM323.1 31.6L323.7 31.1L327.9 33.2L328.4 33.7L327.3 34.8L328.4 35.8L326.8 36.4L320 44.3L320 47.4L322.1 49.6L320 51.7L320 55.9L317.3 57.5L315.2 57.5L311.5 51.7L313.6 48.5L312.6 47.4L313.6 46.4L311.5 44.3L316.8 36.9L316.8 34.8L318.4 33.2ZM160.8 39L162.4 38.5L165 40.1L159.2 41.6L158.7 41.1ZM308.4 61.1L308.9 60.6L312.1 62.7L315.2 61.7L317.9 65.4L317.9 67.5L313.6 70.6L315.8 72.7L315.2 75.4L307.8 75.4L307.3 72.7L304.2 70.6L305.2 64.3L306.8 63.8ZM466.5 67.5L467 66.9L468.1 68L470.2 68L471.3 70.1L473.4 70.1L474.4 71.2L477.6 71.2L478.6 70.1L485 73.3L487.1 72.2L488.1 73.3L490.2 73.3L493.4 71.2L495.5 71.2L498.1 72.7L498.1 74.9L499.7 76.4L502.9 76.4L503.9 75.4L505.5 77L498.7 81.7L495.5 81.7L495 82.2L497.1 84.3L495.5 87L490.2 87L488.1 89.1L486 88L482.9 88L481.8 87L471.3 87L468.1 83.8L463.9 81.7L458.6 80.7L454.4 75.4L449.6 73.8L449.6 72.7L451.2 72.2L452.3 70.1L457.6 70.1L458.6 71.2L461.8 71.2L463.9 72.2L465.5 70.6L464.4 68.5ZM299.9 68.5L301.5 68L303.1 69.6L299.4 70.1L298.9 69.6ZM69.1 70.6L70.6 70.1L72.2 72.7L70.6 73.3ZM191.3 71.7L192.9 71.2L194 72.2L197.1 72.2L197.7 72.7L196.6 73.8L197.7 74.9L197.7 77L197.1 77.5L196.1 75.4L195 76.4L192.9 75.4L188.7 76.4L188.2 74.9ZM176.6 72.7L177.1 72.2L177.6 73.8L175.5 75.9L175.5 79.1L179.8 81.2L172.9 84.9L172.4 84.3L175.5 81.2L171.8 80.7L171.3 77L170.3 75.9L171.8 74.3ZM328.4 74.9L330 74.3L331.6 75.9L330 78.5L325.8 79.6L323.1 78L323.7 76.4L325.8 76.4ZM369.5 87.5L372.2 87L373.2 88L376.4 88L376.9 89.6L373.2 90.1ZM531.9 88.6L532.9 88.6L532.9 91.7L530.8 94.9L533.5 97.5L537.1 99.1L539.3 103.3L537.7 104.9L535 104.4L535 103.3L532.9 101.2L534 100.2L532.9 98L529.2 97.5L528.7 94.9L526.6 92.8L528.2 90.1L530.3 90.1ZM305.2 100.2L305.7 99.6L308.4 101.2L308.4 104.4L306.3 107.5L310.5 112.8L310.5 116L311.5 117L311.5 124.4L310.5 125.5L311.5 127.6L315.8 130.7L310 134.4L306.8 137.6L305.7 137.6L304.7 139.7L302.6 139.7L301.5 140.7L299.4 139.7L298.9 140.2L298.9 141.3L301 143.4L301 145.5L298.4 149.2L296.2 150.2L295.2 149.2L294.1 150.2L289.9 150.2L283.1 155L280.4 160.8L277.3 160.8L274.1 156.6L272 157.6L270.4 156L269.4 153.9L269.4 150.8L280.4 150.2L283.1 148.7L282 147.6L282 137.1L281 136L281 128.6L282.5 128.1L286.8 131.3L287.3 129.7L282.5 126L279.4 124.9L278.9 123.3L275.7 121.2L275.7 120.2L279.4 117.6L282.5 117.6L287.8 112.3L289.9 112.3L291.5 110.7L290.4 109.6L290.4 106.5L289.4 105.4L291 102.8L292 103.8L297.3 100.7L298.4 101.7L300.5 100.7L302.6 101.7ZM373.7 100.2L374.3 99.6L375.3 100.7L377.4 100.7L380.1 103.3L380.1 105.4L379 106.5L385.3 112.8L385.3 114.9L386.4 116L385.9 116.5L383.8 117.6L379.5 117.6L379 116L375.3 114.4L374.3 112.3L368.5 110.7L368.5 108.6L372.7 105.4L372.7 101.2ZM68 110.7L69.6 110.2L72.2 111.8L70.1 112.8L70.1 118.1L73.3 124.4L72.7 129.1L72.2 125.5L68 122.3L70.1 120.2L66.9 114.9L68 112.8L66.9 111.8ZM73.3 112.8L74.9 112.3L75.9 113.3L84.3 113.3L85.4 112.3L90.7 118.6L91.7 118.6L93.8 116.5L96.5 119.1L97.5 124.4L100.7 126.5L98.6 130.7L98.6 136L99.6 137.1L100.7 141.3L102.3 142.9L104.4 143.9L106.5 142.9L109.6 142.9L112.3 141.3L112.3 139.2L114.9 136.5L119.1 136.5L119.7 137.1L118.6 138.1L118.6 140.2L116 142.9L110.2 144.4L110.2 146.5L111.8 148.1L112.3 146.5L111.2 145.5L113.3 145.5L113.3 151.8L109.6 153.4L108.1 150.8L110.7 149.2L110.7 148.1L108.6 148.1L106.5 150.2L104.4 148.1L100.2 148.1L99.1 149.2L95.9 147.1L93.8 147.1L88.6 142.9L86.4 142.9L82.8 139.2L83.8 137.1L83.8 132.8L77.5 125.5L78.5 124.4L73.3 117L74.3 116L73.3 114.9ZM450.7 117L453.3 116.5L459.7 120.7L464.9 121.8L465.5 123.3L462.8 123.9L459.7 121.8L458.6 122.8L457.6 121.8L455.4 121.8L453.3 119.7L451.2 119.7L449.6 118.1ZM468.6 126.5L469.1 126L470.2 128.1L471.3 127L473.9 127.6L473.9 129.7L471.3 134.4L467.6 128.6ZM287.8 131.3L287.3 131.8L288.9 133.4L289.9 133.4L296.2 138.6L296.8 138.1L295.2 135.5L294.1 135.5L291 132.3ZM489.7 140.2L492.3 139.7L495 142.3L493.9 143.4L494.4 145L496.6 143.9L497.6 145L499.7 142.9L504.5 150.8L500.8 151.3L497.6 155.5L495.5 153.4L494.4 153.4L493.4 155.5L492.9 152.9L490.8 150.8L491.8 149.7L491.8 147.6L488.7 143.4L488.7 141.3ZM260.9 147.6L261.5 147.1L262.5 148.1L264.6 148.1L267.3 150.8L268.3 152.9L267.8 156.6L266.7 155.5L264.6 155.5L264.6 153.4L262.5 152.3L260.4 153.4L258.8 151.8ZM115.4 149.7L123.9 149.7L122.3 150.2L121.2 152.3L119.1 152.3L118.1 153.4L114.4 151.8ZM368.5 152.9L373.2 152.3L375.3 154.4L376.4 154.4L376.9 160.2L380.1 163.4L380.1 164.5L385.9 166L387.4 167.6L383.8 173.4L380.6 173.4L377.4 175.5L375.3 174.5L373.2 176.6L370 176.6L367.9 174.5L366.9 174.5L366.4 172.9L361.1 167.6L362.1 165.5L362.1 161.3L364.2 159.2L366.4 153.9ZM151.3 159.2L151.8 158.7L153.9 159.7L156 161.8L160.2 161.8L161.3 162.9L165.5 160.8L170.3 165.5L168.2 169.7L168.2 171.8L171.3 176.1L170.3 178.2L171.3 179.2L171.3 181.3L172.9 182.9L174.5 182.4L172.4 180.3L172.4 174L170.3 172.9L170.3 169.7L171.3 167.6L172.9 167.1L177.1 173.4L178.2 172.4L182.9 172.9L181.9 174L182.9 175L181.9 176.1L182.9 177.1L180.8 179.2L182.4 180.8L185.6 180.8L188.7 176.6L189.2 180.3L191.3 182.4L189.2 184.5L192.9 186.1L194 188.2L197.1 187.1L198.2 188.2L200.3 188.2L202.4 191.3L211.9 192.4L217.2 196.6L220.3 196.6L221.9 200.3L221.9 204.5L217.7 209.8L216.7 213L213.5 217.2L214.5 219.3L214.5 222.4L213.5 223.5L213.5 228.8L211.4 231.9L211.4 235.1L207.7 237.7L204.5 237.7L197.7 242.5L197.7 244.6L196.6 245.6L196.6 250.9L194.5 255.1L191.3 258.3L190.8 260.9L188.7 257.8L182.9 254.1L182.9 252L187.1 247.8L186.1 245.6L188.2 244.6L186.1 242.5L186.1 240.4L184.5 239.8L181.3 235.6L178.7 235.1L178.7 233L177.6 231.9L177.6 229.8L178.7 228.8L178.2 226.1L176.1 229.3L169.7 229.3L168.2 231.9L167.6 235.6L166.6 234.6L165.5 235.6L163.4 234.6L160.8 235.1L165.5 237.7L167.6 236.7L170.8 239.8L175 240.9L178.7 244.6L177.6 245.6L178.2 248.3L180.3 248.3L181.3 249.3L183.4 248.3L184 248.8L179.8 254.1L179.8 256.2L180.8 257.2L179.8 258.3L179.8 263.6L184 267.8L184 272L181.3 273.6L178.2 273.6L176.1 274.6L176.1 278.9L171.3 279.4L171.3 280.4L173.4 282.5L173.4 284.7L172.4 285.7L173.4 286.8L170.3 288.9L170.3 291L174.5 294.1L171.3 300.5L172.4 302.6L171.8 303.1L168.7 303.1L163.9 298.4L165 296.2L163.9 295.2L163.9 288.9L162.9 287.8L162.9 285.7L160.8 283.6L160.8 280.4L158.7 278.3L159.7 277.3L159.7 272L158.7 270.9L158.7 268.8L159.7 267.8L158.7 265.7L159.7 264.6L158.7 263.6L159.7 262.5L156.6 257.2L157.6 255.1L156.6 252L158.7 248.8L158.7 243.5L157.6 242.5L160.8 239.3L160.8 236.2L160.2 235.6L159.2 236.7L156.6 231.9L156.6 229.8L154.4 225.6L155.5 223.5L154.4 221.4L154.4 218.2L153.4 218.2L152.9 226.1L150.8 226.1L149.7 224L146.5 223L143.4 219.8L142.3 219.8L139.7 217.2L139.7 215.1L137.6 213L133.4 203.5L129.1 199.3L129.1 196.1L128.1 195L129.7 194.5L131.8 196.6L132.8 196.6L134.4 194L137.1 191.3L138.1 191.3L141.3 187.1L142.9 186.6L141.3 185L137.1 184L133.4 181.3L136.5 177.1L136.5 167.6L137.6 165.5L139.2 165L140.7 161.3L143.4 159.7L146 160.2L145 161.3L145 164.5L146 164.5L146.5 161.8L148.7 165L150.2 163.4L149.2 160.2ZM321 160.2L321.6 159.7L323.1 161.3L321.6 161.8L321 163.4L323.1 165.5L323.1 168.7L322.1 169.7L322.1 175L324.2 178.2L324.2 179.2L322.1 180.3L324.7 181.9L326.3 180.3L326.3 178.2L323.1 174L323.1 170.8L324.2 168.7L328.9 168.2L332.1 165L334.2 165L337.4 160.8L340 162.4L340 165.5L341.6 166L346.3 171.8L342.6 173.4L339.5 173.4L337.4 175.5L333.1 173.4L330 174.5L328.9 176.6L327.9 175.5L326.3 177.1L329.5 178.2L328.4 180.3L328.4 186.6L325.2 188.7L325.2 190.8L322.6 195.6L320.5 194.5L319.4 195.6L318.4 194.5L317.3 195.6L316.8 194L317.9 192.9L316.3 191.3L315.2 193.5L314.7 191.9L313.1 191.3L310.5 187.7L313.1 182.9L316.3 182.9L316.8 181.3L318.4 180.8L318.9 182.4L321 183.4L321 189.8L320.5 190.3L318.4 189.2L316.8 190.8L321.6 191.3L323.1 188.7L322.1 186.6L322.1 182.4L320.5 179.8L317.3 179.8L316.3 178.7L314.2 179.8L310.5 174L313.1 170.3L316.3 170.3L317.9 168.7L317.9 166.6L320 164.5ZM491.8 164.5L493.4 163.9L495 165.5L495 167.6L497.1 169.7L496.6 170.3L495 169.7L493.9 166.6ZM127 165.5L129.7 165L130.2 166.6L128.6 167.1ZM146.5 165L146 168.7L147.6 169.2L148.1 168.7ZM271.5 167.6L273.1 167.1L274.6 170.8L277.8 172.9L276.2 174.5L274.1 173.4L272 170.3L270.4 169.7ZM151.8 169.2L151.8 171.3L155.5 171.8L154.4 174L155.5 176.1L154.4 178.2L155.5 180.3L150.2 181.3L151.3 183.4L150.2 185.6L151.8 187.1L153.4 183.4L152.3 182.4L152.9 181.9L156 181.9L158.1 184L159.7 183.4L156.6 179.2L156.6 170.8L152.9 170.3ZM176.1 173.4L174.5 175L175 176.6L176.6 175ZM162.4 175.5L162.4 179.8L163.4 176.6L167.1 176.1ZM176.1 176.6L176.1 178.7L177.6 177.1ZM177.1 178.7L176.6 180.3L174.5 181.3L175 181.9L179.8 181.3L179.8 179.2ZM162.4 180.8L159.7 182.4L162.4 182.9ZM143.4 187.1L142.9 188.7L144.4 190.3L145 188.7ZM147.6 189.2L145 190.8L149.7 191.3L150.2 191.9L148.1 195L150.8 195.6L152.3 194L151.3 192.9L152.3 191.9L152.3 189.8L151.8 189.2L149.7 190.3ZM579.3 192.9L580.9 192.4L582 193.5L584.1 193.5L589.9 199.3L589.9 201.4L592 203.5L593 206.6L595.1 207.7L591.4 208.2L589.9 206.6L588.8 203.5L586.2 201.9L583 202.9L580.9 206.1L578.8 205.1L578.3 201.4L579.3 200.3L579.3 196.1L578.3 194ZM146.5 195.6L145 197.1L145.5 198.7L148.1 196.1ZM351.6 205.6L355.3 205.1L360 208.7L359 210.9L360 211.9L359 213L357.9 217.2L355.3 217.7L347.4 224.6L347.9 226.1L352.1 221.9L355.3 221.9L359 224.6L356.9 228.8L357.9 230.9L354.2 235.6L351.1 235.6L348.4 233L348.4 231.9L346.3 230.9L344.2 226.7L341.6 224L339.5 224L337.9 222.4L337.9 215.1L341.6 214.5L342.6 211.4L345.8 213.5L349 213.5L349.5 215.1L352.1 216.7L353.7 215.1L353.7 214L350.5 211.9ZM146.5 207.2L146 207.7L147.6 209.3L150.2 207.7ZM158.1 207.2L157.6 207.7L160.8 209.8L161.3 213.5L167.6 216.7L169.7 216.7L171.3 219.3L172.4 219.3L172.4 217.2L170.8 215.6L168.7 215.6L164.5 213.5L161.8 210.9L161.3 207.2ZM156 208.2L151.8 210.3L150.8 209.3L150.2 209.8L150.8 211.4L153.4 211.9L153.9 214.5L155.5 214L154.4 211.9L157.6 208.7ZM171.8 220.9L171.8 223L174 223L176.1 225.1L176.6 224.6L176.1 221.9ZM344.7 225.1L344.2 225.6L345.8 227.2L347.4 226.7ZM349.5 237.2L354.8 237.2L354.8 243.5L352.7 245.6L352.7 246.7L354.2 248.3L356.9 248.8L355.8 250.9L354.2 251.4L345.8 260.9L343.7 262L339.5 262L338.4 263L336.3 262L335.3 263L330 264.1L328.4 262.5L328.4 257.2L325.2 250.9L325.8 250.4L327.9 252.5L328.9 251.4L330 252.5L331.6 250.9L331.6 247.8L333.1 246.2L335.3 247.2L338.4 244.1L342.6 245.1ZM347.9 250.4L345.3 253L345.8 255.7L347.9 255.7L350.5 253L350.5 252ZM176.6 308.9L177.1 308.4L178.7 310L177.1 310.5Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;band b4&quot; tabindex=&quot;0&quot; data-pick-of=&quot;4&quot; data-says=&quot;A gain of up to 0.5% of its forest a year.&quot; fill-rule=&quot;evenodd&quot; fill=&quot;url(#forest-change-h4)&quot; d=&quot;M410.6 10.5L413.3 10L414.3 11.1L418 11.6L413.3 12.1ZM307.3 12.7L316.3 12.1L316.8 13.7L314.2 16.3ZM423.3 12.7L424.3 12.7L423.8 14.2L422.2 13.7ZM428.6 15.8L430.1 15.3L434.4 17.4L439.6 16.3L440.7 17.4L446 18.4L446.5 19L443.3 21.1L447 22.7L457.6 22.7L458.6 23.7L466 23.7L467 22.7L470.2 22.7L471.3 23.7L473.4 23.7L476.5 26.9L478.6 26.9L479.7 27.9L481.8 27.9L482.9 26.9L492.3 26.9L492.9 25.3L495.5 23.7L496.6 24.8L502.9 24.8L503.9 25.8L507.1 25.8L511.3 27.9L515.5 27.9L516.6 26.9L517.6 27.9L519.8 27.9L520.8 26.9L529.2 31.1L530.3 30L535.6 30L536.6 31.1L538.7 30L539.8 31.1L544 32.2L546.1 29L557.7 31.1L559.8 33.2L567.2 37.4L567.7 40.1L573 43.2L571.4 43.8L567.2 48L565.1 46.9L561.9 49L558.2 49.6L559.3 53.8L563 54.3L564.6 56.9L564.6 59L566.7 62.2L565.6 64.3L566.7 67.5L566.1 68L565.1 65.9L559.8 62.7L559.3 61.1L555.1 58L554 53.8L555.1 52.7L555.1 47.4L556.1 46.4L554.5 45.9L552.4 42.7L550.9 44.3L550.3 46.9L549.3 46.9L547.2 44.8L544 44.8L542.9 51.1L540.8 51.1L538.7 49L536.6 49L534.5 51.1L533.5 50.1L528.2 50.1L527.1 51.1L526.1 50.1L523.4 53.8L523.4 55.9L521.3 60.1L527.1 62.7L532.4 62.7L537.1 65.4L537.1 68.5L539.3 69.6L541.4 73.8L541.4 81.2L540.3 82.2L540.3 84.3L538.7 85.9L534 85.4L532.9 82.2L535 81.2L535 79.1L534 78L534 74.9L532.4 73.3L529.2 75.4L527.1 75.4L524 72.2L521.9 71.2L518.7 71.2L513.4 65.9L507.1 62.7L500.2 63.3L500.2 65.4L501.3 66.4L500.8 71.2L498.7 70.1L492.3 70.1L491.3 72.2L490.2 71.2L489.2 72.2L486 72.2L479.7 69.1L476.5 69.1L474.4 70.1L472.3 69.1L471.3 66.9L467 66.9L466 65.9L463.9 65.9L463.3 69.6L461.8 71.2L460.7 71.2L458.6 69.1L455.4 69.1L454.4 68L448.1 72.2L444.9 70.1L443.8 71.2L439.6 68L434.4 68L433.3 66.9L431.2 66.9L423.8 60.6L419.6 62.7L417.5 60.6L414.3 60.6L412.2 58.5L409.1 58.5L408 59.6L404.8 59.6L403.8 60.6L399.6 60.6L397.5 61.7L397.5 68L388 68L386.9 66.9L381.6 65.9L379.5 66.9L377.4 70.1L376.4 69.1L375.8 69.6L374.8 71.7L375.8 72.7L374.8 73.8L376.4 76.4L378.5 76.4L380.1 78L376.9 83.3L380.1 86.4L380.1 87.5L382.2 88.6L381.6 89.1L379.5 89.1L377.4 87L374.3 87L370 84.9L365.8 84.9L363.7 82.8L361.6 82.8L361.1 81.2L364.2 75.9L364.2 71.7L361.6 70.1L361.1 71.7L363.2 72.7L363.2 74.9L359.5 76.4L357.4 78.5L356.3 77.5L356.3 81.7L354.2 81.7L352.1 78.5L349 78.5L347.9 77.5L345.8 78.5L343.7 77.5L343.2 77L345.3 75.9L341.6 73.3L340.5 74.3L338.4 74.3L338.4 76.4L340.5 75.4L342.1 77L344.2 83.3L335.8 84.3L337.4 85.9L339.5 85.9L340.5 84.9L344.2 85.4L340.5 90.1L339.5 89.1L337.4 89.1L336.3 90.1L334.2 87L330 85.9L328.4 84.3L328.4 81.2L327.3 80.1L328.9 79.6L331 81.7L332.6 77L334.2 75.4L336.3 76.4L336.8 74.9L333.7 73.8L333.1 70.1L332.1 71.2L328.9 71.2L327.9 72.2L319.4 68L317.9 64.3L319.4 61.7L323.7 60.6L324.7 61.7L331 61.7L332.6 63.3L332.6 66.4L334.2 70.1L335.8 69.6L334.7 68.5L336.3 66.9L338.4 66.9L339.5 68L340 67.5L339.5 65.9L334.2 65.9L333.7 65.4L334.7 63.3L336.8 61.1L335.3 60.6L333.1 61.7L329.5 58L334.2 57.5L336.3 58.5L337.4 60.6L338.4 58.5L342.1 58L339.5 55.3L338.4 57.5L336.3 57.5L333.7 55.9L334.2 54.3L336.3 55.3L338.9 54.8L338.9 50.6L340 49.6L338.9 47.4L343.2 44.3L341.1 40.1L338.9 38L340 36.9L337.9 34.8L337.9 32.7L335.8 31.6L336.3 31.1L338.4 30L341.6 30L342.6 31.1L346.9 31.1L347.9 32.2L353.2 33.2L353.7 34.8L352.1 36.4L345.8 35.3L344.7 34.3L343.2 35.8L346.9 40.6L351.1 41.6L352.1 39.5L354.2 40.6L355.8 39L354.8 38L355.3 37.4L357.4 36.4L359.5 37.4L361.6 35.3L363.7 36.4L365.8 34.3L370 32.2L372.2 32.2L373.2 33.2L375.3 32.2L380.6 32.2L381.6 33.2L383.8 30L385.9 30L386.9 31.1L395.3 33.2L395.9 31.6L394.3 30L391.1 29L389.6 26.4L391.1 23.7L393.2 23.7L399 29.5L399 30.6L401.1 32.7L401.1 35.8L402.7 37.4L405.4 34.8L405.4 32.7L401.1 29.5L401.1 28.5L399 26.4L399.6 25.8L400.6 26.9L401.7 26.9L403.8 24.8L405.9 25.8L409.1 25.8L409.6 25.3L406.9 23.7L406.9 22.7L413.3 22.7L413.3 19.5L417.5 19.5L420.7 17.4L421.7 18.4L423.8 18.4L424.9 17.4L428 17.4ZM479.2 17.9L481.8 17.4L484.4 19L481.8 19.5ZM371.6 19L375.8 19L374.3 19.5L370.6 24.2L370.6 25.3L372.7 26.4L372.2 27.9L370 25.8L367.4 25.3L367.4 23.2ZM327.3 28.5L331.6 28.5L330 31.1L327.9 30L324.7 30L324.7 29ZM334.7 28.5L335.3 27.9L336.8 29.5L336.3 30ZM25.8 32.7L27.4 32.2L29 33.7L26.9 35.8L27.4 36.4L29.5 36.4L30.6 35.3L32.2 35.8L30.6 37.4L27.4 37.4L25.3 39.5L23.2 39.5L21.6 35.8ZM359 32.7L359.5 32.2L361.1 33.7L359.5 34.3ZM315.8 33.7L316.8 33.7L315.8 35.8L310.5 42.2L312.6 48.5L311 50.1L303.6 52.2L302 50.6L302 44.3L307.8 41.6L313.6 35.8L313.6 34.8ZM332.6 51.7L336.3 51.1L337.9 52.7L334.2 53.2ZM329.5 54.8L330.5 54.8L330 56.4L328.4 55.9ZM307.3 55.9L308.9 55.3L310.5 56.9L306.8 58.5L306.3 58ZM343.7 57.5L343.2 58L344.2 60.1L347.4 63.3L344.7 66.9L342.1 67.5L345.8 68L346.9 66.9L351.1 65.9L351.1 64.8L348.4 64.3L349.5 63.3L345.3 59L345.3 58ZM303.1 63.3L304.2 63.3L304.2 65.4L301.5 66.9L301 64.3ZM538.2 64.3L538.7 63.8L539.3 65.4L541.4 66.4L539.8 66.9ZM353.2 66.9L353.2 69.1L357.4 71.2L360 70.6L358.4 69.1L356.3 69.1ZM543.5 70.6L545.1 70.1L545.6 71.7L545.1 72.2ZM320 73.8L322.1 73.8L321.6 77.5L315.8 77L317.3 74.3ZM306.3 77L307.8 76.4L310.5 78L305.7 79.6L305.2 78ZM322.1 80.1L323.7 79.6L324.2 81.2L323.7 81.7L322.6 80.7L320.5 81.7L320 81.2ZM332.1 81.7L331.6 83.3L333.1 83.8L335.3 87L335.8 85.4L334.7 83.3ZM276.7 86.4L288.9 85.9L292 88L295.2 88L296.8 89.6L292.6 92.8L291.5 94.9L292.6 95.9L291 98.6L289.9 98.6L287.8 100.7L283.6 100.7L281.5 101.7L279.9 99.1L279.9 93.8L282 89.6ZM310.5 100.2L311 99.6L312.6 102.3L312.6 105.4L311.5 106.5L314.7 109.6L313.1 112.3L312.1 112.3L308.4 108.6L308.4 106.5L309.4 105.4L309.4 101.2ZM282 104.4L287.8 104.9L289.4 107.5L289.4 109.6L281.5 116.5L277.3 117.6L275.2 120.7L270.9 120.7L270.4 120.2L274.6 117L274.6 114.9L273.6 113.9L274.6 111.8ZM440.2 105.4L441.7 104.9L443.3 106.5L445.4 113.9L448.6 116L448.6 118.1L451.2 120.7L455.4 122.8L458.6 122.8L460.7 124.9L464.9 124.9L467.6 127.6L466.5 128.6L468.6 132.8L468.6 133.9L465.5 136L465.5 138.1L461.8 139.7L460.2 143.4L452.8 149.7L453.9 156L452.8 157.1L452.8 161.3L450.2 165L447.5 163.4L447.5 161.3L444.4 157.1L443.3 151.8L439.1 143.4L439.1 139.2L438 137.1L436.5 135.5L435.4 136.5L433.3 136.5L430.7 133.9L431.7 132.8L428.6 130.7L432.2 130.2L433.8 128.6L430.7 122.3L434.4 120.7L435.9 117L438 114.9L437 113.9L439.1 110.7L437 109.6L435.9 106.5ZM476 119.1L480.7 118.6L483.4 121.2L480.2 123.3L479.2 125.5L479.2 128.6L476.5 131.3L474.9 130.7L476 128.6L474.4 127L471.3 127L469.7 125.5L469.7 124.4L471.8 123.3L467.6 122.3L470.2 120.7L472.3 121.8L473.4 123.9L473.9 121.2L475.5 120.7ZM131.3 132.8L132.8 132.3L133.9 133.4L136 133.4L142.9 139.2L142.3 139.7L140.2 138.6L136 134.4L133.9 134.4ZM623.6 270.9L624.1 270.4L626.2 272.5L628.9 273.1L627.3 274.6L624.1 274.6L623.6 276.2L619.9 278.9L619.4 278.3L620.4 277.3L619.4 276.2L622.5 274.1ZM613.1 280.4L614.1 280.4L613.6 282L605.1 286.2L599.9 290.4L597.8 291.5L595.1 291L595.1 289.9L598.8 287.3L600.9 287.3Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;band b5&quot; tabindex=&quot;0&quot; data-pick-of=&quot;5&quot; data-says=&quot;A gain of 0.5% to 1% of its forest a year.&quot; fill-rule=&quot;evenodd&quot; fill=&quot;url(#forest-change-h5)&quot; d=&quot;M276.7 62.2L279.4 61.7L281.5 62.7L282 64.3L280.4 65.9L278.3 65.9L276.7 64.3L277.8 63.3ZM500.2 64.3L507.1 63.8L515.5 69.1L518.7 72.2L520.8 72.2L527.1 76.4L529.2 76.4L531.3 74.3L532.9 75.9L532.9 78L534 79.1L534 80.1L530.8 82.2L530.8 83.3L532.9 85.4L529.2 89.1L527.1 89.1L522.9 94.4L521.9 94.4L519.8 91.2L517.6 91.2L517.1 92.8L512.9 95.9L519.8 100.7L520.8 99.6L523.4 100.2L520.3 104.4L525.6 109.6L525.6 110.7L528.7 113.9L528.7 116L530.8 118.1L530.8 119.1L528.7 121.2L528.7 124.4L526.6 128.6L519.8 133.4L517.6 133.4L512.4 136.5L511.3 136.5L509.2 134.4L507.1 134.4L503.4 139.2L502.9 141.8L501.3 140.2L502.4 139.2L497.1 134.9L497.6 133.4L500.8 133.4L502.4 131.8L500.8 131.3L499.7 132.3L496.6 132.3L493.9 133.9L495 134.9L494.4 135.5L493.4 134.4L491.3 134.4L486.5 128.6L487.6 122.3L485 119.7L482.9 119.7L480.7 117.6L476.5 117.6L473.4 120.7L471.3 119.7L463.9 120.7L456.5 117.6L454.4 115.4L452.3 115.4L451.2 114.4L450.2 115.4L445.4 111.8L446.5 109.6L445.4 107.5L431.7 94.9L433.3 92.2L435.4 93.3L436.5 91.2L438.6 91.2L441.2 88.6L440.2 82.2L443.3 80.1L442.3 79.1L442.8 77.5L446.5 77L446.5 74.9L448.1 73.3L450.2 75.4L455.4 77.5L456 80.1L457.6 81.7L459.7 82.8L461.8 81.7L466 83.8L470.2 88L472.3 88L473.4 87L474.4 88L480.7 88L481.8 89.1L485 89.1L486 90.1L488.1 90.1L491.3 88L495.5 88L498.1 84.3L497.1 83.3L497.6 82.8L501.8 81.7L503.9 78.5L508.7 78L508.2 76.4L503.9 74.3L502.9 75.4L500.8 75.4L499.2 73.8L499.7 72.2L503.4 70.6L502.4 69.6L502.4 65.4ZM395.9 82.2L400.6 81.7L406.9 85.9L408 84.9L409.1 85.9L413.3 85.9L414.3 89.1L421.2 92.8L419.1 94.9L421.2 97L421.2 98L419.6 99.6L417.5 96.5L415.4 96.5L413.3 94.4L409.1 92.2L408 90.1L404.8 90.1L402.7 87L399.6 87L399 88.6L397.5 89.1L395.9 86.4ZM342.1 89.6L343.7 89.1L344.2 90.7L342.6 91.2ZM353.7 89.6L358.4 89.1L361.6 91.2L369 91.2L371.1 90.1L375.8 93.8L375.8 98L374.3 99.6L373.2 98.6L372.2 99.6L367.9 99.6L366.9 100.7L364.8 99.6L363.7 100.7L358.4 100.7L357.4 101.7L354.2 101.7L353.2 100.7L349 101.7L347.9 100.7L345.8 100.7L343.2 97L343.2 93.8L347.9 91.2L352.1 91.2ZM502.9 132.3L502.4 132.8L505 135.5L505.5 133.9ZM510.8 140.2L512.9 140.2L511.3 142.9L509.7 141.3ZM508.7 149.7L509.2 149.2L511.8 152.9L511.8 158.1L506 163.9L504.5 161.3L509.7 157.1L509.7 150.8ZM120.7 161.3L123.3 160.8L124.9 163.4L124.4 163.9ZM153.4 226.7L154.4 226.7L155.5 228.8L155.5 233L157.6 237.2L159.7 239.3L157.6 241.4L157.6 247.8L155.5 250.9L156.6 255.1L155 257.8L154.4 246.7L153.4 245.6L154.4 243.5L154.4 239.3L153.4 238.3L153.4 234L154.4 233L153.4 231.9ZM155.5 259.3L156.6 259.3L158.7 263.6L157.6 264.6L157.6 272L158.7 273.1L157.6 275.2L158.7 276.2L158.7 280.4L157.1 283.1L155.5 280.4L156.6 279.4L155.5 277.3L156.6 275.2L154.4 272L154.4 268.8L155.5 267.8L155.5 265.7L154.4 264.6L155.5 263.6ZM159.7 284.7L160.2 284.1L162.9 287.8L162.9 295.2L163.9 296.2L162.9 297.3L162.9 299.4L167.6 304.2L170.3 304.7L169.7 307.3L165.5 305.2L159.7 298.4L159.7 296.2L158.7 295.2L159.7 294.1L159.7 292L157.6 292L158.7 289.9L157.6 287.8L159.7 286.8ZM172.4 306.8L174 306.3L174.5 307.8L178.7 311L177.1 311.5L176.1 310.5L171.8 309.4L171.3 308.9Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;band b6&quot; tabindex=&quot;0&quot; data-pick-of=&quot;6&quot; data-says=&quot;A gain of 1% to 1.5% of its forest a year.&quot; fill-rule=&quot;evenodd&quot; fill=&quot;url(#forest-change-h6)&quot; d=&quot;M257.8 36.9L259.3 36.4L260.4 37.4L262.5 37.4L264.6 36.4L265.7 37.4L266.7 36.4L268.8 36.4L270.4 39L264.6 41.6L261.5 41.6ZM425.4 87.5L425.9 87L428 88L429.1 87L438.6 87L439.1 88.6L434.4 92.2L432.2 92.2L430.1 94.4L427 94.4L426.4 93.8L428.6 91.7L428.6 90.7L424.9 90.1L424.3 88.6ZM379 90.7L379.5 90.1L381.6 91.2L382.7 90.1L385.3 92.8L385.3 93.8L383.8 95.4L382.7 94.4L379.5 94.4L378 91.7Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;b0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;1.5% or more lost&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;b1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;1% to 1.5% lost&lt;/li&gt;&lt;li data-pick=&quot;2&quot;&gt;&lt;i class=&quot;b2&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;0.5% to 1% lost&lt;/li&gt;&lt;li data-pick=&quot;3&quot;&gt;&lt;i class=&quot;b3&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;up to 0.5% lost&lt;/li&gt;&lt;li data-pick=&quot;4&quot;&gt;&lt;svg class=&quot;swatch&quot; viewBox=&quot;0 0 9 9&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;9&quot; height=&quot;9&quot; fill=&quot;url(#forest-change-h4)&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;up to 0.5% gained&lt;/li&gt;&lt;li data-pick=&quot;5&quot;&gt;&lt;svg class=&quot;swatch&quot; viewBox=&quot;0 0 9 9&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;9&quot; height=&quot;9&quot; fill=&quot;url(#forest-change-h5)&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;0.5% to 1% gained&lt;/li&gt;&lt;li data-pick=&quot;6&quot;&gt;&lt;svg class=&quot;swatch&quot; viewBox=&quot;0 0 9 9&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;9&quot; height=&quot;9&quot; fill=&quot;url(#forest-change-h6)&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;1% to 1.5% gained&lt;/li&gt;&lt;li data-pick=&quot;7&quot;&gt;&lt;svg class=&quot;swatch&quot; viewBox=&quot;0 0 9 9&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;9&quot; height=&quot;9&quot; fill=&quot;url(#forest-change-h7)&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;1.5% or more gained&lt;/li&gt;&lt;li&gt;&lt;i class=&quot;none&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;no data&lt;/li&gt;&lt;/ul&gt;&lt;figcaption&gt;Annual change in forest area as a share of forest area, by country: Our World in Data, from the UN FAO’s Forest Resources Assessment (CC BY). Traced from their map; a loss drawn solid, a gain hatched.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-69f0825&quot;&gt;We have a dramatic net loss of trees where the trees have a large mass, are mature, and vegetate year-round. In contrast, we have a net gain of trees where the trees have smaller mass, are not mature, and do not vegetate year-round. In other words, we rapidly lose the trees with the most carbon offsetting potential and gain trees with poor carbon offsetting potential.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p id=&quot;p-f492103&quot;&gt;Planting trees is not a viable solution for reducing carbon emissions as long as we keep cutting down trees with more carbon offsetting potential than the ones we are planting. Because it is virtually always the case — the practice being that mature trees are cut down and young trees are being planted — planting trees can’t be a viable way to reduce net carbon emissions in the atmosphere.&lt;/p&gt;
&lt;p id=&quot;p-944e11b&quot;&gt;Moreover, instead of moving towards sustainability, we are moving away from sustainability guided by a poor understanding of the matter, and the false sense of security resulting from planting trees.&lt;/p&gt;
&lt;p id=&quot;p-d916629&quot;&gt;We should definitely plant more trees than we cut, and we should do it in a locally relevant manner. In other words, if trees are cut down in Brazil, then new trees must be planted in Brazil. Not only that but if Sumaumeira trees are cut down, then Sumaumeira trees must be planted. Acting in such a way would address the problem of biodiversity, as well as other problems, but as we have shown above, it would still not help with reducing the net amount of carbon in the atmosphere.&lt;/p&gt;
&lt;p id=&quot;p-b02f26e&quot;&gt;More important still, is to protect all the natural, mature rainforests, and other major naturally occurring woodlands of the world.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;read-another-article-in-this-series&quot;&gt;Read another article in this series:&lt;/h2&gt;
&lt;ul&gt;
&lt;li id=&quot;p-d730b40&quot;&gt;Moving Towards Ecologically Sustainable Advertising: Introduction[&lt;a href=&quot;https://medium.com/art-technology/towards-ecologically-sustainable-advertising-d68840cf68c8&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-9190309&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Five Fives [&lt;a href=&quot;https://medium.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-five-fives-727dcfe99016&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-ba86b5a&quot;&gt;Moving Towards Ecologically Sustainable Advertising: The Actual Method [&lt;a href=&quot;https://medium.com/art-technology/moving-towards-ecologically-sustainable-advertising-the-actual-method-fc32fb52ad7&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;li id=&quot;p-48cf3d4&quot;&gt;How Much Does an Ad Impression Emit Carbon? [&lt;a href=&quot;https://medium.com/art-technology/how-much-does-an-ad-impression-emit-carbon-d31daea57184&quot;&gt;LINK&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-for-your-time-if-you-have-a-moment-more-please-share&quot;&gt;Thanks for your time! If you have a moment more, please share.&lt;/h2&gt;</content></entry><entry><title>New Rules of Advertising: Zero Data</title><link href="https://mikkokotila.com/writing/new-rules-of-advertising-zero-data/"/><id>https://mikkokotila.com/writing/new-rules-of-advertising-zero-data/</id><published>2021-03-31T00:00:00Z</published><updated>2021-03-31T00:00:00Z</updated><category term="advertising"/><category term="privacy"/><summary>Zero data does not mean “no data of any kind”, it just means “no data with risk”. Zero here refers to quantity, there is zero quantity. Data here refers to data that is in reference to a user.</summary><content type="html">&lt;h3 class=&quot;h-2&quot; id=&quot;zero-data-does-not-mean-no-data-of-any-kind-it-just-means-no-data-with-risk&quot;&gt;Zero data does not mean “no data of any kind”, it just means “no data with risk”.&lt;/h3&gt;
&lt;p id=&quot;p-f37750f&quot;&gt;&lt;strong&gt;Zero &lt;/strong&gt;here refers to quantity, there is zero quantity.&lt;/p&gt;
&lt;p id=&quot;p-46aec87&quot;&gt;&lt;strong&gt;Data &lt;/strong&gt;here refers to data that is in reference to a user.&lt;/p&gt;
&lt;p id=&quot;p-7934891&quot;&gt;&lt;strong&gt;Zero Data &lt;/strong&gt;means the absence of user data.&lt;/p&gt;
&lt;p id=&quot;p-aa481cb&quot;&gt;Design and engineering are the principal means through which &lt;strong&gt;Zero Data &lt;/strong&gt;is achieved.&lt;/p&gt;
&lt;p id=&quot;p-56f2a05&quot;&gt;&lt;strong&gt;Zero Data &lt;/strong&gt;advertising systems are designed in a way that eradicates dependency on user data.&lt;/p&gt;
&lt;p id=&quot;p-d43d822&quot;&gt;&lt;strong&gt;Zero Data &lt;/strong&gt;advertising systems are furthermore engineered in a way that prohibits user data from manifesting as a result of the system.&lt;/p&gt;
&lt;p id=&quot;p-c41f62e&quot;&gt;Such systems do not distinguish between personally identifiable and non-identifiable data.&lt;/p&gt;
&lt;p id=&quot;p-b46b04e&quot;&gt;Such a system does not distinguish between types of user data due to regulations, standards, or other factors.&lt;/p&gt;
&lt;p id=&quot;p-82406e8&quot;&gt;All data relating to IDs and handlers, groupings and cohorts, and any other data that can be connected back to such identifiers, is here considered user data.&lt;/p&gt;
&lt;p id=&quot;p-743f98f&quot;&gt;Therefore, &lt;strong&gt;Zero Data &lt;/strong&gt;refers to the complete absence of user data in a given advertising system.&lt;/p&gt;
&lt;p id=&quot;p-f2c3cfd&quot;&gt;There are two groups of &lt;strong&gt;Zero Data &lt;/strong&gt;advertising systems; where there is a guarantee, and where there is no guarantee.&lt;/p&gt;
&lt;p id=&quot;p-24b9dac&quot;&gt;&lt;strong&gt;Guaranteed Zero Data &lt;/strong&gt;systems commit to a computational guarantee.&lt;/p&gt;
&lt;p id=&quot;p-08b3ec6&quot;&gt;Regular &lt;strong&gt;Zero Data &lt;/strong&gt;systems use propriety code or 3rd-parties to deliver advertisements.&lt;/p&gt;
&lt;p id=&quot;p-455b587&quot;&gt;&lt;strong&gt;Guaranteed &lt;/strong&gt;systems initially achieve computational guarantees by delivering advertisements using unmodified open-source code.&lt;/p&gt;
&lt;p id=&quot;p-65f3cb1&quot;&gt;&lt;strong&gt;Guaranteed &lt;/strong&gt;systems can be readily audited, but a regular non-guaranteed system can not be audited.&lt;/p&gt;
&lt;p id=&quot;p-67202fc&quot;&gt;Even a &lt;strong&gt;Guaranteed &lt;/strong&gt;system will initially depend on trust in that it is actually using the open-source codebase in the running production system.&lt;/p&gt;
&lt;p id=&quot;p-b7f4a33&quot;&gt;Eventually &lt;strong&gt;Guaranteed Zero Data&lt;/strong&gt; will be solved cryptographically and will become trustless.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;three-levels-of-trust-in-zero-data-systems&quot;&gt;Three levels of trust in Zero Data systems&lt;/h3&gt;
&lt;p id=&quot;p-69df4de&quot;&gt;In all modes of advertising targeting where risk (with respect to user data) is present, trust is the key unsolved problem.&lt;/p&gt;
&lt;p id=&quot;p-2edacbf&quot;&gt;There will be three degrees of trust in &lt;strong&gt;Zero Data &lt;/strong&gt;advertising systems:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-8ce0331&quot;&gt;Non-guaranteed (blind trust)&lt;/li&gt;
&lt;li id=&quot;p-f333833&quot;&gt;Soft guaranteed (open-source delivery codebase)&lt;/li&gt;
&lt;li id=&quot;p-ed2a439&quot;&gt;Hard guaranteed (cryptographically sound trustless system)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-ec8dd1d&quot;&gt;3rd-party verification will be proposed as a solution, but it is not viable.&lt;/p&gt;
&lt;p id=&quot;p-5b0f158&quot;&gt;3rd-party verification is not viable, because there then arises the same trust problem with the verification party.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;is-zero-data-advertising-less-effective&quot;&gt;Is Zero Data advertising less effective?&lt;/h3&gt;
&lt;p id=&quot;p-1fdf10c&quot;&gt;&lt;strong&gt;Zero Data &lt;/strong&gt;does not make any argument about the value of user data, but instead makes an argument about the value of other things.&lt;/p&gt;
&lt;p id=&quot;p-2c2add0&quot;&gt;&lt;strong&gt;Zero Data&lt;/strong&gt; approaches emphasize creativity, interactivity, geography, context, and other relevant aspects of advertising.&lt;/p&gt;
&lt;p id=&quot;p-2a5911e&quot;&gt;Advertising budgets are finite. This means that when part of the budget goes to user data, it is away from somewhere else.&lt;/p&gt;
&lt;p id=&quot;p-b10d22a&quot;&gt;In &lt;strong&gt;Zero Data &lt;/strong&gt;advertising the objective is to find the most suitable targets for the part of the investment that is available (due to not being invested in user data).&lt;/p&gt;
&lt;p id=&quot;p-0bf8ddf&quot;&gt;&lt;strong&gt;Zero Data &lt;/strong&gt;advertising can be as effective (or not effective) as user data advertising.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-for-your-time-if-you-have-a-few-seconds-more-hit-that-clap-button-and-share-in-your-socials&quot;&gt;Thanks for your time! If you have a few seconds more, hit that clap button and share in your socials.&lt;/h2&gt;</content></entry><entry><title>New Rules of Advertising</title><link href="https://mikkokotila.com/writing/new-rules-of-advertising/"/><id>https://mikkokotila.com/writing/new-rules-of-advertising/</id><published>2021-03-09T00:00:00Z</published><updated>2021-03-09T00:00:00Z</updated><category term="advertising"/><summary>In 2012 I started saying to people that the (advertising) cookie will die. In 2022 it’s happening and it’s the single biggest thing to disrupt advertising in two decades.</summary><content type="html">&lt;p id=&quot;p-9e6e02e&quot; class=&quot;opening&quot;&gt;He is a kind man, he is always taking care of others. Without years of his generous mentorship, I think I still would not understand the way modern online advertising works. I debated with him the “death of the cookie” for the second and last time &lt;span class=&quot;nowrap&quot;&gt;in 2012.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-c626522&quot;&gt;I said, “the cookie will die”. He then replied…&lt;/p&gt;
&lt;blockquote id=&quot;p-2167700&quot;&gt;
&lt;p&gt;“Without the cookie, the whole industry will stop functioning. None of the things we are doing now would make any sense and we would no longer be able to do our jobs”.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;why-is-it-such-a-big-deal-if-the-cookie-goes-away&quot;&gt;Why is it such a big deal if the cookie goes away?&lt;/h3&gt;
&lt;p id=&quot;p-4ca6cc9&quot;&gt;The way the programmatic advertising eco-system works is that there are a lot of different systems serving different functions. There are thousands of companies operating such systems. These companies, for the most part, depend on the cookie directly or indirectly.&lt;/p&gt;
&lt;p id=&quot;p-83e9872&quot;&gt;&lt;strong&gt;For many companies, their business entirely depends on the cookie.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-6685af1&quot;&gt;&lt;strong&gt;For the great majority of companies, their business notably depends on the cookie.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-2f34dff&quot;&gt;&lt;strong&gt;The cookie is the single most ubiquitous thing in modern online advertising.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-cf9d9ef&quot;&gt;If there is a total block for cookie-based tracking right now, with the exception of the major platforms — such as Google and Facebook — most of the eco-system would cease to function, and virtually all of it would be adversely affected.&lt;/p&gt;
&lt;p id=&quot;p-229df7a&quot;&gt;These effects would be most visible through an instantaneous collapse in advertising effectiveness across all campaigns that are somehow dependent on the technology and services of the affected companies.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;what-is-the-current-status-of-cookie-era-advertising&quot;&gt;What is the current status of cookie-era advertising?&lt;/h3&gt;
&lt;p id=&quot;p-c603b14&quot;&gt;The cookie is going to die and the era will end.&lt;/p&gt;
&lt;p id=&quot;p-df79ecf&quot;&gt;Devices are already blocking the cookie.&lt;/p&gt;
&lt;p id=&quot;p-43fa042&quot;&gt;Browsers will soon all block it.&lt;/p&gt;
&lt;p id=&quot;p-1552df1&quot;&gt;Everything that the cookie makes possible for the programmatic advertising eco-system, will become hard or impossible.&lt;/p&gt;
&lt;p id=&quot;p-6252ae1&quot;&gt;Cookie was an exploit. It provided an expedient means for advertising systems to communicate with each other.&lt;/p&gt;
&lt;p id=&quot;p-23373a2&quot;&gt;This exploit will now be patched by Apple, Google, and others.&lt;/p&gt;
&lt;p id=&quot;p-0e08386&quot;&gt;Any company that depends on the cookie directly or indirectly, can no longer depend on it.&lt;/p&gt;
&lt;p id=&quot;p-e5ed040&quot;&gt;Any value such a company delivers to their customers today — depending on the cookie directly or indirectly — can no longer deliver it, or it will become hard to deliver it.&lt;/p&gt;
&lt;p id=&quot;p-195a49d&quot;&gt;Within two to three years the cookie is gone.&lt;/p&gt;
&lt;p id=&quot;p-0a1fca0&quot;&gt;With it, thousands of companies will be gone.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;what-happens-next-with-people-based-targeting&quot;&gt;What happens next with people-based targeting?&lt;/h3&gt;
&lt;p id=&quot;p-2868197&quot;&gt;As a direct response to the cookie’s demise, there are four different tracks of development, three corresponding to a method of targeting people, and one entirely avoiding it. These four are in addition to various walled-garden approaches, which are unaffected by the cookie’s end-of-life. Separate from these approaches are contextual and other means of targeting that are independent of the person (user).&lt;/p&gt;
&lt;p id=&quot;p-6981cee&quot;&gt;The four are:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-d92c4f5&quot;&gt;&lt;strong&gt;Circumventions&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-c54a6a4&quot;&gt;&lt;strong&gt;Cohorts&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-9090fce&quot;&gt;&lt;strong&gt;Zero-Knowledge&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-39738fc&quot;&gt;&lt;strong&gt;Zero Data&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-0e34005&quot;&gt;These four are all-pervasive; every media buy that leads to a delivered impression will fall into one of these categories of targeting.&lt;/p&gt;
&lt;p id=&quot;p-ee5587a&quot;&gt;The four targeting approaches can be evaluated against set criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-940efc4&quot;&gt;How much it will eat working media?&lt;/li&gt;
&lt;li id=&quot;p-f333387&quot;&gt;How much it will consume energy (and cause greenhouse gas)?&lt;/li&gt;
&lt;li id=&quot;p-d2e4c47&quot;&gt;How well will it be supported by browsers and devices?&lt;/li&gt;
&lt;li id=&quot;p-6f68eee&quot;&gt;How precisely it allows to target individuals?&lt;/li&gt;
&lt;li id=&quot;p-7ec9c31&quot;&gt;How can it be trusted by advertisers and people?&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-a4f0005&quot;&gt;&lt;strong&gt;Circumventions &lt;/strong&gt;are various approaches that focus on individuals, where means other than cookies are used to create profiles of individuals and households. Such ids can then be used for example on a limited number of publishers based on login information.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-a718734&quot;&gt;Cost similar to cookie-based approaches&lt;/li&gt;
&lt;li id=&quot;p-104d5a1&quot;&gt;Will consume a significant amount of energy&lt;/li&gt;
&lt;li id=&quot;p-99cc9ae&quot;&gt;Highly unlikely to receive support from browsers and devices&lt;/li&gt;
&lt;li id=&quot;p-564b43a&quot;&gt;Targeting precision will vary depending on the approach&lt;/li&gt;
&lt;li id=&quot;p-94d9f61&quot;&gt;Trust depends on propriety actors (e.g. advertising technology companies)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-7476d32&quot;&gt;&lt;strong&gt;Cohorts&lt;/strong&gt; are methods focused on grouping people. Cohort groups are generic enough or large enough, to provide guaranteed anonymity. Individuals are assigned &lt;em&gt;cohort-id&lt;/em&gt; which can then be used by an advertising system to target ads to all the people with that &lt;em&gt;cohort-id.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-a718734-2&quot;&gt;Cost similar to cookie-based approaches&lt;/li&gt;
&lt;li id=&quot;p-f324819&quot;&gt;Will consume negligible energy&lt;/li&gt;
&lt;li id=&quot;p-32009fe&quot;&gt;Highly likely to receive support from browsers and devices&lt;/li&gt;
&lt;li id=&quot;p-0d80651&quot;&gt;Targeting precision will be low to moderate&lt;/li&gt;
&lt;li id=&quot;p-bc76719&quot;&gt;Trust depends on open standards&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-a69de9a&quot;&gt;&lt;strong&gt;Zero-Knowledge &lt;/strong&gt;methods are focused on using crypto-economics and blockchain technology to provide guaranteed anonymity while allowing any level of individual targeting. Zero-knowledge approaches work on any platform where both the platform and the user of the platform have approved the use of their data for targeting.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-a718734-3&quot;&gt;Cost similar to cookie-based approaches&lt;/li&gt;
&lt;li id=&quot;p-bdb4aac&quot;&gt;Will depend on notable energy consumption&lt;/li&gt;
&lt;li id=&quot;p-06bf02d&quot;&gt;A moderate chance for receiving support from browsers and devices&lt;/li&gt;
&lt;li id=&quot;p-79249a5&quot;&gt;Unparalleled targeting precision&lt;/li&gt;
&lt;li id=&quot;p-f9dcd7a&quot;&gt;Trustless (i.e. complete confidence without 3rd-parties or standards)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-2e4dcf5&quot;&gt;&lt;strong&gt;Zero Data &lt;/strong&gt;methods are focused on entirely avoiding, by the means of system design and engineering, all forms of data associated with people. The methods entirely avoid any concern or risk with respect to user data and instead focus on other vectors of data.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-f2557c8&quot;&gt;Zero cost&lt;/li&gt;
&lt;li id=&quot;p-c435690&quot;&gt;Zero energy cost&lt;/li&gt;
&lt;li id=&quot;p-3fedd1a&quot;&gt;Guaranteed support from browsers and devices&lt;/li&gt;
&lt;li id=&quot;p-c57d751&quot;&gt;No targeting precision (targeting is prohibited by design)&lt;/li&gt;
&lt;li id=&quot;p-673481c&quot;&gt;Guaranteed trust*&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-98f0d30&quot;&gt;*Assuming the relevant parts of the code are maintained as open-source.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;word-of-advice&quot;&gt;Word of advice&lt;/h3&gt;
&lt;p id=&quot;p-ee59d57&quot;&gt;Follow these simple principles…&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-e470800&quot;&gt;Stay away from &lt;strong&gt;Circumvention&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-134fba4&quot;&gt;&lt;strong&gt;Cohorts &lt;/strong&gt;are easy to invest in but will deliver limited value&lt;/li&gt;
&lt;li id=&quot;p-4847801&quot;&gt;&lt;strong&gt;Zero Data &lt;/strong&gt;is a safe-haven in the short-term and a hedge for risk in the long&lt;/li&gt;
&lt;li id=&quot;p-ff4bcc9&quot;&gt;&lt;strong&gt;Zero-Knowledge &lt;/strong&gt;will take time to scale but will deliver the most value&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-c6018bb&quot;&gt;Eventually, an advertiser should split their media investment so that &lt;strong&gt;Cohorts, Zero-Knowledge, &lt;/strong&gt;and &lt;strong&gt;Zero Data &lt;/strong&gt;investments are each present and not less than 10% of the sum of the three.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thanks-for-your-time-if-you-have-a-few-seconds-more-hit-that-clap-button-and-share-in-your-socials&quot;&gt;Thanks for your time! If you have a few seconds more, hit that clap button and share in your socials.&lt;/h2&gt;</content></entry><entry><title>What Can COVID-19 Forecasters Learn from Pascal’s Wager</title><link href="https://mikkokotila.com/writing/what-can-covid-19-forecasters-learn-from-pascals-wager/"/><id>https://mikkokotila.com/writing/what-can-covid-19-forecasters-learn-from-pascals-wager/</id><published>2020-04-11T00:00:00Z</published><updated>2020-04-11T00:00:00Z</updated><category term="data-science"/><summary>In this article, we analyze a forecast that locked down a nation and show how easy to make small mistakes in modeling lead to big problems in outcomes.</summary><content type="html">&lt;h2 class=&quot;h-1&quot; id=&quot;in-this-article-we-analyze-a-forecast-that-locked-down-a-nation-and-show-how-easy-to-make-small-mistakes-in-modeling-lead-to-big-problems-in-outcomes&quot;&gt;In this article, we analyze a forecast that locked down a nation and show how easy to make small mistakes in modeling lead to big problems in outcomes.&lt;/h2&gt;
&lt;p id=&quot;p-ae4e932&quot; class=&quot;opening&quot;&gt;In this analysis, we will work to validate an Intensive Care Unit (ICU) peak burden forecast. The forecast is made by national health officials. Such forecasts play a prominent role in time-constrained policy decisions that try to balance between complete societal paralysis and unnecessary loss of human life. Scrutiny of every parameter value, model, and figure is of the utmost importance. Only with scrutiny, sound decisions can be made based on data &lt;span class=&quot;nowrap&quot;&gt;and modeling.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-a8889ae&quot;&gt;We will use the Finnish health authority — THL — and their ICU peak burden forecast as an example. Everything in the article can be applied to other similar forecasts.&lt;/p&gt;
&lt;p id=&quot;p-a7aaa51&quot;&gt;We have made all findings, materials, and the codes allowing straightforward reproduction of the results available. You can find the link at the end of the post.&lt;/p&gt;
&lt;p id=&quot;p-cff532e&quot;&gt;In this report, we conclude the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-6b153a9&quot;&gt;When we correct THL’s model parameters to accord with empirical evidence, otherwise keeping the model exactly as it is, we find 45% error in the published forecast&lt;/li&gt;
&lt;li id=&quot;p-4237ea8&quot;&gt;THL’s model assumes a curve that is already notably behind empirical time-series data&lt;/li&gt;
&lt;li id=&quot;p-b81ac85&quot;&gt;THL’s model is based on exponential growth every 23 days, where the growth rate is closer to 10 days based on evidence&lt;/li&gt;
&lt;li id=&quot;p-1fdbc89&quot;&gt;Using a Monte Carlo simulation in an effort to reproduce THL’s forecast, we find a limited number of scenarios where the outcome is possible&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-05c39bb&quot;&gt;Empirical evidence, comparable methods, and the apparent error in the assumptions of THL’s model show that it is unlikely that the forecasted ICU peak burden is realistically achievable. Even though in this report, we don’t present alternative forecasts, we conclude that using the methods we have published[&lt;a href=&quot;https://github.com/autonomio/trauma-team-international/tree/master/icu_burden&quot;&gt;1&lt;/a&gt;], it is easy to observe that higher ICU peak burden is likely. More than enough to beg an important question.&lt;/p&gt;
&lt;blockquote id=&quot;p-df35c60&quot;&gt;
&lt;p&gt;How would a higher number change the decisions that already been made based on the lower number?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-3502ba1&quot;&gt;The simulations we have performed are based on the Monte Carlo method and are easy to understand even for someone with no formal statistical training. Using the simpler version[&lt;a href=&quot;https://github.com/autonomio/trauma-team-international/blob/master/icu_burden/icu_burden_snapshot.py&quot;&gt;2&lt;/a&gt;], we have gone through a large number of possible scenarios by changing &lt;em&gt;doubles_in_days, max_patient_capacity, &lt;/em&gt;and &lt;em&gt;case_fatality_rate&lt;/em&gt; input parameters. We have verified the results with a more elaborate[&lt;a href=&quot;https://github.com/autonomio/trauma-team-international/blob/master/icu_burden/icu_burden_simulator.py&quot;&gt;3&lt;/a&gt;], also Monte Carlo based simulator that allows many more input parameters and separates standard ICU burden from ventilated ICU burden.&lt;/p&gt;
&lt;p id=&quot;p-e394610&quot;&gt;In a 20–day simulation, we find that roughly half of the possible scenarios end up in a loss of life due to there being more demand for ICU than there is capacity.&lt;/p&gt;
&lt;figure class=&quot;fig columns&quot; data-fig=&quot;columns&quot; aria-label=&quot;Scenarios of the simulation by the number of days on which patients die for lack of intensive-care capacity: most under 2.6 days, a few up to 13&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;In most scenarios, intensive care runs short on fewer than 2.6 days; in about 50 of some 1,600, on 10.4 to 13 days.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 320&quot; role=&quot;img&quot; aria-label=&quot;When intensive care runs out: 0 to 2.6 days: about 990 scenarios, 62% of them; 2.6 to 5.2 days: about 310 scenarios, 19% of them; 5.2 to 7.8 days: about 130 scenarios, 8% of them; 7.8 to 10.4 days: about 120 scenarios, 8% of them; 10.4 to 13 days: about 50 scenarios, 3% of them&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;270.0&quot; y2=&quot;270.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;274.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;222.0&quot; y2=&quot;222.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;226.0&quot; text-anchor=&quot;end&quot;&gt;200&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;174.0&quot; y2=&quot;174.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;178.0&quot; text-anchor=&quot;end&quot;&gt;400&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;126.0&quot; y2=&quot;126.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;130.0&quot; text-anchor=&quot;end&quot;&gt;600&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;78.0&quot; y2=&quot;78.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;82.0&quot; text-anchor=&quot;end&quot;&gt;800&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;30.0&quot; y2=&quot;30.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;34.0&quot; text-anchor=&quot;end&quot;&gt;1,000&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;68.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;160.3&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;2&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;252.6&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;4&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;344.9&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;6&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;437.2&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;8&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;529.5&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;10&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;621.8&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;12&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;270&quot; y2=&quot;270&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;368&quot; y=&quot;314&quot; text-anchor=&quot;middle&quot;&gt;days on which patients die for lack of capacity&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;68&quot; y=&quot;20&quot;&gt;scenarios&lt;/text&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:0&quot; data-says=&quot;0 to 2.6 days: about 990 scenarios, 62% of them&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;68.0&quot; y=&quot;30.0&quot; width=&quot;120.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;68.5&quot; y=&quot;31.7&quot; width=&quot;119.0&quot; height=&quot;238.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:1&quot; data-says=&quot;2.6 to 5.2 days: about 310 scenarios, 19% of them&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;188.0&quot; y=&quot;30.0&quot; width=&quot;120.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;188.5&quot; y=&quot;194.9&quot; width=&quot;119.0&quot; height=&quot;75.1&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:2&quot; data-says=&quot;5.2 to 7.8 days: about 130 scenarios, 8% of them&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;308.0&quot; y=&quot;30.0&quot; width=&quot;120.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;308.5&quot; y=&quot;238.1&quot; width=&quot;119.0&quot; height=&quot;31.9&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:3&quot; data-says=&quot;7.8 to 10.4 days: about 120 scenarios, 8% of them&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;428.0&quot; y=&quot;30.0&quot; width=&quot;120.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;428.5&quot; y=&quot;240.2&quot; width=&quot;119.0&quot; height=&quot;29.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:4&quot; data-says=&quot;10.4 to 13 days: about 50 scenarios, 3% of them&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;548.0&quot; y=&quot;30.0&quot; width=&quot;120.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;548.5&quot; y=&quot;258.0&quot; width=&quot;119.0&quot; height=&quot;12.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;figcaption&gt;Scenarios of the 20-day Monte Carlo simulation, by the number of days on which patients die for lack of intensive-care capacity. Values read from the chart in the original, to within a few scenarios.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-2cf6b6a&quot;&gt;Detailed results for the simulation are outside the scope of this article and we will release it within two weeks from now in a separate article.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;what-is-a-good-data-driven-decision&quot;&gt;What is a Good Data-Driven Decision?&lt;/h2&gt;
&lt;p id=&quot;p-8b1d114&quot;&gt;There are many ways to use available information to support decision-making; based on data based on current understanding (theory) and based on intuition. Decisions that are based on data can be based on recent events or historical trends. When we use data, either historical or current, the goal is to use that data to say something about the future. When theory, intuition, and data all say the same thing, it can give credibility to the forecast or finding. The finding must be reproducible; otherwise, it must be considered an error. Even if the finding otherwise meets the criteria of credibility, unless it can be reproduced, only low confidence is warranted&lt;/p&gt;
&lt;p id=&quot;p-9a3acf7&quot;&gt;Still, we have to keep in mind that even when a finding has credibility, it does not mean that we can predict the future. We can try, and sometimes we get it right, but we can never use history to say something about the future certainly. The only available tool to say things about the future certainly is “a valid inference,” a tool used in philosophy. For example, we can certainly say that whenever there is combustion, there will be some heat. But as data scientists, we do not have that kind of luxury. We always work with probabilities and distributions. Never with certainties. This is a subtle but very important point in our field of work.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;pascals-wager&quot;&gt;Pascal’s Wager&lt;/h2&gt;
&lt;figure class=&quot;figure drawn&quot; data-drawn=&quot;&quot;&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/ab8e00b063bdf6e0.png&quot; alt=&quot;Portrait of Blaise Pascal&quot;&gt;&lt;figcaption&gt;SOURCE: Wikimedia&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-e0bc322&quot;&gt;The father of the probabilistic method, Blaise Pascal, developed statistics to answer the question if God exists. After years of working on the problem, Pascal ended up concluding that even though the probability of God existing is very small, one should not take the risk of living a life of unvirtue. This is called “Pascal’s Wager,” and it is a key tenet in applying the probabilistic method. Particularly in relation to the responsibility we have in presenting the findings of our work. “Pascal’s Wager” applies to all critically important predictions, where for example loss of human life is a result of forecasting error. A meaningful way to present findings is one where a balance between the probabilities and the caveats associated with the method always go together. But particularly in the presentation phase.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-importance-of-empirical-evidence&quot;&gt;The Importance of Empirical Evidence&lt;/h2&gt;
&lt;p id=&quot;p-db1095a&quot;&gt;Modeling must be underpinned by empirical evidence. Regarding COVID-19, in many areas, we are in a situation where available data paints a meaningful picture of the problem. Below we provide a summary of the available evidence we used in this report, and which can be helpful in modeling ICU peak burden. All figures are based on the most recent data available for Finland. Most countries make similar data available.&lt;/p&gt;
&lt;p id=&quot;p-68e5900&quot;&gt;&lt;strong&gt;How common is the virus?&lt;/strong&gt;&lt;br&gt;
Roughly 6% of all tested cases are positive.&lt;/p&gt;
&lt;p id=&quot;p-cb1c974&quot;&gt;&lt;strong&gt;How many of those that tested positive require hospitalization?&lt;/strong&gt;&lt;br&gt;
More than 10% of all that tested positive require hospitalization.&lt;/p&gt;
&lt;p id=&quot;p-17bcb29&quot;&gt;&lt;strong&gt;How many of those hospitalized require ICU?&lt;/strong&gt;&lt;br&gt;
Roughly 40% of those hospitalized require intensive care.&lt;/p&gt;
&lt;p id=&quot;p-516e472&quot;&gt;&lt;strong&gt;How many in the ICU require ventilation?&lt;/strong&gt;&lt;br&gt;
Based on the available literature, we estimate it to be between 55%[&lt;a href=&quot;https://www.thelancet.com/journals/lanres/article/PIIS2213-2600(20)30110-7/fulltext&quot;&gt;4&lt;/a&gt;] and 65%[&lt;a href=&quot;https://www.bmj.com/content/368/bmj.m1201&quot;&gt;5&lt;/a&gt;]&lt;/p&gt;
&lt;p id=&quot;p-2bd2e93&quot;&gt;&lt;strong&gt;What is the duration of ICU stay?&lt;/strong&gt;&lt;br&gt;
Depending on the source, we estimate it to be between 7–12[&lt;a href=&quot;https://www.hiqa.ie/sites/default/files/2020-04/Evidence-summary_Covid-19_average-LOS-in-ICU.pdf&quot;&gt;6&lt;/a&gt;][&lt;a href=&quot;https://www.msn.com/en-us/weather/video/covid-19-questions-%E2%80%9Chow-long-is-the-average-patient-staying-in-the-icu/vp-BB11VAZz&quot;&gt;7&lt;/a&gt;] days mean duration. We note that the lower numbers are possibly due to accelerated mortality as a consequence of capacity issues. We find that among influenza patients, ICU stays historically last 12 days[&lt;a href=&quot;https://mimic.physionet.org/&quot;&gt;8&lt;/a&gt;] mean duration.&lt;/p&gt;
&lt;p id=&quot;p-1300b2f&quot;&gt;&lt;strong&gt;How many ICU patients are there currently?&lt;/strong&gt;&lt;br&gt;
As of the 6th of April, 2020, there are 81 ICU patients.&lt;/p&gt;
&lt;p id=&quot;p-703bdd0&quot;&gt;&lt;strong&gt;What is the growth factor of the ICU burden at the moment?&lt;/strong&gt;&lt;br&gt;
Roughly 50% per week.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;critically-evaluating-already-made-forecast&quot;&gt;Critically Evaluating Already Made Forecast&lt;/h2&gt;
&lt;p id=&quot;p-7be8a07&quot;&gt;THL has presented that the ICU burden peak will be less than 300. The peak is forecasted to take place on week 9 of the curve. Finnish politicians, including the Prime Minister, have repeatedly referred to THL’s forecast driving various measures, such as social distancing. THL’s model assumes as its starting point roughly 60 ICU patients, and a doubling rate of almost four weeks.&lt;/p&gt;
&lt;figure class=&quot;fig areas&quot; data-fig=&quot;areas&quot; data-box=&quot;68.0,666.0&quot; data-ys=&quot;[[218.2,202.3,180.2,154.1,126.2,99.1,75.4,57.6,48.5,50.2,60.2,77.5,99.6,124.1,148.1,169.7,187.9,201.8],[253.4,248.6,241.7,234,225.4,216.5,208.6,201.6,197.5,197.5,201.1,206.9,213.8,221.5,229.2,236.4,242.6,247.9]]&quot; data-says=&quot;[&amp;#x22;Week 1: about 220 in hospital, about 70 in intensive care.&amp;#x22;,&amp;#x22;Week 2: about 280 in hospital, about 90 in intensive care.&amp;#x22;,&amp;#x22;Week 3: about 370 in hospital, about 120 in intensive care.&amp;#x22;,&amp;#x22;Week 4: about 480 in hospital, about 150 in intensive care.&amp;#x22;,&amp;#x22;Week 5: about 600 in hospital, about 190 in intensive care.&amp;#x22;,&amp;#x22;Week 6: about 710 in hospital, about 220 in intensive care.&amp;#x22;,&amp;#x22;Week 7: about 810 in hospital, about 260 in intensive care.&amp;#x22;,&amp;#x22;Week 8: about 890 in hospital, about 290 in intensive care.&amp;#x22;,&amp;#x22;Week 9: about 920 in hospital, about 300 in intensive care.&amp;#x22;,&amp;#x22;Week 10: about 920 in hospital, about 300 in intensive care.&amp;#x22;,&amp;#x22;Week 11: about 870 in hospital, about 290 in intensive care.&amp;#x22;,&amp;#x22;Week 12: about 800 in hospital, about 260 in intensive care.&amp;#x22;,&amp;#x22;Week 13: about 710 in hospital, about 230 in intensive care.&amp;#x22;,&amp;#x22;Week 14: about 610 in hospital, about 200 in intensive care.&amp;#x22;,&amp;#x22;Week 15: about 510 in hospital, about 170 in intensive care.&amp;#x22;,&amp;#x22;Week 16: about 420 in hospital, about 140 in intensive care.&amp;#x22;,&amp;#x22;Week 17: about 340 in hospital, about 110 in intensive care.&amp;#x22;,&amp;#x22;Week 18: about 280 in hospital, about 90 in intensive care.&amp;#x22;]&quot; data-names=&quot;[&amp;#x22;Week 1&amp;#x22;,&amp;#x22;Week 2&amp;#x22;,&amp;#x22;Week 3&amp;#x22;,&amp;#x22;Week 4&amp;#x22;,&amp;#x22;Week 5&amp;#x22;,&amp;#x22;Week 6&amp;#x22;,&amp;#x22;Week 7&amp;#x22;,&amp;#x22;Week 8&amp;#x22;,&amp;#x22;Week 9&amp;#x22;,&amp;#x22;Week 10&amp;#x22;,&amp;#x22;Week 11&amp;#x22;,&amp;#x22;Week 12&amp;#x22;,&amp;#x22;Week 13&amp;#x22;,&amp;#x22;Week 14&amp;#x22;,&amp;#x22;Week 15&amp;#x22;,&amp;#x22;Week 16&amp;#x22;,&amp;#x22;Week 17&amp;#x22;,&amp;#x22;Week 18&amp;#x22;]&quot; aria-label=&quot;The forecast of the Finnish Institute for Health and Welfare, 25 March 2020: patients in hospital and in intensive care over 18 weeks, both peaking in week 9, at about 920 and 300&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Week 9: about 920 in hospital, about 300 in intensive care.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;s0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;In hospital&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;s1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;In intensive care&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 320&quot; role=&quot;img&quot; aria-label=&quot;The need for hospital and intensive care, week 1 to 18: about 920 in hospital at the peak, week 9; about 300 in intensive care at the peak, week 9&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;666&quot; y1=&quot;270.0&quot; y2=&quot;270.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;274.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;666&quot; y1=&quot;222.0&quot; y2=&quot;222.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;226.0&quot; text-anchor=&quot;end&quot;&gt;200&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;666&quot; y1=&quot;174.0&quot; y2=&quot;174.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;178.0&quot; text-anchor=&quot;end&quot;&gt;400&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;666&quot; y1=&quot;126.0&quot; y2=&quot;126.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;130.0&quot; text-anchor=&quot;end&quot;&gt;600&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;666&quot; y1=&quot;78.0&quot; y2=&quot;78.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;82.0&quot; text-anchor=&quot;end&quot;&gt;800&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;666&quot; y1=&quot;30.0&quot; y2=&quot;30.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;34.0&quot; text-anchor=&quot;end&quot;&gt;1,000&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;68&quot; x2=&quot;666&quot; y1=&quot;270&quot; y2=&quot;270&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;367&quot; y=&quot;314&quot; text-anchor=&quot;middle&quot;&gt;week&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;68&quot; y=&quot;20&quot;&gt;patients&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;68.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;103.2&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;2&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;138.4&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;3&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;173.5&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;4&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;208.7&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;5&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;243.9&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;6&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;279.1&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;7&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;314.2&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;8&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;349.4&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;9&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;384.6&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;10&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;419.8&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;11&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;454.9&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;12&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;490.1&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;13&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;525.3&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;14&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;560.5&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;15&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;595.6&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;16&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;630.8&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;17&lt;/text&gt;&lt;text class=&quot;tick crowded&quot; x=&quot;666.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;18&lt;/text&gt;&lt;g class=&quot;series s0&quot; data-pick-of=&quot;0&quot;&gt;&lt;path class=&quot;area&quot; d=&quot;M68.0 218.2C79.7 212.9 91.5 208.6 103.2 202.3C114.9 196.0 126.6 188.3 138.4 180.2C150.1 172.2 161.8 163.1 173.5 154.1C185.3 145.1 197.0 135.4 208.7 126.2C220.4 117.1 232.2 107.6 243.9 99.1C255.6 90.6 267.3 82.3 279.1 75.4C290.8 68.4 302.5 62.1 314.2 57.6C326.0 53.1 337.7 48.5 349.4 48.5C361.1 48.5 372.9 48.5 384.6 50.2C396.3 51.8 408.0 55.7 419.8 60.2C431.5 64.8 443.2 71.0 454.9 77.5C466.7 84.1 478.4 91.8 490.1 99.6C501.8 107.4 513.6 116.0 525.3 124.1C537.0 132.2 548.7 140.5 560.5 148.1C572.2 155.7 583.9 163.0 595.6 169.7C607.4 176.3 619.1 182.6 630.8 187.9C642.5 193.3 654.3 197.2 666.0 201.8L666.0 270.0L68.0 270.0Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;edge&quot; d=&quot;M68.0 218.2C79.7 212.9 91.5 208.6 103.2 202.3C114.9 196.0 126.6 188.3 138.4 180.2C150.1 172.2 161.8 163.1 173.5 154.1C185.3 145.1 197.0 135.4 208.7 126.2C220.4 117.1 232.2 107.6 243.9 99.1C255.6 90.6 267.3 82.3 279.1 75.4C290.8 68.4 302.5 62.1 314.2 57.6C326.0 53.1 337.7 48.5 349.4 48.5C361.1 48.5 372.9 48.5 384.6 50.2C396.3 51.8 408.0 55.7 419.8 60.2C431.5 64.8 443.2 71.0 454.9 77.5C466.7 84.1 478.4 91.8 490.1 99.6C501.8 107.4 513.6 116.0 525.3 124.1C537.0 132.2 548.7 140.5 560.5 148.1C572.2 155.7 583.9 163.0 595.6 169.7C607.4 176.3 619.1 182.6 630.8 187.9C642.5 193.3 654.3 197.2 666.0 201.8&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;series s1&quot; data-pick-of=&quot;1&quot;&gt;&lt;path class=&quot;area&quot; d=&quot;M68.0 253.4C79.7 251.8 91.5 250.6 103.2 248.6C114.9 246.7 126.6 244.1 138.4 241.7C150.1 239.2 161.8 236.7 173.5 234.0C185.3 231.3 197.0 228.3 208.7 225.4C220.4 222.4 232.2 219.3 243.9 216.5C255.6 213.7 267.3 211.0 279.1 208.6C290.8 206.1 302.5 203.4 314.2 201.6C326.0 199.8 337.7 197.5 349.4 197.5C361.1 197.5 372.9 197.5 384.6 197.5C396.3 197.5 408.0 199.6 419.8 201.1C431.5 202.7 443.2 204.8 454.9 206.9C466.7 209.0 478.4 211.4 490.1 213.8C501.8 216.3 513.6 219.0 525.3 221.5C537.0 224.1 548.7 226.7 560.5 229.2C572.2 231.7 583.9 234.2 595.6 236.4C607.4 238.6 619.1 240.7 630.8 242.6C642.5 244.6 654.3 246.2 666.0 247.9L666.0 270.0L68.0 270.0Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;edge&quot; d=&quot;M68.0 253.4C79.7 251.8 91.5 250.6 103.2 248.6C114.9 246.7 126.6 244.1 138.4 241.7C150.1 239.2 161.8 236.7 173.5 234.0C185.3 231.3 197.0 228.3 208.7 225.4C220.4 222.4 232.2 219.3 243.9 216.5C255.6 213.7 267.3 211.0 279.1 208.6C290.8 206.1 302.5 203.4 314.2 201.6C326.0 199.8 337.7 197.5 349.4 197.5C361.1 197.5 372.9 197.5 384.6 197.5C396.3 197.5 408.0 199.6 419.8 201.1C431.5 202.7 443.2 204.8 454.9 206.9C466.7 209.0 478.4 211.4 490.1 213.8C501.8 216.3 513.6 219.0 525.3 221.5C537.0 224.1 548.7 226.7 560.5 229.2C572.2 231.7 583.9 234.2 595.6 236.4C607.4 238.6 619.1 240.7 630.8 242.6C642.5 244.6 654.3 246.2 666.0 247.9&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;marker&quot;&gt;&lt;line class=&quot;cursor&quot; x1=&quot;349.4&quot; x2=&quot;349.4&quot; y1=&quot;30&quot; y2=&quot;270.0&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;dot s0&quot; data-pick-of=&quot;0&quot; cx=&quot;349.4&quot; cy=&quot;48.5&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot s1&quot; data-pick-of=&quot;1&quot; cx=&quot;349.4&quot; cy=&quot;197.5&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;/g&gt;&lt;/svg&gt;&lt;div class=&quot;fig-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;input type=&quot;range&quot; min=&quot;0&quot; max=&quot;17&quot; value=&quot;8&quot; step=&quot;1&quot; aria-label=&quot;week&quot; aria-valuetext=&quot;Week 9&quot;&gt;&lt;/div&gt;&lt;figcaption&gt;The forecast of the Finnish Institute for Health and Welfare (THL), 25 March 2020: in all, 11,300 hospitalised and 3,600 in intensive care. Weekly values read from the chart Yle published, to within a few patients.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-a4d4562&quot;&gt;The empirical doubling rate, based on the number of ICU patients between the of March and of April[&lt;a href=&quot;https://www.hs.fi/kotimaa/art-2000006462687.html&quot;&gt;8&lt;/a&gt;], is about half of that. In other words, the actual growth is about twice what THL’s forecast expects.&lt;/p&gt;
&lt;p id=&quot;p-191a9e4&quot;&gt;Even a relatively small error in the growth factor can have a markable effect on the outcome. THL’s model assumes a 1.2x weekly growth rate. If the growth is instead 1.3x, the relative accuracy of the forecast is 91.7% — but the absolute ICU burden is more than a quarter higher. 1.4x weekly growth rate, which is barely 15% difference in relative accuracy, results in almost twice the absolute peak burden.&lt;/p&gt;
&lt;figure class=&quot;fig columns&quot; data-fig=&quot;columns&quot; aria-label=&quot;The nine-week peak of patients in intensive care for weekly growth multipliers from 1.2 to 2.1, rising steeply above 1.6&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;At THL’s 1.2× a week, the nine-week peak is about 140 in intensive care; at the 1.5× measured, about 370.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 348&quot; role=&quot;img&quot; aria-label=&quot;The weekly growth factor and the nine-week peak: 1.2× a week (THL’s model): a nine-week peak of about 140 in intensive care; 1.3× a week: a nine-week peak of about 180 in intensive care; 1.4× a week: a nine-week peak of about 260 in intensive care; 1.5× a week (as measured): a nine-week peak of about 370 in intensive care; 1.6× a week: a nine-week peak of about 610 in intensive care; 1.7× a week: a nine-week peak of about 1,200 in intensive care; 1.8× a week: a nine-week peak of about 1,710 in intensive care; 1.9× a week: a nine-week peak of about 2,370 in intensive care; 2.0× a week: a nine-week peak of about 3,240 in intensive care; 2.1× a week: a nine-week peak of about 6,610 in intensive care&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;270.0&quot; y2=&quot;270.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;274.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;235.7&quot; y2=&quot;235.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;239.7&quot; text-anchor=&quot;end&quot;&gt;1,000&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;201.4&quot; y2=&quot;201.4&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;205.4&quot; text-anchor=&quot;end&quot;&gt;2,000&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;167.1&quot; y2=&quot;167.1&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;171.1&quot; text-anchor=&quot;end&quot;&gt;3,000&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;132.9&quot; y2=&quot;132.9&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;136.9&quot; text-anchor=&quot;end&quot;&gt;4,000&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;98.6&quot; y2=&quot;98.6&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;102.6&quot; text-anchor=&quot;end&quot;&gt;5,000&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;64.3&quot; y2=&quot;64.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;68.3&quot; text-anchor=&quot;end&quot;&gt;6,000&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;30.0&quot; y2=&quot;30.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;60&quot; y=&quot;34.0&quot; text-anchor=&quot;end&quot;&gt;7,000&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;68&quot; x2=&quot;668&quot; y1=&quot;270&quot; y2=&quot;270&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;368&quot; y=&quot;342&quot; text-anchor=&quot;middle&quot;&gt;weekly growth multiplier&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;68&quot; y=&quot;20&quot;&gt;patients in intensive care at the peak&lt;/text&gt;&lt;g class=&quot;column marked&quot; tabindex=&quot;0&quot; style=&quot;--i:0&quot; data-says=&quot;1.2× a week (THL’s model): a nine-week peak of about 140 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;68.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;79.4&quot; y=&quot;265.3&quot; width=&quot;37.2&quot; height=&quot;4.7&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:1&quot; data-says=&quot;1.3× a week: a nine-week peak of about 180 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;128.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;139.4&quot; y=&quot;264.0&quot; width=&quot;37.2&quot; height=&quot;6.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:2&quot; data-says=&quot;1.4× a week: a nine-week peak of about 260 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;188.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;199.4&quot; y=&quot;261.2&quot; width=&quot;37.2&quot; height=&quot;8.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column marked&quot; tabindex=&quot;0&quot; style=&quot;--i:3&quot; data-says=&quot;1.5× a week (as measured): a nine-week peak of about 370 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;248.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;259.4&quot; y=&quot;257.2&quot; width=&quot;37.2&quot; height=&quot;12.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:4&quot; data-says=&quot;1.6× a week: a nine-week peak of about 610 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;308.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;319.4&quot; y=&quot;249.2&quot; width=&quot;37.2&quot; height=&quot;20.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:5&quot; data-says=&quot;1.7× a week: a nine-week peak of about 1,200 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;368.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;379.4&quot; y=&quot;229.0&quot; width=&quot;37.2&quot; height=&quot;41.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:6&quot; data-says=&quot;1.8× a week: a nine-week peak of about 1,710 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;428.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;439.4&quot; y=&quot;211.4&quot; width=&quot;37.2&quot; height=&quot;58.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:7&quot; data-says=&quot;1.9× a week: a nine-week peak of about 2,370 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;488.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;499.4&quot; y=&quot;188.6&quot; width=&quot;37.2&quot; height=&quot;81.4&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:8&quot; data-says=&quot;2.0× a week: a nine-week peak of about 3,240 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;548.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;559.4&quot; y=&quot;159.1&quot; width=&quot;37.2&quot; height=&quot;110.9&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;column&quot; tabindex=&quot;0&quot; style=&quot;--i:9&quot; data-says=&quot;2.1× a week: a nine-week peak of about 6,610 in intensive care&quot;&gt;&lt;rect class=&quot;hit&quot; x=&quot;608.0&quot; y=&quot;30.0&quot; width=&quot;60.0&quot; height=&quot;240.0&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar&quot; x=&quot;619.4&quot; y=&quot;43.4&quot; width=&quot;37.2&quot; height=&quot;226.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;text class=&quot;tick&quot; x=&quot;98.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.2×&lt;/text&gt;&lt;text class=&quot;mark&quot; x=&quot;98.0&quot; y=&quot;316&quot; text-anchor=&quot;middle&quot;&gt;THL’s model&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;158.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.3×&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;218.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.4×&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;278.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.5×&lt;/text&gt;&lt;text class=&quot;mark&quot; x=&quot;278.0&quot; y=&quot;316&quot; text-anchor=&quot;middle&quot;&gt;as measured&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;338.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.6×&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;398.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.7×&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;458.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.8×&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;518.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.9×&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;578.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;2.0×&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;638.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;2.1×&lt;/text&gt;&lt;/svg&gt;&lt;figcaption&gt;The peak number of patients in intensive care within nine weeks, for each weekly growth multiplier. Values read from the chart in the original, to within about 20.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-524ac59&quot;&gt;Another important assumption in THL’s model is the relationship between hospitalization and the need for intensive care. For example, for the second week of the curve, THL predicts 283[&lt;a href=&quot;https://thl.fi/documents/533963/1449651/Koronavirusepidemian+aiheuttama+sairaala-+ja+tehohoidon+tarve+Suomessa.pdf/56148a8f-25e5-cd27-4489-0a3b78e1e437&quot;&gt;9&lt;/a&gt;] hospitalization, with 88 of the patients requiring intensive care. This means THL assumes a 31% ICU rate. Based on available data, the actual rate in Finland is 39%[&lt;a href=&quot;https://thl.fi/fi/web/infektiotaudit-ja-rokotukset/ajankohtaista/ajankohtaista-koronaviruksesta-covid-19/tilannekatsaus-koronaviruksesta&quot;&gt;10&lt;/a&gt;], or 21% higher than THL’s assumption. Deviation of such a degree, from empirical data, can be considered important. Moreover, THL explains the model to assume the average ICU stay to last for eight days. Based on the available literature, this is likely to be around ten days. Based on historical patient records, the average ICU stay duration is 8.5 days, but the average for influenza patients is 10.5 days[&lt;a href=&quot;https://github.com/autonomio/trauma-team-international/tree/master/data&quot;&gt;11&lt;/a&gt;]. Because of this, we find a 20% additional error to THL’s forecast.&lt;/p&gt;
&lt;p id=&quot;p-37248b9&quot;&gt;By combining the error arising from the way the base assumptions deviate from empirical data, we have to assume that based on THL’s model, the peak burden will be 406 and not 280. We find that while the model itself may be useful, the current publicized forecast contains an important error. This 45% error is assuming that no other deviations can be identified i.e., this does not include any other issues in the model. In short, summary, when we correct the input parameters in THL’s model to follow empirical evidence, the published forecast based on the model contains an important error.&lt;/p&gt;
&lt;p id=&quot;p-b404140&quot;&gt;We also find that when comparing THL’s model with several available models, notably higher peak burden values are prominent.&lt;/p&gt;
&lt;p id=&quot;p-ca99f62&quot;&gt;It is important to understand that deviations from facts are likely; nobody in the world clearly understands the COVID-19 forecasting problem yet. Over a decade, among over 60,000 ICU stays[&lt;a href=&quot;https://mimic.physionet.org/&quot;&gt;12&lt;/a&gt;], we find that patients with influenza and pneumonia appear in 187 cases. When at the moment, many hospitals handle more cases in a single day, it is clear that we are all exploring new territory here. This makes modeling and forecasting very difficult and highlights the importance of leveraging methods such as time-series forecasting with empirical data, and Monte Carlo simulation with empirical data influencing input parameter ranges. That, and close co-operation with fields where relevant skillsets — such as fintech and adtech — have been mastered.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;when-on-a-back-of-tiger-tread-carefully&quot;&gt;“When on a Back of Tiger, Tread Carefully”&lt;/h2&gt;
&lt;p id=&quot;p-885a16f&quot;&gt;As &lt;em&gt;Pascal’s Wager &lt;/em&gt;stipulates, outputs of models should be evaluated in the light of how much damage making a wrong decision can cause. For example, if lung cancer is diagnosed with negative falsely, the patient’s odds for survival dramatically drop. Likewise, if the need for ICU capacity is falsely forecasted to be lower than it will actually be, odds for patients to survive drop dramatically. This is true for COVID-19 patients and all patients that would otherwise require intensive care during peak capacity periods. Because of the way intensive care is structured to support life when it otherwise would fail, it’s safe to assume that once intensive care is denied from a patient who requires it, that patient’s chance of survival drops to zero.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;used-methods&quot;&gt;Used Methods&lt;/h2&gt;
&lt;p id=&quot;p-8dfff4f&quot;&gt;The best way to test a claim is to reproduce it using a variety of different methods. Using the methods highlighted below, we have tried but failed to reproduce THL’s forecast. We can consistently achieve it only when we deviate away from empirically sound input parameters.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-78199ce&quot;&gt;Literature review&lt;/li&gt;
&lt;li id=&quot;p-6e69113&quot;&gt;Review of publicly available models&lt;/li&gt;
&lt;li id=&quot;p-75f6b94&quot;&gt;Quantitative analysis of ICU stay data&lt;/li&gt;
&lt;li id=&quot;p-f415e63&quot;&gt;Regression analysis of available empirical data&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-ea39e5a&quot;&gt;We have made all findings, materials, and the codes allowing straightforward reproduction of the results through &lt;a href=&quot;https://autonom.io/icu_burden&quot;&gt;https://autonom.io/icu_burden&lt;/a&gt; and encourage all researchers to do the same with their work.&lt;/p&gt;
&lt;p id=&quot;p-6394414&quot;&gt;Can you scrutinize your country’s official forecasts in a similar way? Or the claims that we make in this article? Scrutiny is the force that propels knowledge forward. Do it, go scrutinize.&lt;/p&gt;
&lt;p id=&quot;p-30985a4&quot;&gt;&lt;strong&gt;&lt;em&gt;Note from the editors:&lt;/em&gt;&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;&lt;a href=&quot;http://towardsdatascience.com/&quot;&gt;&lt;em&gt;Towards Data Science&lt;/em&gt;&lt;/a&gt;&lt;em&gt; is a Medium publication primarily based on the study of data science and machine learning. We are not health professionals and the opinions of this article should not be interpreted as professional advice.&lt;/em&gt;&lt;/p&gt;</content></entry><entry><title>14 Thoughts on Being Friends with Small Children</title><link href="https://mikkokotila.com/writing/14-thoughts-on-being-friends-with-small-children/"/><id>https://mikkokotila.com/writing/14-thoughts-on-being-friends-with-small-children/</id><published>2019-08-03T00:00:00Z</published><updated>2019-08-03T00:00:00Z</updated><category term="wisdom"/><summary>When I was small, my parents were busy and also did not know much about communicating with children. I think a lot of parents are like that.</summary><content type="html">&lt;p id=&quot;p-e92daa3&quot; class=&quot;opening&quot;&gt;When I was small, my parents were busy and also did not know much about communicating with children. I think a lot of parents are like that. Communicating with a child is, in fact, one of the great mysteries of human life; we know very little about how it actually works. We have many theories and make plans based on those theories, but it’s like Mike Tyson said. “Everyone has a plan until they’re punched in the face.” As I grew up, I spent much time thinking about how I could avoid the faith of my parents, if I myself ended up having children one day. Also, to understand more generally, how can we best get along with kids in a mutually meaningful way. One day about a decade ago, those thoughts took the shape of 14 thoughts that I &lt;span class=&quot;nowrap&quot;&gt;wrote down.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-8d79ae2&quot;&gt;Don’t use threats or bribery&lt;/li&gt;
&lt;li id=&quot;p-c2896e0&quot;&gt;Emphasize eye contact&lt;/li&gt;
&lt;li id=&quot;p-c578d9e&quot;&gt;Explain “yes” and “no” through something the child understands&lt;/li&gt;
&lt;li id=&quot;p-b0277f8&quot;&gt;Emphasize that you like to spend time with the child&lt;/li&gt;
&lt;li id=&quot;p-9ffcc24&quot;&gt;Don’t repeat the same things (find new ways to say the same thing)&lt;/li&gt;
&lt;li id=&quot;p-687f468&quot;&gt;Remember that there is way too much stimuli for a child in the modern world&lt;/li&gt;
&lt;li id=&quot;p-7e93454&quot;&gt;Remember that the child has to adapt to the world, nobody is asking if he/she wants to&lt;/li&gt;
&lt;li id=&quot;p-3355c54&quot;&gt;Remember that nobody (NOBODY!) actually understands the child, and they know it better than everyone else&lt;/li&gt;
&lt;li id=&quot;p-29223ff&quot;&gt;Never, under any circumstance, lose your temper&lt;/li&gt;
&lt;li id=&quot;p-04a1a7f&quot;&gt;Establish a joint mission&lt;/li&gt;
&lt;li id=&quot;p-1f8205e&quot;&gt;Remember that the child only wants to be happy and enjoy life&lt;/li&gt;
&lt;li id=&quot;p-1728be0&quot;&gt;Don’t try to program children, they are human, not computers&lt;/li&gt;
&lt;li id=&quot;p-d7d9ab2&quot;&gt;Lead through example, not through commands&lt;/li&gt;
&lt;li id=&quot;p-2fcd435&quot;&gt;Don’t sweat the small stuff and choose your battles well&lt;/li&gt;
&lt;/ul&gt;</content></entry><entry><title>Hidden costs of deep learning</title><link href="https://mikkokotila.com/writing/hidden-costs-of-deep-learning/"/><id>https://mikkokotila.com/writing/hidden-costs-of-deep-learning/</id><published>2019-05-19T00:00:00Z</published><updated>2019-05-19T00:00:00Z</updated><category term="machine-intelligence"/><summary>An inquiry into intelligence, movement, and the relationship between people and machines.</summary><content type="html">&lt;p id=&quot;p-5407c9e&quot; class=&quot;opening&quot;&gt;To understand intelligence, we have to take a step back and see how things manifest in this world. In order for something to manifest, there needs to be some kind of space where the manifestations appear. Then in that space, needs to appear some kind of movement. Take for example atomic particles, which appear in a space where they move closer to each other, or further apart from each other. Sometimes scientists refer to this process as “clumping” or more commonly “self-organization”. Is &lt;span class=&quot;nowrap&quot;&gt;this intelligence?&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-8f058de&quot;&gt;The fundamental question of intelligence, is “what is intelligence?”. Where do we find intelligence, and how can we precisely describe the way it manifests. In the modern days, we are also very much interested with the question of how to manufacture it, how to create intelligent systems. This leads us right back to the basic facts of space and movement; in order for intelligence to manifest, there needs to be space and in that space there is movement. At this point it’s important to consider a subtlety; space does not imply a confined space, or a thermodynamic &lt;em&gt;isolated system&lt;/em&gt;, i.e space does not constitute a physical constraint. More so a potency of some sort, a quality rather than a spatiality.&lt;/p&gt;
&lt;p id=&quot;p-eb471de&quot;&gt;In fact, if we try to find intelligence that does not move, in such analysis it quickly becomes obvious that if something is static and void of any movement or change of any kind, it does not meet the requirements of functioning. Because there is no function, then clearly there is no intelligence. A function is in some way the output of intelligence, the gross characteristic of it. This way we can find that consequently movement is the basis for what we refer to as intelligence. In this fundamental dichtomy, space is the quality upon which movement is possible. This is obvious, as without such a quality as space, no movement can take place.&lt;/p&gt;
&lt;p id=&quot;p-ae9ee0f&quot;&gt;When you contemplate how things manifest, from the atomic spin to the nebula, and everything in between, every organism, every so-called inanimate thing, every particle, you find that the fundamental relativity is the one of space and movement. All appears in a space due to causes and conditions, and all that manifest and that we can observe, is a result of things coming closer together, or going further apart within that quality of space. While this process is not so clear for us with say bedrock for an example, we can find it to behave in the exact same way. It too continuously change, even though at a scale (in terms of time and magnitude) that is not obvious to us. &lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-problem-of-absolute-zero&quot;&gt;The Problem of Absolute Zero&lt;/h2&gt;
&lt;p id=&quot;p-7b676d1&quot;&gt;When it comes to movement, the scientists have found that it can not be stopped. This is referred to as the absolute zero i.e. the temperature where atoms stop moving. In a causal system this limit makes sense, and the opposite i.e. attaining such a state does not make sense, as once something stops changing, it breaks the causal chain and nothing ever happens after that. Causality is dependent on constant change, constant functioning. When functioning ends, it ends and there are no causes and conditions for anything to manifest after that.  Everything that happens, happens because there is some kind of cause and condition that make it happen. Both randomness and determinism are 100% dependent on change (movement). In the case of absolute zero, we are using the relativity of temperature to measure movement. In fact, movement and temperature are interchangeable in terms of meaning. Temperature is simply a relative measurement of the degree of movement.&lt;/p&gt;
&lt;p id=&quot;p-01a69cb&quot;&gt;Where does this leave us in terms of intelligence? We might for example ask if a wall is intelligent, and if there is intelligence manifesting in a wall. Without the frame of reference we have just briefly gone through, this would be a very confusing questions. Indeed, most “experts” working in the field of machine intelligence and even modern philosophy, are oblivious to this type of idea about intelligence. Most will not hesitate in answering “no, wall is not a manifestation of intelligence”. Actually, the kind of fundamental concept of intelligence we are discussing now, clearly shows that wall is intelligent, because it is a manifestation of movement in space. If we want to impose more relativities, beyond just movement, we can find that in fact the wall kind of intelligence is superior to human intelligence in many ways. To understand this, we have to remember that the idea of intelligence has to do with functioning. If walls were made of humans, then houses would have a big problem staying together because of the way human intelligence manifest. In respect to the kind of intelligence wall represents, it is very predictable, and its physical attributes are very rigid&lt;/p&gt;
&lt;p id=&quot;p-31dbfc7&quot;&gt;This type of contemplation on the topic of intelligence gives us far more room in terms of exploration when it comes to asking and answering the fundamental questions underpinning machine intelligence. For example, we come to understand that the comparison between the intelligence of a man and the intelligence of a machine to a far extent play out as the comparison between man and the wall. This type of approach grants us quite a bit of flexibility, in contrast to say models of intelligence that focus on sentience or cognitive functions as the basis for discussion on intelligence. That type of approach is very much coming from the human perspective, and creates unnecessary limits for an era characterized by co-operation of man and intelligent machines.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;greater-than-human-intelligence&quot;&gt;Greater than Human Intelligence&lt;/h2&gt;
&lt;p id=&quot;p-2451b88&quot;&gt;Some fear, that the machine will become more intelligent than us humans, showing a profound misunderstanding of both intelligence generally, and machine kind of intelligence more specifically. Such a view is driven by confusion and fear. Actually the machine is already able to perform many kinds of functions (intelligence) far superior to us human. That seems to be the whole point; having our own abilities augmented by the abilities of the machine. Not augmented by the means of physical augmentation, the hallmark of the Cyberpunk genre, but by the kind of invisible connection we already to some extent have with machines. This concept is partially explained in the seminal 1960 paper by JCR Licklider, &lt;em&gt;Man-Machine Symbiosis&lt;/em&gt;[&lt;a href=&quot;https://groups.csail.mit.edu/medg/people/psz/Licklider.html&quot;&gt;read here&lt;/a&gt;]. Whereas machine intelligence promises to allow us humans embrace our human intelligence more, namely creativity and empathy, there are no groundings for suggesting that machine alone could have greater than human intelligence. This is simply proven using a line of reasoning; human intelligence is associated with the causes and conditions that result in humans and the functions thereof, whereas machine intelligence is not. Like it is impossible for a banana to grow from an apple tree, it is impossible for human intelligence to appear in a machine. This type of philosophical precision is very important, as otherwise we can just say anything (and in have people believe it). As the great philosopher Ludwig Wittgenstein said in &lt;em&gt;Tractatus Logico-Philosophicus:&lt;/em&gt;&lt;/p&gt;
&lt;blockquote id=&quot;p-9b90af4&quot;&gt;
&lt;p&gt;What can be said at all can be said clearly, and what we cannot talk about we must pass over in silence.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-c853f82&quot;&gt;Indeed there is another part of this matter, a practical one where some actual risks do exist and a serious conversation needs to be had “before its too late”. Because of the causal relationship between man and machine, namely the facts that machine intelligence is and always will be underpinned by its origin (being an invention of humans), and that human decisions are heavily influenced by inputs from machines, the risks are quite clear. The most significant threats mostly associate with the decisions we make regarding investment in to rerflatively simple systems that lack any autonomy, but provide inputs for humans to make decisions. Those, and the way machine intelligence based decision making support systems are programmed, and the pressures “to deliver” at the level of individual programmers. The most important point to understand in this regard, is that the greatest risk with machine intelligence era is not associated with the machine becoming too intelligence, but in us humans remaining ignorant.&lt;/p&gt;</content></entry><entry><title>Automated Research and Beyond: The Evolution of Artificial Intelligence</title><link href="https://mikkokotila.com/writing/automated-research-and-beyond-the-evolution-of-artificial-intelligence/"/><id>https://mikkokotila.com/writing/automated-research-and-beyond-the-evolution-of-artificial-intelligence/</id><published>2019-05-13T00:00:00Z</published><updated>2019-05-13T00:00:00Z</updated><category term="machine-intelligence"/><summary>You will soon be able to explain a research question to a machine and get an answer in return.</summary><content type="html">&lt;figure class=&quot;fig levels&quot; data-fig=&quot;levels&quot; aria-label=&quot;Levels of research automation&quot;&gt;&lt;div class=&quot;levels-body&quot; style=&quot;--n:4&quot;&gt;&lt;ol class=&quot;levels-tiers&quot;&gt;&lt;li class=&quot;tier&quot; data-group=&quot;0&quot; style=&quot;--row:4;--w:0.875;clip-path:polygon(12.50% 0, 87.50% 0, 100.00% 100%, 0.00% 100%)&quot;&gt;&lt;span class=&quot;fig-label&quot;&gt;Automated literature review&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;tier&quot; data-group=&quot;0&quot; style=&quot;--row:3;--w:0.625;clip-path:polygon(25.00% 0, 75.00% 0, 87.50% 100%, 12.50% 100%)&quot;&gt;&lt;span class=&quot;fig-label&quot;&gt;Automated data science&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;tier&quot; data-group=&quot;0&quot; style=&quot;--row:2;--w:0.375;clip-path:polygon(37.50% 0, 62.50% 0, 75.00% 100%, 25.00% 100%)&quot;&gt;&lt;span class=&quot;fig-label&quot;&gt;Automated insights&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;tier proposed apex&quot; data-group=&quot;1&quot; style=&quot;--row:1;--w:0.125;clip-path:polygon(50.00% 0, 50.00% 0, 62.50% 100%, 37.50% 100%)&quot;&gt;&lt;span class=&quot;fig-label&quot;&gt;Autonomous researcher&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class=&quot;levels-group fig-label left&quot; data-group=&quot;0&quot; style=&quot;--from:2;--to:5&quot;&gt;Automated researcher&lt;/p&gt;&lt;p class=&quot;levels-group fig-label right&quot; data-group=&quot;1&quot; style=&quot;--from:1;--to:2&quot;&gt;Autonomous researcher&lt;/p&gt;&lt;/div&gt;&lt;figcaption&gt;The first three levels make the automated researcher; the fourth, still to come, is the autonomous researcher. The original 2019 model.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-47501a8&quot;&gt;Welcome to STUDIO….a loading bar makes it way across the screen…the system scans your face…a voice with a slight east-german accent says:&lt;/p&gt;
&lt;p id=&quot;p-5cde1d8&quot;&gt;&lt;em&gt;“Good morning, what would you like to do today?”&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-ce09a04&quot;&gt;Since 2025, similar solutions have taken the research world by a storm. The promise is dead simple; explain your machine — for example, a laptop or a smartphone — the research problem, and the machine will find a way to answer it.&lt;/p&gt;
&lt;p id=&quot;p-c048afa&quot;&gt;You start by explaining that you’re interested in understanding factors related to mortality in advanced cervical cancer patients.&lt;/p&gt;
&lt;p id=&quot;p-e53fe44&quot;&gt;&lt;em&gt;“Would you like me to start with a literature review?”&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-0e23c93&quot;&gt;Hundreds of new papers are published on cervical cancer every month. Before the emergence of automated research systems, researchers had given up attempts to perform comprehensive literature reviews on all but the most niche topics where the number of newly published articles still allowed it. Papers that mention “Cervical Cancer” in their title, total roughly 10,000 papers for the past 12 months, and that’s just a small fraction of potentially relevant articles. Around the turn of the millennia, we had lost track of the collective wisdom contained within the compendium of works governing a given topic.&lt;/p&gt;
&lt;p id=&quot;p-516b85e&quot;&gt;You decide to go with the literature review.&lt;/p&gt;
&lt;p id=&quot;p-ad7d94b&quot;&gt;&lt;em&gt;“Shall I provide comprehensive conclusions or will highlights do? Conclusions will move ETA from roughly 3 minutes to several days with your device. For a cloud computing budget of $300, we can reduce the ETA for conclusions to roughly one hour.”&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-b3d3703&quot;&gt;You decide to start with highlights, that way you’ll be looking at something in just a few minutes from now.&lt;/p&gt;
&lt;p id=&quot;p-2eea183&quot;&gt;&lt;em&gt;“Roger that, shall we commence?”&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-6122597&quot;&gt;You confirm, and the machine goes to work.&lt;/p&gt;
&lt;figure class=&quot;fig loading&quot; data-fig=&quot;loading&quot; data-seconds=&quot;6.5&quot; data-stages=&quot;[&amp;#x22;Finding potentially relevant articles&amp;#x22;,&amp;#x22;Following citations and authors&amp;#x22;,&amp;#x22;Looking for subtler connections&amp;#x22;,&amp;#x22;Preparing the highlights&amp;#x22;]&quot; data-ask=&quot;Shall we commence?&quot; data-done=&quot;The results are available on your device.&quot; data-again=&quot;Once more&quot; aria-label=&quot;A loading bar: the machine at work on the literature review&quot;&gt;&lt;div class=&quot;loading-bar&quot; role=&quot;progressbar&quot; aria-label=&quot;The literature review&quot; aria-valuemin=&quot;0&quot; aria-valuemax=&quot;100&quot; aria-valuenow=&quot;100&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;p class=&quot;loading-row&quot;&gt;&lt;span class=&quot;loading-status fig-small&quot; aria-live=&quot;polite&quot;&gt;The results are available on your device.&lt;/span&gt;&lt;b class=&quot;loading-pct&quot;&gt;100%&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;loading-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;fig-pill loading-go&quot;&gt;Commence&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;The loading bar of the original. What it says as it goes is the piece’s own.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;automated-literature-review&quot;&gt;Automated Literature Review&lt;/h2&gt;
&lt;p id=&quot;p-302cee4&quot;&gt;The machine finds several million potentially relevant scientific articles. Some documents investigate and discuss the research topic. Others have a meaningful connection with the topic through citations, authors, and other factors. Some signals would not be meaningful for humans to interpret, they are latent propensities hidden deep in the way the content of the articles, as well as other aspects, form subtle connections with other articles. Sometimes the strongest connections are from surprisingly different topics. Advanced machine intelligence capabilities are a balancing act between usefulness and surprise. The results take a few minutes to come in, regardless of the fact that everything is happening on a sub $1,000 tablet. You could be on your smartphone, and it would not take any longer.&lt;/p&gt;
&lt;p id=&quot;p-c289d66&quot;&gt;&lt;em&gt;“The results are available on your device.”&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-ec2dfe1&quot;&gt;You lift your device, and before you opens an easy-to-read interactive summary of the findings of the literature review. What had become infeasible for humans to do by the year 2000, can be done by anyone in the time it takes to get a cup of coffee.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-parametrization-of-machine-intelligence&quot;&gt;The Parametrization of Machine Intelligence&lt;/h2&gt;
&lt;p id=&quot;p-c90cab7&quot;&gt;By the early years of the 2020s, researchers had entirely parametrized the fundamental aspects of computer-aided research. Very roughly speaking, a machine intelligence based decision-making system involves collection and preparation of data, selecting, optimizing and testing of the model, and validating and governing the resulting solution. All the individual activities that made up stages of using data to answer research questions, had been meticulously mapped out and parametrized to a degree that allowed the full automation of all of those processes.&lt;/p&gt;
&lt;figure class=&quot;fig pipeline&quot; data-fig=&quot;pipeline&quot; aria-label=&quot;The research pipeline&quot;&gt;&lt;ol class=&quot;pipeline-groups&quot; style=&quot;--total:7&quot;&gt;&lt;li class=&quot;pipeline-group lit&quot; style=&quot;--steps:2&quot;&gt;&lt;span class=&quot;pipeline-group-name fig-label&quot;&gt;Data&lt;/span&gt;&lt;ol class=&quot;pipeline-steps&quot;&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;0&quot;&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;collect&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;1&quot;&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;prepare&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-group lit&quot; style=&quot;--steps:2&quot;&gt;&lt;span class=&quot;pipeline-group-name fig-label&quot;&gt;Model&lt;/span&gt;&lt;ol class=&quot;pipeline-steps&quot;&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;2&quot;&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;select&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;3&quot;&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;optimize&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-group lit&quot; style=&quot;--steps:3&quot;&gt;&lt;span class=&quot;pipeline-group-name fig-label&quot;&gt;Result&lt;/span&gt;&lt;ol class=&quot;pipeline-steps&quot;&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;4&quot;&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;test&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;5&quot;&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;validate&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;6&quot;&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;govern&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;pipeline-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play pipeline-play&quot;&gt;Play collect to govern&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;The stages and operations of the research pipeline, as in the original.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-a748930&quot;&gt;Whereas up until recent years, data scientists regularly used half of their time into so-called ETL activities — extracting, transforming, and loading data — nobody did data preparation anymore. The machine would do it in ways inconceivable to people, going through a remarkable number of different variations before deciding how optimal input data would look like. The machine might also decide to use relevant public datas in an effort to get the best possible result for the research problem.&lt;/p&gt;
&lt;p id=&quot;p-0c79d93&quot;&gt;Once all the involved processes had been clearly articulated in terms of the parameters they consist of — which was merely a question of time rather than feasibility as some had thought— it became a straightforward engineering problem to automate the related processes. There was nothing new to build, everything was available through established open-source packages. One merely needed to combine those functionalities in ways that created new, entirely automated workflows. Once the workflows were automated, several AI research groups understood that to better capitalize on the promise of machine intelligence, it was critically important to assume a more balanced approach to system development. Whereas capability development, such as new neural network architectures, had received the great majority of attention from researchers and developers for several decades, interaction and governance had largely been ignored.&lt;/p&gt;
&lt;figure class=&quot;fig compare&quot; data-fig=&quot;compare&quot; data-state=&quot;1&quot; aria-label=&quot;A proposed change in AI priorities&quot;&gt;&lt;div class=&quot;compare-head&quot;&gt;&lt;p class=&quot;compare-state fig-display&quot; aria-live=&quot;polite&quot;&gt;After 2020&lt;/p&gt;&lt;div class=&quot;fig-views&quot; role=&quot;group&quot; aria-label=&quot;A change in emphasis&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; data-state=&quot;0&quot; aria-pressed=&quot;false&quot;&gt;Before 2020&lt;/button&gt;&lt;button type=&quot;button&quot; data-state=&quot;1&quot; aria-pressed=&quot;true&quot;&gt;After 2020&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;compare-items&quot;&gt;&lt;li class=&quot;compare-item&quot; style=&quot;--v0:1;--v1:0.43&quot;&gt;&lt;span class=&quot;compare-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;i class=&quot;ghost&quot;&gt;&lt;/i&gt;&lt;i class=&quot;bar&quot;&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;compare-name fig-small&quot;&gt;Capabilities&lt;span class=&quot;visually-hidden&quot;&gt;: dominant before 2020, balanced after 2020&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;compare-item&quot; style=&quot;--v0:0.18;--v1:0.43&quot;&gt;&lt;span class=&quot;compare-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;i class=&quot;ghost&quot;&gt;&lt;/i&gt;&lt;i class=&quot;bar&quot;&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;compare-name fig-small&quot;&gt;Interaction&lt;span class=&quot;visually-hidden&quot;&gt;: secondary before 2020, balanced after 2020&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;compare-item&quot; style=&quot;--v0:0.07;--v1:0.43&quot;&gt;&lt;span class=&quot;compare-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;i class=&quot;ghost&quot;&gt;&lt;/i&gt;&lt;i class=&quot;bar&quot;&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;compare-name fig-small&quot;&gt;Governance&lt;span class=&quot;visually-hidden&quot;&gt;: small before 2020, balanced after 2020&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;figcaption&gt;A qualitative comparison proposed in 2019, not measured values or a report on what followed. The heights are the original drawing’s.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-26b85ef&quot;&gt;Back in 2020, &lt;em&gt;interaction&lt;/em&gt; and &lt;em&gt;governance&lt;/em&gt; aspects involved many critically important unsolved problems; such as reducing the cognitive overhead involved with using general machine intelligence APIs, as well as AI security and ethics. This shift in balance — between the three pillars — set in motion the race for creating the &lt;em&gt;Automated Research&lt;/em&gt;.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;moving-beyond-generality&quot;&gt;Moving Beyond Generality&lt;/h2&gt;
&lt;p id=&quot;p-b1f0248&quot;&gt;The big problem of AI, generality, had already been solved by solutions such as TensorFlow and Pytorch in the years leading to 2020. In fact, generality had been solved by 2015, nobody just clearly understood that it had happened. Platforms such as TensorFlow, allowed a computer-savvy researcher to create solutions for virtually any research problem. On the coattails of the success of these platforms came the first machine intelligence S&lt;em&gt;olution APIs&lt;/em&gt;, for example Keras and Fast.ai. &lt;em&gt;Solution APIs&lt;/em&gt; radically simplified the way in which a researcher had to explain the solution they were looking for. Deep Learning &lt;em&gt;Solution APIs&lt;/em&gt; reduced hundreds of lines of archaic computer codes, into a process resembling the way a child plays with Lego blocks.&lt;/p&gt;
&lt;figure class=&quot;fig race&quot; data-fig=&quot;race&quot; aria-label=&quot;TensorFlow and Keras example comparison&quot;&gt;&lt;div class=&quot;race-lanes&quot;&gt;&lt;div class=&quot;race-lane l0&quot; data-lines=&quot;100&quot;&gt;&lt;svg class=&quot;race-code&quot; viewBox=&quot;0 0 240 260.0&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;17.0&quot; y=&quot;0.0&quot; width=&quot;74.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;0&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;2.6&quot; width=&quot;105.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;5.2&quot; width=&quot;19.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;40.8&quot; y=&quot;5.2&quot; width=&quot;36.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;7.8&quot; width=&quot;152.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;3&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;10.4&quot; width=&quot;67.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;4&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;88.4&quot; y=&quot;10.4&quot; width=&quot;66.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;4&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;4.0&quot; y=&quot;13.0&quot; width=&quot;22.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;5&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.2&quot; y=&quot;13.0&quot; width=&quot;48.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;5&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;15.6&quot; width=&quot;135.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;6&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;18.2&quot; width=&quot;106.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;7&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;20.8&quot; width=&quot;23.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;8&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;44.1&quot; y=&quot;20.8&quot; width=&quot;49.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;8&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;23.4&quot; width=&quot;170.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;9&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;26.0&quot; width=&quot;106.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;10&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;140.6&quot; y=&quot;26.0&quot; width=&quot;59.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;10&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;28.6&quot; width=&quot;19.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;11&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;53.7&quot; y=&quot;28.6&quot; width=&quot;42.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;11&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;31.2&quot; width=&quot;24.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;12&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;58.3&quot; y=&quot;31.2&quot; width=&quot;52.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;12&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;33.8&quot; width=&quot;51.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;13&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;85.5&quot; y=&quot;33.8&quot; width=&quot;54.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;13&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;36.4&quot; width=&quot;75.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;14&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;109.8&quot; y=&quot;36.4&quot; width=&quot;87.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;14&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;39.0&quot; width=&quot;61.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;15&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;41.6&quot; width=&quot;44.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;16&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;44.2&quot; width=&quot;98.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;17&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;46.8&quot; width=&quot;67.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;18&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;101.5&quot; y=&quot;46.8&quot; width=&quot;42.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;18&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;49.4&quot; width=&quot;88.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;19&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;135.0&quot; y=&quot;49.4&quot; width=&quot;85.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;19&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;52.0&quot; width=&quot;51.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;20&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;98.2&quot; y=&quot;52.0&quot; width=&quot;69.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;20&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;54.6&quot; width=&quot;103.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;21&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;137.4&quot; y=&quot;54.6&quot; width=&quot;65.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;21&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;57.2&quot; width=&quot;71.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;22&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;105.2&quot; y=&quot;57.2&quot; width=&quot;97.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;22&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;59.8&quot; width=&quot;159.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;23&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;62.4&quot; width=&quot;22.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;24&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.4&quot; y=&quot;62.4&quot; width=&quot;16.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;24&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;65.0&quot; width=&quot;34.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;25&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;68.0&quot; y=&quot;65.0&quot; width=&quot;41.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;25&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;67.6&quot; width=&quot;10.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;26&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;44.5&quot; y=&quot;67.6&quot; width=&quot;18.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;26&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;70.2&quot; width=&quot;57.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;27&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;91.7&quot; y=&quot;70.2&quot; width=&quot;62.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;27&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;72.8&quot; width=&quot;126.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;28&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;75.4&quot; width=&quot;46.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;29&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;67.0&quot; y=&quot;75.4&quot; width=&quot;52.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;29&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;78.0&quot; width=&quot;104.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;30&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;80.6&quot; width=&quot;38.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;31&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;59.4&quot; y=&quot;80.6&quot; width=&quot;60.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;31&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;83.2&quot; width=&quot;16.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;32&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;37.3&quot; y=&quot;83.2&quot; width=&quot;23.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;32&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;85.8&quot; width=&quot;166.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;33&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;88.4&quot; width=&quot;60.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;34&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;107.6&quot; y=&quot;88.4&quot; width=&quot;88.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;34&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;91.0&quot; width=&quot;37.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;35&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;84.7&quot; y=&quot;91.0&quot; width=&quot;33.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;35&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;93.6&quot; width=&quot;105.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;36&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;96.2&quot; width=&quot;47.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;37&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;81.8&quot; y=&quot;96.2&quot; width=&quot;93.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;37&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;98.8&quot; width=&quot;120.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;38&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;101.4&quot; width=&quot;162.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;39&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;104.0&quot; width=&quot;53.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;40&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;100.2&quot; y=&quot;104.0&quot; width=&quot;42.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;40&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;106.6&quot; width=&quot;69.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;41&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;103.1&quot; y=&quot;106.6&quot; width=&quot;39.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;41&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;109.2&quot; width=&quot;54.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;42&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;75.6&quot; y=&quot;109.2&quot; width=&quot;39.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;42&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;111.8&quot; width=&quot;64.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;43&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;98.3&quot; y=&quot;111.8&quot; width=&quot;68.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;43&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;114.4&quot; width=&quot;60.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;44&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;81.5&quot; y=&quot;114.4&quot; width=&quot;100.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;44&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;117.0&quot; width=&quot;40.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;45&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;61.5&quot; y=&quot;117.0&quot; width=&quot;79.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;45&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;119.6&quot; width=&quot;55.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;46&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;76.3&quot; y=&quot;119.6&quot; width=&quot;89.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;46&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;122.2&quot; width=&quot;144.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;47&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;124.8&quot; width=&quot;84.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;48&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;127.4&quot; width=&quot;19.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;49&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;40.7&quot; y=&quot;127.4&quot; width=&quot;16.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;49&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;130.0&quot; width=&quot;74.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;50&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;95.9&quot; y=&quot;130.0&quot; width=&quot;92.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;50&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;132.6&quot; width=&quot;72.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;51&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;93.5&quot; y=&quot;132.6&quot; width=&quot;50.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;51&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;135.2&quot; width=&quot;30.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;52&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;137.8&quot; width=&quot;55.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;53&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;89.2&quot; y=&quot;137.8&quot; width=&quot;109.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;53&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;140.4&quot; width=&quot;10.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;54&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;57.9&quot; y=&quot;140.4&quot; width=&quot;13.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;54&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;143.0&quot; width=&quot;66.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;55&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;145.6&quot; width=&quot;12.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;56&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;46.0&quot; y=&quot;145.6&quot; width=&quot;18.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;56&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;148.2&quot; width=&quot;30.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;57&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;64.8&quot; y=&quot;148.2&quot; width=&quot;45.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;57&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;150.8&quot; width=&quot;34.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;58&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;68.1&quot; y=&quot;150.8&quot; width=&quot;33.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;58&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;153.4&quot; width=&quot;42.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;59&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;89.3&quot; y=&quot;153.4&quot; width=&quot;75.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;59&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;156.0&quot; width=&quot;20.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;60&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;67.7&quot; y=&quot;156.0&quot; width=&quot;19.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;60&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;56.0&quot; y=&quot;158.6&quot; width=&quot;49.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;61&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;109.8&quot; y=&quot;158.6&quot; width=&quot;31.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;61&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;161.2&quot; width=&quot;78.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;62&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;151.3&quot; y=&quot;161.2&quot; width=&quot;75.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;62&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;163.8&quot; width=&quot;91.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;63&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;164.6&quot; y=&quot;163.8&quot; width=&quot;71.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;63&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;166.4&quot; width=&quot;40.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;64&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;113.4&quot; y=&quot;166.4&quot; width=&quot;38.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;64&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;169.0&quot; width=&quot;41.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;65&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;114.5&quot; y=&quot;169.0&quot; width=&quot;58.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;65&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;171.6&quot; width=&quot;42.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;66&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;174.2&quot; width=&quot;47.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;67&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;120.5&quot; y=&quot;174.2&quot; width=&quot;62.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;67&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;176.8&quot; width=&quot;46.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;68&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;179.4&quot; width=&quot;150.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;69&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;182.0&quot; width=&quot;47.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;70&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;120.6&quot; y=&quot;182.0&quot; width=&quot;87.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;70&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;184.6&quot; width=&quot;63.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;71&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;187.2&quot; width=&quot;13.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;72&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;86.8&quot; y=&quot;187.2&quot; width=&quot;20.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;72&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;189.8&quot; width=&quot;10.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;73&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;83.1&quot; y=&quot;189.8&quot; width=&quot;16.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;73&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;192.4&quot; width=&quot;108.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;74&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;195.0&quot; width=&quot;51.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;75&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;124.1&quot; y=&quot;195.0&quot; width=&quot;35.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;75&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;197.6&quot; width=&quot;79.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;76&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;152.6&quot; y=&quot;197.6&quot; width=&quot;61.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;76&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;200.2&quot; width=&quot;30.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;77&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;202.8&quot; width=&quot;90.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;78&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;163.2&quot; y=&quot;202.8&quot; width=&quot;72.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;78&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;205.4&quot; width=&quot;8.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;79&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;81.7&quot; y=&quot;205.4&quot; width=&quot;17.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;79&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;208.0&quot; width=&quot;64.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;80&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;137.9&quot; y=&quot;208.0&quot; width=&quot;77.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;80&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;210.6&quot; width=&quot;125.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;81&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;213.2&quot; width=&quot;35.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;82&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;69.0&quot; y=&quot;215.8&quot; width=&quot;65.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;83&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;138.1&quot; y=&quot;215.8&quot; width=&quot;97.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;83&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;56.0&quot; y=&quot;218.4&quot; width=&quot;49.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;84&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;109.0&quot; y=&quot;218.4&quot; width=&quot;39.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;84&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;56.0&quot; y=&quot;221.0&quot; width=&quot;84.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;85&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;43.0&quot; y=&quot;223.6&quot; width=&quot;51.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;86&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;98.6&quot; y=&quot;223.6&quot; width=&quot;92.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;86&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;226.2&quot; width=&quot;110.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;87&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;228.8&quot; width=&quot;61.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;88&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;95.8&quot; y=&quot;228.8&quot; width=&quot;71.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;88&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;231.4&quot; width=&quot;57.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;89&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;91.3&quot; y=&quot;231.4&quot; width=&quot;81.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;89&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;234.0&quot; width=&quot;16.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;90&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;37.1&quot; y=&quot;234.0&quot; width=&quot;12.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;90&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;4.0&quot; y=&quot;236.6&quot; width=&quot;20.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;91&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;28.5&quot; y=&quot;236.6&quot; width=&quot;29.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;91&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;4.0&quot; y=&quot;239.2&quot; width=&quot;74.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;92&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;82.6&quot; y=&quot;239.2&quot; width=&quot;44.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;92&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;241.8&quot; width=&quot;76.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;93&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;244.4&quot; width=&quot;47.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;94&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;247.0&quot; width=&quot;25.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;95&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;46.8&quot; y=&quot;247.0&quot; width=&quot;50.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;95&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;249.6&quot; width=&quot;130.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;96&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;252.2&quot; width=&quot;166.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;97&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;254.8&quot; width=&quot;86.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;98&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;120.5&quot; y=&quot;254.8&quot; width=&quot;52.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;98&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;30.0&quot; y=&quot;257.4&quot; width=&quot;49.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;99&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;83.2&quot; y=&quot;257.4&quot; width=&quot;29.8&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;99&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;p class=&quot;race-name fig-label&quot;&gt;TensorFlow&lt;/p&gt;&lt;p class=&quot;race-count fig-small&quot;&gt;&lt;b&gt;100&lt;/b&gt; lines&lt;span class=&quot;race-says&quot;&gt;, very complex&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;race-lane l1&quot; data-lines=&quot;15&quot;&gt;&lt;svg class=&quot;race-code&quot; viewBox=&quot;0 0 240 260.0&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;4.0&quot; y=&quot;0.0&quot; width=&quot;143.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;0&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;2.6&quot; width=&quot;116.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;5.2&quot; width=&quot;115.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;7.8&quot; width=&quot;52.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;3&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;73.5&quot; y=&quot;7.8&quot; width=&quot;50.5&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;3&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;10.4&quot; width=&quot;67.1&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;4&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;88.1&quot; y=&quot;10.4&quot; width=&quot;66.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;4&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;13.0&quot; width=&quot;109.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;5&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;15.6&quot; width=&quot;49.7&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;6&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;70.7&quot; y=&quot;15.6&quot; width=&quot;66.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;6&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;18.2&quot; width=&quot;142.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;7&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;20.8&quot; width=&quot;124.4&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;8&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;23.4&quot; width=&quot;62.9&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;9&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;83.9&quot; y=&quot;23.4&quot; width=&quot;70.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;9&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;26.0&quot; width=&quot;126.0&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;10&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;28.6&quot; width=&quot;121.2&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;11&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;31.2&quot; width=&quot;118.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;12&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;17.0&quot; y=&quot;33.8&quot; width=&quot;127.6&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;13&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;4.0&quot; y=&quot;36.4&quot; width=&quot;112.3&quot; height=&quot;1.5&quot; rx=&quot;0.75&quot; data-line=&quot;14&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;p class=&quot;race-name fig-label&quot;&gt;Keras&lt;/p&gt;&lt;p class=&quot;race-count fig-small&quot;&gt;&lt;b&gt;15&lt;/b&gt; lines&lt;span class=&quot;race-says&quot;&gt;, pretty simple&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;race-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play race-play&quot;&gt;Write them again&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;The example comparison in the original article, not a general benchmark: a stroke for every line of its code.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-ecc06a4&quot;&gt;The issue that &lt;em&gt;Solution APIs&lt;/em&gt; did not resolve, has to do with the way humans had communicated for hundreds of thousands of years. We’re much better in explaining a research problem in words, rather than describe the solution in computer codes. It followed, that the obvious progression involved moving to what was to become the most important paradigm shift in the way humans interact with information systems since the &lt;em&gt;Mother of All Demos&lt;/em&gt; in 1962. That shift was the &lt;em&gt;Problem API.&lt;/em&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-problem-api&quot;&gt;The Problem API&lt;/h2&gt;
&lt;p id=&quot;p-a7e2698&quot;&gt;The big breakthrough in the field of machine intelligence didn’t come from new deep learning model architectures, or anything the field of research had focused on. Instead, it was a silent and painstakingly slow progression with a focus in the way humans interact with machines. The result was the first &lt;em&gt;Problem API.&lt;/em&gt; Today, in 2030, there are still many &lt;em&gt;Solution APIs,&lt;/em&gt; but researchers rarely use them. Instead, &lt;em&gt;Solution APIs&lt;/em&gt; are the building blocks for &lt;em&gt;Problem APIs&lt;/em&gt; in the same way differentiation engines were building blocks for the &lt;em&gt;Solution APIs&lt;/em&gt;. The idea of the &lt;em&gt;Problem API&lt;/em&gt; was very simple; for thousands of years, the research process had focused on asking questions (stating problems) and then through a rigorous process, finding answers. In retrospect, it became obvious that the future of research would be to follow the same proven paradigm. Moreover, the ability to articulate problems in human language dramatically expanded the number of researchers — and other people — benefiting from developments in machine intelligence.&lt;/p&gt;
&lt;figure class=&quot;fig shift&quot; data-fig=&quot;shift&quot; aria-label=&quot;Abstraction from specific to general&quot;&gt;&lt;div class=&quot;shift-rows&quot;&gt;&lt;span class=&quot;shift-line&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;ol class=&quot;shift-row&quot; style=&quot;--n:2&quot;&gt;&lt;li&gt;Specific&lt;/li&gt;&lt;li class=&quot;on&quot;&gt;General&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;shift-row&quot; style=&quot;--n:2&quot;&gt;&lt;li&gt;Solution&lt;/li&gt;&lt;li class=&quot;on&quot;&gt;Problem&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class=&quot;fig-controls shift-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;input type=&quot;range&quot; min=&quot;0&quot; max=&quot;100&quot; value=&quot;100&quot; step=&quot;1&quot; aria-label=&quot;From what was to what came&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play shift-play&quot;&gt;Play the shift&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;From the specific to the general, and from the solution to the problem: the shift proposed in the original illustration.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-00cb140&quot;&gt;By 2020 more than a million researchers were using &lt;em&gt;Solution APIs&lt;/em&gt; across virtually all imaginable fields of science and industry. After more than 50 years of neural network research and development, AI was finally taking off.&lt;/p&gt;
&lt;p id=&quot;p-13426e6&quot;&gt;Still, the machine was left dependent on having a human — either through programming or a drag-and-drop builder — to articulate the solution in clear and precise terms. The ability of the machine to solve a given problem heavily dependent on a highly skilled human to give it precise instructions on how to do it. Instructing of &lt;em&gt;Solution APIs&lt;/em&gt; required an understanding of specialized language, statistical functions, and many other complex matters. Some of this complexity was carried over to the first &lt;em&gt;Problem APIs;&lt;/em&gt; a moderate degree of technical-savvy was still expected for taking the full advantage of the system.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-voice-revolution&quot;&gt;The Voice Revolution&lt;/h2&gt;
&lt;p id=&quot;p-14ed9e8&quot;&gt;Developments in voice comprehension and synthesis had recently made it possible to have meaningful interactions with machines without using anything but voice. Voice removed the need for complex controls that had perpetuated the divide between the highly skilled 0.1% and the rest of the world’s population.&lt;/p&gt;
&lt;figure class=&quot;fig shift&quot; data-fig=&quot;shift&quot; aria-label=&quot;The progression towards voice interaction&quot;&gt;&lt;div class=&quot;shift-rows&quot;&gt;&lt;span class=&quot;shift-line&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;ol class=&quot;shift-row&quot; style=&quot;--n:2&quot;&gt;&lt;li&gt;Specific&lt;/li&gt;&lt;li class=&quot;on&quot;&gt;General&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;shift-row&quot; style=&quot;--n:2&quot;&gt;&lt;li&gt;Solution&lt;/li&gt;&lt;li class=&quot;on&quot;&gt;Problem&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;shift-row&quot; style=&quot;--n:3&quot;&gt;&lt;li&gt;Coding&lt;/li&gt;&lt;li&gt;Builder&lt;/li&gt;&lt;li class=&quot;on&quot;&gt;Voice&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class=&quot;fig-controls shift-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;input type=&quot;range&quot; min=&quot;0&quot; max=&quot;100&quot; value=&quot;100&quot; step=&quot;1&quot; aria-label=&quot;From what was to what came&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play shift-play&quot;&gt;Play the shift&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;Three dimensions of the proposed progression: scope, focus and interaction.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-95c65d2&quot;&gt;The emergence of solution APIs and their convergence with voice technology grew the number of people with access to state-of-the-art AI from several million people in 2020 to several hundred million people in 2030. An unprecedented era of scientific discovery, innovation, and human creativity had started.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;automated-researcher-and-beyond&quot;&gt;Automated Researcher and Beyond&lt;/h2&gt;
&lt;p id=&quot;p-9802587&quot;&gt;In 2030, there is still some way to go towards a truly automated researcher. Human researchers believe — with everything we know today — that it should not take more than five to ten years before the early 21st-century role of data scientists is made redundant by machine intelligence based systems. The future roadmap now also included a pseudo-autonomous version of the automated researcher.&lt;/p&gt;
&lt;figure class=&quot;fig timeline&quot; data-fig=&quot;timeline&quot; data-from=&quot;2015&quot; data-to=&quot;2045&quot; data-written=&quot;2019-05&quot; aria-label=&quot;The proposed research timeline&quot;&gt;&lt;div class=&quot;timeline-track&quot;&gt;&lt;ol class=&quot;timeline-events&quot;&gt;&lt;li style=&quot;--at:0.0000&quot;&gt;&lt;span class=&quot;timeline-name&quot;&gt;Generality&lt;/span&gt;&lt;span class=&quot;timeline-year fig-small&quot;&gt;2015&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;--at:0.3333&quot;&gt;&lt;span class=&quot;timeline-name&quot;&gt;Solution API&lt;/span&gt;&lt;span class=&quot;timeline-year fig-small&quot;&gt;2025&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;--at:0.6667&quot;&gt;&lt;span class=&quot;timeline-name&quot;&gt;Automated researcher&lt;/span&gt;&lt;span class=&quot;timeline-year fig-small&quot;&gt;2035&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;--at:1.0000&quot;&gt;&lt;span class=&quot;timeline-name&quot;&gt;Autonomous researcher&lt;/span&gt;&lt;span class=&quot;timeline-year fig-small&quot;&gt;2045&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class=&quot;timeline-since&quot; hidden&gt;&lt;/span&gt;&lt;span class=&quot;timeline-mark written fig-label&quot; style=&quot;--at:0.1444&quot;&gt;&lt;span&gt;Written&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;timeline-mark today fig-label&quot; hidden&gt;&lt;span&gt;Today&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;timeline-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Written in May 2019.&lt;/p&gt;&lt;figcaption&gt;A speculative timeline published in May 2019. These are the original proposed dates, not claims of completed milestones.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-55a738b&quot;&gt;The automated researcher is a precursor to pseudo-autonomous research systems that are not only able to test a hypothesis, but to take the results of the performed research, and formulate a new hypothesis based on the findings. This means that the system is able to explore research topics horizontally and vertically without end. While the premise of an autonomous system is simple — the output of the system needs to be an acceptable input for the same system — much work is still required before autonomous research systems will play an important role in answering the most pressing questions of humanity.&lt;/p&gt;
&lt;figure class=&quot;fig loop&quot; data-fig=&quot;loop&quot; data-says-open=&quot;The output stops at the gap: no potential.&quot; data-says-closed=&quot;The output is input again: autonomy potential.&quot; aria-label=&quot;The feedback required for autonomy&quot;&gt;&lt;svg class=&quot;loop-plot&quot; viewBox=&quot;0 0 680 250&quot; role=&quot;img&quot; aria-label=&quot;Input to Process to Output. Where the output connects back to the input: autonomy potential. Where it does not: no potential.&quot;&gt;&lt;defs&gt;&lt;marker id=&quot;research-feedback-ink&quot; class=&quot;head-ink&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;8&quot; refY=&quot;5&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; orient=&quot;auto-start-reverse&quot;&gt;&lt;path d=&quot;M1 1 L8 5 L1 9&quot;&gt;&lt;/path&gt;&lt;/marker&gt;&lt;marker id=&quot;research-feedback-accent&quot; class=&quot;head-accent&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;8&quot; refY=&quot;5&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; orient=&quot;auto-start-reverse&quot;&gt;&lt;path d=&quot;M1 1 L8 5 L1 9&quot;&gt;&lt;/path&gt;&lt;/marker&gt;&lt;marker id=&quot;research-feedback-quiet&quot; class=&quot;head-quiet&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;8&quot; refY=&quot;5&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; orient=&quot;auto-start-reverse&quot;&gt;&lt;path d=&quot;M1 1 L8 5 L1 9&quot;&gt;&lt;/path&gt;&lt;/marker&gt;&lt;/defs&gt;&lt;path class=&quot;guide closed-guide&quot; d=&quot;M96 125 H584 V44 H96 V125&quot;&gt;&lt;/path&gt;&lt;path class=&quot;guide open-guide&quot; d=&quot;M96 125 H584 V206 H464&quot;&gt;&lt;/path&gt;&lt;path class=&quot;forward&quot; d=&quot;M154 125 H266&quot; marker-end=&quot;url(#research-feedback-ink)&quot;&gt;&lt;/path&gt;&lt;path class=&quot;forward&quot; d=&quot;M414 125 H520&quot; marker-end=&quot;url(#research-feedback-ink)&quot;&gt;&lt;/path&gt;&lt;path class=&quot;back closed&quot; d=&quot;M584 105 V44 H96 V101&quot; marker-end=&quot;url(#research-feedback-accent)&quot;&gt;&lt;/path&gt;&lt;path class=&quot;back open&quot; d=&quot;M584 145 V206 H464&quot;&gt;&lt;/path&gt;&lt;path class=&quot;back open&quot; d=&quot;M216 206 H96 V149&quot; marker-end=&quot;url(#research-feedback-quiet)&quot;&gt;&lt;/path&gt;&lt;text class=&quot;node&quot; x=&quot;96&quot; y=&quot;131&quot; text-anchor=&quot;middle&quot;&gt;INPUT&lt;/text&gt;&lt;text class=&quot;node&quot; x=&quot;340&quot; y=&quot;131&quot; text-anchor=&quot;middle&quot;&gt;PROCESS&lt;/text&gt;&lt;text class=&quot;node&quot; x=&quot;584&quot; y=&quot;131&quot; text-anchor=&quot;middle&quot;&gt;OUTPUT&lt;/text&gt;&lt;text class=&quot;back-label closed&quot; x=&quot;340&quot; y=&quot;32&quot; text-anchor=&quot;middle&quot;&gt;autonomy potential&lt;/text&gt;&lt;text class=&quot;back-label open&quot; x=&quot;340&quot; y=&quot;244&quot; text-anchor=&quot;middle&quot;&gt;no potential&lt;/text&gt;&lt;circle class=&quot;pulse&quot; r=&quot;6&quot; cx=&quot;96&quot; cy=&quot;125&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;div class=&quot;loop-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;label class=&quot;switch&quot;&gt;&lt;input type=&quot;checkbox&quot; data-close=&quot;&quot;&gt; Output back into input&lt;/label&gt;&lt;/div&gt;&lt;p class=&quot;loop-status fig-small&quot; role=&quot;status&quot;&gt;&lt;/p&gt;&lt;figcaption&gt;The role of feedback, in the original conceptual diagram.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-12b7bc9&quot;&gt;Eventually, autonomous research systems would be able to discover completely new fields of science. Nobody is able to say precisely how long it would take before development would reach that point. Once processes related with hypothesis testing became mature, work on hypothesis formulation would no doubt accelerate exactly in the same way we had seen taking place with first &lt;em&gt;Solution APIs&lt;/em&gt; followed by &lt;em&gt;Problem APIs.&lt;/em&gt; At least until 2032, our research have been focused on the ability of the system to formulate meaningful qualitative insights from a literature review or quantitative data analysis.&lt;/p&gt;
&lt;figure class=&quot;fig pipeline&quot; data-fig=&quot;pipeline&quot; aria-label=&quot;Research activities and hypothesis formulation&quot;&gt;&lt;ol class=&quot;pipeline-groups&quot; style=&quot;--total:5&quot;&gt;&lt;li class=&quot;pipeline-group lit&quot; style=&quot;--steps:4&quot;&gt;&lt;span class=&quot;pipeline-group-name fig-label&quot;&gt;Hypothesis testing&lt;/span&gt;&lt;ol class=&quot;pipeline-steps&quot;&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;0&quot;&gt;&lt;span class=&quot;pipeline-n&quot; aria-hidden=&quot;true&quot;&gt;1.&lt;/span&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;literature review&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;1&quot;&gt;&lt;span class=&quot;pipeline-n&quot; aria-hidden=&quot;true&quot;&gt;2.&lt;/span&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;quantitative data analysis&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;2&quot;&gt;&lt;span class=&quot;pipeline-n&quot; aria-hidden=&quot;true&quot;&gt;3.&lt;/span&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;qualitative data analysis&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;3&quot;&gt;&lt;span class=&quot;pipeline-n&quot; aria-hidden=&quot;true&quot;&gt;4.&lt;/span&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;conclusion summarization&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li class=&quot;pipeline-group lit&quot; style=&quot;--steps:1&quot;&gt;&lt;span class=&quot;pipeline-group-name fig-label&quot;&gt;Hypothesis formulation&lt;/span&gt;&lt;ol class=&quot;pipeline-steps&quot;&gt;&lt;li class=&quot;pipeline-step lit&quot; data-i=&quot;4&quot;&gt;&lt;span class=&quot;pipeline-n&quot; aria-hidden=&quot;true&quot;&gt;5.&lt;/span&gt;&lt;span class=&quot;pipeline-name fig-small&quot;&gt;future work prescription&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;pipeline-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play pipeline-play&quot;&gt;Play the 5 steps&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;The five research activities of the original illustration: four test a hypothesis, the fifth formulates the next.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-14d6a54&quot;&gt;Once the machine would be able to formulate qualitative insights, expanding the capability to forming new questions based on available answers — including questions that had never been asked before — is going to be merely a matter of time.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;learn-more-about-autonomio-here&quot;&gt;Learn more about Autonomio &lt;a href=&quot;http://autonom.io&quot;&gt;here&lt;/a&gt;.&lt;/h3&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;read-more-about-systemic-risks-related-to-ai-here&quot;&gt;Read more about systemic risks related to AI &lt;a href=&quot;https://mikkokotila.com/writing/thou-shalt-not-fear-automatons/&quot;&gt;here&lt;/a&gt;.&lt;/h3&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;if-you--the-article-please-share-it&quot;&gt;If you ♥ the article, please share it.&lt;/h3&gt;</content></entry><entry><title>How to (not) buy an online ad impression?</title><link href="https://mikkokotila.com/writing/how-to-not-buy-an-online-ad-impression/"/><id>https://mikkokotila.com/writing/how-to-not-buy-an-online-ad-impression/</id><published>2019-04-25T00:00:00Z</published><updated>2019-04-25T00:00:00Z</updated><category term="advertising"/><summary>This article provides a useful model for thinking about the supply-chain that is involved in the process of acquiring an online ad impression.</summary><content type="html">&lt;p id=&quot;p-d0eb588&quot; class=&quot;opening&quot;&gt;This article provides a useful model for thinking about the supply-chain that is involved in the process of acquiring an online ad impression. The model is part of a wider effort to establish a robust transparency framework that can be readily applied regardless of brand category or &lt;span class=&quot;nowrap&quot;&gt;other factor.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;a-brief-history-of-online-advertisings&quot;&gt;A brief history of online advertisings&lt;/h2&gt;
&lt;p id=&quot;p-9110ccb&quot;&gt;Twenty years ago in the advent of digital advertising, a typical media buying process included the advertiser, the publisher, and the internet user. As a result, the value exchange between the advertiser and the publisher was clear, as was the value exchange between the media owner and the internet user.&lt;/p&gt;
&lt;!-- image unavailable: https://nearfuturetoday.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-25-at-11.36.12-AM.png --&gt;
&lt;p id=&quot;p-cb9b488&quot;&gt;In its simplest, online advertising can be explained as an interaction between the three principal parties. People, advertisers, and publishers. Today a typical investment in an online media impression involves a convoluted supply chain where strict responsibilities are unclear and the majority of the advertiser’s money ends up in other pockets than the publishers’.&lt;/p&gt;
&lt;p id=&quot;p-eac60f6&quot;&gt;In the three-party transaction, responsibilities were clear and 100% of advertiser’s investment went to the publisher. Because publishers were appropriately compensated for their investment into content production and infrastructure, the idea that they would have allowed data collectors and other intermediaries between themselves and the advertisers would have seemed absurd.&lt;/p&gt;
&lt;p id=&quot;p-0ebd10b&quot;&gt;For example, there was no need for ad networks. Ad networks appeared in the marketplace as they saw an opportunity to become part of the rapidly growing market. Ad networks made themselves relevant by promising a) advertisers (and their agency partners) efficiency and scale, and b) publishers steady supply. What neither advertisers or publishers clearly understood, was that ad networks were really focused on making money for ad networks, as opposed to making advertising better. A typical ad network charged at least 50% of spend as commission and made the marketplace far less transparent. The lack of transparency became the basis for a plethora of other problems, including fraud, rampant brand safety risks, and data leakage.&lt;/p&gt;
&lt;p id=&quot;p-c7b96eb&quot;&gt;In the following two decades, many new parties were introduced in the ecosystem. Virtually all of these parties followed the same model; promise scale and efficiency while charging a commission from the advertiser’s media spend. Knowing that online advertising would eventually end up a trillion dollar market, it became the go-to for those seeking quick internet riches.&lt;/p&gt;
&lt;!-- image unavailable: https://nearfuturetoday.com/wp-content/uploads/2019/04/test.png --&gt;
&lt;p id=&quot;p-8230e81&quot;&gt;As a result of the market opportunity, there are today roughly 10,000 companies that compete for their share of the advertisers’ money. These companies can be readily categorized as &lt;em&gt;secondary, tertiary, &lt;/em&gt;and &lt;em&gt;bottom feeders. &lt;/em&gt;In a future article we will go deeper into explaining the distinction of each. The key point is in the degree of connection a player has with the advertiser whose money their earnings are resulting from.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;what-can-advertisers-do&quot;&gt;What can advertisers do?&lt;/h2&gt;
&lt;p id=&quot;p-f4ba5a3&quot;&gt;In the above-described complex, and opaque market, advertisers are best positioned working with partners whose sole focus is on working with advertisers. For example, everything else being the same, advertisers are likely to get better results from working with a DSP that only works with advertisers, as opposed to one that also works with agencies. Same applies to verification companies, data partners, and basically any other category of company.&lt;/p&gt;</content></entry><entry><title>Is GDPR unfair to smaller publishers?</title><link href="https://mikkokotila.com/writing/is-gdpr-unfair-to-smaller-publishers/"/><id>https://mikkokotila.com/writing/is-gdpr-unfair-to-smaller-publishers/</id><published>2019-04-17T00:00:00Z</published><updated>2019-04-17T00:00:00Z</updated><category term="privacy"/><category term="advertising"/><summary>Since the rolling-out of GDPR, some websites have been stopped serving content to visitors from EU. As a result, an argument have been made that GDPR penalize smaller publishers due to the cost of being compliant.</summary><content type="html">&lt;p id=&quot;p-e2b98e6&quot; class=&quot;opening&quot;&gt;Since the rolling-out of GDPR, some websites have been stopped serving content to visitors from EU. As a result, an argument have been made that GDPR penalize smaller publishers due to the cost of being compliant. This article provides a simple model for answering if that’s really &lt;span class=&quot;nowrap&quot;&gt;the case.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;does-gdpr-create-an-unfair-advantage-for-larger-publishers-or-platforms&quot;&gt;Does GDPR create an unfair advantage for larger publishers (or platforms)?&lt;/h2&gt;
&lt;p id=&quot;p-7c0289e&quot;&gt;The very short answer is that it does not. The most apparent advantage is related with how dependent a given publisher or platform is with people’s data in the first place. An actor whose business model is not dependent on people’s data has an advantage over anyone else. As the dependency increases, the advantage decreases.&lt;/p&gt;
&lt;p id=&quot;p-c26c43c&quot;&gt;Generally size is associated with available resources, but it’s not strictly the case. Sometimes bigger players are poorly resourced, but an early startup may be very well resourced. As dependency on people’s data increase, the required resources to comply with GDPR also increase.&lt;/p&gt;
&lt;!-- image unavailable: https://nearfuturetoday.com/wp-content/uploads/2019/04/GDPR_depedency_resources.png --&gt;
&lt;p id=&quot;p-32a8a3a&quot;&gt;Out of these two – resources and depedency – dependency (on people’s data) is more prominent. This means that when the depedency is low enough, compliance has negligible cost and is therefore equally feasible regardless of resources. On the other hand, at a certain level of resources even the most dependent (and therefore complex) models are feasible. Consequently, it follows that there are scenarios where poorly resourced actors are at disadvantage in terms of the most complex (most depedent) models.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;what-can-poorly-resourced-players-do&quot;&gt;What can poorly resourced players do?&lt;/h2&gt;
&lt;p id=&quot;p-4b9abea&quot;&gt;By far the simplest strategy is to reduce dependency on people’s data, and instead innovate around contextual and other under-leveraged data surfaces.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;what-can-advertisers-do&quot;&gt;What can advertisers do?&lt;/h2&gt;
&lt;p id=&quot;p-6a443d7&quot;&gt;Advertisers have an important role to play here. The more advertisers are willing to support players that focus on innovation in contextual advertising and other under-leveraged opportunities which reduce dependency on people’s data, the more there will be such options available in the market place. It’s very important to keep in mind that there is no scientific evidence to support economic viability (in comparison to meaningful options) of advertising models that depend on people’s data.&lt;/p&gt;</content></entry><entry><title>Creating brand safe markets in a digital world</title><link href="https://mikkokotila.com/writing/creating-brand-safe-markets-in-a-digital-world/"/><id>https://mikkokotila.com/writing/creating-brand-safe-markets-in-a-digital-world/</id><published>2019-04-05T00:00:00Z</published><updated>2019-04-05T00:00:00Z</updated><category term="advertising"/><summary>The sensational reporting we find in the media, regarding so-called “fake-news,” does little more than scratches the surface of what has grown into a multi-billion dollar political clickbait eco-system.</summary><content type="html">&lt;p id=&quot;p-eee42e0&quot; class=&quot;opening&quot;&gt;The sensational reporting we find in the media, regarding so-called “fake-news,” does little more than scratches the surface of what has grown into a multi-billion dollar political clickbait eco-system. This article is first in a series that quantifies the problem in &lt;span class=&quot;nowrap&quot;&gt;meaningful terms.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;inside-the-hyperpartisan-and-fake-news-eco-system&quot;&gt;Inside the hyperpartisan and “fake” news eco-system&lt;/h2&gt;
&lt;p id=&quot;p-5d1059d&quot;&gt;This year several billion dollars in online media spend goes directly into funding divisive hyperpartisan content. There are thousands of sites that share this new lucrative business model; publish virulent political clickbait, use social media to make the content spread like wildfire, and monetize the traffic with major ad platforms. Instead of being legitimate news sources, these sites represent the latest in two decades of get-rich-quick schemes that exploit the internet users and advertisers. Already during the 2016 US Presidential Election, more than a billion in advertising dollars went to fake and hyperpartisan news sites. The idea is very simple; use disinformation and emotional triggers to maximize the impact of political messaging. The goal is political gain, money, or both. For the first time in history, production and spreading of disinformation have become directly associated with, and significantly funded by major brand advertising. Whereas advertising revenues have in the past been a means for funding quality journalism, it is increasingly doing the opposite. As a testament to this, since 2015, ad-funded hyperpartisan news sites have become the fastest-growing category of websites. Digital media spend increasingly end up funding hyperpartisan politics, adversarial state-level propaganda, and other forms of news content that create division in society. Left unchecked, 5% to 10% of all programmatic advertising spend will go to hyperpartisan news sites by the end of 2020. This new disinformation eco-system is using the ad-funded internet as intended; grab the user’s attention, influence their opinion, and have that somehow reflect real-life events. As most of the operators of such sites are motivated by advertising revenue alone, the only effective way to address the problem is to stop funding such sites altogether.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;what-does-this-mean-for-advertisers&quot;&gt;What does this mean for Advertisers?&lt;/h2&gt;
&lt;p id=&quot;p-12c5c23&quot;&gt;For major brands, fake and hyperpartisan news is not just an ethical problem, but a commercial one. Brands can only lose from division between people in the society. For example, when a liberal consumer sees an advertisement on a conservative site, the assumption is that the brand explicitly sponsors the content. Researchers found that people who saw banana on-screen in a superstitious context were later far more likely to associate banana with superstition.&lt;/p&gt;
&lt;!-- image unavailable: https://nearfuturetoday.com/wp-content/uploads/2019/04/science_brand_safety_research_reason.png --&gt;
&lt;p id=&quot;p-4de4a6d&quot;&gt;In addition to the customers who buy products, a company also needs to consider investors, and their attitudes towards the company. The responsibility of a corporation is to its shareholders. Consequently there is no way to justify funding hyperpartisan content with media budgets; it would always be against the perceived values of a notable part of the shareholders. In addition to the damage resulting from the negative brand association, many other negative consequences are arising from hyperpartisan news ecosystem.&lt;/p&gt;</content></entry><entry><title>Is advertising what’s wrong with the internet?</title><link href="https://mikkokotila.com/writing/is-advertising-whats-wrong-with-the-internet/"/><id>https://mikkokotila.com/writing/is-advertising-whats-wrong-with-the-internet/</id><published>2019-04-05T00:00:00Z</published><updated>2019-04-05T00:00:00Z</updated><category term="advertising"/><summary>The current digital model of advertising closely follows the doctrine of communications popularized during the early years of 20th-century.</summary><content type="html">&lt;p id=&quot;p-8ef12d8&quot; class=&quot;opening&quot;&gt;The current digital model of advertising closely follows the doctrine of communications popularized during the early years of 20th-century. Perhaps the most inspiring literary work of the genre, Obvious Adams by Robert Updegraff, was published in 1916, a year after the horse population reached its peak. One of the issues with digital advertising is that it is merely an “on steroids” version of a system that dates back to a time when most people did not have a car, phone, or electricity. It was a world characterized by a lack of connection. The way of living of an average person in 1916 it was more like the way we lived a million years ago than how we live today. In such a world, it made sense that brands used the few opportunities they had to connect with people. However, in a hyperconnected world, it does not &lt;span class=&quot;nowrap&quot;&gt;make sense.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-affefe7&quot;&gt;In the most massive boycott in human history, roughly one in every three internet users take active measures to protect themselves and their loved ones from online advertising.&lt;/p&gt;
&lt;p id=&quot;p-61604fe&quot;&gt;Visiting an average website, more than 80 percent of the downloaded data is associated with advertising, and in many countries, an average person will pay more than 10 percent of their monthly salary for 1 GB of data.&lt;/p&gt;
&lt;p id=&quot;p-19a2e81&quot;&gt;The inventor of Javascript, the technology the modern web is built on, famously said that the surest way to get malware on the internet is through an ad.&lt;/p&gt;
&lt;p id=&quot;p-538df95&quot;&gt;Advertising fraud, a form of international crime entirely based on exploiting online advertising, based on the most conservative estimates is more substantial than the next five cyber crimes combined.&lt;/p&gt;
&lt;p id=&quot;p-d054401&quot;&gt;Terrorism, political extremism, adversarial influence campaigns that aim towards creating division and confusion in the society, all focused on leveraging the advertising-funded internet, have become a severe threat to democracy and civil society.&lt;/p&gt;
&lt;p id=&quot;p-9326239&quot;&gt;All the while much of journalism, the alleged guardians of truth, have been reduced to virulent clickbait and occasionally, outright deceit.&lt;/p&gt;
&lt;p id=&quot;p-21972c4&quot;&gt;Still, the most concerning aspect seem to be the economic model of online advertising. A practice referred to as cognitive harvesting.&lt;/p&gt;
&lt;p id=&quot;p-574e359&quot;&gt;One prominent platform reported 9 billion hours of monthly use, that is, 9 billion hours of cognitive energy. The platform in question is known for utilizing similar techniques as casinos, to convert people’s cognitive energy to as many ad views and clicks as possible. Peak use on the platform takes place during working hours. The platform reported earning $0.30 per every person-hour of time contributed on the platform. In comparison, the OECD total for GDP per person-hour is $47.26.&lt;/p&gt;
&lt;p id=&quot;p-d61b997&quot;&gt;Virtually all platforms follow the same model based on the idea that it’s meaningful to algorithmically harvest human cognition and then sell it pennies-for-dollars to the highest bidder.&lt;/p&gt;
&lt;p id=&quot;p-14b02b4&quot;&gt;Even if today’s system of digital advertising is not what’s wrong with the internet, it is an integral part of what is wrong with advertising.&lt;/p&gt;
&lt;p id=&quot;p-3d82bcc&quot;&gt;We have now a quarter of a century of evidence on the adverse effects of advertising on the internet, let’s use the next quarter of a century to find something with a positive impact. Embracing this opportunity, I do not doubt that in just ten years from now we will look at much of today’s digital advertising similarly as we look at email spam now.&lt;/p&gt;
&lt;p id=&quot;p-84119d3&quot;&gt;Let us not lose sight of the critically important role brands plays in the market economy. We must assume our responsibility for using the power we have to support the development of an internet we can be proud of. An internet we will be happy to leave to our children and future generations.&lt;/p&gt;</content></entry><entry><title>Unlocking the human future of the internet</title><link href="https://mikkokotila.com/writing/unlocking-the-human-future-of-the-internet/"/><id>https://mikkokotila.com/writing/unlocking-the-human-future-of-the-internet/</id><published>2019-03-11T00:00:00Z</published><updated>2019-03-11T00:00:00Z</updated><category term="decentralization"/><summary>“EKA’s initiatives focus on energy efficient peer-to-peer networking, availability of co-creation tools, and the way humans interact with them. Our initiatives are structured as open-source projects, with emphasis on modularity, documentation, permissive licensing, and other…</summary><content type="html">&lt;p id=&quot;p-8eabcaa&quot;&gt;“EKA’s initiatives focus on energy efficient peer-to-peer networking, availability of co-creation tools, and the way humans interact with them. Our initiatives are structured as open-source projects, with emphasis on modularity, documentation, permissive licensing, and other means that allow wide-adoption among community developers as well as global technology innovators. EKA regularly publishes research findings to enable stakeholders to think in a fundamentally different way about internet technology and how such technology affects human life and communities. EKA is currently active in several key trans-himalayan locations, with active community mesh networks in Ladakh, Spiti, and Himachal Pradesh, including the highest altitude solar-powered, community maintained network in the world.”&lt;/p&gt;
&lt;p id=&quot;p-b9c77f2&quot;&gt;LEARN MORE:&lt;/p&gt;
&lt;p id=&quot;p-ccc7bc2&quot;&gt;&lt;a href=&quot;https://medium.com/eka-foundation/things-i-learned-building-skynet-3033a4ce8992&quot;&gt;&lt;em&gt;Things I learned building the Skynet&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-8d9eeb9&quot;&gt;&lt;em&gt;&lt;a href=&quot;https://medium.com/eka-foundation/thoughts-on-pseudo-decentralization-e07c306aa388&quot;&gt;Thoughts on pseudo-decentralization&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content></entry><entry><title>Thou Shalt Not Fear Automatons</title><link href="https://mikkokotila.com/writing/thou-shalt-not-fear-automatons/"/><id>https://mikkokotila.com/writing/thou-shalt-not-fear-automatons/</id><published>2019-02-18T00:00:00Z</published><updated>2019-02-18T00:00:00Z</updated><category term="machine-intelligence"/><summary>In this article, I will show that unlike the pundits would like you to think, it’s our ignorance we should fear, not the intelligence of machines.</summary><content type="html">&lt;p id=&quot;p-5ff57f4&quot;&gt;TL;DR&lt;/p&gt;
&lt;p id=&quot;p-41ec1b4&quot;&gt;The imminent danger of Artificial Intelligence has nothing to do with machines becoming too intelligent. It has to do with machines inheriting the ignorance of people.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;p id=&quot;p-aba4212&quot;&gt;Whom should we believe about the magnitude of change that comes with Artificial Intelligence? Andrew Ng when he says AI is the next electricity, or Francois Chollet when he says it’s more like the invention of human language? Should we take it seriously when Elon Musk says that we need to fear machines enslaving us, and the solution is to embed the machine into our brains? How about Rand Corporation talking about AI as the next nuclear armament, or Vladimir Putin arguing that the hegemony is his who has the best AIs? How about Roko’s Basilisk, if I did not mention it here, would I have paved my way to eternal suffering? Who is right? Should we be hopeful, afraid, or both?&lt;/p&gt;
&lt;p id=&quot;p-191b73e&quot;&gt;To answer these questions, in this article I will establish three simple arguments in easy enough to understand terms:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-d4429f4&quot;&gt;While we can’t know for sure how intelligent machines can be, we know for sure how stupid humans can&lt;/li&gt;
&lt;li id=&quot;p-0fb2218&quot;&gt;Talking about the ethics of Artificial Intelligence is less important than talking about the ethics of human beings&lt;/li&gt;
&lt;li id=&quot;p-edda377&quot;&gt;Artificial Intelligence is and will continue (at least for some decades) to be about process automation, not about autonomy&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-3c11a6a&quot;&gt;As a bonus, I will show how we already are to some extent ruled by incredibly dumb computer systems. Computer systems that are created by poorly motivated junior engineers and wanna-be data scientists, who are working under the influence of short-sighted salespeople and venture capitalists.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;humans-suck-at-making-good-decisions&quot;&gt;Humans Suck at Making (Good) Decisions&lt;/h2&gt;
&lt;blockquote id=&quot;p-1fc99a1&quot;&gt;
&lt;p&gt;While we can’t know for sure how intelligent machines can be, we know for sure how stupid humans can be.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-31997ee&quot;&gt;That’s right. We suck at making decisions. Consider Daniel Kahneman’s work on system-1 and our understanding of the Vagus nerve. The Vagus nerve is a part of our brain that’s been around for a long time. Several hundred million years at least. Ever seen a startled lizard quickly run away? That’s the Vagus nerve in action. In a nutshell, Kahneman shows in his Nobel Prize-winning work that regardless of how rational we think our process for making decisions is, when it comes to the moment of making the decision, we often disregard the fruit of all deliberation (even if it may have taken years to deliberate) and go for whichever option “feels” right. Kahneman calls this “thinking fast” or system-1, in contrast to how we think we are thinking, which Kahneman refers to as “thinking slow” or system-2. One way of understanding this is that in the more superficial parts of our brain, we have much capacity for rational processing of information, but very little authority to use that information for making decisions. In the very deep part of our brain where the Vagus nerve is, we have no rational capacity, but a lot of authority.&lt;/p&gt;
&lt;figure class=&quot;fig plate wide&quot; data-fig=&quot;plate&quot; data-intro=&quot;The industry’s answer to a machine that gets it wrong, seen from the inside. Choose the mark.&quot; style=&quot;--natural:500px&quot;&gt;&lt;div class=&quot;plate-head&quot;&gt;&lt;span class=&quot;plate-number&quot;&gt;Plate I&lt;/span&gt;&lt;span class=&quot;plate-title&quot;&gt;Human in the loop&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;plate-notes&quot; aria-pressed=&quot;true&quot; hidden&gt;Notes&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;plate-view&quot;&gt;&lt;div class=&quot;plate-zoom&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/thou-shalt-not-fear-automatons/6d0c7395f6e7-1.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;A cartoon depiction of thought: a creature inside a head, in a desert&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;span class=&quot;plate-mark&quot; style=&quot;left:48.0%;top:38.0%;--i:0&quot; data-mark=&quot;1&quot; aria-hidden=&quot;true&quot;&gt;i&lt;/span&gt;&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;plate-whole&quot; hidden&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;circle cx=&quot;8.5&quot; cy=&quot;8.5&quot; r=&quot;5.75&quot;&gt;&lt;/circle&gt;&lt;path d=&quot;M5.75 8.5h5.5M12.7 12.7l4.8 4.8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Whole picture&lt;/button&gt;&lt;/div&gt;&lt;ol class=&quot;plate-key&quot;&gt;&lt;li data-note=&quot;1&quot;&gt;&lt;span class=&quot;plate-numeral&quot; aria-hidden=&quot;true&quot;&gt;i&lt;/span&gt;&lt;span&gt;&lt;dfn&gt;Human in the loop.&lt;/dfn&gt; The safeguard that keeps a person in charge of the machine’s decisions.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;plate-steps&quot; hidden&gt;&lt;button type=&quot;button&quot; data-step=&quot;-1&quot; aria-label=&quot;Previous note&quot;&gt;←&lt;/button&gt;&lt;span class=&quot;plate-at&quot;&gt;&lt;/span&gt;&lt;button type=&quot;button&quot; data-step=&quot;1&quot; aria-label=&quot;Next note&quot;&gt;→&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-813c278&quot;&gt;And it’s not just Kahneman; the field of psychology is made of theories just like his. Indeed, you might have a hard time finding theories that make a strong case for us humans being good at making decisions. This takes us to one of the critical risks related to AI; humans making decisions about artificial intelligence-based decision-making systems.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;how-artificial-intelligence-works&quot;&gt;How Artificial Intelligence Works&lt;/h2&gt;
&lt;p id=&quot;p-9343d07&quot;&gt;Artificial intelligence solutions can be reduced into two aspects; the data inputs, and the means by which the inputs are processed. These two are the causes of the results arising from a given system. Very simply put, the result coming out of a given system is entirely dependent on the inputs and processes associated with that system. Fundamentally speaking, there is always an algorithm underpinning a decision a computer system makes. This is true for all kinds of computer systems. Consider a simple example in Python code:&lt;/p&gt;
&lt;figure class=&quot;code code-python&quot; id=&quot;code-1&quot; data-lines=&quot;1&quot; aria-label=&quot;Python&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Python&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;t-punctuation&quot;&gt;+&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-7f8734c&quot;&gt;In this case, based on the algorithm, the system decides to output the integer 2. Every computer system, regardless of how “artificially intelligent” it is, boils down to this fundamental principle which can be summarized as:&lt;/p&gt;
&lt;p id=&quot;p-ef6a795&quot;&gt;&lt;strong&gt;input + process = decision&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-9cd3f1f&quot;&gt;Computers are not at all like humans in the way they make decisions. It is stone-cold rationality, in the perfect marriage of capacity and authority. In other words, capacity and authority are inseparable within a computer system.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;transfer-ignorance&quot;&gt;Transfer Ignorance&lt;/h2&gt;
&lt;p id=&quot;p-9a14257&quot;&gt;One significant difference between the above example and a modern deep learning-based machine intelligence system is that humans can’t audit the latter in the way we can audit the former. This is a big deal when we consider the shortcomings we humans have.&lt;/p&gt;
&lt;p id=&quot;p-a2478c5&quot;&gt;Why is that? We could call this problem “transfer ignorance.” We introduce our irrationality to a system that is expected to make rational decisions and guess what, the system will start making irrational decisions. The issue comes when we don’t know that’s the case; in a computer system, irrationality easily becomes disguised as rationality. Because the output of a typical deep learning-based automated decision system is something we can’t validate (like we can validate 1+1=2), and we don’t know why we get the result we get, we can end up victims of our own irrationality. It is an important starting point to frame the problem of AI in this way because the issue becomes then known and manageable. Checks and balances can be put into place to avoid the inheritance of our negative qualities to the machine. The question here is simple:&lt;/p&gt;
&lt;blockquote id=&quot;p-fe48d28&quot;&gt;
&lt;p&gt;&lt;strong&gt;How do we regulate our own behavior in a way that minimize the transference of our irrationality to systems that are expected to make rational decisions?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-0b22c63&quot;&gt;Here it’s very important to understand how the fact that we can’t precisely know why something in a deep learning model works the way it does, is exactly what we want. That is how we go beyond what we humans can do on our own. For a system to be something we can audit and explain, it needs to be simpler than our ability to audit and explain. This is not what we want, as it would severely limit our ability to use the system to extend our current capabilities.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thou-shall-not-fear-automation&quot;&gt;Thou Shall Not Fear Automation&lt;/h2&gt;
&lt;p id=&quot;p-0921b70&quot;&gt;Next, consider the process of building the pyramids. By some estimates, it took up to 200,000 workers, with thousands or tens of thousands of casualties resulting from the building process. It was a process fueled and made possible by, human suffering and loss of life. Then consider the city of Dubai, where many of the most ambitious construction projects in the history of the world are. Most projects are completed with zero casualties, and many go without accidents for hundreds of days. Burj Khalifa, the +900 meter high tower reportedly involved the death of a single construction worker.&lt;/p&gt;
&lt;figure class=&quot;figure drawn&quot; data-drawn=&quot;&quot;&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/9135bf3b8997486b.png&quot; alt=&quot;The Dubai skyline&quot;&gt;&lt;figcaption&gt;Many construction sites in Dubai go hundreds of days without any accidents&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-cb4fca6&quot;&gt;How come? It is because, over the past several millennia, we were not afraid to go beyond what we humans can do at a given point in time. We were not afraid of extending our capabilities.&lt;/p&gt;
&lt;p id=&quot;p-b7516f7&quot;&gt;Artificial intelligence is not so much about something that is separate from us, as it is about something that extends our capabilities. It would be quite useful to be able to think about AI like that; simply as something that is part of us, coming from us, and has the capability of extending our power. When we understand that it is about extending our capabilities, our hopes become more sensical, and our fears less of a distraction. For example, we understand that there is a real risk in transferring our ignorance into the systems that we create, and as a result of that, we end up with a kind of Artificial Ignorance instead of intelligence.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;thou-shall-not-fear-automation-1&quot;&gt;Thou Shall Not Fear Automation&lt;/h2&gt;
&lt;p id=&quot;p-f76674c&quot;&gt;When something new is invented, or something that was invented a long time ago starts to take off, we often end up with surprising results. The greater the degree to which we are unable to understand (or audit) a given system, the more there is potential for surprising results. Sometimes surprises are unpleasant ones. Let’s consider as an example the field of healthcare.&lt;/p&gt;
&lt;p id=&quot;p-406397a&quot;&gt;Healthcare, like any other field of practice, is a web of interconnected behaviors. For example, if you introduce a metric focused on total intensive care patient days, you will end up with more deaths as the system will optimize towards getting patients out of the intensive care unit earlier. That is precisely what happened in many Western hospitals when game theory-based process optimization was introduced into hospitals by management consultants in the 1980s. I do not doubt that the people behind these ideas sincerely believed that they would work, yet the results were what they were. Many more people suffered and died.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;algorithms-and-zero-sum-game-theory&quot;&gt;Algorithms and Zero-Sum Game Theory&lt;/h2&gt;
&lt;p id=&quot;p-93bc279&quot;&gt;Algorithm design is heavily influenced by the principles of the zero-sum side of game theory.&lt;/p&gt;
&lt;p id=&quot;p-bc0ce85&quot;&gt;Let’s consider a nation-state with a national universal healthcare platform and a debt-ridden national economy. In such countries, there is a lot of time, resource, and objectives pressed decision makers. In other words, there are many people in position of power, who do not have enough time, money, and other vital resources, but have too many objectives to meet.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Si caecus caeco ducatum praestet, ambo in foveam cadunt&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/8efcc8edad6c89fb.png&quot; alt=&quot;A cartoon at an unfamiliar control panel: “I have no idea what I’m doing”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;If the blind lead the blind, both fall into the pit.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Matthew 15:14, in the Vulgate&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “I have no idea what I’m doing.”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-3693981&quot;&gt;By now, the decision-makers in those countries have had their share of the AI hype. Here we come to witness the problem with believing things like “AI is the next electricity”. Hearing something like this how makes us think about electricity and all the benefits we’ve gotten from it. If you’re working in healthcare, the risk is then reacting by thinking “look at how much electricity changed healthcare” and then having that become a major influence in terms of your attitude towards Artificial Intelligence. That is a recipe for disaster. Artificial Intelligence could not be further from electricity in the sense of what it enables. In one way it enables both positive and negative outcomes so far beyond the scope of electricity that I doubt there is anyone in the world who really “gets it.” The other way to look at it is that artificial intelligence is just another electricity-enabled thing. In both cases, it’s completely wrong — and dangerously misleading — to say that AI is the new electricity. The new electricity would be something that provides light, heat, motion, and so forth.&lt;/p&gt;
&lt;p id=&quot;p-c29a3cb&quot;&gt;Back to the national healthcare example…&lt;/p&gt;
&lt;p id=&quot;p-44c7921&quot;&gt;The individuals and committees formed by individuals, who are right now making decisions about the use of machine intelligence in the national healthcare systems, are under tremendous pressure to deliver. Generally speaking, they are under pressure to perform against economic goals and national health outcomes. A typical career politician barely understands healthcare (or economics), so it will not come as a surprise that with very few exceptions, they are utterly lost regarding artificial intelligence. What are they influenced by? That’s right, all the hype is what influences them. It is difficult to see how under such conditions, non-experts, being bombarded with endless hype by self-proclaimed (and sometimes other-proclaimed) artificial intelligence experts, would be able to make the right decisions. On the other hand, it’s straightforward to see how they end up making all the wrong decisions.&lt;/p&gt;
&lt;p id=&quot;p-f2c35c5&quot;&gt;Regarding the given example, there is something vitally important to understand about systems in general. When you change something, the adverse effect might appear 10, 20, or 100 years later. Generally speaking, the more complex the system is, and the more ambitious the change project is, the more this is true. Instead of being focused on the worst-case scenarios such as the annihilation of the human race by a superintelligence, we should be very worried about the subtle, and often hidden systemic effects of countless dumb machines.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;morality-and-ethics-in-artificial-intelligence&quot;&gt;Morality and Ethics in Artificial Intelligence&lt;/h2&gt;
&lt;blockquote id=&quot;p-28e6f39&quot;&gt;
&lt;p&gt;Talking about ethics of Artificial Intelligence is less important than talking about the ethics of human beings&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-0d94483&quot;&gt;In the same way as the machine intelligence solutions we design, inherit our irrationality and stupidity, they inherit our immorality and lack of ethics. As it stands, we have a real risk of creating Artificial Immorality.&lt;/p&gt;
&lt;p id=&quot;p-549080c&quot;&gt;One way of looking at the topic of morality is through two compatible works, Immanuel Kant’s Categorical Imperative, and Kohlberg’s Model of Moral Development. Kant in his Categorical Imperative explains it as “acting only according to that maxim whereby you can at the same time will that it should become a universal law.”&lt;/p&gt;
&lt;figure class=&quot;fig stairs&quot; data-fig=&quot;stairs&quot; aria-label=&quot;Six stages of moral development, from punishment and obedience to universal ethical principles&quot;&gt;&lt;div class=&quot;stairs-body&quot; style=&quot;--n:6&quot;&gt;&lt;p class=&quot;stairs-group fig-label&quot; data-group=&quot;0&quot; style=&quot;--from:5;--to:7&quot;&gt;Preconventional morality&lt;/p&gt;&lt;p class=&quot;stairs-group fig-label&quot; data-group=&quot;1&quot; style=&quot;--from:3;--to:5&quot;&gt;Conventional morality&lt;/p&gt;&lt;p class=&quot;stairs-group fig-label&quot; data-group=&quot;2&quot; style=&quot;--from:1;--to:3&quot;&gt;Postconventional morality&lt;/p&gt;&lt;ol class=&quot;stairs-steps&quot;&gt;&lt;li class=&quot;stair&quot; data-group=&quot;0&quot; style=&quot;--row:6;--k:0&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;stair-face&quot; aria-pressed=&quot;false&quot;&gt;&lt;span class=&quot;stair-label fig-label&quot;&gt;Stage 1&lt;span class=&quot;stair-group&quot;&gt; · Preconventional&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;stair-name&quot;&gt;Punishment and Obedience Orientation&lt;/span&gt;&lt;span class=&quot;stair-maxim fig-small&quot;&gt;[It’s O.K. to do it if you don’t get caught.]&lt;/span&gt;&lt;/button&gt;&lt;p class=&quot;stair-says fig-small&quot;&gt;&lt;q&gt;It depends on who he knows on the police force.&lt;/q&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;stair&quot; data-group=&quot;0&quot; style=&quot;--row:5;--k:1&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;stair-face&quot; aria-pressed=&quot;false&quot;&gt;&lt;span class=&quot;stair-label fig-label&quot;&gt;Stage 2&lt;span class=&quot;stair-group&quot;&gt; · Preconventional&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;stair-name&quot;&gt;Instrumental-Relativist Orientation&lt;/span&gt;&lt;span class=&quot;stair-maxim fig-small&quot;&gt;[If it feels good, do it.]&lt;/span&gt;&lt;/button&gt;&lt;p class=&quot;stair-says fig-small&quot;&gt;&lt;q&gt;If his wife is nice and pretty, he should do it.&lt;/q&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;stair&quot; data-group=&quot;1&quot; style=&quot;--row:4;--k:2&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;stair-face&quot; aria-pressed=&quot;false&quot;&gt;&lt;span class=&quot;stair-label fig-label&quot;&gt;Stage 3&lt;span class=&quot;stair-group&quot;&gt; · Conventional&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;stair-name&quot;&gt;Good Boy, Nice Girl&lt;/span&gt;&lt;span class=&quot;stair-maxim fig-small&quot;&gt;[Do it for me.]&lt;/span&gt;&lt;/button&gt;&lt;p class=&quot;stair-says fig-small&quot;&gt;&lt;q&gt;He should do it because he loves his wife.&lt;/q&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;stair&quot; data-group=&quot;1&quot; style=&quot;--row:3;--k:3&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;stair-face&quot; aria-pressed=&quot;false&quot;&gt;&lt;span class=&quot;stair-label fig-label&quot;&gt;Stage 4&lt;span class=&quot;stair-group&quot;&gt; · Conventional&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;stair-name&quot;&gt;Law and Order Orientation&lt;/span&gt;&lt;span class=&quot;stair-maxim fig-small&quot;&gt;[Do your duty.]&lt;/span&gt;&lt;/button&gt;&lt;p class=&quot;stair-says fig-small&quot;&gt;&lt;q&gt;Saving a human life is more important than protecting property.&lt;/q&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;stair&quot; data-group=&quot;2&quot; style=&quot;--row:2;--k:4&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;stair-face&quot; aria-pressed=&quot;false&quot;&gt;&lt;span class=&quot;stair-label fig-label&quot;&gt;Stage 5&lt;span class=&quot;stair-group&quot;&gt; · Postconventional&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;stair-name&quot;&gt;Social Contract Orientation&lt;/span&gt;&lt;span class=&quot;stair-maxim fig-small&quot;&gt;[It’s the consensus of thoughtful men.]&lt;/span&gt;&lt;/button&gt;&lt;p class=&quot;stair-says fig-small&quot;&gt;Heinz: &lt;q&gt;Society has a right to insure its own survival. I couldn’t hold my head up in public if I let her die.&lt;/q&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;stair&quot; data-group=&quot;2&quot; style=&quot;--row:1;--k:5&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;stair-face&quot; aria-pressed=&quot;false&quot;&gt;&lt;span class=&quot;stair-label fig-label&quot;&gt;Stage 6&lt;span class=&quot;stair-group&quot;&gt; · Postconventional&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;stair-name&quot;&gt;Universal Ethical Principles&lt;/span&gt;&lt;span class=&quot;stair-maxim fig-small&quot;&gt;[What if everybody did that?]&lt;/span&gt;&lt;/button&gt;&lt;p class=&quot;stair-says fig-small&quot;&gt;Heinz: &lt;q&gt;Human life has supreme inherent value. I couldn’t live with myself if I let her die.&lt;/q&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;p class=&quot;stairs-read&quot; aria-live=&quot;polite&quot; hidden&gt;&lt;/p&gt;&lt;figcaption&gt;Kohlberg’s six stages of moral development, as in the original graphic, each with its answer to the Heinz dilemma.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-58c3cf4&quot;&gt;In Kohlberg’s work, we can appreciate how difficult living according to the standard of Kant’s moral imperative is. It can be particularly tricky in an organizational setting (where decisions about Artificial Intelligence will be mostly made) to rise above the 4th stage (in the above graphic), with occasional glimpses of the 5th. Unfortunately, many choices are formed on the premise of the 1st stage; if I do this, will something negative happen to me personally?&lt;/p&gt;
&lt;p id=&quot;p-9ad08be&quot;&gt;There is a critical intersection between irrationality and immorality. They amplify the harmful effects of one and other. To address this, and formally train themselves in dispelling both irrationality and immorality, the wise of the world used to have a significant focus on the study of philosophy. Most importantly morality, ontology (what is knowing), epistemology (what is being), and logic. Such an approach would be a useful companion for artificial intelligence researchers and developers.&lt;/p&gt;
&lt;p id=&quot;p-8f48c19&quot;&gt;Leibniz famously said:&lt;/p&gt;
&lt;blockquote id=&quot;p-e1618d4&quot;&gt;
&lt;p&gt;Without mathematics we cannot penetrate deeply into philosophy. Without philosophy we cannot penetrate deeply into mathematics. Without both we cannot penetrate deeply into anything.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-45fdef6&quot;&gt;And the statesman John Adams said:&lt;/p&gt;
&lt;blockquote id=&quot;p-adc2a07&quot;&gt;
&lt;p&gt;I must study politics and war that my sons may have liberty to study mathematics and philosophy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-b1c20a4&quot;&gt;In the healthcare context, none of the involved stakeholders — government and healthcare professionals, nor computer and data scientists — are trained in morality and often lack even the most basic understanding of ontology, epistemology, and formal logic. Moreover, it’s not just an AI-related problem; in Physics there is an increasingly vocal debate on the role of philosophy and if it has any significance at all. Here we find the second important thing we should be afraid of; the risks that come from disconnecting the discovery of new ideas from philosophy, for it is the science of discovery and ideas.&lt;/p&gt;
&lt;p id=&quot;p-827f2bd&quot;&gt;We’re already seeing the results of human immorality being transferred to decision-making systems. We have seen through examples in financial markets, online advertising, and other early embracers of algorithmic decision-making, how we tend to end up with so-called greedy algorithms that optimize towards a given end ruthlessly without caring about anything else. Unlike for example healthcare professionals, such algorithms are not afraid of losing their livelihood and reputation as a result of making the wrong decision. Decisions that may end up hurting people. It is this type of risk we should be worried about, as opposed to superintelligence that will want to dominate or wipe out the human race. Some of the wildest fantasies go as far as trying to ascertain us that it is just a matter of time before we see a superintelligence that will first wipe out humans and then expand throughout the galaxy.&lt;/p&gt;
&lt;figure class=&quot;fig plate wide&quot; data-fig=&quot;plate&quot; data-intro=&quot;What the industry is working towards, as seen by visitors who have seen enough of it. Choose the mark.&quot; style=&quot;--natural:500px&quot;&gt;&lt;div class=&quot;plate-head&quot;&gt;&lt;span class=&quot;plate-number&quot;&gt;Plate II&lt;/span&gt;&lt;span class=&quot;plate-title&quot;&gt;Human-level performance&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;plate-notes&quot; aria-pressed=&quot;true&quot; hidden&gt;Notes&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;plate-view&quot;&gt;&lt;div class=&quot;plate-zoom&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/thou-shalt-not-fear-automatons/6d0c7395f6e7-5.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Two aliens in despair: “This is why we don’t visit you guys”&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;span class=&quot;plate-mark&quot; style=&quot;left:38.0%;top:50.0%;--i:0&quot; data-mark=&quot;1&quot; aria-hidden=&quot;true&quot;&gt;i&lt;/span&gt;&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;plate-whole&quot; hidden&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;circle cx=&quot;8.5&quot; cy=&quot;8.5&quot; r=&quot;5.75&quot;&gt;&lt;/circle&gt;&lt;path d=&quot;M5.75 8.5h5.5M12.7 12.7l4.8 4.8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Whole picture&lt;/button&gt;&lt;/div&gt;&lt;ol class=&quot;plate-key&quot;&gt;&lt;li data-note=&quot;1&quot;&gt;&lt;span class=&quot;plate-numeral&quot; aria-hidden=&quot;true&quot;&gt;i&lt;/span&gt;&lt;span&gt;&lt;dfn&gt;Human-level performance.&lt;/dfn&gt; The benchmark every system is measured against. They have read the results.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;plate-steps&quot; hidden&gt;&lt;button type=&quot;button&quot; data-step=&quot;-1&quot; aria-label=&quot;Previous note&quot;&gt;←&lt;/button&gt;&lt;span class=&quot;plate-at&quot;&gt;&lt;/span&gt;&lt;button type=&quot;button&quot; data-step=&quot;1&quot; aria-label=&quot;Next note&quot;&gt;→&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-autonomy-fallacy&quot;&gt;The Autonomy Fallacy&lt;/h2&gt;
&lt;blockquote id=&quot;p-edda377-2&quot;&gt;
&lt;p&gt;Artificial Intelligence is and will continue (at least for some decades) to be about process automation, not about autonomy&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-cc6899d&quot;&gt;At the core of AI fear-mongering, is the confused idea of autonomous superintelligence. In regard to this, we have been severely mistaken in two important ways; we have started to use the word autonomous in place of automated, and we have forgotten the way computer programs work. As a point of reference, take a look at the current stage of the deep learning community. Most of the work focuses on simple process automation and creating evermore complex approaches to improve the state-of-the-art of those automations. While it’s pretty incredible what one can do with a few lines of deep learning code today, there is as much human kind of intelligence in the resulting predictive model, as there is in a toaster. There is anyhow, a far greater degree of automation in a deep learning model than there is in a toaster. It seems fair to say that the way in which deep learning models can extend human capabilities is far beyond a toaster can. But is there an inherent property of superintelligence in a deep learning model that is not there in the toaster? There is not.&lt;/p&gt;
&lt;p id=&quot;p-2086316&quot;&gt;As a tongue-in-cheek example of close to superintelligence we might be, here is what the state-of-the-art deep learning-based spell checker thinks about deep learning.&lt;/p&gt;
&lt;figure class=&quot;fig suggest&quot; data-fig=&quot;suggest&quot; data-suggestion=&quot;an in-depth&quot; aria-label=&quot;A spell checker suggesting “an in-depth” in place of “a deep” learning model&quot;&gt;&lt;div class=&quot;suggest-body&quot;&gt;&lt;p class=&quot;suggest-text&quot;&gt;Is there an inherent property of superintelligence in &lt;mark class=&quot;suggest-flag&quot;&gt;a deep&lt;/mark&gt; learning model that is not there in the toaster?&lt;/p&gt;&lt;div class=&quot;suggest-card&quot;&gt;&lt;p class=&quot;suggest-change&quot;&gt;&lt;s&gt;a deep&lt;/s&gt; &lt;span aria-hidden=&quot;true&quot;&gt;→&lt;/span&gt; &lt;ins&gt;an in-depth&lt;/ins&gt;&lt;/p&gt;&lt;p class=&quot;suggest-why fig-small&quot;&gt;The word &lt;b&gt;deep&lt;/b&gt; is often overused. Consider using a more specific synonym to improve the sharpness of your writing.&lt;/p&gt;&lt;div class=&quot;suggest-actions&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;fig-pill suggest-accept&quot;&gt;Accept&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play suggest-dismiss&quot;&gt;Dismiss&lt;/button&gt;&lt;/div&gt;&lt;p class=&quot;suggest-done fig-small&quot; role=&quot;status&quot;&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-9e86c03&quot;&gt;Deep learning might be a seed with the propensity for much more, even for some form of intelligence we can’t yet imagine, but it is just a propensity. It is also possible, that it does not contain such propensity. Deep learning, after all, is a track of development that formally began in the late 1950s.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;superintelligence&quot;&gt;Superintelligence&lt;/h2&gt;
&lt;p id=&quot;p-fe8411d&quot;&gt;First, it is important to understand that the only way to achieve superintelligence, is through autonomy. It can not happen through mere automation.&lt;/p&gt;
&lt;p id=&quot;p-42ee0b6&quot;&gt;Going back to the previous point about the possibility of the current track containing the propensity for autonomy and therefore superintelligence. Then, just like an apple seed needs soil, moisture, nutrients, and light before it has a chance of growing into a sprout, a superintelligence would need the causes and conditions that allow it to manifest. Today, nobody can in a convincing way explain what those causes and conditions would be. For example, winning humans in a game by spending tens or hundreds of millions just to achieve that, has nothing to do with it. Using hundreds of millions or billions to use brute force techniques for training massive language models, also has nothing to do with it. Nothing that we’ve seen or heard so far, has anything to do with it.&lt;/p&gt;
&lt;p id=&quot;p-088d42b&quot;&gt;The best way to understand superintelligence is that it is the science-fiction worst-case scenario for computational intelligence. Putting aside technical feasibility and the factor of the propensity for superintelligence being there in the current track the human society is on or not, how often do worst-case scenarios manifest? Think about nuclear weapons where the worst-case scenario is a nuclear holocaust. Or can you you find some other technological advancement where the worst-case scenario actually materialized?&lt;/p&gt;
&lt;p id=&quot;p-9b5c31a&quot;&gt;When it comes to the topic of superintelligence, I have to agree with &lt;a href=&quot;#&quot;&gt;Marc Andreessen&lt;/a&gt; on his comment:&lt;/p&gt;
&lt;figure class=&quot;fig post&quot; data-fig=&quot;post&quot; aria-label=&quot;A post: the smartest people who work on AI think the scaremongering from people who don’t is lunacy&quot;&gt;&lt;blockquote class=&quot;post-card&quot;&gt;&lt;p class=&quot;post-by&quot;&gt;&lt;b&gt;I retweet @pmarca&lt;/b&gt; &lt;span&gt;@pmarca_retweet&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;post-text&quot;&gt;pmarca: The smartest people I know who do personally work on AI think the scaremongering coming from people who don’t work on AI is lunacy.&lt;/p&gt;&lt;p class=&quot;post-when fig-small&quot;&gt;&lt;time datetime=&quot;2015-03-02&quot;&gt;2 March 2015, 9:42 PM&lt;/time&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/figure&gt;
&lt;p id=&quot;p-da76969&quot;&gt;What we do know, is that we have an identifiable and addressable issue with our ignorance and our immorality. Furthermore, we have clear evidence about the tendency we have for transferring it into the systems we create. That is what we should be worried about, and we should be very worried. As it stands, we don’t even know how to ask the right questions. Here, I wholeheartedly agree with Francois Chollet when he says:&lt;/p&gt;
&lt;figure class=&quot;fig post&quot; data-fig=&quot;post&quot; aria-label=&quot;A post: almost all important questions in AI remain unanswered&quot;&gt;&lt;blockquote class=&quot;post-card&quot;&gt;&lt;p class=&quot;post-by&quot;&gt;&lt;b&gt;François Chollet&lt;/b&gt; &lt;span&gt;@fchollet&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;post-text&quot;&gt;For all the progress made, it seems like almost all important questions in AI remain unanswered. Many have not even been properly asked yet.&lt;/p&gt;&lt;/blockquote&gt;&lt;/figure&gt;
&lt;p id=&quot;p-9824632&quot;&gt;The most important questions we need to ask ourselves related to AI are not even related to AI. More than anything, we have to ask questions about systemic effects. Going back to healthcare, we might think of having an allergic reaction to medicine as a good example of an adverse effect, but many adverse effects take years, decades, or even centuries to arise. Because of the difficulty of causal analysis, we generally can’t precisely know what contributed to a certain outcome. This means that in some cases it would be almost impossible to know if a given AI solution is contributing positively in the long term or just driving short-term efficiency, and causing damage in the long term. The analysis of causality seems to be one of the more interesting, and less discussed uses of AI expert systems, and mission-critical requirements within the periphery of such systems.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;death-by-a-thousand-algorithms&quot;&gt;Death By a Thousand Algorithms&lt;/h2&gt;
&lt;p id=&quot;p-186149c&quot;&gt;Instead of the Skynet, we’re rapidly moving towards a world in which legions of incredibly stupid machines rule us. These machines are created, maintained, and optimized by poorly motivated junior employees — engineers and would-be data scientists — who work under tremendous pressure and are influenced by the short-sightedness of salespeople and venture capitalists. To make things worse, they tend to change jobs every two years and generally have no concern or ability to understand the systemic changes resulting from their work. Those algorithms are already everywhere. More than half of all financial market transactions are based on decisions of simple zero-sum algorithms with names like “bottom feeder” whose sole purpose might be to create noise in the market without adding any value to it. In a few years from now, more than half of advertising is traded based on algorithms that compete with each other against metrics such as “cost-per-impression” at the expense of internet users. What we see in our social streams, internet searches, video recommendations, related news sections, and shopping sites are entirely governed by algorithms that are called “yield optimizers.” In all of these examples, the algorithms are simple automatons that serve the short-sighted interests — mostly monetary in nature — of those that created and control them. Using “yield optimizer” as an example, the goal of the algorithm is to capture as much of the internet user’s attention and time, to convert it into advertising revenue. In a sense, it is a form of cognitive harvesting. A process in which very dumb algorithms harvest the cognitive energy of human beings, for a company to make money. In other words, due to our ignorance and immorality, we created ignorant and immoral algorithms that work towards making us even more ignorant.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;read-about-automated-research-agents-here&quot;&gt;Read about &lt;a href=&quot;https://mikkokotila.com/writing/automated-research-and-beyond-the-evolution-of-artificial-intelligence/&quot;&gt;Automated Research Agents&lt;/a&gt; here.&lt;/h3&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;ps-thanks-for-your-time-if-you-have-a-few-seconds-more-please-share&quot;&gt;PS. Thanks for your time! If you have a few seconds more, please share.&lt;/h3&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;ps-if-you-are-interested-in-the-work-im-doing-with-ai-check-out-httpsgithubcomautonomiotalos&quot;&gt;PS. If you are interested in the work I’m doing with AI, check out &lt;a href=&quot;https://github.com/autonomio/talos&quot;&gt;https://github.com/autonomio/talos&lt;/a&gt;&lt;/h3&gt;</content></entry><entry><title>Big publishers a safe-haven for advertisers. Fact or fiction?</title><link href="https://mikkokotila.com/writing/big-publishers-a-safe-haven-for-advertisers-fact-or-fiction/"/><id>https://mikkokotila.com/writing/big-publishers-a-safe-haven-for-advertisers-fact-or-fiction/</id><published>2018-12-31T00:00:00Z</published><updated>2018-12-31T00:00:00Z</updated><category term="advertising"/><category term="ad-fraud"/><summary>One of the hottest myths surrounding inventory quality and trust issues is that big publishers provide a safe-haven to advertisers. This argument is not popular just with big publishers, but many advertisers as well.</summary><content type="html">&lt;h3 class=&quot;h-1&quot; id=&quot;a-resolution-to-debate&quot;&gt;A resolution to debate&lt;/h3&gt;
&lt;p id=&quot;p-352aa2f&quot; class=&quot;opening&quot;&gt;One of the hottest myths surrounding inventory quality and trust issues is that big publishers provide a safe-haven to advertisers. This argument is not popular just with big publishers, but many advertisers as well. &lt;a href=&quot;https://medium.com/@jason_kint&quot;&gt;Jason Kint&lt;/a&gt; who runs Digital Content Next, a digital publisher &lt;span class=&quot;nowrap&quot;&gt;trade-body, argues:&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-c886161&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;for-profits acting as intermediary layers to whitelist inventory while capturing welfare hasn’t worked to date mostly because properly contracted it’s a low-margin, uninteresting business. Publisher brands/sites acting as trust proxies to buy-side solves most issues.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Jason Kint (@jason_kint), on Twitter, 28 December 2018&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-ef0fe86&quot;&gt;To which I say:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-f3c9806&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;No, it does not. What do you think, we try to have a debate about this in a public advertiser forum such as ANA or WFA or ISBA. I think they would love it. We make sure its recorded, and put this debate to bed. Your side of argument can have 3 participant vs I will be alone.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Mikko Kotila (@mikkokotila), on Twitter, 29 December 2018&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-3869cbf&quot;&gt;Other than the fact that I have to almost certainly travel for this, I’m filled with delight that Jason responds:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-999c161&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Agree.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Jason Kint (@jason_kint), replying to @dmarti, @mikkokotila and 13 others, 29 December 2018&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-3aee7b5&quot;&gt;&lt;strong&gt;So it’s on. &lt;/strong&gt;The &lt;a href=&quot;https://twitter.com/jason_kint/status/1079000455571746817&quot;&gt;whole thread&lt;/a&gt; is worth going through.&lt;/p&gt;
&lt;p id=&quot;p-2aa56ff&quot;&gt;What we need next is the host, which could be one of the names that were already mentioned or some other national advertiser association. We also need a moderator, which would probably be selected and provided by the host. Because it’s a debate, we need to agree on the rules. There are plenty of options, so this is just a matter of picking one that suits the format of the event the best. Because we both want the same thing (i.e., a safer, more resilient online advertising ecosystem), my suggestion would be to establish all the arguments beforehand and have several exchanges email/call. Both sides would then go to the actual event exactly knowing the arguments of both sides. This will no doubt help increase the quality of the actual event as well. This is just my suggestion, and I’m open to a format where just the headline arguments are shared beforehand. Finally, the entire event would be video recorded in broadcast quality and made publicly available as a highlight reel, topical clips, and the whole.&lt;/p&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;about-my-approach-for-the-debate&quot;&gt;About my approach for the debate&lt;/h5&gt;
&lt;p id=&quot;p-4bb4bed&quot;&gt;I’m obviously on the “against” side of this debate. To provide a very brief background, I agree that in comparison to run-of-exchanges, buying big well-known sites is probably a preferred strategy. In other words, I’m not arguing that there is no benefit at all from buying big well-known sites in the sense of trust and quality in comparison to the absolute worst strategy (unfiltered run-of-exchanges). Still, I’m arguing that those benefits are importantly misunderstood, and consequently misrepresented in the narrative concerning the topic. I’m also arguing that the strategy in itself is against the interest of the advertiser’s shareholders, as well being harmful to taxpayers. I would work towards showing the absurdity of the benefits argument in the first place, then moving on to highlighting the direct adverse effects of the strategy.&lt;/p&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;next-steps&quot;&gt;Next steps&lt;/h5&gt;
&lt;p id=&quot;p-6cfc851&quot;&gt;After the holidays, I will be discussing the matter with one advertiser body as a potential host candidate. The body in question is strongly “for” in this matter and is already heavily and publicly invested in it. This way everyone can be 100% sure that the playing field is level.&lt;/p&gt;
&lt;p id=&quot;p-f7b4fbb&quot;&gt;Once the host is confirmed, I suggest that we form a small committee to work on the rest (e.g. debate rules and format).&lt;/p&gt;
&lt;hr&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;now-hit-that-clap-button-or-share-this-post-on-social-media&quot;&gt;Now hit that clap button or share this post on social media.&lt;/h4&gt;</content></entry><entry><title>(tested) 5-Minute Hello World Blockchain with Ethereum on Mac or Ubuntu</title><link href="https://mikkokotila.com/writing/tested-5-minute-hello-world-blockchain-with-ethereum-on-mac-or-ubuntu/"/><id>https://mikkokotila.com/writing/tested-5-minute-hello-world-blockchain-with-ethereum-on-mac-or-ubuntu/</id><published>2018-11-26T00:00:00Z</published><updated>2018-11-26T00:00:00Z</updated><category term="decentralization"/><category term="guides"/><summary>It took me three years to get around with doing the hello world version of blockchain. Here is how to do it in 5 minutes without previous knowledge.</summary><content type="html">&lt;h3 class=&quot;h-1&quot; id=&quot;it-took-me-three-years-to-get-around-with-doing-the-hello-world-version-of-blockchain-here-is-how-to-do-it-in-5-minutes-without-previous-knowledge&quot;&gt;It took me three years to get around with doing the hello world version of blockchain. Here is how to do it in 5 minutes without previous knowledge.&lt;/h3&gt;
&lt;p id=&quot;p-5ff57f4&quot;&gt;TL;DR&lt;/p&gt;
&lt;p id=&quot;p-f00e462&quot;&gt;It might be very easy to setup a blockchain, make some transactions and create your own smart-contact. But it’s incredibly difficult to really get it right in the way that actually makes the world a better place. In this article you learn how to setup a blockchain easily, and what happens when stuff breaks and the world becomes a worse place.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;contents&quot;&gt;Contents&lt;/h4&gt;
&lt;ul&gt;
&lt;li id=&quot;p-ebd1dd8&quot;&gt;&lt;strong&gt;when things go wrong with blockchain&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-060887e&quot;&gt;&lt;strong&gt;blockchain taxonomy / hierarchy&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-ff87eb7&quot;&gt;&lt;strong&gt;setting up a local blockchain&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-3bbb6ed&quot;&gt;&lt;strong&gt;creating a genesis file&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-8322793&quot;&gt;&lt;strong&gt;start mining on the blockchain&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-d149ea2&quot;&gt;&lt;strong&gt;creating more accounts on the node&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-a1bf8b3&quot;&gt;&lt;strong&gt;transferring assets between accounts&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-73ab8b4&quot;&gt;&lt;strong&gt;creating a second node&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-3605b3a&quot;&gt;&lt;strong&gt;transferring assets between nodes&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;death-by-a-thousand-script-kiddies-a-cautionary-tale&quot;&gt;Death by a Thousand Script Kiddies: A Cautionary Tale&lt;/h4&gt;
&lt;p id=&quot;p-c1a65ae&quot;&gt;This article is not a fast track to a public blockchain or production ready smart contracts. In fact this particle might very well take you further from such lofty ideas. The article just provides the simplest, the most transparent way of creating a local blockchain and effectively works towards feeling less like…&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Scio me nihil scire&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/9364b475076f79fb.png&quot; alt=&quot;Cartoon meme: “I have no idea what I’m doing”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;I know that I know nothing.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;after Socrates, in Plato’s Apology&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “I have no idea what I’m doing.”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-44364af&quot;&gt;There are two words we need to carefully consider before moving on; &lt;strong&gt;&lt;em&gt;contract&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;ledger&lt;/em&gt;&lt;/strong&gt;. Words like these are kind of a big deal. Especially when you mix them with words likes &lt;strong&gt;&lt;em&gt;trustless&lt;/em&gt;&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;and &lt;strong&gt;&lt;em&gt;consensus&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;. &lt;/em&gt;When you fail to appreciate this, *stuff* happens. Still, a lot of blockchain projects seem to be built using the same approach as one would use for building an android app or a website. One reason is demographics.&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-e12cb94&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;7/ Would you rather one Greg Maxwell/@pwuille or 1000 Javascript coders? The latter, in my opinion, are as likely to produce solid protocol code as a 1000 monkeys are to produce Hamlet.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Vijay Boyapati (@real_vijay), on Twitter, 19 July 2018&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-2182bde&quot;&gt;As an example of monkeys producing a Hamlet: consider the &lt;a href=&quot;https://medium.com/cybermiles/i-accidentally-killed-it-and-evaporated-300-million-6b975dc1f76b&quot;&gt;curious case&lt;/a&gt; of devops199. He was able to easily (or she) freeze US$300 million worth of assets on multi-sig wallets provided by Parity Technologies. It seems relevant to consider that Parity is a company founded by Ethereum’s original CTO Gavin Wood. Also bare in mind that this was a second hack in less than 6 months effecting users of Parity’s wallet.&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-f3884ca&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;I accidentally killed it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;@devops199, on Twitter, 7 November 2017, linking to the GitHub issue “anyone can kill your contract” (#6995)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-c4eb83c&quot;&gt;Is it still more concerning how Gavin Wood seemed to trust Parity’s multi-sig wallet; his $90 million Polkadot ICO stash was frozen with the other $210 million. In other words, we have all the reasons to believe that Gavin Wood thought that his company’s code was solid (no pun intended). Next time when you hear the word “trustless”, this is a good story to keep in mind.&lt;/p&gt;
&lt;p id=&quot;p-1f27023&quot;&gt;And yea…&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Cui bono?&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/fcaa7987e281c8ef.png&quot; alt=&quot;Meme of a smiling girl in front of a burning house: “Accidents always happen”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;Who benefits?&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Lucius Cassius’s question, in Cicero’s defence of Roscius&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “Accidents always happen.”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-695a2c7&quot;&gt;Long story short, Parity’s play for recovering the assets involve &lt;a href=&quot;https://github.com/ethereum/EIPs/blob/e30becf4f22200accc14ebec2c685d93790918a9/EIPS/eip-999.md&quot;&gt;changing the Ethereum code&lt;/a&gt; in a way that assumes no mistake was made on Parity’s part. Begs the question…is that really different from the government bailing out a private bank? That escalated fast.&lt;/p&gt;
&lt;p id=&quot;p-91e8775&quot;&gt;The key learning here is to&lt;strong&gt; play safe&lt;/strong&gt;. This article is not helping you to get started with blockchain, it just shows how to be less confused about it.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;taxonomy--hierarchy&quot;&gt;Taxonomy / Hierarchy&lt;/h4&gt;
&lt;p id=&quot;p-a623be7&quot;&gt;In one way blockchain is a decentralized technology, and at the same time it is based on a conventional taxonomy / design paradigm. Basically there is a bunch of stuff that is made of bunch of other stuff, and that stuff is made of some other stuff.&lt;/p&gt;
&lt;p id=&quot;p-f07c6db&quot;&gt;In this vein, it appears that the structure of a blockchain is:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-33dac1b&quot;&gt;Blockchain is made of nodes&lt;/li&gt;
&lt;li id=&quot;p-ef13b14&quot;&gt;Nodes are made of accounts&lt;/li&gt;
&lt;li id=&quot;p-fe85ec9&quot;&gt;Accounts are made of addresses&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-37576a8&quot;&gt;It is the way these things interact with each other that give blockchains the sense of decentralization they come with.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;setting-up-a-local-blockchain&quot;&gt;Setting Up a Local Blockchain&lt;/h4&gt;
&lt;p id=&quot;p-ad602b8&quot;&gt;Without further ado, let’s do this. First, some packages need to be installed. Namely the Ethereum blockchain. We’ll use Solidity in the Part 2, so you don’t have to install that now if you don’t want to. Note that the installation might take a while, so be prepared to wait.&lt;/p&gt;
&lt;p id=&quot;p-c1f41be&quot;&gt;&lt;strong&gt;ON MAC&lt;/strong&gt;&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-1&quot; data-lines=&quot;4&quot; aria-label=&quot;Shell, 4 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;brew&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;update&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L2&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;brew&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;upgrade&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L3&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;brew&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;tap&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;ethereum/ethereum&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L4&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;brew&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;ethereum&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-e688c71&quot;&gt;&lt;strong&gt;ON UBUNTU&lt;/strong&gt;&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-2&quot; data-lines=&quot;4&quot; aria-label=&quot;Shell, 4 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;apt-get&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;software-properties-common&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L2&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;add-apt-repository&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;-y&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;ppa:ethereum/ethereum&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L3&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;apt-get&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;update&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L4&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;apt-get&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;ethereum&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-d150f8d&quot;&gt;From here onwards, I’ve done everything on Mac but it should work on Ubuntu with the exact same commands.&lt;/p&gt;
&lt;p id=&quot;p-e6c71a8&quot;&gt;First we have to use a &lt;em&gt;Genesis File&lt;/em&gt; to initialize the blockchain. Consider it as the config file for your blockchain. It’s how you set parameters that affect the way your blockchain works. Before doing anything else, we need to decide those parameters and create a simple (fear not) json file with the configuration. Apparently there are just four parameters that are required:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-94f7f9a&quot;&gt;config (the actual config)&lt;/li&gt;
&lt;li id=&quot;p-ec974c0&quot;&gt;difficulty (mining difficulty; the smaller the number the easier/faster)&lt;/li&gt;
&lt;li id=&quot;p-43052f4&quot;&gt;gasLimit (the max amount of gas needed per block)&lt;/li&gt;
&lt;li id=&quot;p-010a433&quot;&gt;alloc (pre-allocation of Ether to given addresses)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-1754bd4&quot;&gt;If you want to learn about gas and difficulty, it’s easy to find many articles that explain those concepts.&lt;/p&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;first-example-genesis-file&quot;&gt;First Example Genesis File&lt;/h5&gt;
&lt;figure class=&quot;code code-json&quot; id=&quot;code-3&quot; data-lines=&quot;11&quot; aria-label=&quot;JSON, genesis.json, 11 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;code-file&quot;&gt;genesis.json&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;11 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;config&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L3&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L3&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;3&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;chainId&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;1907&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L4&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L4&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;4&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;homesteadBlock&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L5&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L5&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;5&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;eip155Block&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L6&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L6&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;6&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;eip158Block&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L7&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L7&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;7&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;},&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L8&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L8&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;8&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;difficulty&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;10&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L9&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L9&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;9&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;gasLimit&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;2100000&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L10&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L10&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;10&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;alloc&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;{}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L11&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L11&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;11&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;second-example-genesis-file&quot;&gt;Second Example Genesis File&lt;/h5&gt;
&lt;figure class=&quot;code code-json&quot; id=&quot;code-4&quot; data-lines=&quot;14&quot; aria-label=&quot;JSON, genesis.json, 14 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;code-file&quot;&gt;genesis.json&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;14 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;config&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L3&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L3&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;3&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;chainId&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L4&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L4&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;4&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;homesteadBlock&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L5&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L5&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;5&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;eip155Block&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L6&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L6&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;6&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;eip158Block&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L7&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L7&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;7&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;},&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L8&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L8&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;8&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;difficulty&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;20&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L9&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L9&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;9&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;gasLimit&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;2100000&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L10&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L10&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;10&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;alloc&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L11&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L11&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;11&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;7df9a875a174b3bc565e6424a0050ebc1b2d1d82&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-type&quot;&gt;&quot;balance&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;300000&quot;&lt;/span&gt; &lt;span class=&quot;t-punctuation&quot;&gt;},&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L12&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L12&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;12&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-type&quot;&gt;&quot;f41c74c9ae680c1aa78f42e5647a62f353b7bdde&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-type&quot;&gt;&quot;balance&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;400000&quot;&lt;/span&gt; &lt;span class=&quot;t-punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L13&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L13&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;13&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:2&quot;&gt;&lt;span class=&quot;ind&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L14&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-4-L14&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;14&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-b338f7c&quot;&gt;The difference in the second genesis file example is that difficulty is set to slightly higher, and some Ether is allocated on two accounts from the get-go. Next we can use the genesis file to create a node, and an account on that the node.&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-5&quot; data-lines=&quot;2&quot; aria-label=&quot;Shell, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;## create a node on the blockchain&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L2&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;geth&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--datadir&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;node1&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;init&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;genesis.json&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-6&quot; data-lines=&quot;2&quot; aria-label=&quot;Shell, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-6-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;## create a new account on the node1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-6-L2&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;geth&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--datadir&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;node1&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;account&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-742825f&quot;&gt;For the account creation part, it’s going to prompt you for the passphrase. Once that’s done, we can login to the console:&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-7&quot; data-lines=&quot;2&quot; aria-label=&quot;Shell, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-7-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;## login to the console&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-7-L2&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;geth&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--datadir&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;node1&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--networkid&lt;/span&gt; &lt;span class=&quot;t-number&quot;&gt;98765&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;console&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-adb6072&quot;&gt;That’s it, you’re running a local blockchain on your machine with a single node, and a single account. For now there is really nothing on the blockchain i.e. no blocks have been mined yet, which you can verify easily:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-8&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-8-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-8-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;blockNumber&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-1a04ae4&quot;&gt;Which will return 0 to confirm that no mining have taken place. So let’s start a miner and make some (local) eth.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;start-mining-on-the-blockchain&quot;&gt;Start Mining on the Blockchain&lt;/h4&gt;
&lt;p id=&quot;p-9356cd4&quot;&gt;In order to generate some Ether (assuming you did not do any pre-allocation in the genesis file), we have to mine some blocks. You can do that by:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-9&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-9-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-9-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;miner&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;start&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-8a8a5d9&quot;&gt;This will start a miner with a single thread. After a little while mining will commence, and you will see something like:&lt;/p&gt;
&lt;figure class=&quot;code code-output&quot; id=&quot;code-10&quot; data-lines=&quot;10&quot; aria-label=&quot;Output, 10 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Output&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:39.844] 🔗 block reached canonical chain   number=5  hash=1947e2…e3e258&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L2&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:39.844] 🔨 mined potential block           number=10 hash=026a14…563baf&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L3&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:39.844] Commit new mining work             number=11 txs=0 uncles=0 elapsed=144.49µs&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L4&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:39.864] Successfully sealed new block      number=11 hash=765ddb…38f730&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L5&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:39.865] 🔗 block reached canonical chain   number=6  hash=74b265…73535f&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L6&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:39.865] 🔨 mined potential block           number=11 hash=765ddb…38f730&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L7&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:39.865] Commit new mining work             number=12 txs=0 uncles=0 elapsed=164.724µs&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L8&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:39.865] Successfully sealed new block      number=12 hash=b56534…e8d9c4&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L9&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:44.295] 🔗 block reached canonical chain   number=7  hash=5b675b…a9af45&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-10-L10&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;INFO [07-22|21:42:44.295] 🔨 mined potential block           number=12 hash=b56534…e8d9c4&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-86bae27&quot;&gt;Once this is going on, you can stop mining at any point with:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-11&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-11-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-11-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;miner&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;stop&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-b11ecfd&quot;&gt;Note that the log might still be updating while you type the command. That’s ok, just keep typing and hit enter. Now the block number should have changed. Go ahead and check it out.&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-12&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-12-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-12-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;blockNumber&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-38e0f29&quot;&gt;Now it’s a good time to check the balance for the account. There are several ways to do this:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-13&quot; data-lines=&quot;2&quot; aria-label=&quot;JavaScript, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;2 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-13-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-13-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;// without knowing the account address&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-13-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-13-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;getBalance&lt;/span&gt;(eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;accounts[&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;])&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-14&quot; data-lines=&quot;2&quot; aria-label=&quot;JavaScript, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;2 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-14-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-14-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;// with account address &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-14-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-14-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;getBalance&lt;/span&gt;(&lt;span class=&quot;t-string&quot;&gt;&quot;0x63111397ab6116c68e68fc346697b466ca30f010&quot;&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-663640e&quot;&gt;As you might guess from the above example, you can get the account address using indexing:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-15&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-15-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-15-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;accounts[&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;creating-more-accounts-on-the-node&quot;&gt;Creating More Accounts on the Node&lt;/h4&gt;
&lt;p id=&quot;p-89ffe89&quot;&gt;A node can have more than one account. We can do this simply by repeating the same code as we used before to create the first account on the node. First get out of the geth console and back to the command line, and then:&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-16&quot; data-lines=&quot;1&quot; aria-label=&quot;Shell&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-16-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;geth&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--datadir&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;node1&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;account&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-bfff962&quot;&gt;Now you can start the console again (as per you did previously) try:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-17&quot; data-lines=&quot;2&quot; aria-label=&quot;JavaScript, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;2 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-17-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-17-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;// see the address of the account &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-17-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-17-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;accounts[&lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-18&quot; data-lines=&quot;2&quot; aria-label=&quot;JavaScript, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;2 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-18-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-18-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;// get the balance of the account &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-18-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-18-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;getBalance&lt;/span&gt;(eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;accounts[&lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;])&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-89a01fd&quot;&gt;Obviously the balance is 0 as the new account have not been involved in any mining, or transactions. So let’s move to making transactions.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;how-to-make-transactions-between-two-accounts&quot;&gt;How to make transactions between two accounts&lt;/h4&gt;
&lt;p id=&quot;p-dc6d030&quot;&gt;As a simple example, let’s make a transaction from the first account we created, to the second. But before that’s possible, the sending account needs to be unlocked.&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-19&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-19-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-19-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;web3&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;personal&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;unlockAccount&lt;/span&gt;(web3&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;personal&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;listAccounts[&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;]&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;test0123&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;15000&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-45a0045&quot;&gt;This is going to open the Account 0 for 15000 seconds. You probably don’t want to habituate yourself in using ‘test0123’ as a password by the way. Just saying.&lt;/p&gt;
&lt;p id=&quot;p-04778a2&quot;&gt;Then next we can perform the actual transaction:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-20&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-20-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-20-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;sendTransaction&lt;/span&gt;(&lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;wbr&gt;from&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;accounts[&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;]&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; to&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;accounts[&lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;]&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; value&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; web3&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;toWei&lt;/span&gt;(&lt;span class=&quot;t-number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;ether&quot;&lt;/span&gt;)&lt;span class=&quot;t-punctuation&quot;&gt;}&lt;/span&gt;&lt;wbr&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-e3c19d5&quot;&gt;Here we are making a transaction from the account 0 to account 1, worth 3 ether. At this point even though it seems that we had already “made” the transaction, it needs to be processed through the activity of mining. So let’s go ahead and to that next:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-21&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-21-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-21-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;miner&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;start&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-e62c182&quot;&gt;It might take a moment, but once you see some blocks have been mined, you can stop with:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-22&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-22-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-22-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;miner&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;stop&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-95012b1&quot;&gt;Now go ahead and check out the balance for the account 1, and it should have been updated with the 3 ether that was transacted.&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-23&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-23-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-23-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;getBalance&lt;/span&gt;(eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;accounts[&lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;])&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-0a01a1b&quot;&gt;Note that the number you see is something like 3000000000000000000 which is not ether but Wei which is a very small fraction of ether.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;creating-more-nodes-on-the-blockchain&quot;&gt;Creating more nodes on the blockchain&lt;/h4&gt;
&lt;p id=&quot;p-5c1dc92&quot;&gt;Next, let’s add more nodes to help a more illustrative example of a blockchain. First you have to create a new node (better in a separate terminal window) just as we did before with node1, but now for node2. Note that we will end up with two separate folders.&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-24&quot; data-lines=&quot;2&quot; aria-label=&quot;Shell, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-24-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;## create an additional node on the blockchain&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-24-L2&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;geth&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--datadir&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;node2&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;init&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;genesis.json&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-25&quot; data-lines=&quot;2&quot; aria-label=&quot;Shell, 2 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-25-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;## create a new account on the node2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-25-L2&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;geth&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--datadir&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;node2&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;account&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-05f8618&quot;&gt;Next, go into a separate console session:&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-26&quot; data-lines=&quot;1&quot; aria-label=&quot;Shell&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-26-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;geth&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--datadir&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;node2&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--networkid&lt;/span&gt; &lt;span class=&quot;t-number&quot;&gt;98765&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--port&lt;/span&gt; &lt;span class=&quot;t-number&quot;&gt;30306&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--nodiscover&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;console&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-a8f26c6&quot;&gt;Note that we have to use a different port as the default port is already in use by node1. Once inside the console, you need to get the enode address for node2.&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-27&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-27-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-27-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;admin&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;nodeInfo&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-feb214d&quot;&gt;Once you have the enode address, it’s time to go back to the original console window with node1 and add the new Peer into the network:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-28&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-28-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-28-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;admin&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;addPeer&lt;/span&gt;(&lt;span class=&quot;t-string&quot;&gt;&quot;enode://5eac4deecf5225ad75c9e4fe885d114e2a0e440f6192e45a5a1b7833d54ed89fd3684ea15572d169b571789267a646ae8f8dcd5b8aec8090f21b1b85c263c89f@[::]:30306?discport=0&quot;&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-5715846&quot;&gt;If you get a valid output, you can now start mining on one of the nodes and see the other node update automatically. Now you could for example transact tokens from an account on one node to an account in another node:&lt;/p&gt;
&lt;figure class=&quot;code code-javascript&quot; id=&quot;code-29&quot; data-lines=&quot;1&quot; aria-label=&quot;JavaScript&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-29-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-29-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;eth&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;sendTransaction&lt;/span&gt;(&lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;wbr&gt;from&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;0x8066ee739acb45cba05f4417409d35445490fb4b&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; to&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;0xc90f8ff7868d0b7a3938ef637aeb64ddaa429d79&quot;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; value&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; web3&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;toWei&lt;/span&gt;(&lt;span class=&quot;t-number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-string&quot;&gt;&quot;ether&quot;&lt;/span&gt;)&lt;span class=&quot;t-punctuation&quot;&gt;}&lt;/span&gt;&lt;wbr&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;alternatives-to-the-geth-ethereum-client&quot;&gt;Alternatives to the Geth Ethereum client&lt;/h4&gt;
&lt;p id=&quot;p-e73d98a&quot;&gt;As you probably noted, I’ve used the OG client for Ethereum; Geth. There are alternatives that might make working with Ethereum blockchains more streamlined, for example from Parity. Remember the old Chinese proverb though, “when on the back of a tiger, thread carefully”.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;creating-and-transacting-on-a-smart-contract&quot;&gt;Creating and Transacting on a Smart Contract&lt;/h4&gt;
&lt;p id=&quot;p-5e9b438&quot;&gt;To keep this article reasonably straightforward, I’ve split it in three parts. In the second part we’ll cover how to do a Hello World Smart Contract on Ethereum using the blockchain we’ve just setup.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Homines, dum docent, discunt&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/87d1e854e842e0c2.png&quot; alt=&quot;Meme of a dog in a graduation cap: “I still have no idea what I’m doing”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;People learn while they teach.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Seneca, Letters to Lucilius, VII&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “I still have no idea what I’m doing.”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-c4f4c14&quot;&gt;ps. Huge thanks to &lt;a href=&quot;https://medium.com/@alanbuxton&quot;&gt;Alan Buxton&lt;/a&gt; who took the time to go through these motions and &lt;a href=&quot;https://alanbuxton.wordpress.com/2017/07/19/first-steps-with-ethereum-private-networks-and-smart-contracts-on-ubuntu-16-04/&quot;&gt;document&lt;/a&gt; it. I’ve mostly just cleaned his original report up and presented it in a slightly more accessible format.&lt;/p&gt;</content></entry><entry><title>Deploying / Publishing Python Packages to PyPi with Travis (works)</title><link href="https://mikkokotila.com/writing/deploying-publishing-python-packages-to-pypi-with-travis-works/"/><id>https://mikkokotila.com/writing/deploying-publishing-python-packages-to-pypi-with-travis-works/</id><published>2018-07-29T00:00:00Z</published><updated>2018-07-29T00:00:00Z</updated><category term="guides"/><category term="computing"/><summary>There are a lot of instructions online on how to do this, but many of them are out-of-date or outright not working.</summary><content type="html">&lt;h3 class=&quot;h-1&quot; id=&quot;there-are-a-lot-of-instructions-online-on-how-to-do-this-but-many-of-them-are-out-of-date-or-outright-not-working&quot;&gt;There are a lot of instructions online on how to do this, but many of them are out-of-date or outright not working.&lt;/h3&gt;
&lt;p id=&quot;p-22d51c5&quot;&gt;In addition to 2–5 minutes of your time, the things you’re going to need:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-6d81e5b&quot;&gt;a Github (or similar) repo with a python package&lt;/li&gt;
&lt;li id=&quot;p-e00b8c7&quot;&gt;Travis command line tools&lt;/li&gt;
&lt;li id=&quot;p-aed6f04&quot;&gt;Twine (included in the instructions)&lt;/li&gt;
&lt;li id=&quot;p-76868f8&quot;&gt;A working PyPi account login/password&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;1-encrypt-your-pypi-password-to-be-included-in-the-travis-file&quot;&gt;1. Encrypt your PyPi password to be included in the Travis file.&lt;/h4&gt;
&lt;p id=&quot;p-0fc294b&quot;&gt;Note that I’m assuming you already have Travis command line tool installed. If you don’t, do it now.&lt;/p&gt;
&lt;p id=&quot;p-2f0857c&quot;&gt;First go to the folder where the package you want to deploy is located. Then continue by typing to your command line:&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-1&quot; data-lines=&quot;1&quot; aria-label=&quot;Shell&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;travis&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;encrypt&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--add&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;deploy.password&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-480e7b0&quot;&gt;This will get you where you need to key in or paste your PyPi password. Next you will have to Ctrl-D to complete the process. Before this you will be prompted to confirm the package name based on the folder you are in.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;2-check-that-your-travisyml-file-is-updated&quot;&gt;2. Check that your travis.yml file is updated&lt;/h4&gt;
&lt;p id=&quot;p-5af19b8&quot;&gt;The previous step should handle modifying the travis.yml file of your repo. Make sure that’s the case. At the end of the file you should have something like this:&lt;/p&gt;
&lt;p id=&quot;p-e2eb16e&quot;&gt;With this configuration, whenever the branch ‘production’ is updated, as part of the Travis operations, the package will be deployed to PyPi. Before we can use this, we have to submit the package to PyPi for the first time separately.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;3-submit-the-package-to-pypi-once-the-manual-way&quot;&gt;3. Submit the package to PyPi (once) the manual way&lt;/h4&gt;
&lt;p id=&quot;p-b6a2ecc&quot;&gt;It looks like the officially recommended version is to use twine. So first&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-2&quot; data-lines=&quot;1&quot; aria-label=&quot;Shell&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;pip&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;-U&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;twine&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-69157f1&quot;&gt;Your package needs to be a proper Python package complete with &lt;strong&gt;setup.py &lt;/strong&gt;and &lt;strong&gt;setup.cfg&lt;/strong&gt; files. With these in place, assuming you are inside the package directory run:&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-3&quot; data-lines=&quot;1&quot; aria-label=&quot;Shell&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;python&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;setup.py&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;sdist&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;bdist_wheel&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-e78deef&quot;&gt;At this point it’s a good idea to run local tests once more to make sure that everything works. Once you’re ready, you can then upload the package to PyPi:&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-4&quot; data-lines=&quot;1&quot; aria-label=&quot;Shell&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;twine&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;upload&lt;/span&gt; &lt;span class=&quot;t-type&quot;&gt;--repository-url&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;https://upload.pypi.org/legacy/&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;dist/*&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-ddd606c&quot;&gt;(never mind the underlining on the url).&lt;/p&gt;
&lt;p id=&quot;p-8c400a1&quot;&gt;That’s it, you’re done. You should now see your package in:&lt;/p&gt;
&lt;p id=&quot;p-94c475f&quot;&gt;&lt;a href=&quot;https://pypi.org/project/signs/&quot;&gt;https://pypi.org/project/your_package/&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-7fca324&quot;&gt;From now on you can just use the automated Travis build sequence approach.&lt;/p&gt;</content></entry><entry><title>Hyperparameter Optimization with Keras</title><link href="https://mikkokotila.com/writing/hyperparameter-optimization-with-keras/"/><id>https://mikkokotila.com/writing/hyperparameter-optimization-with-keras/</id><published>2018-05-15T00:00:00Z</published><updated>2018-05-15T00:00:00Z</updated><category term="machine-intelligence"/><category term="guides"/><summary>Finding the right hyperparameters for your deep learning model can be a tedious process. It doesn’t have to.</summary><content type="html">&lt;p id=&quot;p-5ff57f4&quot;&gt;TL;DR&lt;/p&gt;
&lt;p id=&quot;p-f03234a&quot;&gt;With the right process in place, it will not be difficult to find state-of-the-art hyperparameter configuration for a given prediction task. Out of the three approaches — manual, machine-assisted, and algorithmic — this article will focus on machine-assisted. The article will cover how I do it, get to the proof that the method works, and provide the understanding of why it works. The main principle is simplicity.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;few-words-on-performance&quot;&gt;Few Words on Performance&lt;/h3&gt;
&lt;p id=&quot;p-9c8bb1c&quot;&gt;The first point about performance relates to the issue of accuracy (and other more robust metrics) as a way to measure model performance. Consider f1 score as an example. If you have a binary prediction task with 1% positives, then a model that makes everything a 0 will get close to perfect f1 score and accuracy. This can be handled with some changes to the way f1 score deals with corner cases such as “all zeros,” “all ones,” and “no true positives.” But that’s a big topic, and outside of the scope of this article, so for now I just want to make it clear that this problem is a very important part of getting systemic hyperparameter optimization to work. We have a lot of research in this field, but the research is focused more on algorithms, and less on the fundamentals. Indeed, you can have the fanciest algorithm in the world — often also really complex — making decisions based on a metric that does not make sense. That’s not going to be hugely useful for dealing with “real-life” problems.&lt;/p&gt;
&lt;p id=&quot;p-21fe566&quot;&gt;Make no mistake; EVEN WHEN WE DO GET THE PERFORMANCE METRIC RIGHT (yes I’m yelling), we need to consider what happens in the process of optimizing a model. We have a training set, and then we have a validation set. As soon as we start to look at the validation results, and start making changes based on that, we start to create a bias towards the validation set. Now we end up with the training results that are a product of the bias the machine has, and we have the validation results, that is the product of the bias we have. In other words, the model we get as a result does not have the properties of a well-generalized model. Instead, it’s biased away from being generalized. So it would be very important to keep this point in mind.&lt;/p&gt;
&lt;p id=&quot;p-1777291&quot;&gt;The key point about a more advanced fully-automated (unsupervised) approach to hyperparameter optimization, involves first solving these two problems. Once these two are solved — and yes there are ways to do that — the resulting metrics would need to be implemented as a single score. Then that score becomes the metric against which the hyperparameter optimization process is optimized. Otherwise, no algorithm in the world will help, as it will optimize towards something else than what we are after. What are we after again? A model that will do the task that the prediction task articulates. Not just one model for one case (which is often the case in the papers covering the topic), but all kinds of models, for all kinds of prediction tasks. That is what a solution such as Keras allows us to do, and any attempt to automate parts of the process of using a tool such as Keras should embrace that idea.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;what-tools-did-i-use&quot;&gt;What Tools Did I Use?&lt;/h3&gt;
&lt;p id=&quot;p-b72b6cb&quot;&gt;For everything in this article, I used Keras for the models, and Talos, which is a &lt;a href=&quot;http://github.com/autonomio/talos&quot;&gt;hyperparameter optimization solution&lt;/a&gt; I built. The benefit is that it exposes Keras as-is, without introducing any new syntax. It allows me to do in minutes what used to take days while having fun instead of painful repetition.&lt;/p&gt;
&lt;p id=&quot;p-58c7e5e&quot;&gt;You can try it for yourself:&lt;/p&gt;
&lt;p id=&quot;p-1b583fa&quot;&gt;&lt;code&gt;pip install talos&lt;/code&gt;&lt;/p&gt;
&lt;p id=&quot;p-d6262ce&quot;&gt;Or look at the codes / docs &lt;a href=&quot;https://github.com/autonomio/talos&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p id=&quot;p-bb44c8a&quot;&gt;But the information I want to share, and the point I want to make, is not related to a tool, but the process. You could follow the same procedure any which way you like.&lt;/p&gt;
&lt;p id=&quot;p-0fc9a20&quot;&gt;One of the more prominent issues with automated hyperparameter optimization and related tools is that you generally tend to end up far away from the way you’re used to working. The key to successful prediction-task-agnostic hyperparameter optimization — as is with all complex problems — is in embracing cooperation between man and the machine. Every experiment is an opportunity to learn more about the practice (of deep learning) and the technology (in this case Keras). That opportunity should not be missed at the expense of process automation. At the same time, we should be able to take away the blatantly redundant parts of the process. Think of doing shift-enter in Jupyter for a few hundred times and waiting for a minute or two between each iteration. In summary, at this point, the goal should not be in a fully-automated approach to finding the right model, but in minimizing procedural redundancy on burdening the human. Instead of mechanically operating the machine, the machine operates itself. Instead of analyzing the results of various model configurations one by one, I want to analyze them by the thousands or by hundreds of thousands. There are over 80,000 seconds in a day, and a lot of parameter space can be covered in that time without me having to do anything about it.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;lets-get-scannin&quot;&gt;Let’s Get Scannin’&lt;/h3&gt;
&lt;p id=&quot;p-3f39c44&quot;&gt;For the sake of example, I will first provide the code that I used throughout the experiment covered in this article. The dataset I used is the &lt;a href=&quot;https://www.kaggle.com/uciml/breast-cancer-wisconsin-data&quot;&gt;&lt;em&gt;Wisconsin Breast Cancer&lt;/em&gt;&lt;/a&gt; dataset.&lt;/p&gt;
&lt;figure class=&quot;code code-python&quot; id=&quot;code-1&quot; data-lines=&quot;31&quot; aria-label=&quot;Python, 31 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Python&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;31 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;## first we have to make sure to input data and params into the function&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;t-function&quot;&gt;breast_cancer_model&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;x_train&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; y_train&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; x_val&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; y_val&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; params&lt;span class=&quot;t-punctuation&quot;&gt;):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L3&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L3&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;3&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L4&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L4&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;4&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# next we can build the model exactly like we would normally do it&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L5&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L5&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;5&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;model &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-type&quot;&gt;Sequential&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L6&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L6&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;6&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;model&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-type&quot;&gt;Dense&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; input_dim&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;x_train&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;shape&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L7&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L7&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;7&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:20&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                    &lt;/span&gt;activation&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;activation&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L8&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L8&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;8&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:20&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                    &lt;/span&gt;kernel_initializer&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;normal&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L9&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L9&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;9&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L10&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L10&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;10&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;model&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-type&quot;&gt;Dropout&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;dropout&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;]))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L11&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L11&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;11&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L12&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L12&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;12&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# if we want to also test for number of layers and shapes, that&apos;s possible&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L13&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L13&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;13&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-function&quot;&gt;hidden_layers&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;model&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; params&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L14&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L14&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;14&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:3&quot;&gt;&lt;span class=&quot;ind&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L15&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L15&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;15&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# then we finish again with completely standard Keras way&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L16&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L16&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;16&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;model&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-type&quot;&gt;Dense&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; activation&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;last_activation&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L17&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L17&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;17&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:20&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                    &lt;/span&gt;kernel_initializer&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;normal&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L18&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L18&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;18&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L19&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L19&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;19&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;model&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;compile&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;loss&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;losses&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L20&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L20&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;20&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:18&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                  &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# here we add a regulizer normalization function from Talos&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L21&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L21&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;21&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:18&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                  &lt;/span&gt;optimizer&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;optimizer&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;](&lt;/span&gt;&lt;wbr&gt;lr&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;lr_normalizer&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;lr&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;optimizer&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;])),&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L22&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L22&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;22&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:18&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                  &lt;/span&gt;metrics&lt;span class=&quot;t-punctuation&quot;&gt;=[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;acc&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; fmeasure&lt;span class=&quot;t-punctuation&quot;&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L23&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L23&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;23&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L24&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L24&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;24&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;history &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; model&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-function&quot;&gt;fit&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;x_train&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; y_train&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L25&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L25&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;25&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:24&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                        &lt;/span&gt;validation_data&lt;span class=&quot;t-punctuation&quot;&gt;=[&lt;/span&gt;&lt;wbr&gt;x_val&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; y_val&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L26&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L26&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;26&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:24&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                        &lt;/span&gt;batch_size&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;batch_size&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L27&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L27&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;27&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:24&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                        &lt;/span&gt;epochs&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;epochs&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L28&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L28&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;28&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:24&quot;&gt;&lt;span class=&quot;ind&quot;&gt;                        &lt;/span&gt;verbose&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L29&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L29&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;29&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L30&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L30&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;30&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-comment&quot;&gt;# finally we have to make sure that history object and model are returned&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L31&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-1-L31&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;31&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:4&quot;&gt;&lt;span class=&quot;ind&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;t-keyword&quot;&gt;return&lt;/span&gt; history&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; model&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-c5be35c&quot;&gt;Once the Keras model is defined, it’s time to decide the initial parameter boundaries. The dictionary gets then fed into the process in a way where a single permutation is picked once, and then disregarded.&lt;/p&gt;
&lt;figure class=&quot;code code-python&quot; id=&quot;code-2&quot; data-lines=&quot;14&quot; aria-label=&quot;Python, 14 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Python&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;14 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;## then we can go ahead and set the parameter space&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;p &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;lr&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L3&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L3&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;3&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;first_neuron&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L4&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L4&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;4&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;hidden_layers&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L5&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L5&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;5&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;batch_size&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L6&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L6&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;6&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;epochs&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;150&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L7&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L7&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;7&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;dropout&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L8&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L8&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;8&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;weight_regulizer&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L9&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L9&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;9&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;emb_output_dims&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L10&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L10&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;10&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;shape&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;brick&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;long_funnel&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L11&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L11&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;11&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;optimizer&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;Adam&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; Nadam&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; RMSprop&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L12&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L12&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;12&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;losses&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;logcosh&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; binary_crossentropy&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L13&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L13&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;13&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;activation&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;relu&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; elu&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-2-L14&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-2-L14&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;14&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;last_activation&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;sigmoid&lt;span class=&quot;t-punctuation&quot;&gt;]}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-848dd76&quot;&gt;Depending on the losses, optimizers, and activations we want to include in the scan, we’ll need to import those functions/classes from Keras first. Next, with the model and parameters ready, it’s time to start the experiment.&lt;/p&gt;
&lt;figure class=&quot;code code-python&quot; id=&quot;code-3&quot; data-lines=&quot;8&quot; aria-label=&quot;Python, 8 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Python&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;8 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-comment&quot;&gt;## and run the experiment&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;t &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; ta&lt;span class=&quot;t-punctuation&quot;&gt;.&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-type&quot;&gt;Scan&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;x&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;x&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L3&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L3&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;3&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;y&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;y&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L4&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L4&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;4&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;model&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;breast_cancer_model&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L5&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L5&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;5&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;grid_downsample&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0.01&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L6&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L6&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;6&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;params&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;p&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L7&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L7&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;7&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;dataset_name&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;breast_cancer&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-3-L8&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-3-L8&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;8&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:12&quot;&gt;&lt;span class=&quot;ind&quot;&gt;            &lt;/span&gt;experiment_no&lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;1&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-b76db32&quot;&gt;Note that I’m not going to share more codes, as all I did was change the parameters in the parameter dictionary related with the insights provided in the following sections. For completeness, at the end of the post, I will share a link to a notebook with the codes.&lt;/p&gt;
&lt;p id=&quot;p-f2e036c&quot;&gt;Because there are many permutations (over 180,000 in total) in this first round of the experiment, I randomly pick just 1% of the total, and we’re left with 1,800 permutations.&lt;/p&gt;
&lt;figure class=&quot;code code-output&quot; id=&quot;code-4&quot; data-lines=&quot;1&quot; aria-label=&quot;Output&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Output&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-4-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;1800 scans will take roughly 10800 seconds&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure class=&quot;fig countdown&quot; data-fig=&quot;countdown&quot; data-seconds=&quot;10800&quot; aria-label=&quot;A digital clock&quot;&gt;&lt;div class=&quot;countdown-face&quot;&gt;&lt;time class=&quot;countdown-time&quot; datetime=&quot;PT10800S&quot;&gt;3:00:00&lt;/time&gt;&lt;span class=&quot;countdown-says fig-small&quot;&gt;1,800 scans will take roughly 10,800 seconds&lt;/span&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-1be82af&quot;&gt;In this case, I’m running from a 2015 make MacBook Air, and it looks like I have just the time to meet a friend and have a cup of coffee (or two).&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;hyperparameter-scanning-visualized&quot;&gt;Hyperparameter Scanning Visualized&lt;/h3&gt;
&lt;p id=&quot;p-4ef2ca8&quot;&gt;For this article, using the Wisconsin Breast Cancer dataset, I’ve set up the experiment assuming no previous knowledge about optimal parameters, or the dataset. I’ve prepared the dataset by dropping one column, and by transforming all the rest so that the mean for each feature is 0, with standard deviation of 1.&lt;/p&gt;
&lt;p id=&quot;p-1389ebf&quot;&gt;After the initial run of 1,800 permutations, it’s time to look at the results and decide on how we’re going to limit (or otherwise alter) the parameter space.&lt;/p&gt;
&lt;figure class=&quot;fig matrix&quot; data-fig=&quot;matrix&quot; aria-label=&quot;Initial parameter correlations&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Choose a cell to read how strongly two measures moved together.&lt;/p&gt;&lt;div class=&quot;matrix-grid&quot; style=&quot;--n:8&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;val_loss&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;val_acc&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;lr&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;first_neuron&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;hidden_layers&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;batch_size&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;epochs&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;dropout&lt;/span&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;val_loss&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;0&quot; data-c=&quot;0&quot; aria-label=&quot;val_loss, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;0&quot; data-c=&quot;1&quot; aria-label=&quot;val_loss and val_acc: between -0.26 and -0.13&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;0&quot; data-c=&quot;2&quot; aria-label=&quot;val_loss and lr: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;0&quot; data-c=&quot;3&quot; aria-label=&quot;val_loss and first_neuron: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;0&quot; data-c=&quot;4&quot; aria-label=&quot;val_loss and hidden_layers: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;0&quot; data-c=&quot;5&quot; aria-label=&quot;val_loss and batch_size: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;0&quot; data-c=&quot;6&quot; aria-label=&quot;val_loss and epochs: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;0&quot; data-c=&quot;7&quot; aria-label=&quot;val_loss and dropout: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;val_acc&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;1&quot; data-c=&quot;0&quot; aria-label=&quot;val_acc and val_loss: between -0.26 and -0.13&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;1&quot; data-c=&quot;1&quot; aria-label=&quot;val_acc, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;1&quot; data-c=&quot;2&quot; aria-label=&quot;val_acc and lr: between -0.26 and -0.13&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;1&quot; data-c=&quot;3&quot; aria-label=&quot;val_acc and first_neuron: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;1&quot; data-c=&quot;4&quot; aria-label=&quot;val_acc and hidden_layers: between -0.26 and -0.13&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;1&quot; data-c=&quot;5&quot; aria-label=&quot;val_acc and batch_size: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;1&quot; data-c=&quot;6&quot; aria-label=&quot;val_acc and epochs: between 0.12 and 0.25&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;1&quot; data-c=&quot;7&quot; aria-label=&quot;val_acc and dropout: between -0.26 and -0.13&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;lr&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;2&quot; data-c=&quot;0&quot; aria-label=&quot;lr and val_loss: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;2&quot; data-c=&quot;1&quot; aria-label=&quot;lr and val_acc: between -0.26 and -0.13&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;2&quot; data-c=&quot;2&quot; aria-label=&quot;lr, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;2&quot; data-c=&quot;3&quot; aria-label=&quot;lr and first_neuron: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;2&quot; data-c=&quot;4&quot; aria-label=&quot;lr and hidden_layers: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;2&quot; data-c=&quot;5&quot; aria-label=&quot;lr and batch_size: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;2&quot; data-c=&quot;6&quot; aria-label=&quot;lr and epochs: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;2&quot; data-c=&quot;7&quot; aria-label=&quot;lr and dropout: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;first_neuron&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;3&quot; data-c=&quot;0&quot; aria-label=&quot;first_neuron and val_loss: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;3&quot; data-c=&quot;1&quot; aria-label=&quot;first_neuron and val_acc: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;3&quot; data-c=&quot;2&quot; aria-label=&quot;first_neuron and lr: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;3&quot; data-c=&quot;3&quot; aria-label=&quot;first_neuron, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;3&quot; data-c=&quot;4&quot; aria-label=&quot;first_neuron and hidden_layers: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;3&quot; data-c=&quot;5&quot; aria-label=&quot;first_neuron and batch_size: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;3&quot; data-c=&quot;6&quot; aria-label=&quot;first_neuron and epochs: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;3&quot; data-c=&quot;7&quot; aria-label=&quot;first_neuron and dropout: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;hidden_layers&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;4&quot; data-c=&quot;0&quot; aria-label=&quot;hidden_layers and val_loss: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;4&quot; data-c=&quot;1&quot; aria-label=&quot;hidden_layers and val_acc: between -0.26 and -0.13&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;4&quot; data-c=&quot;2&quot; aria-label=&quot;hidden_layers and lr: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;4&quot; data-c=&quot;3&quot; aria-label=&quot;hidden_layers and first_neuron: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;4&quot; data-c=&quot;4&quot; aria-label=&quot;hidden_layers, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;4&quot; data-c=&quot;5&quot; aria-label=&quot;hidden_layers and batch_size: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;4&quot; data-c=&quot;6&quot; aria-label=&quot;hidden_layers and epochs: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;4&quot; data-c=&quot;7&quot; aria-label=&quot;hidden_layers and dropout: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;batch_size&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;5&quot; data-c=&quot;0&quot; aria-label=&quot;batch_size and val_loss: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;5&quot; data-c=&quot;1&quot; aria-label=&quot;batch_size and val_acc: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;5&quot; data-c=&quot;2&quot; aria-label=&quot;batch_size and lr: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;5&quot; data-c=&quot;3&quot; aria-label=&quot;batch_size and first_neuron: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;5&quot; data-c=&quot;4&quot; aria-label=&quot;batch_size and hidden_layers: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;5&quot; data-c=&quot;5&quot; aria-label=&quot;batch_size, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;5&quot; data-c=&quot;6&quot; aria-label=&quot;batch_size and epochs: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;5&quot; data-c=&quot;7&quot; aria-label=&quot;batch_size and dropout: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;epochs&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;6&quot; data-c=&quot;0&quot; aria-label=&quot;epochs and val_loss: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;6&quot; data-c=&quot;1&quot; aria-label=&quot;epochs and val_acc: between 0.12 and 0.25&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;6&quot; data-c=&quot;2&quot; aria-label=&quot;epochs and lr: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;6&quot; data-c=&quot;3&quot; aria-label=&quot;epochs and first_neuron: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;6&quot; data-c=&quot;4&quot; aria-label=&quot;epochs and hidden_layers: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;6&quot; data-c=&quot;5&quot; aria-label=&quot;epochs and batch_size: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;6&quot; data-c=&quot;6&quot; aria-label=&quot;epochs, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;6&quot; data-c=&quot;7&quot; aria-label=&quot;epochs and dropout: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;dropout&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;7&quot; data-c=&quot;0&quot; aria-label=&quot;dropout and val_loss: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;7&quot; data-c=&quot;1&quot; aria-label=&quot;dropout and val_acc: between -0.26 and -0.13&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;7&quot; data-c=&quot;2&quot; aria-label=&quot;dropout and lr: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;7&quot; data-c=&quot;3&quot; aria-label=&quot;dropout and first_neuron: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;7&quot; data-c=&quot;4&quot; aria-label=&quot;dropout and hidden_layers: between -0.01 and 0.12&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;7&quot; data-c=&quot;5&quot; aria-label=&quot;dropout and batch_size: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;7&quot; data-c=&quot;6&quot; aria-label=&quot;dropout and epochs: between -0.13 and -0.01&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;7&quot; data-c=&quot;7&quot; aria-label=&quot;dropout, with itself&quot;&gt;&lt;/button&gt;&lt;/div&gt;&lt;p class=&quot;matrix-scale fig-small&quot;&gt;&lt;span class=&quot;cell n5&quot;&gt;&lt;/span&gt; moves the other way &lt;span class=&quot;cell p0&quot;&gt;&lt;/span&gt; no relation &lt;span class=&quot;cell p5&quot;&gt;&lt;/span&gt; together&lt;/p&gt;&lt;figcaption&gt;The first round’s rank-order correlations. The original’s colours give each cell a band, not a value; here each is coloured against the strongest pair.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-27f8d8f&quot;&gt;A simple rank order correlation shows that lr (learning rate) has the strongest effect on our performance metric, which in this case is val_acc (validation accuracy). For this dataset, val_acc is ok, as there is a good number of Positives. For datasets where there is a significant disparity between Falses and Positives, accuracy is not a good metric. It seems that hidden_layers, lr (learning rate), and dropout all have a notable negative correlation with val_acc. A simpler network will do better in this task. For positive correlations, the number of epochs is the only one to stands out. Let’s look a little closer. In the below graph we have epochs (50, 100 and 150) on the x-axis, val_acc on the y-axis, learning rate in the columns and dropout as hue. The trend seems to be generally as the correlation suggests; smaller dropouts do better than larger ones.&lt;/p&gt;
&lt;figure class=&quot;fig bargrid wide&quot; data-fig=&quot;bargrid&quot; aria-label=&quot;Validation accuracy across model configurations&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a bar for its value, or at a dropout rate in the key to pick it out across every panel.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;s0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;dropout 0&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;s1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;dropout 0.1&lt;/li&gt;&lt;li data-pick=&quot;2&quot;&gt;&lt;i class=&quot;s2&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;dropout 0.2&lt;/li&gt;&lt;li data-pick=&quot;3&quot;&gt;&lt;i class=&quot;s3&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;dropout 0.3&lt;/li&gt;&lt;li data-pick=&quot;4&quot;&gt;&lt;i class=&quot;s4&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;dropout 0.4&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panels&quot; style=&quot;--columns:4&quot;&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 0.5&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 0.5 · epochs 50 · dropout 0: 0.887 (0.877 to 0.896)&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;24.7&quot; width=&quot;10.2&quot; height=&quot;115.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.4&quot; x2=&quot;44.4&quot; y1=&quot;26.0&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 0.5 · epochs 50 · dropout 0.1: 0.882&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 0.5 · epochs 50 · dropout 0.2: 0.887&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;24.7&quot; width=&quot;10.2&quot; height=&quot;115.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 0.5 · epochs 50 · dropout 0.3: 0.863&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;27.8&quot; width=&quot;10.2&quot; height=&quot;112.2&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 0.5 · epochs 50 · dropout 0.4: 0.882&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 0.5 · epochs 100 · dropout 0: 0.882 (0.844 to 0.901)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;30.3&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 0.5 · epochs 100 · dropout 0.1: 0.892&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;24.0&quot; width=&quot;10.2&quot; height=&quot;116.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 0.5 · epochs 100 · dropout 0.2: 0.863 (0.868 to 0.901)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;27.8&quot; width=&quot;10.2&quot; height=&quot;112.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;27.2&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 0.5 · epochs 100 · dropout 0.3: 0.892&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;24.0&quot; width=&quot;10.2&quot; height=&quot;116.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 0.5 · epochs 100 · dropout 0.4: 0.835 (0.844 to 0.877)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;31.5&quot; width=&quot;10.2&quot; height=&quot;108.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;30.3&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 0.5 · epochs 150 · dropout 0: 0.892 (0.835 to 0.920)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;24.0&quot; width=&quot;10.2&quot; height=&quot;116.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;31.5&quot; y2=&quot;20.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 0.5 · epochs 150 · dropout 0.1: 0.892&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;24.0&quot; width=&quot;10.2&quot; height=&quot;116.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 0.5 · epochs 150 · dropout 0.2: 0.896 (0.901 to 0.915)&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;23.5&quot; width=&quot;10.2&quot; height=&quot;116.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;200.2&quot; x2=&quot;200.2&quot; y1=&quot;22.9&quot; y2=&quot;21.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 0.5 · epochs 150 · dropout 0.3: 0.906&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;22.2&quot; width=&quot;10.2&quot; height=&quot;117.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 0.5 · epochs 150 · dropout 0.4: 0.887 (0.896 to 0.906)&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;24.7&quot; width=&quot;10.2&quot; height=&quot;115.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.6&quot; x2=&quot;222.6&quot; y1=&quot;23.5&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 0.95&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 0.95 · epochs 50 · dropout 0: 0.858 (0.797 to 0.901)&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;28.5&quot; width=&quot;10.2&quot; height=&quot;111.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.4&quot; x2=&quot;44.4&quot; y1=&quot;36.4&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 0.95 · epochs 50 · dropout 0.1: 0.892 (0.882 to 0.901)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;24.0&quot; width=&quot;10.2&quot; height=&quot;116.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;25.3&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 0.95 · epochs 50 · dropout 0.2: 0.877 (0.882 to 0.896)&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;26.0&quot; width=&quot;10.2&quot; height=&quot;114.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;66.8&quot; x2=&quot;66.8&quot; y1=&quot;25.3&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 0.95 · epochs 50 · dropout 0.3: 0.863 (0.873 to 0.892)&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;27.8&quot; width=&quot;10.2&quot; height=&quot;112.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;78.0&quot; x2=&quot;78.0&quot; y1=&quot;26.5&quot; y2=&quot;24.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 0.95 · epochs 50 · dropout 0.4: 0.882&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 0.95 · epochs 100 · dropout 0: 0.910 (0.906 to 0.915)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;21.7&quot; width=&quot;10.2&quot; height=&quot;118.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;22.2&quot; y2=&quot;21.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 0.95 · epochs 100 · dropout 0.1: 0.877 (0.877 to 0.896)&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;26.0&quot; width=&quot;10.2&quot; height=&quot;114.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.3&quot; x2=&quot;122.3&quot; y1=&quot;26.0&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 0.95 · epochs 100 · dropout 0.2: 0.863 (0.868 to 0.901)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;27.8&quot; width=&quot;10.2&quot; height=&quot;112.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;27.2&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 0.95 · epochs 100 · dropout 0.3: 0.892&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;24.0&quot; width=&quot;10.2&quot; height=&quot;116.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 0.95 · epochs 100 · dropout 0.4: 0.844 (0.854 to 0.906)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;30.3&quot; width=&quot;10.2&quot; height=&quot;109.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;29.0&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 0.95 · epochs 150 · dropout 0: 0.920 (0.910 to 0.925)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;20.4&quot; width=&quot;10.2&quot; height=&quot;119.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;21.7&quot; y2=&quot;19.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 0.95 · epochs 150 · dropout 0.1: 0.873 (0.877 to 0.915)&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;26.5&quot; width=&quot;10.2&quot; height=&quot;113.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;189.0&quot; x2=&quot;189.0&quot; y1=&quot;26.0&quot; y2=&quot;21.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 0.95 · epochs 150 · dropout 0.2: 0.906&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;22.2&quot; width=&quot;10.2&quot; height=&quot;117.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 0.95 · epochs 150 · dropout 0.3: 0.887&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;24.7&quot; width=&quot;10.2&quot; height=&quot;115.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 0.95 · epochs 150 · dropout 0.4: 0.892&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;24.0&quot; width=&quot;10.2&quot; height=&quot;116.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 1.4&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 1.4 · epochs 50 · dropout 0: 0.896 (0.882 to 0.901)&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;23.5&quot; width=&quot;10.2&quot; height=&quot;116.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.4&quot; x2=&quot;44.4&quot; y1=&quot;25.3&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 1.4 · epochs 50 · dropout 0.1: 0.873 (0.873 to 0.896)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;26.5&quot; width=&quot;10.2&quot; height=&quot;113.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;26.5&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 1.4 · epochs 50 · dropout 0.2: 0.896&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;23.5&quot; width=&quot;10.2&quot; height=&quot;116.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 1.4 · epochs 50 · dropout 0.3: 0.797 (0.807 to 0.877)&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;36.4&quot; width=&quot;10.2&quot; height=&quot;103.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;78.0&quot; x2=&quot;78.0&quot; y1=&quot;35.1&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 1.4 · epochs 50 · dropout 0.4: 0.877&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;26.0&quot; width=&quot;10.2&quot; height=&quot;114.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 1.4 · epochs 100 · dropout 0: 0.882 (0.825 to 0.882)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;32.8&quot; y2=&quot;25.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 1.4 · epochs 100 · dropout 0.1: 0.877 (0.877 to 0.906)&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;26.0&quot; width=&quot;10.2&quot; height=&quot;114.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.3&quot; x2=&quot;122.3&quot; y1=&quot;26.0&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 1.4 · epochs 100 · dropout 0.2: 0.868 (0.873 to 0.901)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;27.2&quot; width=&quot;10.2&quot; height=&quot;112.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;26.5&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 1.4 · epochs 100 · dropout 0.3: 0.811 (0.816 to 0.877)&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;34.6&quot; width=&quot;10.2&quot; height=&quot;105.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.7&quot; x2=&quot;144.7&quot; y1=&quot;33.9&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 1.4 · epochs 100 · dropout 0.4: 0.873 (0.882 to 0.896)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;26.5&quot; width=&quot;10.2&quot; height=&quot;113.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;25.3&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 1.4 · epochs 150 · dropout 0: 0.915 (0.910 to 0.925)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;21.0&quot; width=&quot;10.2&quot; height=&quot;119.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;21.7&quot; y2=&quot;19.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 1.4 · epochs 150 · dropout 0.1: 0.915 (0.910 to 0.925)&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;21.0&quot; width=&quot;10.2&quot; height=&quot;119.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;189.0&quot; x2=&quot;189.0&quot; y1=&quot;21.7&quot; y2=&quot;19.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 1.4 · epochs 150 · dropout 0.2: 0.892 (0.896 to 0.915)&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;24.0&quot; width=&quot;10.2&quot; height=&quot;116.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;200.2&quot; x2=&quot;200.2&quot; y1=&quot;23.5&quot; y2=&quot;21.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 1.4 · epochs 150 · dropout 0.3: 0.854&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;29.0&quot; width=&quot;10.2&quot; height=&quot;111.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 1.4 · epochs 150 · dropout 0.4: 0.863 (0.873 to 0.896)&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;27.8&quot; width=&quot;10.2&quot; height=&quot;112.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.6&quot; x2=&quot;222.6&quot; y1=&quot;26.5&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 1.85&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 1.85 · epochs 50 · dropout 0: 0.854&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;29.0&quot; width=&quot;10.2&quot; height=&quot;111.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 1.85 · epochs 50 · dropout 0.1: 0.896 (0.896 to 0.910)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;23.5&quot; width=&quot;10.2&quot; height=&quot;116.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;23.5&quot; y2=&quot;21.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 1.85 · epochs 50 · dropout 0.2: 0.858&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;28.5&quot; width=&quot;10.2&quot; height=&quot;111.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 1.85 · epochs 50 · dropout 0.3: 0.764&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;40.7&quot; width=&quot;10.2&quot; height=&quot;99.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 1.85 · epochs 50 · dropout 0.4: 0.764 (0.774 to 0.877)&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;40.7&quot; width=&quot;10.2&quot; height=&quot;99.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;89.2&quot; x2=&quot;89.2&quot; y1=&quot;39.4&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 1.85 · epochs 100 · dropout 0: 0.873 (0.797 to 0.873)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;26.5&quot; width=&quot;10.2&quot; height=&quot;113.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;36.4&quot; y2=&quot;26.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 1.85 · epochs 100 · dropout 0.1: 0.849 (0.844 to 0.896)&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;29.6&quot; width=&quot;10.2&quot; height=&quot;110.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.3&quot; x2=&quot;122.3&quot; y1=&quot;30.3&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 1.85 · epochs 100 · dropout 0.2: 0.863 (0.873 to 0.901)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;27.8&quot; width=&quot;10.2&quot; height=&quot;112.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;26.5&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 1.85 · epochs 100 · dropout 0.3: 0.811 (0.816 to 0.882)&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;34.6&quot; width=&quot;10.2&quot; height=&quot;105.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.7&quot; x2=&quot;144.7&quot; y1=&quot;33.9&quot; y2=&quot;25.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 1.85 · epochs 100 · dropout 0.4: 0.816 (0.821 to 0.877)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;33.9&quot; width=&quot;10.2&quot; height=&quot;106.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;33.3&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 1.85 · epochs 150 · dropout 0: 0.807 (0.797 to 0.807)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;35.1&quot; width=&quot;10.2&quot; height=&quot;104.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;36.4&quot; y2=&quot;35.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 1.85 · epochs 150 · dropout 0.1: 0.877 (0.877 to 0.915)&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;26.0&quot; width=&quot;10.2&quot; height=&quot;114.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;189.0&quot; x2=&quot;189.0&quot; y1=&quot;26.0&quot; y2=&quot;21.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 1.85 · epochs 150 · dropout 0.2: 0.854 (0.858 to 0.901)&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;29.0&quot; width=&quot;10.2&quot; height=&quot;111.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;200.2&quot; x2=&quot;200.2&quot; y1=&quot;28.5&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 1.85 · epochs 150 · dropout 0.3: 0.755&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;41.8&quot; width=&quot;10.2&quot; height=&quot;98.2&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 1.85 · epochs 150 · dropout 0.4: 0.745 (0.759 to 0.873)&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;43.2&quot; width=&quot;10.2&quot; height=&quot;96.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.6&quot; x2=&quot;222.6&quot; y1=&quot;41.3&quot; y2=&quot;26.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 2.3&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 2.3 · epochs 50 · dropout 0: 0.854 (0.783 to 0.901)&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;29.0&quot; width=&quot;10.2&quot; height=&quot;111.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.4&quot; x2=&quot;44.4&quot; y1=&quot;38.2&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 2.3 · epochs 50 · dropout 0.1: 0.858 (0.811 to 0.892)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;28.5&quot; width=&quot;10.2&quot; height=&quot;111.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;34.6&quot; y2=&quot;24.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 2.3 · epochs 50 · dropout 0.2: 0.882&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 2.3 · epochs 50 · dropout 0.3: 0.835&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;31.5&quot; width=&quot;10.2&quot; height=&quot;108.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 2.3 · epochs 50 · dropout 0.4: 0.868 (0.868 to 0.882)&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;27.2&quot; width=&quot;10.2&quot; height=&quot;112.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;89.2&quot; x2=&quot;89.2&quot; y1=&quot;27.2&quot; y2=&quot;25.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 2.3 · epochs 100 · dropout 0: 0.830 (0.755 to 0.892)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;32.1&quot; width=&quot;10.2&quot; height=&quot;107.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;41.8&quot; y2=&quot;24.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 2.3 · epochs 100 · dropout 0.1: 0.854&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;29.0&quot; width=&quot;10.2&quot; height=&quot;111.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 2.3 · epochs 100 · dropout 0.2: 0.868 (0.868 to 0.896)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;27.2&quot; width=&quot;10.2&quot; height=&quot;112.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;27.2&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 2.3 · epochs 100 · dropout 0.3: 0.825&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;32.8&quot; width=&quot;10.2&quot; height=&quot;107.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 2.3 · epochs 100 · dropout 0.4: 0.821 (0.830 to 0.873)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;33.3&quot; width=&quot;10.2&quot; height=&quot;106.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;32.1&quot; y2=&quot;26.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 2.3 · epochs 150 · dropout 0: 0.835 (0.755 to 0.906)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;31.5&quot; width=&quot;10.2&quot; height=&quot;108.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;41.8&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 2.3 · epochs 150 · dropout 0.1: 0.906&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;22.2&quot; width=&quot;10.2&quot; height=&quot;117.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 2.3 · epochs 150 · dropout 0.2: 0.882 (0.887 to 0.910)&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;200.2&quot; x2=&quot;200.2&quot; y1=&quot;24.7&quot; y2=&quot;21.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 2.3 · epochs 150 · dropout 0.3: 0.830&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;32.1&quot; width=&quot;10.2&quot; height=&quot;107.9&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 2.3 · epochs 150 · dropout 0.4: 0.778 (0.788 to 0.901)&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;38.9&quot; width=&quot;10.2&quot; height=&quot;101.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.6&quot; x2=&quot;222.6&quot; y1=&quot;37.6&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 2.75&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 2.75 · epochs 50 · dropout 0: 0.849 (0.783 to 0.896)&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;29.6&quot; width=&quot;10.2&quot; height=&quot;110.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.4&quot; x2=&quot;44.4&quot; y1=&quot;38.2&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 2.75 · epochs 50 · dropout 0.1: 0.868 (0.835 to 0.896)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;27.2&quot; width=&quot;10.2&quot; height=&quot;112.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;31.5&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 2.75 · epochs 50 · dropout 0.2: 0.783 (0.788 to 0.901)&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;38.2&quot; width=&quot;10.2&quot; height=&quot;101.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;66.8&quot; x2=&quot;66.8&quot; y1=&quot;37.6&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 2.75 · epochs 50 · dropout 0.3: 0.807 (0.816 to 0.877)&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;35.1&quot; width=&quot;10.2&quot; height=&quot;104.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;78.0&quot; x2=&quot;78.0&quot; y1=&quot;33.9&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 2.75 · epochs 50 · dropout 0.4: 0.788 (0.797 to 0.863)&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;37.6&quot; width=&quot;10.2&quot; height=&quot;102.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;89.2&quot; x2=&quot;89.2&quot; y1=&quot;36.4&quot; y2=&quot;27.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 2.75 · epochs 100 · dropout 0: 0.887 (0.844 to 0.906)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;24.7&quot; width=&quot;10.2&quot; height=&quot;115.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;30.3&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 2.75 · epochs 100 · dropout 0.1: 0.844 (0.844 to 0.887)&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;30.3&quot; width=&quot;10.2&quot; height=&quot;109.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.3&quot; x2=&quot;122.3&quot; y1=&quot;30.3&quot; y2=&quot;24.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 2.75 · epochs 100 · dropout 0.2: 0.849 (0.849 to 0.887)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;29.6&quot; width=&quot;10.2&quot; height=&quot;110.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;29.6&quot; y2=&quot;24.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 2.75 · epochs 100 · dropout 0.3: 0.835&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;31.5&quot; width=&quot;10.2&quot; height=&quot;108.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 2.75 · epochs 100 · dropout 0.4: 0.792 (0.807 to 0.877)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;37.0&quot; width=&quot;10.2&quot; height=&quot;103.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;35.1&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 2.75 · epochs 150 · dropout 0: 0.868 (0.769 to 0.920)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;27.2&quot; width=&quot;10.2&quot; height=&quot;112.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;40.0&quot; y2=&quot;20.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 2.75 · epochs 150 · dropout 0.1: 0.858 (0.863 to 0.915)&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;28.5&quot; width=&quot;10.2&quot; height=&quot;111.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;189.0&quot; x2=&quot;189.0&quot; y1=&quot;27.8&quot; y2=&quot;21.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 2.75 · epochs 150 · dropout 0.2: 0.844 (0.849 to 0.906)&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;30.3&quot; width=&quot;10.2&quot; height=&quot;109.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;200.2&quot; x2=&quot;200.2&quot; y1=&quot;29.6&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 2.75 · epochs 150 · dropout 0.3: 0.797&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;36.4&quot; width=&quot;10.2&quot; height=&quot;103.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 2.75 · epochs 150 · dropout 0.4: 0.821 (0.825 to 0.896)&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;33.3&quot; width=&quot;10.2&quot; height=&quot;106.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.6&quot; x2=&quot;222.6&quot; y1=&quot;32.8&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 3.2&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 3.2 · epochs 50 · dropout 0: 0.849 (0.802 to 0.854)&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;29.6&quot; width=&quot;10.2&quot; height=&quot;110.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.4&quot; x2=&quot;44.4&quot; y1=&quot;35.7&quot; y2=&quot;29.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 3.2 · epochs 50 · dropout 0.1: 0.882 (0.882 to 0.901)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;25.3&quot; y2=&quot;22.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 3.2 · epochs 50 · dropout 0.2: 0.797 (0.807 to 0.906)&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;36.4&quot; width=&quot;10.2&quot; height=&quot;103.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;66.8&quot; x2=&quot;66.8&quot; y1=&quot;35.1&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 3.2 · epochs 50 · dropout 0.3: 0.792 (0.802 to 0.844)&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;37.0&quot; width=&quot;10.2&quot; height=&quot;103.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;78.0&quot; x2=&quot;78.0&quot; y1=&quot;35.7&quot; y2=&quot;30.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 3.2 · epochs 50 · dropout 0.4: 0.825 (0.835 to 0.877)&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;32.8&quot; width=&quot;10.2&quot; height=&quot;107.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;89.2&quot; x2=&quot;89.2&quot; y1=&quot;31.5&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 3.2 · epochs 100 · dropout 0: 0.811 (0.717 to 0.807)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;34.6&quot; width=&quot;10.2&quot; height=&quot;105.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;46.8&quot; y2=&quot;35.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 3.2 · epochs 100 · dropout 0.1: 0.868 (0.783 to 0.925)&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;27.2&quot; width=&quot;10.2&quot; height=&quot;112.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.3&quot; x2=&quot;122.3&quot; y1=&quot;38.2&quot; y2=&quot;19.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 3.2 · epochs 100 · dropout 0.2: 0.849 (0.858 to 0.887)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;29.6&quot; width=&quot;10.2&quot; height=&quot;110.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;28.5&quot; y2=&quot;24.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 3.2 · epochs 100 · dropout 0.3: 0.882 (0.892 to 0.906)&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.7&quot; x2=&quot;144.7&quot; y1=&quot;24.0&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 3.2 · epochs 100 · dropout 0.4: 0.764 (0.764 to 0.840)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;40.7&quot; width=&quot;10.2&quot; height=&quot;99.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;40.7&quot; y2=&quot;30.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 3.2 · epochs 150 · dropout 0: 0.887 (0.825 to 0.925)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;24.7&quot; width=&quot;10.2&quot; height=&quot;115.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;32.8&quot; y2=&quot;19.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 3.2 · epochs 150 · dropout 0.1: 0.858 (0.797 to 0.906)&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;28.5&quot; width=&quot;10.2&quot; height=&quot;111.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;189.0&quot; x2=&quot;189.0&quot; y1=&quot;36.4&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 3.2 · epochs 150 · dropout 0.2: 0.882 (0.887 to 0.910)&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;25.3&quot; width=&quot;10.2&quot; height=&quot;114.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;200.2&quot; x2=&quot;200.2&quot; y1=&quot;24.7&quot; y2=&quot;21.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 3.2 · epochs 150 · dropout 0.3: 0.863&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;27.8&quot; width=&quot;10.2&quot; height=&quot;112.2&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 3.2 · epochs 150 · dropout 0.4: 0.849 (0.863 to 0.896)&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;29.6&quot; width=&quot;10.2&quot; height=&quot;110.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.6&quot; x2=&quot;222.6&quot; y1=&quot;27.8&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 3.65&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 3.65 · epochs 50 · dropout 0: 0.788&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;37.6&quot; width=&quot;10.2&quot; height=&quot;102.4&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 3.65 · epochs 50 · dropout 0.1: 0.835 (0.764 to 0.892)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;31.5&quot; width=&quot;10.2&quot; height=&quot;108.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;40.7&quot; y2=&quot;24.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 3.65 · epochs 50 · dropout 0.2: 0.830&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;32.1&quot; width=&quot;10.2&quot; height=&quot;107.9&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 3.65 · epochs 50 · dropout 0.3: 0.802 (0.807 to 0.868)&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;35.7&quot; width=&quot;10.2&quot; height=&quot;104.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;78.0&quot; x2=&quot;78.0&quot; y1=&quot;35.1&quot; y2=&quot;27.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 3.65 · epochs 50 · dropout 0.4: 0.741 (0.750 to 0.816)&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;43.7&quot; width=&quot;10.2&quot; height=&quot;96.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;89.2&quot; x2=&quot;89.2&quot; y1=&quot;42.5&quot; y2=&quot;33.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 3.65 · epochs 100 · dropout 0: 0.868 (0.807 to 0.906)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;27.2&quot; width=&quot;10.2&quot; height=&quot;112.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;35.1&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 3.65 · epochs 100 · dropout 0.1: 0.802 (0.741 to 0.877)&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;35.7&quot; width=&quot;10.2&quot; height=&quot;104.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.3&quot; x2=&quot;122.3&quot; y1=&quot;43.7&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 3.65 · epochs 100 · dropout 0.2: 0.736 (0.722 to 0.821)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;44.3&quot; width=&quot;10.2&quot; height=&quot;95.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;46.1&quot; y2=&quot;33.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 3.65 · epochs 100 · dropout 0.3: 0.825 (0.830 to 0.892)&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;32.8&quot; width=&quot;10.2&quot; height=&quot;107.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.7&quot; x2=&quot;144.7&quot; y1=&quot;32.1&quot; y2=&quot;24.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 3.65 · epochs 100 · dropout 0.4: 0.821 (0.830 to 0.873)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;33.3&quot; width=&quot;10.2&quot; height=&quot;106.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;32.1&quot; y2=&quot;26.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 3.65 · epochs 150 · dropout 0: 0.868 (0.797 to 0.863)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;27.2&quot; width=&quot;10.2&quot; height=&quot;112.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;36.4&quot; y2=&quot;27.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;rect class=&quot;bar s1 unknown&quot; data-pick-of=&quot;1&quot; x=&quot;183.9&quot; y=&quot;62.0&quot; width=&quot;10.2&quot; height=&quot;78.0&quot; data-says=&quot;lr 3.65 · epochs 150 · dropout 0.1: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar s2 unknown&quot; data-pick-of=&quot;2&quot; x=&quot;195.1&quot; y=&quot;62.0&quot; width=&quot;10.2&quot; height=&quot;78.0&quot; data-says=&quot;lr 3.65 · epochs 150 · dropout 0.2: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar s3 unknown&quot; data-pick-of=&quot;3&quot; x=&quot;206.3&quot; y=&quot;62.0&quot; width=&quot;10.2&quot; height=&quot;78.0&quot; data-says=&quot;lr 3.65 · epochs 150 · dropout 0.3: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar s4 unknown&quot; data-pick-of=&quot;4&quot; x=&quot;217.5&quot; y=&quot;62.0&quot; width=&quot;10.2&quot; height=&quot;78.0&quot; data-says=&quot;lr 3.65 · epochs 150 · dropout 0.4: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 4.1&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 4.1 · epochs 50 · dropout 0: 0.764 (0.651 to 0.868)&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;40.7&quot; width=&quot;10.2&quot; height=&quot;99.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.4&quot; x2=&quot;44.4&quot; y1=&quot;55.4&quot; y2=&quot;27.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 4.1 · epochs 50 · dropout 0.1: 0.811 (0.750 to 0.882)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;34.6&quot; width=&quot;10.2&quot; height=&quot;105.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;42.5&quot; y2=&quot;25.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 4.1 · epochs 50 · dropout 0.2: 0.807 (0.821 to 0.882)&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;35.1&quot; width=&quot;10.2&quot; height=&quot;104.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;66.8&quot; x2=&quot;66.8&quot; y1=&quot;33.3&quot; y2=&quot;25.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 4.1 · epochs 50 · dropout 0.3: 0.731&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;45.0&quot; width=&quot;10.2&quot; height=&quot;95.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 4.1 · epochs 50 · dropout 0.4: 0.821 (0.825 to 0.882)&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;33.3&quot; width=&quot;10.2&quot; height=&quot;106.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;89.2&quot; x2=&quot;89.2&quot; y1=&quot;32.8&quot; y2=&quot;25.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 4.1 · epochs 100 · dropout 0: 0.910 (0.901 to 0.920)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;21.7&quot; width=&quot;10.2&quot; height=&quot;118.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;22.9&quot; y2=&quot;20.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 4.1 · epochs 100 · dropout 0.1: 0.849 (0.783 to 0.854)&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;29.6&quot; width=&quot;10.2&quot; height=&quot;110.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.3&quot; x2=&quot;122.3&quot; y1=&quot;38.2&quot; y2=&quot;29.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 4.1 · epochs 100 · dropout 0.2: 0.816 (0.821 to 0.882)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;33.9&quot; width=&quot;10.2&quot; height=&quot;106.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;33.3&quot; y2=&quot;25.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 4.1 · epochs 100 · dropout 0.3: 0.835&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;31.5&quot; width=&quot;10.2&quot; height=&quot;108.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 4.1 · epochs 100 · dropout 0.4: 0.783 (0.778 to 0.863)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;38.2&quot; width=&quot;10.2&quot; height=&quot;101.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;38.9&quot; y2=&quot;27.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 4.1 · epochs 150 · dropout 0: 0.896 (0.882 to 0.910)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;23.5&quot; width=&quot;10.2&quot; height=&quot;116.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;25.3&quot; y2=&quot;21.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 4.1 · epochs 150 · dropout 0.1: 0.825&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;32.8&quot; width=&quot;10.2&quot; height=&quot;107.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 4.1 · epochs 150 · dropout 0.2: 0.792 (0.797 to 0.882)&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;37.0&quot; width=&quot;10.2&quot; height=&quot;103.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;200.2&quot; x2=&quot;200.2&quot; y1=&quot;36.4&quot; y2=&quot;25.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 4.1 · epochs 150 · dropout 0.3: 0.844&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;30.3&quot; width=&quot;10.2&quot; height=&quot;109.7&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 4.1 · epochs 150 · dropout 0.4: 0.745 (0.755 to 0.825)&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;43.2&quot; width=&quot;10.2&quot; height=&quot;96.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.6&quot; x2=&quot;222.6&quot; y1=&quot;41.8&quot; y2=&quot;32.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;lr 4.55&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;67.3&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;134.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;200.7&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 4.55 · epochs 50 · dropout 0: 0.717 (0.618 to 0.811)&quot;&gt;&lt;rect x=&quot;39.3&quot; y=&quot;46.8&quot; width=&quot;10.2&quot; height=&quot;93.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.4&quot; x2=&quot;44.4&quot; y1=&quot;59.7&quot; y2=&quot;34.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 4.55 · epochs 50 · dropout 0.1: 0.792 (0.788 to 0.854)&quot;&gt;&lt;rect x=&quot;50.5&quot; y=&quot;37.0&quot; width=&quot;10.2&quot; height=&quot;103.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;55.6&quot; x2=&quot;55.6&quot; y1=&quot;37.6&quot; y2=&quot;29.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 4.55 · epochs 50 · dropout 0.2: 0.821 (0.821 to 0.873)&quot;&gt;&lt;rect x=&quot;61.7&quot; y=&quot;33.3&quot; width=&quot;10.2&quot; height=&quot;106.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;66.8&quot; x2=&quot;66.8&quot; y1=&quot;33.3&quot; y2=&quot;26.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 4.55 · epochs 50 · dropout 0.3: 0.750 (0.764 to 0.825)&quot;&gt;&lt;rect x=&quot;72.9&quot; y=&quot;42.5&quot; width=&quot;10.2&quot; height=&quot;97.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;78.0&quot; x2=&quot;78.0&quot; y1=&quot;40.7&quot; y2=&quot;32.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 4.55 · epochs 50 · dropout 0.4: 0.778 (0.783 to 0.840)&quot;&gt;&lt;rect x=&quot;84.1&quot; y=&quot;38.9&quot; width=&quot;10.2&quot; height=&quot;101.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;89.2&quot; x2=&quot;89.2&quot; y1=&quot;38.2&quot; y2=&quot;30.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 4.55 · epochs 100 · dropout 0: 0.783 (0.703 to 0.849)&quot;&gt;&lt;rect x=&quot;106.0&quot; y=&quot;38.2&quot; width=&quot;10.2&quot; height=&quot;101.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;111.1&quot; x2=&quot;111.1&quot; y1=&quot;48.6&quot; y2=&quot;29.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 4.55 · epochs 100 · dropout 0.1: 0.821 (0.825 to 0.906)&quot;&gt;&lt;rect x=&quot;117.2&quot; y=&quot;33.3&quot; width=&quot;10.2&quot; height=&quot;106.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.3&quot; x2=&quot;122.3&quot; y1=&quot;32.8&quot; y2=&quot;22.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 4.55 · epochs 100 · dropout 0.2: 0.840 (0.844 to 0.892)&quot;&gt;&lt;rect x=&quot;128.4&quot; y=&quot;30.8&quot; width=&quot;10.2&quot; height=&quot;109.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;133.5&quot; x2=&quot;133.5&quot; y1=&quot;30.3&quot; y2=&quot;24.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 4.55 · epochs 100 · dropout 0.3: 0.750&quot;&gt;&lt;rect x=&quot;139.6&quot; y=&quot;42.5&quot; width=&quot;10.2&quot; height=&quot;97.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 4.55 · epochs 100 · dropout 0.4: 0.741 (0.750 to 0.816)&quot;&gt;&lt;rect x=&quot;150.8&quot; y=&quot;43.7&quot; width=&quot;10.2&quot; height=&quot;96.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;155.9&quot; x2=&quot;155.9&quot; y1=&quot;42.5&quot; y2=&quot;33.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;lr 4.55 · epochs 150 · dropout 0: 0.774 (0.637 to 0.896)&quot;&gt;&lt;rect x=&quot;172.7&quot; y=&quot;39.4&quot; width=&quot;10.2&quot; height=&quot;100.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;177.8&quot; x2=&quot;177.8&quot; y1=&quot;57.2&quot; y2=&quot;23.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;lr 4.55 · epochs 150 · dropout 0.1: 0.811 (0.736 to 0.887)&quot;&gt;&lt;rect x=&quot;183.9&quot; y=&quot;34.6&quot; width=&quot;10.2&quot; height=&quot;105.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;189.0&quot; x2=&quot;189.0&quot; y1=&quot;44.3&quot; y2=&quot;24.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;lr 4.55 · epochs 150 · dropout 0.2: 0.778 (0.783 to 0.873)&quot;&gt;&lt;rect x=&quot;195.1&quot; y=&quot;38.9&quot; width=&quot;10.2&quot; height=&quot;101.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;200.2&quot; x2=&quot;200.2&quot; y1=&quot;38.2&quot; y2=&quot;26.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s3&quot; data-pick-of=&quot;3&quot; data-says=&quot;lr 4.55 · epochs 150 · dropout 0.3: 0.741&quot;&gt;&lt;rect x=&quot;206.3&quot; y=&quot;43.7&quot; width=&quot;10.2&quot; height=&quot;96.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s4&quot; data-pick-of=&quot;4&quot; data-says=&quot;lr 4.55 · epochs 150 · dropout 0.4: 0.788 (0.797 to 0.863)&quot;&gt;&lt;rect x=&quot;217.5&quot; y=&quot;37.6&quot; width=&quot;10.2&quot; height=&quot;102.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.6&quot; x2=&quot;222.6&quot; y1=&quot;36.4&quot; y2=&quot;27.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;bargrid-axes fig-small&quot;&gt;Each panel: validation accuracy by epochs.&lt;/p&gt;&lt;figcaption&gt;Bar heights and their intervals read from the original plot; the four bars its legend hid are outlined.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-d9baf94&quot;&gt;Another way to look at the dropout is through Kernel Density Estimation. Here we can see that there is a slight tendency towards higher val_acc with dropout 0 or 0.1, as well as less tendency to have low val_acc (around the 0.6 mark).&lt;/p&gt;
&lt;figure class=&quot;fig violins&quot; data-fig=&quot;violins&quot; aria-label=&quot;Dropout and validation accuracy density&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a dropout rate to see where its results gathered.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 330&quot; role=&quot;img&quot; aria-label=&quot;Dropout and validation accuracy density&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;668&quot; y1=&quot;262.5&quot; y2=&quot;262.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;266.5&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;668&quot; y1=&quot;219.5&quot; y2=&quot;219.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;223.5&quot; text-anchor=&quot;end&quot;&gt;0.5&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;668&quot; y1=&quot;176.5&quot; y2=&quot;176.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;180.5&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;668&quot; y1=&quot;133.5&quot; y2=&quot;133.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;137.5&quot; text-anchor=&quot;end&quot;&gt;0.7&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;668&quot; y1=&quot;90.5&quot; y2=&quot;90.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;94.5&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;668&quot; y1=&quot;47.5&quot; y2=&quot;47.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;51.5&quot; text-anchor=&quot;end&quot;&gt;0.9&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;52&quot; x2=&quot;668&quot; y1=&quot;284&quot; y2=&quot;284&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;360&quot; y=&quot;324&quot; text-anchor=&quot;middle&quot;&gt;dropout&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;52&quot; y=&quot;16&quot;&gt;validation accuracy&lt;/text&gt;&lt;g class=&quot;violin&quot; data-k=&quot;0&quot; style=&quot;--k:0&quot; data-says=&quot;dropout 0: densest at 0.910&quot;&gt;&lt;path d=&quot;M113.6 284.0L113.6 264.6L114.6 262.5L113.6 260.4L113.6 178.7L114.6 176.5L113.6 174.3L128.1 167.9L123.9 165.8L119.8 161.4L113.6 159.3L113.6 92.7L114.6 90.5L113.6 88.3L113.6 69.0L118.8 66.8L118.8 62.5L123.9 60.4L123.9 56.1L134.3 51.8L144.6 49.6L149.8 47.5L158.1 45.3L160.2 43.2L160.2 41.0L144.6 34.6L134.3 32.5L129.1 30.3L118.8 28.2L114.6 26.0L112.6 26.0L108.4 28.2L98.1 30.3L92.9 32.5L82.6 34.6L67.0 41.0L67.0 43.2L69.1 45.3L77.4 47.5L82.6 49.6L92.9 51.8L103.3 56.1L103.3 60.4L108.4 62.5L108.4 66.8L113.6 69.0L113.6 88.3L112.6 90.5L113.6 92.7L113.6 159.3L107.4 161.4L103.3 165.8L99.1 167.9L113.6 174.3L112.6 176.5L113.6 178.7L113.6 260.4L112.6 262.5L113.6 264.6L113.6 284.0Z&quot;&gt;&lt;/path&gt;&lt;rect class=&quot;hit&quot; x=&quot;61.9&quot; y=&quot;26&quot; width=&quot;103.5&quot; height=&quot;258.0&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;tick&quot; x=&quot;113.6&quot; y=&quot;304&quot; text-anchor=&quot;middle&quot;&gt;0&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;violin&quot; data-k=&quot;1&quot; style=&quot;--k:1&quot; data-says=&quot;dropout 0.1: densest at 0.900&quot;&gt;&lt;path d=&quot;M236.8 284.0L236.8 264.6L237.8 262.5L236.8 260.4L236.8 178.7L237.8 176.5L236.8 174.3L252.3 167.9L252.3 165.8L243.0 161.4L236.8 159.3L236.8 92.7L237.8 90.5L236.8 88.3L236.8 73.3L242.0 71.1L242.0 64.7L247.1 62.5L247.1 60.4L257.5 56.1L267.8 53.9L273.0 51.8L283.4 49.6L288.5 47.5L288.5 43.2L273.0 38.9L262.7 36.7L257.5 34.6L247.1 32.5L236.8 28.2L236.8 26.0L236.8 26.0L236.8 28.2L226.5 32.5L216.1 34.6L210.9 36.7L200.6 38.9L185.1 43.2L185.1 47.5L190.2 49.6L200.6 51.8L205.8 53.9L216.1 56.1L226.5 60.4L226.5 62.5L231.6 64.7L231.6 71.1L236.8 73.3L236.8 88.3L235.8 90.5L236.8 92.7L236.8 159.3L230.6 161.4L221.3 165.8L221.3 167.9L236.8 174.3L235.8 176.5L236.8 178.7L236.8 260.4L235.8 262.5L236.8 264.6L236.8 284.0Z&quot;&gt;&lt;/path&gt;&lt;rect class=&quot;hit&quot; x=&quot;185.1&quot; y=&quot;26&quot; width=&quot;103.5&quot; height=&quot;258.0&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;tick&quot; x=&quot;236.8&quot; y=&quot;304&quot; text-anchor=&quot;middle&quot;&gt;0.1&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;violin&quot; data-k=&quot;2&quot; style=&quot;--k:2&quot; data-says=&quot;dropout 0.2: densest at 0.905&quot;&gt;&lt;path d=&quot;M360.0 284.0L360.0 174.3L370.3 172.2L374.5 170.0L375.5 167.9L375.5 165.8L360.0 159.3L360.0 69.0L365.2 66.8L365.2 64.7L391.0 53.9L401.4 51.8L406.6 49.6L411.7 45.3L406.6 43.2L396.2 41.0L391.0 38.9L380.7 36.7L375.5 34.6L365.2 32.5L365.2 30.3L360.0 28.2L360.0 26.0L360.0 26.0L360.0 28.2L354.8 30.3L354.8 32.5L344.5 34.6L339.3 36.7L329.0 38.9L323.8 41.0L313.4 43.2L308.3 45.3L313.4 49.6L318.6 51.8L329.0 53.9L354.8 64.7L354.8 66.8L360.0 69.0L360.0 159.3L344.5 165.8L344.5 167.9L345.5 170.0L349.7 172.2L360.0 174.3L360.0 284.0Z&quot;&gt;&lt;/path&gt;&lt;rect class=&quot;hit&quot; x=&quot;308.3&quot; y=&quot;26&quot; width=&quot;103.5&quot; height=&quot;258.0&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;tick&quot; x=&quot;360.0&quot; y=&quot;304&quot; text-anchor=&quot;middle&quot;&gt;0.2&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;violin&quot; data-k=&quot;3&quot; style=&quot;--k:3&quot; data-says=&quot;dropout 0.3: densest at 0.895&quot;&gt;&lt;path d=&quot;M483.2 284.0L483.2 176.5L503.9 167.9L503.9 165.8L492.5 161.4L483.2 159.3L483.2 75.4L488.4 73.3L488.4 69.0L493.5 66.8L493.5 64.7L503.9 60.4L503.9 58.2L520.5 51.8L524.6 49.6L524.6 45.3L519.4 43.2L509.1 41.0L498.7 36.7L488.4 34.6L488.4 32.5L483.2 30.3L483.2 26.0L483.2 26.0L483.2 30.3L478.0 32.5L478.0 34.6L467.7 36.7L457.3 41.0L447.0 43.2L441.8 45.3L441.8 49.6L445.9 51.8L462.5 58.2L462.5 60.4L472.9 64.7L472.9 66.8L478.0 69.0L478.0 73.3L483.2 75.4L483.2 159.3L473.9 161.4L462.5 165.8L462.5 167.9L483.2 176.5L483.2 284.0Z&quot;&gt;&lt;/path&gt;&lt;rect class=&quot;hit&quot; x=&quot;431.5&quot; y=&quot;26&quot; width=&quot;103.5&quot; height=&quot;258.0&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;tick&quot; x=&quot;483.2&quot; y=&quot;304&quot; text-anchor=&quot;middle&quot;&gt;0.3&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;violin&quot; data-k=&quot;4&quot; style=&quot;--k:4&quot; data-says=&quot;dropout 0.4: densest at 0.895&quot;&gt;&lt;path d=&quot;M606.4 284.0L606.4 264.6L607.4 262.5L606.4 260.4L606.4 178.7L607.4 176.5L611.6 174.3L616.7 172.2L627.1 170.0L632.3 167.9L616.7 161.4L606.4 159.3L606.4 92.7L607.4 90.5L606.4 88.3L606.4 81.9L611.6 79.8L611.6 69.0L616.7 66.8L616.7 64.7L621.9 60.4L637.4 53.9L646.8 51.8L647.8 49.6L647.8 45.3L637.4 43.2L631.2 41.0L611.6 36.7L611.6 34.6L606.4 32.5L606.4 26.0L606.4 26.0L606.4 32.5L601.2 34.6L601.2 36.7L581.6 41.0L575.4 43.2L565.0 45.3L565.0 49.6L566.0 51.8L575.4 53.9L590.9 60.4L596.1 64.7L596.1 66.8L601.2 69.0L601.2 79.8L606.4 81.9L606.4 88.3L605.4 90.5L606.4 92.7L606.4 159.3L596.1 161.4L580.5 167.9L585.7 170.0L596.1 172.2L605.4 176.5L606.4 178.7L606.4 260.4L605.4 262.5L606.4 264.6L606.4 284.0Z&quot;&gt;&lt;/path&gt;&lt;rect class=&quot;hit&quot; x=&quot;554.7&quot; y=&quot;26&quot; width=&quot;103.5&quot; height=&quot;258.0&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;tick&quot; x=&quot;606.4&quot; y=&quot;304&quot; text-anchor=&quot;middle&quot;&gt;0.4&lt;/text&gt;&lt;/g&gt;&lt;/svg&gt;&lt;figcaption&gt;How densely the results gathered at each dropout rate, read from the shading of the original plot: how often, not how many.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-5dbf2a7&quot;&gt;The first action item for the next round of scanning is to get rid of the higher dropout rates altogether and focus on values between 0 and 0.2. Let’s take a look at learning rate more closely next. Note that learning rates are normalized across optimizers to a scale where 1 represents the Keras default value of that optimizer.&lt;/p&gt;
&lt;figure class=&quot;fig boxes&quot; data-fig=&quot;boxes&quot; aria-label=&quot;Learning rate and validation accuracy&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a box for its numbers, or at a series in the key.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;s0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;binary cross-entropy&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;s1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;logcosh&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 320&quot; role=&quot;img&quot; aria-label=&quot;Learning rate and validation accuracy&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;249.7&quot; y2=&quot;249.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;253.7&quot; text-anchor=&quot;end&quot;&gt;40%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;209.0&quot; y2=&quot;209.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;213.0&quot; text-anchor=&quot;end&quot;&gt;50%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;168.3&quot; y2=&quot;168.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;172.3&quot; text-anchor=&quot;end&quot;&gt;60%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;127.7&quot; y2=&quot;127.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;131.7&quot; text-anchor=&quot;end&quot;&gt;70%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;87.0&quot; y2=&quot;87.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;91.0&quot; text-anchor=&quot;end&quot;&gt;80%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;46.3&quot; y2=&quot;46.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;50.3&quot; text-anchor=&quot;end&quot;&gt;90%&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;270&quot; y2=&quot;270&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;361&quot; y=&quot;314&quot; text-anchor=&quot;middle&quot;&gt;learning rate&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;54&quot; y=&quot;16&quot;&gt;validation accuracy&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;84.7&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;0.5&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;146.1&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;0.95&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;207.5&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.4&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;268.9&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;1.85&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;330.3&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;2.3&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;391.7&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;2.75&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;453.1&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;3.2&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;514.5&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;3.65&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;575.9&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;4.1&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;637.3&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;4.55&lt;/text&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 0.5, binary cross-entropy: median 89.5%; the middle half from 88.3% to 90.6%; all from 85.4% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:0&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;72.4&quot; x2=&quot;72.4&quot; y1=&quot;31.8&quot; y2=&quot;65.1&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;67.8&quot; x2=&quot;77.1&quot; y1=&quot;31.8&quot; y2=&quot;31.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;67.8&quot; x2=&quot;77.1&quot; y1=&quot;65.1&quot; y2=&quot;65.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;63.1&quot; y=&quot;43.7&quot; width=&quot;18.7&quot; height=&quot;9.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;63.1&quot; x2=&quot;81.8&quot; y1=&quot;48.5&quot; y2=&quot;48.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 0.5, logcosh: median 89.5%; the middle half from 87.7% to 90.1%; all from 84.2% to 92.4%&quot; tabindex=&quot;0&quot; style=&quot;--i:1&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;97.0&quot; x2=&quot;97.0&quot; y1=&quot;36.6&quot; y2=&quot;69.9&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;92.3&quot; x2=&quot;101.6&quot; y1=&quot;36.6&quot; y2=&quot;36.6&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;92.3&quot; x2=&quot;101.6&quot; y1=&quot;69.9&quot; y2=&quot;69.9&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;87.6&quot; y=&quot;46.1&quot; width=&quot;18.7&quot; height=&quot;9.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;87.6&quot; x2=&quot;106.3&quot; y1=&quot;48.5&quot; y2=&quot;48.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 0.95, binary cross-entropy: median 90.1%; the middle half from 88.9% to 91.2%; all from 86.0% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:2&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;133.8&quot; x2=&quot;133.8&quot; y1=&quot;31.8&quot; y2=&quot;62.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;129.2&quot; x2=&quot;138.5&quot; y1=&quot;31.8&quot; y2=&quot;31.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;129.2&quot; x2=&quot;138.5&quot; y1=&quot;62.7&quot; y2=&quot;62.7&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;124.5&quot; y=&quot;41.3&quot; width=&quot;18.7&quot; height=&quot;9.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;124.5&quot; x2=&quot;143.2&quot; y1=&quot;46.1&quot; y2=&quot;46.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 0.95, logcosh: median 89.5%; the middle half from 88.3% to 90.1%; all from 86.0% to 91.8%&quot; tabindex=&quot;0&quot; style=&quot;--i:3&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;158.4&quot; x2=&quot;158.4&quot; y1=&quot;39.0&quot; y2=&quot;62.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;153.7&quot; x2=&quot;163.0&quot; y1=&quot;39.0&quot; y2=&quot;39.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;153.7&quot; x2=&quot;163.0&quot; y1=&quot;62.7&quot; y2=&quot;62.7&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;149.0&quot; y=&quot;46.1&quot; width=&quot;18.7&quot; height=&quot;7.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;149.0&quot; x2=&quot;167.7&quot; y1=&quot;48.5&quot; y2=&quot;48.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 1.4, binary cross-entropy: median 90.1%; the middle half from 88.9% to 91.2%; all from 87.7% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:4&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;195.2&quot; x2=&quot;195.2&quot; y1=&quot;31.8&quot; y2=&quot;55.6&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;190.6&quot; x2=&quot;199.9&quot; y1=&quot;31.8&quot; y2=&quot;31.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;190.6&quot; x2=&quot;199.9&quot; y1=&quot;55.6&quot; y2=&quot;55.6&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;185.9&quot; y=&quot;41.3&quot; width=&quot;18.7&quot; height=&quot;9.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;185.9&quot; x2=&quot;204.6&quot; y1=&quot;46.1&quot; y2=&quot;46.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 1.4, logcosh: median 89.5%; the middle half from 86.5% to 90.1%; all from 81.9% to 90.1%&quot; tabindex=&quot;0&quot; style=&quot;--i:5&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;219.8&quot; x2=&quot;219.8&quot; y1=&quot;46.1&quot; y2=&quot;79.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;215.1&quot; x2=&quot;224.4&quot; y1=&quot;46.1&quot; y2=&quot;46.1&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;215.1&quot; x2=&quot;224.4&quot; y1=&quot;79.4&quot; y2=&quot;79.4&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;210.4&quot; y=&quot;46.1&quot; width=&quot;18.7&quot; height=&quot;14.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;210.4&quot; x2=&quot;229.1&quot; y1=&quot;48.5&quot; y2=&quot;48.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 1.85, binary cross-entropy: median 90.6%; the middle half from 87.7% to 91.2%; all from 83.6% to 94.2%&quot; tabindex=&quot;0&quot; style=&quot;--i:6&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;256.6&quot; x2=&quot;256.6&quot; y1=&quot;29.4&quot; y2=&quot;72.3&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;252.0&quot; x2=&quot;261.3&quot; y1=&quot;29.4&quot; y2=&quot;29.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;252.0&quot; x2=&quot;261.3&quot; y1=&quot;72.3&quot; y2=&quot;72.3&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;247.3&quot; y=&quot;41.3&quot; width=&quot;18.7&quot; height=&quot;14.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;247.3&quot; x2=&quot;266.0&quot; y1=&quot;43.7&quot; y2=&quot;43.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 1.85, logcosh: median 88.9%; the middle half from 62.0% to 90.1%; all from 38.0% to 91.8%&quot; tabindex=&quot;0&quot; style=&quot;--i:7&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;281.2&quot; x2=&quot;281.2&quot; y1=&quot;39.0&quot; y2=&quot;257.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;276.5&quot; x2=&quot;285.8&quot; y1=&quot;39.0&quot; y2=&quot;39.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;276.5&quot; x2=&quot;285.8&quot; y1=&quot;257.8&quot; y2=&quot;257.8&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;271.8&quot; y=&quot;46.1&quot; width=&quot;18.7&quot; height=&quot;114.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;271.8&quot; x2=&quot;290.5&quot; y1=&quot;50.9&quot; y2=&quot;50.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 2.3, binary cross-entropy: median 90.1%; the middle half from 88.9% to 91.2%; all from 85.4% to 93.0%&quot; tabindex=&quot;0&quot; style=&quot;--i:8&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;318.0&quot; x2=&quot;318.0&quot; y1=&quot;34.2&quot; y2=&quot;65.1&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;313.4&quot; x2=&quot;322.7&quot; y1=&quot;34.2&quot; y2=&quot;34.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;313.4&quot; x2=&quot;322.7&quot; y1=&quot;65.1&quot; y2=&quot;65.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;308.7&quot; y=&quot;41.3&quot; width=&quot;18.7&quot; height=&quot;9.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;308.7&quot; x2=&quot;327.4&quot; y1=&quot;46.1&quot; y2=&quot;46.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 2.3, logcosh: median 88.3%; the middle half from 83.0% to 90.1%; all from 81.9% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:9&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;342.6&quot; x2=&quot;342.6&quot; y1=&quot;31.8&quot; y2=&quot;79.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;337.9&quot; x2=&quot;347.2&quot; y1=&quot;31.8&quot; y2=&quot;31.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;337.9&quot; x2=&quot;347.2&quot; y1=&quot;79.4&quot; y2=&quot;79.4&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;333.2&quot; y=&quot;46.1&quot; width=&quot;18.7&quot; height=&quot;28.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;333.2&quot; x2=&quot;351.9&quot; y1=&quot;53.2&quot; y2=&quot;53.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 2.75, binary cross-entropy: median 90.1%; the middle half from 87.1% to 91.2%; all from 82.5% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:10&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;379.4&quot; x2=&quot;379.4&quot; y1=&quot;31.8&quot; y2=&quot;77.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;374.8&quot; x2=&quot;384.1&quot; y1=&quot;31.8&quot; y2=&quot;31.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;374.8&quot; x2=&quot;384.1&quot; y1=&quot;77.0&quot; y2=&quot;77.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;370.1&quot; y=&quot;41.3&quot; width=&quot;18.7&quot; height=&quot;16.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;370.1&quot; x2=&quot;388.8&quot; y1=&quot;46.1&quot; y2=&quot;46.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 2.75, logcosh: median 88.9%; the middle half from 62.0% to 90.6%; all from 38.0% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:11&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;404.0&quot; x2=&quot;404.0&quot; y1=&quot;31.8&quot; y2=&quot;257.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;399.3&quot; x2=&quot;408.6&quot; y1=&quot;31.8&quot; y2=&quot;31.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;399.3&quot; x2=&quot;408.6&quot; y1=&quot;257.8&quot; y2=&quot;257.8&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;394.6&quot; y=&quot;43.7&quot; width=&quot;18.7&quot; height=&quot;116.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;394.6&quot; x2=&quot;413.3&quot; y1=&quot;50.9&quot; y2=&quot;50.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 3.2, binary cross-entropy: median 90.1%; the middle half from 86.0% to 91.2%; all from 82.5% to 91.8%&quot; tabindex=&quot;0&quot; style=&quot;--i:12&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;440.8&quot; x2=&quot;440.8&quot; y1=&quot;39.0&quot; y2=&quot;77.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;436.2&quot; x2=&quot;445.5&quot; y1=&quot;39.0&quot; y2=&quot;39.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;436.2&quot; x2=&quot;445.5&quot; y1=&quot;77.0&quot; y2=&quot;77.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;431.5&quot; y=&quot;41.3&quot; width=&quot;18.7&quot; height=&quot;21.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;431.5&quot; x2=&quot;450.2&quot; y1=&quot;46.1&quot; y2=&quot;46.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 3.2, logcosh: median 88.3%; the middle half from 80.7% to 90.1%; all from 80.1% to 90.1%&quot; tabindex=&quot;0&quot; style=&quot;--i:13&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;465.4&quot; x2=&quot;465.4&quot; y1=&quot;46.1&quot; y2=&quot;86.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;460.7&quot; x2=&quot;470.0&quot; y1=&quot;46.1&quot; y2=&quot;46.1&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;460.7&quot; x2=&quot;470.0&quot; y1=&quot;86.5&quot; y2=&quot;86.5&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;456.0&quot; y=&quot;46.1&quot; width=&quot;18.7&quot; height=&quot;38.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;456.0&quot; x2=&quot;474.7&quot; y1=&quot;53.2&quot; y2=&quot;53.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 3.65, binary cross-entropy: median 88.3%; the middle half from 84.2% to 90.6%; all from 78.4% to 91.8%&quot; tabindex=&quot;0&quot; style=&quot;--i:14&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;502.2&quot; x2=&quot;502.2&quot; y1=&quot;39.0&quot; y2=&quot;93.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;497.6&quot; x2=&quot;506.9&quot; y1=&quot;39.0&quot; y2=&quot;39.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;497.6&quot; x2=&quot;506.9&quot; y1=&quot;93.7&quot; y2=&quot;93.7&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;492.9&quot; y=&quot;43.7&quot; width=&quot;18.7&quot; height=&quot;26.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;492.9&quot; x2=&quot;511.6&quot; y1=&quot;53.2&quot; y2=&quot;53.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 3.65, logcosh: median 86.0%; the middle half from 62.0% to 90.1%; all from 62.0% to 91.8%&quot; tabindex=&quot;0&quot; style=&quot;--i:15&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;526.8&quot; x2=&quot;526.8&quot; y1=&quot;39.0&quot; y2=&quot;160.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;522.1&quot; x2=&quot;531.4&quot; y1=&quot;39.0&quot; y2=&quot;39.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;522.1&quot; x2=&quot;531.4&quot; y1=&quot;160.2&quot; y2=&quot;160.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;517.4&quot; y=&quot;46.1&quot; width=&quot;18.7&quot; height=&quot;114.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;517.4&quot; x2=&quot;536.1&quot; y1=&quot;62.7&quot; y2=&quot;62.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 4.1, binary cross-entropy: median 89.5%; the middle half from 84.8% to 90.6%; all from 77.2% to 91.8%&quot; tabindex=&quot;0&quot; style=&quot;--i:16&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;563.6&quot; x2=&quot;563.6&quot; y1=&quot;39.0&quot; y2=&quot;98.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;559.0&quot; x2=&quot;568.3&quot; y1=&quot;39.0&quot; y2=&quot;39.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;559.0&quot; x2=&quot;568.3&quot; y1=&quot;98.4&quot; y2=&quot;98.4&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;554.3&quot; y=&quot;43.7&quot; width=&quot;18.7&quot; height=&quot;23.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;554.3&quot; x2=&quot;573.0&quot; y1=&quot;48.5&quot; y2=&quot;48.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 4.1, logcosh: median 87.1%; the middle half from 62.0% to 90.6%; all from 38.0% to 90.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:17&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;588.2&quot; x2=&quot;588.2&quot; y1=&quot;43.7&quot; y2=&quot;257.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;583.5&quot; x2=&quot;592.8&quot; y1=&quot;43.7&quot; y2=&quot;43.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;583.5&quot; x2=&quot;592.8&quot; y1=&quot;257.8&quot; y2=&quot;257.8&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;578.8&quot; y=&quot;43.7&quot; width=&quot;18.7&quot; height=&quot;116.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;578.8&quot; x2=&quot;597.5&quot; y1=&quot;58.0&quot; y2=&quot;58.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;learning rate 4.55, binary cross-entropy: median 88.3%; the middle half from 81.9% to 90.1%; all from 73.7% to 91.8%&quot; tabindex=&quot;0&quot; style=&quot;--i:18&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;625.0&quot; x2=&quot;625.0&quot; y1=&quot;39.0&quot; y2=&quot;112.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;620.4&quot; x2=&quot;629.7&quot; y1=&quot;39.0&quot; y2=&quot;39.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;620.4&quot; x2=&quot;629.7&quot; y1=&quot;112.7&quot; y2=&quot;112.7&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;615.7&quot; y=&quot;46.1&quot; width=&quot;18.7&quot; height=&quot;33.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;615.7&quot; x2=&quot;634.4&quot; y1=&quot;53.2&quot; y2=&quot;53.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;learning rate 4.55, logcosh: median 88.9%; the middle half from 62.0% to 88.9%; all from 38.0% to 91.8%&quot; tabindex=&quot;0&quot; style=&quot;--i:19&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;649.6&quot; x2=&quot;649.6&quot; y1=&quot;39.0&quot; y2=&quot;257.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;644.9&quot; x2=&quot;654.2&quot; y1=&quot;39.0&quot; y2=&quot;39.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;644.9&quot; x2=&quot;654.2&quot; y1=&quot;257.8&quot; y2=&quot;257.8&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;640.2&quot; y=&quot;50.9&quot; width=&quot;18.7&quot; height=&quot;109.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;640.2&quot; x2=&quot;658.9&quot; y1=&quot;50.9&quot; y2=&quot;50.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;figcaption&gt;Read from the original plot. Every accuracy is a count of the 171 validation cases.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-b2dc286&quot;&gt;The situation is pretty clear; the smaller learning rates work well for both loss function, and the difference is particularly pronounced with logcosh. But because binary cross-entropy is clearly outperforming on all learning rate levels, it will be the loss of our choice for the remainder of the experiment. A sanity check is still needed though. How about if what we’re seeing is not factoring in over-fitting towards the training data? How if val_loss is all over the place and we’re just getting carried away looking at one side of the picture? A simple regression analysis show that’s not the case. Other than a few outliers, everything is packed nicely in the lower left corner where we want it. The tendency is that both train and validation loss is close to zero.&lt;/p&gt;
&lt;figure class=&quot;fig scatter&quot; data-fig=&quot;scatter&quot; data-points=&quot;[[9.8827,8.3841],[9.88,6.4272],[6.1139,5.9624],[6.1055,5.5587],[6.1279,5.23],[6.1307,5.1549],[6.1642,5.1408],[6.1259,5.0744],[6.1348,4.9789],[6.1642,5],[6.1286,4.8979],[6.1273,4.8225],[6.0846,4.838],[6.0905,4.8958],[6.0771,4.9915],[6.093,5.0775],[6.0888,5.2113],[6.0852,5.1549],[6.1139,4.507],[6.1159,4.1027],[2.1776,3.8028],[2.424,1.7344],[2.1608,1.5528],[1.9877,1.277],[0.6131,0.7549],[0.6533,0.7465],[0.6533,0.6761],[0.7035,0.6761],[0.7035,0.5915],[0.6533,0.5352],[0.6533,0.5915],[0.603,0.5962],[0.593,0.5014],[0.5946,0.4225],[0.6009,0.3345],[0.6407,0.3451],[0.6449,0.2465],[0.6002,0.169],[0.5863,0.0986],[0.557,0.1056],[0.5025,0.0986],[0.4523,0.0845],[0.402,0.0282],[0.402,0.0845],[0.3518,0.0282],[0.3015,0.0141],[0.2513,0.0141],[0.201,0.0141],[0.1487,0.0035],[0.1005,-0.0563],[0.0503,-0.0563],[0,-0.0563],[0,0],[0.0503,0],[0.1005,0],[0.1508,0.0845],[0.201,0.0845],[0.2513,0.0845],[0.3015,0.0845],[0.3518,0.0845],[0.4523,0.169],[0.5025,0.169],[0.5528,0.169],[0.603,0.2535],[0.5528,0.2535],[0.5025,0.2535],[0.402,0.169],[0.3518,0.169],[0.3015,0.169],[0.1005,0.0845],[0.0503,0.0845],[0,0.0845],[-0.0335,0.0986],[0.1005,0.1655],[0.1508,0.169],[0.201,0.169],[0.2513,0.169],[0.3518,0.2535],[0.402,0.2535],[0.4523,0.2535],[0.5528,0.338],[0.5528,0.4225],[0.5549,0.5035],[0.5025,0.338],[0.4523,0.338],[0.402,0.338],[0.3015,0.2535],[0.2513,0.2535],[0.201,0.2535],[0.1528,0.25],[0.1173,0.2394],[0.2513,0.338],[0.3015,0.338],[0.3518,0.338],[0.4523,0.4225],[0.5025,0.4225],[0.5001,0.499],[0.4523,0.507],[0.402,0.4225],[0.3518,0.4225],[0.3015,0.4225],[0.201,0.338],[0.1608,0.3324],[0.2031,0.419],[0.2513,0.4225],[0.3518,0.507],[0.402,0.507],[0.4523,0.5915],[0.4969,0.6009],[0.402,0.5915],[0.3015,0.507],[0.2513,0.507],[0.2122,0.4883],[0.3082,0.5803],[0.3518,0.588],[0.4104,0.6479],[0.1675,0.4085],[0.0526,0.161],[0,0.1549],[0.6198,0.6761],[0.737,0.7465],[0.7059,0.7525],[0.8752,0.4718],[0.8162,0.2116],[1.1348,0.2394],[0.9715,0.1511]]&quot; data-box=&quot;0,10,0,10&quot; data-names=&quot;[&amp;#x22;validation loss&amp;#x22;,&amp;#x22;loss&amp;#x22;]&quot; aria-label=&quot;Training and validation loss&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a run to read its losses.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 330&quot; role=&quot;img&quot; aria-label=&quot;Training and validation loss&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;280.0&quot; y2=&quot;280.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;284.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;229.2&quot; y2=&quot;229.2&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;233.2&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;178.4&quot; y2=&quot;178.4&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;182.4&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;127.6&quot; y2=&quot;127.6&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;131.6&quot; text-anchor=&quot;end&quot;&gt;6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;76.8&quot; y2=&quot;76.8&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;80.8&quot; text-anchor=&quot;end&quot;&gt;8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;26.0&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;30.0&quot; text-anchor=&quot;end&quot;&gt;10&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;56.0&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;0.0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;208.5&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;2.5&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;361.0&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;5.0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;513.5&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;7.5&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;666.0&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;10.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;280&quot; y2=&quot;280&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;361&quot; y=&quot;324&quot; text-anchor=&quot;middle&quot;&gt;validation loss&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;56&quot; y=&quot;16&quot;&gt;loss&lt;/text&gt;&lt;path class=&quot;band&quot; d=&quot;M86.5 267.9L141.4 249.4L196.3 230.5L251.2 211.3L306.1 191.4L361.0 172.1L415.9 152.6L470.8 133.3L525.7 113.4L580.6 94.6L635.5 75.3L635.5 115.0L580.6 130.6L525.7 146.6L470.8 161.4L415.9 177.0L361.0 192.3L306.1 207.8L251.2 222.7L196.3 238.3L141.4 254.3L86.5 270.6Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;marks&quot; d=&quot;M656 64l6 6m0-6l-6 6M656 114l6 6m0-6l-6 6M426 126l6 6m0-6l-6 6M425 136l6 6m0-6l-6 6M427 144l6 6m0-6l-6 6M427 148l6 6m0-6l-6 6M427 151l6 6m0-6l-6 6M427 155l6 6m0-6l-6 6M424 154l6 6m0-6l-6 6M424 150l6 6m0-6l-6 6M424 145l6 6m0-6l-6 6M426 163l6 6m0-6l-6 6M426 173l6 6m0-6l-6 6M186 180l6 6m0-6l-6 6M201 233l6 6m0-6l-6 6M185 238l6 6m0-6l-6 6M174 245l6 6m0-6l-6 6M90 258l6 6m0-6l-6 6M93 258l6 6m0-6l-6 6M96 260l6 6m0-6l-6 6M93 263l6 6m0-6l-6 6M90 262l6 6m0-6l-6 6M89 266l6 6m0-6l-6 6M90 269l6 6m0-6l-6 6M90 273l6 6m0-6l-6 6M87 274l6 6m0-6l-6 6M84 274l6 6m0-6l-6 6M81 275l6 6m0-6l-6 6M78 276l6 6m0-6l-6 6M74 276l6 6m0-6l-6 6M71 277l6 6m0-6l-6 6M68 277l6 6m0-6l-6 6M65 277l6 6m0-6l-6 6M62 277l6 6m0-6l-6 6M59 278l6 6m0-6l-6 6M56 278l6 6m0-6l-6 6M53 278l6 6m0-6l-6 6M87 271l6 6m0-6l-6 6M84 271l6 6m0-6l-6 6M78 273l6 6m0-6l-6 6M74 273l6 6m0-6l-6 6M71 273l6 6m0-6l-6 6M59 275l6 6m0-6l-6 6M56 275l6 6m0-6l-6 6M53 275l6 6m0-6l-6 6M62 273l6 6m0-6l-6 6M65 273l6 6m0-6l-6 6M68 273l6 6m0-6l-6 6M81 271l6 6m0-6l-6 6M84 268l6 6m0-6l-6 6M81 268l6 6m0-6l-6 6M78 268l6 6m0-6l-6 6M68 268l6 6m0-6l-6 6M71 268l6 6m0-6l-6 6M74 268l6 6m0-6l-6 6M84 264l6 6m0-6l-6 6M81 264l6 6m0-6l-6 6M65 268l6 6m0-6l-6 6M74 264l6 6m0-6l-6 6M78 264l6 6m0-6l-6 6M71 264l6 6m0-6l-6 6M68 264l6 6m0-6l-6 6M78 261l6 6m0-6l-6 6M106 265l6 6m0-6l-6 6M103 272l6 6m0-6l-6 6M122 271l6 6m0-6l-6 6M112 273l6 6m0-6l-6 6&quot;&gt;&lt;/path&gt;&lt;line class=&quot;fit&quot; x1=&quot;86.5&quot; y1=&quot;269.2&quot; x2=&quot;635.5&quot; y2=&quot;95.2&quot; pathLength=&quot;100&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;near&quot; r=&quot;6&quot; cx=&quot;-20&quot; cy=&quot;-20&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;figcaption&gt;Each run a point, read from the original plot; where they overlap, as they appear there. The line and its band, as the original fitted them.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-59a16eb&quot;&gt;I think for now we know enough; it’s time to set up the next round of the experiment! As a point of reference, the parameter space for the next experiment looks like this:&lt;/p&gt;
&lt;figure class=&quot;code code-python&quot; id=&quot;code-5&quot; data-lines=&quot;14&quot; aria-label=&quot;Python, 14 lines&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Python&lt;/span&gt;&lt;span class=&quot;code-count&quot;&gt;14 lines&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L1&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L1&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;1&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;p &lt;span class=&quot;t-punctuation&quot;&gt;=&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;{&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;lr&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0.8&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;1.2&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L2&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L2&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;2&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;first_neuron&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L3&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L3&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;3&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;hidden_layers&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L4&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L4&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;4&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;batch_size&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L5&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L5&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;5&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;epochs&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;150&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L6&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L6&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;6&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;dropout&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;(&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L7&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L7&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;7&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;weight_regulizer&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L8&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L8&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;8&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;emb_output_dims&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-number&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L9&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L9&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;9&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;shape&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;brick&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;long_funnel&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L10&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L10&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;10&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;kernel_initializer&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;uniform&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;normal&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L11&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L11&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;11&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;optimizer&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;Adam&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; Nadam&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; RMSprop&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L12&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L12&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;12&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;losses&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;binary_crossentropy&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L13&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L13&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;13&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;activation&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:[&lt;/span&gt;&lt;wbr&gt;relu&lt;span class=&quot;t-punctuation&quot;&gt;,&lt;/span&gt;&lt;wbr&gt; elu&lt;span class=&quot;t-punctuation&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-5-L14&quot;&gt;&lt;a class=&quot;ln&quot; href=&quot;#code-5-L14&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot;&gt;14&lt;/a&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:5&quot;&gt;&lt;span class=&quot;ind&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;t-string&quot;&gt;&apos;last_activation&apos;&lt;/span&gt;&lt;span class=&quot;t-punctuation&quot;&gt;:&lt;/span&gt;&lt;wbr&gt; &lt;span class=&quot;t-punctuation&quot;&gt;[&lt;/span&gt;&lt;wbr&gt;sigmoid&lt;span class=&quot;t-punctuation&quot;&gt;]}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-51ac8db&quot;&gt;In addition to refining the learning rate, dropout, and batch size boundaries, I’ve added kernel_initializer ‘uniform.’ Remember that at this stage the objective is to learn about the prediction task, as opposed to being too focused on finding the solution. The key point here is experimentation and learning about the overall process, in addition to learning about the specific prediction challenge.&lt;/p&gt;
&lt;figure class=&quot;fig loading&quot; data-fig=&quot;loading&quot; data-seconds=&quot;6.5&quot; data-stages=&quot;[&amp;#x22;Refining the learning rate&amp;#x22;,&amp;#x22;Narrowing dropout and batch size&amp;#x22;,&amp;#x22;Adding the uniform kernel initializer&amp;#x22;,&amp;#x22;Scanning the permutations&amp;#x22;]&quot; data-ask=&quot;Start the second round?&quot; data-done=&quot;The result for the second round is 96% validation accuracy.&quot; data-again=&quot;Once more&quot; aria-label=&quot;A loading indicator&quot;&gt;&lt;div class=&quot;loading-bar&quot; role=&quot;progressbar&quot; aria-label=&quot;The second round&quot; aria-valuemin=&quot;0&quot; aria-valuemax=&quot;100&quot; aria-valuenow=&quot;100&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;p class=&quot;loading-row&quot;&gt;&lt;span class=&quot;loading-status fig-small&quot; aria-live=&quot;polite&quot;&gt;The result for the second round is 96% validation accuracy.&lt;/span&gt;&lt;b class=&quot;loading-pct&quot;&gt;100%&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;loading-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;fig-pill loading-go&quot;&gt;Start&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;The loading animation of the original. What it says as it goes is the piece’s own.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;round-2--increase-the-focus-on-result&quot;&gt;Round 2 — Increase the Focus on Result&lt;/h3&gt;
&lt;p id=&quot;p-8218d6e&quot;&gt;Initially, the less we focus on the result (and more on the process), the more likely we’re going to get a good result. It’s like playing chess; if at first you’re too focused on winning the game, you will not focus on the opening and mid-game. Competitive chess is won in the endgame, based on playing a strong beginning and middle. If things go well, the second iteration in the hyperparameter optimization process is the middle. We’re not entirely focused on winning the game yet, but it helps to have the eye on the prize already. In our case, the results from the first round (94.1% validation accuracy) indicate that with the given dataset, and the set parameter boundaries, there are predictions to be made.&lt;/p&gt;
&lt;p id=&quot;p-590a76e&quot;&gt;In this case, the prediction task here is to say if breast cancer is benign or malignant. This type of predictions is a kind of a big deal in the sense that both false positives and false negatives do matter. Getting the prediction wrong will have some negative effect on the person’s life. In case you are interested, there is a bunch of papers written on this dataset, and some other relevant info, which you can all find &lt;a href=&quot;https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p id=&quot;p-ee0bf8b&quot;&gt;The result for the second round is 96% validation accuracy. The below correlation shows that the only thing sticking out at this point, is the number of epochs, so for the third round that’s one thing I’m going to change.&lt;/p&gt;
&lt;figure class=&quot;fig matrix&quot; data-fig=&quot;matrix&quot; aria-label=&quot;Second-round parameter correlations&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Choose a cell to read how strongly two measures moved together.&lt;/p&gt;&lt;div class=&quot;matrix-grid&quot; style=&quot;--n:7&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;val_loss&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;val_acc&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;lr&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;first_neuron&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;hidden_layers&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;batch_size&lt;/span&gt;&lt;span class=&quot;matrix-col fig-small&quot;&gt;epochs&lt;/span&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;val_loss&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;0&quot; data-c=&quot;0&quot; aria-label=&quot;val_loss, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;0&quot; data-c=&quot;1&quot; aria-label=&quot;val_loss and val_acc: between -0.69 and -0.52&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;0&quot; data-c=&quot;2&quot; aria-label=&quot;val_loss and lr: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;0&quot; data-c=&quot;3&quot; aria-label=&quot;val_loss and first_neuron: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;0&quot; data-c=&quot;4&quot; aria-label=&quot;val_loss and hidden_layers: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;0&quot; data-c=&quot;5&quot; aria-label=&quot;val_loss and batch_size: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;0&quot; data-c=&quot;6&quot; aria-label=&quot;val_loss and epochs: between -0.35 and -0.19&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;val_acc&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n5&quot; data-r=&quot;1&quot; data-c=&quot;0&quot; aria-label=&quot;val_acc and val_loss: between -0.69 and -0.52&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;1&quot; data-c=&quot;1&quot; aria-label=&quot;val_acc, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;1&quot; data-c=&quot;2&quot; aria-label=&quot;val_acc and lr: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;1&quot; data-c=&quot;3&quot; aria-label=&quot;val_acc and first_neuron: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;1&quot; data-c=&quot;4&quot; aria-label=&quot;val_acc and hidden_layers: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;1&quot; data-c=&quot;5&quot; aria-label=&quot;val_acc and batch_size: between -0.02 and 0.15&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p3&quot; data-r=&quot;1&quot; data-c=&quot;6&quot; aria-label=&quot;val_acc and epochs: between 0.32 and 0.49&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;lr&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;2&quot; data-c=&quot;0&quot; aria-label=&quot;lr and val_loss: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;2&quot; data-c=&quot;1&quot; aria-label=&quot;lr and val_acc: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;2&quot; data-c=&quot;2&quot; aria-label=&quot;lr, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;2&quot; data-c=&quot;3&quot; aria-label=&quot;lr and first_neuron: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;2&quot; data-c=&quot;4&quot; aria-label=&quot;lr and hidden_layers: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;2&quot; data-c=&quot;5&quot; aria-label=&quot;lr and batch_size: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;2&quot; data-c=&quot;6&quot; aria-label=&quot;lr and epochs: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;first_neuron&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;3&quot; data-c=&quot;0&quot; aria-label=&quot;first_neuron and val_loss: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;3&quot; data-c=&quot;1&quot; aria-label=&quot;first_neuron and val_acc: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;3&quot; data-c=&quot;2&quot; aria-label=&quot;first_neuron and lr: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;3&quot; data-c=&quot;3&quot; aria-label=&quot;first_neuron, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;3&quot; data-c=&quot;4&quot; aria-label=&quot;first_neuron and hidden_layers: between -0.02 and 0.15&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;3&quot; data-c=&quot;5&quot; aria-label=&quot;first_neuron and batch_size: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;3&quot; data-c=&quot;6&quot; aria-label=&quot;first_neuron and epochs: between -0.02 and 0.15&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;hidden_layers&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;4&quot; data-c=&quot;0&quot; aria-label=&quot;hidden_layers and val_loss: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;4&quot; data-c=&quot;1&quot; aria-label=&quot;hidden_layers and val_acc: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;4&quot; data-c=&quot;2&quot; aria-label=&quot;hidden_layers and lr: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;4&quot; data-c=&quot;3&quot; aria-label=&quot;hidden_layers and first_neuron: between -0.02 and 0.15&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;4&quot; data-c=&quot;4&quot; aria-label=&quot;hidden_layers, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;4&quot; data-c=&quot;5&quot; aria-label=&quot;hidden_layers and batch_size: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;4&quot; data-c=&quot;6&quot; aria-label=&quot;hidden_layers and epochs: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;batch_size&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;5&quot; data-c=&quot;0&quot; aria-label=&quot;batch_size and val_loss: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;5&quot; data-c=&quot;1&quot; aria-label=&quot;batch_size and val_acc: between -0.02 and 0.15&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;5&quot; data-c=&quot;2&quot; aria-label=&quot;batch_size and lr: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;5&quot; data-c=&quot;3&quot; aria-label=&quot;batch_size and first_neuron: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;5&quot; data-c=&quot;4&quot; aria-label=&quot;batch_size and hidden_layers: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;5&quot; data-c=&quot;5&quot; aria-label=&quot;batch_size, with itself&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;5&quot; data-c=&quot;6&quot; aria-label=&quot;batch_size and epochs: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;span class=&quot;matrix-row fig-small&quot;&gt;epochs&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;cell n2&quot; data-r=&quot;6&quot; data-c=&quot;0&quot; aria-label=&quot;epochs and val_loss: between -0.35 and -0.19&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p3&quot; data-r=&quot;6&quot; data-c=&quot;1&quot; aria-label=&quot;epochs and val_acc: between 0.32 and 0.49&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;6&quot; data-c=&quot;2&quot; aria-label=&quot;epochs and lr: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p0&quot; data-r=&quot;6&quot; data-c=&quot;3&quot; aria-label=&quot;epochs and first_neuron: between -0.02 and 0.15&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;6&quot; data-c=&quot;4&quot; aria-label=&quot;epochs and hidden_layers: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell n1&quot; data-r=&quot;6&quot; data-c=&quot;5&quot; aria-label=&quot;epochs and batch_size: between -0.19 and -0.02&quot;&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;cell p5&quot; data-r=&quot;6&quot; data-c=&quot;6&quot; aria-label=&quot;epochs, with itself&quot;&gt;&lt;/button&gt;&lt;/div&gt;&lt;p class=&quot;matrix-scale fig-small&quot;&gt;&lt;span class=&quot;cell n5&quot;&gt;&lt;/span&gt; moves the other way &lt;span class=&quot;cell p0&quot;&gt;&lt;/span&gt; no relation &lt;span class=&quot;cell p5&quot;&gt;&lt;/span&gt; together&lt;/p&gt;&lt;figcaption&gt;The second round’s correlations. The original’s colours give each cell a band, not a value; here each is coloured against the strongest pair.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-5d3af3e&quot;&gt;If you look at the correlation alone, there is a danger of missing something in the bigger picture. In hyperparameter optimization, the big picture is about individual values within a given parameter, and their interconnectedness with all other values. Now that we’ve eliminated the logcosh loss function, and have just one loss (binary_crossentropy) in the parameter space, I want to learn a little bit about how the different optimizers are performing in the context of the epochs.&lt;/p&gt;
&lt;figure class=&quot;fig boxes&quot; data-fig=&quot;boxes&quot; aria-label=&quot;Validation accuracy by epochs and optimizer&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a box for its numbers, or at a series in the key.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;s0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;Adam&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;s1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;Nadam&lt;/li&gt;&lt;li data-pick=&quot;2&quot;&gt;&lt;i class=&quot;s2&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;RMSprop&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 320&quot; role=&quot;img&quot; aria-label=&quot;Validation accuracy by epochs and optimizer&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;251.2&quot; y2=&quot;251.2&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;255.2&quot; text-anchor=&quot;end&quot;&gt;90%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;176.2&quot; y2=&quot;176.2&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;180.2&quot; text-anchor=&quot;end&quot;&gt;92%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;101.1&quot; y2=&quot;101.1&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;105.1&quot; text-anchor=&quot;end&quot;&gt;94%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;26.0&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;30.0&quot; text-anchor=&quot;end&quot;&gt;96%&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;270&quot; y2=&quot;270&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;361&quot; y=&quot;314&quot; text-anchor=&quot;middle&quot;&gt;epochs&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;54&quot; y=&quot;16&quot;&gt;validation accuracy&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;156.3&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;361.0&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;565.7&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;epochs 50, Adam: median 93.0%; the middle half from 92.4% to 93.0%; all from 91.8% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:0&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;101.8&quot; x2=&quot;101.8&quot; y1=&quot;117.3&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;91.4&quot; x2=&quot;112.1&quot; y1=&quot;117.3&quot; y2=&quot;117.3&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;91.4&quot; x2=&quot;112.1&quot; y1=&quot;183.2&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;81.0&quot; y=&quot;139.3&quot; width=&quot;41.5&quot; height=&quot;22.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;81.0&quot; x2=&quot;122.5&quot; y1=&quot;139.3&quot; y2=&quot;139.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;epochs 50, Nadam: median 93.0%; the middle half from 92.4% to 93.0%; all from 91.8% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:1&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;156.3&quot; x2=&quot;156.3&quot; y1=&quot;117.3&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;146.0&quot; x2=&quot;166.7&quot; y1=&quot;117.3&quot; y2=&quot;117.3&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;146.0&quot; x2=&quot;166.7&quot; y1=&quot;183.2&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;135.6&quot; y=&quot;139.3&quot; width=&quot;41.5&quot; height=&quot;22.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;135.6&quot; x2=&quot;177.1&quot; y1=&quot;139.3&quot; y2=&quot;139.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;epochs 50, RMSprop: median 93.0%; the middle half from 91.8% to 93.0%; all from 91.2% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:2&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;210.9&quot; x2=&quot;210.9&quot; y1=&quot;117.3&quot; y2=&quot;205.1&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;200.5&quot; x2=&quot;221.3&quot; y1=&quot;117.3&quot; y2=&quot;117.3&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;200.5&quot; x2=&quot;221.3&quot; y1=&quot;205.1&quot; y2=&quot;205.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;190.2&quot; y=&quot;139.3&quot; width=&quot;41.5&quot; height=&quot;43.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;190.2&quot; x2=&quot;231.7&quot; y1=&quot;139.3&quot; y2=&quot;139.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;epochs 100, Adam: median 93.6%; the middle half from 93.0% to 93.6%; all from 92.4% to 94.2%&quot; tabindex=&quot;0&quot; style=&quot;--i:3&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;306.4&quot; x2=&quot;306.4&quot; y1=&quot;95.4&quot; y2=&quot;161.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;296.1&quot; x2=&quot;316.8&quot; y1=&quot;95.4&quot; y2=&quot;95.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;296.1&quot; x2=&quot;316.8&quot; y1=&quot;161.2&quot; y2=&quot;161.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;285.7&quot; y=&quot;117.3&quot; width=&quot;41.5&quot; height=&quot;22.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;285.7&quot; x2=&quot;327.2&quot; y1=&quot;117.3&quot; y2=&quot;117.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;epochs 100, Nadam: median 93.6%; the middle half from 93.0% to 94.2%; all from 91.8% to 95.3%&quot; tabindex=&quot;0&quot; style=&quot;--i:4&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;361.0&quot; x2=&quot;361.0&quot; y1=&quot;51.5&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;350.6&quot; x2=&quot;371.4&quot; y1=&quot;51.5&quot; y2=&quot;51.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;350.6&quot; x2=&quot;371.4&quot; y1=&quot;183.2&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;340.3&quot; y=&quot;95.4&quot; width=&quot;41.5&quot; height=&quot;43.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;340.3&quot; x2=&quot;381.7&quot; y1=&quot;117.3&quot; y2=&quot;117.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;epochs 100, RMSprop: median 93.0%; the middle half from 92.4% to 93.0%; all from 91.8% to 93.6%&quot; tabindex=&quot;0&quot; style=&quot;--i:5&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;415.6&quot; x2=&quot;415.6&quot; y1=&quot;117.3&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;405.2&quot; x2=&quot;425.9&quot; y1=&quot;117.3&quot; y2=&quot;117.3&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;405.2&quot; x2=&quot;425.9&quot; y1=&quot;183.2&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;394.8&quot; y=&quot;139.3&quot; width=&quot;41.5&quot; height=&quot;22.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;394.8&quot; x2=&quot;436.3&quot; y1=&quot;139.3&quot; y2=&quot;139.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;epochs 150, Adam: median 94.2%; the middle half from 93.0% to 94.2%; all from 92.4% to 95.3%&quot; tabindex=&quot;0&quot; style=&quot;--i:6&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;511.1&quot; x2=&quot;511.1&quot; y1=&quot;51.5&quot; y2=&quot;161.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;500.7&quot; x2=&quot;521.5&quot; y1=&quot;51.5&quot; y2=&quot;51.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;500.7&quot; x2=&quot;521.5&quot; y1=&quot;161.2&quot; y2=&quot;161.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;490.3&quot; y=&quot;95.4&quot; width=&quot;41.5&quot; height=&quot;43.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;490.3&quot; x2=&quot;531.8&quot; y1=&quot;95.4&quot; y2=&quot;95.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;epochs 150, Nadam: median 94.2%; the middle half from 93.6% to 94.7%; all from 91.8% to 95.3%&quot; tabindex=&quot;0&quot; style=&quot;--i:7&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;565.7&quot; x2=&quot;565.7&quot; y1=&quot;51.5&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;555.3&quot; x2=&quot;576.0&quot; y1=&quot;51.5&quot; y2=&quot;51.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;555.3&quot; x2=&quot;576.0&quot; y1=&quot;183.2&quot; y2=&quot;183.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;544.9&quot; y=&quot;73.4&quot; width=&quot;41.5&quot; height=&quot;43.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;544.9&quot; x2=&quot;586.4&quot; y1=&quot;95.4&quot; y2=&quot;95.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;epochs 150, RMSprop: median 93.6%; the middle half from 92.4% to 94.2%; all from 90.1% to 94.7%&quot; tabindex=&quot;0&quot; style=&quot;--i:8&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;620.2&quot; x2=&quot;620.2&quot; y1=&quot;73.4&quot; y2=&quot;249.0&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;609.9&quot; x2=&quot;630.6&quot; y1=&quot;73.4&quot; y2=&quot;73.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;609.9&quot; x2=&quot;630.6&quot; y1=&quot;249.0&quot; y2=&quot;249.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;599.5&quot; y=&quot;95.4&quot; width=&quot;41.5&quot; height=&quot;65.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;599.5&quot; x2=&quot;641.0&quot; y1=&quot;117.3&quot; y2=&quot;117.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;figcaption&gt;Read from the original plot. Every accuracy is a count of the 171 validation cases.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-7e8146e&quot;&gt;It is exactly like the correlation suggests regarding epochs (now on the x-axis). Because RMSprop underperforms in both 100 and 150, let’s also drop that from the next round.&lt;/p&gt;
&lt;p id=&quot;p-94cc0de&quot;&gt;Before moving on, let’s consider very briefly a fundamental question related to hyperparameter optimization as an optimization challenge. What is it that we’re trying to achieve? The answer can be summarized using two simple concepts;&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-4ce763d&quot;&gt;Prediction optimum&lt;/li&gt;
&lt;li id=&quot;p-c3859fd&quot;&gt;Result entropy&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-a5f66ff&quot;&gt;Prediction optimum is where we have a model that is both precise and generalized. Result entropy is where the entropy is as close to zero (minimal) as possible. Result entropy can be understood as a measure of similarity between between all the results within a result set (one round of going through n permutations). The ideal scenario is where the prediction optimum is 1, which is 100% prediction performance and 100% generality, and the resulting entropy is 0. This means that no matter what we do within the hyperparameter space, we only get the perfect result every time. This is not feasible for several reasons but is helpful to keep in mind regarding the objectives of the process of optimizing the process of hyperparameter optimization. The other way to look at answering the question is through three levels of consideration;&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-9578302&quot;&gt;The prediction task, where the goal is to find a model that provides a solution for the task&lt;/li&gt;
&lt;li id=&quot;p-4b03380&quot;&gt;The hyperparameter optimization task, where the goal is to find the best model (with least effort) for the prediction task&lt;/li&gt;
&lt;li id=&quot;p-d088eb2&quot;&gt;The hyperparameter optimization task optimization task, where the goal is to find the best approach to best approach to finding the best model for the prediction task&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-4981349&quot;&gt;You might then ask if this leads us to an infinite progression where we then need optimizers on top of optimizers, and the answer is yes. In my view, what makes the hyperparameter optimization problem interesting, is the way it leads us to the solution for the problem of “models that build models.” But that would take us far from the scope of this article.&lt;/p&gt;
&lt;p id=&quot;p-251b822&quot;&gt;With the second, and particularly the third aspects in mind, we need to consider the computational efficiency of the process. The less we waste the computational resource, the more we have of it for finding the best possible result regarding the aspects one and two. Consider the below graphs in this light.&lt;/p&gt;
&lt;figure class=&quot;fig density&quot; data-fig=&quot;density&quot; data-series=&quot;[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.2,0.2,0.2,0.3,0.4,0.4,0.4,0.4,0.4,0.3,0.2,0.2,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.2,0.4,0.6,1.2,2.2,2.8,4.5,5.3,6.6,7.6,7.6,7.5,7.3,6,5.3,3.8,3,1.8,0.8,0.6,0.3,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.3,0.3,0.3,0.4,0.5,0.6,0.6,0.7,0.8,0.9,0.9,1,1,1.1,1.1,1.2,1.4,1.4,1.6,1.9,2,2.3,2.4,2.8,3.2,3.4,3.8,4.3,4.7,5.5,5.9,6.8,7.9,8.4,9.6,10.9,11.6,12.9,13.7,14.9,15.9,16.2,16.7,16.6,16.2,15.9,14.6,13.9,12.1,10.2,9.4,7.7,6.3,5.7,4.5,4.1,3.1,2.2,2,1.3,0.9,0.7,0.4,0.3,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0.1,0.1,0.1,0.1,0.2,0.3,0.4,0.5,0.5,0.4,0.3,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.2,0.3,0.3,0.3,0.3,0.2,0.2,0.2,0.3,0.3,0.3,0.3,0.2,0.1,0.1,0.2,0.3,0.4,0.8,0.9,0.9,0.8,0.7,0.5,0.4,0.4,0.5,0.5,0.5,0.5,0.4,0.3,0.3,0.2,0.1,0.1,0.1,0.2,0.3,0.5,0.8,1.1,1.2,1.5,1.7,2.9,5.1,6.7,11,16.7,20.1,27.6,34.1,36,37.2,36.6,36.1,32.7,29.5,27.5,22.7,16.2,12.9,7.6,4.5,3.5,2.2,1.6,0.9,0.3,0.2,0.1,0.1,0.1,0.1,0,0,0,0,0,0,0,0,0]]&quot; data-names=&quot;[&amp;#x22;Round 1&amp;#x22;,&amp;#x22;Round 2&amp;#x22;]&quot; data-box=&quot;46,668,254,26,40&quot; aria-label=&quot;Validation accuracy distribution, round one&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Round 2: most often near 0.93, where the density is 37.2.&lt;/p&gt;&lt;div class=&quot;fig-views&quot; role=&quot;group&quot; aria-label=&quot;Validation accuracy, round one and round two&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; data-view=&quot;0&quot; aria-pressed=&quot;false&quot;&gt;Round 1&lt;/button&gt;&lt;button type=&quot;button&quot; data-view=&quot;1&quot; aria-pressed=&quot;true&quot;&gt;Round 2&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 300&quot; role=&quot;img&quot; aria-label=&quot;Round 1: peaks at 0.90; Round 2: peaks at 0.93&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;668&quot; y1=&quot;254.0&quot; y2=&quot;254.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;258.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;668&quot; y1=&quot;197.0&quot; y2=&quot;197.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;201.0&quot; text-anchor=&quot;end&quot;&gt;10&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;668&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;20&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;668&quot; y1=&quot;83.0&quot; y2=&quot;83.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;87.0&quot; text-anchor=&quot;end&quot;&gt;30&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;668&quot; y1=&quot;26.0&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;30.0&quot; text-anchor=&quot;end&quot;&gt;40&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;46.0&quot; y=&quot;274&quot; text-anchor=&quot;middle&quot;&gt;0.0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;170.4&quot; y=&quot;274&quot; text-anchor=&quot;middle&quot;&gt;0.2&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;294.8&quot; y=&quot;274&quot; text-anchor=&quot;middle&quot;&gt;0.4&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;419.2&quot; y=&quot;274&quot; text-anchor=&quot;middle&quot;&gt;0.6&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;543.6&quot; y=&quot;274&quot; text-anchor=&quot;middle&quot;&gt;0.8&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;668.0&quot; y=&quot;274&quot; text-anchor=&quot;middle&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;46&quot; x2=&quot;668&quot; y1=&quot;254&quot; y2=&quot;254&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;357&quot; y=&quot;294&quot; text-anchor=&quot;middle&quot;&gt;validation accuracy&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;46&quot; y=&quot;16&quot;&gt;density&lt;/text&gt;&lt;path class=&quot;curve ghost s0&quot; d=&quot;M46.0 254.0L254.4 254.0L269.9 253.7L280.8 251.5L283.9 251.5L294.8 253.7L413.0 253.7L416.1 252.9L417.6 251.8L419.2 250.4L420.8 247.3L422.3 241.2L423.9 238.2L425.4 228.4L430.1 210.6L434.8 212.3L436.3 219.8L437.9 223.7L439.4 232.6L444.1 249.3L447.2 252.3L448.7 253.1L453.4 253.7L490.7 253.1L518.7 253.4L537.4 253.1L543.6 252.3L551.4 250.6L554.5 249.3L563.8 247.6L568.5 246.0L576.3 240.1L579.4 235.9L580.9 234.8L585.6 227.3L587.1 222.9L588.7 220.7L591.8 209.3L593.4 206.2L596.5 192.0L598.0 188.1L599.6 180.3L601.1 176.1L604.2 163.4L607.4 158.9L608.9 159.2L610.5 161.9L612.0 163.4L613.6 170.8L615.1 175.1L618.2 195.6L619.8 200.4L622.9 217.9L630.7 241.2L632.2 242.9L635.3 249.0L638.5 251.8L643.1 253.4L668.0 254.0Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;curve ghost s1&quot; d=&quot;M46.0 254.0L419.2 254.0L420.8 253.4L427.0 253.4L433.2 250.9L434.8 250.9L441.0 253.4L537.4 253.4L540.5 252.1L545.2 252.1L546.7 252.7L556.0 252.1L559.1 253.4L560.7 253.4L565.4 251.5L566.9 249.7L568.5 249.0L570.0 249.0L576.3 251.5L579.4 250.9L584.0 250.9L591.8 253.4L594.9 253.4L598.0 252.1L607.4 244.1L608.9 237.3L612.0 215.6L615.1 158.6L616.7 139.4L619.8 59.5L622.9 42.1L626.0 48.3L629.1 86.1L630.7 97.3L633.8 161.7L638.5 228.6L641.6 241.6L646.2 252.1L649.3 253.4L654.0 253.4L655.6 254.0L668.0 254.0Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;curve live&quot; d=&quot;M46.0 254.0L419.2 254.0L420.8 253.4L427.0 253.4L433.2 250.9L434.8 250.9L441.0 253.4L537.4 253.4L540.5 252.1L545.2 252.1L546.7 252.7L556.0 252.1L559.1 253.4L560.7 253.4L565.4 251.5L566.9 249.7L568.5 249.0L570.0 249.0L576.3 251.5L579.4 250.9L584.0 250.9L591.8 253.4L594.9 253.4L598.0 252.1L607.4 244.1L608.9 237.3L612.0 215.6L615.1 158.6L616.7 139.4L619.8 59.5L622.9 42.1L626.0 48.3L629.1 86.1L630.7 97.3L633.8 161.7L638.5 228.6L641.6 241.6L646.2 252.1L649.3 253.4L654.0 253.4L655.6 254.0L668.0 254.0Z&quot;&gt;&lt;/path&gt;&lt;line class=&quot;cursor&quot; x1=&quot;0&quot; x2=&quot;0&quot; y1=&quot;26&quot; y2=&quot;254&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;figcaption&gt;How the results of each round spread over validation accuracy, read from the original plots and set on one scale.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-c4d4ce6&quot;&gt;The second round KDE looks much better in the sense of having the resources allocated where we need them to be. They are closer to 1 on the x-axis, and there is very little in terms of “spillage” towards the 0. Whatever compute resources are going into the scan, they’re are doing important work. The ideal picture here is one of a single straight line with the x value of 1.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;round-3--generalization-and-performance&quot;&gt;Round 3 — Generalization and Performance&lt;/h3&gt;
&lt;p id=&quot;p-052776e&quot;&gt;Let’s get right to it. The peak validation accuracy is now 97.1%, and it looks like we’re going in the right direction. I made the mistake of just adding 175 epochs as max, and based on the below; it looks like we have to go further than that. At least with this configuration. Which makes me think…maybe for the last and final round, we should try something surprising.&lt;/p&gt;
&lt;figure class=&quot;fig boxes&quot; data-fig=&quot;boxes&quot; aria-label=&quot;Adam and Nadam across training durations&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a box for its numbers, or at a series in the key.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;s0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;Nadam&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;s1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;Adam&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 320&quot; role=&quot;img&quot; aria-label=&quot;Adam and Nadam across training durations&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;225.6&quot; y2=&quot;225.6&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;229.6&quot; text-anchor=&quot;end&quot;&gt;93%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;181.3&quot; y2=&quot;181.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;185.3&quot; text-anchor=&quot;end&quot;&gt;94%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;136.9&quot; y2=&quot;136.9&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;140.9&quot; text-anchor=&quot;end&quot;&gt;95%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;92.5&quot; y2=&quot;92.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;96.5&quot; text-anchor=&quot;end&quot;&gt;96%&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;48.2&quot; y2=&quot;48.2&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;46&quot; y=&quot;52.2&quot; text-anchor=&quot;end&quot;&gt;97%&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;54&quot; x2=&quot;668&quot; y1=&quot;270&quot; y2=&quot;270&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;361&quot; y=&quot;314&quot; text-anchor=&quot;middle&quot;&gt;epochs&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;54&quot; y=&quot;16&quot;&gt;validation accuracy&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;130.8&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;284.3&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;437.8&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;591.3&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;epochs 100, Nadam: median 95.3%; the middle half from 94.2% to 95.9%; all from 92.4% to 96.5%&quot; tabindex=&quot;0&quot; style=&quot;--i:0&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;100.0&quot; x2=&quot;100.0&quot; y1=&quot;70.8&quot; y2=&quot;252.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;88.4&quot; x2=&quot;111.7&quot; y1=&quot;70.8&quot; y2=&quot;70.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;88.4&quot; x2=&quot;111.7&quot; y1=&quot;252.4&quot; y2=&quot;252.4&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;76.7&quot; y=&quot;96.7&quot; width=&quot;46.7&quot; height=&quot;77.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;76.7&quot; x2=&quot;123.4&quot; y1=&quot;122.6&quot; y2=&quot;122.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;epochs 100, Adam: median 95.3%; the middle half from 94.2% to 95.3%; all from 93.0% to 95.3%&quot; tabindex=&quot;0&quot; style=&quot;--i:1&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;161.4&quot; x2=&quot;161.4&quot; y1=&quot;122.6&quot; y2=&quot;226.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;149.8&quot; x2=&quot;173.1&quot; y1=&quot;122.6&quot; y2=&quot;122.6&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;149.8&quot; x2=&quot;173.1&quot; y1=&quot;226.4&quot; y2=&quot;226.4&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;138.1&quot; y=&quot;122.6&quot; width=&quot;46.7&quot; height=&quot;51.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;138.1&quot; x2=&quot;184.8&quot; y1=&quot;122.6&quot; y2=&quot;122.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;epochs 125, Nadam: median 95.3%; the middle half from 94.7% to 96.5%; all from 93.6% to 96.5%&quot; tabindex=&quot;0&quot; style=&quot;--i:2&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;253.6&quot; x2=&quot;253.6&quot; y1=&quot;70.8&quot; y2=&quot;200.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;241.9&quot; x2=&quot;265.2&quot; y1=&quot;70.8&quot; y2=&quot;70.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;241.9&quot; x2=&quot;265.2&quot; y1=&quot;200.5&quot; y2=&quot;200.5&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;230.2&quot; y=&quot;70.8&quot; width=&quot;46.7&quot; height=&quot;77.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;230.2&quot; x2=&quot;276.9&quot; y1=&quot;122.6&quot; y2=&quot;122.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;epochs 125, Adam: median 94.7%; the middle half from 94.2% to 95.3%; all from 93.0% to 95.9%&quot; tabindex=&quot;0&quot; style=&quot;--i:3&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;314.9&quot; x2=&quot;314.9&quot; y1=&quot;96.7&quot; y2=&quot;226.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;303.3&quot; x2=&quot;326.6&quot; y1=&quot;96.7&quot; y2=&quot;96.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;303.3&quot; x2=&quot;326.6&quot; y1=&quot;226.4&quot; y2=&quot;226.4&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;291.6&quot; y=&quot;122.6&quot; width=&quot;46.7&quot; height=&quot;51.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;291.6&quot; x2=&quot;338.3&quot; y1=&quot;148.6&quot; y2=&quot;148.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;epochs 150, Nadam: median 95.3%; the middle half from 94.7% to 95.9%; all from 94.7% to 97.1%&quot; tabindex=&quot;0&quot; style=&quot;--i:4&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;407.1&quot; x2=&quot;407.1&quot; y1=&quot;44.8&quot; y2=&quot;148.6&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;395.4&quot; x2=&quot;418.7&quot; y1=&quot;44.8&quot; y2=&quot;44.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;395.4&quot; x2=&quot;418.7&quot; y1=&quot;148.6&quot; y2=&quot;148.6&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;383.7&quot; y=&quot;96.7&quot; width=&quot;46.7&quot; height=&quot;51.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;383.7&quot; x2=&quot;430.4&quot; y1=&quot;122.6&quot; y2=&quot;122.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;epochs 150, Adam: median 95.3%; the middle half from 94.7% to 95.9%; all from 93.0% to 97.1%&quot; tabindex=&quot;0&quot; style=&quot;--i:5&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;468.4&quot; x2=&quot;468.4&quot; y1=&quot;44.8&quot; y2=&quot;226.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;456.8&quot; x2=&quot;480.1&quot; y1=&quot;44.8&quot; y2=&quot;44.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;456.8&quot; x2=&quot;480.1&quot; y1=&quot;226.4&quot; y2=&quot;226.4&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;445.1&quot; y=&quot;96.7&quot; width=&quot;46.7&quot; height=&quot;51.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;445.1&quot; x2=&quot;491.8&quot; y1=&quot;122.6&quot; y2=&quot;122.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;epochs 175, Nadam: median 96.5%; the middle half from 95.3% to 96.5%; all from 94.2% to 97.1%&quot; tabindex=&quot;0&quot; style=&quot;--i:6&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;560.5&quot; x2=&quot;560.5&quot; y1=&quot;44.8&quot; y2=&quot;174.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;548.9&quot; x2=&quot;572.2&quot; y1=&quot;44.8&quot; y2=&quot;44.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;548.9&quot; x2=&quot;572.2&quot; y1=&quot;174.5&quot; y2=&quot;174.5&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;537.2&quot; y=&quot;70.8&quot; width=&quot;46.7&quot; height=&quot;51.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;537.2&quot; x2=&quot;583.9&quot; y1=&quot;70.8&quot; y2=&quot;70.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;box s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;epochs 175, Adam: median 96.5%; the middle half from 95.3% to 96.5%; all from 93.6% to 96.5%&quot; tabindex=&quot;0&quot; style=&quot;--i:7&quot;&gt;&lt;line class=&quot;whisker&quot; x1=&quot;622.0&quot; x2=&quot;622.0&quot; y1=&quot;70.8&quot; y2=&quot;200.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;610.3&quot; x2=&quot;633.6&quot; y1=&quot;70.8&quot; y2=&quot;70.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;cap&quot; x1=&quot;610.3&quot; x2=&quot;633.6&quot; y1=&quot;200.5&quot; y2=&quot;200.5&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;iqr&quot; x=&quot;598.6&quot; y=&quot;70.8&quot; width=&quot;46.7&quot; height=&quot;51.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;median&quot; x1=&quot;598.6&quot; x2=&quot;645.3&quot; y1=&quot;70.8&quot; y2=&quot;70.8&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;figcaption&gt;Read from the original plot. Every accuracy is a count of the 171 validation cases.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-62ea66f&quot;&gt;As it was discussed in the foreword, it’s important to consider generalization as well. Every time we look at the result, there is the effect where our insights start to affect the experiment. The net result is that we start to get less generalized models that work well with the validation dataset, but might not work well with a “real-life” dataset. In this case, we don’t have a good way to test for this kind of bias, but at least we can take measures to assess the degree of pseudo-generalization with what we have. Let’s see training and validation accuracy first.&lt;/p&gt;
&lt;figure class=&quot;fig scatter&quot; data-fig=&quot;scatter&quot; data-points=&quot;[[0.9533,0.956],[0.9533,0.9529],[0.9533,0.9499],[0.9545,0.9474],[0.9533,0.9469],[0.9545,0.9438],[0.9545,0.9408],[0.9545,0.9377],[0.9533,0.9347],[0.9545,0.9342],[0.9545,0.9322],[0.9533,0.9316],[0.9545,0.9286],[0.9545,0.9256],[0.9533,0.9225],[0.9545,0.92],[0.9535,0.9193],[0.9532,0.9166],[0.9521,0.9169],[0.9516,0.9198],[0.9533,0.9256],[0.9533,0.9286],[0.9515,0.9286],[0.9515,0.9256],[0.9515,0.9225],[0.9516,0.9318],[0.9516,0.9346],[0.9518,0.9377],[0.9533,0.9377],[0.9533,0.9408],[0.9533,0.9438],[0.9515,0.9438],[0.9517,0.9409],[0.9516,0.947],[0.9516,0.9498],[0.9517,0.9558],[0.9515,0.9529],[0.953,0.958],[0.9642,0.9562],[0.9654,0.9557],[0.9656,0.9527],[0.9655,0.9499],[0.9657,0.947],[0.9658,0.9438],[0.9658,0.9408],[0.9658,0.9377],[0.9658,0.9346],[0.9658,0.9318],[0.9655,0.9286],[0.9655,0.9256],[0.9655,0.9227],[0.9642,0.9229],[0.9641,0.9256],[0.9641,0.9286],[0.9641,0.9316],[0.9641,0.9347],[0.9629,0.9256],[0.9629,0.9286],[0.9629,0.9322],[0.9629,0.9342],[0.9641,0.9377],[0.9641,0.9408],[0.9629,0.9377],[0.9629,0.9408],[0.9641,0.9438],[0.9629,0.9438],[0.9641,0.9469],[0.9641,0.9499],[0.964,0.9527],[0.9629,0.9529],[0.9474,0.9555],[0.9477,0.9529],[0.9478,0.9498],[0.9478,0.947],[0.948,0.9438],[0.9478,0.9409],[0.948,0.9377],[0.948,0.9347],[0.9479,0.9318],[0.9479,0.9285],[0.9479,0.9257],[0.9476,0.9232],[0.9465,0.923],[0.9462,0.9256],[0.9462,0.9286],[0.945,0.9261],[0.945,0.9286],[0.9462,0.9316],[0.9462,0.9377],[0.9462,0.9347],[0.945,0.9316],[0.945,0.9342],[0.945,0.9377],[0.9462,0.9408],[0.9462,0.9438],[0.945,0.9408],[0.945,0.9438],[0.9462,0.9469],[0.9462,0.9499],[0.9462,0.9529],[0.945,0.9494],[0.9587,0.9529],[0.9601,0.9497],[0.9602,0.9469],[0.9602,0.9438],[0.9601,0.9408],[0.9602,0.9377],[0.9601,0.9345],[0.9601,0.9318],[0.9599,0.9286],[0.9588,0.9289],[0.9573,0.9288],[0.9573,0.9318],[0.9587,0.9316],[0.9587,0.9347],[0.9573,0.9345],[0.9587,0.9377],[0.9587,0.9408],[0.9572,0.9377],[0.9573,0.9405],[0.9587,0.9438],[0.9587,0.9469],[0.9587,0.9499],[0.9575,0.9438],[0.9573,0.9471],[0.9573,0.9497],[0.9572,0.9529],[0.9602,0.9529],[0.9411,0.9463],[0.9425,0.9437],[0.9426,0.9408],[0.9438,0.9377],[0.9426,0.9347],[0.9438,0.9342],[0.9438,0.9316],[0.9426,0.9286],[0.9425,0.9256],[0.9426,0.9225],[0.9428,0.9198],[0.9408,0.9254],[0.9408,0.9235],[0.9409,0.9284],[0.9426,0.9316],[0.9409,0.9346],[0.9409,0.9319],[0.9408,0.9377],[0.9426,0.9377],[0.941,0.9409],[0.941,0.9435],[0.9426,0.9461],[0.9301,0.9423],[0.9704,0.9436],[0.937,0.9436],[0.9369,0.9408],[0.9372,0.9379],[0.9369,0.9347],[0.9369,0.9327],[0.9355,0.9347],[0.9349,0.9322],[0.9355,0.9377],[0.9355,0.9408],[0.9353,0.9431],[0.9343,0.9382],[0.9242,0.9417],[0.9238,0.9352],[0.9301,0.929],[0.6368,0.6221]]&quot; data-box=&quot;0.62,0.98,0.6,0.975&quot; data-names=&quot;[&amp;#x22;validation accuracy&amp;#x22;,&amp;#x22;train accuracy&amp;#x22;]&quot; aria-label=&quot;Training and validation accuracy&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a run to read its accuracies.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 330&quot; role=&quot;img&quot; aria-label=&quot;Training and validation accuracy&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;280.0&quot; y2=&quot;280.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;284.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;212.3&quot; y2=&quot;212.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;216.3&quot; text-anchor=&quot;end&quot;&gt;0.7&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;144.5&quot; y2=&quot;144.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;148.5&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;76.8&quot; y2=&quot;76.8&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;80.8&quot; text-anchor=&quot;end&quot;&gt;0.9&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;89.9&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;0.64&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;225.4&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;0.72&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;361.0&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;0.80&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;496.6&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;0.88&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;632.1&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;0.96&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;280&quot; y2=&quot;280&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;361&quot; y=&quot;324&quot; text-anchor=&quot;middle&quot;&gt;validation accuracy&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;56&quot; y=&quot;16&quot;&gt;train accuracy&lt;/text&gt;&lt;path class=&quot;band&quot; d=&quot;M64.5 263.8L123.8 240.5L184.8 217.7L245.8 194.1L305.1 171.6L364.4 148.0L425.4 124.8L484.7 101.9L545.7 77.7L606.7 53.8L666.0 30.9L666.0 33.3L606.7 56.9L545.7 80.8L484.7 104.4L425.4 128.0L364.4 152.6L305.1 175.5L245.8 199.4L184.8 223.6L123.8 248.6L64.5 271.8Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;marks&quot; d=&quot;M618 36l6 6m0-6l-6 6M618 40l6 6m0-6l-6 6M620 44l6 6m0-6l-6 6M620 48l6 6m0-6l-6 6M620 51l6 6m0-6l-6 6M620 54l6 6m0-6l-6 6M618 59l6 6m0-6l-6 6M618 63l6 6m0-6l-6 6M615 60l6 6m0-6l-6 6M615 54l6 6m0-6l-6 6M615 50l6 6m0-6l-6 6M615 44l6 6m0-6l-6 6M615 40l6 6m0-6l-6 6M615 36l6 6m0-6l-6 6M636 36l6 6m0-6l-6 6M639 38l6 6m0-6l-6 6M639 42l6 6m0-6l-6 6M639 46l6 6m0-6l-6 6M639 50l6 6m0-6l-6 6M638 54l6 6m0-6l-6 6M638 58l6 6m0-6l-6 6M636 50l6 6m0-6l-6 6M634 56l6 6m0-6l-6 6M636 46l6 6m0-6l-6 6M636 42l6 6m0-6l-6 6M608 36l6 6m0-6l-6 6M608 40l6 6m0-6l-6 6M609 44l6 6m0-6l-6 6M609 48l6 6m0-6l-6 6M609 52l6 6m0-6l-6 6M609 56l6 6m0-6l-6 6M606 58l6 6m0-6l-6 6M606 54l6 6m0-6l-6 6M606 48l6 6m0-6l-6 6M604 51l6 6m0-6l-6 6M606 44l6 6m0-6l-6 6M604 40l6 6m0-6l-6 6M627 38l6 6m0-6l-6 6M629 42l6 6m0-6l-6 6M629 46l6 6m0-6l-6 6M629 50l6 6m0-6l-6 6M629 54l6 6m0-6l-6 6M625 54l6 6m0-6l-6 6M625 50l6 6m0-6l-6 6M625 46l6 6m0-6l-6 6M625 42l6 6m0-6l-6 6M624 38l6 6m0-6l-6 6M597 42l6 6m0-6l-6 6M600 46l6 6m0-6l-6 6M600 50l6 6m0-6l-6 6M600 54l6 6m0-6l-6 6M600 59l6 6m0-6l-6 6M597 57l6 6m0-6l-6 6M597 50l6 6m0-6l-6 6M597 46l6 6m0-6l-6 6M600 43l6 6m0-6l-6 6M578 45l6 6m0-6l-6 6M647 44l6 6m0-6l-6 6M590 44l6 6m0-6l-6 6M590 48l6 6m0-6l-6 6M590 52l6 6m0-6l-6 6M587 52l6 6m0-6l-6 6M587 45l6 6m0-6l-6 6M586 48l6 6m0-6l-6 6M568 46l6 6m0-6l-6 6M568 50l6 6m0-6l-6 6M578 54l6 6m0-6l-6 6M81 262l6 6m0-6l-6 6&quot;&gt;&lt;/path&gt;&lt;line class=&quot;fit&quot; x1=&quot;64.5&quot; y1=&quot;267.8&quot; x2=&quot;666.0&quot; y2=&quot;32.1&quot; pathLength=&quot;100&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;near&quot; r=&quot;6&quot; cx=&quot;-20&quot; cy=&quot;-20&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;figcaption&gt;Each run a point, read from the original plot; where they overlap, as they appear there. The line and its band, as the original fitted them.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-b036905&quot;&gt;Even though this does not give us an affirmative confirmation of having a well-generalized model, in fact, it falls short from it a great deal; the regression analysis result could not be much better. Then let’s look at loss.&lt;/p&gt;
&lt;figure class=&quot;fig scatter&quot; data-fig=&quot;scatter&quot; data-points=&quot;[[5.8231,6.0806],[5.8689,6.0354],[0.6659,0.6667],[0.6375,0.6667],[0.0947,0.2522],[0.0971,0.2124],[0.1262,0.2124],[0.1262,0.1593],[0.1553,0.1593],[0.1553,0.1062],[0.1833,0.104],[0.1553,0.0708],[0.1262,0.0708],[0.0971,0.0708],[0.068,0.0708],[0.068,0.1062],[0.0971,0.1062],[0.1262,0.1062],[0.0971,0.1593],[0.068,0.1593],[0.0485,0.1681],[0.0692,0.2102],[0.0453,0.2006],[0.2124,0.1084],[0.2427,0.1113],[0.2686,0.118],[0.268,0.1558],[0.2427,0.1593],[0.2136,0.1593],[0.1831,0.1643],[0.1817,0.2099],[0.2136,0.2124],[0.2427,0.1947],[0.2039,0.2566],[0.1845,0.2566],[0.1553,0.2124],[0.1505,0.2478],[0.1262,0.2522]]&quot; data-box=&quot;-0.2,6.3,-0.2,6.5&quot; data-names=&quot;[&amp;#x22;validation loss&amp;#x22;,&amp;#x22;train loss&amp;#x22;]&quot; aria-label=&quot;Training and validation loss after refinement&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a run to read its losses.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 330&quot; role=&quot;img&quot; aria-label=&quot;Training and validation loss after refinement&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;272.4&quot; y2=&quot;272.4&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;276.4&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;196.6&quot; y2=&quot;196.6&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;200.6&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;120.8&quot; y2=&quot;120.8&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;124.8&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;45.0&quot; y2=&quot;45.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;48&quot; y=&quot;49.0&quot; text-anchor=&quot;end&quot;&gt;6&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;74.8&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;0.0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;215.5&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;1.5&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;356.3&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;3.0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;497.1&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;4.5&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;637.8&quot; y=&quot;300&quot; text-anchor=&quot;middle&quot;&gt;6.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;56&quot; x2=&quot;666&quot; y1=&quot;280&quot; y2=&quot;280&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;361&quot; y=&quot;324&quot; text-anchor=&quot;middle&quot;&gt;validation loss&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;56&quot; y=&quot;16&quot;&gt;train loss&lt;/text&gt;&lt;path class=&quot;band&quot; d=&quot;M60.7 275.3L119.3 251.0L178.0 226.0L236.7 202.1L295.3 177.1L354.0 152.8L412.6 128.2L471.3 103.9L529.9 79.3L588.6 55.0L647.2 30.7L647.2 33.5L588.6 58.0L529.9 82.6L471.3 106.9L412.6 131.4L354.0 155.7L295.3 180.3L236.7 204.1L178.0 229.1L119.3 253.0L60.7 277.5Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;marks&quot; d=&quot;M618 39l6 6m0-6l-6 6M623 41l6 6m0-6l-6 6M134 244l6 6m0-6l-6 6M81 260l6 6m0-6l-6 6M84 261l6 6m0-6l-6 6M86 265l6 6m0-6l-6 6M89 265l6 6m0-6l-6 6M81 267l6 6m0-6l-6 6M78 267l6 6m0-6l-6 6M81 263l6 6m0-6l-6 6M78 263l6 6m0-6l-6 6M92 265l6 6m0-6l-6 6M95 265l6 6m0-6l-6 6M89 261l6 6m0-6l-6 6M92 261l6 6m0-6l-6 6M95 262l6 6m0-6l-6 6&quot;&gt;&lt;/path&gt;&lt;line class=&quot;fit&quot; x1=&quot;60.7&quot; y1=&quot;276.4&quot; x2=&quot;647.2&quot; y2=&quot;32.1&quot; pathLength=&quot;100&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;near&quot; r=&quot;6&quot; cx=&quot;-20&quot; cy=&quot;-20&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;figcaption&gt;Each run a point, read from the original plot; where they overlap, as they appear there. The line and its band, as the original fitted them.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-e331e7a&quot;&gt;It’s even better. Things are looking good. For the last round, I’m going to increase the number of epochs, but I’m also going to try another approach. So far I’ve only had very small batch sizes, which take a lot of time to process. In the third round, I only included batch sizes 1 through 4. For the next, I’m going to throw in 30 or something, and see what that does.&lt;/p&gt;
&lt;p id=&quot;p-4367b17&quot;&gt;A few words about early stopping. Keras provides a very convenient way to use callbacks through EarlyStopping functionality. As you might have noticed, I’m not using that. Very generally speaking, I would recommend using it, but it is not as trivial as everything we’ve done here so far. Getting the settings right in the way where it’s not limiting your ability to find the best possible results is not straightforward. The most important aspect has to do with metrics; I would want to have a custom metric created first, and then use that as my EarlyStopping mode (instead of using val_acc or val_loss). That said, EarlyStopping, and callbacks in general, provide a very powerful way to add to your hyperparameter optimization process.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;round-4--final-results-are-in&quot;&gt;Round 4 — Final Results are In&lt;/h3&gt;
&lt;p id=&quot;p-df40d17&quot;&gt;Before diving into the results, let’s look at one more visualization from the results of the last round. This time 5-dimensional. I wanted to see the remaining parameters — kernel initializer, batch size, hidden layers, and epochs — all in the same picture compared against validation accuracy and loss. First accuracy.&lt;/p&gt;
&lt;figure class=&quot;fig bargrid wide&quot; data-fig=&quot;bargrid&quot; aria-label=&quot;Accuracy across the final model configurations&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a bar for its value, or at a number of hidden layers in the key.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;s0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;hidden layers 0&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;s1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;hidden layers 1&lt;/li&gt;&lt;li data-pick=&quot;2&quot;&gt;&lt;i class=&quot;s2&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;hidden layers 2&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panels&quot; style=&quot;--columns:3&quot;&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;normal · batch size 2&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 2 · epochs 100 · hidden layers 0: 0.955 (0.951 to 0.960)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;16.4&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 2 · epochs 100 · hidden layers 1: 0.946&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 2 · epochs 100 · hidden layers 2: 0.946&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 2 · epochs 125 · hidden layers 0: 0.946 (0.938 to 0.951)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;18.1&quot; y2=&quot;16.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 2 · epochs 125 · hidden layers 1: 0.964&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;14.7&quot; width=&quot;13.0&quot; height=&quot;125.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 2 · epochs 125 · hidden layers 2: 0.946&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 2 · epochs 150 · hidden layers 0: 0.911 (0.830 to 0.955)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;21.6&quot; width=&quot;13.0&quot; height=&quot;118.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;32.1&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 2 · epochs 150 · hidden layers 1: 0.871 (0.871 to 0.951)&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;26.8&quot; width=&quot;13.0&quot; height=&quot;113.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;158.5&quot; x2=&quot;158.5&quot; y1=&quot;26.8&quot; y2=&quot;16.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 2 · epochs 150 · hidden layers 2: 0.848 (0.848 to 0.951)&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;29.8&quot; width=&quot;13.0&quot; height=&quot;110.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;172.5&quot; x2=&quot;172.5&quot; y1=&quot;29.8&quot; y2=&quot;16.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 2 · epochs 175 · hidden layers 0: 0.955 (0.942 to 0.964)&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;194.5&quot; x2=&quot;194.5&quot; y1=&quot;17.5&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 2 · epochs 175 · hidden layers 1: 0.951 (0.951 to 0.960)&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;208.5&quot; x2=&quot;208.5&quot; y1=&quot;16.4&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 2 · epochs 175 · hidden layers 2: 0.946 (0.951 to 0.960)&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.5&quot; x2=&quot;222.5&quot; y1=&quot;16.4&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;normal · batch size 3&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 3 · epochs 100 · hidden layers 0: 0.946 (0.938 to 0.955)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;18.1&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 3 · epochs 100 · hidden layers 1: 0.946 (0.946 to 0.955)&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;58.5&quot; x2=&quot;58.5&quot; y1=&quot;17.0&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 3 · epochs 100 · hidden layers 2: 0.862 (0.871 to 0.951)&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;27.9&quot; width=&quot;13.0&quot; height=&quot;112.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;72.5&quot; x2=&quot;72.5&quot; y1=&quot;26.8&quot; y2=&quot;16.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 3 · epochs 125 · hidden layers 0: 0.951 (0.942 to 0.964)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;17.5&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 3 · epochs 125 · hidden layers 1: 0.888 (0.893 to 0.951)&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;24.6&quot; width=&quot;13.0&quot; height=&quot;115.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;108.5&quot; x2=&quot;108.5&quot; y1=&quot;23.9&quot; y2=&quot;16.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 3 · epochs 125 · hidden layers 2: 0.946&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 3 · epochs 150 · hidden layers 0: 0.964 (0.960 to 0.969)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;14.7&quot; width=&quot;13.0&quot; height=&quot;125.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;15.2&quot; y2=&quot;14.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 3 · epochs 150 · hidden layers 1: 0.741 (0.746 to 0.951)&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;43.7&quot; width=&quot;13.0&quot; height=&quot;96.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;158.5&quot; x2=&quot;158.5&quot; y1=&quot;43.0&quot; y2=&quot;16.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 3 · epochs 150 · hidden layers 2: 0.960&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;15.2&quot; width=&quot;13.0&quot; height=&quot;124.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 3 · epochs 175 · hidden layers 0: 0.955&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 3 · epochs 175 · hidden layers 1: 0.955&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 3 · epochs 175 · hidden layers 2: 0.964&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;14.7&quot; width=&quot;13.0&quot; height=&quot;125.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;normal · batch size 4&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 4 · epochs 100 · hidden layers 0: 0.955 (0.951 to 0.960)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;16.4&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 4 · epochs 100 · hidden layers 1: 0.951&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 4 · epochs 100 · hidden layers 2: 0.951&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 4 · epochs 125 · hidden layers 0: 0.938 (0.920 to 0.951)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;18.1&quot; width=&quot;13.0&quot; height=&quot;121.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;20.4&quot; y2=&quot;16.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 4 · epochs 125 · hidden layers 1: 0.888 (0.893 to 0.964)&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;24.6&quot; width=&quot;13.0&quot; height=&quot;115.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;108.5&quot; x2=&quot;108.5&quot; y1=&quot;23.9&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 4 · epochs 125 · hidden layers 2: 0.884 (0.897 to 0.960)&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;25.1&quot; width=&quot;13.0&quot; height=&quot;114.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.5&quot; x2=&quot;122.5&quot; y1=&quot;23.4&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 4 · epochs 150 · hidden layers 0: 0.955 (0.946 to 0.964)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;17.0&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 4 · epochs 150 · hidden layers 1: 0.951&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 4 · epochs 150 · hidden layers 2: 0.879 (0.879 to 0.964)&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;25.7&quot; width=&quot;13.0&quot; height=&quot;114.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;172.5&quot; x2=&quot;172.5&quot; y1=&quot;25.7&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 4 · epochs 175 · hidden layers 0: 0.955 (0.951 to 0.964)&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;194.5&quot; x2=&quot;194.5&quot; y1=&quot;16.4&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 4 · epochs 175 · hidden layers 1: 0.951 (0.955 to 0.964)&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;208.5&quot; x2=&quot;208.5&quot; y1=&quot;15.9&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 4 · epochs 175 · hidden layers 2: 0.969&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;14.0&quot; width=&quot;13.0&quot; height=&quot;126.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;uniform · batch size 2&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 2 · epochs 100 · hidden layers 0: 0.848 (0.638 to 0.955)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;29.8&quot; width=&quot;13.0&quot; height=&quot;110.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;57.1&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 2 · epochs 100 · hidden layers 1: 0.955&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 2 · epochs 100 · hidden layers 2: 0.955&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 2 · epochs 125 · hidden layers 0: 0.964&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;14.7&quot; width=&quot;13.0&quot; height=&quot;125.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 2 · epochs 125 · hidden layers 1: 0.946&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 2 · epochs 125 · hidden layers 2: 0.893 (0.897 to 0.955)&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;23.9&quot; width=&quot;13.0&quot; height=&quot;116.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.5&quot; x2=&quot;122.5&quot; y1=&quot;23.4&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 2 · epochs 150 · hidden layers 0: 0.955 (0.951 to 0.964)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;16.4&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 2 · epochs 150 · hidden layers 1: 0.960&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;15.2&quot; width=&quot;13.0&quot; height=&quot;124.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 2 · epochs 150 · hidden layers 2: 0.938 (0.938 to 0.946)&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;18.1&quot; width=&quot;13.0&quot; height=&quot;121.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;172.5&quot; x2=&quot;172.5&quot; y1=&quot;18.1&quot; y2=&quot;17.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 2 · epochs 175 · hidden layers 0: 0.955 (0.946 to 0.960)&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;194.5&quot; x2=&quot;194.5&quot; y1=&quot;17.0&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 2 · epochs 175 · hidden layers 1: 0.942 (0.938 to 0.960)&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;17.5&quot; width=&quot;13.0&quot; height=&quot;122.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;208.5&quot; x2=&quot;208.5&quot; y1=&quot;18.1&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 2 · epochs 175 · hidden layers 2: 0.960&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;15.2&quot; width=&quot;13.0&quot; height=&quot;124.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;uniform · batch size 3&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 3 · epochs 100 · hidden layers 0: 0.942 (0.938 to 0.946)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;17.5&quot; width=&quot;13.0&quot; height=&quot;122.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;18.1&quot; y2=&quot;17.0&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 3 · epochs 100 · hidden layers 1: 0.924&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;19.9&quot; width=&quot;13.0&quot; height=&quot;120.1&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 3 · epochs 100 · hidden layers 2: 0.946&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 3 · epochs 125 · hidden layers 0: 0.951 (0.946 to 0.960)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;17.0&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 3 · epochs 125 · hidden layers 1: 0.951&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 3 · epochs 125 · hidden layers 2: 0.946&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 3 · epochs 150 · hidden layers 0: 0.951&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 3 · epochs 150 · hidden layers 1: 0.955&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;15.9&quot; width=&quot;13.0&quot; height=&quot;124.1&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 3 · epochs 150 · hidden layers 2: 0.960&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;15.2&quot; width=&quot;13.0&quot; height=&quot;124.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 3 · epochs 175 · hidden layers 0: 0.946 (0.938 to 0.955)&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;194.5&quot; x2=&quot;194.5&quot; y1=&quot;18.1&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 3 · epochs 175 · hidden layers 1: 0.853 (0.857 to 0.964)&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;29.1&quot; width=&quot;13.0&quot; height=&quot;110.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;208.5&quot; x2=&quot;208.5&quot; y1=&quot;28.6&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 3 · epochs 175 · hidden layers 2: 0.951 (0.951 to 0.964)&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;222.5&quot; x2=&quot;222.5&quot; y1=&quot;16.4&quot; y2=&quot;14.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;uniform · batch size 4&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;114.0&quot; y2=&quot;114.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;118.0&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;88.0&quot; y2=&quot;88.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;92.0&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;62.0&quot; y2=&quot;62.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;66.0&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;36.0&quot; y2=&quot;36.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;40.0&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 4 · epochs 100 · hidden layers 0: 0.951 (0.942 to 0.960)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;17.5&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 4 · epochs 100 · hidden layers 1: 0.871 (0.875 to 0.960)&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;26.8&quot; width=&quot;13.0&quot; height=&quot;113.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;58.5&quot; x2=&quot;58.5&quot; y1=&quot;26.3&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 4 · epochs 100 · hidden layers 2: 0.942 (0.946 to 0.955)&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;17.5&quot; width=&quot;13.0&quot; height=&quot;122.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;72.5&quot; x2=&quot;72.5&quot; y1=&quot;17.0&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 4 · epochs 125 · hidden layers 0: 0.942 (0.929 to 0.955)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;17.5&quot; width=&quot;13.0&quot; height=&quot;122.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;19.2&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 4 · epochs 125 · hidden layers 1: 0.888 (0.893 to 0.955)&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;24.6&quot; width=&quot;13.0&quot; height=&quot;115.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;108.5&quot; x2=&quot;108.5&quot; y1=&quot;23.9&quot; y2=&quot;15.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 4 · epochs 125 · hidden layers 2: 0.946&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 4 · epochs 150 · hidden layers 0: 0.946 (0.938 to 0.960)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;17.0&quot; width=&quot;13.0&quot; height=&quot;123.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;18.1&quot; y2=&quot;15.2&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 4 · epochs 150 · hidden layers 1: 0.960&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;15.2&quot; width=&quot;13.0&quot; height=&quot;124.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 4 · epochs 150 · hidden layers 2: 0.951&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;16.4&quot; width=&quot;13.0&quot; height=&quot;123.6&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;rect class=&quot;bar s0 unknown&quot; data-pick-of=&quot;0&quot; x=&quot;188.0&quot; y=&quot;62.0&quot; width=&quot;13.0&quot; height=&quot;78.0&quot; data-says=&quot;uniform · batch size 4 · epochs 175 · hidden layers 0: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar s1 unknown&quot; data-pick-of=&quot;1&quot; x=&quot;202.0&quot; y=&quot;62.0&quot; width=&quot;13.0&quot; height=&quot;78.0&quot; data-says=&quot;uniform · batch size 4 · epochs 175 · hidden layers 1: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar s2 unknown&quot; data-pick-of=&quot;2&quot; x=&quot;216.0&quot; y=&quot;62.0&quot; width=&quot;13.0&quot; height=&quot;78.0&quot; data-says=&quot;uniform · batch size 4 · epochs 175 · hidden layers 2: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;bargrid-axes fig-small&quot;&gt;Each panel: validation accuracy by epochs.&lt;/p&gt;&lt;figcaption&gt;Kernel initializer and batch size by panel. Bar heights and intervals read from the original plot; the three bars its legend hid are outlined.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-05eac3f&quot;&gt;Mostly it’s neck-to-neck, but some things do stand out. The first thing is that if a hidden layer value (hue) is down, in most cases its one hidden layer. For batch sizes (columns) it’s hard to say, as is for kernel initializer (rows). Let’s next take a look at the validation loss on the y-axis, and see if we can learn more from there. And remember, here we’re looking for smaller values; we’re trying to minimize the loss function with each parameter permutation.&lt;/p&gt;
&lt;figure class=&quot;fig bargrid wide&quot; data-fig=&quot;bargrid&quot; aria-label=&quot;Loss across the final model configurations&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a bar for its value, or at a number of hidden layers in the key.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;s0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;hidden layers 0&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;s1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;hidden layers 1&lt;/li&gt;&lt;li data-pick=&quot;2&quot;&gt;&lt;i class=&quot;s2&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;hidden layers 2&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panels&quot; style=&quot;--columns:3&quot;&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;normal · batch size 2&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;96.7&quot; y2=&quot;96.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;100.7&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;53.3&quot; y2=&quot;53.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;57.3&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;6&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 2 · epochs 100 · hidden layers 0: 0.108 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 2 · epochs 100 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 2 · epochs 100 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 2 · epochs 125 · hidden layers 0: 0.108 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 2 · epochs 125 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 2 · epochs 125 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 2 · epochs 150 · hidden layers 0: 0.833 (0.108 to 2.258)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;122.0&quot; width=&quot;13.0&quot; height=&quot;18.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;137.7&quot; y2=&quot;91.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 2 · epochs 150 · hidden layers 1: 1.532 (1.532 to 4.409)&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;106.8&quot; width=&quot;13.0&quot; height=&quot;33.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;158.5&quot; x2=&quot;158.5&quot; y1=&quot;106.8&quot; y2=&quot;44.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 2 · epochs 150 · hidden layers 2: 1.989 (2.016 to 5.833)&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;96.9&quot; width=&quot;13.0&quot; height=&quot;43.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;172.5&quot; x2=&quot;172.5&quot; y1=&quot;96.3&quot; y2=&quot;13.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 2 · epochs 175 · hidden layers 0: 0.108 (0.081 to 0.134)&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;194.5&quot; x2=&quot;194.5&quot; y1=&quot;138.2&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 2 · epochs 175 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 2 · epochs 175 · hidden layers 2: 0.134&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;137.1&quot; width=&quot;13.0&quot; height=&quot;2.9&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;normal · batch size 3&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;96.7&quot; y2=&quot;96.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;100.7&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;53.3&quot; y2=&quot;53.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;57.3&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;6&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 3 · epochs 100 · hidden layers 0: 0.108 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 3 · epochs 100 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 3 · epochs 100 · hidden layers 2: 1.559 (1.586 to 4.409)&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;106.2&quot; width=&quot;13.0&quot; height=&quot;33.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;72.5&quot; x2=&quot;72.5&quot; y1=&quot;105.6&quot; y2=&quot;44.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 3 · epochs 125 · hidden layers 0: 0.108 (0.081 to 0.134)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;138.2&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 3 · epochs 125 · hidden layers 1: 0.215 (0.242 to 0.430)&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;135.3&quot; width=&quot;13.0&quot; height=&quot;4.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;108.5&quot; x2=&quot;108.5&quot; y1=&quot;134.8&quot; y2=&quot;130.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 3 · epochs 125 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 3 · epochs 150 · hidden layers 0: 0.108 (0.081 to 0.108)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;138.2&quot; y2=&quot;137.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 3 · epochs 150 · hidden layers 1: 2.204 (2.231 to 5.833)&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;92.2&quot; width=&quot;13.0&quot; height=&quot;47.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;158.5&quot; x2=&quot;158.5&quot; y1=&quot;91.7&quot; y2=&quot;13.6&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 3 · epochs 150 · hidden layers 2: 0.081&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;138.2&quot; width=&quot;13.0&quot; height=&quot;1.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 3 · epochs 175 · hidden layers 0: 0.081 (0.081 to 0.108)&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;138.2&quot; width=&quot;13.0&quot; height=&quot;1.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;194.5&quot; x2=&quot;194.5&quot; y1=&quot;138.2&quot; y2=&quot;137.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 3 · epochs 175 · hidden layers 1: 0.081 (0.081 to 0.108)&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;138.2&quot; width=&quot;13.0&quot; height=&quot;1.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;208.5&quot; x2=&quot;208.5&quot; y1=&quot;138.2&quot; y2=&quot;137.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 3 · epochs 175 · hidden layers 2: 0.081&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;138.2&quot; width=&quot;13.0&quot; height=&quot;1.8&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;normal · batch size 4&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;96.7&quot; y2=&quot;96.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;100.7&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;53.3&quot; y2=&quot;53.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;57.3&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;6&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 4 · epochs 100 · hidden layers 0: 0.108 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 4 · epochs 100 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 4 · epochs 100 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 4 · epochs 125 · hidden layers 0: 0.134 (0.108 to 0.188)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;137.1&quot; width=&quot;13.0&quot; height=&quot;2.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;137.7&quot; y2=&quot;135.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 4 · epochs 125 · hidden layers 1: 0.242 (0.242 to 0.457)&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;134.8&quot; width=&quot;13.0&quot; height=&quot;5.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;108.5&quot; x2=&quot;108.5&quot; y1=&quot;134.8&quot; y2=&quot;130.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 4 · epochs 125 · hidden layers 2: 1.237 (1.237 to 3.548)&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;113.2&quot; width=&quot;13.0&quot; height=&quot;26.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.5&quot; x2=&quot;122.5&quot; y1=&quot;113.2&quot; y2=&quot;63.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;normal · batch size 4 · epochs 150 · hidden layers 0: 0.108 (0.081 to 0.108)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;138.2&quot; y2=&quot;137.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;normal · batch size 4 · epochs 150 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;normal · batch size 4 · epochs 150 · hidden layers 2: 1.505 (1.532 to 4.409)&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;107.4&quot; width=&quot;13.0&quot; height=&quot;32.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;172.5&quot; x2=&quot;172.5&quot; y1=&quot;106.8&quot; y2=&quot;44.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;rect class=&quot;bar s0 unknown&quot; data-pick-of=&quot;0&quot; x=&quot;188.0&quot; y=&quot;62.0&quot; width=&quot;13.0&quot; height=&quot;78.0&quot; data-says=&quot;normal · batch size 4 · epochs 175 · hidden layers 0: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar s1 unknown&quot; data-pick-of=&quot;1&quot; x=&quot;202.0&quot; y=&quot;62.0&quot; width=&quot;13.0&quot; height=&quot;78.0&quot; data-says=&quot;normal · batch size 4 · epochs 175 · hidden layers 1: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;bar s2 unknown&quot; data-pick-of=&quot;2&quot; x=&quot;216.0&quot; y=&quot;62.0&quot; width=&quot;13.0&quot; height=&quot;78.0&quot; data-says=&quot;normal · batch size 4 · epochs 175 · hidden layers 2: hidden by the legend in the original&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;uniform · batch size 2&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;96.7&quot; y2=&quot;96.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;100.7&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;53.3&quot; y2=&quot;53.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;57.3&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;6&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 2 · epochs 100 · hidden layers 0: 0.296 (0.108 to 0.672)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;133.6&quot; width=&quot;13.0&quot; height=&quot;6.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;137.7&quot; y2=&quot;125.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 2 · epochs 100 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 2 · epochs 100 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 2 · epochs 125 · hidden layers 0: 0.108&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 2 · epochs 125 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 2 · epochs 125 · hidden layers 2: 0.215 (0.242 to 0.376)&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;135.3&quot; width=&quot;13.0&quot; height=&quot;4.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;122.5&quot; x2=&quot;122.5&quot; y1=&quot;134.8&quot; y2=&quot;131.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 2 · epochs 150 · hidden layers 0: 0.108 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 2 · epochs 150 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 2 · epochs 150 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 2 · epochs 175 · hidden layers 0: 0.108&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 2 · epochs 175 · hidden layers 1: 0.134 (0.161 to 0.188)&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;137.1&quot; width=&quot;13.0&quot; height=&quot;2.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;208.5&quot; x2=&quot;208.5&quot; y1=&quot;136.5&quot; y2=&quot;135.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 2 · epochs 175 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;uniform · batch size 3&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;96.7&quot; y2=&quot;96.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;100.7&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;53.3&quot; y2=&quot;53.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;57.3&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;6&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 3 · epochs 100 · hidden layers 0: 0.134 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;137.1&quot; width=&quot;13.0&quot; height=&quot;2.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 3 · epochs 100 · hidden layers 1: 0.161&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;136.5&quot; width=&quot;13.0&quot; height=&quot;3.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 3 · epochs 100 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 3 · epochs 125 · hidden layers 0: 0.108 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 3 · epochs 125 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 3 · epochs 125 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 3 · epochs 150 · hidden layers 0: 0.108 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 3 · epochs 150 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 3 · epochs 150 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 3 · epochs 175 · hidden layers 0: 0.134 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;137.1&quot; width=&quot;13.0&quot; height=&quot;2.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;194.5&quot; x2=&quot;194.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 3 · epochs 175 · hidden layers 1: 0.269 (0.323 to 0.672)&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;134.2&quot; width=&quot;13.0&quot; height=&quot;5.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;208.5&quot; x2=&quot;208.5&quot; y1=&quot;133.0&quot; y2=&quot;125.4&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 3 · epochs 175 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&quot;bargrid-panel&quot;&gt;&lt;p class=&quot;bargrid-title fig-label&quot;&gt;uniform · batch size 4&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 240 170&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140.0&quot; y2=&quot;140.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;144.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;96.7&quot; y2=&quot;96.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;100.7&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;53.3&quot; y2=&quot;53.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;57.3&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;10.0&quot; y2=&quot;10.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;26&quot; y=&quot;14.0&quot; text-anchor=&quot;end&quot;&gt;6&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;34&quot; x2=&quot;234&quot; y1=&quot;140&quot; y2=&quot;140&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;59.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;109.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;125&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;159.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;150&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;209.0&quot; y=&quot;158&quot; text-anchor=&quot;middle&quot;&gt;175&lt;/text&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 4 · epochs 100 · hidden layers 0: 0.108 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;38.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;44.5&quot; x2=&quot;44.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 4 · epochs 100 · hidden layers 1: 0.269 (0.296 to 0.538)&quot;&gt;&lt;rect x=&quot;52.0&quot; y=&quot;134.2&quot; width=&quot;13.0&quot; height=&quot;5.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;58.5&quot; x2=&quot;58.5&quot; y1=&quot;133.6&quot; y2=&quot;128.3&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 4 · epochs 100 · hidden layers 2: 0.134 (0.161 to 0.188)&quot;&gt;&lt;rect x=&quot;66.0&quot; y=&quot;137.1&quot; width=&quot;13.0&quot; height=&quot;2.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;72.5&quot; x2=&quot;72.5&quot; y1=&quot;136.5&quot; y2=&quot;135.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 4 · epochs 125 · hidden layers 0: 0.134 (0.108 to 0.134)&quot;&gt;&lt;rect x=&quot;88.0&quot; y=&quot;137.1&quot; width=&quot;13.0&quot; height=&quot;2.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;94.5&quot; x2=&quot;94.5&quot; y1=&quot;137.7&quot; y2=&quot;137.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 4 · epochs 125 · hidden layers 1: 0.215 (0.242 to 0.457)&quot;&gt;&lt;rect x=&quot;102.0&quot; y=&quot;135.3&quot; width=&quot;13.0&quot; height=&quot;4.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;108.5&quot; x2=&quot;108.5&quot; y1=&quot;134.8&quot; y2=&quot;130.1&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 4 · epochs 125 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;116.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 4 · epochs 150 · hidden layers 0: 0.134 (0.108 to 0.161)&quot;&gt;&lt;rect x=&quot;138.0&quot; y=&quot;137.1&quot; width=&quot;13.0&quot; height=&quot;2.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;144.5&quot; x2=&quot;144.5&quot; y1=&quot;137.7&quot; y2=&quot;136.5&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 4 · epochs 150 · hidden layers 1: 0.108&quot;&gt;&lt;rect x=&quot;152.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 4 · epochs 150 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;166.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;bar s0&quot; data-pick-of=&quot;0&quot; data-says=&quot;uniform · batch size 4 · epochs 175 · hidden layers 0: 0.081 (0.081 to 0.108)&quot;&gt;&lt;rect x=&quot;188.0&quot; y=&quot;138.2&quot; width=&quot;13.0&quot; height=&quot;1.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;194.5&quot; x2=&quot;194.5&quot; y1=&quot;138.2&quot; y2=&quot;137.7&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s1&quot; data-pick-of=&quot;1&quot; data-says=&quot;uniform · batch size 4 · epochs 175 · hidden layers 1: 0.215 (0.242 to 0.511)&quot;&gt;&lt;rect x=&quot;202.0&quot; y=&quot;135.3&quot; width=&quot;13.0&quot; height=&quot;4.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;err&quot; x1=&quot;208.5&quot; x2=&quot;208.5&quot; y1=&quot;134.8&quot; y2=&quot;128.9&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;g class=&quot;bar s2&quot; data-pick-of=&quot;2&quot; data-says=&quot;uniform · batch size 4 · epochs 175 · hidden layers 2: 0.108&quot;&gt;&lt;rect x=&quot;216.0&quot; y=&quot;137.7&quot; width=&quot;13.0&quot; height=&quot;2.3&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;bargrid-axes fig-small&quot;&gt;Each panel: validation loss by epochs.&lt;/p&gt;&lt;figcaption&gt;Kernel initializer and batch size by panel. Bar heights and intervals read from the original plot; the three bars its legend hid are outlined.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-73231ae&quot;&gt;Uniform kernel initializer is doing a great job in keeping the loss down throughout all epoch, batch size, and hidden layer variations. But because the results are a little inconsistent, I’ll keep both initializers until the end.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;and-the-winner-is&quot;&gt;And the Winner Is…&lt;/h3&gt;
&lt;p id=&quot;p-e5f7831&quot;&gt;The winning combination is it came from the last minute idea to try bigger batch size to save time and in fewer epochs too):&lt;/p&gt;
&lt;figure class=&quot;fig ranked&quot; data-fig=&quot;ranked&quot; aria-label=&quot;A table of selected parameter configurations&quot;&gt;&lt;p class=&quot;ranked-shared fig-small&quot;&gt;All 10 share: val_acc 0.994 · batch_size 30 · epochs 100 · dropout 0 · losses binary_crossentropy · last_activation sigmoid.&lt;/p&gt;&lt;div class=&quot;ranked-scroll&quot; role=&quot;region&quot; tabindex=&quot;0&quot; aria-label=&quot;The ten best configurations&quot;&gt;&lt;table class=&quot;ranked-table&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;#&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;ranked-sort&quot; aria-pressed=&quot;false&quot;&gt;first_neuron&lt;/button&gt;&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;ranked-sort&quot; aria-pressed=&quot;false&quot;&gt;hidden_layers&lt;/button&gt;&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;ranked-sort&quot; aria-pressed=&quot;false&quot;&gt;kernel_initializer&lt;/button&gt;&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;ranked-sort&quot; aria-pressed=&quot;false&quot;&gt;optimizer&lt;/button&gt;&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;ranked-sort&quot; aria-pressed=&quot;false&quot;&gt;activation&lt;/button&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;uniform&lt;/td&gt;&lt;td&gt;Adam&lt;/td&gt;&lt;td&gt;relu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;uniform&lt;/td&gt;&lt;td&gt;Nadam&lt;/td&gt;&lt;td&gt;elu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;normal&lt;/td&gt;&lt;td&gt;Nadam&lt;/td&gt;&lt;td&gt;elu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;normal&lt;/td&gt;&lt;td&gt;Adam&lt;/td&gt;&lt;td&gt;relu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;normal&lt;/td&gt;&lt;td&gt;Nadam&lt;/td&gt;&lt;td&gt;relu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;uniform&lt;/td&gt;&lt;td&gt;Nadam&lt;/td&gt;&lt;td&gt;elu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;uniform&lt;/td&gt;&lt;td&gt;Nadam&lt;/td&gt;&lt;td&gt;elu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;uniform&lt;/td&gt;&lt;td&gt;Nadam&lt;/td&gt;&lt;td&gt;relu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;uniform&lt;/td&gt;&lt;td&gt;Nadam&lt;/td&gt;&lt;td&gt;relu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;uniform&lt;/td&gt;&lt;td&gt;Adam&lt;/td&gt;&lt;td&gt;elu&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;figcaption&gt;The ten best configurations of the last round, as in the original. Sort by any column that tells them apart.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-d750298&quot;&gt;The highest result for the small batch sizes was validation accuracy 97.7%. With the larger batch size approach, there is also the upside of having the model converge very fast. At the end of this article, I will provide a video where you can see it for yourself. To be honest, once I saw how well the bigger batch size worked, I did set up a separate test just focusing on that. It took less than a minute to set it up as all I needed to change was the batch size (and for this smaller epochs), and the scan finished in 60 minutes. Regarding the plots, there is nothing much to see, as more or less all the results were near 100%. There is one more thing though I want to share, as it relates to the idea of entropy from a different standpoint than what we had already discussed. Entropy can be an effective way to assess overfitting (and therefore a proxy for generalization). In this case, I measure the val_loss and val_acc entropy, using KL divergence, against training loss and accuracy respectively.&lt;/p&gt;
&lt;figure class=&quot;fig envelope&quot; data-fig=&quot;envelope&quot; aria-label=&quot;Permutation entropy of training and validation results&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Train and validation are close to identical: their entropy stays near zero across all 72 permutations.&lt;/p&gt;&lt;div class=&quot;fig-views&quot; role=&quot;group&quot; aria-label=&quot;Scale&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; data-view=&quot;0&quot; aria-pressed=&quot;true&quot;&gt;Whole scale&lt;/button&gt;&lt;button type=&quot;button&quot; data-view=&quot;1&quot; aria-pressed=&quot;false&quot;&gt;Close up&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 260&quot; role=&quot;img&quot; aria-label=&quot;Permutation entropy of training and validation results&quot;&gt;&lt;g class=&quot;scale whole&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;214.0&quot; y2=&quot;214.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;218.0&quot; text-anchor=&quot;end&quot;&gt;0.0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;176.4&quot; y2=&quot;176.4&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;180.4&quot; text-anchor=&quot;end&quot;&gt;0.2&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;138.8&quot; y2=&quot;138.8&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;142.8&quot; text-anchor=&quot;end&quot;&gt;0.4&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;101.2&quot; y2=&quot;101.2&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;105.2&quot; text-anchor=&quot;end&quot;&gt;0.6&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;63.6&quot; y2=&quot;63.6&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;67.6&quot; text-anchor=&quot;end&quot;&gt;0.8&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;26.0&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;30.0&quot; text-anchor=&quot;end&quot;&gt;1.0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;52.0&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;137.3&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;10&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;222.6&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;20&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;307.8&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;30&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;393.1&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;40&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;478.4&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;50&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;563.7&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;60&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;648.9&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;70&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;214&quot; y2=&quot;214&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;359&quot; y=&quot;254&quot; text-anchor=&quot;middle&quot;&gt;permutations&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;52&quot; y=&quot;16&quot;&gt;entropy&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;scale close&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;214.0&quot; y2=&quot;214.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;218.0&quot; text-anchor=&quot;end&quot;&gt;0.00&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;151.3&quot; y2=&quot;151.3&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;155.3&quot; text-anchor=&quot;end&quot;&gt;0.02&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;88.7&quot; y2=&quot;88.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;92.7&quot; text-anchor=&quot;end&quot;&gt;0.04&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;26.0&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;44&quot; y=&quot;30.0&quot; text-anchor=&quot;end&quot;&gt;0.06&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;52&quot; x2=&quot;666&quot; y1=&quot;214&quot; y2=&quot;214&quot;&gt;&lt;/line&gt;&lt;/g&gt;&lt;path class=&quot;area whole&quot; d=&quot;M52.0 214.0L52.0 212.1L60.5 212.1L69.1 212.1L77.6 212.1L86.1 212.1L94.6 212.1L103.2 212.1L111.7 212.1L120.2 212.1L128.8 212.1L137.3 212.1L145.8 209.9L154.3 207.1L162.9 212.1L171.4 209.3L179.9 212.1L188.4 212.1L197.0 209.9L205.5 209.9L214.0 207.1L222.6 208.8L231.1 208.2L239.6 212.1L248.1 212.1L256.7 209.3L265.2 212.1L273.7 212.1L282.3 207.7L290.8 212.1L299.3 212.1L307.8 212.1L316.4 207.7L324.9 207.1L333.4 208.2L341.9 207.1L350.5 207.1L359.0 211.5L367.5 207.1L376.1 208.2L384.6 212.1L393.1 212.1L401.6 208.2L410.2 211.5L418.7 205.5L427.2 211.5L435.8 210.4L444.3 204.9L452.8 211.5L461.3 209.3L469.9 207.1L478.4 211.0L486.9 205.5L495.4 212.1L504.0 212.1L512.5 212.1L521.0 207.1L529.6 208.8L538.1 205.5L546.6 211.5L555.1 209.9L563.7 208.2L572.2 207.1L580.7 208.8L589.3 210.4L597.8 207.1L606.3 212.1L614.8 208.8L623.4 212.1L631.9 212.1L640.4 212.1L648.9 209.3L657.5 207.1L666.0 214.0L666.0 214.0Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;area close&quot; d=&quot;M52.0 214.0L52.0 182.0L60.5 182.0L69.1 182.0L77.6 182.0L86.1 182.0L94.6 182.0L103.2 182.0L111.7 182.0L120.2 182.0L128.8 182.0L137.3 182.0L145.8 145.4L154.3 99.6L162.9 182.0L171.4 136.3L179.9 182.0L188.4 182.0L197.0 145.4L205.5 145.4L214.0 99.6L222.6 127.2L231.1 117.8L239.6 182.0L248.1 182.0L256.7 136.3L265.2 182.0L273.7 182.0L282.3 108.7L290.8 182.0L299.3 182.0L307.8 182.0L316.4 108.7L324.9 99.6L333.4 117.8L341.9 99.6L350.5 99.6L359.0 173.0L367.5 99.6L376.1 117.8L384.6 182.0L393.1 182.0L401.6 117.8L410.2 173.0L418.7 72.1L427.2 173.0L435.8 154.5L444.3 63.0L452.8 173.0L461.3 136.3L469.9 99.6L478.4 163.6L486.9 72.1L495.4 182.0L504.0 182.0L512.5 182.0L521.0 99.6L529.6 127.2L538.1 72.1L546.6 173.0L555.1 145.4L563.7 117.8L572.2 99.6L580.7 127.2L589.3 154.5L597.8 99.6L606.3 182.0L614.8 127.2L623.4 182.0L631.9 182.0L640.4 182.0L648.9 136.3L657.5 99.6L666.0 214.0L666.0 214.0Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;figcaption&gt;The original plotted the entropy of accuracy and of loss as two lines; read from it, both stay under this edge. On the original’s whole scale, and close up.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;summary-of-the-process&quot;&gt;Summary of the Process&lt;/h3&gt;
&lt;ul&gt;
&lt;li id=&quot;p-59844f0&quot;&gt;Start as simply and broadly as possible&lt;/li&gt;
&lt;li id=&quot;p-9a1ba99&quot;&gt;Try to learn as much as possible about the experiment and your hypothesis&lt;/li&gt;
&lt;li id=&quot;p-5313dab&quot;&gt;Try not to focus on the final result much for the first iterations&lt;/li&gt;
&lt;li id=&quot;p-60df2a3&quot;&gt;Make sure that your performance metric is right&lt;/li&gt;
&lt;li id=&quot;p-6a45868&quot;&gt;Remember that performance is not enough, as it tends to lead you away from generality&lt;/li&gt;
&lt;li id=&quot;p-238db7a&quot;&gt;Each iteration should reduce parameter space and model complexity&lt;/li&gt;
&lt;li id=&quot;p-0854aa1&quot;&gt;Don’t by afraid to try things, it is an experiment after all&lt;/li&gt;
&lt;li id=&quot;p-8e58af6&quot;&gt;Use methods you can understand e.g. clearly visualized descriptive statistics&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-c7e301e&quot;&gt;Here is the code complete &lt;a href=&quot;https://nbviewer.jupyter.org/github/autonomio/talos/blob/master/examples/Hyperparameter%20Optimization%20on%20Keras%20with%20Breast%20Cancer%20Data.ipynb&quot;&gt;notebook&lt;/a&gt; for the last round. And the video I had promised…&lt;/p&gt;
&lt;p id=&quot;p-cf9a295&quot;&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=oWwMsIk8_Bs&quot;&gt;Hyperparameter Optimization with Keras&lt;/a&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;thanks-for-your-time-if-you-have-a-few-seconds-more-please-share-and-have-fun-in-your-search-for-the-best-parameters&quot;&gt;Thanks for your time! If you have a few seconds more, please share. And have fun in your search for the best parameters!&lt;/h3&gt;</content></entry><entry><title>A Comprehensive List of Hyperparameter Optimization &amp; Tuning Solutions</title><link href="https://mikkokotila.com/writing/a-comprehensive-list-of-hyperparameter-optimization-and-tuning-solutions/"/><id>https://mikkokotila.com/writing/a-comprehensive-list-of-hyperparameter-optimization-and-tuning-solutions/</id><published>2018-05-13T00:00:00Z</published><updated>2018-05-13T00:00:00Z</updated><category term="machine-intelligence"/><category term="guides"/><summary>This article has one purpose; to maintain an up-to-date list of available hyperparameter optimization and tuning solutions for deep learning and other machine learning uses. If you want to suggest a solution to add, you can share it in the comments below.</summary><content type="html">&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Parva saepe scintilla contempta magnum excitavit incendium&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/98e36c48cf2b7268.png&quot; alt=&quot;Meme of a man in a robe, captioned “These hyperparameters, their kind of a big deal”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;A small spark, neglected, has often kindled a great fire.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Quintus Curtius Rufus, on Alexander the Great&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “These hyperparameters, their kind of a big deal.”&lt;/p&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;hyperparameter-optimization-for-keras&quot;&gt;Hyperparameter Optimization for Keras&lt;/h3&gt;
&lt;ul&gt;
&lt;li id=&quot;p-abc3c08&quot;&gt;DeepReplay — &lt;a href=&quot;https://github.com/dvgodoy/deepreplay&quot;&gt;Hyperparameter Visualization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-303528d&quot;&gt;Hyperas —&lt;a href=&quot;https://github.com/maxpumperla/hyperas&quot;&gt; Keras Wrapper for Hyperopt&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-42185d2&quot;&gt;Kopt — &lt;a href=&quot;https://github.com/Avsecz/kopt&quot;&gt;Another Hyperopt Based Optimizer&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-4fd2deb&quot;&gt;Talos — &lt;a href=&quot;https://github.com/autonomio/talos&quot;&gt;Hyperparameter Optimization for Keras&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-535aafd&quot;&gt;There is also the KerasClassifier inside &lt;a href=&quot;http://scikit-learn.org/stable/&quot;&gt;sklearn&lt;/a&gt; for grid search.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;other-hyperparameter-optimization-solutions&quot;&gt;Other Hyperparameter Optimization Solutions&lt;/h3&gt;
&lt;ul&gt;
&lt;li id=&quot;p-dd8d68d&quot;&gt;adviser — &lt;a href=&quot;https://github.com/tobegit3hub/advisor&quot;&gt;Open-source implementation of Google Vizier&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-60e1c5b&quot;&gt;auto_ml — &lt;a href=&quot;https://github.com/ClimbsRocks/auto_ml&quot;&gt;Automated machine learning&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-d6fd3e8&quot;&gt;BTB — &lt;a href=&quot;https://github.com/HDI-Project/BTB&quot;&gt;Bayesian Tuning and Bandits&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-90a90d9&quot;&gt;Chocolate — &lt;a href=&quot;https://github.com/AIworx-Labs/chocolate&quot;&gt;Decentralized Hyperparameter Optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-b83ca9f&quot;&gt;Cornell-MOE — &lt;a href=&quot;https://github.com/wujian16/Cornell-MOE&quot;&gt;parallel Bayesian optimization algorithms&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-fa37748&quot;&gt;deap — &lt;a href=&quot;https://github.com/DEAP/deap&quot;&gt;Evolutionary Algorithm Optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-324cf1b&quot;&gt;devol — &lt;a href=&quot;https://github.com/joeddav/devol&quot;&gt;Evolutionary Algorithm optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-d0e63db&quot;&gt;GPyOpt — &lt;a href=&quot;https://github.com/SheffieldML/GPyOpt&quot;&gt;Gaussian Process Optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-8fcb1d4&quot;&gt;H20 — &lt;a href=&quot;http://docs.h2o.ai/h2o/latest-stable/h2o-docs/downloading.html&quot;&gt;Automatic Machine Learning&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-9ee7b74&quot;&gt;HORD — &lt;a href=&quot;https://github.com/ilija139/HORD&quot;&gt;Deterministic RBF Surrogates&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-6cd48f2&quot;&gt;HPOlib — &lt;a href=&quot;https://github.com/automl/HPOlib&quot;&gt;Hyperparameter Optimizer Wrapper&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-032e858&quot;&gt;HpBandSter — &lt;a href=&quot;https://github.com/automl/HpBandSter&quot;&gt;A distributed Hyperband implementation on Steroids&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-5d9fa1b&quot;&gt;hypergrad — &lt;a href=&quot;https://github.com/HIPS/hypergrad&quot;&gt;Differentiation based optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-8b2f635&quot;&gt;Hyperopt — &lt;a href=&quot;https://github.com/hyperopt/hyperopt&quot;&gt;Distributed Async Optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-e53f4b6&quot;&gt;mlrMBO — &lt;a href=&quot;https://github.com/mlr-org/mlrMBO&quot;&gt;Bayesian optimization for R&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-5d5d7a5&quot;&gt;pbt — &lt;a href=&quot;https://github.com/MattKleinsmith/pbt&quot;&gt;Population Based Training&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-b877a29&quot;&gt;pycma — &lt;a href=&quot;https://github.com/CMA-ES/pycma&quot;&gt;CMA-ES optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-e62cb27&quot;&gt;rbfopt — &lt;a href=&quot;https://github.com/coin-or/rbfopt&quot;&gt;Derivative-free optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-02a2f0a&quot;&gt;ROBO — &lt;a href=&quot;https://github.com/automl/RoBO&quot;&gt;Bayesian Optimization Framework&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-1509c42&quot;&gt;Sherpa — &lt;a href=&quot;https://github.com/sherpa-ai/sherpa&quot;&gt;Hyperparameter Optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-dc39daf&quot;&gt;SMAC3 — &lt;a href=&quot;https://github.com/automl/SMAC3&quot;&gt;Sequential Model-base Algorithm Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-d1cf07c&quot;&gt;spearmint — &lt;a href=&quot;https://github.com/HIPS/Spearmint&quot;&gt;Bayesian-based Optimization&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-5bf900f&quot;&gt;TPOT — &lt;a href=&quot;https://github.com/EpistasisLab/tpot&quot;&gt;Automated Machine Learning tool&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-8a46de8&quot;&gt;test-tube — &lt;a href=&quot;https://github.com/williamFalcon/test-tube&quot;&gt;Track and Test Machine Learning Codes&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-96e71e0&quot;&gt;Tune — &lt;a href=&quot;https://ray.readthedocs.io/en/latest/tune.html&quot;&gt;Scalable Hyperparameter Search&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;have-some-fun-and-dont-forget-to-share-the-post-if-you-found-it-useful&quot;&gt;Have some FUN and don’t forget to share the post if you found it useful.&lt;/h2&gt;</content></entry><entry><title>autonomio/talos</title><link href="https://mikkokotila.com/writing/autonomio-talos/"/><id>https://mikkokotila.com/writing/autonomio-talos/</id><published>2018-05-11T00:00:00Z</published><updated>2018-05-11T00:00:00Z</updated><category term="computing"/><category term="machine-intelligence"/><summary>Hyperparameter Optimization for Humans with Keras</summary><content type="html">&lt;p id=&quot;p-37a13d3&quot;&gt;Hyperparameter Optimization for Humans with Keras&lt;/p&gt;</content></entry><entry><title>Native Advertising, FTC Policy, and Children</title><link href="https://mikkokotila.com/writing/native-advertising-ftc-policy-and-children/"/><id>https://mikkokotila.com/writing/native-advertising-ftc-policy-and-children/</id><published>2017-09-16T00:00:00Z</published><updated>2017-09-16T00:00:00Z</updated><category term="privacy"/><category term="advertising"/><summary>In late 2015 FTC issued an enforcement policy regarding native advertising [1]. The basic premise is that ads on websites should not try to appear to be something else than ads, as that should be considered deceptive.</summary><content type="html">&lt;p id=&quot;p-8b1c956&quot; class=&quot;opening&quot;&gt;In late 2015 FTC issued an enforcement policy regarding native advertising [1]. The basic premise is that ads on websites should not try to appear to be something else than ads, as that should be considered deceptive. Unfortunately most websites are not playing along; a study found that 70% of sites under inspection did not comply with the FTC &lt;span class=&quot;nowrap&quot;&gt;guidelines [2].&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-e4f026f&quot;&gt;The other issue with the FTC policy regarding native advertising, is that it leaves a lot of room for the advertising industry that is known for its creative minds. The below screens are captured using a system configuration where the user is appearing to be child.&lt;/p&gt;
&lt;p id=&quot;p-3e3f141&quot;&gt;As an example of this, let’s look at a Lego Star Wars ad on cartoonnetwork.com:&lt;/p&gt;
&lt;!-- image unavailable: https://internetwizards.io/wp-content/uploads/2017/09/Screen-Shot-2017-09-14-at-10.19.35-PM.png --&gt;
&lt;p id=&quot;p-1c7b9b5&quot;&gt;Note how everything visible in the browser is actually the ad, but not only it looks amazing, it’s more or less impossible to say that it’s ad and not content. While the ad looks better than typical Taboola or Outbrain ads do, one might argue that its far more deceptive in terms of making it look like something else than an ad.&lt;/p&gt;
&lt;p id=&quot;p-98a12f4&quot;&gt;Let’s look at another example from the same site, cartoonnetwork.com:&lt;/p&gt;
&lt;!-- image unavailable: https://internetwizards.io/wp-content/uploads/2017/09/Screen-Shot-2017-09-16-at-9.53.10-PM.png --&gt;
&lt;p id=&quot;p-586bef6&quot;&gt;In the section labeled as “COOL &amp;#x26; NEW”, there is nothing but three different ads. Yes, the section is entirely made up of ads.&lt;/p&gt;
&lt;p id=&quot;p-61cc644&quot;&gt;In short summary, it seems clear that there are big holes in the FTC policy regarding native advertising in itself, and some bigger ones in the self-regulation of advertisers related with advertising to kids.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;references&quot;&gt;References&lt;/h2&gt;
&lt;p id=&quot;p-4676dd4&quot;&gt;[1] &lt;a href=&quot;https://www.ftc.gov/news-events/press-releases/2015/12/ftc-issues-enforcement-policy-statement-addressing-native&quot;&gt;https://www.ftc.gov/news-events/press-releases/2015/12/ftc-issues-enforcement-policy-statement-addressing-native&lt;/a&gt;&lt;br&gt;
[2] &lt;a href=&quot;https://www.ftc.gov/news-events/press-releases/2015/12/ftc-issues-enforcement-policy-statement-addressing-native&quot;&gt;https://www.ftc.gov/news-events/press-releases/2015/12/ftc-issues-enforcement-policy-statement-addressing-native&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>TOTES: Online Advertising Threat Exposure Suppression</title><link href="https://mikkokotila.com/writing/totes-online-advertising-threat-exposure-suppression/"/><id>https://mikkokotila.com/writing/totes-online-advertising-threat-exposure-suppression/</id><published>2017-09-16T00:00:00Z</published><updated>2017-09-16T00:00:00Z</updated><category term="privacy"/><summary>TOTES Model Online advertising is different from traditional advertising in several important ways, the most important of which relates with user data.</summary><content type="html">&lt;h2 class=&quot;h-1&quot; id=&quot;totes-model&quot;&gt;TOTES Model&lt;/h2&gt;
&lt;p id=&quot;p-cba1f19&quot; class=&quot;opening&quot;&gt;Online advertising is different from traditional advertising in several important ways, the most important of which relates with user data. On one hand it involves the collection of user data, and on the other the exploitation of the collected data.  The second important difference is how online advertising places messages in context that blur the lines of what is advertising and what is not. Examples of this include native advertising, advergames, and social influence campaigns. The third aspect has to do with how messages can be specificly tailored to maximize deceptiveness, even at a level of a single individual. Examples of techniques include micro-targeting, dynamic creatives and AI generated copy. These three aspects – data, messaging, and context – make up the three vectors on which offensive techniques can be excecuted by advertisers and &lt;span class=&quot;nowrap&quot;&gt;their partners.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-5bca091&quot;&gt;Online advertising marks an important point in the history of advertising; there is a notable shift in the society from &lt;strong&gt;accept-and-avoid&lt;/strong&gt; strategies, to &lt;strong&gt;reject-and-prevent&lt;/strong&gt; strategies. Most notable development highlighting this shift is ad blocking, and how more than 20% of internet users already use an ad blocker. Well implemented ad blocking effectively mitigates all threats on the data vector, and many threats on the messaging vector, but does not provide sufficient protection against offensive tactics that leverage the context vector. For example, an ad blocker would not recognize a social influence campaign, or advergame, and therefore would not be able to protect the user from those threaths. This reveals an important shortcoming in the online advertising threat landscape; advertisers and their partners have an upper hand over the internet users. If internet users, or segments of users such as children, increase defensivess on one vector, advertisers and their partners can simply invest more on the two others.&lt;/p&gt;
&lt;p id=&quot;p-57802ba&quot;&gt;TOTES Model addresses the gaps in invidual tactics such as ad blocking, by providing a comprehensive guideline for embracing &lt;strong&gt;reject-and-prevent&lt;/strong&gt; strategies for the protection of children. When implemented correctly, the suggested behavior changes lead to a safer, more meaningful online experience for children. The guidance includes a comprehensive review of defensive technologies, and relevant literature, while providing evidence and reasoning for overcoming common arguments against adopting such strategies.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;table-of-contents&quot;&gt;Table of Contents&lt;/h2&gt;
&lt;p id=&quot;p-0efc2e6&quot;&gt;Overview&lt;/p&gt;
&lt;p id=&quot;p-5cebdb4&quot;&gt;An Overview of TOTES Model&lt;/p&gt;
&lt;p id=&quot;p-86cfb41&quot;&gt;What is TOTES based on&lt;/p&gt;
&lt;p id=&quot;p-a5fd83f&quot;&gt;How researchers can use TOTES&lt;/p&gt;
&lt;p id=&quot;p-4e0bb55&quot;&gt;1. Data&lt;/p&gt;
&lt;p id=&quot;p-f2bd19c&quot;&gt;1.1. Motivations for Data Harvesting&lt;/p&gt;
&lt;p id=&quot;p-7fe640e&quot;&gt;1.2. Four Models of Data Harvesting&lt;/p&gt;
&lt;p id=&quot;p-e8e1b7a&quot;&gt;1.2.1. Data harvesting as a means to targeting advertisements&lt;/p&gt;
&lt;p id=&quot;p-7fb441c&quot;&gt;1.2.2. Data harvesting as a means to reselling it for revenue&lt;/p&gt;
&lt;p id=&quot;p-98b3d95&quot;&gt;1.2.3. Data as a means to harvest immaterial labour&lt;/p&gt;
&lt;p id=&quot;p-01a004c&quot;&gt;1.2.4. Data as a means to harvest cognitive energy&lt;/p&gt;
&lt;p id=&quot;p-96eeae9&quot;&gt;2. Messaging&lt;/p&gt;
&lt;p id=&quot;p-8991b31&quot;&gt;2.1. Demand Generation&lt;/p&gt;
&lt;p id=&quot;p-cb6f14f&quot;&gt;2.2. Bernaysian Communications&lt;/p&gt;
&lt;p id=&quot;p-744c8b8&quot;&gt;2.2. From Broadcasting to Micro-Targeting&lt;/p&gt;
&lt;p id=&quot;p-30dcdc4&quot;&gt;2.3. Examples of Deception by Messaging&lt;/p&gt;
&lt;p id=&quot;p-00c4b6e&quot;&gt;3. Context&lt;/p&gt;
&lt;p id=&quot;p-65381ce&quot;&gt;3.1. Pseudo Advertising&lt;/p&gt;
&lt;p id=&quot;p-67f7af2&quot;&gt;3.2. Apps&lt;/p&gt;
&lt;p id=&quot;p-7917241&quot;&gt;3.3. Games&lt;/p&gt;
&lt;p id=&quot;p-30d35cc&quot;&gt;3.4. Influencer marketing&lt;/p&gt;
&lt;p id=&quot;p-ecf1301&quot;&gt;3.5. Examples of Deception by Context&lt;/p&gt;
&lt;p id=&quot;p-02e707d&quot;&gt;4. Why Defend Against Online Advertising&lt;/p&gt;
&lt;p id=&quot;p-51374df&quot;&gt;4.1. Why Advertisers Advertise&lt;/p&gt;
&lt;p id=&quot;p-b7073cc&quot;&gt;4.2. The Five Levels of Negative Effects&lt;/p&gt;
&lt;p id=&quot;p-17bbed8&quot;&gt;4.2.1. The negative effect on individuals&lt;/p&gt;
&lt;p id=&quot;p-a98a033&quot;&gt;4.2.2. The negative effect on families&lt;/p&gt;
&lt;p id=&quot;p-748e6e5&quot;&gt;4.2.3. The negative effect on the society&lt;/p&gt;
&lt;p id=&quot;p-9547e33&quot;&gt;4.2.4. The negative effect on nation-states&lt;/p&gt;
&lt;p id=&quot;p-51def9b&quot;&gt;4.2.5. The negative effect on the internet&lt;/p&gt;
&lt;p id=&quot;p-574d134&quot;&gt;5. How to Defend Against Online Advertising&lt;/p&gt;
&lt;p id=&quot;p-0ae9af0&quot;&gt;5.3. Adblocking as a defensive strategy&lt;/p&gt;
&lt;p id=&quot;p-12463b7&quot;&gt;5.3.1. Ad blocking at a device level&lt;/p&gt;
&lt;p id=&quot;p-b1d4058&quot;&gt;5.3.2. Ad blocking at a houshold level&lt;/p&gt;
&lt;p id=&quot;p-ce217df&quot;&gt;5.3.3. Ad blocking at a school level&lt;/p&gt;
&lt;p id=&quot;p-aaca187&quot;&gt;5.4. Muting as a defensive strategy&lt;/p&gt;
&lt;p id=&quot;p-b1b2e31&quot;&gt;5.5. Online anonymity as a defensive strategy&lt;/p&gt;
&lt;p id=&quot;p-ed6fa05&quot;&gt;5.6. Media reading skills and media critisism as defensive strategies&lt;/p&gt;
&lt;p id=&quot;p-f309fd9&quot;&gt;6. Roles in Protecting Children from Online Advertising&lt;/p&gt;
&lt;p id=&quot;p-a736522&quot;&gt;6.1. The Role of the Child&lt;/p&gt;
&lt;p id=&quot;p-b1e0cce&quot;&gt;6.2. The Role of the Parent&lt;/p&gt;
&lt;p id=&quot;p-4676ae3&quot;&gt;6.3. The Role of the Educator&lt;/p&gt;
&lt;p id=&quot;p-d2d63d8&quot;&gt;6.4. The Role of the School&lt;/p&gt;
&lt;p id=&quot;p-b8d0b47&quot;&gt;6.5. The Role of the Governement&lt;/p&gt;
&lt;p id=&quot;p-1f1b6f6&quot;&gt;7. Overview of Defensive Technologies&lt;/p&gt;
&lt;p id=&quot;p-fe9310b&quot;&gt;7.1. Current implementations&lt;/p&gt;
&lt;p id=&quot;p-c0f4a19&quot;&gt;7.2. Future landscape and call for innovation&lt;/p&gt;
&lt;p id=&quot;p-a7874b5&quot;&gt;8. Overview of Literature&lt;/p&gt;
&lt;p id=&quot;p-2cf6b24&quot;&gt;9. Common Arguments&lt;/p&gt;
&lt;p id=&quot;p-d5bc17f&quot;&gt;&lt;em&gt;Come back for full guidance in Q4/2017&lt;/em&gt;&lt;/p&gt;</content></entry><entry><title>Comprehensive List of COPPA Enforcements and Fines</title><link href="https://mikkokotila.com/writing/comprehensive-list-of-coppa-enforcements-and-fines/"/><id>https://mikkokotila.com/writing/comprehensive-list-of-coppa-enforcements-and-fines/</id><published>2017-09-15T00:00:00Z</published><updated>2017-09-15T00:00:00Z</updated><category term="privacy"/><category term="guides"/><summary>Does the Children’s Online Privacy Protection Act [1], work? One of the ways to try to answer this question is the number of cases. There are less than 40 in total since the act was passed more than a decade ago.</summary><content type="html">&lt;p id=&quot;p-6392e4e&quot; class=&quot;opening&quot;&gt;Does the Children’s Online Privacy Protection Act [1], work? One of the ways to try to answer this question is the number of cases. There are less than 40 in total since the act was passed more than a decade ago. In other words, less than 4 enforcements on average &lt;span class=&quot;nowrap&quot;&gt;per year.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-1bca819&quot;&gt;Beyond just the number of enforcements, there is also the question of sanctions i.e. how damaging it is to a company in terms of fines to be enforced. The original maximum civil penalty per violation (e.g. a single data collection event on a single user) was $16,000, but it was recently raised to $40,000 [2] by the FTC. This sure sounds nice on paper, but the keyword, as we will find out below, is ‘maximum’. The actual penalties end up being a far cry from the promise.&lt;/p&gt;
&lt;p id=&quot;p-f51bbbf&quot;&gt;Using the 15 enforcements where number of violations is published, which total in 103,272,600 violations, the average per violation fine is $8,760,000. This means the average fine per violation is $0.08. This is including the most recent InMobi case estimated at 100,000,000 violations, when the filings suggest there was multiple times more [3]. If we exclude this as anomaly, the remaining 14 cases yield 3,272,600 violations and fines of $7,810,000 and a $2.36 per violation fine. This is still 8,000 times less than the $16,000 per violation stipulated in COPPA.&lt;/p&gt;
&lt;p id=&quot;p-4381c39&quot;&gt;The maximum cost-per-violation is $266 for 3,000 violations, and the only significant case in terms of the stated violations, the cost-per-violation is $0.01. Even the maximum is still over 50 times smaller than the stated $16,000 and well over 100 times smaller than the current $40,000 maximum fine per violation. In short summary, the closest anyone ever got to the maximum is 2% of it.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;a-comprehensive-list-of-coppa-enforcements&quot;&gt;A Comprehensive List of COPPA Enforcements&lt;/h2&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;


















































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;year&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;fine&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;reach&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;cost per&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;InMobi&lt;/td&gt;&lt;td&gt;2016&lt;/td&gt;&lt;td&gt;950,000&lt;/td&gt;&lt;td&gt;100,000,000&lt;/td&gt;&lt;td&gt;0.01&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Viacom&lt;/td&gt;&lt;td&gt;2016&lt;/td&gt;&lt;td&gt;500,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mattel&lt;/td&gt;&lt;td&gt;2016&lt;/td&gt;&lt;td&gt;250,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JumpStart&lt;/td&gt;&lt;td&gt;2016&lt;/td&gt;&lt;td&gt;85,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LAI Systems&lt;/td&gt;&lt;td&gt;2015&lt;/td&gt;&lt;td&gt;65,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Retro Systems&lt;/td&gt;&lt;td&gt;2015&lt;/td&gt;&lt;td&gt;300,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TinyCo, Inc&lt;/td&gt;&lt;td&gt;2014&lt;/td&gt;&lt;td&gt;300,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Yelp Inc&lt;/td&gt;&lt;td&gt;2014&lt;/td&gt;&lt;td&gt;450,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Path, Inc&lt;/td&gt;&lt;td&gt;2013&lt;/td&gt;&lt;td&gt;800,000&lt;/td&gt;&lt;td&gt;3,000&lt;/td&gt;&lt;td&gt;266.67&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Artist Arena, LLC&lt;/td&gt;&lt;td&gt;2012&lt;/td&gt;&lt;td&gt;1,000,000&lt;/td&gt;&lt;td&gt;75,000&lt;/td&gt;&lt;td&gt;13.33&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RockYou, Inc&lt;/td&gt;&lt;td&gt;2012&lt;/td&gt;&lt;td&gt;250,000&lt;/td&gt;&lt;td&gt;79,000&lt;/td&gt;&lt;td&gt;3.16&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SkidleKids&lt;/td&gt;&lt;td&gt;2011&lt;/td&gt;&lt;td&gt;100,000&lt;/td&gt;&lt;td&gt;5,600&lt;/td&gt;&lt;td&gt;17.86&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;W3 Innovations&lt;/td&gt;&lt;td&gt;2011&lt;/td&gt;&lt;td&gt;50,000&lt;/td&gt;&lt;td&gt;50,000&lt;/td&gt;&lt;td&gt;1.00&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Playdom, Inc.&lt;/td&gt;&lt;td&gt;2011&lt;/td&gt;&lt;td&gt;3,000,000&lt;/td&gt;&lt;td&gt;1,224,000&lt;/td&gt;&lt;td&gt;2.45&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Iconix Brand Group, Inc.&lt;/td&gt;&lt;td&gt;2009&lt;/td&gt;&lt;td&gt;250,000&lt;/td&gt;&lt;td&gt;1,000&lt;/td&gt;&lt;td&gt;250.00&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sony BMG Music Entertainment&lt;/td&gt;&lt;td&gt;2008&lt;/td&gt;&lt;td&gt;1,000,000&lt;/td&gt;&lt;td&gt;30,000&lt;/td&gt;&lt;td&gt;33.33&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Industrious Kid, Inc. and Jeanette Symons&lt;/td&gt;&lt;td&gt;2008&lt;/td&gt;&lt;td&gt;130,000&lt;/td&gt;&lt;td&gt;10,500&lt;/td&gt;&lt;td&gt;12.38&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Imbee&lt;/td&gt;&lt;td&gt;2008&lt;/td&gt;&lt;td&gt;130,000&lt;/td&gt;&lt;td&gt;10,500&lt;/td&gt;&lt;td&gt;12.38&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xanga.com, Inc.&lt;/td&gt;&lt;td&gt;2006&lt;/td&gt;&lt;td&gt;1,000,000&lt;/td&gt;&lt;td&gt;1,700,000&lt;/td&gt;&lt;td&gt;0.59&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UMG Recordings, Inc.&lt;/td&gt;&lt;td&gt;2004&lt;/td&gt;&lt;td&gt;400,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bonzi Software, Inc.&lt;/td&gt;&lt;td&gt;2004&lt;/td&gt;&lt;td&gt;75,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mrs. Fields Famous Brands, Inc.&lt;/td&gt;&lt;td&gt;2003&lt;/td&gt;&lt;td&gt;100,000&lt;/td&gt;&lt;td&gt;84,000&lt;/td&gt;&lt;td&gt;1.19&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hershey Foods Corporation&lt;/td&gt;&lt;td&gt;2003&lt;/td&gt;&lt;td&gt;85,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ohio Art Company&lt;/td&gt;&lt;td&gt;2002&lt;/td&gt;&lt;td&gt;35,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;American Pop Corn Company&lt;/td&gt;&lt;td&gt;2002&lt;/td&gt;&lt;td&gt;10,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Frank, Lisa, Inc.&lt;/td&gt;&lt;td&gt;2001&lt;/td&gt;&lt;td&gt;30,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Looksmart, Ltd&lt;/td&gt;&lt;td&gt;2001&lt;/td&gt;&lt;td&gt;25,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Monarch Services, Inc., et al.&lt;/td&gt;&lt;td&gt;2001&lt;/td&gt;&lt;td&gt;25,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bigmailbox.Com, Inc., et al.&lt;/td&gt;&lt;td&gt;2001&lt;/td&gt;&lt;td&gt;30,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Girls Life Inc&lt;/td&gt;&lt;td&gt;2001&lt;/td&gt;&lt;td&gt;25,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Nolan Quan&lt;/td&gt;&lt;td&gt;2001&lt;/td&gt;&lt;td&gt;25,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Toysmart.com, LLC&lt;/td&gt;&lt;td&gt;2000&lt;/td&gt;&lt;td&gt;35,000&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;td&gt;na&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;references&quot;&gt;References&lt;/h2&gt;
&lt;p id=&quot;p-7f77b6b&quot;&gt;[1] &lt;a href=&quot;https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act&quot;&gt;https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act&lt;/a&gt;&lt;br&gt;
[2] &lt;a href=&quot;https://www.wsgr.com/WSGR/Display.aspx?SectionName=publications/PDFSearch/wsgralert-ftc-violations.htm&quot;&gt;https://www.wsgr.com/WSGR/Display.aspx?SectionName=publications/PDFSearch/wsgralert-ftc-violations.htm&lt;/a&gt;&lt;br&gt;
[3] &lt;a href=&quot;https://www.ftc.gov/news-events/press-releases/2016/06/mobile-advertising-network-inmobi-settles-ftc-charges-it-tracked&quot;&gt;https://www.ftc.gov/news-events/press-releases/2016/06/mobile-advertising-network-inmobi-settles-ftc-charges-it-tracked&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>Can a 12-bit Bit Gate Be a 1-bit Gate Instead?</title><link href="https://mikkokotila.com/writing/can-a-12-bit-bit-gate-be-a-1-bit-gate-instead/"/><id>https://mikkokotila.com/writing/can-a-12-bit-bit-gate-be-a-1-bit-gate-instead/</id><published>2017-08-31T00:00:00Z</published><updated>2017-08-31T00:00:00Z</updated><category term="computing"/><summary>A short exchange exploring whether a calculation can stop as soon as the answer is known.</summary></entry><entry><title>Scientific Linux - Wikipedia</title><link href="https://mikkokotila.com/writing/scientific-linux-wikipedia/"/><id>https://mikkokotila.com/writing/scientific-linux-wikipedia/</id><published>2017-08-30T00:00:00Z</published><updated>2017-08-30T00:00:00Z</updated><category term="computing"/><summary></summary></entry><entry><title>we lock ourselves to tiniest of things and then let those things entirely bewilder…</title><link href="https://mikkokotila.com/writing/we-lock-ourselves-to-tiniest-of-things/"/><id>https://mikkokotila.com/writing/we-lock-ourselves-to-tiniest-of-things/</id><published>2017-08-29T00:00:00Z</published><updated>2017-08-29T00:00:00Z</updated><category term="computing"/><summary>we lock ourselves to tiniest of things and then let those things entirely bewilder ourselves. So we forget what we really are.</summary></entry><entry><title>Code: The Hidden Language of Computer Hardware and Software</title><link href="https://mikkokotila.com/writing/code-the-hidden-language-of-computer-hardware/"/><id>https://mikkokotila.com/writing/code-the-hidden-language-of-computer-hardware/</id><published>2017-08-28T00:00:00Z</published><updated>2017-08-28T00:00:00Z</updated><category term="computing"/><summary></summary></entry><entry><title>Event Latency Scaled --- --- --- 1 CPU cycle 0.3 ns 1 s Level 1 cache access 0.9 ns 3 s…</title><link href="https://mikkokotila.com/writing/time-scale-of-system-latencies/"/><id>https://mikkokotila.com/writing/time-scale-of-system-latencies/</id><published>2017-08-27T00:00:00Z</published><updated>2017-08-27T00:00:00Z</updated><category term="computing"/><summary>Event Latency Scaled --- --- --- 1 CPU cycle 0.3 ns 1 s Level 1 cache access 0.9 ns 3 s Level 2 cache access 2.8 ns 9 s Level 3 cache access 12.9 ns 43 s Main memory access (DRAM, from CPU) 120 ns 6 min Solid-state disk I/O (flash memory) 50–150 µs 2–6 days Rotational disk I/O…</summary><content type="html">&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;




















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Event&lt;/th&gt;&lt;th&gt;Latency&lt;/th&gt;&lt;th&gt;Scaled&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1 CPU cycle&lt;/td&gt;&lt;td&gt;0.3 ns&lt;/td&gt;&lt;td&gt;1 s&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Level 1 cache access&lt;/td&gt;&lt;td&gt;0.9 ns&lt;/td&gt;&lt;td&gt;3 s&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Level 2 cache access&lt;/td&gt;&lt;td&gt;2.8 ns&lt;/td&gt;&lt;td&gt;9 s&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Level 3 cache access&lt;/td&gt;&lt;td&gt;12.9 ns&lt;/td&gt;&lt;td&gt;43 s&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Main memory access (DRAM, from CPU)&lt;/td&gt;&lt;td&gt;120 ns&lt;/td&gt;&lt;td&gt;6 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Solid-state disk I/O (flash memory)&lt;/td&gt;&lt;td&gt;50–150 µs&lt;/td&gt;&lt;td&gt;2–6 days&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Rotational disk I/O&lt;/td&gt;&lt;td&gt;1–10 ms&lt;/td&gt;&lt;td&gt;1–12 months&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Internet: San Francisco to New York&lt;/td&gt;&lt;td&gt;40 ms&lt;/td&gt;&lt;td&gt;4 years&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Internet: San Francisco to United Kingdom&lt;/td&gt;&lt;td&gt;81 ms&lt;/td&gt;&lt;td&gt;8 years&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Internet: San Francisco to Australia&lt;/td&gt;&lt;td&gt;183 ms&lt;/td&gt;&lt;td&gt;19 years&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCP packet retransmit&lt;/td&gt;&lt;td&gt;1–3 s&lt;/td&gt;&lt;td&gt;105–317 years&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OS virtualization system reboot&lt;/td&gt;&lt;td&gt;4 s&lt;/td&gt;&lt;td&gt;423 years&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SCSI command time-out&lt;/td&gt;&lt;td&gt;30 s&lt;/td&gt;&lt;td&gt;3 millennia&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hardware (HW) virtualization system reboot&lt;/td&gt;&lt;td&gt;40 s&lt;/td&gt;&lt;td&gt;4 millennia&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Physical system reboot&lt;/td&gt;&lt;td&gt;5 m&lt;/td&gt;&lt;td&gt;32 millennia&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-d9b2d06&quot;&gt;&lt;em&gt;Table 2.2, Example Time Scale of System Latencies, from Brendan Gregg’s Systems Performance.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-f22c752&quot;&gt;Time Scale of System Latencies&lt;/p&gt;</content></entry><entry><title>Is it node.js or some other magical Javascript creature?</title><link href="https://mikkokotila.com/writing/is-it-node-js-or-some-other/"/><id>https://mikkokotila.com/writing/is-it-node-js-or-some-other/</id><published>2017-08-26T00:00:00Z</published><updated>2017-08-26T00:00:00Z</updated><category term="computing"/><summary>Is it node.js or some other magical Javascript creature?</summary><content type="html">&lt;figure class=&quot;figure drawn emblem image-frame&quot; data-drawn&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Omne ignotum pro magnifico est&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/cf62a600ae5ab0c1.png&quot; alt=&quot;Cartoon of a unicorn flying on a rainbow beside a smiling sun&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;Everything unknown is taken for magnificent.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Tacitus, Agricola, 30&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The picture&lt;/b&gt; a unicorn flying on a rainbow, beside a smiling sun&lt;/p&gt;&lt;/figure&gt;&lt;p id=&quot;p-12eb8d9&quot;&gt;Is it node.js or some other magical Javascript creature?&lt;/p&gt;</content></entry><entry><title>hypercomputing</title><link href="https://mikkokotila.com/writing/hypercomputing/"/><id>https://mikkokotila.com/writing/hypercomputing/</id><published>2017-08-25T00:00:00Z</published><updated>2017-08-25T00:00:00Z</updated><category term="computing"/><summary>hypercomputing</summary></entry><entry><title>The Heartbleed Weakness</title><link href="https://mikkokotila.com/writing/the-heartbleed-weakness/"/><id>https://mikkokotila.com/writing/the-heartbleed-weakness/</id><published>2017-08-24T00:00:00Z</published><updated>2017-08-24T00:00:00Z</updated><category term="computing"/><summary>An exchange about a security assumption that seemed too obvious to question.</summary></entry><entry><title>Modern Micro Kernel</title><link href="https://mikkokotila.com/writing/modern-micro-kernel/"/><id>https://mikkokotila.com/writing/modern-micro-kernel/</id><published>2017-08-23T00:00:00Z</published><updated>2017-08-23T00:00:00Z</updated><category term="computing"/><summary>A proposal to compile only the library and kernel functions an application actually needs.</summary><content type="html">&lt;p id=&quot;p-5235919&quot; class=&quot;opening&quot;&gt;The compiler should compile our app, and all its needed parts directly in to the app. So the libraries and OS kernels, should all be cherry picked and only the utilized functions inserted in to the app in &lt;span class=&quot;nowrap&quot;&gt;machine codes.&lt;/span&gt;&lt;/p&gt;</content></entry><entry><title>Photograph, 22 August 2017</title><link href="https://mikkokotila.com/writing/photo-2017-08-22/"/><id>https://mikkokotila.com/writing/photo-2017-08-22/</id><published>2017-08-22T00:00:00Z</published><updated>2017-08-22T00:00:00Z</updated><category term="computing"/><summary></summary><content type="html">&lt;figure class=&quot;figure drawn image-frame&quot; data-drawn&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/580e2dcb072be633.png&quot; alt=&quot;A Sinclair ZX Spectrum home computer&quot;&gt;&lt;/figure&gt;</content></entry><entry><title>Photograph, 21 August 2017</title><link href="https://mikkokotila.com/writing/photo-2017-08-21/"/><id>https://mikkokotila.com/writing/photo-2017-08-21/</id><published>2017-08-21T00:00:00Z</published><updated>2017-08-21T00:00:00Z</updated><category term="computing"/><summary></summary><content type="html">&lt;figure class=&quot;figure drawn image-frame&quot; data-drawn&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/cab872e739ff9af2.png&quot; alt=&quot;Black-and-white photograph of a man in glasses at a computer console with tape reels&quot;&gt;&lt;/figure&gt;</content></entry><entry><title>a 3 + b 3 + c 3 = 33</title><link href="https://mikkokotila.com/writing/photo-2017-08-20/"/><id>https://mikkokotila.com/writing/photo-2017-08-20/</id><published>2017-08-20T00:00:00Z</published><updated>2017-08-20T00:00:00Z</updated><category term="computing"/><summary>a 3 + b 3 + c 3 = 33</summary><content type="html">&lt;p id=&quot;p-cf28d8a&quot;&gt;a&lt;sup&gt;3&lt;/sup&gt; + b&lt;sup&gt;3&lt;/sup&gt; + c&lt;sup&gt;3&lt;/sup&gt; = 33&lt;/p&gt;</content></entry><entry><title>Easy 6502 by skilldrick</title><link href="https://mikkokotila.com/writing/easy-6502-by-skilldrick/"/><id>https://mikkokotila.com/writing/easy-6502-by-skilldrick/</id><published>2017-08-19T00:00:00Z</published><updated>2017-08-19T00:00:00Z</updated><category term="computing"/><summary></summary></entry><entry><title>prove something in the short-term to prove something else in the long</title><link href="https://mikkokotila.com/writing/prove-something-in-the-short-term-to-prove-something-else-in-the/"/><id>https://mikkokotila.com/writing/prove-something-in-the-short-term-to-prove-something-else-in-the/</id><published>2017-08-18T00:00:00Z</published><updated>2017-08-18T00:00:00Z</updated><category term="computing"/><summary>prove something that you can prove in the short term and can keep proving in the short term that you can prove is a leading effect for a long-term following effect (the one you are trying to measure and achieve).</summary><content type="html">&lt;p id=&quot;p-28a2fa3&quot; class=&quot;opening&quot;&gt;prove something that you can prove in the short term and can keep proving in the short term that you can prove is a leading effect for a long-term following effect (the one you are trying to measure &lt;span class=&quot;nowrap&quot;&gt;and achieve).&lt;/span&gt;&lt;/p&gt;</content></entry><entry><title>Figure, 17 August 2017</title><link href="https://mikkokotila.com/writing/photo-2017-08-17/"/><id>https://mikkokotila.com/writing/photo-2017-08-17/</id><published>2017-08-17T00:00:00Z</published><updated>2017-08-17T00:00:00Z</updated><category term="computing"/><summary></summary><content type="html">&lt;figure class=&quot;fig cubes wide&quot; data-fig=&quot;cubes&quot; data-n=&quot;5&quot; data-says=&quot;[&amp;quot;1³ = 1 = 1².&amp;quot;,&amp;quot;1³ + 2³ = 9 = 3², and 3 = 1 + 2.&amp;quot;,&amp;quot;1³ + 2³ + 3³ = 36 = 6², and 6 = 1 + 2 + 3.&amp;quot;,&amp;quot;1³ + 2³ + 3³ + 4³ = 100 = 10², and 10 = 1 + 2 + 3 + 4.&amp;quot;,&amp;quot;1³ + 2³ + 3³ + 4³ + 5³ = 225 = 15², and 15 = 1 + 2 + 3 + 4 + 5.&amp;quot;]&quot; aria-label=&quot;The cubes of 1 to 5, laid out to show that their sum is a square&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;1³ + 2³ + 3³ + 4³ + 5³ = 225 = 15², and 15 = 1 + 2 + 3 + 4 + 5.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 470&quot; role=&quot;img&quot; aria-label=&quot;The first cubes, added, make a square: 1³ + 2³ + 3³ + 4³ + 5³ = 225 = 15², and 15 = 1 + 2 + 3 + 4 + 5.&quot;&gt;&lt;g class=&quot;cube&quot; tabindex=&quot;0&quot; data-k=&quot;1&quot;&gt;&lt;path class=&quot;top&quot; d=&quot;M19.5 143.6L25.1 140.4L19.5 137.2L14.0 140.4Z&quot;/&gt;&lt;path class=&quot;left&quot; d=&quot;M19.5 150.0L14.0 146.8L14.0 140.4L19.5 143.6Z&quot;/&gt;&lt;path class=&quot;right&quot; d=&quot;M19.5 150.0L25.1 146.8L25.1 140.4L19.5 143.6Z&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;&quot;/&gt;&lt;text class=&quot;cube-name&quot; x=&quot;19.5&quot; y=&quot;176&quot; text-anchor=&quot;middle&quot;&gt;1&lt;tspan class=&quot;power&quot; dy=&quot;-8&quot; font-size=&quot;11&quot;&gt;3&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;cube&quot; tabindex=&quot;0&quot; data-k=&quot;2&quot;&gt;&lt;path class=&quot;top&quot; d=&quot;M48.2 137.2L59.3 130.8L48.2 124.4L37.1 130.8Z&quot;/&gt;&lt;path class=&quot;left&quot; d=&quot;M48.2 150.0L37.1 143.6L37.1 130.8L48.2 137.2Z&quot;/&gt;&lt;path class=&quot;right&quot; d=&quot;M48.2 150.0L59.3 143.6L59.3 130.8L48.2 137.2Z&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;M37.1 137.2L48.2 143.6L59.3 137.2M42.6 146.8L42.6 134.0L53.7 127.6M53.7 146.8L53.7 134.0L42.6 127.6&quot;/&gt;&lt;text class=&quot;cube-name&quot; x=&quot;48.2&quot; y=&quot;176&quot; text-anchor=&quot;middle&quot;&gt;2&lt;tspan class=&quot;power&quot; dy=&quot;-8&quot; font-size=&quot;11&quot;&gt;3&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;cube&quot; tabindex=&quot;0&quot; data-k=&quot;3&quot;&gt;&lt;path class=&quot;top&quot; d=&quot;M87.9 130.8L104.5 121.2L87.9 111.6L71.3 121.2Z&quot;/&gt;&lt;path class=&quot;left&quot; d=&quot;M87.9 150.0L71.3 140.4L71.3 121.2L87.9 130.8Z&quot;/&gt;&lt;path class=&quot;right&quot; d=&quot;M87.9 150.0L104.5 140.4L104.5 121.2L87.9 130.8Z&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;M71.3 134.0L87.9 143.6L104.5 134.0M82.3 146.8L82.3 127.6L99.0 118.0M93.4 146.8L93.4 127.6L76.8 118.0M71.3 127.6L87.9 137.2L104.5 127.6M76.8 143.6L76.8 124.4L93.4 114.8M99.0 143.6L99.0 124.4L82.3 114.8&quot;/&gt;&lt;text class=&quot;cube-name&quot; x=&quot;87.9&quot; y=&quot;176&quot; text-anchor=&quot;middle&quot;&gt;3&lt;tspan class=&quot;power&quot; dy=&quot;-8&quot; font-size=&quot;11&quot;&gt;3&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;cube&quot; tabindex=&quot;0&quot; data-k=&quot;4&quot;&gt;&lt;path class=&quot;top&quot; d=&quot;M138.7 124.4L160.9 111.6L138.7 98.8L116.5 111.6Z&quot;/&gt;&lt;path class=&quot;left&quot; d=&quot;M138.7 150.0L116.5 137.2L116.5 111.6L138.7 124.4Z&quot;/&gt;&lt;path class=&quot;right&quot; d=&quot;M138.7 150.0L160.9 137.2L160.9 111.6L138.7 124.4Z&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;M116.5 130.8L138.7 143.6L160.9 130.8M133.1 146.8L133.1 121.2L155.3 108.4M144.2 146.8L144.2 121.2L122.1 108.4M116.5 124.4L138.7 137.2L160.9 124.4M127.6 143.6L127.6 118.0L149.8 105.2M149.8 143.6L149.8 118.0L127.6 105.2M116.5 118.0L138.7 130.8L160.9 118.0M122.1 140.4L122.1 114.8L144.2 102.0M155.3 140.4L155.3 114.8L133.1 102.0&quot;/&gt;&lt;text class=&quot;cube-name&quot; x=&quot;138.7&quot; y=&quot;176&quot; text-anchor=&quot;middle&quot;&gt;4&lt;tspan class=&quot;power&quot; dy=&quot;-8&quot; font-size=&quot;11&quot;&gt;3&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;cube&quot; tabindex=&quot;0&quot; data-k=&quot;5&quot;&gt;&lt;path class=&quot;top&quot; d=&quot;M200.6 118.0L228.3 102.0L200.6 86.0L172.9 102.0Z&quot;/&gt;&lt;path class=&quot;left&quot; d=&quot;M200.6 150.0L172.9 134.0L172.9 102.0L200.6 118.0Z&quot;/&gt;&lt;path class=&quot;right&quot; d=&quot;M200.6 150.0L228.3 134.0L228.3 102.0L200.6 118.0Z&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;M172.9 127.6L200.6 143.6L228.3 127.6M195.0 146.8L195.0 114.8L222.7 98.8M206.1 146.8L206.1 114.8L178.4 98.8M172.9 121.2L200.6 137.2L228.3 121.2M189.5 143.6L189.5 111.6L217.2 95.6M211.6 143.6L211.6 111.6L183.9 95.6M172.9 114.8L200.6 130.8L228.3 114.8M183.9 140.4L183.9 108.4L211.6 92.4M217.2 140.4L217.2 108.4L189.5 92.4M172.9 108.4L200.6 124.4L228.3 108.4M178.4 137.2L178.4 105.2L206.1 89.2M222.7 137.2L222.7 105.2L195.0 89.2&quot;/&gt;&lt;text class=&quot;cube-name&quot; x=&quot;200.6&quot; y=&quot;176&quot; text-anchor=&quot;middle&quot;&gt;5&lt;tspan class=&quot;power&quot; dy=&quot;-8&quot; font-size=&quot;11&quot;&gt;3&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;gnomon godd&quot; data-k=&quot;1&quot;&gt;&lt;rect class=&quot;arm&quot; x=&quot;262.0&quot; y=&quot;40.0&quot; width=&quot;26.7&quot; height=&quot;26.7&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;262.0&quot; y=&quot;40.0&quot; width=&quot;26.7&quot; height=&quot;26.7&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;gnomon geven&quot; data-k=&quot;2&quot;&gt;&lt;rect class=&quot;arm&quot; x=&quot;288.7&quot; y=&quot;40.0&quot; width=&quot;53.3&quot; height=&quot;80.0&quot;/&gt;&lt;rect class=&quot;arm&quot; x=&quot;262.0&quot; y=&quot;66.7&quot; width=&quot;26.7&quot; height=&quot;53.3&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;M315.3 40.0V120.0M262.0 93.3H342.0&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;288.7&quot; y=&quot;40.0&quot; width=&quot;53.3&quot; height=&quot;53.3&quot;/&gt;&lt;rect class=&quot;layer half&quot; x=&quot;288.7&quot; y=&quot;93.3&quot; width=&quot;53.3&quot; height=&quot;26.7&quot;/&gt;&lt;rect class=&quot;layer half&quot; x=&quot;262.0&quot; y=&quot;66.7&quot; width=&quot;26.7&quot; height=&quot;53.3&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;gnomon godd&quot; data-k=&quot;3&quot;&gt;&lt;rect class=&quot;arm&quot; x=&quot;342.0&quot; y=&quot;40.0&quot; width=&quot;80.0&quot; height=&quot;160.0&quot;/&gt;&lt;rect class=&quot;arm&quot; x=&quot;262.0&quot; y=&quot;120.0&quot; width=&quot;80.0&quot; height=&quot;80.0&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;M288.7 120.0V200.0M315.3 120.0V200.0M368.7 40.0V200.0M395.3 40.0V200.0M342.0 66.7H422.0M342.0 93.3H422.0M262.0 146.7H422.0M262.0 173.3H422.0&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;342.0&quot; y=&quot;40.0&quot; width=&quot;80.0&quot; height=&quot;80.0&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;342.0&quot; y=&quot;120.0&quot; width=&quot;80.0&quot; height=&quot;80.0&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;262.0&quot; y=&quot;120.0&quot; width=&quot;80.0&quot; height=&quot;80.0&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;gnomon geven&quot; data-k=&quot;4&quot;&gt;&lt;rect class=&quot;arm&quot; x=&quot;422.0&quot; y=&quot;40.0&quot; width=&quot;106.7&quot; height=&quot;266.7&quot;/&gt;&lt;rect class=&quot;arm&quot; x=&quot;262.0&quot; y=&quot;200.0&quot; width=&quot;160.0&quot; height=&quot;106.7&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;M288.7 200.0V306.7M315.3 200.0V306.7M342.0 200.0V306.7M368.7 200.0V306.7M395.3 200.0V306.7M448.7 40.0V306.7M475.3 40.0V306.7M502.0 40.0V306.7M422.0 66.7H528.7M422.0 93.3H528.7M422.0 120.0H528.7M422.0 146.7H528.7M422.0 173.3H528.7M262.0 226.7H528.7M262.0 253.3H528.7M262.0 280.0H528.7&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;422.0&quot; y=&quot;40.0&quot; width=&quot;106.7&quot; height=&quot;106.7&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;422.0&quot; y=&quot;146.7&quot; width=&quot;106.7&quot; height=&quot;106.7&quot;/&gt;&lt;rect class=&quot;layer half&quot; x=&quot;422.0&quot; y=&quot;253.3&quot; width=&quot;106.7&quot; height=&quot;53.3&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;262.0&quot; y=&quot;200.0&quot; width=&quot;106.7&quot; height=&quot;106.7&quot;/&gt;&lt;rect class=&quot;layer half&quot; x=&quot;368.7&quot; y=&quot;200.0&quot; width=&quot;53.3&quot; height=&quot;106.7&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;gnomon godd&quot; data-k=&quot;5&quot;&gt;&lt;rect class=&quot;arm&quot; x=&quot;528.7&quot; y=&quot;40.0&quot; width=&quot;133.3&quot; height=&quot;400.0&quot;/&gt;&lt;rect class=&quot;arm&quot; x=&quot;262.0&quot; y=&quot;306.7&quot; width=&quot;266.7&quot; height=&quot;133.3&quot;/&gt;&lt;path class=&quot;unit&quot; d=&quot;M288.7 306.7V440.0M315.3 306.7V440.0M342.0 306.7V440.0M368.7 306.7V440.0M395.3 306.7V440.0M422.0 306.7V440.0M448.7 306.7V440.0M475.3 306.7V440.0M502.0 306.7V440.0M555.3 40.0V440.0M582.0 40.0V440.0M608.7 40.0V440.0M635.3 40.0V440.0M528.7 66.7H662.0M528.7 93.3H662.0M528.7 120.0H662.0M528.7 146.7H662.0M528.7 173.3H662.0M528.7 200.0H662.0M528.7 226.7H662.0M528.7 253.3H662.0M528.7 280.0H662.0M262.0 333.3H662.0M262.0 360.0H662.0M262.0 386.7H662.0M262.0 413.3H662.0&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;528.7&quot; y=&quot;40.0&quot; width=&quot;133.3&quot; height=&quot;133.3&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;528.7&quot; y=&quot;173.3&quot; width=&quot;133.3&quot; height=&quot;133.3&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;528.7&quot; y=&quot;306.7&quot; width=&quot;133.3&quot; height=&quot;133.3&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;262.0&quot; y=&quot;306.7&quot; width=&quot;133.3&quot; height=&quot;133.3&quot;/&gt;&lt;rect class=&quot;layer&quot; x=&quot;395.3&quot; y=&quot;306.7&quot; width=&quot;133.3&quot; height=&quot;133.3&quot;/&gt;&lt;/g&gt;&lt;text class=&quot;side&quot; data-k=&quot;1&quot; x=&quot;275.3&quot; y=&quot;30&quot; text-anchor=&quot;middle&quot;&gt;1&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;1&quot; x=&quot;252&quot; y=&quot;58.3&quot; text-anchor=&quot;end&quot;&gt;1&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;2&quot; x=&quot;315.3&quot; y=&quot;30&quot; text-anchor=&quot;middle&quot;&gt;2&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;2&quot; x=&quot;252&quot; y=&quot;98.3&quot; text-anchor=&quot;end&quot;&gt;2&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;3&quot; x=&quot;382.0&quot; y=&quot;30&quot; text-anchor=&quot;middle&quot;&gt;3&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;3&quot; x=&quot;252&quot; y=&quot;165.0&quot; text-anchor=&quot;end&quot;&gt;3&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;4&quot; x=&quot;475.3&quot; y=&quot;30&quot; text-anchor=&quot;middle&quot;&gt;4&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;4&quot; x=&quot;252&quot; y=&quot;258.3&quot; text-anchor=&quot;end&quot;&gt;4&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;5&quot; x=&quot;595.3&quot; y=&quot;30&quot; text-anchor=&quot;middle&quot;&gt;5&lt;/text&gt;&lt;text class=&quot;side&quot; data-k=&quot;5&quot; x=&quot;252&quot; y=&quot;378.3&quot; text-anchor=&quot;end&quot;&gt;5&lt;/text&gt;&lt;/svg&gt;&lt;div class=&quot;fig-controls&quot; data-controls hidden&gt;&lt;input type=&quot;range&quot; min=&quot;1&quot; max=&quot;5&quot; value=&quot;5&quot; step=&quot;1&quot; aria-label=&quot;How many cubes&quot; aria-valuetext=&quot;1³ + 2³ + 3³ + 4³ + 5³ = 225 = 15², and 15 = 1 + 2 + 3 + 4 + 5.&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play&quot;&gt;Add them one at a time&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;Each cube, cut into its layers, makes an L around the cubes before it, so that 1³ + 2³ + … + n³ = (1 + 2 + … + n)².&lt;/figcaption&gt;&lt;/figure&gt;</content></entry><entry><title>Decimal Hexadecimal Binary --- --- --- 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5…</title><link href="https://mikkokotila.com/writing/photo-2017-08-16/"/><id>https://mikkokotila.com/writing/photo-2017-08-16/</id><published>2017-08-16T00:00:00Z</published><updated>2017-08-16T00:00:00Z</updated><category term="computing"/><summary>Decimal Hexadecimal Binary --- --- --- 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111</summary><content type="html">&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;

























































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Decimal&lt;/th&gt;&lt;th&gt;Hexadecimal&lt;/th&gt;&lt;th&gt;Binary&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0001&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0010&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0011&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;0100&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0101&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;0110&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;0111&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;1000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;1001&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;1010&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;1011&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;1100&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;1101&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;1110&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;1111&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</content></entry><entry><title>This is how scaling looks like</title><link href="https://mikkokotila.com/writing/this-is-how-scaling-looks-like/"/><id>https://mikkokotila.com/writing/this-is-how-scaling-looks-like/</id><published>2017-08-16T00:00:00Z</published><updated>2017-08-16T00:00:00Z</updated><category term="computing"/><summary>The energy, materials, and environmental costs behind deep learning—and why more hardware is not the same as greater efficiency.</summary><content type="html">&lt;figure class=&quot;figure drawn&quot; data-drawn=&quot;&quot;&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/722e4a4348f5fa31.png&quot; alt=&quot;Industrial discharge and a polluted landscape, shown in the original environmental-costs article.&quot;&gt;&lt;figcaption&gt;Rare-earth processing in Baotou, China.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-hidden-cost-of-deep-learning&quot;&gt;The Hidden Cost of Deep Learning&lt;/h2&gt;
&lt;p id=&quot;p-b0eb1e4&quot; class=&quot;opening&quot;&gt;Anyone who has worked with deep learning knows that some of the models/model configurations require tremendous amounts of computing power. Given the opportunity, few will turn down the option of working with a high power cloud instance that is stacked with an array of Tesla K80s. Such as this AWS cloud instance &lt;span class=&quot;nowrap&quot;&gt;on steroids:&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;Three AWS P2 instances and their specifications as shown in 2017.&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;AWS P2 instances, as shown in 2017&lt;/p&gt;&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;AWS P2 instances, as shown in 2017&quot; tabindex=&quot;0&quot;&gt;&lt;table class=&quot;blog-figure-table&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Instance&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;GPUs&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;vCPUs&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;RAM (GiB)&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Network&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Price / hour&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;RI price / hour&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;p2.xlarge&lt;/th&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;61&lt;/td&gt;&lt;td&gt;High&lt;/td&gt;&lt;td&gt;$0.900&lt;/td&gt;&lt;td&gt;$0.425&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;p2.8xlarge&lt;/th&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;488&lt;/td&gt;&lt;td&gt;10 Gbps&lt;/td&gt;&lt;td&gt;$7.200&lt;/td&gt;&lt;td&gt;$3.400&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;p2.16xlarge&lt;/th&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;64&lt;/td&gt;&lt;td&gt;732&lt;/td&gt;&lt;td&gt;20 Gbps&lt;/td&gt;&lt;td&gt;$14.400&lt;/td&gt;&lt;td&gt;$6.800&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;figcaption&gt;Transcribed from the original article’s screenshot. Historical prices and specifications, not current offers; the screenshot’s pricing footnotes were not included.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-603d3d2&quot;&gt;We’re like kids playing computer games, with the only objective of having an advantage in the game. Take for an example LSTM, which is like the latest version of the hottest gaming franchise. Everybody wants to play it, everybody wants to be good at it, but very few are asking about the cost of it. We don’t see the cost because in most cases we’re doing our work from a cozy office and somebody else is paying the cloud bill. In case we are working from our home and use our own hardware, then the horizon in respect to costs, that we’re seeing, is limited to our credit card bill. Once that’s taken care of, we will see that the cost is settled. But it’s not that simple.&lt;/p&gt;
&lt;p id=&quot;p-c5d0255&quot;&gt;Take Rare Earthsas an example. A precious mineral at the heart of the computer era. China controls close to 100% of the world’s Rare Earths supply, and it is not possible to build a single silicon based chip without having it. The most obvious cost associated with Rare Earthshas to do with the environment. In the surrounding areas of China’s rare earth operations, everyone is ill. The ecology is destroyed beyond imagination. Take for example the lake in the below image, which is captured from the Baogang Steel and Rare Earth complex. Yes, that is a lake. When we sign up for a cloud instance, or buy new hardware, or run an elaborate model that takes a week to train, we rarely think about something like this. We rarely think about the cost of doing what we are doing, because it seems that it is not ourselves who are bearing the price.&lt;/p&gt;
&lt;figure class=&quot;figure drawn&quot; data-drawn=&quot;&quot;&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/ede7cbe9466a5ebb.png&quot; alt=&quot;Pipes discharging into the waste lake shown in the article about the Baogang complex.&quot;&gt;&lt;figcaption&gt;Discharge at the Baogang steel and rare-earth complex.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-a34565c&quot;&gt;The other side of the ecology aspect relates to device manufacturing. Manufacturing a laptop consumes 70% of its total energy consumption over the lifetime of the device[1]. In other words, before ever being used, it has already consumed 70% of the energy it will consume. The energy used by manufacturing is coming from energy production, which itself too requires a large amount of energy. In other words, we produce goods requiring energy, that is produced by energy factories which themselves consume significant amounts of energy and use equipment that take energy to produce.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;energy-and-carbon-cost-of-deep-learning&quot;&gt;Energy and Carbon Cost of Deep Learning&lt;/h2&gt;
&lt;p id=&quot;p-a477b0b&quot;&gt;Let’s take an arbitrary number of 100 units of energy, and assume that the cost of producing it is 10 units of energy (actually it’s more). Then it means that there is a perpetual cost, where first 10 units are needed to produce the 100 units, then 1 is needed to produce the 10, and then 0.1 is needed to produce the 1…ad infinitum. The more the beast (total current production) grows, the more the tail of the beast grows together with it. While after a few hours of Google searching it does not become clear how big exactly is the share of energy production from the global energy consumption(?!), the Carbon Emission side is clear. Energy production contributes slightly over 1/3 of all Greenhouse gasses globally [2].&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The six sector shares in the historical greenhouse-gas emissions chart.&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;Global greenhouse-gas emissions by economic sector&lt;/p&gt;&lt;dl class=&quot;blog-bars&quot;&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Electricity and heat production&lt;/dt&gt;&lt;dd&gt;25%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:25%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Agriculture, forestry and other land use&lt;/dt&gt;&lt;dd&gt;24%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:24%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Industry&lt;/dt&gt;&lt;dd&gt;21%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:21%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Transportation&lt;/dt&gt;&lt;dd&gt;14%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:14.000000000000002%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Other energy&lt;/dt&gt;&lt;dd&gt;10%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:10%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Buildings&lt;/dt&gt;&lt;dd&gt;6%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:6%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/dl&gt;&lt;figcaption&gt;Values transcribed from the EPA graphic reproduced in the original 2017 article. This is the historical chart, not a current emissions estimate.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-04ba9d9&quot;&gt;This should not be surprising, given how the global energy production is heavily relying on coal energy and other fossil fuels such as natural gas. These two being the most popular, and also the most cost-effective to produce. The situation is particularly bad in Asia Pacific where the great majority of computing components are manufactured.&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;Regional shares of six energy sources in 2016, approximately traced from the original chart.&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;Fuel consumption by region, 2016&lt;/p&gt;&lt;ul class=&quot;blog-legend&quot;&gt;&lt;li&gt;&lt;i aria-hidden=&quot;true&quot; style=&quot;--series-colour:var(--accent)&quot;&gt;&lt;/i&gt;Asia Pacific&lt;/li&gt;&lt;li&gt;&lt;i aria-hidden=&quot;true&quot; style=&quot;--series-colour:color-mix(in oklab, var(--accent) 55%, var(--paper))&quot;&gt;&lt;/i&gt;Africa&lt;/li&gt;&lt;li&gt;&lt;i aria-hidden=&quot;true&quot; style=&quot;--series-colour:var(--ink-3)&quot;&gt;&lt;/i&gt;Middle East&lt;/li&gt;&lt;li&gt;&lt;i aria-hidden=&quot;true&quot; style=&quot;--series-colour:color-mix(in oklab, var(--accent) 25%, var(--paper))&quot;&gt;&lt;/i&gt;Europe &amp;#x26; Eurasia&lt;/li&gt;&lt;li&gt;&lt;i aria-hidden=&quot;true&quot; style=&quot;--series-colour:var(--ink-2)&quot;&gt;&lt;/i&gt;South &amp;#x26; Central America&lt;/li&gt;&lt;li&gt;&lt;i aria-hidden=&quot;true&quot; style=&quot;--series-colour:var(--line)&quot;&gt;&lt;/i&gt;North America&lt;/li&gt;&lt;/ul&gt;&lt;dl class=&quot;blog-bars&quot;&gt;&lt;div&gt;&lt;dt&gt;Oil&lt;/dt&gt;&lt;dd&gt;&lt;span class=&quot;blog-stack&quot; role=&quot;img&quot; aria-label=&quot;Asia Pacific approximately 34.9%, Africa approximately 3.9%, Middle East approximately 9.8%, Europe &amp;#x26; Eurasia approximately 20.4%, South &amp;#x26; Central America approximately 7.5%, North America approximately 23.5%&quot;&gt;&lt;span style=&quot;--bar-value:34.9%;--series-colour:var(--accent)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:3.9%;--series-colour:color-mix(in oklab, var(--accent) 55%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:9.8%;--series-colour:var(--ink-3)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:20.4%;--series-colour:color-mix(in oklab, var(--accent) 25%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:7.5%;--series-colour:var(--ink-2)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:23.5%;--series-colour:var(--line)&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Natural gas&lt;/dt&gt;&lt;dd&gt;&lt;span class=&quot;blog-stack&quot; role=&quot;img&quot; aria-label=&quot;Asia Pacific approximately 20%, Africa approximately 3.9%, Middle East approximately 14.5%, Europe &amp;#x26; Eurasia approximately 29.4%, South &amp;#x26; Central America approximately 4.3%, North America approximately 27.9%&quot;&gt;&lt;span style=&quot;--bar-value:20%;--series-colour:var(--accent)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:3.9%;--series-colour:color-mix(in oklab, var(--accent) 55%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:14.5%;--series-colour:var(--ink-3)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:29.4%;--series-colour:color-mix(in oklab, var(--accent) 25%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:4.3%;--series-colour:var(--ink-2)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:27.9%;--series-colour:var(--line)&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Coal&lt;/dt&gt;&lt;dd&gt;&lt;span class=&quot;blog-stack&quot; role=&quot;img&quot; aria-label=&quot;Asia Pacific approximately 73.7%, Africa approximately 2.4%, Middle East approximately 0.4%, Europe &amp;#x26; Eurasia approximately 12.5%, South &amp;#x26; Central America approximately 0.8%, North America approximately 10.2%&quot;&gt;&lt;span style=&quot;--bar-value:73.7%;--series-colour:var(--accent)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:2.4%;--series-colour:color-mix(in oklab, var(--accent) 55%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:0.4%;--series-colour:var(--ink-3)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:12.5%;--series-colour:color-mix(in oklab, var(--accent) 25%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:0.8%;--series-colour:var(--ink-2)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:10.2%;--series-colour:var(--line)&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Nuclear energy&lt;/dt&gt;&lt;dd&gt;&lt;span class=&quot;blog-stack&quot; role=&quot;img&quot; aria-label=&quot;Asia Pacific approximately 17.6%, Africa approximately 0%, Middle East approximately 0.8%, Europe &amp;#x26; Eurasia approximately 44.7%, South &amp;#x26; Central America approximately 0.4%, North America approximately 36.5%&quot;&gt;&lt;span style=&quot;--bar-value:17.6%;--series-colour:var(--accent)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:0%;--series-colour:color-mix(in oklab, var(--accent) 55%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:0.8%;--series-colour:var(--ink-3)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:44.7%;--series-colour:color-mix(in oklab, var(--accent) 25%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:0.4%;--series-colour:var(--ink-2)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:36.5%;--series-colour:var(--line)&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Hydroelectricity&lt;/dt&gt;&lt;dd&gt;&lt;span class=&quot;blog-stack&quot; role=&quot;img&quot; aria-label=&quot;Asia Pacific approximately 40%, Africa approximately 2.7%, Middle East approximately 0.8%, Europe &amp;#x26; Eurasia approximately 22.4%, South &amp;#x26; Central America approximately 17.3%, North America approximately 16.8%&quot;&gt;&lt;span style=&quot;--bar-value:40%;--series-colour:var(--accent)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:2.7%;--series-colour:color-mix(in oklab, var(--accent) 55%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:0.8%;--series-colour:var(--ink-3)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:22.4%;--series-colour:color-mix(in oklab, var(--accent) 25%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:17.3%;--series-colour:var(--ink-2)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:16.8%;--series-colour:var(--line)&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Renewables&lt;/dt&gt;&lt;dd&gt;&lt;span class=&quot;blog-stack&quot; role=&quot;img&quot; aria-label=&quot;Asia Pacific approximately 34.1%, Africa approximately 0.8%, Middle East approximately 0.8%, Europe &amp;#x26; Eurasia approximately 34.5%, South &amp;#x26; Central America approximately 6.7%, North America approximately 23.1%&quot;&gt;&lt;span style=&quot;--bar-value:34.1%;--series-colour:var(--accent)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:0.8%;--series-colour:color-mix(in oklab, var(--accent) 55%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:0.8%;--series-colour:var(--ink-3)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:34.5%;--series-colour:color-mix(in oklab, var(--accent) 25%, var(--paper))&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:6.7%;--series-colour:var(--ink-2)&quot;&gt;&lt;/span&gt;&lt;span style=&quot;--bar-value:23.1%;--series-colour:var(--line)&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/div&gt;&lt;/dl&gt;&lt;details&gt;&lt;summary&gt;Approximate values (%)&lt;/summary&gt;&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Approximate values (%)&quot; tabindex=&quot;0&quot;&gt;&lt;table class=&quot;blog-figure-table&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Fuel&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Asia Pacific&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Africa&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Middle East&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Europe &amp;#x26; Eurasia&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;South &amp;#x26; Central America&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;North America&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Oil&lt;/th&gt;&lt;td&gt;34.9&lt;/td&gt;&lt;td&gt;3.9&lt;/td&gt;&lt;td&gt;9.8&lt;/td&gt;&lt;td&gt;20.4&lt;/td&gt;&lt;td&gt;7.5&lt;/td&gt;&lt;td&gt;23.5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Natural gas&lt;/th&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;3.9&lt;/td&gt;&lt;td&gt;14.5&lt;/td&gt;&lt;td&gt;29.4&lt;/td&gt;&lt;td&gt;4.3&lt;/td&gt;&lt;td&gt;27.9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Coal&lt;/th&gt;&lt;td&gt;73.7&lt;/td&gt;&lt;td&gt;2.4&lt;/td&gt;&lt;td&gt;0.4&lt;/td&gt;&lt;td&gt;12.5&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;10.2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Nuclear energy&lt;/th&gt;&lt;td&gt;17.6&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;44.7&lt;/td&gt;&lt;td&gt;0.4&lt;/td&gt;&lt;td&gt;36.5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Hydroelectricity&lt;/th&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;2.7&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;22.4&lt;/td&gt;&lt;td&gt;17.3&lt;/td&gt;&lt;td&gt;16.8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Renewables&lt;/th&gt;&lt;td&gt;34.1&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;34.5&lt;/td&gt;&lt;td&gt;6.7&lt;/td&gt;&lt;td&gt;23.1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/details&gt;&lt;p class=&quot;blog-figure-note&quot;&gt;Each bar totals 100%. Values are approximate, not additional precision from the source.&lt;/p&gt;&lt;figcaption&gt;Approximate shares traced from the original 2017 article’s chart. The source has no numerical labels; these are not independently sourced measurements.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-729e071&quot;&gt;So the first consideration is with the manufacturing of devices; the energy cost of making servers, desktops, laptops and various components such as GPUs. The second consideration is related with how those devices and components consume energy when they are already in use. Use of CPU and GPU are both highly energy intensive operations, and regardless of where you are living, part of that juice is coming from coal and other dirty energy. Same is true for data centers where we get our cloud instances from. Even Norway, which on paper has 100% of its energy coming from renewable sources, ends up consuming a lot of coal due to the way it’s connected to the regional energy exchange grid. So how much does a regular consumer GPU use energy? About four iPhone’s worth when the GPU is idle. The peak energy consumption is roughly 20x higher.&lt;/p&gt;
&lt;figure class=&quot;fig power&quot; data-fig=&quot;power&quot; data-highs=&quot;[13.3,13.2,13.1,13.7,13.3,12.8,13.9,12.8,12.4,12,13,10.4,12.4,14.3,14.3,14.3,14.4,14.4,14.6,14.6,14.3,13.8,14.2,14.5,14.3,13.9,13.8,14.8,14.6,14.5,14.5,14.5,14.3,15.9,14.5,13.3,12.8,21.4,14.5,14.3,12.8,13.2,13.3,14.2,13,11.8,13.9,14.2,14.4,14.2,14.2,14.5,15.6,14.5,13.9,14.2,13.4,12.7,13.1,12.5,13,12.7,12.7,12.6,12.1,12.6,14.1,14.1,14.4,14.4,14.4,14.1,14.1,13.7,12.2,11.9,14.1,14.4,14.6,14.4,14.4,15.4,13.6,12.4,14.4,14.6,14.4,14.5,14.5,14.5,14.2,14.3,13.3,12.6,14.5,14.5,12.9,13.1,14,14.2,12.4,13.5,14.5,10.8,12.3,15.1,15.2,14.5,14.1,14.4,14.4,13.1,14.2,12.4,14.2,14.4,14.4,10.5,10.5,10.5]&quot; data-read=&quot;[true,false,true,true,false,true,true,true,false,true,true,true,false,true,true,false,false,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false]&quot; data-box=&quot;46.0,666.0,0.5&quot; data-says=&quot;[&amp;#x22;Idle, it reaches 12 to 15 W in nearly every half second, and 21 W at the most: about four iPhones’ worth.&amp;#x22;,&amp;#x22;At its peak, roughly twenty times as much: about eighty iPhones’ worth.&amp;#x22;]&quot; data-at=&quot;[&amp;#x22;At {t} s: up to {v} W.&amp;#x22;,&amp;#x22;At {t} s: not readable in the original, so drawn across from its neighbours.&amp;#x22;]&quot; aria-label=&quot;A graphics card at idle for a minute: 12 to 15 W in nearly every half second, 21 W at the most; four iPhones’ worth, and roughly twenty times that at its peak&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Idle, it reaches 12 to 15 W in nearly every half second, and 21 W at the most: about four iPhones’ worth.&lt;/p&gt;&lt;div class=&quot;fig-views&quot; role=&quot;group&quot; aria-label=&quot;A graphics card at idle, for a minute&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; data-view=&quot;0&quot; aria-pressed=&quot;true&quot;&gt;Idle&lt;/button&gt;&lt;button type=&quot;button&quot; data-view=&quot;1&quot; aria-pressed=&quot;false&quot;&gt;At its peak&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 260&quot; role=&quot;img&quot; aria-label=&quot;A graphics card at idle, for a minute: Idle, it reaches 12 to 15 W in nearly every half second, and 21 W at the most: about four iPhones’ worth.&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;666&quot; y1=&quot;214.0&quot; y2=&quot;214.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;218.0&quot; text-anchor=&quot;end&quot;&gt;0 W&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;666&quot; y1=&quot;176.4&quot; y2=&quot;176.4&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;180.4&quot; text-anchor=&quot;end&quot;&gt;5 W&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;666&quot; y1=&quot;138.8&quot; y2=&quot;138.8&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;142.8&quot; text-anchor=&quot;end&quot;&gt;10 W&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;666&quot; y1=&quot;101.2&quot; y2=&quot;101.2&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;105.2&quot; text-anchor=&quot;end&quot;&gt;15 W&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;666&quot; y1=&quot;63.6&quot; y2=&quot;63.6&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;67.6&quot; text-anchor=&quot;end&quot;&gt;20 W&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;46&quot; x2=&quot;666&quot; y1=&quot;26.0&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;38&quot; y=&quot;30.0&quot; text-anchor=&quot;end&quot;&gt;25 W&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;46.0&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;0 s&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;149.3&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;10 s&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;252.7&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;20 s&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;356.0&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;30 s&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;459.3&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;40 s&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;562.7&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;50 s&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;666.0&quot; y=&quot;234&quot; text-anchor=&quot;middle&quot;&gt;60 s&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;46&quot; x2=&quot;666&quot; y1=&quot;214&quot; y2=&quot;214&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;46&quot; y=&quot;16&quot;&gt;the most drawn in each half second&lt;/text&gt;&lt;path class=&quot;trace&quot; d=&quot;M46.0 214.0L48.6 114.0L53.8 114.7L58.9 115.5L64.1 111.0L69.3 114.4L74.4 117.7L79.6 109.5L84.8 117.7L89.9 120.8L95.1 123.8L100.3 116.2L105.4 135.8L110.6 121.1L115.8 106.5L120.9 106.5L126.1 106.2L131.3 106.0L136.4 105.7L141.6 104.2L146.8 104.2L151.9 106.5L157.1 110.2L162.3 107.6L167.4 105.0L172.6 106.5L177.8 109.5L182.9 110.2L188.1 102.7L193.3 104.2L198.4 105.0L203.6 105.0L208.8 105.0L213.9 106.5L219.1 94.4L224.3 105.0L229.4 114.0L234.6 117.7L239.8 53.1L244.9 105.0L250.1 106.5L255.3 117.7L260.4 114.7L265.6 114.0L270.8 107.2L275.9 116.2L281.1 125.3L286.3 109.5L291.4 107.2L296.6 105.7L301.8 107.2L306.9 107.2L312.1 105.0L317.3 96.7L322.4 105.0L327.6 109.5L332.8 107.2L337.9 113.2L343.1 118.5L348.3 115.5L353.4 120.0L358.6 116.2L363.8 118.5L368.9 118.5L374.1 119.2L379.3 123.0L384.4 119.2L389.6 108.0L394.8 108.0L399.9 105.7L405.1 105.7L410.3 105.7L415.4 108.0L420.6 108.0L425.8 111.0L430.9 122.3L436.1 124.5L441.3 108.0L446.4 105.7L451.6 104.2L456.8 105.7L461.9 105.7L467.1 98.2L472.3 111.7L477.4 120.8L482.6 105.7L487.8 104.2L492.9 105.7L498.1 105.0L503.3 105.0L508.4 105.0L513.6 107.2L518.8 106.5L523.9 114.0L529.1 119.2L534.3 105.0L539.4 105.0L544.6 117.0L549.8 115.5L554.9 108.7L560.1 107.2L565.3 120.8L570.4 112.5L575.6 105.0L580.8 132.8L585.9 121.5L591.1 100.4L596.3 99.7L601.4 105.0L606.6 108.0L611.8 105.7L616.9 105.7L622.1 115.5L627.3 107.2L632.4 120.8L637.6 107.2L642.8 105.7L647.9 105.7L653.1 135.0L658.3 135.0L663.4 135.0L666.0 214.0Z&quot;&gt;&lt;/path&gt;&lt;line class=&quot;cursor&quot; x1=&quot;0&quot; x2=&quot;0&quot; y1=&quot;26&quot; y2=&quot;214&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;div class=&quot;power-things&quot; aria-hidden=&quot;true&quot;&gt;&lt;i class=&quot;idle&quot; style=&quot;--i:0&quot;&gt;&lt;/i&gt;&lt;i class=&quot;idle&quot; style=&quot;--i:1&quot;&gt;&lt;/i&gt;&lt;i class=&quot;idle&quot; style=&quot;--i:2&quot;&gt;&lt;/i&gt;&lt;i class=&quot;idle&quot; style=&quot;--i:3&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:4&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:5&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:6&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:7&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:8&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:9&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:10&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:11&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:12&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:13&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:14&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:15&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:16&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:17&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:18&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:19&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:20&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:21&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:22&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:23&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:24&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:25&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:26&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:27&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:28&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:29&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:30&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:31&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:32&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:33&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:34&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:35&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:36&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:37&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:38&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:39&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:40&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:41&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:42&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:43&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:44&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:45&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:46&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:47&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:48&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:49&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:50&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:51&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:52&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:53&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:54&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:55&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:56&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:57&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:58&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:59&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:60&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:61&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:62&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:63&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:64&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:65&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:66&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:67&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:68&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:69&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:70&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:71&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:72&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:73&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:74&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:75&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:76&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:77&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:78&quot;&gt;&lt;/i&gt;&lt;i style=&quot;--i:79&quot;&gt;&lt;/i&gt;&lt;/div&gt;&lt;p class=&quot;power-count fig-small&quot;&gt;Four iPhones’ worth at idle; at its peak, roughly twenty times as many.&lt;/p&gt;&lt;figcaption&gt;The most a GeForce GTX 1080 Founders Edition drew in each half second of an idle minute, read from Tom’s Hardware’s oscilloscope measurement and drawn flat. The iPhones count as the text counts them.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-b3c1335&quot;&gt;Bitcoin mining, the second field after gaming, where GPUs become popular, is notoriously inefficient in terms of energy consumption. In fact, Bitcoin mining consumes more energy than many mid-size countries total energy consumption accounts for[3]. There is an interesting parallel here; once deep learning becomes widely popularized, particularly in respect to some of the more advanced models such as highly energy-intensive LSTM, an arms race takes off. One not too different from what we see in play with cryptocurrency mining today. The more there are miners (data scientists) competing for the same outcome (predictions), the more there is an incentive to develop more advanced algorithms (deep learning models), and adopt perpetually more powerful computing. As it is cryptocurrency mining already, this will come at a great expense to the global ecology. The most worrying aspect is that whereas there is a lot of talk about Bitcoin’s energy problem, there is none related to the exact same energy problem that comes with more advanced deep learning approaches. We should start talking about this now, and not when deep learning already has become the standard way for performing predictions. Most of this will be powered by coal and other fossil fuels.&lt;/p&gt;
&lt;p id=&quot;p-43f403b&quot;&gt;To get a clear picture of just how popular fossil fuels are in the global energy consumption, let’s look at the global aggregate. Even by 2040, just 12% of all energy production will be renewable energy, and 8% will be nuclear. The remaining 80%, will still be from fossil fuels.&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;The 2015 EIA projection for the United States in 2040: oil 33%, natural gas 29%, coal 18%, renewable energy 12%, nuclear 8%.&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;Energy supply in 2040 — a 2015 projection&lt;/p&gt;&lt;dl class=&quot;blog-bars&quot;&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Oil&lt;/dt&gt;&lt;dd&gt;33%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:33%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Natural gas&lt;/dt&gt;&lt;dd&gt;29%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:28.999999999999996%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Coal&lt;/dt&gt;&lt;dd&gt;18%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:18%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Renewable energy&lt;/dt&gt;&lt;dd&gt;12%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:12%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Nuclear power&lt;/dt&gt;&lt;dd&gt;8%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:8%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/dl&gt;&lt;details&gt;&lt;summary&gt;Renewable-energy detail in the original projection&lt;/summary&gt;&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Renewable-energy detail in the original projection&quot; tabindex=&quot;0&quot;&gt;&lt;table class=&quot;blog-figure-table&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Source&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Share of total energy&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Biomass&lt;/th&gt;&lt;td&gt;5.2%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Wind&lt;/th&gt;&lt;td&gt;2.9%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Hydroelectricity&lt;/th&gt;&lt;td&gt;2.7%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Geothermal&lt;/th&gt;&lt;td&gt;0.6%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Solar&lt;/th&gt;&lt;td&gt;0.5%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/details&gt;&lt;p class=&quot;blog-figure-note&quot;&gt;Projected total: 105.73 quadrillion Btu. The original graphic refers to the United States, not the global energy supply.&lt;/p&gt;&lt;figcaption&gt;Historical EIA Annual Energy Outlook 2015 projection, Tables A1 and A17, as reproduced in the original article. Percentages are rounded; this is not an observation or an updated forecast.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-fbc588f&quot;&gt;In summary, the cost of deep learning to ecology comes from the way various raw materials for hardware are extracted, the energy cost of manufacturing devices, the energy cost of computing operations, and the energy cost of energy cost. All of these put a significant burden on the global ecology, and raises the important question for deep learning innovators and practitioners; how can things be done in a way that considers not just what is possible, but what is reasonable, and what is sustainable in the longer term. It is not that we should become reserved about the general idea of adopting deep learning method more widely, but that we should become more intelligent about it.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;deep-learning-and-sustainability&quot;&gt;Deep Learning and Sustainability&lt;/h2&gt;
&lt;p id=&quot;p-84c1239&quot;&gt;First and foremost, there should be a clear distinction between what is today widely considered as scaling, and what is the actual meaning of scaling in the computing context. While the IT and Cloud companies would like us to think that scaling has to do with throwing more resources at the problem, it’s not. An idea rooted in the conventional meaning of scaling i.e. that something just becomes better. When we talk about “scaling” in the computing context, it has a slightly different meaning actually. This is revealed in the question “how well this system scale”. Every system will scale as much as needed in the conventional sense i.e. grow bigger, but that is not what the question implies. In the computing context scaling is related to the efficiency of your program; if we do the same thing we are doing now, but do a lot more of it, is it still feasible. Because the IT and Cloud companies have virtually infinite resources, and making those resources as highly utilized as possible is their business, they would like us to think that it’s ok to invest a lot in computing resources. Not only this mindset is dangerous in respect to ecology, but also makes democratization impossible; the less money you have, the less ability you have for adopting the deep learning method. That is the direction we’re going to at the moment.&lt;/p&gt;
&lt;p id=&quot;p-a90ccbf&quot;&gt;A smart computer scientist, or a data scientist, is thinking differently and finding ways to make the model run with a minimal requirement for computing resources, without negatively affecting the output. He or she knows that throwing more boxes at a problem is not scaling. it’s the opposite of scaling (as it reduces efficiency, or at best has no effect on it, as opposed to improving it). The fact that your model runs faster just because you invest more in hardware, does not imply any efficiency gain and therefore can not be considered as scaling in the computing context.&lt;/p&gt;
&lt;p id=&quot;p-ea44fd4&quot;&gt;The second point is related to the kinds of models that we use. In the examples provided by popular deep learning libraries as part of their Github repos, there are some startling examples of inefficiency. For example, using LSTM for a problem where you can get same or better result with a dense layer network. The LSTM version taking overnight to run, and the dense layer one 20 seconds. Even if do you get an increase of 1% in the prediction capability but end up using 1,000x more computing resources (and energy), one must ask if it’s worth the CO2 contribution and other negative effects that come with it. While research works focused on highlighting the energy efficiency of a single model have started to appear recently, no comprehensive comparison of common models in this context is available.&lt;/p&gt;
&lt;p id=&quot;p-d660589&quot;&gt;Finally, we have to be generally better at looking deeper into the effects of what we are doing. There needs to be an open discussion in the wider global deep learning community about the potential issues related to energy consumption before we go ahead and establish “best practices” that end up proving unsustainable. Researchers publishing papers, where they highlight the benefits of their latest inventions in terms of models, should also consider the energy efficiency aspect, and not just novelty or marginal gains to something that is already widely available. Last but not least, technology developers should openly discuss the potential negative effects of wider adoption of deep learning frameworks in the data science practice. Ultimately, deep learning technology solutions specifically, and machine learning solutions more generally, should be governed by similar regulations as for example cars are today.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;references&quot;&gt;References&lt;/h2&gt;
&lt;p id=&quot;p-e570f9c&quot;&gt;[1] &lt;a href=&quot;https://www.journals.elsevier.com/journal-of-cleaner-production/&quot;&gt;https://www.journals.elsevier.com/journal-of-cleaner-production/&lt;/a&gt;
[2] &lt;a href=&quot;https://www.epa.gov/ghgemissions/global-greenhouse-gas-emissions-data&quot;&gt;https://www.epa.gov/ghgemissions/global-greenhouse-gas-emissions-data&lt;/a&gt;
[3] &lt;a href=&quot;http://digiconomist.net/bitcoin-energy-consumption&quot;&gt;http://cryptowizzard.com/eth-mining-calculator/&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>From the inception of the wireless system, I saw that this new art of applied electricity…</title><link href="https://mikkokotila.com/writing/photo-2017-08-15/"/><id>https://mikkokotila.com/writing/photo-2017-08-15/</id><published>2017-08-15T00:00:00Z</published><updated>2017-08-15T00:00:00Z</updated><category term="computing"/><summary>From the inception of the wireless system, I saw that this new art of applied electricity would be of greater benefit to the human race than any other scientific discovery, for it virtually eliminates distance. The majority of the ills from which humanity suffers are due to the…</summary><content type="html">&lt;figure class=&quot;quote&quot; id=&quot;p-8f0ae42&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;From the inception of the wireless system, I saw that this new art of applied electricity would be of greater benefit to the human race than any other scientific discovery, for it virtually eliminates distance. The majority of the ills from which humanity suffers are due to the immense extent of the terrestrial globe and the inability of individuals and nations to come into close contact.&lt;/p&gt;
&lt;p&gt;When wireless is perfectly applied the whole earth will be converted into a huge brain, which in fact it is, all things being particles of a real and rhythmic whole. We shall be able to communicate with one another instantly, irrespective of distance. Not only this, but through television and telephony we shall see and hear one another as perfectly as though we were face to face, despite intervening distances of thousands of miles; and the instruments through which we shall be able to do his will be amazingly simple compared with our present telephone. A man will be able to carry one in his vest pocket.&lt;/p&gt;
&lt;p&gt;We shall be able to witness and hear events — the inauguration of a President, the playing of a world series game, the havoc of an earthquake or the terror of a battle — just as though we were present.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Nikola Tesla, interviewed by Collier’s, 1926&lt;/figcaption&gt;
&lt;/figure&gt;</content></entry><entry><title>APOD: 2016 January 25 - Where Your Elements Came From</title><link href="https://mikkokotila.com/writing/apod-2016-january-25-where-your-elements/"/><id>https://mikkokotila.com/writing/apod-2016-january-25-where-your-elements/</id><published>2017-08-14T00:00:00Z</published><updated>2017-08-14T00:00:00Z</updated><category term="computing"/><summary></summary></entry><entry><title>Hypercalc — The Calculator That Doesn’t Overflow at MROB</title><link href="https://mikkokotila.com/writing/hypercalc-the-calculator-that-doesnt-overflow-at/"/><id>https://mikkokotila.com/writing/hypercalc-the-calculator-that-doesnt-overflow-at/</id><published>2017-08-14T00:00:00Z</published><updated>2017-08-14T00:00:00Z</updated><category term="computing"/><summary></summary></entry><entry><title>Working Out of the Kernel</title><link href="https://mikkokotila.com/writing/working-out-of-the-kernel/"/><id>https://mikkokotila.com/writing/working-out-of-the-kernel/</id><published>2017-08-14T00:00:00Z</published><updated>2017-08-14T00:00:00Z</updated><category term="computing"/><summary></summary></entry><entry><title>WTF is adToken?! A Primer to Ad Network 2.0 Schemes</title><link href="https://mikkokotila.com/writing/wtf-is-adtoken-a-primer-to-ad-network-2-0-schemes/"/><id>https://mikkokotila.com/writing/wtf-is-adtoken-a-primer-to-ad-network-2-0-schemes/</id><published>2017-07-25T00:00:00Z</published><updated>2017-07-25T00:00:00Z</updated><category term="ad-fraud"/><category term="decentralization"/><summary>It’s the first of a kind, but not in an exciting or positive sense. Actually, it just marks the beginning of an era where ad networks (at least for a while) will be interesting and seem valuable again.</summary><content type="html">&lt;p id=&quot;p-d6c6a67&quot;&gt;&lt;em&gt;“An ad network, a surveillance capitalism lobby, an ad fraud consultant, and an ICO factory walks into a bar…”&lt;/em&gt;&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Pares cum paribus facillime congregantur&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/c2216f9dd4a10437.png&quot; alt=&quot;A group of people posing around a table of food in an office&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;Like gathers most readily with like.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;an old proverb, in Cicero’s On Old Age&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The picture&lt;/b&gt; a party in an office, after the essay’s joke: an ad network, a surveillance capitalism lobby, an ad fraud consultant and an ICO factory walk into a bar&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-5ff57f4&quot;&gt;TL;DR&lt;/p&gt;
&lt;p id=&quot;p-66594cc&quot;&gt;adToken is the hook in a pitch that we call “Adnetwork 2.0”. It’s the first of a kind, but not in an exciting or positive sense. Actually, it just marks the beginning of an era where ad networks (at least for a while) will be interesting and seem valuable again.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;welcome-to-the-adtech-boiler-room&quot;&gt;Welcome to the Adtech Boiler Room&lt;/h2&gt;
&lt;p id=&quot;p-fd570a5&quot;&gt;Remember that time, +20 years ago, when a bunch of well dressed not-so technical guys from various backgrounds came to the online advertising scene with a promise that they would make it better. Those companies came to be known as ad networks, and they are, some argue, the root of the most pressing issues in online advertising (and the internet). The ad network model turned out to be the most popular “get rich scheme” hitting the internet in its first +20 years. Thousands of companies flocked to it in search of a quick buck. Actually, it is kind of a scam and Business Insider wrote about the ad network model as a Ponzi scheme already in 2008[&lt;a href=&quot;http://www.businessinsider.com/2008/4/why-the-ad-network-pyramid-schemes-won-t-work&quot;&gt;0&lt;/a&gt;]. Ponzi schemes and other similar scams require two things in order to be sustained and keep making money for the people behind them:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-0d3a72c&quot;&gt;New fools must keep coming in&lt;/li&gt;
&lt;li id=&quot;p-2c5f039&quot;&gt;The biggest old fools can’t pull out&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-c76619a&quot;&gt;When either one of these stops happening, the house of cards goes down. That’s exactly what’s happening with the +20-year-old ad network scheme. It is only a matter of time when the great majority of the current 10,000 or so ad networks will not have enough new fools coming in, while the old fools abandoning. Simply put, the ad network era is coming to an end.&lt;/p&gt;
&lt;figure class=&quot;fig titlecard iris script&quot; data-fig=&quot;titlecard&quot; aria-label=&quot;A cartoon’s closing card: “The End”&quot;&gt;&lt;div class=&quot;titlecard-card&quot;&gt;&lt;span class=&quot;titlecard-title&quot;&gt;&lt;span&gt;The End&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-93b1670&quot;&gt;Instead of trying to milk a dying cow, the most eager operators are already eyeing the next scheme. This makes sense; why not leave when you’re still “winning” in the sense that you have not yet been called out as a con. If you have any doubt about ad network model being a form of a con, you have to talk with people who setup and ran ad networks over the past +20 years. Then you will find out. Don’t take my word for it. And yes, some are legitimate in the sense that even though they take 50% or more commission, they make a sincere effort to add value. Most take the commission, with no sincere effort for much else than taking the commission and doing the absolute minimum it takes to keep getting new money coming in.&lt;/p&gt;
&lt;p id=&quot;p-624e30f&quot;&gt;On its &lt;a href=&quot;https://adchain.com/&quot;&gt;website&lt;/a&gt;, adToken (adChain) says that CPM is at the root of online advertising problems. It’s not that simple. It would be far more accurate to say that Ad networks are at the root of online advertising problems. Actually, performance (conversion) and click networks are generally far more likely to be just fraud, as opposed to CPM based networks. This is well known even within the less savvy adtech crowd.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;what-is-adtoken-promising&quot;&gt;What Is Adtoken Promising&lt;/h3&gt;
&lt;p id=&quot;p-70d480d&quot;&gt;The main promise adToken is associated with, is to provide a “fraud free” advertising environment. This is promised through implying that the initial publishers have been verified fraud free and that there is a system in place, which in fact is the only tangible function of their blockchain, to ensure that only fraud free publishers can be added to their registry. Two points regarding this:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-d38792d&quot;&gt;Nobody has a way, nor will have a way anytime soon, to guarantee a given publisher is fraud free&lt;/li&gt;
&lt;li id=&quot;p-050697e&quot;&gt;It took us minutes to come up with a multitude of way how highly fraudulent publishers can get into adChain&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-467f9ff&quot;&gt;In the case of point 1, any respectable ad fraud researcher knows that it’s not possible to give a credible fraud free guarantee. In this regard, one of the most respected individuals covering the topic of ad fraud said:&lt;/p&gt;
&lt;blockquote id=&quot;p-2765a57&quot;&gt;
&lt;p&gt;“Cool tech, but won’t solve fraud”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-f4aebe0&quot;&gt;In the case of point 2, it is actually hard to find justification for why adChain would not become a way for large scale fraud publishers to legitimize their operations. We sure could not find any, while we could easily find many scenarios where that is exactly what will happen. Further, it will allow now legitimate publishers to use “audience extension” and other techniques, while enjoying the “stamp of approval” of being part of adChain.&lt;/p&gt;
&lt;p id=&quot;p-b50a8d8&quot;&gt;Just like the ad networks have done for the past 20 years, it seems that adToken is kind of a business model where anything the buyers want to hear, is said without taking much time to think if it makes even theoretical sense.This is not so surprising, given that adChain is actually just an ad network, setup by another ad network.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;unpacking-adtoken&quot;&gt;Unpacking Adtoken&lt;/h3&gt;
&lt;p id=&quot;p-3e5ac32&quot;&gt;Let’s first look at the companies and brand names that are directly related with adToken. In fact, there are quite a few, which makes it much harder for anyone to start digging deeper into what adToken actually is and who is behind it.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-d8597ea&quot;&gt;VidRoll (the ad network behind it all)&lt;/li&gt;
&lt;li id=&quot;p-b4fde49&quot;&gt;adChain (seems to be more like project name)&lt;/li&gt;
&lt;li id=&quot;p-e545144&quot;&gt;MetaX (same people as VidRoll)&lt;/li&gt;
&lt;li id=&quot;p-a5da8d6&quot;&gt;MetaXchain (seems to be the same as MetaX)&lt;/li&gt;
&lt;li id=&quot;p-4a8d9a6&quot;&gt;adToken (the cryptocurrency token associated with adChain)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-6941d41&quot;&gt;It seems, that all of these are the same group of people, who are actually the VidRoll team and their advisors. Based on a brief background check (always perform background checks on companies and individuals that make claims about dealing with fraud), we immediately identify several causes for concern. Everyone should do their own research, so we will not share the details here except for two things. One is a case related to Vidroll LLC[&lt;a href=&quot;http://norcalrecord.com/stories/511143154-law-courts-vidroll-llc-alleged-to-have-failed-to-pay-division-d-for-advertising-services&quot;&gt;1&lt;/a&gt;].&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-bf521e5&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Vidroll LLC alleged to have failed to pay Division-D for advertising services&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Headline, by Wadi Reformado, 17 July 2017&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-9037a0e&quot;&gt;It’s a case where allegedly Vidroll had left a video traffic bill of $200,000 unpaid to Division-D, another Adtech company. The second “red flag” is that in a panel discussion hosted by MetaX, two key individuals involved in the adChain project readily admit having in the past “monetized fraudulent traffic”[&lt;a href=&quot;http://laadtech.com/?p=463&quot;&gt;2&lt;/a&gt;]. If you go to casino and count cards, you get a lifetime ban. If you do as simple of a violation as insider trading for a small amount of money on Wall Street, the feds will hunt you down and put you to prison for years. In adtech, it seems, you’ll use it as a credential to peddle your next money making scheme.&lt;/p&gt;
&lt;p id=&quot;p-e340af0&quot;&gt;There are two more parties involved in the adToken project:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-cc46a6e&quot;&gt;DMA (Data &amp;#x26; Marketing Association, previously Direct Marketing Association)&lt;/li&gt;
&lt;li id=&quot;p-935365c&quot;&gt;ConsenSys&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-2074fb1&quot;&gt;ConsenSys is what could be referred to as an “ICO Factory”. A company that as its sole business model exploits the &lt;em&gt;Initial Coin Offering &lt;/em&gt;model, fuelled by the mindless hype around the cryptocurrency space. We will cover ICO model a separate section below. First, let’s take a look at DMA.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;no-privacy-by-design&quot;&gt;No-privacy by Design&lt;/h3&gt;
&lt;p id=&quot;p-9022a5e&quot;&gt;The three principal parties in online advertising are the publishers, the advertisers, and the internet user. All other parties are intermediaries. The fundamental problem in online advertising, beyond fraud or any other aspect, is its utter disconnect from the internet user. Unfortunately, adToken does not mention the internet user, or consideration to their rights, at all. On the contrary, the key role DMA has in controlling the adChain (at least initially), suggests the opposite. Whereas the first blockchain based advertising token, the &lt;em&gt;Basic Attention Token&lt;/em&gt; is privacy-by-design, it seems that adToken is no-privacy-by-design. To understand this better, we have to understand two things clearly:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-b8b2f20&quot;&gt;DMA (and its members) have an unfair advantage in the adChain registry (at least initially)&lt;/li&gt;
&lt;li id=&quot;p-2ee1a71&quot;&gt;DMA is possibly the most significant proponent against online privacy&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-fffd728&quot;&gt;DMA is the organization that is possibly the most responsible for profiling of internet users becoming a standard practice, in comparison to any other single entity. It seems fair to say that DMA is to online advertising, what NSA to the intelligence community. Without surveillance of unwitting citizens, it would cease to function. Profiling of internet users is a practice that has been since its inception used by oppressive governments to make bloggers disappear, ISIS to recruit disgruntled westerners, swing the Brexit vote, and allegedly to win the US election. It will take decades to find another idea, that has created so much animosity against online advertising,  as the idea of profiling has. DMA was a key factor in the recent Senate ruling against protecting internet users from ISP and telco companies selling their data to anyone willing to pay for it. Thanks to this ruling, now it will be even easier for adversaries of the US to get access to in-depth profiling data and use it against the interest of its people. The DMA is led by a long time data profiling lobbyist, Linda Woolley.&lt;/p&gt;
&lt;!-- image unavailable: https://botlab.io/wp-content/uploads/2017/07/maxresdefault.jpg --&gt;
&lt;p id=&quot;p-f432cd7&quot;&gt;According to &lt;em&gt;What Stays in Vegas: The World of Personal Data – Lifeblood of Big Business – and the End of Privacy as We Know it, &lt;/em&gt;she gave a fiery speech highlighting DMA’s and her position regarding profiling[&lt;a href=&quot;https://books.google.ee/books?id=h1wXDAAAQBAJ&amp;#x26;pg=PA85&amp;#x26;dq=one+conference+highlight+is+the+DMA%27s&amp;#x26;hl=en&amp;#x26;sa=X&amp;#x26;redir_esc=y#v=onepage&amp;#x26;q=one%20conference%20highlight%20is%20the%20DMA&amp;#x27;s&amp;#x26;f=false&quot;&gt;3&lt;/a&gt;]. Below is an excerpt from the book:&lt;/p&gt;
&lt;blockquote id=&quot;p-0213ed1&quot;&gt;
&lt;p&gt;Then she potrayed a dark future in which the Federal Trade Commission and ‘privacy zealots” had gotten their wishes and persuaded Congress to bar the collection of personal consumer data without their permission. The nightmare-scenario law would bar Internet tracking and prohibit the use of public records to gain insights. “Consumers even have the right to say: ‘My marketing data is mine, and it’s private, and you can use it or sell it’” she said.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;ad-networks-go-cryptocurrency&quot;&gt;Ad Networks Go Cryptocurrency&lt;/h3&gt;
&lt;p id=&quot;p-6b31cda&quot;&gt;By now most have come across the psychotic cryptocurrency markets, and Ethereum powered ICOs (Initial Coin Offerings) where anyone able to create hype around their idea over a period of few months can cash in, in what comes down to a financial market without regulation. A typical ICO pitch may include “compelling” sales arguments such as the one below (from an actual ICO sales pitch):&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-1ee756b&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Getting profit. Selling tokens: after the ICO, you can sell the token on the market to receive immediate profit.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;From an actual ICO sales pitch, as shown in the original post&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-4e95f9e&quot;&gt;There is stark resemblance with how ICOs are being marketed, with the most lucrative internet marketing scheme of all time, the so-called &lt;em&gt;product launch formula. &lt;/em&gt;Though the ICO model is far more potent, as it’s basically selling “stocks” as opposed to a bunch of videos that allegedly tell you some latest marketing secret. Remember, we have regulation in the financial markets for a reason. Somebody that everyone in Adtech respects (and there are not many people like that) said it very well:&lt;/p&gt;
&lt;blockquote id=&quot;p-ae50bbb&quot;&gt;
&lt;p&gt;“the ICO space is like adtech on steroids”.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-9daeb20&quot;&gt;Let that sink in for a moment. Financial market, absent any kind of regulation or oversight. Let’s also not forget that as it stands, adtech is not exactly regulated either. So how about combining the two; taking the worst kind of adtech company i.e an ad network, and building an ICO around it. Seems legit.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Frontis nulla fides&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/070a1836964c701f.png&quot; alt=&quot;Meme of a sports car with two people in it, captioned “Seems legit.”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;No trust in a face.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Juvenal, Satires, II.8&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “Seems legit.”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-cf4eceb&quot;&gt;The first such combo, where we have an ad network doing an ICO, was witnessed on 26th of June (adChain/adToken). According to the PR, it went really well. The thing to understand about ICOs though is that “well” means that the company behind it ends up making a lot of money in a very short period of time, without actually having to show anything substantial for the money. Mere hype is enough to get to this point.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;sooooo-what-happens-next&quot;&gt;Sooooo, What Happens Next?&lt;/h3&gt;
&lt;p id=&quot;p-dc5a972&quot;&gt;An ad network, a surveillance capitalism lobby, an ad fraud consultant, and an ICO factory walks into a bar and they come up with an idea, which is not new in the online advertising space; let’s tell the buyers what they want to hear, package it with a lot of hyperbole and perceived complexity, so that gullible buyers are incapable of asking the right questions.&lt;/p&gt;
&lt;p id=&quot;p-4d192c6&quot;&gt;In this case, gullible buyers refer to ICO investors first, and advertisers second. Let’s first see what happened with the token after the ICO. Based on the press release[&lt;a href=&quot;http://www.prweb.com/releases/2017/06/prweb14467717.htm&quot;&gt;4&lt;/a&gt;]:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-48245e2&quot;&gt;The cap for the sale was 10 million USD&lt;/li&gt;
&lt;li id=&quot;p-1c8ca37&quot;&gt;The cap was reached in 23 seconds&lt;/li&gt;
&lt;li id=&quot;p-ab9f0dd&quot;&gt;A supply of 1,000,000,000 tokens was issued&lt;/li&gt;
&lt;li id=&quot;p-ca2488b&quot;&gt;From this 600,000,000 went into circulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-2a95f98&quot;&gt;It seems, that this results in the initial offering token price to be $10,000,000 / 600,000,000&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-f7ae49f&quot;&gt;The initial offering price per token was $0.017&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-6799c4b&quot;&gt;Using data from Bittrex Exchange[&lt;a href=&quot;https://bittrex.com/Market/Index?MarketName=BTC-ADT&quot;&gt;5&lt;/a&gt;] we know that:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-2414029&quot;&gt;The current 24 HIGH is $0.03&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-3609f99&quot;&gt;In other words, it’s almost doubled. This estimate is roughly consistent with the fact that today, the adToken market cap is $18,938,760 [&lt;a href=&quot;https://coinmarketcap.com/assets/adtoken/&quot;&gt;6&lt;/a&gt;]. Due to the facts that there are no requirements for involved parties in terms of transparency/disclosure, and that the cryptocoin/ICO space is one big hot mess, we’re making this as an inference from available information.&lt;/p&gt;
&lt;p id=&quot;p-84f93a3&quot;&gt;What we can say for sure, is that there has been wild volatility in the bid/ask prices for adToken from 2nd of July onwards since the data became available:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-7fa2b6f&quot;&gt;July 2nd = $0.06&lt;/li&gt;
&lt;li id=&quot;p-cb8fe72&quot;&gt;July 4th = $0.12 (+100%)&lt;/li&gt;
&lt;li id=&quot;p-b70f269&quot;&gt;July 8th = $0.03 (- 75%)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-d2a5789&quot;&gt;After that, it had stayed more or less similar to the $0.03 mark established on 8th of July. What is this based on? Did the company release some key information regarding its ability to deliver on its promise? No. Did they make an acquisition of some sort? No. Did they announce key hires? No. Actually, nothing happened. All of this is pure speculation. The below graph from Bittrex, the exchange trading ADT (adToken) gives a picture of the kind of volatility we’re talking about. The plot starts on 3rd of July 2017 and ends on 24th of July 2017.&lt;/p&gt;
&lt;p id=&quot;p-7b9bd3f&quot;&gt;What is this volatility based on? Did the company release some key information regarding its ability to deliver on its promise? No. Did they make an acquisition of some sort? No. Did they announce key hires? No. Actually, nothing such happened. All of this is a result of pure speculation. The below graph from Bittrex, the exchange trading ADT (adToken) gives a picture of the kind of volatility we’re talking about. The plot starts on 3rd of July 2017 and ends on 24th of July 2017. We’re talking about volatility in powers, not %.&lt;/p&gt;
&lt;figure class=&quot;fig candles&quot; data-fig=&quot;candles&quot; aria-label=&quot;Price chart of the adToken against bitcoin: a spike at launch, then collapse&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;A spike on the first candle, then a collapse to almost nothing. Point at a candle for its range, or come close up.&lt;/p&gt;&lt;div class=&quot;fig-views&quot; role=&quot;group&quot; aria-label=&quot;Scale&quot; data-controls=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; data-view=&quot;0&quot; aria-pressed=&quot;true&quot;&gt;Whole scale&lt;/button&gt;&lt;button type=&quot;button&quot; data-view=&quot;1&quot; aria-pressed=&quot;false&quot;&gt;Close up&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 290&quot; role=&quot;img&quot; aria-label=&quot;Price chart of the adToken against bitcoin: a spike at launch, then collapse&quot;&gt;&lt;g class=&quot;scale whole&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;260.0&quot; y2=&quot;260.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;68&quot; y=&quot;264.0&quot; text-anchor=&quot;end&quot;&gt;0.00000&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;191.2&quot; y2=&quot;191.2&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;68&quot; y=&quot;195.2&quot; text-anchor=&quot;end&quot;&gt;0.00050&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;122.4&quot; y2=&quot;122.4&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;68&quot; y=&quot;126.4&quot; text-anchor=&quot;end&quot;&gt;0.00100&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;53.5&quot; y2=&quot;53.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;68&quot; y=&quot;57.5&quot; text-anchor=&quot;end&quot;&gt;0.00150&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;260&quot; y2=&quot;260&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;76&quot; y=&quot;16&quot;&gt;bitcoin for one adToken&lt;/text&gt;&lt;rect class=&quot;volume&quot; x=&quot;77.3&quot; y=&quot;221.8&quot; width=&quot;23.1&quot; height=&quot;38.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;88.8&quot; x2=&quot;88.8&quot; y1=&quot;257.6&quot; y2=&quot;35.8&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;80.9&quot; y=&quot;84.7&quot; width=&quot;15.9&quot; height=&quot;168.7&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;102.9&quot; y=&quot;161.7&quot; width=&quot;23.1&quot; height=&quot;98.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;114.5&quot; x2=&quot;114.5&quot; y1=&quot;253.8&quot; y2=&quot;253.8&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;106.5&quot; y=&quot;253.8&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;128.6&quot; y=&quot;220.3&quot; width=&quot;23.1&quot; height=&quot;39.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;140.1&quot; x2=&quot;140.1&quot; y1=&quot;255.5&quot; y2=&quot;255.5&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;132.2&quot; y=&quot;255.5&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;154.2&quot; y=&quot;209.5&quot; width=&quot;23.1&quot; height=&quot;50.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;165.8&quot; x2=&quot;165.8&quot; y1=&quot;256.4&quot; y2=&quot;256.4&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;157.8&quot; y=&quot;256.4&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;179.9&quot; y=&quot;226.4&quot; width=&quot;23.1&quot; height=&quot;33.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;191.4&quot; x2=&quot;191.4&quot; y1=&quot;257.2&quot; y2=&quot;257.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;183.5&quot; y=&quot;257.2&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;205.5&quot; y=&quot;252.6&quot; width=&quot;23.1&quot; height=&quot;7.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;217.1&quot; x2=&quot;217.1&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;209.1&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;231.2&quot; y=&quot;252.6&quot; width=&quot;23.1&quot; height=&quot;7.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;242.7&quot; x2=&quot;242.7&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;234.8&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;256.8&quot; y=&quot;187.9&quot; width=&quot;23.1&quot; height=&quot;72.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;268.4&quot; x2=&quot;268.4&quot; y1=&quot;257.2&quot; y2=&quot;257.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;260.4&quot; y=&quot;257.2&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;282.5&quot; y=&quot;248.0&quot; width=&quot;23.1&quot; height=&quot;12.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;294.0&quot; x2=&quot;294.0&quot; y1=&quot;257.2&quot; y2=&quot;257.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;286.1&quot; y=&quot;257.2&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;308.2&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;319.7&quot; x2=&quot;319.7&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;311.7&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;333.8&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;345.3&quot; x2=&quot;345.3&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;337.4&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;359.5&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;371.0&quot; x2=&quot;371.0&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;363.0&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;385.1&quot; y=&quot;252.6&quot; width=&quot;23.1&quot; height=&quot;7.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;396.7&quot; x2=&quot;396.7&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;388.7&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;410.8&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;422.3&quot; x2=&quot;422.3&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;414.4&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;436.4&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;448.0&quot; x2=&quot;448.0&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;440.0&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;462.1&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;473.6&quot; x2=&quot;473.6&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;465.7&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;487.7&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;499.3&quot; x2=&quot;499.3&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;491.3&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;513.4&quot; y=&quot;257.2&quot; width=&quot;23.1&quot; height=&quot;2.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;524.9&quot; x2=&quot;524.9&quot; y1=&quot;257.2&quot; y2=&quot;257.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;517.0&quot; y=&quot;257.2&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;539.0&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;550.6&quot; x2=&quot;550.6&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;542.6&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;564.7&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;576.2&quot; x2=&quot;576.2&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;568.3&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;590.3&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;601.9&quot; x2=&quot;601.9&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;593.9&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;616.0&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;627.5&quot; x2=&quot;627.5&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;619.6&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;641.6&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;653.2&quot; x2=&quot;653.2&quot; y1=&quot;258.1&quot; y2=&quot;258.1&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;645.2&quot; y=&quot;258.1&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;scale close&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;260.0&quot; y2=&quot;260.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;68&quot; y=&quot;264.0&quot; text-anchor=&quot;end&quot;&gt;0.00000&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;182.0&quot; y2=&quot;182.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;68&quot; y=&quot;186.0&quot; text-anchor=&quot;end&quot;&gt;0.00002&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;104.0&quot; y2=&quot;104.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;68&quot; y=&quot;108.0&quot; text-anchor=&quot;end&quot;&gt;0.00004&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;26.0&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;68&quot; y=&quot;30.0&quot; text-anchor=&quot;end&quot;&gt;0.00006&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;76&quot; x2=&quot;666&quot; y1=&quot;260&quot; y2=&quot;260&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;76&quot; y=&quot;16&quot;&gt;bitcoin for one adToken&lt;/text&gt;&lt;rect class=&quot;volume&quot; x=&quot;77.3&quot; y=&quot;221.8&quot; width=&quot;23.1&quot; height=&quot;38.2&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;88.8&quot; x2=&quot;88.8&quot; y1=&quot;192.9&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;80.9&quot; y=&quot;26.0&quot; width=&quot;15.9&quot; height=&quot;47.6&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;102.9&quot; y=&quot;161.7&quot; width=&quot;23.1&quot; height=&quot;98.3&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;114.5&quot; x2=&quot;114.5&quot; y1=&quot;85.7&quot; y2=&quot;85.7&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;106.5&quot; y=&quot;85.7&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;128.6&quot; y=&quot;220.3&quot; width=&quot;23.1&quot; height=&quot;39.7&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;140.1&quot; x2=&quot;140.1&quot; y1=&quot;133.3&quot; y2=&quot;133.3&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;132.2&quot; y=&quot;133.3&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;154.2&quot; y=&quot;209.5&quot; width=&quot;23.1&quot; height=&quot;50.5&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;165.8&quot; x2=&quot;165.8&quot; y1=&quot;157.0&quot; y2=&quot;157.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;157.8&quot; y=&quot;157.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;179.9&quot; y=&quot;226.4&quot; width=&quot;23.1&quot; height=&quot;33.6&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;191.4&quot; x2=&quot;191.4&quot; y1=&quot;181.2&quot; y2=&quot;181.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;183.5&quot; y=&quot;181.2&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;205.5&quot; y=&quot;252.6&quot; width=&quot;23.1&quot; height=&quot;7.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;217.1&quot; x2=&quot;217.1&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;209.1&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;231.2&quot; y=&quot;252.6&quot; width=&quot;23.1&quot; height=&quot;7.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;242.7&quot; x2=&quot;242.7&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;234.8&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;256.8&quot; y=&quot;187.9&quot; width=&quot;23.1&quot; height=&quot;72.1&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;268.4&quot; x2=&quot;268.4&quot; y1=&quot;181.2&quot; y2=&quot;181.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;260.4&quot; y=&quot;181.2&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;282.5&quot; y=&quot;248.0&quot; width=&quot;23.1&quot; height=&quot;12.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;294.0&quot; x2=&quot;294.0&quot; y1=&quot;181.2&quot; y2=&quot;181.2&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;286.1&quot; y=&quot;181.2&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;308.2&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;319.7&quot; x2=&quot;319.7&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;311.7&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;333.8&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;345.3&quot; x2=&quot;345.3&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;337.4&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;359.5&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;371.0&quot; x2=&quot;371.0&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;363.0&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;385.1&quot; y=&quot;252.6&quot; width=&quot;23.1&quot; height=&quot;7.4&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;396.7&quot; x2=&quot;396.7&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;388.7&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;410.8&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;422.3&quot; x2=&quot;422.3&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;414.4&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;436.4&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;448.0&quot; x2=&quot;448.0&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;440.0&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;462.1&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;473.6&quot; x2=&quot;473.6&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;465.7&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;487.7&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;499.3&quot; x2=&quot;499.3&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;491.3&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;513.4&quot; y=&quot;257.2&quot; width=&quot;23.1&quot; height=&quot;2.8&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;524.9&quot; x2=&quot;524.9&quot; y1=&quot;180.8&quot; y2=&quot;180.8&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;517.0&quot; y=&quot;180.8&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;539.0&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;550.6&quot; x2=&quot;550.6&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;542.6&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;564.7&quot; y=&quot;254.1&quot; width=&quot;23.1&quot; height=&quot;5.9&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;576.2&quot; x2=&quot;576.2&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;568.3&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;590.3&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;601.9&quot; x2=&quot;601.9&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;593.9&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;616.0&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;627.5&quot; x2=&quot;627.5&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;619.6&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;volume&quot; x=&quot;641.6&quot; y=&quot;260.0&quot; width=&quot;23.1&quot; height=&quot;0.0&quot;&gt;&lt;/rect&gt;&lt;line class=&quot;wick&quot; x1=&quot;653.2&quot; x2=&quot;653.2&quot; y1=&quot;205.0&quot; y2=&quot;205.0&quot;&gt;&lt;/line&gt;&lt;rect class=&quot;body&quot; x=&quot;645.2&quot; y=&quot;205.0&quot; width=&quot;15.9&quot; height=&quot;1.5&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;rect class=&quot;hit&quot; x=&quot;76.0&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;The first candle: from about 0.00005 to 0.00127 BTC, as high as 0.00163&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;101.7&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 2: about 0.000045 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;127.3&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 3: about 0.000032 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;153.0&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 4: about 0.000026 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;178.6&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 5: about 0.000020 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;204.3&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 6: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;229.9&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 7: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;255.6&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 8: about 0.000020 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;281.2&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 9: about 0.000020 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;306.9&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 10: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;332.5&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 11: about 0.000014 BTC; partly behind the original’s buttons&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;358.2&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 12: about 0.000014 BTC; partly behind the original’s buttons&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;383.8&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 13: about 0.000014 BTC; partly behind the original’s buttons&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;409.5&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 14: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;435.1&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 15: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;460.8&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 16: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;486.4&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 17: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;512.1&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 18: about 0.000020 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;537.7&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 19: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;563.4&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 20: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;589.0&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 21: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;614.7&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 22: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;hit&quot; x=&quot;640.3&quot; y=&quot;26&quot; width=&quot;25.7&quot; height=&quot;234&quot; data-says=&quot;Candle 23: about 0.000014 BTC&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;figcaption&gt;adToken’s price in bitcoin, a candle at a time, with the volume traded behind it, read from the original chart, which gives no dates. After the first, each candle is a dash a pixel or two thick in the original: one price, read as about.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;how-to-do-an-ad-network-ico-and-a-warning-to-media-investors&quot;&gt;How to Do an Ad Network Ico and a Warning to Media Investors&lt;/h3&gt;
&lt;p id=&quot;p-c51cdcf&quot;&gt;Going forward, we will see countless companies whose business model is actually not the pitch they make to advertisers and their media investment partners, but their business model is making money in the ICO/Cryptocoin market. Some of these companies will come outside of adtech, but most will come from the ad network space. They will team up with a company such as ConsenSys, who helps them with the blockchain and Cryptocoin part, they do a white paper that outlines some novel idea that allegedly solves some big problem, partner with Cryptocoin media outlets, setup slack channels and Reddit subreddits, have a medium blog, pays a PR firm, and does a bunch of other stuff to build hype around their ICO. They rely on the idea that online advertising, with its hundreds of billions of spend and a plethora of doom and gloom statements coming from big advertisers to tap in to, is at the same time appealing and impossible to understand for the ICO/Blockchain crowd. Then they take the result of all that hype i.e. their “ICO success”, and do the reverse; rely on the fact that advertisers and their partners do not understand the ICO/Blockchain space.&lt;/p&gt;
&lt;p id=&quot;p-b5daaa1&quot;&gt;Immediately after the ICO, they pocket the money (Ethereum), and the speculation kicks in. The company holds a significant part of the tokens and simply watches how ICO sharks manipulate its token. Sometimes this will work, and sometimes it will not. What this means for advertisers, is that that there will be a completely new kind of scam to watch out for, one where the original intention is to make money from the crypto coin market, and not from the online advertising market. Another variation is where initially there is an intention to solve a problem for advertisers, but due to the way the ICO/crypto market operates, the operation instead is bogged down with managing various issues that come with token based models. For example, having just a few parties control most of your tokens. In the case of adToken, just 233 token holders [&lt;a href=&quot;https://etherscan.io/token/AdToken&quot;&gt;6&lt;/a&gt;] own adTokens. Yes, some of those token holders represent more than one entity, for example, if it’s an exchange, but also some individual entities represent more than one token holder (i.e. one entity has many addresses under which they hold the tokens). In contrast to adToken’s 233 holders, &lt;em&gt;Basic Attention Token&lt;/em&gt; (BAT) is owned by 7,413 token holders (over 30 times more).&lt;/p&gt;
&lt;p id=&quot;p-d16f1f1&quot;&gt;Even if the company in question was never able to deliver on its original promise, it would not matter much, as it would be hard or impossible to validate by the online advertising industry. An industry that has proven incredibly incompetent in doing just that, validate and make sense of vendor claims. Still today almost nobody seriously questions “fraud free guarantees” or other similar gimmicks, where the advertiser is led by the nose into a false sense of security while the industry burns in flames. Indeed, the “this is fine dog” have quickly become a favored mascot for the online industry among those that understand its problems better.&lt;/p&gt;
&lt;figure class=&quot;fig plate wide&quot; data-fig=&quot;plate&quot; data-intro=&quot;Two promises the trade makes to advertisers, kept in a room on fire. Choose a mark, or walk through them.&quot; style=&quot;--natural:580px&quot;&gt;&lt;div class=&quot;plate-head&quot;&gt;&lt;span class=&quot;plate-number&quot;&gt;Plate I&lt;/span&gt;&lt;span class=&quot;plate-title&quot;&gt;Brand safety&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;plate-notes&quot; aria-pressed=&quot;true&quot; hidden&gt;Notes&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;plate-view&quot;&gt;&lt;div class=&quot;plate-zoom&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/wtf-is-adtoken-a-primer-to-ad-network-2-0-schemes/5.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;The “This is fine” cartoon: a dog with a coffee in a burning room&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;span class=&quot;plate-mark&quot; style=&quot;left:5.0%;top:60.0%;--i:0&quot; data-mark=&quot;1&quot; aria-hidden=&quot;true&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;plate-mark&quot; style=&quot;left:71.0%;top:62.0%;--i:1&quot; data-mark=&quot;2&quot; aria-hidden=&quot;true&quot;&gt;ii&lt;/span&gt;&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;plate-whole&quot; hidden&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;circle cx=&quot;8.5&quot; cy=&quot;8.5&quot; r=&quot;5.75&quot;&gt;&lt;/circle&gt;&lt;path d=&quot;M5.75 8.5h5.5M12.7 12.7l4.8 4.8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Whole picture&lt;/button&gt;&lt;/div&gt;&lt;ol class=&quot;plate-key&quot;&gt;&lt;li data-note=&quot;1&quot;&gt;&lt;span class=&quot;plate-numeral&quot; aria-hidden=&quot;true&quot;&gt;i&lt;/span&gt;&lt;span&gt;&lt;dfn&gt;Fraud-free.&lt;/dfn&gt; What the token promised advertisers. It took minutes to find ways in.&lt;/span&gt;&lt;/li&gt;&lt;li data-note=&quot;2&quot;&gt;&lt;span class=&quot;plate-numeral&quot; aria-hidden=&quot;true&quot;&gt;ii&lt;/span&gt;&lt;span&gt;&lt;dfn&gt;Brand safety.&lt;/dfn&gt; Keeping a brand clear of anything that might alarm it.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;plate-steps&quot; hidden&gt;&lt;button type=&quot;button&quot; data-step=&quot;-1&quot; aria-label=&quot;Previous note&quot;&gt;←&lt;/button&gt;&lt;span class=&quot;plate-at&quot;&gt;&lt;/span&gt;&lt;button type=&quot;button&quot; data-step=&quot;1&quot; aria-label=&quot;Next note&quot;&gt;→&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-5e3a60a&quot;&gt;Instead of seeking actual solutions to problems, particularly below director level operators in both advertisers and agencies, individuals look for convenient ways to not have to talk about the actual problems. This is exactly the kind of psychology that will help the Ad Network 2.0 models thrive.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;arbitraging-arbitrage&quot;&gt;Arbitraging Arbitrage&lt;/h3&gt;
&lt;p id=&quot;p-8abc7ad&quot;&gt;Whereas the original ad network model came to be more about arbitrage than anything else, the new model will not change or even promise to change in that respect. Instead, it will attempt to hide the corrupt underlying model by mixing it with hyperbole, in form of blockchain/cryptocurrency, combined with whatever might be the hottest topic in the minds of advertisers and agencies at the moment. Given that media investors have a poor understanding of issues such as fraud, and almost no understanding of blockchain, but have a strong emotional response to both, such a scheme creates a very potent mix for a new breed of online advertising snake oil peddlers. As we had highlighted in the above sections, this time there is a new element, financial speculators whose sole interest is to buy and sell tokens in order to maximize their own profits. In a sense, the ad network 2.0 model is going to be about arbitraging arbitrage more than anything else.&lt;/p&gt;</content></entry><entry><title>Data as Cost — Big Cakes are Nice if you Like Cake</title><link href="https://mikkokotila.com/writing/data-as-cost-big-cakes-are-nice-if-you-like-cake/"/><id>https://mikkokotila.com/writing/data-as-cost-big-cakes-are-nice-if-you-like-cake/</id><published>2017-07-24T00:00:00Z</published><updated>2017-07-24T00:00:00Z</updated><category term="data-science"/><summary>If data is cost, and algos are a commodity, what is it that we should value in the coming age of automated decision making?</summary><content type="html">&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Ne quid nimis&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/aa209067deb3c8fe.png&quot; alt=&quot;A rainbow-layered cake&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;Nothing in excess.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Terence, The Girl from Andros, after the oracle at Delphi&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The picture&lt;/b&gt; a rainbow-layered cake, as the fable begins&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-84de853&quot; class=&quot;opening&quot;&gt;Once upon a time, in a land of rainbow-colored sponge cakes with bubbles, Big-IT companies realized they had a problem; their customers were becoming increasingly reluctant to keep pumping money into the IT stuffs they were peddling. Simply put, FORTUNE500 companies were no longer responding to words such as “infrastructure” or “integration”. In one part, they had already spent way too much money on both, on the other, they had probably started to realize that both ideas were rooted in the benefit of the IT-companies as opposed to their own interests. So the IT-companies did what a respectable purveyor of stuffs do — they sent an urgent message to their friends &lt;span class=&quot;nowrap&quot;&gt;the Big-Consultancy.&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Fere libenter homines id quod volunt credunt&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/193cdbcfd046d1f2.png&quot; alt=&quot;A note asking for Kool-Aid&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;People generally believe what they want to believe.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Julius Caesar, The Gallic War, III.18&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “Dear, we need Kool-Aid, please!”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-36d1995&quot;&gt;Being master brewers, the Big-Consultancy came up with the perfect mix of emotion and logic, something so irresistible that it would light the world on fire. Not only it would make it seem like all the mindless past spending on IT stuffs was meaningful, but it would justify even wilder spending going forward. In fact, it would make perpetually growing spending seem not only like a good idea, but a necessity.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Mundus vult decipi&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/8ac88cc311d6109c.png&quot; alt=&quot;An animated advertising mascot&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;The world wants to be deceived.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Sebastian Franck, in his Paradoxa&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The picture&lt;/b&gt; the Kool-Aid mascot’s grin&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-1d973b4&quot;&gt;Indeed, if such a thing of marvel as a perpetual kool-aid brewing machine was possible, the Big-Consultancy was sure this must be it. They decided to call it “Big Data.” Big-IT was over the moon for this new marvelous contraption.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;what-the-big-data-kool-aid-package-labeling-forgot-to-mention&quot;&gt;What the (Big Data Kool-aid) Package Labeling Forgot to Mention&lt;/h3&gt;
&lt;p id=&quot;p-2a92044&quot;&gt;The basic idea of Big Data has its roots in a world where data was scarce. In which light the proposition of “big” data seems to make sense; if you have a lot of something that is scarce, you will have some kind of competitive advantage as a result.&lt;/p&gt;
&lt;p id=&quot;p-ca94331&quot;&gt;The other idea at the heart of “Big Data”, is the just-in-case mentality. An idea, which more developed industries such as car manufacturing, clothing, and paper industry had already proven to be detrimental to business. In the case of car manufacturing, the moment car sales started to slow down, Toyota invented the just-in-time manufacturing principle. Today most goods are produced just-in-time as opposed to just-in-case.&lt;/p&gt;
&lt;p id=&quot;p-a70370c&quot;&gt;When it comes to data, the difference in ‘just-in-case’ vs. ‘just-enough’ (same as just-in-time for physical goods) is staggering.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-7669980&quot;&gt;Store data for one second instead of one day = &lt;strong&gt;86,400x performance gain&lt;/strong&gt;&lt;/li&gt;
&lt;li id=&quot;p-2ed0d48&quot;&gt;Store data for one second instead of one year = &lt;strong&gt;31,536,000x performance gain&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-05b3ac0&quot;&gt;It’s quite typical that in analytics platforms, data is stored for a year or more. Mostly for the purpose of having it available just-in-case for displaying vanity metrics or for some other mundane purpose.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;data-as-cost&quot;&gt;Data as Cost&lt;/h3&gt;
&lt;p id=&quot;p-b0694be&quot;&gt;Actually, data in itself is nothing but cost. Unless you do something to extract value out of it and make it worth something, data is nothing but an expense. In order to prove this, we can perform a simple experiment:&lt;/p&gt;
&lt;p id=&quot;p-b94e894&quot;&gt;&lt;strong&gt;Set up an organization, take up an AWS instance and put some data on it and let it be without doing anything to it&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-962d181&quot;&gt;The &lt;strong&gt;first thing&lt;/strong&gt; you will find is that you will accumulate costs without generating any value.&lt;/p&gt;
&lt;p id=&quot;p-712fdb1&quot;&gt;The &lt;strong&gt;second thing&lt;/strong&gt; you will find is that if you go and try to sell what you have set up to someone, as is, nobody will buy it.&lt;/p&gt;
&lt;p id=&quot;p-4bdeefb&quot;&gt;The &lt;strong&gt;third thing&lt;/strong&gt; you will find is that if you try to convince the IRS that what you have in your setup is an asset, they will not see it like that.&lt;/p&gt;
&lt;p id=&quot;p-d40ac9d&quot;&gt;The second and third points show how having data is starkly different from having oil or minerals in the ground.&lt;/p&gt;
&lt;p id=&quot;p-ef553fd&quot;&gt;The third point is slightly different for an individual who is not required to adhere to what is referred to as the &lt;em&gt;double-entry bookkeeping&lt;/em&gt; method. For organizations, first, we have to consider that there are things that are considered negatives, and things that are considered positives. For negatives, there are two kinds; operational expenses (OPEX) and capital expenses (CAPEX). Capital expenses are generally preferred for the fact that they are not “just” expense, but are investments that create assets on the other side of the books (in the positives).&lt;/p&gt;
&lt;p id=&quot;p-cea6d7d&quot;&gt;The setup in our experiment will be considered an OPEX. It is the money going out, without leaving any value behind. At least that is how it plays out in accounting.&lt;/p&gt;
&lt;p id=&quot;p-fbe7ddc&quot;&gt;The most pertinent of all the catchphrases that came with this new kool-aid, one we’ve all heard to the death, is that data is the new oil. Well, it’s not.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot; id=&quot;p-13b7b37&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:2.6667&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/data-as-cost-big-cakes-are-nice-if-you-like-cake/5da7ef8be9f5-3.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;A data-science marketing image&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;An actual McKinsey marketing image&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-f59b672&quot;&gt;Let’s go back to our experiment, and now imagine a scenario where you have a piece of land, and somehow can prove there is oil deposited there. The land you are buying is a capital investment, and it goes into the CAPEX side of your books. That means it is treated as an asset on the positive side of your books. As long as there is as much as a whiff of oil, you’ll have offers coming in to buy the land off you as fast you can turn them down. Even the IRS will not debate this.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot; id=&quot;p-f5659c3&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:638px;--shot-ratio:1.5990&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/data-as-cost-big-cakes-are-nice-if-you-like-cake/5da7ef8be9f5-4.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;The slogan Data is the new oil&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;The slogan Data is the new oil&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-aa659c2&quot;&gt;&lt;strong&gt;No, it’s not.&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-4defc55&quot;&gt;There is a more recent version, which says that data is the new oil, but it needs to be refined first. Well, then it’s clearly not oil in terms of value, because oil does not need to be refined to have value. It just has more value when it’s already refined. Whereas data is just cost when it’s not refined, and can not be considered an asset.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot; id=&quot;p-33ae413&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:728px;--shot-ratio:1.3333&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/data-as-cost-big-cakes-are-nice-if-you-like-cake/5da7ef8be9f5-5.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;A marketing slide comparing data refinement with oil&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;A marketing slide comparing data refinement with oil&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-ccd8dc6&quot;&gt;&lt;strong&gt;No again.&lt;/strong&gt; Also, note the slide; a leading PR firm quoting a notable hype firm.&lt;/p&gt;
&lt;p id=&quot;p-64dafda&quot;&gt;Back in the snake oil times of the late 19th century before Edward Bernays introduced propaganda to the US, the equal of this would have been a snake oil seller quoting another snake oil seller. Perhaps, in the not so distant future, we will look back to this era and its communication (regarding Big Data) in similar amusement as we look back to the snake oil years now.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Caveat emptor&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/98f73d657c32d25a.png&quot; alt=&quot;A satirical image about the data-as-oil metaphor&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;Let the buyer beware.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;the old rule of the market&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “I don’t know how to put this, but, these oils are kind of a big deal.”&lt;/p&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;an-age-of-automated-decision-making&quot;&gt;An Age of Automated Decision Making&lt;/h3&gt;
&lt;p id=&quot;p-1cc5cbc&quot;&gt;Some people like to freak out about machine intelligence. But actually, history shows that we should not be afraid of automation. Take for example building the pyramids, a lot of people died doing it. There had to be a lot of slaves for the whole project to make sense in the first place. In Dubai, they built a building almost one kilometer high, and not that many people died building it. Some of the most iconic constructions of today are built without anybody dying. Also, instead of slaves, migrant workers from very poor countries earn a living that feeds multiple generations of their family in the country of their origin.&lt;/p&gt;
&lt;p id=&quot;p-40f3d49&quot;&gt;Over the past 500 years or so, automation has developed in an easy to understand way:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-9b58bc9&quot;&gt;the steam engine automated power generation&lt;/li&gt;
&lt;li id=&quot;p-fa53fe9&quot;&gt;production lines automated mechanical labor&lt;/li&gt;
&lt;li id=&quot;p-227bd93&quot;&gt;the computer-automated data processing&lt;/li&gt;
&lt;li id=&quot;p-828c154&quot;&gt;communications technologies automated access to information&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-8f67bf6&quot;&gt;Next, machine intelligence will automate access to decisions. This is potentially great news, as we humans are not wired for making decisions.&lt;/p&gt;
&lt;p id=&quot;p-b43d5d2&quot;&gt;Read more about the &lt;a href=&quot;https://mikkokotila.com/writing/thou-shalt-not-fear-automatons/&quot;&gt;problem of human decision making&lt;/a&gt; in &lt;em&gt;Thou Shalt Not Fear Automatons.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-610ff7f&quot;&gt;As a result, as is the case in each of the previous major developments in the automation “tech tree”, human capital will become more available for making contributions that only humans can make. Contributions we can’t even imagine yet. For example, we might finally be able to put our attention and our incredible ability in pattern detection and pattern making, into solving the mother of problems. Problem-solving itself.&lt;/p&gt;
&lt;p id=&quot;p-5a33205&quot;&gt;I have written about this in &lt;a href=&quot;http://autonom.io/solving-problem-problem-solving/&quot;&gt;&lt;em&gt;Solving the Problem of Problem Solving&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-9908e91&quot;&gt;Human ingenuity will be as valuable, no, more valuable, as before. In this regard, it is essential that JCR Licklider’s seminal work on &lt;a href=&quot;https://groups.csail.mit.edu/medg/people/psz/Licklider.html&quot;&gt;&lt;em&gt;Man-Computer Symbiosis&lt;/em&gt;&lt;/a&gt;gets more attention, and that researchers consider his vision in the modern-day context. What we call today “data scientist”, is the kind of individual that has the potential for creating a symbiotic relationship with computers. Amidst all the hype surrounding the topic, to avoid doubt in respect to what “data science” actually is, in the I-COM Data Science Board that I chaired for some years, we came up with the following description for data science:&lt;/p&gt;
&lt;blockquote id=&quot;p-a6462b6&quot;&gt;
&lt;p&gt;Data Science involves the theoretical and practical approach to extracting value, which is knowledge and insights, from data.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-80e2c4a&quot;&gt;The practice of data science can be broken down into four components; the data, the algorithms that are used for processing it, the systems where the data is stored and the people who operate those systems. In another way, the breakdown is into two; data, algorithms, and storage are &lt;em&gt;computer&lt;/em&gt;, and people are &lt;em&gt;man&lt;/em&gt;. The key point is the symbiosis of the two.&lt;/p&gt;
&lt;p id=&quot;p-8f1111d&quot;&gt;Actually, the idea of computer-man symbiosis was showcased for the first time in a significant way soon 80 years ago, by no other than Alan Turing. In fact, he was the first true modern-day data scientists we can readily name. This is due to the process in which Mr. Turing had developed a theory based on patterns, and then developed an instrument around his theory using computer technology. Working symbiotically with his device, he could do what others could not. He cracked the Nazi code, in some part helping the UK win its war against Hitler.&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-415e3ed&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Sometimes it’s the people no one imagines anything of who do the things that no one can imagine.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;the film &lt;em&gt;The Imitation Game&lt;/em&gt; (2014), written by Graham Moore; often given as Alan Turing’s own words&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-744dcc7&quot;&gt;The essential point here is to understand the significance of humans. To understand that the more technology evolves, the more significance of humans will be highlighted. The less human capital is bogged down in grunt work, the more it can thrive. In this light, it is very important to understand that any piece of technology that is widely available with a low barrier of entry, is a commodity. Actually, the most advanced deep learning platforms of today — Keras, Tensorflow, and Pytorch — will seem as impressive to people in the not so distant future, as a piece of rock seems to us today.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;big-cake-is-nice-only-if-you-like-cake&quot;&gt;Big Cake is Nice Only if You Like Cake&lt;/h3&gt;
&lt;p id=&quot;p-de50f7d&quot;&gt;Because unadulterated data is nothing but cost, then it seems accurate to say that “data”, actually is a problem. This means “big data” is a “big problem”. The fact that there is so much data is not an opportunity, it is an obstacle.&lt;/p&gt;
&lt;p id=&quot;p-18f9522&quot;&gt;To deal with the obstacle, we have commodity tools in form of algorithms and libraries that make managing algorithms and data more straightforward. To use a comparison with building, if data are the nails, then algos are the hammer, and the various management tools are the toolbox. Even if there is a robot of some sort that hits the nails, there is a human who designs the robot. If there is a deep learning system that designs the robot, there is a human who designs a deep learning system. If there is some sort of advanced machine intelligence that designs the deep learning system, then there is a human that designs that…ad infinitum.&lt;/p&gt;
&lt;p id=&quot;p-0911bcc&quot;&gt;This seems to be the essential point of automation; as much as we humans came from the earth and can’t escape that, the machine came from us human and can’t escape us. This way, the true value never shifts away from human ingenuity, it just gets channeled in ever subtler ways. This is great news for us humans as we are incredibly subtle beings. Further, it’s not just the question of humans doing design work, but also operations. Somewhere, high enough in the automation construct, there is always a human pulling some sort of a lever. Again, it is just a question of subtlety. We’ve already come a far way from the grossness of the lever pulling back in the pyramid building time.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Sic vos non vobis&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/ef14a94c50b4f594.png&quot; alt=&quot;A cartoon scene of coordinated labour&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;So you labour, but not for yourselves.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;attributed to Virgil&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The picture&lt;/b&gt; the builders of a pyramid, at their labour&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-c4ad029&quot;&gt;Fundamentally “science” refers to the human ability for pattern detection, structuring ideas based on it, and articulating those ideas to others. Once you add “science” to data, it stops being an obstacle and becomes an opportunity. Broadly speaking, Data Science is the opportunity associated with data.&lt;/p&gt;
&lt;p id=&quot;p-eed5ce9&quot;&gt;It has to be better understood, that it is not in data we should invest in, as much as we should invest in data science. Meaning that we should invest in people more than anything. Most importantly, we must invest in completely changing the early education system. Particularly our math education. As Paul Lockhart put it so eloquently:&lt;/p&gt;
&lt;blockquote id=&quot;p-6d1748a&quot;&gt;
&lt;p&gt;&lt;em&gt;“If I had to design a mechanism for the express purpose of destroying a child’s natural curiosity and love of pattern-making, I simply wouldn’t have the imagination to come up with the kind of senseless, soul-crushing ideas that constitute contemporary mathematics education.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;the-proof-is-in-the-pudding-they-say&quot;&gt;The Proof is in the Pudding They Say&lt;/h3&gt;
&lt;p id=&quot;p-ba4c35e&quot;&gt;Let’s close off by bringing everything down to a very simple line of reasoning.&lt;/p&gt;
&lt;p id=&quot;p-61166f3&quot;&gt;When you are making investments in data, and none in data science, you have no value at all.&lt;/p&gt;
&lt;p id=&quot;p-7cb842c&quot;&gt;Even if you weren’t making any investment in data, you could still invest in science and create theories, and find value.&lt;/p&gt;
&lt;p id=&quot;p-fd3383b&quot;&gt;Similarly, we can prove data as a problem or cost. When you have no data, you have no cost.&lt;/p&gt;
&lt;p id=&quot;p-4b0e88a&quot;&gt;When you have data but no data science, you have just cost.&lt;/p&gt;
&lt;p id=&quot;p-dcb86d8&quot;&gt;If we all agree that technology and algos are (or will soon be) commodities, this clearly shows that data science is the value, because with it in the equation we can negate data’s problematic cost generating nature. and turn data into value.&lt;/p&gt;
&lt;p id=&quot;p-6e9fd8f&quot;&gt;In this light, it seems fair to suggest that the data scientist is to the &lt;em&gt;decision age&lt;/em&gt; what the engineer was for the industrial age or the programmer for the information age.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;thank-you-so-very-much-for-taking-the-time-to-make-it-this-far--im-happy-we-can-share-this-information-together&quot;&gt;Thank you so very much for taking the time to make it this far :) I’m happy we can share this information together.&lt;/h3&gt;
&lt;p id=&quot;p-9f3fc28&quot;&gt;You might also like my commentary on data visualization:&lt;/p&gt;
&lt;p id=&quot;p-2f54b9d&quot;&gt;&lt;a href=&quot;https://medium.com/@mikkokotila/five-essential-points-on-data-visualization-2856b80730b3&quot;&gt;Five Essential Points on Data Visualization&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-1a8a9e2&quot;&gt;…or &lt;a href=&quot;http://www.creative-sparq.com/science-technology?category=Science&quot;&gt;&lt;em&gt;Decoding Intelligence&lt;/em&gt;&lt;/a&gt;an interview I did recently covering the topic of creativity and machine intelligence.&lt;/p&gt;
&lt;p id=&quot;p-fb8c4c1&quot;&gt;Finally, a 5-minute video on &lt;em&gt;Secret History of Data Science,&lt;/em&gt; my last (and final) public talk on covering the topic of data and technology.&lt;/p&gt;
&lt;p id=&quot;p-ef657f0&quot;&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=RDhSGC6f7i0&quot;&gt;I-COM Global Summit 2015: Application of Data Sience in a Real World&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>Internet on Ad Fraud – Prelude</title><link href="https://mikkokotila.com/writing/internet-on-ad-fraud-prelude/"/><id>https://mikkokotila.com/writing/internet-on-ad-fraud-prelude/</id><published>2017-07-20T00:00:00Z</published><updated>2017-07-20T00:00:00Z</updated><category term="ad-fraud"/><summary>TL;DR We conducted a scan of 50,000 websites, where we picked the sites based on how much ad inventory the site is making available in ad exchanges.</summary><content type="html">&lt;p id=&quot;p-5ff57f4&quot;&gt;&lt;strong&gt;TL;DR &lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-8d253bd&quot;&gt;We conducted a scan of 50,000 websites, where we picked the sites based on how much ad inventory the site is making available in ad exchanges. I feel confident to conclude that both the quality of ad inventory, and the sites that make the inventory available are far greater problems than the ad industry, law makers or the public understand.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;money-for-nothing-and-chicks-for-free-aka-way-too-much-ad-money&quot;&gt;Money for nothing, and chicks for free a.k.a way too much ad money&lt;/h2&gt;
&lt;p id=&quot;p-d125984&quot;&gt;By June 2015, the traffic buying problem had gotten out of hand to the extent where out of the TOP50 global websites by volume of inventory, most were what we call “spamsites”.&lt;/p&gt;
&lt;figure class=&quot;fig areas lines&quot; data-fig=&quot;areas&quot; data-box=&quot;48.0,666.0&quot; data-ys=&quot;[[152.4,142.8,138,142.8,159.6,147.6,147.6,162,147.6,159.6,154.8,123.6,147.6,152.4,152.4,152.4,152.4,142.8,140.4,142.8,154.8,157.2,159.6,152.4,152.4,152.4,157.2,157.2,150,147.6,150,135.6,123.6,121.2,133.2,138,130.8,133.2,147.6,157.2,30,111.6,150,150,138,54,133.2,140.4,135.6,138,128.4,150],[135.6,135.6,147.6,140.4,142.8,152.4,152.4,145.2,145.2,154.8,150,159.6,150,159.6,150,164.4,154.8,140.4,135.6,147.6,152.4,154.8,152.4,150,145.2,140.4,142.8,152.4,147.6,142.8,152.4,140.4,164.4,147.6,159.6,162,188.4,195.6,147.6,140.4,142.8,138,138,135.6,140.4,138,126,130.8,133.2,152.4,145.2,140.4],[128.4,123.6,123.6,128.4,128.4,135.6,121.2,130.8,126,138,138,150,145.2,140.4,133.2,128.4,142.8,138,138,135.6,133.2,114,135.6,147.6,123.6,123.6,121.2,140.4,123.6,145.2,147.6,133.2,145.2,142.8,138,145.2,171.6,157.2,133.2,135.6,118.8,111.6,130.8,140.4,145.2,135.6,140.4,128.4,142.8,145.2,135.6,140.4],[169.2,162,164.4,162,171.6,181.2,178.8,183.6,188.4,193.2,193.2,202.8,195.6,188.4,193.2,193.2,188.4,190.8,188.4,198,183.6,186,174,171.6,169.2,166.8,159.6,162,162,152.4,157.2,135.6,169.2,145.2,142.8,171.6,212.4,210,183.6,174,171.6,159.6,162,166.8,169.2,162,157.2,157.2,162,176.4,174,152.4]]&quot; data-says=&quot;[&amp;#x22;The week of 12 April 2015: buy click 49, search marketing 56, search engine optimization 59, social advertising 42.&amp;#x22;,&amp;#x22;The week of 19 April 2015: buy click 53, search marketing 56, search engine optimization 61, social advertising 45.&amp;#x22;,&amp;#x22;The week of 26 April 2015: buy click 55, search marketing 51, search engine optimization 61, social advertising 44.&amp;#x22;,&amp;#x22;The week of 3 May 2015: buy click 53, search marketing 54, search engine optimization 59, social advertising 45.&amp;#x22;,&amp;#x22;The week of 10 May 2015: buy click 46, search marketing 53, search engine optimization 59, social advertising 41.&amp;#x22;,&amp;#x22;The week of 17 May 2015: buy click 51, search marketing 49, search engine optimization 56, social advertising 37.&amp;#x22;,&amp;#x22;The week of 24 May 2015: buy click 51, search marketing 49, search engine optimization 62, social advertising 38.&amp;#x22;,&amp;#x22;The week of 31 May 2015: buy click 45, search marketing 52, search engine optimization 58, social advertising 36.&amp;#x22;,&amp;#x22;The week of 7 June 2015: buy click 51, search marketing 52, search engine optimization 60, social advertising 34.&amp;#x22;,&amp;#x22;The week of 14 June 2015: buy click 46, search marketing 48, search engine optimization 55, social advertising 32.&amp;#x22;,&amp;#x22;The week of 21 June 2015: buy click 48, search marketing 50, search engine optimization 55, social advertising 32.&amp;#x22;,&amp;#x22;The week of 28 June 2015: buy click 61, search marketing 46, search engine optimization 50, social advertising 28.&amp;#x22;,&amp;#x22;The week of 5 July 2015: buy click 51, search marketing 50, search engine optimization 52, social advertising 31.&amp;#x22;,&amp;#x22;The week of 12 July 2015: buy click 49, search marketing 46, search engine optimization 54, social advertising 34.&amp;#x22;,&amp;#x22;The week of 19 July 2015: buy click 49, search marketing 50, search engine optimization 57, social advertising 32.&amp;#x22;,&amp;#x22;The week of 26 July 2015: buy click 49, search marketing 44, search engine optimization 59, social advertising 32.&amp;#x22;,&amp;#x22;The week of 2 August 2015: buy click 49, search marketing 48, search engine optimization 53, social advertising 34.&amp;#x22;,&amp;#x22;The week of 9 August 2015: buy click 53, search marketing 54, search engine optimization 55, social advertising 33.&amp;#x22;,&amp;#x22;The week of 16 August 2015: buy click 54, search marketing 56, search engine optimization 55, social advertising 34.&amp;#x22;,&amp;#x22;The week of 23 August 2015: buy click 53, search marketing 51, search engine optimization 56, social advertising 30.&amp;#x22;,&amp;#x22;The week of 30 August 2015: buy click 48, search marketing 49, search engine optimization 57, social advertising 36.&amp;#x22;,&amp;#x22;The week of 6 September 2015: buy click 47, search marketing 48, search engine optimization 65, social advertising 35.&amp;#x22;,&amp;#x22;The week of 13 September 2015: buy click 46, search marketing 49, search engine optimization 56, social advertising 40.&amp;#x22;,&amp;#x22;The week of 20 September 2015: buy click 49, search marketing 50, search engine optimization 51, social advertising 41.&amp;#x22;,&amp;#x22;The week of 27 September 2015: buy click 49, search marketing 52, search engine optimization 61, social advertising 42.&amp;#x22;,&amp;#x22;The week of 4 October 2015: buy click 49, search marketing 54, search engine optimization 61, social advertising 43.&amp;#x22;,&amp;#x22;The week of 11 October 2015: buy click 47, search marketing 53, search engine optimization 62, social advertising 46.&amp;#x22;,&amp;#x22;The week of 18 October 2015: buy click 47, search marketing 49, search engine optimization 54, social advertising 45.&amp;#x22;,&amp;#x22;The week of 25 October 2015: buy click 50, search marketing 51, search engine optimization 61, social advertising 45.&amp;#x22;,&amp;#x22;The week of 1 November 2015: buy click 51, search marketing 53, search engine optimization 52, social advertising 49.&amp;#x22;,&amp;#x22;The week of 8 November 2015: buy click 50, search marketing 49, search engine optimization 51, social advertising 47.&amp;#x22;,&amp;#x22;The week of 15 November 2015: buy click 56, search marketing 54, search engine optimization 57, social advertising 56.&amp;#x22;,&amp;#x22;The week of 22 November 2015: buy click 61, search marketing 44, search engine optimization 52, social advertising 42.&amp;#x22;,&amp;#x22;The week of 29 November 2015: buy click 62, search marketing 51, search engine optimization 53, social advertising 52.&amp;#x22;,&amp;#x22;The week of 6 December 2015: buy click 57, search marketing 46, search engine optimization 55, social advertising 53.&amp;#x22;,&amp;#x22;The week of 13 December 2015: buy click 55, search marketing 45, search engine optimization 52, social advertising 41.&amp;#x22;,&amp;#x22;The week of 20 December 2015: buy click 58, search marketing 34, search engine optimization 41, social advertising 24.&amp;#x22;,&amp;#x22;The week of 27 December 2015: buy click 57, search marketing 31, search engine optimization 47, social advertising 25.&amp;#x22;,&amp;#x22;The week of 3 January 2016: buy click 51, search marketing 51, search engine optimization 57, social advertising 36.&amp;#x22;,&amp;#x22;The week of 10 January 2016: buy click 47, search marketing 54, search engine optimization 56, social advertising 40.&amp;#x22;,&amp;#x22;The week of 17 January 2016: buy click 100, search marketing 53, search engine optimization 63, social advertising 41.&amp;#x22;,&amp;#x22;The week of 24 January 2016: buy click 66, search marketing 55, search engine optimization 66, social advertising 46.&amp;#x22;,&amp;#x22;The week of 31 January 2016: buy click 50, search marketing 55, search engine optimization 58, social advertising 45.&amp;#x22;,&amp;#x22;The week of 7 February 2016: buy click 50, search marketing 56, search engine optimization 54, social advertising 43.&amp;#x22;,&amp;#x22;The week of 14 February 2016: buy click 55, search marketing 54, search engine optimization 52, social advertising 42.&amp;#x22;,&amp;#x22;The week of 21 February 2016: buy click 90, search marketing 55, search engine optimization 56, social advertising 45.&amp;#x22;,&amp;#x22;The week of 28 February 2016: buy click 57, search marketing 60, search engine optimization 54, social advertising 47.&amp;#x22;,&amp;#x22;The week of 6 March 2016: buy click 54, search marketing 58, search engine optimization 59, social advertising 47.&amp;#x22;,&amp;#x22;The week of 13 March 2016: buy click 56, search marketing 57, search engine optimization 53, social advertising 45.&amp;#x22;,&amp;#x22;The week of 20 March 2016: buy click 55, search marketing 49, search engine optimization 52, social advertising 39.&amp;#x22;,&amp;#x22;The week of 27 March 2016: buy click 59, search marketing 52, search engine optimization 56, social advertising 40.&amp;#x22;,&amp;#x22;The week of 3 April 2016: buy click 50, search marketing 54, search engine optimization 54, social advertising 49.&amp;#x22;]&quot; data-names=&quot;[&amp;#x22;The week of 12 April 2015&amp;#x22;,&amp;#x22;The week of 19 April 2015&amp;#x22;,&amp;#x22;The week of 26 April 2015&amp;#x22;,&amp;#x22;The week of 3 May 2015&amp;#x22;,&amp;#x22;The week of 10 May 2015&amp;#x22;,&amp;#x22;The week of 17 May 2015&amp;#x22;,&amp;#x22;The week of 24 May 2015&amp;#x22;,&amp;#x22;The week of 31 May 2015&amp;#x22;,&amp;#x22;The week of 7 June 2015&amp;#x22;,&amp;#x22;The week of 14 June 2015&amp;#x22;,&amp;#x22;The week of 21 June 2015&amp;#x22;,&amp;#x22;The week of 28 June 2015&amp;#x22;,&amp;#x22;The week of 5 July 2015&amp;#x22;,&amp;#x22;The week of 12 July 2015&amp;#x22;,&amp;#x22;The week of 19 July 2015&amp;#x22;,&amp;#x22;The week of 26 July 2015&amp;#x22;,&amp;#x22;The week of 2 August 2015&amp;#x22;,&amp;#x22;The week of 9 August 2015&amp;#x22;,&amp;#x22;The week of 16 August 2015&amp;#x22;,&amp;#x22;The week of 23 August 2015&amp;#x22;,&amp;#x22;The week of 30 August 2015&amp;#x22;,&amp;#x22;The week of 6 September 2015&amp;#x22;,&amp;#x22;The week of 13 September 2015&amp;#x22;,&amp;#x22;The week of 20 September 2015&amp;#x22;,&amp;#x22;The week of 27 September 2015&amp;#x22;,&amp;#x22;The week of 4 October 2015&amp;#x22;,&amp;#x22;The week of 11 October 2015&amp;#x22;,&amp;#x22;The week of 18 October 2015&amp;#x22;,&amp;#x22;The week of 25 October 2015&amp;#x22;,&amp;#x22;The week of 1 November 2015&amp;#x22;,&amp;#x22;The week of 8 November 2015&amp;#x22;,&amp;#x22;The week of 15 November 2015&amp;#x22;,&amp;#x22;The week of 22 November 2015&amp;#x22;,&amp;#x22;The week of 29 November 2015&amp;#x22;,&amp;#x22;The week of 6 December 2015&amp;#x22;,&amp;#x22;The week of 13 December 2015&amp;#x22;,&amp;#x22;The week of 20 December 2015&amp;#x22;,&amp;#x22;The week of 27 December 2015&amp;#x22;,&amp;#x22;The week of 3 January 2016&amp;#x22;,&amp;#x22;The week of 10 January 2016&amp;#x22;,&amp;#x22;The week of 17 January 2016&amp;#x22;,&amp;#x22;The week of 24 January 2016&amp;#x22;,&amp;#x22;The week of 31 January 2016&amp;#x22;,&amp;#x22;The week of 7 February 2016&amp;#x22;,&amp;#x22;The week of 14 February 2016&amp;#x22;,&amp;#x22;The week of 21 February 2016&amp;#x22;,&amp;#x22;The week of 28 February 2016&amp;#x22;,&amp;#x22;The week of 6 March 2016&amp;#x22;,&amp;#x22;The week of 13 March 2016&amp;#x22;,&amp;#x22;The week of 20 March 2016&amp;#x22;,&amp;#x22;The week of 27 March 2016&amp;#x22;,&amp;#x22;The week of 3 April 2016&amp;#x22;]&quot; aria-label=&quot;Google Trends, April 2015 to April 2016: searches for “buy click” run level with “search marketing” and “search engine optimization”, with two spikes in early 2016; “social advertising” runs lower&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;The week of 7 June 2015: buy click 51, search marketing 52, search engine optimization 60, social advertising 34.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li data-pick=&quot;0&quot;&gt;&lt;i class=&quot;s0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;buy click&lt;/li&gt;&lt;li data-pick=&quot;1&quot;&gt;&lt;i class=&quot;s1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;search marketing&lt;/li&gt;&lt;li data-pick=&quot;2&quot;&gt;&lt;i class=&quot;s2&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;search engine optimization&lt;/li&gt;&lt;li data-pick=&quot;3&quot;&gt;&lt;i class=&quot;s3&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;social advertising&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 320&quot; role=&quot;img&quot; aria-label=&quot;Interest over time, by Google Trends, The week of 12 April 2015 to The week of 3 April 2016: buy click 100 at the peak, The week of 17 January 2016; search marketing 60 at the peak, The week of 28 February 2016; search engine optimization 66 at the peak, The week of 24 January 2016; social advertising 56 at the peak, The week of 15 November 2015&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;48&quot; x2=&quot;666&quot; y1=&quot;270.0&quot; y2=&quot;270.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;40&quot; y=&quot;274.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;48&quot; x2=&quot;666&quot; y1=&quot;222.0&quot; y2=&quot;222.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;40&quot; y=&quot;226.0&quot; text-anchor=&quot;end&quot;&gt;20&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;48&quot; x2=&quot;666&quot; y1=&quot;174.0&quot; y2=&quot;174.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;40&quot; y=&quot;178.0&quot; text-anchor=&quot;end&quot;&gt;40&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;48&quot; x2=&quot;666&quot; y1=&quot;126.0&quot; y2=&quot;126.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;40&quot; y=&quot;130.0&quot; text-anchor=&quot;end&quot;&gt;60&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;48&quot; x2=&quot;666&quot; y1=&quot;78.0&quot; y2=&quot;78.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;40&quot; y=&quot;82.0&quot; text-anchor=&quot;end&quot;&gt;80&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;48&quot; x2=&quot;666&quot; y1=&quot;30.0&quot; y2=&quot;30.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;40&quot; y=&quot;34.0&quot; text-anchor=&quot;end&quot;&gt;100&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;48&quot; x2=&quot;666&quot; y1=&quot;270&quot; y2=&quot;270&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;357&quot; y=&quot;314&quot; text-anchor=&quot;middle&quot;&gt;week&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;48&quot; y=&quot;20&quot;&gt;interest&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;180.4&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;Jul 2015&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;339.7&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;Oct 2015&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;498.9&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;Jan 2016&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;656.4&quot; y=&quot;290&quot; text-anchor=&quot;middle&quot;&gt;Apr 2016&lt;/text&gt;&lt;g class=&quot;series s0&quot; data-pick-of=&quot;0&quot;&gt;&lt;path class=&quot;edge&quot; d=&quot;M48.0 152.4L60.1 142.8L72.2 138.0L84.4 142.8L96.5 159.6L108.6 147.6L120.7 147.6L132.8 162.0L144.9 147.6L157.1 159.6L169.2 154.8L181.3 123.6L193.4 147.6L205.5 152.4L217.6 152.4L229.8 152.4L241.9 152.4L254.0 142.8L266.1 140.4L278.2 142.8L290.4 154.8L302.5 157.2L314.6 159.6L326.7 152.4L338.8 152.4L350.9 152.4L363.1 157.2L375.2 157.2L387.3 150.0L399.4 147.6L411.5 150.0L423.6 135.6L435.8 123.6L447.9 121.2L460.0 133.2L472.1 138.0L484.2 130.8L496.4 133.2L508.5 147.6L520.6 157.2L532.7 30.0L544.8 111.6L556.9 150.0L569.1 150.0L581.2 138.0L593.3 54.0L605.4 133.2L617.5 140.4L629.6 135.6L641.8 138.0L653.9 128.4L666.0 150.0&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;series s1&quot; data-pick-of=&quot;1&quot;&gt;&lt;path class=&quot;edge&quot; d=&quot;M48.0 135.6L60.1 135.6L72.2 147.6L84.4 140.4L96.5 142.8L108.6 152.4L120.7 152.4L132.8 145.2L144.9 145.2L157.1 154.8L169.2 150.0L181.3 159.6L193.4 150.0L205.5 159.6L217.6 150.0L229.8 164.4L241.9 154.8L254.0 140.4L266.1 135.6L278.2 147.6L290.4 152.4L302.5 154.8L314.6 152.4L326.7 150.0L338.8 145.2L350.9 140.4L363.1 142.8L375.2 152.4L387.3 147.6L399.4 142.8L411.5 152.4L423.6 140.4L435.8 164.4L447.9 147.6L460.0 159.6L472.1 162.0L484.2 188.4L496.4 195.6L508.5 147.6L520.6 140.4L532.7 142.8L544.8 138.0L556.9 138.0L569.1 135.6L581.2 140.4L593.3 138.0L605.4 126.0L617.5 130.8L629.6 133.2L641.8 152.4L653.9 145.2L666.0 140.4&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;series s2&quot; data-pick-of=&quot;2&quot;&gt;&lt;path class=&quot;edge&quot; d=&quot;M48.0 128.4L60.1 123.6L72.2 123.6L84.4 128.4L96.5 128.4L108.6 135.6L120.7 121.2L132.8 130.8L144.9 126.0L157.1 138.0L169.2 138.0L181.3 150.0L193.4 145.2L205.5 140.4L217.6 133.2L229.8 128.4L241.9 142.8L254.0 138.0L266.1 138.0L278.2 135.6L290.4 133.2L302.5 114.0L314.6 135.6L326.7 147.6L338.8 123.6L350.9 123.6L363.1 121.2L375.2 140.4L387.3 123.6L399.4 145.2L411.5 147.6L423.6 133.2L435.8 145.2L447.9 142.8L460.0 138.0L472.1 145.2L484.2 171.6L496.4 157.2L508.5 133.2L520.6 135.6L532.7 118.8L544.8 111.6L556.9 130.8L569.1 140.4L581.2 145.2L593.3 135.6L605.4 140.4L617.5 128.4L629.6 142.8L641.8 145.2L653.9 135.6L666.0 140.4&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;series s3&quot; data-pick-of=&quot;3&quot;&gt;&lt;path class=&quot;edge&quot; d=&quot;M48.0 169.2L60.1 162.0L72.2 164.4L84.4 162.0L96.5 171.6L108.6 181.2L120.7 178.8L132.8 183.6L144.9 188.4L157.1 193.2L169.2 193.2L181.3 202.8L193.4 195.6L205.5 188.4L217.6 193.2L229.8 193.2L241.9 188.4L254.0 190.8L266.1 188.4L278.2 198.0L290.4 183.6L302.5 186.0L314.6 174.0L326.7 171.6L338.8 169.2L350.9 166.8L363.1 159.6L375.2 162.0L387.3 162.0L399.4 152.4L411.5 157.2L423.6 135.6L435.8 169.2L447.9 145.2L460.0 142.8L472.1 171.6L484.2 212.4L496.4 210.0L508.5 183.6L520.6 174.0L532.7 171.6L544.8 159.6L556.9 162.0L569.1 166.8L581.2 169.2L593.3 162.0L605.4 157.2L617.5 157.2L629.6 162.0L641.8 176.4L653.9 174.0L666.0 152.4&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;marker&quot;&gt;&lt;line class=&quot;cursor&quot; x1=&quot;144.9&quot; x2=&quot;144.9&quot; y1=&quot;30&quot; y2=&quot;270.0&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;dot s0&quot; data-pick-of=&quot;0&quot; cx=&quot;144.9&quot; cy=&quot;147.6&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot s1&quot; data-pick-of=&quot;1&quot; cx=&quot;144.9&quot; cy=&quot;145.2&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot s2&quot; data-pick-of=&quot;2&quot; cx=&quot;144.9&quot; cy=&quot;126&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot s3&quot; data-pick-of=&quot;3&quot; cx=&quot;144.9&quot; cy=&quot;188.4&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;/g&gt;&lt;/svg&gt;&lt;div class=&quot;fig-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;input type=&quot;range&quot; min=&quot;0&quot; max=&quot;51&quot; value=&quot;8&quot; step=&quot;1&quot; aria-label=&quot;week&quot; aria-valuetext=&quot;The week of 7 June 2015&quot;&gt;&lt;/div&gt;&lt;figcaption&gt;Searches for each term, week by week from April 2015 to April 2016, on Google Trends’ one scale: 100 is the busiest week of any of them. Read from the original chart, to within a point or two.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-ea165dd&quot;&gt;According to Google Trends, at that time buying clicks had become as popular of a search term as “search marketing” or “search engine optimization”. In case you are wondering, buying traffic in adtech is like buying CDOs in finance before 2008. Or like taking EPO on Tour de France. In all of these examples, at some point the situation had become so bad that “doing it” was perceived as something you had to do in order to get to your goals. I have later learn that by then, there must have been dozens if not +100 companies just in US alone that were “arbitraging” as the core for their business model.&lt;/p&gt;
&lt;p id=&quot;p-96e003a&quot;&gt;I watched closely how one company started by people I know had an amazing innovative idea (and that’s pretty hard with online ads), and after some struggle, realised the best way to make money in adtech is to become an ad network. It grew close to 2000% last year and raised a crazy amount of money.&lt;/p&gt;
&lt;figure class=&quot;fig routes&quot; data-fig=&quot;routes&quot; aria-label=&quot;Traffic from botnets and sourced traffic through the site and ad networks to the exchange and down the CPM waterfall, and from its bottom back to sourced traffic; marks A to D&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;From botnets and sourced traffic, through the site and the ad networks, to the exchange and down the CPM waterfall; from its bottom, back to the top.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 400&quot; role=&quot;img&quot; aria-label=&quot;Ad networks and sourced traffic: Botnets: to sourced traffic, the site and ad networks. Sourced traffic: from botnets and ad networks, to the site and ad networks; back from CPM $0.0…, closing the loop. The site: from botnets and sourced traffic, to ad networks and the exchange. Ad networks: from botnets, sourced traffic and the site, to sourced traffic and the exchange. Exchange: from the site and ad networks, to CPM $2. CPM $2: from the exchange, to CPM $1. CPM $1: from CPM $2, to CPM $0.50. CPM $0.50: from CPM $1, to CPM $0.10. CPM $0.10: from CPM $0.50, to CPM $0.0…. CPM $0.0…: from CPM $0.10; back to sourced traffic, closing the loop.&quot;&gt;&lt;defs&gt;&lt;marker id=&quot;ad-network-traffic-head&quot; class=&quot;head&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;8&quot; refY=&quot;5&quot; markerWidth=&quot;8&quot; markerHeight=&quot;8&quot; orient=&quot;auto-start-reverse&quot;&gt;&lt;path d=&quot;M1 1 L8 5 L1 9&quot;&gt;&lt;/path&gt;&lt;/marker&gt;&lt;/defs&gt;&lt;line class=&quot;edge&quot; data-from=&quot;botnets&quot; data-to=&quot;sourced&quot; style=&quot;--d:0&quot; x1=&quot;110.0&quot; y1=&quot;81.0&quot; x2=&quot;110.0&quot; y2=&quot;164.0&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;botnets&quot; data-to=&quot;site&quot; style=&quot;--d:0&quot; x1=&quot;120.9&quot; y1=&quot;71.4&quot; x2=&quot;289.1&quot; y2=&quot;93.6&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;botnets&quot; data-to=&quot;networks&quot; style=&quot;--d:0&quot; x1=&quot;117.7&quot; y1=&quot;77.9&quot; x2=&quot;292.3&quot; y2=&quot;257.1&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;sourced&quot; data-to=&quot;site&quot; style=&quot;--d:1&quot; x1=&quot;120.1&quot; y1=&quot;170.7&quot; x2=&quot;289.9&quot; y2=&quot;99.3&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;sourced&quot; data-to=&quot;networks&quot; style=&quot;--d:1&quot; x1=&quot;119.9&quot; y1=&quot;179.7&quot; x2=&quot;290.1&quot; y2=&quot;260.3&quot; marker-start=&quot;url(#ad-network-traffic-head)&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;site&quot; data-to=&quot;networks&quot; style=&quot;--d:1&quot; x1=&quot;300.0&quot; y1=&quot;106.0&quot; x2=&quot;300.0&quot; y2=&quot;254.0&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;site&quot; data-to=&quot;exchange&quot; style=&quot;--d:1&quot; x1=&quot;310.9&quot; y1=&quot;96.8&quot; x2=&quot;444.1&quot; y2=&quot;118.2&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;networks&quot; data-to=&quot;exchange&quot; style=&quot;--d:1&quot; x1=&quot;308.0&quot; y1=&quot;257.5&quot; x2=&quot;447.0&quot; y2=&quot;127.5&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;exchange&quot; data-to=&quot;cpm2&quot; style=&quot;--d:2&quot; x1=&quot;466.0&quot; y1=&quot;120.0&quot; x2=&quot;604.0&quot; y2=&quot;120.0&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;cpm2&quot; data-to=&quot;cpm1&quot; style=&quot;--d:3&quot; x1=&quot;615.0&quot; y1=&quot;131.0&quot; x2=&quot;615.0&quot; y2=&quot;164.0&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;cpm1&quot; data-to=&quot;cpm05&quot; style=&quot;--d:4&quot; x1=&quot;615.0&quot; y1=&quot;186.0&quot; x2=&quot;615.0&quot; y2=&quot;219.0&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;cpm05&quot; data-to=&quot;cpm01&quot; style=&quot;--d:5&quot; x1=&quot;615.0&quot; y1=&quot;241.0&quot; x2=&quot;615.0&quot; y2=&quot;274.0&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;cpm01&quot; data-to=&quot;cpm0&quot; style=&quot;--d:6&quot; x1=&quot;615.0&quot; y1=&quot;296.0&quot; x2=&quot;615.0&quot; y2=&quot;329.0&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/line&gt;&lt;path class=&quot;edge back&quot; data-from=&quot;cpm0&quot; data-to=&quot;sourced&quot; style=&quot;--d:8&quot; d=&quot;M627 342H660V18H40V175H95&quot; marker-end=&quot;url(#ad-network-traffic-head)&quot;&gt;&lt;/path&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;botnets&quot; data-says=&quot;Botnets: to sourced traffic, the site and ad networks.&quot;&gt;&lt;circle cx=&quot;110&quot; cy=&quot;70&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;110&quot; y=&quot;58&quot; text-anchor=&quot;middle&quot;&gt;Botnets&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;sourced&quot; data-says=&quot;Sourced traffic: from botnets and ad networks, to the site and ad networks; back from CPM $0.0…, closing the loop.&quot;&gt;&lt;circle cx=&quot;110&quot; cy=&quot;175&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;110&quot; y=&quot;198&quot; text-anchor=&quot;middle&quot;&gt;Sourced traffic&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;site&quot; data-says=&quot;The site: from botnets and sourced traffic, to ad networks and the exchange.&quot;&gt;&lt;circle cx=&quot;300&quot; cy=&quot;95&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;300&quot; y=&quot;83&quot; text-anchor=&quot;middle&quot;&gt;The site&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;networks&quot; data-says=&quot;Ad networks: from botnets, sourced traffic and the site, to sourced traffic and the exchange.&quot;&gt;&lt;circle cx=&quot;300&quot; cy=&quot;265&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;300&quot; y=&quot;288&quot; text-anchor=&quot;middle&quot;&gt;Ad networks&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;exchange&quot; data-says=&quot;Exchange: from the site and ad networks, to CPM $2.&quot;&gt;&lt;circle cx=&quot;455&quot; cy=&quot;120&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;455&quot; y=&quot;108&quot; text-anchor=&quot;middle&quot;&gt;Exchange&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;cpm2&quot; data-says=&quot;CPM $2: from the exchange, to CPM $1.&quot;&gt;&lt;circle cx=&quot;615&quot; cy=&quot;120&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;615&quot; y=&quot;143&quot; text-anchor=&quot;middle&quot;&gt;CPM $2&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;cpm1&quot; data-says=&quot;CPM $1: from CPM $2, to CPM $0.50.&quot;&gt;&lt;circle cx=&quot;615&quot; cy=&quot;175&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;615&quot; y=&quot;198&quot; text-anchor=&quot;middle&quot;&gt;CPM $1&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;cpm05&quot; data-says=&quot;CPM $0.50: from CPM $1, to CPM $0.10.&quot;&gt;&lt;circle cx=&quot;615&quot; cy=&quot;230&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;615&quot; y=&quot;253&quot; text-anchor=&quot;middle&quot;&gt;CPM $0.50&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;cpm01&quot; data-says=&quot;CPM $0.10: from CPM $0.50, to CPM $0.0….&quot;&gt;&lt;circle cx=&quot;615&quot; cy=&quot;285&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;615&quot; y=&quot;308&quot; text-anchor=&quot;middle&quot;&gt;CPM $0.10&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;cpm0&quot; data-says=&quot;CPM $0.0…: from CPM $0.10; back to sourced traffic, closing the loop.&quot;&gt;&lt;circle cx=&quot;615&quot; cy=&quot;340&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;615&quot; y=&quot;363&quot; text-anchor=&quot;middle&quot;&gt;CPM $0.0…&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark&quot; tabindex=&quot;0&quot; data-lights=&quot;networks&quot; data-says=&quot;A: ad networks are at the heart of the ad fraud and traffic quality problems.&quot;&gt;&lt;circle cx=&quot;300&quot; cy=&quot;322&quot; r=&quot;13&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;300&quot; y=&quot;327&quot; text-anchor=&quot;middle&quot;&gt;A&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark&quot; tabindex=&quot;0&quot; data-lights=&quot;sourced&gt;networks networks sourced&quot; data-says=&quot;B: ad networks are a major source of traffic for sourced traffic companies.&quot;&gt;&lt;circle cx=&quot;205&quot; cy=&quot;272&quot; r=&quot;13&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;205&quot; y=&quot;277&quot; text-anchor=&quot;middle&quot;&gt;B&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark&quot; tabindex=&quot;0&quot; data-lights=&quot;sourced&gt;networks sourced&gt;site sourced&quot; data-says=&quot;C: sourced traffic companies are also a source of traffic for ad networks and the sites they represent.&quot;&gt;&lt;circle cx=&quot;168&quot; cy=&quot;240&quot; r=&quot;13&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;168&quot; y=&quot;245&quot; text-anchor=&quot;middle&quot;&gt;C&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark&quot; tabindex=&quot;0&quot; data-lights=&quot;networks&gt;exchange networks exchange&quot; data-says=&quot;D: ad networks then push the traffic coming from sourced traffic companies to exchanges.&quot;&gt;&lt;circle cx=&quot;415&quot; cy=&quot;228&quot; r=&quot;13&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;415&quot; y=&quot;233&quot; text-anchor=&quot;middle&quot;&gt;D&lt;/text&gt;&lt;/g&gt;&lt;/svg&gt;&lt;figcaption&gt;After the original drawing, with its four points, A to D, as it made them.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-7eb3458&quot;&gt;With the CPM “waterfall” in place, what have been going on for years is that some companies go to the bottom of the waterfall, they are called “bottom-feeders”, but what they do is push that inventory right back at the top. Now increasingly including some trick to evade verification such as IAS, WhiteOps, DV or Moat for example. It’s easier to buy traffic that pass the filters of common vendors, than it is to buy traffic that pass the filters of uncommon ones. Traffic market and vendor performance in detecting ad fraud has been covered in &lt;em&gt;Mystery Shopping Inside the Ad-Verification Bubble&lt;/em&gt;[&lt;a href=&quot;http://www.slideshare.net/ShailinDhar/mystery-shopping-inside-the-adverification-bubble&quot;&gt;1&lt;/a&gt;].&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;what-did-we-find-out&quot;&gt;What did we find out?&lt;/h2&gt;
&lt;p id=&quot;p-851b17d&quot;&gt;It is clear that things have changed substantially in 16 months that we’ve spent observing the market-place using data from the same source. Have they changed to better, where we have less criminal earnings from ad fraud and less very poor quality sites? In short summary, I believe that earnings are up and various stakeholders make far more money from ad fraud than they made 16 months ago. Site quality on other hand has gone significantly up in the TOP100 sites,&lt;/p&gt;
&lt;p id=&quot;p-e020228&quot;&gt;In other words, there is definitely an effort in the part of the industry to make things better, which is showing a response from the opponents to make their appearance better. Let’s be very clear, this does not suggest that ad fraud is now a smaller problem, it could simply just say that now the industry is not a total fool anymore (as it was based on evidence just 16 months ago). The situation roughly 15 months ago can be witnessed with Botlab’s &lt;em&gt;Project Arbitrage&lt;/em&gt;[&lt;a href=&quot;https://github.com/botlabio/project-arbitrage&quot;&gt;2&lt;/a&gt;]&lt;em&gt;, &lt;/em&gt;a data visualization project highlighting the intersection of very large scale botnet and some of the highest traffic sites of the time.&lt;/p&gt;
&lt;p id=&quot;p-1141afd&quot;&gt;A more detailed findings report covering 2015-2017 will be made available through a series of post. I’m confident that nobody in the world saw the start of the golden era in ad fraud as closely as we did…and that story will not go untold.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;references&quot;&gt;References:&lt;/h2&gt;
&lt;p id=&quot;p-658fce0&quot;&gt;[1] &lt;strong&gt;Mystery Shopping Inside the Ad-Verification Bubble&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;http://www.slideshare.net/ShailinDhar/mystery-shopping-inside-the-adverification-bubble&quot;&gt;http://www.slideshare.net/ShailinDhar/mystery-shopping-inside-the-adverification-bubble&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-95ce1db&quot;&gt;[2] &lt;strong&gt;Botlab’s Project Arbitrage (data visualization) &lt;/strong&gt;&lt;a href=&quot;https://github.com/botlabio/project-arbitrage&quot;&gt;https://github.com/botlabio/project-arbitrage&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>Five Essential Points on Data Visualization</title><link href="https://mikkokotila.com/writing/five-essential-points-on-data-visualization/"/><id>https://mikkokotila.com/writing/five-essential-points-on-data-visualization/</id><published>2017-06-26T00:00:00Z</published><updated>2017-06-26T00:00:00Z</updated><category term="data-science"/><summary>The goal of data visualization is to act as a catalyst for some sort of behavior change, yet mostly practitioners focus on other things.</summary><content type="html">&lt;h3 class=&quot;h-1&quot; id=&quot;1-how-not-to-data-visualize&quot;&gt;1. How Not to Data Visualize&lt;/h3&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:800px;--shot-ratio:0.9768&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/five-essential-points-on-data-visualization/2.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Web analytics report in a browser, with a monthly summary table and history&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-9f5acdc&quot; class=&quot;opening&quot;&gt;At the most commonly found level, a data visualization project consist of having some data, having a vague idea of the user’s actual needs, and a strong conviction that what you’re doing is perfect for the problem. Well, in 99.99% of the cases &lt;span class=&quot;nowrap&quot;&gt;it’s not.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-499a2cf&quot;&gt;This process could be visualized kind of like this.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Non multa, sed multum&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/0e7870049282581e.png&quot; alt=&quot;Cartoon still: a dog being sick in front of a baby&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;Not many things, but much.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;after Pliny the Younger, Letters, VII.9&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The picture&lt;/b&gt; a dog being sick in front of a baby: data, puked&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-12d0f2f&quot;&gt;It’s very easy to take data, mix it with some sort of “black magic” (read Javascript) and have everyone look at it in awe. But how about after the presentation? How about after first 10 uses? How about after a year? How about when something needs to be rapidly changed (because NOBODY gets the spec right at first go &gt; analytics dashboards are a moving target because user needs are).&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Larvatus prodeo&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/ba94602074761b4d.png&quot; alt=&quot;Meme of Darth Vader beside a sheeted ghost, captioned “Javascipt &amp;#x26; PHP”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;Masked, I go forward.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;René Descartes, in his early notes&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “Javascipt &amp;#x26; PHP”&lt;/p&gt;&lt;figcaption&gt;It may be straightforward to build things with various libraries, but that’s the wrong problem.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-4c8ecec&quot;&gt;The number one reason for frustration (user) and failure (business) regarding data visualization is “data puking”. Don’t just puke, tell a story that helps people to take action (change behavior).&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Suum cuique pulchrum est&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/328f322cbbefceea.png&quot; alt=&quot;Ralph Wiggum, from The Simpsons: “I glued my head to my shoulder.”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;To each, their own is beautiful.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Cicero, Tusculan Disputations, V.63&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “I glued my head to my shoulder.”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-9f47fad&quot;&gt;The basic principle is that generally you’ll understand the value in your work better than anyone else does. Be very mindful of that.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;2-make-it-goal-based&quot;&gt;2. Make it Goal Based&lt;/h3&gt;
&lt;p id=&quot;p-21affbd&quot;&gt;Around 2008 I led a team of young turks that shared a goal; start a new era in web analytics. At that point, Omniture had not been acquired yet, and Google Analytics was really bad. I mean really bad. There were three of us trying to change things — STATSIT, Nuconomy and KissMetrics — and show the big boys how to do it. I think to some extent we did show them, at least Google. Below is a screenshot from the keynote speech Avinash Kaushik, then Google’s head evangelist for analytics, gave in the Google Analytics summit in 2009. In it you see the goal setting view of STATSIT web analytics.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:500px;--shot-ratio:1.5060&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/five-essential-points-on-data-visualization/7.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Photograph of a screen showing an analytics tool’s goal settings&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-c882087&quot;&gt;As the screen shows, almost 10 years ago, we had built-in goal setting for ‘behaviors’ and ‘long term’ goals, in addition to what were more commonly referred to as conversions. While ‘behaviors’ have to some extent become part of the analytics toolkit today, there is still much room for improvements in terms of ‘long term’ goal tracking. This is just one example of how analytics is nowhere as nearly goal-driven as it could/should be.&lt;/p&gt;
&lt;p id=&quot;p-78e7f93&quot;&gt;Related with the goal aspect, you could follow these 6 steps to avoid headaches later:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-d77ad09&quot;&gt;Identify what the current goals of the user are&lt;/li&gt;
&lt;li id=&quot;p-e2ed476&quot;&gt;Make sure that the visualizations correlate with that&lt;/li&gt;
&lt;li id=&quot;p-a153876&quot;&gt;Create a simple prototype first&lt;/li&gt;
&lt;li id=&quot;p-75d4096&quot;&gt;After some use figure out what the goals now are&lt;/li&gt;
&lt;li id=&quot;p-507632e&quot;&gt;Make changes rapidly (this will make users want it badly)&lt;/li&gt;
&lt;li id=&quot;p-4cea349&quot;&gt;Keep iterating&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-704c7af&quot;&gt;Here is an example of a simple user feedback loop:&lt;/p&gt;
&lt;figure class=&quot;fig routes&quot; data-fig=&quot;routes&quot; aria-label=&quot;A user feedback loop: the customer speaks through customer development, the support address, the dashboard and SurveyMonkey; through Zendesk and Google Analytics it all reaches the product, and customer development answers the customer&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Every way the customer speaks reaches the product, and customer development closes the loop back to the customer.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 372&quot; role=&quot;img&quot; aria-label=&quot;A simple user feedback loop: Customer: to customer development, the support address, the dashboard and SurveyMonkey; back from customer development, closing the loop. Customer development: from the customer, to Zendesk. support@company.com: from the customer, to Zendesk. Dashboard: from the customer, to Zendesk and Google Analytics. SurveyMonkey: from the customer, to the product. Zendesk: from customer development, the support address and the dashboard, to customer development and the product. Google Analytics: from the dashboard, to the product. Customer development: from Zendesk and the product, to the product; back to the customer, closing the loop. Product: from Zendesk, Google Analytics, SurveyMonkey and customer development, to customer development.&quot;&gt;&lt;defs&gt;&lt;marker id=&quot;feedback-loop-head&quot; class=&quot;head&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;8&quot; refY=&quot;5&quot; markerWidth=&quot;8&quot; markerHeight=&quot;8&quot; orient=&quot;auto-start-reverse&quot;&gt;&lt;path d=&quot;M1 1 L8 5 L1 9&quot;&gt;&lt;/path&gt;&lt;/marker&gt;&lt;/defs&gt;&lt;line class=&quot;edge&quot; data-from=&quot;customer&quot; data-to=&quot;heard&quot; style=&quot;--d:0&quot; x1=&quot;59.3&quot; y1=&quot;184.1&quot; x2=&quot;190.7&quot; y2=&quot;100.9&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;customer&quot; data-to=&quot;email&quot; style=&quot;--d:0&quot; x1=&quot;61.0&quot; y1=&quot;190.0&quot; x2=&quot;204.0&quot; y2=&quot;190.0&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;customer&quot; data-to=&quot;dashboard&quot; style=&quot;--d:0&quot; x1=&quot;59.6&quot; y1=&quot;195.4&quot; x2=&quot;190.4&quot; y2=&quot;269.6&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;customer&quot; data-to=&quot;survey&quot; style=&quot;--d:0&quot; x1=&quot;59.0&quot; y1=&quot;196.3&quot; x2=&quot;246.0&quot; y2=&quot;325.7&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;heard&quot; data-to=&quot;zendesk&quot; style=&quot;--d:1&quot; x1=&quot;210.2&quot; y1=&quot;99.2&quot; x2=&quot;419.8&quot; y2=&quot;185.8&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;email&quot; data-to=&quot;zendesk&quot; style=&quot;--d:1&quot; x1=&quot;226.0&quot; y1=&quot;190.0&quot; x2=&quot;419.0&quot; y2=&quot;190.0&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;dashboard&quot; data-to=&quot;zendesk&quot; style=&quot;--d:1&quot; x1=&quot;210.3&quot; y1=&quot;271.2&quot; x2=&quot;419.7&quot; y2=&quot;193.8&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;dashboard&quot; data-to=&quot;analytics&quot; style=&quot;--d:1&quot; x1=&quot;211.0&quot; y1=&quot;275.3&quot; x2=&quot;419.0&quot; y2=&quot;281.7&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;zendesk&quot; data-to=&quot;answer&quot; style=&quot;--d:2&quot; x1=&quot;440.2&quot; y1=&quot;185.9&quot; x2=&quot;604.8&quot; y2=&quot;119.1&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;zendesk&quot; data-to=&quot;product&quot; style=&quot;--d:2&quot; x1=&quot;439.8&quot; y1=&quot;194.9&quot; x2=&quot;605.2&quot; y2=&quot;277.1&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;analytics&quot; data-to=&quot;product&quot; style=&quot;--d:2&quot; x1=&quot;441.0&quot; y1=&quot;282.0&quot; x2=&quot;604.0&quot; y2=&quot;282.0&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;survey&quot; data-to=&quot;product&quot; style=&quot;--d:1&quot; x1=&quot;265.9&quot; y1=&quot;330.5&quot; x2=&quot;604.1&quot; y2=&quot;283.5&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;line class=&quot;edge&quot; data-from=&quot;answer&quot; data-to=&quot;product&quot; style=&quot;--d:3&quot; x1=&quot;615.0&quot; y1=&quot;126.0&quot; x2=&quot;615.0&quot; y2=&quot;271.0&quot; marker-start=&quot;url(#feedback-loop-head)&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/line&gt;&lt;path class=&quot;edge back&quot; data-from=&quot;answer&quot; data-to=&quot;customer&quot; style=&quot;--d:4&quot; d=&quot;M607 98C560 -30 150 -30 57 176&quot; marker-end=&quot;url(#feedback-loop-head)&quot;&gt;&lt;/path&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;customer&quot; data-says=&quot;Customer: to customer development, the support address, the dashboard and SurveyMonkey; back from customer development, closing the loop.&quot;&gt;&lt;circle cx=&quot;50&quot; cy=&quot;190&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;50&quot; y=&quot;213&quot; text-anchor=&quot;middle&quot;&gt;Customer&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;heard&quot; data-says=&quot;Customer development: from the customer, to Zendesk.&quot;&gt;&lt;circle cx=&quot;200&quot; cy=&quot;95&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;200&quot; y=&quot;83&quot; text-anchor=&quot;middle&quot;&gt;Customer development&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;email&quot; data-says=&quot;support@company.com: from the customer, to Zendesk.&quot;&gt;&lt;circle cx=&quot;215&quot; cy=&quot;190&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;215&quot; y=&quot;178&quot; text-anchor=&quot;middle&quot;&gt;support@company.com&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;dashboard&quot; data-says=&quot;Dashboard: from the customer, to Zendesk and Google Analytics.&quot;&gt;&lt;circle cx=&quot;200&quot; cy=&quot;275&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;200&quot; y=&quot;298&quot; text-anchor=&quot;middle&quot;&gt;Dashboard&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;survey&quot; data-says=&quot;SurveyMonkey: from the customer, to the product.&quot;&gt;&lt;circle cx=&quot;255&quot; cy=&quot;332&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;255&quot; y=&quot;355&quot; text-anchor=&quot;middle&quot;&gt;SurveyMonkey&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;zendesk&quot; data-says=&quot;Zendesk: from customer development, the support address and the dashboard, to customer development and the product.&quot;&gt;&lt;circle cx=&quot;430&quot; cy=&quot;190&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;430&quot; y=&quot;213&quot; text-anchor=&quot;middle&quot;&gt;Zendesk&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;analytics&quot; data-says=&quot;Google Analytics: from the dashboard, to the product.&quot;&gt;&lt;circle cx=&quot;430&quot; cy=&quot;282&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;430&quot; y=&quot;305&quot; text-anchor=&quot;middle&quot;&gt;Google Analytics&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;answer&quot; data-says=&quot;Customer development: from Zendesk and the product, to the product; back to the customer, closing the loop.&quot;&gt;&lt;circle cx=&quot;615&quot; cy=&quot;115&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;615&quot; y=&quot;103&quot; text-anchor=&quot;middle&quot;&gt;Customer development&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;node&quot; tabindex=&quot;0&quot; data-node=&quot;product&quot; data-says=&quot;Product: from Zendesk, Google Analytics, SurveyMonkey and customer development, to customer development.&quot;&gt;&lt;circle cx=&quot;615&quot; cy=&quot;282&quot; r=&quot;5.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;615&quot; y=&quot;305&quot; text-anchor=&quot;middle&quot;&gt;Product&lt;/text&gt;&lt;/g&gt;&lt;/svg&gt;&lt;figcaption&gt;After the original drawing, with the services named in words in place of their logos.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-3f4539f&quot;&gt;Now go do it. Forget bells and whistles and ‘wow factors’ until you figure out what the user actually needs. Note that ‘needs’ and ‘wants’ are often entirely different.&lt;/p&gt;
&lt;p id=&quot;p-69a5c97&quot;&gt;Going back to the point about starting simple, you might ask, how do you know it’s simple enough?&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-b67000e&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Everything should be made as simple as possible, but not simpler.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Albert Einstein, as quoted in the original post&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;3-data-visualization-is-about-behavior-change&quot;&gt;3. Data Visualization is about Behavior Change&lt;/h3&gt;
&lt;p id=&quot;p-471d661&quot;&gt;What do I want the user to do after they look at my visualization / dashboard? Most of the stuff, maybe 99% is “nice to know” with a sprinkle of “actionable”. A very simple example would be to use a color coding where the color already sends a contextually relevant message to the user. For example, something that is &lt;em&gt;critical&lt;/em&gt; is darker red than something that is a &lt;em&gt;bug&lt;/em&gt;. A &lt;em&gt;nice to have&lt;/em&gt; would be light yellow, whereas &lt;em&gt;must have&lt;/em&gt; would be darker yellow. We don’t see a lot of this.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:296px;--shot-ratio:0.7456&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/five-essential-points-on-data-visualization/9.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;GitHub issue labels with colours: bug, crictical, discussion, duplicate, help wanted, invalid, must have, nice to have, question&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-ea0af6a&quot;&gt;But we do see (still) a lot of this.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:2.0202&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/five-essential-points-on-data-visualization/10.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Google Analytics overview dashboard, with sessions over time and pie charts of new and returning visitors&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-cc00b8c&quot;&gt;Endless menus, with endless depth and no indication of what to pay attention to (or what not to pay attention to).&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;4-behavior-change-is-about-behavior-change&quot;&gt;4. Behavior Change is about Behavior Change&lt;/h3&gt;
&lt;p id=&quot;p-e1be710&quot;&gt;Behavior change is not some buzzword, but an actual thing. You can (and should) engineer it exactly like you should engineer other aspects of a visualization project. One of the best ways to get started with the idea of behavior change engineering, is to adopt a framework that is specifically made for the purpose.&lt;/p&gt;
&lt;p id=&quot;p-848e395&quot;&gt;The basic premise in behavior change is that you need three things:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-4680d6e&quot;&gt;Ability&lt;/li&gt;
&lt;li id=&quot;p-d6a0619&quot;&gt;Motivation&lt;/li&gt;
&lt;li id=&quot;p-d3f06a5&quot;&gt;Trigger&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-303ebb2&quot;&gt;99(.9)% of all data visualization projects fail to appropriately address this. A good way to start learning about how to appropriately address it, is thinking carefully about the kind of behaviors you want the user to take.&lt;/p&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;




































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Green: do a new behavior&lt;/th&gt;&lt;th&gt;Blue: do a familiar behavior&lt;/th&gt;&lt;th&gt;Purple: increase a behavior&lt;/th&gt;&lt;th&gt;Gray: decrease a behavior&lt;/th&gt;&lt;th&gt;Black: stop a behavior&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Dot&lt;/strong&gt;: done one time&lt;/td&gt;&lt;td&gt;Install solar panels on house&lt;/td&gt;&lt;td&gt;Tell a sister about eco-friendly soap&lt;/td&gt;&lt;td&gt;Plant more trees and native plants&lt;/td&gt;&lt;td&gt;Buy fewer cases of bottled water today&lt;/td&gt;&lt;td&gt;Turn off space heater for tonight&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Span&lt;/strong&gt;: for a period of time&lt;/td&gt;&lt;td&gt;Try carpooling to work for three weeks&lt;/td&gt;&lt;td&gt;Bike to work for two months&lt;/td&gt;&lt;td&gt;Recycle more of household waste for one month&lt;/td&gt;&lt;td&gt;Take shorter showers this week&lt;/td&gt;&lt;td&gt;Don’t water lawn during summer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Path&lt;/strong&gt;: from now on&lt;/td&gt;&lt;td&gt;Start growing own vegetables&lt;/td&gt;&lt;td&gt;Turn off lights when leaving room&lt;/td&gt;&lt;td&gt;Buy more local produce&lt;/td&gt;&lt;td&gt;Eat less meat from now on&lt;/td&gt;&lt;td&gt;Never litter again&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-f413f23&quot;&gt;&lt;em&gt;The Behavior Grid, after BJ Fogg: fifteen kinds of behavior change, each with an example.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-0fde8e4&quot;&gt;Once you know exactly the kind of behaviors you are aiming for, then you can identify the relevant abilities, motivations and triggers, and put it together in to some amazing dataviz!&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;5-context-is-everything&quot;&gt;5. Context is Everything&lt;/h3&gt;
&lt;p id=&quot;p-d0277cc&quot;&gt;Technology (dashboards / plots / tables) are as useful as the context it’s in. For example, if you eat nothing but soup and I give you fork, then that is not a great technology at all. For salad eating on the other hand, fork is a brilliant piece of technology.&lt;/p&gt;
&lt;figure class=&quot;fig regions&quot; data-fig=&quot;regions&quot; data-k=&quot;0.15&quot; data-says=&quot;[&amp;#x22;technology interventions fail&amp;#x22;,&amp;#x22;technology interventions succeed&amp;#x22;]&quot; aria-label=&quot;Chart of context against function: technology interventions fail where context is low and succeed beyond the curve; a fork fails for soup and succeeds for salad&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Move the point: where function meets context, a technology intervention fails or succeeds.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 420&quot;&gt;&lt;g aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;axis&quot; x1=&quot;70&quot; y1=&quot;370&quot; x2=&quot;660&quot; y2=&quot;370&quot;&gt;&lt;/line&gt;&lt;line class=&quot;axis&quot; x1=&quot;70&quot; y1=&quot;370&quot; x2=&quot;70&quot; y2=&quot;12&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-name&quot; x=&quot;650&quot; y=&quot;404&quot; text-anchor=&quot;end&quot;&gt;Function&lt;/text&gt;&lt;text class=&quot;axis-name&quot; x=&quot;54&quot; y=&quot;24&quot; text-anchor=&quot;end&quot; transform=&quot;rotate(-90 54 24)&quot;&gt;Context&lt;/text&gt;&lt;path class=&quot;divide&quot; d=&quot;M157.0 20.0L165.4 50.7L173.7 76.4L182.1 98.3L190.4 117.1L198.8 133.5L207.1 148.0L215.5 160.7L223.8 172.1L232.2 182.3L240.6 191.5L248.9 199.8L257.3 207.4L265.6 214.3L274.0 220.7L282.3 226.6L290.7 232.0L299.1 237.1L307.4 241.7L315.8 246.1L324.1 250.2L332.5 254.0L340.8 257.6L349.2 260.9L357.5 264.1L365.9 267.1L374.3 269.9L382.6 272.6L391.0 275.1L399.3 277.5L407.7 279.8L416.0 282.0L424.4 284.1L432.7 286.1L441.1 287.9L449.5 289.8L457.8 291.5L466.2 293.1L474.5 294.7L482.9 296.3L491.2 297.7L499.6 299.1L507.9 300.5L516.3 301.8L524.7 303.0L533.0 304.2L541.4 305.4L549.7 306.5L558.1 307.6L566.4 308.7L574.8 309.7L583.2 310.7L591.5 311.6L599.9 312.5L608.2 313.4L616.6 314.3L624.9 315.1L633.3 315.9L641.6 316.7L650.0 317.5&quot;&gt;&lt;/path&gt;&lt;text class=&quot;side fail&quot; x=&quot;87.4&quot; y=&quot;195.0&quot;&gt;&lt;tspan x=&quot;87.4&quot; dy=&quot;0&quot;&gt;technology&lt;/tspan&gt;&lt;tspan x=&quot;87.4&quot; dy=&quot;1.15em&quot;&gt;interventions&lt;/tspan&gt;&lt;tspan x=&quot;87.4&quot; dy=&quot;1.15em&quot;&gt;fail&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;side succeed&quot; x=&quot;360.0&quot; y=&quot;44.5&quot;&gt;&lt;tspan x=&quot;360.0&quot; dy=&quot;0&quot;&gt;technology&lt;/tspan&gt;&lt;tspan x=&quot;360.0&quot; dy=&quot;1.15em&quot;&gt;interventions&lt;/tspan&gt;&lt;tspan x=&quot;360.0&quot; dy=&quot;1.15em&quot;&gt;succeed&lt;/tspan&gt;&lt;/text&gt;&lt;g class=&quot;example&quot;&gt;&lt;circle cx=&quot;418.0&quot; cy=&quot;331.5&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;427.0&quot; y=&quot;335.5&quot;&gt;a fork, for soup&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;example&quot;&gt;&lt;circle cx=&quot;418.0&quot; cy=&quot;153.0&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;427.0&quot; y=&quot;157.0&quot;&gt;a fork, for salad&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;circle class=&quot;probe&quot; cx=&quot;534&quot; cy=&quot;188&quot; r=&quot;9&quot; tabindex=&quot;0&quot; role=&quot;slider&quot; aria-label=&quot;Function and Context&quot; aria-valuemin=&quot;0&quot; aria-valuemax=&quot;100&quot; aria-valuenow=&quot;80&quot; hidden=&quot;&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;figcaption&gt;The fork is the piece’s own example: one function, in two contexts.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-34bd786&quot;&gt;Generally what you think is relevant, is far less relevant to others. Because you tend to establish relevance based on your own ideas and preferences, and conversely others do it based on theirs.&lt;/p&gt;
&lt;p id=&quot;p-14eedbf&quot;&gt;For example, I needed to do a lot of descriptive stats tables, but I did not want to go out of my dev environment which is iPython / Jupyter. Painfully seeking high and low for a solution, I came to conclude that there was no meaningful way to do it without moving the data out first. I was proficient in two different visualization libraries (Matplotlib and Seaborn), Pandas and a bunch of other Pydata stuffs, but this is not something I could do with any of it. So I built it, which I find is often the best way to get exactly what you need the way you need it. In this case I was the user, so it’s easy to know the actual need. That’s the kind of match there should be between demand and supply.&lt;/p&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;
































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Tweet text&lt;/th&gt;&lt;th&gt;Median&lt;/th&gt;&lt;th&gt;Mean&lt;/th&gt;&lt;th&gt;Standard deviation&lt;/th&gt;&lt;th&gt;Total&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Entropy&lt;/td&gt;&lt;td&gt;0.602&lt;/td&gt;&lt;td&gt;0.595&lt;/td&gt;&lt;td&gt;0.031&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Number of words&lt;/td&gt;&lt;td&gt;17.5&lt;/td&gt;&lt;td&gt;17.5&lt;/td&gt;&lt;td&gt;5.003&lt;/td&gt;&lt;td&gt;875&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Length&lt;/td&gt;&lt;td&gt;140.5&lt;/td&gt;&lt;td&gt;129.22&lt;/td&gt;&lt;td&gt;20.981&lt;/td&gt;&lt;td&gt;6,461&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-18b6901&quot;&gt;&lt;em&gt;Table 2 of the original post: tweet text statistics.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-8c30a6f&quot;&gt;Then that led to doing some other really basic plots that I found it was hard to do with some of the well established packages out there:&lt;/p&gt;
&lt;figure class=&quot;fig bubbles&quot; data-fig=&quot;bubbles&quot; data-step=&quot;0&quot; data-points=&quot;[[178.2,286.6,1,1.01,1,0],[298.4,285.9,2,1.04,1,0],[335.9,286.6,2.98,1.01,1,1],[335.9,263.3,2.98,2.04,0,2],[362.8,255.8,3.97,3.09,1,2],[363.1,287,3.98,0.991,0,3],[363.1,247.1,3.98,4.98,0,3],[383.7,251.3,4.96,3.96,1,1],[383.7,239.2,4.96,7.7,1,1],[384.3,245.1,4.99,5.56,0,2],[401,228.7,5.96,13.8,0,2],[401.5,240.7,5.99,7.09,1,1],[415.4,210.6,6.95,37.4,1,1],[415.6,218.1,6.96,24.8,0,3],[428,227.9,7.94,14.4,1,1],[428,206.1,7.94,48,0,1],[428,199.3,7.94,69.7,0,3],[428.2,220.4,7.96,21.8,0,3],[439.1,232.8,8.94,11,0,3],[439.1,224.9,8.94,17,0,2],[439.1,191.8,8.94,106,0,1],[439.1,184.8,8.94,156,0,3],[439.3,210.1,8.96,38.4,0,3],[439.3,205.9,8.96,48.6,0,3],[448.9,222,9.92,20,0,2],[448.9,215.2,9.92,29.1,1,2],[448.9,200.1,9.92,66.9,0,0],[448.9,180.5,9.92,197,0,1],[449.2,173.5,9.95,291,0,2],[457.7,209.1,10.9,40.6,1,1],[457.7,198.6,10.9,72.7,0,3],[457.7,166.6,10.9,425,0,3],[458.6,194.5,11,91.3,0,3],[458.6,187.2,11,136,0,2],[458.6,183.5,11,167,0,2],[458.6,173,11,299,0,2],[466,199.3,11.9,69.7,0,3],[466,189.1,11.9,123,0,3],[466,182.1,11.9,181,0,1],[466,163.2,11.9,513,0,2],[466,157.9,11.9,686,0,3],[466.8,209.1,12,40.6,1,1],[473.6,220.4,12.9,21.8,1,1],[473.6,205.4,12.9,50,1,1],[473.6,197.1,12.9,79,1,1],[473.6,186.6,12.9,141,0,1],[473.6,170.8,12.9,338,1,1],[473.6,164,12.9,492,0,2],[480.6,203.9,13.9,54.3,0,2],[480.6,194.2,13.9,92.6,0,2],[480.6,187.2,13.9,136,1,1],[480.6,179,13.9,214,0,1],[480.6,170,13.9,353,0,1],[480.6,156.4,13.9,745,0,1],[487.1,193.3,14.9,97.2,1,1],[487.1,187.2,14.9,136,0,2],[487.1,183.5,14.9,167,0,2],[487.1,170.8,14.9,338,0,1],[487.1,155.7,14.9,777,0,0],[487.1,145.1,14.9,1390,0,3],[487.7,209.1,15,40.6,1,1],[493.2,201.6,15.9,61.5,0,3],[493.2,185.8,15.9,147,0,2],[493.2,181.3,15.9,189,0,3],[493.2,172.3,15.9,311,0,1],[493.2,165.9,15.9,442,0,3],[493.2,159.1,15.9,645,0,3],[493.2,151.9,15.9,956,0,3],[493.2,144,15.9,1480,0,3],[493.2,117.3,15.9,6470,0,2],[498.9,186.6,16.9,141,1,1],[498.9,178.9,16.9,216,0,3],[498.9,173.8,16.9,286,0,2],[498.9,167,16.9,416,0,2],[498.9,160.2,16.9,605,0,1],[498.9,153.5,16.9,874,0,3],[498.9,147.4,16.9,1230,0,1],[498.9,140.6,16.9,1790,0,3],[504.3,182.2,17.9,180,0,3],[504.3,175.2,17.9,264,0,3],[504.3,170.8,17.9,338,0,1],[504.3,159.9,17.9,616,0,2],[504.3,152.7,17.9,917,0,1],[504.3,145.1,17.9,1390,0,1],[504.3,133.6,17.9,2630,0,3],[509.5,178,18.9,226,0,3],[509.5,168.5,18.9,383,0,3],[509.5,157.9,18.9,686,0,2],[509.5,134.6,18.9,2490,0,2],[513.8,183.5,19.8,167,0,1],[513.8,165.5,19.8,453,1,1],[513.8,157.2,19.8,715,0,1],[513.8,139.9,19.8,1860,0,2],[517.1,120.3,20.5,5480,0,2],[518,148.1,20.7,1180,0,1],[518.9,167.7,20.9,399,0,2],[518.9,164,20.9,492,0,3],[518.9,159.4,20.9,631,0,2],[518.9,155.4,20.9,790,0,3],[518.9,139.9,20.9,1860,0,1],[522.4,153.4,21.7,880,0,2],[522.9,159.4,21.8,631,0,3],[522.9,136.8,21.8,2200,0,1],[522.9,118.8,21.8,5950,0,0],[523.3,176.4,21.9,248,0,3],[523.3,147.4,21.9,1230,1,1],[527.1,151.9,22.8,956,1,1],[527.5,163.2,22.9,513,1,1],[527.5,143.6,22.9,1510,0,1],[531.1,149.2,23.8,1110,0,3],[531.1,143.6,23.8,1510,0,2],[531.1,135.3,23.8,2390,0,1],[531.1,121.8,23.8,5040,0,1],[531.5,153.6,23.9,872,0,3],[531.5,147.4,23.9,1230,0,3],[531.5,128.7,23.9,3440,0,3],[535,151.2,24.8,997,0,3],[535,145.9,24.8,1330,0,2],[535,130,24.8,3210,0,3],[535,125.6,24.8,4100,0,3],[535,110.5,24.8,9400,0,2],[535,84.2,24.8,40300,0,3],[535.4,162.1,24.9,546,0,3],[538.7,155.7,25.8,777,0,3],[538.7,134.6,25.8,2490,0,2],[538.7,128.3,25.8,3520,0,3],[538.7,122.5,25.8,4840,0,2],[538.7,113.5,25.8,7960,0,2],[539.1,145.1,25.9,1390,0,3],[542.3,134.6,26.8,2490,0,3],[542.3,124.8,26.8,4270,1,1],[542.3,118.8,26.8,5950,0,2],[542.3,109.4,26.8,10000,0,3],[542.3,102.9,26.8,14300,0,2],[545.7,144.1,27.8,1470,0,3],[545.7,100.8,27.8,16100,0,2],[546,116.2,27.9,6890,0,3],[546,112.4,27.9,8480,0,3],[549,128.6,28.8,3470,1,1],[549,119.6,28.8,5710,0,3],[549,111.6,28.8,8840,0,3],[549,76.1,28.8,62800,0,3],[552.2,120.9,29.8,5290,0,3],[552.2,114.8,29.8,7430,0,3],[552.2,110,29.8,9690,0,3],[552.2,106.1,29.8,12000,0,3],[552.2,102.3,29.8,14800,0,3],[552.2,93.2,29.8,24500,0,2],[552.6,123.3,29.9,4640,0,3],[555.3,113,30.8,8190,0,3],[555.3,109,30.8,10200,0,3],[555.3,102.2,30.8,14900,0,2],[555.3,87.7,30.8,33200,0,3],[555.3,83,30.8,42900,0,3],[558.3,117.5,31.8,6380,0,3],[558.3,111.3,31.8,9020,0,3],[558.3,105.2,31.8,12600,0,3],[558.3,95.5,31.8,21600,0,2],[558.3,82.3,31.8,44700,0,3],[561.3,118,32.8,6210,0,3],[561.3,108.2,32.8,10700,0,3],[564.1,104.1,33.8,13400,0,3],[564.1,95.9,33.8,21100,0,3],[566.5,89.4,34.7,30100,0,1],[566.8,107.8,34.8,10900,0,3],[566.8,62.7,34.8,132000,0,3],[569.5,98.5,35.8,18300,0,2],[571.8,85.7,36.7,37100,0,3],[574.6,77.8,37.8,57300,0,3],[577,91,38.8,27700,0,3],[586,51.8,42.7,241000,0,3],[588.4,55,43.8,202000,0,3]]&quot; data-classes=&quot;[&amp;#x22;An account with its own picture&amp;#x22;,&amp;#x22;An egg account, with no picture of its own&amp;#x22;]&quot; data-sizes=&quot;[&amp;#x22;as retweeted as any account here&amp;#x22;,&amp;#x22;much retweeted&amp;#x22;,&amp;#x22;retweeted a little&amp;#x22;,&amp;#x22;hardly retweeted&amp;#x22;]&quot; data-names=&quot;[&amp;#x22;influence&amp;#x22;,&amp;#x22;reach&amp;#x22;]&quot; aria-label=&quot;Twitter accounts by influence and reach score, sized by retweets: egg accounts, with no picture of their own, sit lower, and three of them reach almost no one&quot;&gt;&lt;div class=&quot;fig-head&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Reach grows with influence, and steeply: the 172 accounts lie along one line.&lt;/p&gt;&lt;ul class=&quot;fig-key&quot;&gt;&lt;li&gt;&lt;i class=&quot;c0&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;with their own picture&lt;/li&gt;&lt;li&gt;&lt;i class=&quot;c1&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;egg accounts&lt;/li&gt;&lt;li class=&quot;fig-small&quot;&gt;the larger the dot, the more retweets&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 360&quot; role=&quot;img&quot; aria-label=&quot;Twitter accounts by influence and reach: Reach grows with influence, and steeply: the 172 accounts lie along one line. The 26 egg accounts, with no picture of their own, sit low on it: half of them reach fewer than 40, half of the others about 1,000 or more. Three egg accounts reach almost no one: a reach of one. Two of them are among the three largest dots, as retweeted as any account here.&quot;&gt;&lt;line class=&quot;grid&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;310.0&quot; y2=&quot;310.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;50&quot; y=&quot;314.0&quot; text-anchor=&quot;end&quot;&gt;0&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;286.8&quot; y2=&quot;286.8&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;50&quot; y=&quot;290.8&quot; text-anchor=&quot;end&quot;&gt;1&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;234.5&quot; y2=&quot;234.5&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;50&quot; y=&quot;238.5&quot; text-anchor=&quot;end&quot;&gt;10&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;192.8&quot; y2=&quot;192.8&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;50&quot; y=&quot;196.8&quot; text-anchor=&quot;end&quot;&gt;100&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;151.1&quot; y2=&quot;151.1&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;50&quot; y=&quot;155.1&quot; text-anchor=&quot;end&quot;&gt;1k&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;109.4&quot; y2=&quot;109.4&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;50&quot; y=&quot;113.4&quot; text-anchor=&quot;end&quot;&gt;10k&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;67.7&quot; y2=&quot;67.7&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;50&quot; y=&quot;71.7&quot; text-anchor=&quot;end&quot;&gt;100k&lt;/text&gt;&lt;line class=&quot;grid&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;26.0&quot; y2=&quot;26.0&quot;&gt;&lt;/line&gt;&lt;text class=&quot;tick&quot; x=&quot;50&quot; y=&quot;30.0&quot; text-anchor=&quot;end&quot;&gt;1M&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;58.0&quot; y=&quot;330&quot; text-anchor=&quot;middle&quot;&gt;0&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;178.2&quot; y=&quot;330&quot; text-anchor=&quot;middle&quot;&gt;1&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;449.6&quot; y=&quot;330&quot; text-anchor=&quot;middle&quot;&gt;10&lt;/text&gt;&lt;text class=&quot;tick&quot; x=&quot;666.0&quot; y=&quot;330&quot; text-anchor=&quot;middle&quot;&gt;100&lt;/text&gt;&lt;line class=&quot;axis&quot; x1=&quot;58&quot; x2=&quot;666&quot; y1=&quot;310&quot; y2=&quot;310&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-label&quot; x=&quot;362&quot; y=&quot;354&quot; text-anchor=&quot;middle&quot;&gt;influence score&lt;/text&gt;&lt;text class=&quot;axis-label&quot; x=&quot;58&quot; y=&quot;16&quot;&gt;reach score&lt;/text&gt;&lt;circle class=&quot;dot c1 s1 s2&quot; cx=&quot;178.2&quot; cy=&quot;286.6&quot; r=&quot;7.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1 s2&quot; cx=&quot;298.4&quot; cy=&quot;285.9&quot; r=&quot;7.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1 s2&quot; cx=&quot;335.9&quot; cy=&quot;286.6&quot; r=&quot;4.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;335.9&quot; cy=&quot;263.3&quot; r=&quot;2.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;362.8&quot; cy=&quot;255.8&quot; r=&quot;3.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;363.1&quot; cy=&quot;287.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;363.1&quot; cy=&quot;247.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;383.7&quot; cy=&quot;251.3&quot; r=&quot;4.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;383.7&quot; cy=&quot;239.2&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;384.3&quot; cy=&quot;245.1&quot; r=&quot;3.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;401.0&quot; cy=&quot;228.7&quot; r=&quot;3.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;401.5&quot; cy=&quot;240.7&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;415.4&quot; cy=&quot;210.6&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;415.6&quot; cy=&quot;218.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;428.0&quot; cy=&quot;227.9&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;428.0&quot; cy=&quot;206.1&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;428.0&quot; cy=&quot;199.3&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;428.2&quot; cy=&quot;220.4&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;439.1&quot; cy=&quot;232.8&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;439.1&quot; cy=&quot;224.9&quot; r=&quot;2.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;439.1&quot; cy=&quot;191.8&quot; r=&quot;5.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;439.1&quot; cy=&quot;184.8&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;439.3&quot; cy=&quot;210.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;439.3&quot; cy=&quot;205.9&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;448.9&quot; cy=&quot;222.0&quot; r=&quot;2.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;448.9&quot; cy=&quot;215.2&quot; r=&quot;3.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;448.9&quot; cy=&quot;200.1&quot; r=&quot;7.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;448.9&quot; cy=&quot;180.5&quot; r=&quot;5.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;449.2&quot; cy=&quot;173.5&quot; r=&quot;2.7&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;457.7&quot; cy=&quot;209.1&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;457.7&quot; cy=&quot;198.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;457.7&quot; cy=&quot;166.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;458.6&quot; cy=&quot;194.5&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;458.6&quot; cy=&quot;187.2&quot; r=&quot;2.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;458.6&quot; cy=&quot;183.5&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;458.6&quot; cy=&quot;173.0&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;466.0&quot; cy=&quot;199.3&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;466.0&quot; cy=&quot;189.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;466.0&quot; cy=&quot;182.1&quot; r=&quot;5.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;466.0&quot; cy=&quot;163.2&quot; r=&quot;2.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;466.0&quot; cy=&quot;157.9&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;466.8&quot; cy=&quot;209.1&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;473.6&quot; cy=&quot;220.4&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;473.6&quot; cy=&quot;205.4&quot; r=&quot;4.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;473.6&quot; cy=&quot;197.1&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;473.6&quot; cy=&quot;186.6&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;473.6&quot; cy=&quot;170.8&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;473.6&quot; cy=&quot;164.0&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;480.6&quot; cy=&quot;203.9&quot; r=&quot;2.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;480.6&quot; cy=&quot;194.2&quot; r=&quot;3.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;480.6&quot; cy=&quot;187.2&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;480.6&quot; cy=&quot;179.0&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;480.6&quot; cy=&quot;170.0&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;480.6&quot; cy=&quot;156.4&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;487.1&quot; cy=&quot;193.3&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;487.1&quot; cy=&quot;187.2&quot; r=&quot;2.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;487.1&quot; cy=&quot;183.5&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;487.1&quot; cy=&quot;170.8&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;487.1&quot; cy=&quot;155.7&quot; r=&quot;6.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;487.1&quot; cy=&quot;145.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;487.7&quot; cy=&quot;209.1&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;201.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;185.8&quot; r=&quot;3.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;181.3&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;172.3&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;165.9&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;159.1&quot; r=&quot;1.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;151.9&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;144.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;493.2&quot; cy=&quot;117.3&quot; r=&quot;2.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;498.9&quot; cy=&quot;186.6&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;498.9&quot; cy=&quot;178.9&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;498.9&quot; cy=&quot;173.8&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;498.9&quot; cy=&quot;167.0&quot; r=&quot;2.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;498.9&quot; cy=&quot;160.2&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;498.9&quot; cy=&quot;153.5&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;498.9&quot; cy=&quot;147.4&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;498.9&quot; cy=&quot;140.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;504.3&quot; cy=&quot;182.2&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;504.3&quot; cy=&quot;175.2&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;504.3&quot; cy=&quot;170.8&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;504.3&quot; cy=&quot;159.9&quot; r=&quot;2.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;504.3&quot; cy=&quot;152.7&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;504.3&quot; cy=&quot;145.1&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;504.3&quot; cy=&quot;133.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;509.5&quot; cy=&quot;178.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;509.5&quot; cy=&quot;168.5&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;509.5&quot; cy=&quot;157.9&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;509.5&quot; cy=&quot;134.6&quot; r=&quot;2.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;513.8&quot; cy=&quot;183.5&quot; r=&quot;4.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;513.8&quot; cy=&quot;165.5&quot; r=&quot;5.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;513.8&quot; cy=&quot;157.2&quot; r=&quot;4.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;513.8&quot; cy=&quot;139.9&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;517.1&quot; cy=&quot;120.3&quot; r=&quot;2.3&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;518.0&quot; cy=&quot;148.1&quot; r=&quot;4.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;518.9&quot; cy=&quot;167.7&quot; r=&quot;2.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;518.9&quot; cy=&quot;164.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;518.9&quot; cy=&quot;159.4&quot; r=&quot;2.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;518.9&quot; cy=&quot;155.4&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;518.9&quot; cy=&quot;139.9&quot; r=&quot;5.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;522.4&quot; cy=&quot;153.4&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;522.9&quot; cy=&quot;159.4&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;522.9&quot; cy=&quot;136.8&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;522.9&quot; cy=&quot;118.8&quot; r=&quot;7.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;523.3&quot; cy=&quot;176.4&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;523.3&quot; cy=&quot;147.4&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;527.1&quot; cy=&quot;151.9&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;527.5&quot; cy=&quot;163.2&quot; r=&quot;5.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;527.5&quot; cy=&quot;143.6&quot; r=&quot;4.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;531.1&quot; cy=&quot;149.2&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;531.1&quot; cy=&quot;143.6&quot; r=&quot;2.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;531.1&quot; cy=&quot;135.3&quot; r=&quot;4.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;531.1&quot; cy=&quot;121.8&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;531.5&quot; cy=&quot;153.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;531.5&quot; cy=&quot;147.4&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;531.5&quot; cy=&quot;128.7&quot; r=&quot;1.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;535.0&quot; cy=&quot;151.2&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;535.0&quot; cy=&quot;145.9&quot; r=&quot;2.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;535.0&quot; cy=&quot;130.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;535.0&quot; cy=&quot;125.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;535.0&quot; cy=&quot;110.5&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;535.0&quot; cy=&quot;84.2&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;535.4&quot; cy=&quot;162.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;538.7&quot; cy=&quot;155.7&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;538.7&quot; cy=&quot;134.6&quot; r=&quot;2.2&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;538.7&quot; cy=&quot;128.3&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;538.7&quot; cy=&quot;122.5&quot; r=&quot;2.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;538.7&quot; cy=&quot;113.5&quot; r=&quot;2.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;539.1&quot; cy=&quot;145.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;542.3&quot; cy=&quot;134.6&quot; r=&quot;1.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;542.3&quot; cy=&quot;124.8&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;542.3&quot; cy=&quot;118.8&quot; r=&quot;2.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;542.3&quot; cy=&quot;109.4&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;542.3&quot; cy=&quot;102.9&quot; r=&quot;3.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;545.7&quot; cy=&quot;144.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;545.7&quot; cy=&quot;100.8&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;546.0&quot; cy=&quot;116.2&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;546.0&quot; cy=&quot;112.4&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c1 s1&quot; cx=&quot;549.0&quot; cy=&quot;128.6&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;549.0&quot; cy=&quot;119.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;549.0&quot; cy=&quot;111.6&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;549.0&quot; cy=&quot;76.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;552.2&quot; cy=&quot;120.9&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;552.2&quot; cy=&quot;114.8&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;552.2&quot; cy=&quot;110.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;552.2&quot; cy=&quot;106.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;552.2&quot; cy=&quot;102.3&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;552.2&quot; cy=&quot;93.2&quot; r=&quot;3.0&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;552.6&quot; cy=&quot;123.3&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;555.3&quot; cy=&quot;113.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;555.3&quot; cy=&quot;109.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;555.3&quot; cy=&quot;102.2&quot; r=&quot;2.8&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;555.3&quot; cy=&quot;87.7&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;555.3&quot; cy=&quot;83.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;558.3&quot; cy=&quot;117.5&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;558.3&quot; cy=&quot;111.3&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;558.3&quot; cy=&quot;105.2&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;558.3&quot; cy=&quot;95.5&quot; r=&quot;3.4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;558.3&quot; cy=&quot;82.3&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;561.3&quot; cy=&quot;118.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;561.3&quot; cy=&quot;108.2&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;564.1&quot; cy=&quot;104.1&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;564.1&quot; cy=&quot;95.9&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;566.5&quot; cy=&quot;89.4&quot; r=&quot;4.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;566.8&quot; cy=&quot;107.8&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;566.8&quot; cy=&quot;62.7&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;569.5&quot; cy=&quot;98.5&quot; r=&quot;3.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;571.8&quot; cy=&quot;85.7&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;574.6&quot; cy=&quot;77.8&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;577.0&quot; cy=&quot;91.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;586.0&quot; cy=&quot;51.8&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;dot c0&quot; cx=&quot;588.4&quot; cy=&quot;55.0&quot; r=&quot;1.6&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;near&quot; r=&quot;9&quot; cx=&quot;-20&quot; cy=&quot;-20&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;ol class=&quot;bubbles-story&quot;&gt;&lt;li data-step=&quot;0&quot;&gt;Reach grows with influence, and steeply: the 172 accounts lie along one line.&lt;/li&gt;&lt;li data-step=&quot;1&quot;&gt;The 26 egg accounts, with no picture of their own, sit low on it: half of them reach fewer than 40, half of the others about 1,000 or more.&lt;/li&gt;&lt;li data-step=&quot;2&quot;&gt;Three egg accounts reach almost no one: a reach of one. Two of them are among the three largest dots, as retweeted as any account here.&lt;/li&gt;&lt;/ol&gt;&lt;figcaption&gt;Every account in the original plot, read from its picture, on the original’s scales: straight from nought to two, then by tens. The larger the dot, the higher its retweet count; where dots overlap, as near as they could be told apart.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-fb6faa5&quot;&gt;Later I made astetik into a python package so everyone else needing to do descriptive data tables could do it as well. I figured that might be a few people.&lt;/p&gt;
&lt;figure class=&quot;code code-shellscript&quot; id=&quot;code-1&quot; data-lines=&quot;1&quot; aria-label=&quot;Shell&quot;&gt;&lt;div class=&quot;code-bar&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;code-tools&quot; data-code-tools=&quot;&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;code-wrap&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Wrap long lines&quot; title=&quot;Wrap long lines&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.5 5.5h13M3.5 10h10.5a2.5 2.5 0 0 1 0 5H11M12.5 13l-2 2 2 2M3.5 14.5H8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;code-copy&quot; aria-label=&quot;Copy the code&quot; title=&quot;Copy the code&quot;&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.5 8A1.5 1.5 0 0 1 8 6.5h7A1.5 1.5 0 0 1 16.5 8v7a1.5 1.5 0 0 1-1.5 1.5H8A1.5 1.5 0 0 1 6.5 15zM13.5 6.5v-2a1.5 1.5 0 0 0-1.5-1.5H5A1.5 1.5 0 0 0 3.5 4.5V12A1.5 1.5 0 0 0 5 13.5h1.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code-body&quot; data-pagefind-ignore=&quot;&quot;&gt;&lt;div class=&quot;code-line&quot; id=&quot;code-1-L1&quot;&gt;&lt;span class=&quot;ln&quot; aria-hidden=&quot;true&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;code-src&quot; style=&quot;--i:0&quot;&gt;&lt;span class=&quot;t-function&quot;&gt;pip&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;t-string&quot;&gt;astetik&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-75f9162&quot;&gt;My last example is related with deep learning, the most froth inducing topic in the world of analytics. Again I was looking at what I could do with the libraries I already knew how to use, and what I could do with Keras or Sci-kit, or Tensorflow. None of it gave the exact thing I needed as my primary result view to get started in doing hundreds and thousands of tests with all kinds of data. None of it supported the kind of visualization I would need. So I started with this…&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:1.5267&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/five-essential-points-on-data-visualization/13.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Training output of a neural network experiment: accuracy 89.73%, the trial parameters, and accuracy and loss over epochs&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-ff7affb&quot;&gt;Then that led to the understanding of what I actually needed, so I was able to move forward building that.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;closing-words&quot;&gt;Closing Words&lt;/h3&gt;
&lt;p id=&quot;p-c13c27b&quot;&gt;Generally what you think is important (for yourself) is just a reflection of your limited understanding of the scope / domain. The more time you put into the initial build, the less likely you’re going to make significant changes (according to your actual needs) later. This is called emotional attachment, avoid it like plague. Or otherwise the whole thing may end up something like this…&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Amantes, amentes&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/5d74cdd27b66e0a6.png&quot; alt=&quot;A woman and two cats in party hats at a birthday cake&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;Lovers, out of their minds.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;after Terence, The Girl from Andros&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The picture&lt;/b&gt; two cats in party hats at a birthday cake&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-83ef2da&quot;&gt;As a parting word, I want to leave you with something to think about. We often think that we’re experts in a given topic, and that’s really not helping. It’s much better to start with a blank sheet of paper, and assume to know nothing at all. Always go back to the needs of the user, and your inability to accurately understand it (even if you’re the user), and the way things are always changing and how analytics dashboards / dataviz is not like some art piece sitting in a museum (even though often it ends up like that) but a living, continuously evolving thing.&lt;/p&gt;
&lt;p id=&quot;p-ad05e93&quot;&gt;At best data visualization is a thing that can help make people’s lives less frustrating, their work more productive, and help them feel more joy in whatever it is that they are doing. Have fun!&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-663ec52&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;In the beginners mind there are many possibilities, but in the expert’s mind there are few.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Shunryū Suzuki&lt;/figcaption&gt;
&lt;/figure&gt;</content></entry><entry><title>Jigme Lingpa on Sickness</title><link href="https://mikkokotila.com/writing/jigme-lingpa-on-sickness/"/><id>https://mikkokotila.com/writing/jigme-lingpa-on-sickness/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="practice"/><category term="health"/><summary>But see them as the signs of the waning of your bad karmas, and rejoice over them.</summary><content type="html">&lt;!-- image unavailable: https://cancercompliment.org/wp-content/uploads/2017/06/jigmelingpa.jpg --&gt;
&lt;p id=&quot;p-c6d9f2f&quot; class=&quot;opening&quot;&gt;Sickness are the brooms sweeping your evil deeds.&lt;br&gt;
Seeing the sickness as the teacher, pray to them…&lt;br&gt;
Sickness are coming to you by the kindness of the masters and the Three Jewels.&lt;br&gt;
Sickness are your accomplishments, so worship them as the deities.&lt;br&gt;
Sickness are the signs that your bad karmas are being exhausted.&lt;br&gt;
Do not look at the face of your sickness, but at the one (the mind) who is sick.&lt;br&gt;
Do not place the sickness on your mind, but place your naked intrinsic awareness upon your sickness.&lt;br&gt;
This is the instruction on sickness arising as the Dharmakāya.&lt;br&gt;
The body is inanimate and mind is emptiness.&lt;br&gt;
What can cause pain to an inanimate thing or harm to the emptiness?&lt;br&gt;
Search for where the sickness are coming from, where they go, and where they dwell.&lt;br&gt;
Sickness are mere sudden projections of your thoughts.&lt;br&gt;
When those thoughts disappear, the sickness dissolve too…&lt;br&gt;
There is not better fuel than sickness to burn off the bad karmas.&lt;br&gt;
But see them as the signs of the waning of your bad karmas, and rejoice &lt;span class=&quot;nowrap&quot;&gt;over them.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-fb793c9&quot;&gt;Source: &lt;a href=&quot;https://www.amazon.com/Masters-Meditation-Miracles-Buddhist-Buddhayana/dp/1570625093/ref=as_li_ss_tl?ie=UTF8&amp;#x26;linkCode=ll1&amp;#x26;tag=wisdomcompass-20&amp;#x26;linkId=91b2b844094c1bc8c957d94d63406ff2&quot;&gt;Masters of Meditation and Miracles by Tulku Thondrup&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer (10) – Afterword</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-10-afterword/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-10-afterword/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>The manuscript for this pamphlet was written two years ago in New York I’d hoped to publish an English version but could not ﬁnd a com- &lt; petent translator. This past spring I returned to Taiwan where JDI’.</summary><content type="html">&lt;p id=&quot;p-d5cdc49&quot; class=&quot;opening&quot;&gt;The manuscript for this pamphlet was written two years ago in New York I’d hoped to publish an English version but could not ﬁnd a com- &amp;#x3C; petent translator. This past spring I returned to Taiwan where JDI’. Lee Huan—shen of the National Chinese Medical Research Association read the manuscript and urged me to pubh’sh it. He added, ‘An‘ appendix of herbal prescriptions would certainly help many.” I replied, “This is a painful subject for me. A while back my teacher, Ch’ien Ming-shan wrote &lt;span class=&quot;nowrap&quot;&gt;the lines:&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-f525bb1&quot;&gt;&lt;em&gt;I have a golden pill to bestow upon the world.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-acb5e94&quot;&gt;&lt;em&gt;But people see mere dog feces.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-706bc60&quot;&gt;Cancer is constantly changing and never limited to a single symptom—static prescriptions never cure an illness in ﬂux, and may even cause some harm.” He replied, “If this is the case, why not ﬁrst experiment on animals and examine the varying effects? Then you can prove the applications and publish the results.” But animal experiments are useless because their physical make—up is different from man, nor do I agree with laboratory testing of animals. Chinese medicine establishes a relationship between doctor and patient, and mutual assistance is imperative. Its effectiveness lies in attacking, scattering, draining, or supplementing a situation, and it brings the patient m’to proper balance. I trust my methods—they never harm the patient or involve a great expense. If the patient has undergone surgery for stomach or intestinal cancer or has hard part of the uterus or breast removed, and the cancer returns, additional surgery may be prohibitive. The surgeon Will’ be helpless and the patient can only await death. At this pom’t I would tell myself to courageously ﬁght on and treat the patient while dispensing with any monetary proﬁt. If my labors are not totally effective, I Will have at least tried as sincerely as if he were my own family—— nor would I have injured him, either.&lt;/p&gt;
&lt;p id=&quot;p-da84794&quot;&gt;From my forty years of experience, I’ve found that 70 to 80 percent of cancer patients can be cured, with 50 percent having complete recovery. If the world could see these results, Chinese medicine would become more acceptable, beneﬁting not only cancer patients but all mankind.&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer (2) – History</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-2-history/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-2-history/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>Cancer-related afflictions have increased at an alarming rate in this century. Records from the United States Department of Health indicate that cancer claims one life every four minutes.</summary><content type="html">&lt;p id=&quot;p-d9be356&quot; class=&quot;opening&quot;&gt;Cancer-related afflictions have increased at an alarming rate in this century. Records from the United States Department of Health indicate that cancer claims one life every four minutes. Let me summarize what Chinese medical history says &lt;span class=&quot;nowrap&quot;&gt;about cancer.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-4d1c403&quot;&gt;In the Ling Chu Classic, the chapter on “Lesions” contains much information on epidermal lesions, but does not clearly describe the symptoms we recognize as cancer. The chapter “Carbuncles and Boils” relates the appearance of skin ulcers which show characteristics of cancer lesions, though the two are quite different.&lt;/p&gt;
&lt;p id=&quot;p-7e93f0e&quot;&gt;The Tang Dynasty (613~906 AD) physician Yan Shih-ying authored a medical guide in which he recounts an unknown illness. He said the first symptoms appeared as skin ulcers similar to boils, i.e., plain hard bumps which neither itched nor hurt. Cutting these “ulcers” caused great pain’ and, upon inspection, each contained small holes—symptoms different from normal skin ulcers. So Dr. Yang, a physician of courageous intelligence, created a new character that symbolize’d these inner holes. He called it p’ing chuang, the “many-holed ulcer.” Gradually, by Sung times (960 to 1279 AD), this character is found scattered amongst an ever increasing number of medical ﬁles, though doctors had yet to agree upon a definite name or conclusive treatment.&lt;/p&gt;
&lt;p id=&quot;p-dcfe255&quot;&gt;Doctors noticed that when the ulcers were broken, the holes looked as deep as “a cave in a ravine,” prompting some to name this the “cave-like” illness. Doctors returned to the original character Dr. Yang had created with its pictographs of mouths, or holes. Below the “mouth” radical they placed the “mountain” radical coming from the “cave” character and signifying depth. The ﬁnal character composed the radicals for mouths above a mountain and were enclosed in the “illness” radical. Doctors pronounced this character ai. From Dr. Ts’ung Chin-chien on, what the world recognizes today as the English word “cancer” was called in Chinese &lt;em&gt;ai cheng&lt;/em&gt;.&lt;/p&gt;
&lt;p id=&quot;p-4de4bd7&quot;&gt;Summary: The T’ang doctor Yang Shih-ying name the illness “p’ing chuang,” as the broken lesions contained holes that caused great pain.&lt;/p&gt;
&lt;p id=&quot;p-61ec51b&quot;&gt;Question: Did cancer exist in pre-T’ang times?&lt;/p&gt;
&lt;p id=&quot;p-56fb787&quot;&gt;Answer: I suspect so, but lacking pre-Tang medical ﬁles, I can only surmise.&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer (3) – Symptoms</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-3-symptoms/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-3-symptoms/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>Cancer can attack any area of the body. During Tang and Sung times, doctors noticed that most men suffered in the abdominal area, while women suffered in breast and uterus.</summary><content type="html">&lt;p id=&quot;p-e319bd2&quot; class=&quot;opening&quot;&gt;Cancer can attack any area of the body. During Tang and Sung times, doctors noticed that most men suffered in the abdominal area, while women suffered in breast and uterus. The head, face, and extremities were the least afﬂicted. Cancer of the blood, or leukemia, of the nervous system, and other areas are modern afﬂictions and will not be &lt;span class=&quot;nowrap&quot;&gt;discussed here.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-4ca140a&quot;&gt;One of the ﬁrst symptoms of cancer is plain, white bumps which neither hurt nor itch; they have no particular sensation and arouse no suspicion. The patient usually seeks medical attention once these bumps enlarge. This development may take anywhere from a few months to a year or even ten years—individual health and environment prohibit generalizations. These enlarged bumps become painful as they begin to constrict blood vessels, precipitating a slight paralysis or restricted limb movement. The patient Will exhibit an emaciated appearance resulting from diminished appetite—evidence of a critical situation. The bumps may, however, exhibit no sensation until broken. Large amounts of pus drain from the wound and the patient experiences stinging pain. Sleeping and eating diminish, and a painful death is imminent. Anesthetics are administered around the clock and the patient survives but a few days. Cancer is by far the most painful and frightening disease known to man. It is unbearable to watch someone suffer and die from it or even listen to accounts of cancer sufferers.&lt;/p&gt;
&lt;p id=&quot;p-cca3609&quot;&gt;Summary: When the bumps ﬁrst develop they are ignored because they neither hurt nor itch. As they enlarge, soreness shows the swelling is constricting blood vessels. At this point the illness is quite serious.&lt;/p&gt;
&lt;p id=&quot;p-ad5e859&quot;&gt;Q: After the lesions are broken, can we just suture the hole?&lt;/p&gt;
&lt;p id=&quot;p-25a90c2&quot;&gt;A: Yes, but only a knowledgeable doctor can suture the wound while draining the pus, all the while supplementing the patient’s ch’i.&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer (4) – Nature and Composition</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-4-nature-and-composition/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-4-nature-and-composition/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>Chinese medicine distinguishes every illness by nature, yin or yang, and by composition, depleting (draining) or repleting (ﬁlling). 4 When a symptom corresponds to the nature and course of an illness.</summary><content type="html">&lt;p id=&quot;p-b8f40b2&quot; class=&quot;opening&quot;&gt;Chinese medicine distinguishes every illness by nature, yin or yang, and by composition, depleting (draining) or repleting (ﬁlling). A yin—nature illness should be depleting, yang should be repleting.4 When a symptom corresponds to the nature and course of an illness. we say it “moves according to its proper course,” and it is not severe. When they fail to correspond we say the illness “moves contrary to its proper course.” and it will &lt;span class=&quot;nowrap&quot;&gt;be severe.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-e506ff2&quot;&gt;Historical medical records show that cancer was rare and unusual. The ﬁrst symptoms of simple bumps correspond to yin/depleting illnesses such as boils, which when drained cause some pain–sometimes requiring stitches to close the wound. When a cancer bump is opened, however, there is great pain. Inside are small holes which secrete large amounts of vile pus—conditions not evident of yin/ depleting illnesses. After the lesions are broken it is evident the illness is a yang/repleting one. This situation is contrary to the diagnosis prior to rupturing the boil and shows a signiﬁcant “contrary” illness.&lt;/p&gt;
&lt;p id=&quot;p-e32500a&quot;&gt;Now we understand some of the doubts and difﬁculties the physician encounters with this complicated illness. Dr. Yang showed great vision when he created the character for cancer. Cancer belongs to the yang/repleting variety and contains a suppressed energy. This energy is like a closed pot on the stove; when the heat is turned up too high, the ﬁre is locked within, though the pot’s exterior may show no trace of the heat. If the physician can correctly diagnose the signals coming from inside, the nature and composition of the illness will be evident and its cure easier.&lt;/p&gt;
&lt;p id=&quot;p-45bf224&quot;&gt;Summary: Externally yin and internally yang shows an illness proceeding contrary-wise. When a ﬁre is suppressed inside, the body should not be cut open.&lt;/p&gt;
&lt;p id=&quot;p-0b91e59&quot;&gt;Q: After breaking, how do the nature and composition alter?&lt;/p&gt;
&lt;p id=&quot;p-8c34dd9&quot;&gt;A: Exactly opposite—~the external becomes repleting and the internal becomes depleting.&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer (5) – Causes</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-5-causes/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-5-causes/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>The ancients believed cancer resulted from mental anxiety or phys- ical suppression. Not everyone suffers from abnormal anxiety, but suppression is common. I would like to summarize a few points concerning this.</summary><content type="html">&lt;p id=&quot;p-8b7b3e5&quot; class=&quot;opening&quot;&gt;The ancients believed cancer resulted from mental anxiety or phys- ical suppression. Not everyone suffers from abnormal anxiety, but suppression is common. I would like to summarize a few points &lt;span class=&quot;nowrap&quot;&gt;concerning this.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-685f639&quot;&gt;The stomach can easily become suppressed. As “Illness enters through the mouth,” the stomach is the first organ any illness contacts. If you get stomach pains from overeating or eating too fast, the discomfort is easily surmised. Worrying when eating, however, make, your stomach suppressed and you will experience stomach discomfort that seems to spontaneously appear. Foods too rich, fatty, sweet, dry, watery, and oily can cause indigestion, suppressing the stomach and slowly leading to an illness. An improper diet can cause suppression even without mental anxiety. Cancer can come from suppression alone.&lt;/p&gt;
&lt;p id=&quot;p-0b657e3&quot;&gt;What is suppression? Suppression means there is an internally repleting ﬁre, which may exhibit no external manifestation. Imagine a pan full of oil. This oil will burst into ﬂames when the temperature reaches a certain point, which a lid quickly extinguishes. Now, however, the ﬂame is locked inside. The suppressed ch’i ﬁre aroused from your liver can move into any organ and cause suppression. You must vent your anger and relieve your temper or else suppressed containment inﬂuences the remaining organs—which slowly causes cancer.&lt;/p&gt;
&lt;p id=&quot;p-0fc3ba4&quot;&gt;Everybody is talking about nutrition though few understand it. Nutrition is a complicated subject—any misunderstandings can result in serious consequences. Chinese medicine uses the word “supplement” to indicate nutrition. There are many methods of supplementation and all require the advice of an experienced physician. Incorrect supplementation of the chest, abdomen, or the circulatory system could result in serious injury. Today, everyone thinks their nutrition is deﬁcient. many will’ tell you to eat more variety, take supplementary pill’s, even intravenous dietary injections! These people are certainly confused and may eventually fall ill. They are good-will killers and more dangerous than a mediocre doctor. Do not be strung along blindly regardless of their good intentions.&lt;/p&gt;
&lt;p id=&quot;p-9091fe8&quot;&gt;There is another frightening condition which is self-inﬂicted. It occurs when a person is struck by cancer’s overwhelming fear. This comes from the shadowless regions, is born from nothingness, and instills fear; by day you worry and at night thoughts roam your mind. The fear of cancer must be approached with caution. I will discuss the topic in the chapter concerning cancer prevention. Remember, suppression is the leading cause of cancer and is responsible for more cases than negligent self-examination or mistake doctor’s analysis.&lt;/p&gt;
&lt;p id=&quot;p-f658f6a&quot;&gt;Summary: Suppression alone can cause cancer and other illness. It is like obstructed fire, suppressed within.&lt;/p&gt;
&lt;p id=&quot;p-a0b6d94&quot;&gt;Q: Can inappropriate nutrition result in suppression?&lt;/p&gt;
&lt;p id=&quot;p-46798fc&quot;&gt;A: Suppression resulting from inappropriate nutrition is a minor illness.&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer (6) – From First Sensation to Development and the Mistake of Procrastination</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-6-from-first-sensation-to-development/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-6-from-first-sensation-to-development/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>The symptoms of serious abdominal lesions include plain bump which neither hurt nor itch: similar to abdominal swelling due to constipation, phlegmatic lumps, the inner lumps of lymphadentitis, various bone ulcers and…</summary><content type="html">&lt;p id=&quot;p-7db6a28&quot; class=&quot;opening&quot;&gt;The symptoms of serious abdominal lesions include plain bump which neither hurt nor itch: similar to abdominal swelling due to constipation, phlegmatic lumps, the inner lumps of lymphadentitis, various bone ulcers and their accompanying ulcers, and cancer. All these illnesses have similar symptoms which must be diagnosed quickly and correctly by a qualiﬁed physician—procrastination can lead to serious complications. The early symptoms of cancer are usually ignored, and any noticeable development may take anywhere from a few months to a year, possibly ten years—my experience has shown me that cancer has no &lt;span class=&quot;nowrap&quot;&gt;deﬁned parameter.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-0678bce&quot;&gt;Until forty years ago few people had cancer in China—and those who did, experienced only gradual development, whether it was of the stomach, breast, or uterus. Unfortunately, many were told to allow the bumps to grow and to disperse them only after several years. When I was young, my aunt contracted cancer and waited six years before breaking the bumps, causing her great pain. The bumps contained small holes which excreted a thick, foul—smelling pus. My mother told me, “Ninety percent of cancer patients die, that is how difﬁcult it is to cure.” My aunt then went back and forth between various doctors for over two years before the pain gradually decreased. After that she rarely needed help and did not die until twenty years later.&lt;/p&gt;
&lt;p id=&quot;p-4ed7860&quot;&gt;During the war I lived in Chungkin’g where Ts’ai Chi-t’ou and I were studying herbal medicine. When Mr. Ts’ai was young he would follow his mother gathering medicinal herbs, and the stories he told still retain their flavor. His aunt had also contracted breast cancer. A herbal medication was applied to the bumps, which then dispersed. She lived another twenty to thirty years, well into her seventies.&lt;/p&gt;
&lt;p id=&quot;p-a1a54f1&quot;&gt;Today, the number of cancer patients is so high and their stage of development so advanced that it is difﬁcult to save even one in a thousand. What is different today from the days when my mother said one in ten could be cured? Although I’ve studied Chinese herbal medicine a long time, I still cannot answer that question. Hua T’o once said, “Any illness can be cured, but you cannot cheat fate.”&lt;/p&gt;
&lt;p id=&quot;p-c70ee7a&quot;&gt;Many people fall ill prior to developing cancer due to their suppressed emotions—this energy must be allowed to escape through relaxation and recreation. When cancer is discovered it is vitally important not to worry. A wise man remarked, “Not having to dispense herbs is true Chinese medicine.” Trust your body’s ability to cure itself; this is ten times better than visiting even a famous doctor. Regular diet and exercise can work miracles. Early to bed, early to rise; relax and forget your troubles by the lakes and rivers; place aside preconceived notions of life or death. If we can do this I have no doubt nine out of ten cancer patients can be cured.&lt;/p&gt;
&lt;p id=&quot;p-8c40d18&quot;&gt;In dealing with cancer I use an internist’s approach. Cancer arises from suppression so I prescribe herbs that relax the contained chi and allow the energy to scatter and disperse, stopping the illness’s advance. Failing to advance, it recedes naturally. There is an old saying, “When you view the strange as if it were normal, its peculiarities naturally break down.”” I have cured many patients regardless of their condition, and all that I require is trust. I do not approve of radiation or chemotherapy. I have seen too many treated with far too few results. Many surgeons even undertake exploratory surgery to analyze the condition! But metal instruments should never touch cancer cells. For thousands of years Chinese medicine has recorded illnesses that should not contact metal objects and that worsen once the body is cut. These include lymphadentitis, phlegmal lumps, internal ulcers and their accompanying ulcers, bone ulcers, cancer, “fish eye” boils, carbuncle boils and others—none should contact metallic instruments. These diseases are clearly documented and I mention them only for reference.&lt;/p&gt;
&lt;p id=&quot;p-40ba233&quot;&gt;Finally, don’t procrastinate! Do shun surgery except in unavoidable conditions. I hope internal medicine can advance as quickly as surgery. I stand to watch its progress.&lt;/p&gt;
&lt;p id=&quot;p-dee4be2&quot;&gt;Summary: The best cure for any illness is found within yourself. If the illness has progressed, follow the internist’s method. Herbs can scatter the suppression.&lt;/p&gt;
&lt;p id=&quot;p-249b611&quot;&gt;Q: Why was cancer so rare in ancient time? Why did it progress slower than today? And how did sufferers live longer?&lt;/p&gt;
&lt;p id=&quot;p-a3f8a3b&quot;&gt;A: Life was simpler and without the stress people feel today. Fame and fortune were not obsessions, nor did the ancient cultures have our modern drive for progress. Dietary and sleeping habits were reg- ular, and social interaction was relaxed. With less to worry about, cancer was rare. When people did contract it, most paid it no atten- tion. It caused no fear and so developed slowly.&lt;/p&gt;
&lt;p id=&quot;p-a64c607&quot;&gt;Today, many doctors begin exploratory surgery without realizing that cancer is an illness that should not touch metal, and the battlefront becomes ablaze. Afterward radiation and chemotherapy are employed to control its development. After surgery the cancer cells mobilize within the body, and if completely eliminated the patient lives but a few years longer. If there is any metastasis, the patient’s condition worsens immediately and there is nothing left to do.&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer (7) – Treatment</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-7-treatment/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-7-treatment/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>There are two schools of thought in treating illness—the orthodox and the alternative methods.</summary><content type="html">&lt;p id=&quot;p-71fe665&quot; class=&quot;opening&quot;&gt;There are two schools of thought in treating illness—the orthodox and the alternative methods. This distinction arose because of the variety of healing methods, including: acupuncture, acupressure, massage, shaman incantation, stone probe, surgery, breathing exercises, {and many others. The Yellow Emperor’s Classic on Internal Medicine says that herbal prescription is the only orthodox methodology— and this classic expounds the best method for treating the root of any illness. Unfortunately, Chinese medicine is seriously neglected—not only have we yet to recover from attacks by foreign governments, but we must also bear the brunt of our country’s cultural destruction by ignorant compatriots, bringing Chinese medicine to the brink of extinction. Nobody cares that we possess a cure for cancer, and if they did, few would truly accept the treatment in &lt;span class=&quot;nowrap&quot;&gt;its entirety.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-70ac3fb&quot;&gt;Eradicating the root of an illness combines correct diagnosis with proper herbal administration. Then there must be both a reason and a way to expel the illness. This may include: scattering, dispersing, vomiting, perspiring, purging, supplementing, or draining-each prescription has its own method of attack. With cancer I ﬁrst calm the patient and revitalize the blood, relaxing any depressed, suppressed ch’i. Externally I apply a medicinal application to scatter the obstructed bumps; this is attacking the enemy from within and without—winning back occupied territory. If I try to subdue the disease or control it by force with harsh medication, or if surgical utensils are used as if I were arming the troops, I will encounter stiff resistance. Surgery is a gamble where everything depends on one roll of the dice.&lt;/p&gt;
&lt;p id=&quot;p-3c41981&quot;&gt;The doctor who follows the orthodox methodology is like the legendary Yu the Great who instituted a system of canals and waterways to prevent ﬂoods; he accomplished his Imperial mission by channeling off the ﬂood waters. If we imitate his father, who tried to control the waters by merely building dams, we too will suffer a shameful defeat.&lt;/p&gt;
&lt;p id=&quot;p-47d0152&quot;&gt;Summary: Like Yu the Great who channeled the ﬂood waters, the doctor must disperse and lead away the illness. Cancer cannot be controlled with harsh medication.&lt;/p&gt;
&lt;p id=&quot;p-786cf6e&quot;&gt;Q: What are the fundamental principles of orthodox treatment? Did the ancient prescriptions follow such methods? Are these methods effective?&lt;/p&gt;
&lt;p id=&quot;p-4fff3dd&quot;&gt;A: Cancer develops gradually, so urgent treatment is ineffective, it must be channeled away and allowed to change its composition. The proper sequence employed in the orthodox methodology is to ﬁrst lead the illness away from the area and then diminish its power by scattering it. If the illness has developed to where this is no longer possible, try to change it internally; take the wood away from the pot and halt its advance. This will change its purulent composition, and blunt the pain while safely dispelling the lesions.&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer (9) – Prevention</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-9-prevention/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-9-prevention/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>This is preventative medicine. You can cure any future illnesses if you receive qualiﬁed advice today. Sixty to seventy percent of cancer is self-inﬂicted through lifestyle—so preventative medicine is the best cure.</summary><content type="html">&lt;p id=&quot;p-2c9f2c8&quot;&gt;“The best doctor cures those not yet ill.” This is preventative medicine. You can cure any future illnesses if you receive qualiﬁed advice today. Sixty to seventy percent of cancer is self-inﬂicted through lifestyle—so preventative medicine is the best cure. The following are a few points on preventative medicine.&lt;/p&gt;
&lt;p id=&quot;p-8c44872&quot;&gt;First, the Classic on Internal Medicine states, “Illness enters through the mouth,” so eat at certain times and in deﬁnite amounts—and watch what you eat! The ancients said, “Your meat should not over- come the meal’s substance.n9 Avoid foods that are rich, fatty, sweet, fragrant, or parched; stay away from foods too soft or oily and eliminate snacks! Drink some liquids before going to bed and after waking up; eat foods that help your digestion. Don’t eat more than 70% full at breakfast or dinner—at lunch you may enjoy yourself and eat up to 80%. Liquids beneﬁt our yin while solids beneﬁt your yang. These are the teachings of the wise Chinese men of old. The dietary habits of Americans are totally opposite to this. One should eat more at lunch because movement assists digestion. After dinner we are generally inactive, so a large evening meal conﬁnes our digestive system and an illness may slowly accumulate. Such a diet goes against the Tao of proper living. A balanced diet not only strengthens our stomach and spleen systems but also prevents cancer and other illnesses.&lt;/p&gt;
&lt;p id=&quot;p-c5a3931&quot;&gt;Second, the I Ching says, “As nature is always creatively active, so too the noble man constantly improves himself.” This same idea is expressed in the proverb, “A moving hinge doesn’t rust, running water doesn’t smell.” Without proper exercise anyone may quickly become old and inﬁrm. During the Eastern Han Dynasty (25-220 AD) the legendary Hua T’o created the Five Animal Frolics, whose main exercises are exhibited in the two postures, The Constant Bear and The Stretching Bird. These movements help us to digest grains. Unfortunately, Hua T’o was innocently executed and left behind a single disciple, who ﬂed into seclusion and reportedly died a youthful 120. It is a shame that their art of longevity was lost to the world. During the later Sung Dynasty (960—1279 AD), Chang San-feng created taichi, an exercise that surpasses even Hua T’o’s exercises.&lt;/p&gt;
&lt;p id=&quot;p-7b8a71f&quot;&gt;About forty years ago I contracted tuberculosis and was near death. I began this exercise and not only quickly recovered, but also eliminated a hundred other minor illnesses—my body soon possessed the ﬂexibility of a child. T’aichi relaxes the sinews and vessels and harmonizes the blood with chi. It is impossible for a taichi student to become suppressed, so cancer cannot gain a foothold. These are some of the beneﬁts I have received from taichi, the worlds ﬁnest cancer prevention exercise.&lt;/p&gt;
&lt;p id=&quot;p-79e2e59&quot;&gt;Third, the medical classics say that like species can assist one another—but this is not true with the liver; the liver should never be supplemented. This liver is called the General of Fire and easily becomes suppressed. The ancients had other methods for dealing with the liver; separating, scattering, draining, softening, nourishing, comforting, dampening, etc. During spring all vegetation is alive, expanding and diffusing itself. The liver is correlated with the element wood because it too has a nature that enlarges itself. When we butcher a chicken, pig, cow, or lamb, the suppressed ch’i of their body enters the liver. In ancient times, when people were much more in touch with nature, men even died after eating liver in the spring!&lt;/p&gt;
&lt;p id=&quot;p-9e759b3&quot;&gt;Today, many doctors and herbalists prescribe liver remedies to supplement their patient’s blood. This provides quick relief and quick proﬁt, but may actually precipitate an illness. Few are aware of this, and in recent years I’ve seen a daily increase in the number of cases involving inﬂammation of the liver, cirrhosis of the liver, and liver cancer. I suggest one method of cancer prevention is to stop taking supplementary doses of liver pills indiscriminately.&lt;/p&gt;
&lt;p id=&quot;p-9a1590e&quot;&gt;Fourth, the virtuous and wise men of old all followed the I Ching, “Find peace in nature, trust your fate.” If you possess this inner peace, then my previous three points on preventing cancer can be ignored, as this alone is the greatest and best method. How do you ﬁnd peace in nature and understand fate? Start by eliminating desires and following what is natural. Trust your fate, for where there is life, there is death—don’t destroy yourself. Follow your original nature and pursue a quiet, reﬂective life. Then cancer will never harm you.&lt;/p&gt;
&lt;p id=&quot;p-39cebac&quot;&gt;Summary: In ancient times, the best doctor cured those not yet ill, and the noble man never rested in improving himself.&lt;/p&gt;
&lt;p id=&quot;p-d3f23e6&quot;&gt;Q: Does taichi really possess such marvelous application? Does the liver really possess such harmful potential?&lt;/p&gt;
&lt;p id=&quot;p-19f55c5&quot;&gt;A: Taichi is like swimming on dry land; it relaxes the sinews, opens the vessels, harmonizes the ch’i with the blood, and beneﬁts both mind and body. It surpasses the beneﬁts of swimming with none of its harmful side effects. With taichi, eradicating disease and lengthening your life are within reach. Eating liver directly supplements your liver. The Classic on Internal Medicine says, “Like species supplement each other,” and the I Ching says, “Similar ch’i search each other out.” But the Classic on Internal Medicine also says, “Do not supplement the liver.” Liver was aligned with the element wood to show its proclivity to spread or enlarge. Too much fertilizer under the tree hardens the wood; this is similar to cirrhosis of the liver and other disorders we see today.&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer – Introduction</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-introduction/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-introduction/</id><published>2017-06-10T00:00:00Z</published><updated>2017-06-10T00:00:00Z</updated><category term="health"/><summary>Caution in treating illnesses was deemed more important than sincere prayer or solemn marches.</summary><content type="html">&lt;p id=&quot;p-8cac387&quot; class=&quot;opening&quot;&gt;In the Analects it says, “The Master was cautious in matters religious, military, and medical.” Caution in treating illnesses was deemed more important than sincere prayer or solemn marches. This prudence was mentioned in the Analects: “When K’ang—tzu sent Confucius a present of medicine, Confucius said, ‘If I don’t know what it’s for, I won’t take it. These two examples describe the oncologists responsibilities&lt;/p&gt;
&lt;p id=&quot;p-d47271e&quot;&gt;Cancer attacks mankind more ferociously than a tiger—what can doctors do to relieve the danger? Vimalakirti said, “If the people are sick, I too am sick. Only when everyone is healthy will I too be healthy.” Such lofty ideals are rarely brought to fruition. Simply empathizing with a patient’s suffering would offer results to make any oncologist feel like a victorious general or a placated spirit. I make no assumption on the universality of my shallow theories but only hope that the specialists will research a cure diligent till death. Many lives may yet be saved.&lt;/p&gt;
&lt;p id=&quot;p-dcab6fc&quot;&gt;I wrote this pamphlet for use as a handy reference guide based only on my humble experience. Eastern and Western medicine certainly take different approaches, but I am convinced we can apply each other’s methodology without harmful effects. If we make some mistakes, the wise and intelligent will correct us—this is not just one man’s dream!&lt;/p&gt;
&lt;p id=&quot;p-d03ce2a&quot;&gt;Ah! but Western medicine seems to kill more than it cures, and yet more and more people even in the East are relying on it. Many doctors are selﬁsh and remain aloof from the world‘s suffering. They forget that every single person, young and old, is a potential cancer victim—even themselves. Let us erect the banner “Benevolent heart, compassionate art,” and work to keep people alive. Can anyone disregard these ideals and practice medicine with selﬁsh motives, enjoying the pleasures of life and remaining oblivious to suffering? Any oncologist who possesses the talent but lacks the compassion to ﬁnd a cure for cancer is simply not a man. Hence I say:&lt;/p&gt;
&lt;p id=&quot;p-9481a4c&quot;&gt;&lt;em&gt;Cleanse your mind of grandiose ambition,&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-35b1e0f&quot;&gt;&lt;em&gt;with hope lies our inevitable success. Tear down all preconceptions,&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-2dc3ff8&quot;&gt;&lt;em&gt;embrace ideals as wide as a ravine. Collect all ideas, broaden all beneﬁts,&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-cbe08d3&quot;&gt;&lt;em&gt;cool springs lie all around.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-f34e6b1&quot;&gt;I dream of the day when I can set aside my doctor’s responsibilities and the world embraces health, peace, and prosperity.&lt;/p&gt;
&lt;p id=&quot;p-25407ee&quot;&gt;June, 1964&lt;br&gt;
Cheng Man-ch’ing&lt;br&gt;
New York&lt;/p&gt;
&lt;p id=&quot;p-b46ba59&quot;&gt;source: &lt;a href=&quot;https://www.northatlanticbooks.com/shop/master-of-five-excellences/&quot;&gt;Master of Five Excellences &lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>Light on Pranayama</title><link href="https://mikkokotila.com/writing/light-on-pranayama/"/><id>https://mikkokotila.com/writing/light-on-pranayama/</id><published>2017-06-04T00:00:00Z</published><updated>2017-06-04T00:00:00Z</updated><category term="practice"/><category term="health"/><summary>Pranayama (Chinese Qi Gong, Tibetan Cha Lung) is a series of practices focused on the breath. These practices have become increasingly popular over the past decade or two, but unfortunately most people are doing the practices completely wrong. When done right, Pranayama can heal…</summary><content type="html">&lt;!-- image unavailable: https://cancercompliment.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-04-at-1.35.53-PM.png --&gt;
&lt;p id=&quot;p-5c220f2&quot; class=&quot;opening&quot;&gt;Pranayama (Chinese &lt;em&gt;Qi Gong, &lt;/em&gt;Tibetan &lt;em&gt;Cha Lung) &lt;/em&gt;is a series of practices focused on the breath. These practices have become increasingly popular over the past decade or two, but unfortunately most people are doing the practices completely wrong. When done right, Pranayama can heal serious illness without any other method complimenting it. Because these practices are so potent, when done wrongly, the same practices can also be the cause of serious illness, or &lt;span class=&quot;nowrap&quot;&gt;even death.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-04a1b3f&quot;&gt;Like any other yoga practice, practitioners should start with little in terms of time and intensity and then work from there according to the individual capability and progress.&lt;/p&gt;
&lt;p id=&quot;p-cd03cef&quot;&gt;Perhaps the most significant contribution to the field in terms of written text is the B. K. S. Iyengar’s &lt;em&gt;Light on Pranayama &lt;/em&gt;which can be accessed for free in pdf format. Read it &lt;a href=&quot;https://yogaklausneyer.files.wordpress.com/2014/07/light_on_pranayama__b_k_s_iyengar.pdf&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content></entry><entry><title>Thoughts on Pseudo Decentralization</title><link href="https://mikkokotila.com/writing/thoughts-on-pseudo-decentralization/"/><id>https://mikkokotila.com/writing/thoughts-on-pseudo-decentralization/</id><published>2017-06-04T00:00:00Z</published><updated>2017-06-04T00:00:00Z</updated><category term="decentralization"/><summary>Can you name one thing that is actually decentralized? Is centralization in itself a negative force? Can organizations between people and things work without order? This commentary attempts to answer these questions in a new light.</summary><content type="html">&lt;figure class=&quot;fig hexagrams&quot; data-fig=&quot;hexagrams&quot; data-book=&quot;{&amp;#x22;$description&amp;#x22;:&amp;#x22;The I Ching&amp;#x27;s hexagrams in the King Wen sequence, for figures that draw or cast them. A hexagram is two trigrams, lower and upper; a trigram&amp;#x27;s lines are read from the bottom, 1 solid and 0 broken.&amp;#x22;,&amp;#x22;trigrams&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:&amp;#x22;111&amp;#x22;,&amp;#x22;Thunder&amp;#x22;:&amp;#x22;100&amp;#x22;,&amp;#x22;Water&amp;#x22;:&amp;#x22;010&amp;#x22;,&amp;#x22;Mountain&amp;#x22;:&amp;#x22;001&amp;#x22;,&amp;#x22;Earth&amp;#x22;:&amp;#x22;000&amp;#x22;,&amp;#x22;Wind&amp;#x22;:&amp;#x22;011&amp;#x22;,&amp;#x22;Fire&amp;#x22;:&amp;#x22;101&amp;#x22;,&amp;#x22;Lake&amp;#x22;:&amp;#x22;110&amp;#x22;},&amp;#x22;numbers&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:1,&amp;#x22;Thunder&amp;#x22;:25,&amp;#x22;Water&amp;#x22;:6,&amp;#x22;Mountain&amp;#x22;:33,&amp;#x22;Earth&amp;#x22;:12,&amp;#x22;Wind&amp;#x22;:44,&amp;#x22;Fire&amp;#x22;:13,&amp;#x22;Lake&amp;#x22;:10},&amp;#x22;Thunder&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:34,&amp;#x22;Thunder&amp;#x22;:51,&amp;#x22;Water&amp;#x22;:40,&amp;#x22;Mountain&amp;#x22;:62,&amp;#x22;Earth&amp;#x22;:16,&amp;#x22;Wind&amp;#x22;:32,&amp;#x22;Fire&amp;#x22;:55,&amp;#x22;Lake&amp;#x22;:54},&amp;#x22;Water&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:5,&amp;#x22;Thunder&amp;#x22;:3,&amp;#x22;Water&amp;#x22;:29,&amp;#x22;Mountain&amp;#x22;:39,&amp;#x22;Earth&amp;#x22;:8,&amp;#x22;Wind&amp;#x22;:48,&amp;#x22;Fire&amp;#x22;:63,&amp;#x22;Lake&amp;#x22;:60},&amp;#x22;Mountain&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:26,&amp;#x22;Thunder&amp;#x22;:27,&amp;#x22;Water&amp;#x22;:4,&amp;#x22;Mountain&amp;#x22;:52,&amp;#x22;Earth&amp;#x22;:23,&amp;#x22;Wind&amp;#x22;:18,&amp;#x22;Fire&amp;#x22;:22,&amp;#x22;Lake&amp;#x22;:41},&amp;#x22;Earth&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:11,&amp;#x22;Thunder&amp;#x22;:24,&amp;#x22;Water&amp;#x22;:7,&amp;#x22;Mountain&amp;#x22;:15,&amp;#x22;Earth&amp;#x22;:2,&amp;#x22;Wind&amp;#x22;:46,&amp;#x22;Fire&amp;#x22;:36,&amp;#x22;Lake&amp;#x22;:19},&amp;#x22;Wind&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:9,&amp;#x22;Thunder&amp;#x22;:42,&amp;#x22;Water&amp;#x22;:59,&amp;#x22;Mountain&amp;#x22;:53,&amp;#x22;Earth&amp;#x22;:20,&amp;#x22;Wind&amp;#x22;:57,&amp;#x22;Fire&amp;#x22;:37,&amp;#x22;Lake&amp;#x22;:61},&amp;#x22;Fire&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:14,&amp;#x22;Thunder&amp;#x22;:21,&amp;#x22;Water&amp;#x22;:64,&amp;#x22;Mountain&amp;#x22;:56,&amp;#x22;Earth&amp;#x22;:35,&amp;#x22;Wind&amp;#x22;:50,&amp;#x22;Fire&amp;#x22;:30,&amp;#x22;Lake&amp;#x22;:38},&amp;#x22;Lake&amp;#x22;:{&amp;#x22;Heaven&amp;#x22;:43,&amp;#x22;Thunder&amp;#x22;:17,&amp;#x22;Water&amp;#x22;:47,&amp;#x22;Mountain&amp;#x22;:31,&amp;#x22;Earth&amp;#x22;:45,&amp;#x22;Wind&amp;#x22;:28,&amp;#x22;Fire&amp;#x22;:49,&amp;#x22;Lake&amp;#x22;:58}},&amp;#x22;names&amp;#x22;:[&amp;#x22;The Creative&amp;#x22;,&amp;#x22;The Receptive&amp;#x22;,&amp;#x22;Difficulty at the Beginning&amp;#x22;,&amp;#x22;Youthful Folly&amp;#x22;,&amp;#x22;Waiting&amp;#x22;,&amp;#x22;Conflict&amp;#x22;,&amp;#x22;The Army&amp;#x22;,&amp;#x22;Holding Together&amp;#x22;,&amp;#x22;The Taming Power of the Small&amp;#x22;,&amp;#x22;Treading&amp;#x22;,&amp;#x22;Peace&amp;#x22;,&amp;#x22;Standstill&amp;#x22;,&amp;#x22;Fellowship with Men&amp;#x22;,&amp;#x22;Possession in Great Measure&amp;#x22;,&amp;#x22;Modesty&amp;#x22;,&amp;#x22;Enthusiasm&amp;#x22;,&amp;#x22;Following&amp;#x22;,&amp;#x22;Work on What Has Been Spoiled&amp;#x22;,&amp;#x22;Approach&amp;#x22;,&amp;#x22;Contemplation&amp;#x22;,&amp;#x22;Biting Through&amp;#x22;,&amp;#x22;Grace&amp;#x22;,&amp;#x22;Splitting Apart&amp;#x22;,&amp;#x22;Return&amp;#x22;,&amp;#x22;Innocence&amp;#x22;,&amp;#x22;The Taming Power of the Great&amp;#x22;,&amp;#x22;The Corners of the Mouth&amp;#x22;,&amp;#x22;Preponderance of the Great&amp;#x22;,&amp;#x22;The Abysmal&amp;#x22;,&amp;#x22;The Clinging&amp;#x22;,&amp;#x22;Influence&amp;#x22;,&amp;#x22;Duration&amp;#x22;,&amp;#x22;Retreat&amp;#x22;,&amp;#x22;The Power of the Great&amp;#x22;,&amp;#x22;Progress&amp;#x22;,&amp;#x22;Darkening of the Light&amp;#x22;,&amp;#x22;The Family&amp;#x22;,&amp;#x22;Opposition&amp;#x22;,&amp;#x22;Obstruction&amp;#x22;,&amp;#x22;Deliverance&amp;#x22;,&amp;#x22;Decrease&amp;#x22;,&amp;#x22;Increase&amp;#x22;,&amp;#x22;Break-through&amp;#x22;,&amp;#x22;Coming to Meet&amp;#x22;,&amp;#x22;Gathering Together&amp;#x22;,&amp;#x22;Pushing Upward&amp;#x22;,&amp;#x22;Oppression&amp;#x22;,&amp;#x22;The Well&amp;#x22;,&amp;#x22;Revolution&amp;#x22;,&amp;#x22;The Caldron&amp;#x22;,&amp;#x22;The Arousing&amp;#x22;,&amp;#x22;Keeping Still&amp;#x22;,&amp;#x22;Development&amp;#x22;,&amp;#x22;The Marrying Maiden&amp;#x22;,&amp;#x22;Abundance&amp;#x22;,&amp;#x22;The Wanderer&amp;#x22;,&amp;#x22;The Gentle&amp;#x22;,&amp;#x22;The Joyous&amp;#x22;,&amp;#x22;Dispersion&amp;#x22;,&amp;#x22;Limitation&amp;#x22;,&amp;#x22;Inner Truth&amp;#x22;,&amp;#x22;Preponderance of the Small&amp;#x22;,&amp;#x22;After Completion&amp;#x22;,&amp;#x22;Before Completion&amp;#x22;]}&quot; aria-label=&quot;Ten hexagrams of the I Ching, in two rows&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a hexagram for its number and name, or cast one of your own.&lt;/p&gt;&lt;ol class=&quot;hexagram-list&quot; style=&quot;--columns:5&quot;&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;12&quot; tabindex=&quot;0&quot; data-says=&quot;12 · Standstill: Heaven over Earth&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;12&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;13&quot; tabindex=&quot;0&quot; data-says=&quot;13 · Fellowship with Men: Heaven over Fire&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;13&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;14&quot; tabindex=&quot;0&quot; data-says=&quot;14 · Possession in Great Measure: Fire over Heaven&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;14&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;15&quot; tabindex=&quot;0&quot; data-says=&quot;15 · Modesty: Earth over Mountain&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;0&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;15&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;16&quot; tabindex=&quot;0&quot; data-says=&quot;16 · Enthusiasm: Thunder over Earth&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;0&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;16&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;20&quot; tabindex=&quot;0&quot; data-says=&quot;20 · Contemplation: Wind over Earth&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;20&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;21&quot; tabindex=&quot;0&quot; data-says=&quot;21 · Biting Through: Fire over Thunder&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;21&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;22&quot; tabindex=&quot;0&quot; data-says=&quot;22 · Grace: Mountain over Fire&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;22&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;23&quot; tabindex=&quot;0&quot; data-says=&quot;23 · Splitting Apart: Mountain over Earth&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;55&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;23&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;hexagram&quot; data-n=&quot;24&quot; tabindex=&quot;0&quot; data-says=&quot;24 · Return: Earth over Thunder&quot;&gt;&lt;svg class=&quot;hexagram-lines&quot; viewBox=&quot;0 0 60 63&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;0&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;11&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;22&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;33&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;34&quot; y=&quot;44&quot; width=&quot;26&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;0&quot; y=&quot;55&quot; width=&quot;60&quot; height=&quot;7&quot; rx=&quot;1&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;span class=&quot;hexagram-n fig-small&quot;&gt;24&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;hexagram-cast&quot; data-controls=&quot;&quot; hidden&gt;&lt;div class=&quot;hexagram-slot&quot; aria-hidden=&quot;true&quot;&gt;&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;fig-pill hexagram-go&quot;&gt;Cast one&lt;/button&gt;&lt;/div&gt;&lt;figcaption&gt;Ten hexagrams of the I Ching, as in the original: 12 to 16 and 20 to 24 in the King Wen order. A cast uses the browser’s random numbers: pseudo-random, as everything we can produce is.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-7f431f7&quot;&gt;TL;DR &gt; true decentralization is harder than you think.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;on-organization&quot;&gt;On Organization&lt;/h2&gt;
&lt;blockquote id=&quot;p-9676f03&quot;&gt;
&lt;p&gt;&lt;em&gt;The word organization just means for things to come together in some other manner than randomly.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-6ced58d&quot;&gt;Organization means that people or things have organized themselves to interact in one way or another. Marriage is an organization. Learning is an organization, sun and the moon are organizations. I’m writing this commentary, and you’re reading it, that is the organization we’ve agreed on and without which the exchange we’re interacting in would not be possible. The webster dictionary defines organization as &lt;em&gt;“the structure or arrangement of related or connected items” &lt;/em&gt;for example the spatial organization of cells.&lt;/p&gt;
&lt;p id=&quot;p-c962e78&quot;&gt;The most fundamental form of organization is language, and language is made of words. Let’s take the word “order” as an example. Webster dictionary definition says that “order” means &lt;em&gt;“the arrangement or disposition of people or things in relation to each other according to a particular sequence, pattern, or method” &lt;/em&gt;for example when someone files a stack of business cards in alphabetical order. So we can see how words are made of other words, and if we check the dictionary definitions of those words, we’ll find that they too are made of other words, ad infinitum. If we test this in practice, we’ll find that there is never a point in time when a word is no longer dependent on other words. If you have doubt, try and find such a word that did not have its meaning dependent on other words.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Circulus vitiosus&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/166b25622d93e982.png&quot; alt=&quot;Drawing of a dog spinning in a whirl of lines&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;A vicious circle.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;the logicians’ name for it&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The picture&lt;/b&gt; a dog spinning in a whirl&lt;/p&gt;&lt;figcaption&gt;This is how you will end up feeling looking for that word.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-f0d2555&quot;&gt;If you are staring at a blank wall, it looks like a blank wall and like a thing that exist in itself as a blank wall. But if you look carefully enough, there are countless things on the surface of the wall. Dust, and smaller things than that. Also if you break it down, you can see that it’s made of other things. We can find that the case with things is the same as it is with words, that they are always made of other things and never under any circumstance can stand independently of everything else. Just like the word camera is made of other words, camera is made of other things.&lt;/p&gt;
&lt;p id=&quot;p-39623bd&quot;&gt;Depending on the way you are looking at the thing, for example if you are using a high-powered microscope or not, you are going to see different things that it’s made of. Imagine that you woke up after being in coma and had total amnesia where you remember nothing, no language, no nothing at all. You’ve been in coma for a year, and then you suddenly wake up. The lights are bright and you have no recollection of anything at all. In that situation the blank white wall may seem pretty random.&lt;/p&gt;
&lt;p id=&quot;p-57367d8&quot;&gt;Organization is very important, without its many forms we can not make sense of anything. As a by-product of organization, there seems to necessarily follow a degree of centralization.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;on-randomness&quot;&gt;On Randomness&lt;/h2&gt;
&lt;blockquote id=&quot;p-1d5a1ed&quot;&gt;
&lt;p&gt;Decentralization vs. centralization is mathematically the same problem as randomness vs. order is.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-bcad5ef&quot;&gt;Let’s say we have 100 integers and we say they are 100 random integers or 100 randomly picked integers. That is an impossible thing to guess, in terms of which integers those 100 may be. Because there are infinitely many integers, it is not possible to even know the odds.&lt;/p&gt;
&lt;p id=&quot;p-7b60f7e&quot;&gt;If we change this little, and now you know that the integers are all lesser to one hundred billion. It’s still very hard, but not impossible anymore. Also now we can very precisely figure out the odds of guesses we need to make.&lt;/p&gt;
&lt;p id=&quot;p-439b747&quot;&gt;If we do the same, but now the range is with numbers below 1,000, we could get quite a few right and we know we have pretty good odds to do that. Guessing all of them would still be hard.&lt;/p&gt;
&lt;p id=&quot;p-b79bae9&quot;&gt;To conduct this experiment, we’ve formed an “organization”. An organization that has one very simple function; guess sets of randomly picked numbers from given ranges as accurately as possible. The organization also has very simple structure, and outcomes (how good the guess can be) are dependent only on the extent of randomness presented in the challenge. The relation between the the total universe (N=) and the sample (n=) is the sole attribute to the degree of randomness in the problem. Once entropy (measure of randomness) comes to 1, meaning that in the case of guessing 100 numbers the range is any sequence of 100 integers, there is certainty about the answer.&lt;/p&gt;
&lt;p id=&quot;p-74d6e30&quot;&gt;What we call randomization, is actually based on taking a range of numbers and then picking one or more numbers out of that by some means. Both “range” and “picking” constituting a form of ordering (reduced entroy) away from randomness. This means that both philosophically and mathematically there is a necessity for the process of “randomization” resulting in the opposite of randomness i.e. order.&lt;/p&gt;
&lt;p id=&quot;p-43a7e44&quot;&gt;In short summary, the more there is order in the organization, more likely the organization is going to achieve its goals. Simply because it has a greater ability to predict outcomes. This is why organizations tend to gravitate towards increased order one way or another. This is also why individuals tend to form organizations in the first place.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-secret-history-of-mathematics&quot;&gt;The Secret History of Mathematics&lt;/h2&gt;
&lt;blockquote id=&quot;p-70b237c&quot;&gt;
&lt;p&gt;Mathematics is an example of order and organization. So does using arithmetic create centralization in the world?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-4b380a6&quot;&gt;The origins of the arithmetic method is found on the market places of modern day Syria some 5,000 years ago. The base60 system was specifically devised to facilitate for trade. What kind of effect did introducing such a system have on the culture back then? Today we have far surpassed simple arithmetic operations. We have tools like regression modeling, which was famously devised for eugenics, the field of “science” studying the improvement of human species through genetic manipulation.&lt;/p&gt;
&lt;figure class=&quot;fig cuneiform&quot; data-fig=&quot;cuneiform&quot; aria-label=&quot;Babylonian cuneiform numerals from 1 to 59&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Point at a numeral for its tens and ones.&lt;/p&gt;&lt;ol class=&quot;numeral-list&quot; style=&quot;--rows:10&quot;&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;1: one one&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;1&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;2: two ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;2&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;3: three ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;3&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;4: four ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;4&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;5: five ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;5&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;6: six ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;6&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;7: seven ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;7&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;8: eight ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;8&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;9: nine ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;h&quot; d=&quot;M1 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M3.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M7.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M10.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M14 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M16.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;9&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;10: one ten&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;10&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;11: one ten and one one&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;11&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;12: one ten and two ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;12&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;13: one ten and three ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;13&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;14: one ten and four ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;14&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;15: one ten and five ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;15&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;16: one ten and six ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;16&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;17: one ten and seven ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;17&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;18: one ten and eight ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;18&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;19: one ten and nine ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M10 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M12.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M16.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M25.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;19&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;20: two tens&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;20&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;21: two tens and one one&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;21&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;22: two tens and two ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;22&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;23: two tens and three ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;23&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;24: two tens and four ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;24&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;25: two tens and five ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;25&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;26: two tens and six ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;26&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;27: two tens and seven ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;27&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;28: two tens and eight ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;28&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;29: two tens and nine ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;29&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;30: three tens&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;30&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;31: three tens and one one&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;31&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;32: three tens and two ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;32&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;33: three tens and three ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;33&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;34: three tens and four ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;34&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;35: three tens and five ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;35&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;36: three tens and six ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;36&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;37: three tens and seven ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;37&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;38: three tens and eight ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;38&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;39: three tens and nine ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;39&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;40: four tens&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;40&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;41: four tens and one one&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;41&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;42: four tens and two ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;42&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;43: four tens and three ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;43&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;44: four tens and four ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;44&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;45: four tens and five ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;45&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;46: four tens and six ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;46&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;47: four tens and seven ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;47&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;48: four tens and eight ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;48&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;49: four tens and nine ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M17 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M19.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M23.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M32.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;49&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;50: five tens&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;50&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;51: five tens and one one&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;51&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;52: five tens and two ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;52&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;53: five tens and three ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 9.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 6h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 9.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;53&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;54: five tens and four ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;54&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;55: five tens and five ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;55&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;56: five tens and six ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 3h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 6.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 13.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 10h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 13.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;56&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;57: five tens and seven ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;57&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;58: five tens and eight ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;58&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;numeral&quot; tabindex=&quot;0&quot; data-says=&quot;59: five tens and nine ones&quot;&gt;&lt;svg class=&quot;cuneiform-glyph&quot; viewBox=&quot;0 0 44 28&quot; aria-hidden=&quot;true&quot;&gt;&lt;path class=&quot;w&quot; d=&quot;M8 4L2 9L8 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 4L9 9L15 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M22 4L16 9L22 14&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M15 9l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M8 13L2 18L8 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M1 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M15 13L9 18L15 23&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M8 18l3.5 -2.6v5.2z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 0h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 3.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 7h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 10.4v5&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M24 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M26.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M30.5 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M33.3 17.4v9&quot;&gt;&lt;/path&gt;&lt;path class=&quot;h&quot; d=&quot;M37 14h5.6l-2.8 3.6z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;w&quot; d=&quot;M39.8 17.4v9&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;numeral-n fig-small&quot;&gt;59&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;numeral-clock&quot; data-controls=&quot;&quot; hidden&gt;&lt;span class=&quot;numeral-clock-label fig-label&quot;&gt;The time now, in base sixty&lt;/span&gt;&lt;span class=&quot;numeral-now&quot; aria-live=&quot;off&quot;&gt;&lt;/span&gt;&lt;span class=&quot;numeral-now-words fig-small&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;figcaption&gt;Base 60 number system&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-ad9487b&quot;&gt;The most startling example of consequences that came in some way as a result of the original introduction of formal arithmetic is RAND’s &lt;em&gt;Games of Strategy, &lt;/em&gt;where some of the leading thinkers of the time came together to device a “winning” nuclear-era strategy for US against the “Soviet threat”. Based on very simple mathematics, RAND’s mathematicians found that paranoia was the key to unlocking positive outcomes under difficult conditions. They suggested that by assuming the worst about the way others would behave in the situation, the resulting outcomes would be “optimal” against the set goals.&lt;/p&gt;
&lt;p id=&quot;p-9146443&quot;&gt;More than any other single theory, over the last 50 years Game Theory have helped to explain and influence behaviour in virtually every field of commerce and science. Bonus schemes, performance reviews, national healthcare, and so many other things influencing everyone’s lives today rely heavily on game theory models. These are all examples of non-cooperative games that are referred to as “zero-sum” games in Game Theory. In short, a game in which a party can win only at the expense of others. In the context of Game Theory, events are reduced to games, and decision makers to participants in the game.&lt;/p&gt;
&lt;p id=&quot;p-0cca77d&quot;&gt;Zero-sum games are psychologically speaking difficult for the participants. There is the idea that you have to win, and because you know winning takes place at the expense of others, there is a suspicion towards other participants. This is where participants become opponents, and the game becomes non-cooperative. When we evaluate these basic points, it is clear that under the cognitive conditions present in non-cooperative games, it is very hard to make decisions other than those that are focused on meeting individual short-term goals.&lt;/p&gt;
&lt;p id=&quot;p-5337772&quot;&gt;Right now industries, governments and people and too often even NGO’s are trapped in a cycle of conduct that aims towards short-term gain even if it was for the detriment of others. As a result, the way our computer algorithms work and the way our network topology is structured is more or less based on zero-sum game theory.&lt;/p&gt;
&lt;figure class=&quot;figure drawn&quot; data-drawn=&quot;&quot;&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/e60097ced67e0387.png&quot; alt=&quot;Portrait of John Nash&quot;&gt;&lt;figcaption&gt;Father of Game Theory, John Nash, said later that they were wrong and cooperative games lead to better outcomes.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-f737724&quot;&gt;In contrast, with a cooperative (positive-sum) mental process, cognition is based on the idea that it’s ok to lose. In other words, the participant makes the notion of the possibility of a loss as one acceptable outcome. This should not be too hard, especially given that retrospectively speaking we are ok with not winning every time. The difference is that when our intention is based on the idea of being ok with losing, it allows the mental process to produce cooperative ideas and behaviours. Without the correct intention, it will be very hard or impossible for the marketing practitioner to hold proper conduct.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;the-perils-of-pseudo-decentralization&quot;&gt;The Perils of (pseudo) Decentralization&lt;/h2&gt;
&lt;blockquote id=&quot;p-296b996&quot;&gt;
&lt;p&gt;In number theory there is something referred to as “pseudo-randomness”. This is because randomness turns out to be impossibly hard to produce.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-b2f317b&quot;&gt;In the light of what we have discussed here, it makes complete sense to argue that randomness is not possible to produce, as it is the anti-thesis of the idea of production. Any form of production requires organization, and when organization is added to a given set (of numbers), the set in question necessarily loses part of its randomness. Maybe this same distinction is important in terms of decentralization?&lt;/p&gt;
&lt;p id=&quot;p-21f6755&quot;&gt;It seems that the only way for something decentralized to manifest, without any ‘pseudoness’, is to just let things happen without any intervention at all. In the words of I-Ching, the 5,000 year old Chinese book of wisdom we have to &lt;em&gt;“let the nature take its way”&lt;/em&gt;. If there is a group of people in a highly isolated environment, and they all just let things happen without any intervention at all, then that in itself seems to be the only way for something decentralized to manifest. Even that it is wrong, because actually the decentralized state is the state which we don’t even observe. This relates to quantum entaglement.&lt;/p&gt;
&lt;p id=&quot;p-b7b09d4&quot;&gt;With effort, the best we can achieve is a high degree of pseudo decentralization. Is this bad news? I don’t think so.&lt;/p&gt;
&lt;p id=&quot;p-909dbf6&quot;&gt;Take African internet routing table for example. Few years ago the ASNs were almost 100% owned by Orange if they are in french speaking areas and Tata if they are in english speaking areas. If instead of being centralized outside of Africa the ASNs were centralized inside Africa, it seems like great progress. Other example is how Facebook is courting the bottom of the pyramid with its internet.org “outreach” program, and how India is not buying to it as they clearly see the threat of outsourced centralization. This could make a huge difference in terms of how internet equality develops in India long in to the future. An example everyone should be able to relate with is how instead of buying the products we’re used to and feel comfortable with, we could actively find ways to vote with our money in a way that would support local production over highly centralized mass production by regional and global entities.&lt;/p&gt;
&lt;p id=&quot;p-a70507d&quot;&gt;A lot of the most hyped pseudo decentralization efforst manifest in a form that would be better characterized as recentralization. It’s important to understand clearly, that because there is no absolute decentralization available for us to produce, it will always be a question of degree or recentralization we can avoid in our efforts to decentralize something. The simplest way to understand this theorem is that any change away from centralization constitutes decentralization.&lt;/p&gt;
&lt;figure class=&quot;figure drawn&quot; data-drawn=&quot;&quot;&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/e37ce61ce47d1eec.png&quot; alt=&quot;Black-and-white photograph of a man in glasses at a computer console with tape reels&quot;&gt;&lt;figcaption&gt;J.C.R. Licklider is one of the legends of networked computing&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-d25645b&quot;&gt;There is definitely room for big audacious decentralization research and innovation. Larry Roberts, the principal scientist at DARPA in the 50’s and 60’s, and the father of the decentralized network topology, told how J.C.R. Licklider came to his office one day and told him about the intergalactic web he had been thinking about. Describing the function of such a web, not unlike the web we have today, Lick said he had no idea how to build it, but thought that it was important for Larry to get DARPA involved in building it. Based on Lick’s vision, and his seminal paper &lt;em&gt;Man Machine Symbiosis &lt;/em&gt;from 1960, few years later Doug Engelberg in his “mother of all demos” showed the personal connected working space of 2017. Today we live in a world that is very much like the one envisioned by Lick, Larry Roberts and Doug Engelberg together with others over 50 years ago. Frankly speaking, it seems that we’re lacking in vision in comparison to our 1950’s computer science research counterparts. I think we might even be outright lost.&lt;/p&gt;
&lt;p id=&quot;p-58f72d3&quot;&gt;Going back to the original decentralized network design, why did things turn out so centralized? What can be changed in the original design in terms of topology and other fundamentals? Their money came from the US military, how much did that ultimately impact the design? Context is very important in technology innovation.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;on-context&quot;&gt;On Context&lt;/h2&gt;
&lt;blockquote id=&quot;p-b6dc24f&quot;&gt;
&lt;p&gt;A fork (for eating) is a great example of technology. Or the way how fire is used for heating older houses, and electricity newer ones.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-9884bc8&quot;&gt;If I give you a fork and no spoon to eat a bowl of watery soup, it’s not very useful. If you live in a tropical location, you’d probably use fireplace for other reasons than heating, and electric heating not at all. It would be far more useful to just have one glass of clean water than to have electric heating. If we introduce forks to people who only eat watery soups, it will not be a successful technology innovation. Without the appropriate context in to where innovation is introduced, it has no relevance and therefore it will not be adopted or will be very poorly adopted.&lt;/p&gt;
&lt;figure class=&quot;fig regions&quot; data-fig=&quot;regions&quot; data-k=&quot;0.15&quot; data-says=&quot;[&amp;#x22;technology interventions fail&amp;#x22;,&amp;#x22;technology interventions succeed&amp;#x22;]&quot; aria-label=&quot;Chart of context against function: technology interventions fail where context is low and succeed beyond the curve&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Move the point: where function meets context, a technology intervention fails or succeeds.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 420&quot;&gt;&lt;g aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;axis&quot; x1=&quot;70&quot; y1=&quot;370&quot; x2=&quot;660&quot; y2=&quot;370&quot;&gt;&lt;/line&gt;&lt;line class=&quot;axis&quot; x1=&quot;70&quot; y1=&quot;370&quot; x2=&quot;70&quot; y2=&quot;12&quot;&gt;&lt;/line&gt;&lt;text class=&quot;axis-name&quot; x=&quot;650&quot; y=&quot;404&quot; text-anchor=&quot;end&quot;&gt;Function&lt;/text&gt;&lt;text class=&quot;axis-name&quot; x=&quot;54&quot; y=&quot;24&quot; text-anchor=&quot;end&quot; transform=&quot;rotate(-90 54 24)&quot;&gt;Context&lt;/text&gt;&lt;path class=&quot;divide&quot; d=&quot;M157.0 20.0L165.4 50.7L173.7 76.4L182.1 98.3L190.4 117.1L198.8 133.5L207.1 148.0L215.5 160.7L223.8 172.1L232.2 182.3L240.6 191.5L248.9 199.8L257.3 207.4L265.6 214.3L274.0 220.7L282.3 226.6L290.7 232.0L299.1 237.1L307.4 241.7L315.8 246.1L324.1 250.2L332.5 254.0L340.8 257.6L349.2 260.9L357.5 264.1L365.9 267.1L374.3 269.9L382.6 272.6L391.0 275.1L399.3 277.5L407.7 279.8L416.0 282.0L424.4 284.1L432.7 286.1L441.1 287.9L449.5 289.8L457.8 291.5L466.2 293.1L474.5 294.7L482.9 296.3L491.2 297.7L499.6 299.1L507.9 300.5L516.3 301.8L524.7 303.0L533.0 304.2L541.4 305.4L549.7 306.5L558.1 307.6L566.4 308.7L574.8 309.7L583.2 310.7L591.5 311.6L599.9 312.5L608.2 313.4L616.6 314.3L624.9 315.1L633.3 315.9L641.6 316.7L650.0 317.5&quot;&gt;&lt;/path&gt;&lt;text class=&quot;side fail&quot; x=&quot;87.4&quot; y=&quot;195.0&quot;&gt;&lt;tspan x=&quot;87.4&quot; dy=&quot;0&quot;&gt;technology&lt;/tspan&gt;&lt;tspan x=&quot;87.4&quot; dy=&quot;1.15em&quot;&gt;interventions&lt;/tspan&gt;&lt;tspan x=&quot;87.4&quot; dy=&quot;1.15em&quot;&gt;fail&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;side succeed&quot; x=&quot;360.0&quot; y=&quot;44.5&quot;&gt;&lt;tspan x=&quot;360.0&quot; dy=&quot;0&quot;&gt;technology&lt;/tspan&gt;&lt;tspan x=&quot;360.0&quot; dy=&quot;1.15em&quot;&gt;interventions&lt;/tspan&gt;&lt;tspan x=&quot;360.0&quot; dy=&quot;1.15em&quot;&gt;succeed&lt;/tspan&gt;&lt;/text&gt;&lt;g class=&quot;example&quot;&gt;&lt;circle cx=&quot;418.0&quot; cy=&quot;331.5&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;427.0&quot; y=&quot;335.5&quot;&gt;a fork, for soup&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;example&quot;&gt;&lt;circle cx=&quot;133.8&quot; cy=&quot;310.5&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;142.8&quot; y=&quot;314.5&quot;&gt;a fireplace, in the tropics&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;example&quot;&gt;&lt;circle cx=&quot;331.0&quot; cy=&quot;356.0&quot; r=&quot;4.5&quot;&gt;&lt;/circle&gt;&lt;text x=&quot;340.0&quot; y=&quot;360.0&quot;&gt;the newest app, no internet&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;circle class=&quot;probe&quot; cx=&quot;534&quot; cy=&quot;188&quot; r=&quot;9&quot; tabindex=&quot;0&quot; role=&quot;slider&quot; aria-label=&quot;Function and Context&quot; aria-valuemin=&quot;0&quot; aria-valuemax=&quot;100&quot; aria-valuenow=&quot;80&quot; hidden=&quot;&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;figcaption&gt;The examples are the piece’s own, placed where it puts them.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-7a483eb&quot;&gt;&lt;em&gt;Impact &lt;/em&gt;is a result that comes from the causes of &lt;em&gt;function&lt;/em&gt; and &lt;em&gt;context&lt;/em&gt;. For example, limited internet access, where your initial concern in a community would not be the latest in modern world internet technology (e.g. Snapchat) but basic function like messaging, weather, market-place and simple self-publishing. When I’ve talked about various features with people in remote Himalaya locations, for example a town of 30,000 people and many problems with telecommunications, being able to make phone calls and send messages for free (using SIPS) probably had more “votes” than all the other features combined. In the same area, in a stand-alone installation in school, the call and messaging feature would have no value at all. Sometimes a given feature might seem obvious, but the way it should be implemented varies greatly depending on the community. For example maps are something arguably useful for anyone. But while most of the map use in formal internet is tactical day-to-day nagivation, most of the map use in rural settings is strategic (planning a trip etc).&lt;/p&gt;
&lt;p id=&quot;p-96a365f&quot;&gt;One of the hardest lessons to learn for technology innovators seems to be the difference between the “cutting” and “bleeding” edges. Where the first is mostly focused on self-gratification, both sensual (fame etc) and material (money etc), the second is solely concerned on improving the society. Unfortunately many innovators who do have a genuine will to improve the society, do not clearly understand this point and end up making contributions that are more cutting-edge than anything else.&lt;/p&gt;
&lt;p id=&quot;p-8239eca&quot;&gt;One example of context is how decentralization solutions can be combined to create what could be referred to as super-decentralization:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-122f6d9&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Here’s a little thought experiment. Let’s take three radically disruptive technologies and mash them together. Bitcoin. Uber. Self-driving cars. What happens when you mash the three together? The self-owning car. A car that pays for its Toyota lease, its insurance, and its gas, by giving people rides. A car that is not owned by a corporation. A car that &lt;em&gt;is&lt;/em&gt; a corporation. A car that is a shareholder and owner of its own corporation. A car that exists as an autonomous financial entity with no human ownership. This has never happened before, and that’s just the beginning. &lt;em&gt;Audience member gasps: “Oh shit!”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;From Andreas Antonopoulos’ book on cryptocurrencies&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-93e6ebd&quot;&gt;To learn more about the intersection of autonomous machines and decentralization, I highly recommend reading Daniel Suarez’s two book series &lt;em&gt;Daemon &lt;/em&gt;and &lt;em&gt;Freedom.&lt;/em&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;searching-for-very-high-degree-of-pseudo-decentralization&quot;&gt;Searching for Very High Degree of Pseudo Decentralization&lt;/h2&gt;
&lt;blockquote id=&quot;p-7decdc0&quot;&gt;
&lt;p&gt;Bitcoin is currently the best example of some of the known risks associated with pseudo decentralization.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-08b5c74&quot;&gt;Because people have limited cognitive energy, time and other resources, there can only be so many “decentralized” alternative currencies that masses can eventually adopt. If those currencies are the ones that have a low level of pseudo decentralization, but seemed great initially against the stark contrast of the old monetary system, then that is not a good outcome by any means for the world.&lt;/p&gt;
&lt;p id=&quot;p-809cab7&quot;&gt;Mindful of the challenges, I’m very interested in finding ways to create organizations that manifest as very high degrees of pseudo decentralization. Maybe because I’ve “played” with computers since -82, I’m looking for such organizations from computer networks. Needless to say, networked computing environments have become a standard for any early scientific experimentation. With the help of the web browser, such an experiment is never too far from the rapidly growing 3 billion strong internet population of the world. If indeed it is possible to create something like that ie. no-hierarchy networked computer systems, at the present time I have no idea how the theoretical benefits of such a system would translate in to positive outcomes for people and society.&lt;/p&gt;
&lt;p id=&quot;p-c295521&quot;&gt;Such a high degree pseudo decentralized system must meet some seemingly simple, but mathematically very hard to construct structures:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-239483e&quot;&gt;100% void of any hierarchy&lt;/li&gt;
&lt;li id=&quot;p-0658f4f&quot;&gt;100% void of any form of discrimination&lt;/li&gt;
&lt;li id=&quot;p-acbf213&quot;&gt;100% transparent&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-a1eba75&quot;&gt;Because it is a computer system, it has to facilitate for always-on functioning with minimal technological (including energy) overhead and at all times remain sufficiently redundant. It has to be secure and the user’s privacy has to be guaranteed. I don’t think 100% redundancy such as is the case with bitcoin is necessarily a good idea for decentralization. It is just the simplest and dumbest way to make it appear as there is decentralization. As opposed to what it had been hyped as, proof-of-work based blockchain seems to be the most idiotic way to tackle the problem of decentralization. If a monkey would come up with a way to do it, bitcoin style blockchain is what it would come up with. Equality is not associated with having exact replica of what everyone else has, but having equal access with everyone to everything. 100% redundancy i.e. last node standing still has a full record is the dumbest way to “solve” this problem.&lt;/p&gt;
&lt;p id=&quot;p-4e5c820&quot;&gt;I hope that this article helps those working in the field to look harder, and to look deeper, while being (painfully) aware of the limitations we have in solving this problem.&lt;/p&gt;
&lt;p id=&quot;p-1affa3c&quot;&gt;I wish all of you the best of luck.&lt;/p&gt;
&lt;p id=&quot;p-49e2b2f&quot;&gt;In case you want to continue the conversation, I suggest to do it &lt;a href=&quot;http://bbs.dcentralize.net/t/thoughts-on-pseudo-decentralization/68/1&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class=&quot;h-2&quot; id=&quot;if-you-liked-the-post-why-not-hit-the-share-button&quot;&gt;If you liked the post, why not hit the share button.&lt;/h3&gt;
&lt;p id=&quot;p-1087d27&quot;&gt;Or connect on twitter &lt;a href=&quot;https://twitter.com/mikkokotila&quot;&gt;@mikkokotila&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>Introduction to Mind Training</title><link href="https://mikkokotila.com/writing/introduction-to-mind-training/"/><id>https://mikkokotila.com/writing/introduction-to-mind-training/</id><published>2017-06-03T00:00:00Z</published><updated>2017-06-03T00:00:00Z</updated><category term="practice"/><category term="health"/><summary>In meditation practice, as you sit with a good posture, you pay attention to your breath. When you breathe, you are utterly there, properly there.</summary><content type="html">&lt;!-- image unavailable: https://cancercompliment.org/wp-content/uploads/2017/06/trungpa-718x1024.gif --&gt;
&lt;p id=&quot;p-2bb474a&quot; class=&quot;opening&quot;&gt;In meditation practice, as you sit with a good posture, you pay attention to your breath. When you breathe, you are utterly there, properly there. You go out with the out-breath, your breath dissolves, and then the in-breath happens naturally. Then you go out again. So there is a constant going out with the out-breath. As you breathe out, you dissolve, you diffuse. Then your in-breath occurs naturally; you don’t have to follow it in. You simply come back to your posture, and you are ready for another out breath. Go out and dissolve: tshoo; then come back to your posture; then tshoo, and come back to &lt;span class=&quot;nowrap&quot;&gt;your posture.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-3ab36fa&quot;&gt;Then there will be an inevitable bing!— thought. At that point, you say, “thinking.” You don’t say it out loud; you say it mentally: “thinking.” Labelling your thoughts gives you tremendous leverage to come back to your breath. When one thought takes you away completely from what you are actually doing — you do not even realise that you are on the cushion, but in your mind you are in San Francisco or New York City — you say “thinking,” and you bring yourself back to the breath.&lt;/p&gt;
&lt;p id=&quot;p-fd76b69&quot;&gt;It doesn’t really matter what thoughts you have. In the sitting practice of meditation, whether you have monstrous thoughts or benevolent thoughts, all of them are regarded purely as thinking. They are neither virtuous nor sinful. You might have a thought of assassinating your father or you might want to&lt;br&gt;
make lemonade and eat cookies. Please don’t be shocked by your thoughts: any thought is just thinking. No thought deserves a gold medal or a reprimand.&lt;/p&gt;
&lt;p id=&quot;p-907440a&quot;&gt;Just label your thoughts “thinking,” then go back to your breath. “Thinking,” back to breath; “thinking,” back to the breath.&lt;/p&gt;
&lt;p id=&quot;p-f4f6447&quot;&gt;– Chogyam Trungpa (from &lt;a href=&quot;https://www.amazon.com/Shambhala-Sacred-Path-Warrior-Classics-ebook/dp/B00HEN3JHW/ref=sr_1_1?ie=UTF8&amp;#x26;qid=1399545259&amp;#x26;sr=8-1&amp;#x26;keywords=sacred+path+of+the+warrior&quot;&gt;The Sacred Path of the Warrior&lt;/a&gt;)&lt;/p&gt;</content></entry><entry><title>Learning Something New</title><link href="https://mikkokotila.com/writing/learning-something-new/"/><id>https://mikkokotila.com/writing/learning-something-new/</id><published>2017-06-03T00:00:00Z</published><updated>2017-06-03T00:00:00Z</updated><category term="health"/><summary>Learning something new means to “change something” that is currently happening or not happening.</summary><content type="html">&lt;p id=&quot;p-791d954&quot; class=&quot;opening&quot;&gt;Learning something new means to “change something” that is currently happening or not happening. For example now the practitioner’s breathing is not appropriate and is making the body weak and resulting in illness, so the practitioner wants to change this. Learning is a process of change, otherwise it is not really learning but simply &lt;span class=&quot;nowrap&quot;&gt;temporary entertainment.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-b0f98ba&quot;&gt;The process of systematic learning is always the same:&lt;/p&gt;
&lt;p id=&quot;p-cbfa423&quot;&gt;1) become aware of the thing that has to be changed (e.g. cancer)&lt;br&gt;
2) identify carefully what is the nature of the thing to be changed&lt;br&gt;
3) identify the causes that are leading to that thing&lt;br&gt;
4) work on removing those causes and replacing them with other causes&lt;/p&gt;
&lt;p id=&quot;p-4ef02be&quot;&gt;It is not hard for the practitioner to arrive at the conclusion of the validity of this process and realize that there really is no other way to change undesired results (what is happening now) than change the causes (events and things) that lead to that particular result. Once the causes are removed, the result automatically dissolves.&lt;/p&gt;
&lt;p id=&quot;p-a935134&quot;&gt;While this is clear beyond doubt, the practitioner must prepare himself to patiently work on the causes to see the desired result. Depending on the particular problem that the practitioner is dealing with, seeing changes in the results may initially take a long time.&lt;/p&gt;
&lt;p id=&quot;p-6cb2298&quot;&gt;The ancients said “it takes a long journey to know the horse’s strength”.&lt;/p&gt;
&lt;p id=&quot;p-e9d73b0&quot;&gt;In a future article I will cover in detail the latest developments in behavior change management, and will provide a framework that simplifies even seemingly impossible behavior changes into approachable gradual progression.&lt;/p&gt;</content></entry><entry><title>Motivation</title><link href="https://mikkokotila.com/writing/motivation/"/><id>https://mikkokotila.com/writing/motivation/</id><published>2017-06-03T00:00:00Z</published><updated>2017-06-03T00:00:00Z</updated><category term="practice"/><summary>Once the right motivation is in place, everything is possible. When the motivation is not there, even simple things become hard. Motivation is not something that other people can give us, but something that we can find in ourselves through using our rational mind. In order for…</summary><content type="html">&lt;p id=&quot;p-2b7e33c&quot; class=&quot;opening&quot;&gt;Once the right motivation is in place, everything is possible. When the motivation is not there, even simple things become hard. Motivation is not something that other people can give us, but something that we can find in ourselves through using our rational mind. In order for that to happen, four different types of insights are needed to arise for &lt;span class=&quot;nowrap&quot;&gt;the practitioner:&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-25e9277&quot;&gt;1) there is something that needs to be changed&lt;/p&gt;
&lt;p id=&quot;p-add3039&quot;&gt;2) there is a way how that thing can be changed&lt;/p&gt;
&lt;p id=&quot;p-d7185c3&quot;&gt;3) those ways are available to the practitioner&lt;/p&gt;
&lt;p id=&quot;p-f982b5b&quot;&gt;4) the practitioner is able to use those ways&lt;/p&gt;
&lt;p id=&quot;p-5491854&quot;&gt;Once the right motivation is in place, it is possible to systematically learn something new and move towards the desired results.&lt;/p&gt;</content></entry><entry><title>On Spiritual Development</title><link href="https://mikkokotila.com/writing/on-spiritual-development/"/><id>https://mikkokotila.com/writing/on-spiritual-development/</id><published>2017-06-03T00:00:00Z</published><updated>2017-06-03T00:00:00Z</updated><category term="practice"/><summary>Which is more important: to attain enlightenment, or to attain enlightenment before you attain enlightenment; to make a million dollars, or to enjoy your life in your effort, little by little, even though it is impossible to make that million; to be successful, or to find some…</summary><content type="html">&lt;!-- image unavailable: https://cancercompliment.org/wp-content/uploads/2017/06/AAEAAQAAAAAAAASAAAAAJDdjYjAwODdmLTFlNGEtNGVhYi1iYTYxLTQ0YWFjZjEzYjA5Mg.jpg --&gt;
&lt;p id=&quot;p-df1c6e3&quot; class=&quot;opening&quot;&gt;Which is more important: to attain enlightenment, or to attain enlightenment before you attain enlightenment; to make a million dollars, or to enjoy your life in your effort, little by little, even though it is impossible to make that million; to be successful, or to find some meaning in your effort to be successful? If you do not know the answer, you will not even be able to practice zazen; if you do know, you will have found the true treasure &lt;span class=&quot;nowrap&quot;&gt;of life.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-695b882&quot;&gt;– Shunryu Suzuki (from &lt;a href=&quot;http://amzn.to/Ru1ZfV&quot;&gt;Zen Mind, Beginner’s Mind&lt;/a&gt;)&lt;/p&gt;</content></entry><entry><title>The Eight Important Points of Cancer – Short Background to Master Cheng</title><link href="https://mikkokotila.com/writing/the-eight-important-points-of-cancer-short-background-to-master-cheng/"/><id>https://mikkokotila.com/writing/the-eight-important-points-of-cancer-short-background-to-master-cheng/</id><published>2017-06-03T00:00:00Z</published><updated>2017-06-03T00:00:00Z</updated><category term="health"/><summary>Cheng Man Ching is one of the greats of contemporary Tai Chi and is the single best-known contributor to the spread of Chinese internal arts to the US where today millions of people practice Tai Ji.</summary><content type="html">&lt;!-- image unavailable: https://cancercompliment.org/wp-content/uploads/2017/06/b5bf8582e9fa47c65e13f9f611a28d46.jpg --&gt;
&lt;p id=&quot;p-5b406cf&quot; class=&quot;opening&quot;&gt;Cheng Man Ching is one of the greats of contemporary Tai Chi and is the single best-known contributor to the spread of Chinese internal arts to the US where today millions of people practice Tai Ji. Professor Cheng as he was referred to as, was also an accomplished doctor who helped hundreds of patients with terminal cancer to cure completely and live long after western doctors had given them the “death sentence”.  Below is the introduction to a seminal paper Master Cheng wrote covering the topic of cancer, one of his keenest interests. I share this text with the utmost respect to those that had taken up the challenge of translating the text from original Chinese, and &lt;span class=&quot;nowrap&quot;&gt;publishing it.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-e58e80f&quot;&gt;While I understand that the text is copyrighted, I still think that it is of utmost importance to have this invaluable text available to as many people as possible. I have no doubt in my mind that Master Cheng’s intention was that his wisdom would benefit as many people as possible. After studying the topic of cancer nearly two decades I found Master Cheng’s analysis on the topic the single most useful analysis on the topic of cancer, even though just 8 short pages long. For further convenience for the modern reader, I’ve broken the text down to individual posts as the chapters are presented in the original text. I’ve emitted chapter 9 – which covers the topic of surgery – as unfortunately many have already gone through surgery at the time they become interested in such texts. At least that have been my experience so far. I will anyhow say that Master Cheng, as any traditional Chinese internist, does not support surgery, and sees it as one of the primary causes for cancer to spread throughout the body. I will at some point add a commentary on the topic of surgery, and will include Master Cheng’s seminal text as part of it.&lt;/p&gt;
&lt;p id=&quot;p-457bd84&quot;&gt;My personal connection with Master Cheng is strong, even though I was not blessed to meet with him in person. The first internal martial arts that I learned was Cheng Man Ching style Tai Chi, which is a simplified form with focus on health benefits and general well being. Some years later I had the great fortune of meeting with my Shifu, a legendary martial arts master, and a skilled Chinese doctor,  who lacking a better expression, gave me life. He is the chief disciple of Chiao Chang Hung, a titan of the 20th century Internal Martial arts and the founder of Taipei Tai Chi Association. Grandmaster, together with another legend, Chen Pan Ling, started the association in order to support the spread of Chinese internal martial arts throughout the world. Cheng Man Ching became the most successful many masters who took on that task of vital importance. Today, his style of Tai Chi is the most widely practiced form of Chinese internal martial art in the west.&lt;/p&gt;
&lt;p id=&quot;p-462f4d8&quot;&gt;It is with great reverence that I share this one of a kind commentary on the topic that had created more havoc and despair than any other during past 50 years since Master Cheng had originally wrote the commentary.&lt;/p&gt;
&lt;!-- image unavailable: https://cancercompliment.org/wp-content/uploads/2017/06/master-of-five-excellences.jpg --&gt;
&lt;p id=&quot;p-fdcf638&quot;&gt;Part 1 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-introduction/&quot;&gt;Introduction&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-b0bbfa6&quot;&gt;Part 2 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-2-history/&quot;&gt;History&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-ae07985&quot;&gt;Part 3 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-3-symptoms/&quot;&gt;Symptoms&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-b4f0808&quot;&gt;Part 4 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-4-nature-and-composition/&quot;&gt;Nature and Composition&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-beb2336&quot;&gt;Part 5 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-5-causes/&quot;&gt;Causes&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-6df4913&quot;&gt;Part 6 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-6-from-first-sensation-to-development-and-the-mistake-of-procrastination/&quot;&gt;From First Sensation to Development and the Mistake of Procrastination&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-2e10014&quot;&gt;Part 7 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-7-treatment/&quot;&gt;Treatment&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-d32002d&quot;&gt;Part 8 –&lt;/p&gt;
&lt;p id=&quot;p-6ce82ac&quot;&gt;Part 9 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-9-prevention/&quot;&gt;Prevention&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-da0f056&quot;&gt;Part 10 – &lt;a href=&quot;http://cancercompliment.org/the-eight-important-points-of-cancer-10-afterword/&quot;&gt;Afterword&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>How to Buy Ethereum in 5 Minutes without Feeling Like an Idiot</title><link href="https://mikkokotila.com/writing/how-to-buy-ethereum-in-5-minutes-without-feeling-like-an-idiot/"/><id>https://mikkokotila.com/writing/how-to-buy-ethereum-in-5-minutes-without-feeling-like-an-idiot/</id><published>2017-05-30T00:00:00Z</published><updated>2017-05-30T00:00:00Z</updated><category term="decentralization"/><category term="guides"/><summary>com as that was the suggestion everyone seems to be following. Below I show how you can actually do it in 10 minutes. TL;DR If you’re new to cryptocurrencies, it might come as a surprise how confusing the eco-system is.</summary><content type="html">&lt;h3 class=&quot;h-1&quot; id=&quot;over-a-course-of-a-week-i-tried-to-get-eth-by-using-coinbasecom-as-that-was-the-suggestion-everyone-seems-to-be-following-below-i-show-how-you-can-actually-do-it-in-10-minutes&quot;&gt;Over a course of a week I tried to get ETH by using coinbase.com as that was the suggestion everyone seems to be following. Below I show how you can actually do it in 10 minutes.&lt;/h3&gt;
&lt;p id=&quot;p-5ff57f4&quot;&gt;TL;DR&lt;/p&gt;
&lt;p id=&quot;p-19b1d66&quot;&gt;If you’re new to cryptocurrencies, it might come as a surprise how confusing the eco-system is. More so, the apparent market leader coinbase.com is the most unreliable internet service I have come across since coming online in 1994. Not kidding. Apparently they had a bad week because of a surge in BTC trades, but that actually makes no sense because the entire daily trade volume of BTC is 250 million transactions. There is another narrative that makes much more sense, but it’s really negative so I’m not going to share it (at least not in this post). Instead I’ll show you how you can use state-of-the-art internet services, with impeccable user experience, and in 10 minutes have your ETH wallet ready for example to take part in an ICO.&lt;/p&gt;
&lt;p id=&quot;p-632173f&quot;&gt;The one I’m interested in is the Basic Attention Token ICO by the Brave guys. In case you’re interested, I’ve written many articles that explain why I like Brave’s vision and why I think that the team is working on something that has the potential for making a big difference. You can find the articles &lt;a href=&quot;http://thankyouforadblocking.com/blog/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p id=&quot;p-0ac356c&quot;&gt;DISCLAIMER: I’m not providing this information for investment purpose or for any kind of speculation with cryptocurrencies. It’s just for having fun with ICOs with a little bit of money for learning purpose. I don’t practice any form of investment, and if I would ever get any positive return, I would donate it all to charity. I encourage you do the same.&lt;/p&gt;
&lt;p id=&quot;p-192dba4&quot;&gt;In fact, I think most online advertising related ICOs we will see are going to be schemes you really don’t want to be part of. You can read a more detailed analysis on that aspect in an article I wrote that answers the question &lt;a href=&quot;http://botlab.io/wtf-is-adtoken-a-primer-to-ad-network-2-0-schemes/&quot;&gt;what is adToken&lt;/a&gt;, another online advertising token based on Ethereum.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;overview-getting-your-ethereum-eth-in-few-simple-steps&quot;&gt;OVERVIEW: Getting Your Ethereum (ETH) in Few Simple Steps&lt;/h4&gt;
&lt;p id=&quot;p-521db45&quot;&gt;First I will provide a simple outline of the steps that are required to do this.&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-9ca9d32&quot;&gt;Get a wallet from &lt;a href=&quot;https://www.myetherwallet.com/&quot;&gt;https://www.myetherwallet.com&lt;/a&gt; (later MEW)&lt;/li&gt;
&lt;li id=&quot;p-afce5c1&quot;&gt;Make sure that you can access your wallet ok&lt;/li&gt;
&lt;li id=&quot;p-aaae95f&quot;&gt;Open an account in &lt;a href=&quot;https://cex.io/&quot;&gt;https://cex.io&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;p-57fdc16&quot;&gt;Go through the verification hoops in CEX.IO&lt;/li&gt;
&lt;li id=&quot;p-409e724&quot;&gt;Deposit money from your credit card to CEX.IO&lt;/li&gt;
&lt;li id=&quot;p-1a5c691&quot;&gt;Buy ETH with your money in CEX.IO&lt;/li&gt;
&lt;li id=&quot;p-3ba6854&quot;&gt;Withdraw ETH to your wallet ID (do this with small amount first)&lt;/li&gt;
&lt;li id=&quot;p-e867257&quot;&gt;Go back to MEW and confirm that the transaction have gone through&lt;/li&gt;
&lt;li id=&quot;p-86f03d2&quot;&gt;Repeat with the actual amount you want to have in your wallet&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-67ffb8d&quot;&gt;&lt;strong&gt;IMPORTANT NOTICE: &lt;/strong&gt;MEW is a wallet that you store on your own computer (and as a backup outside of your computer) and there is no way to recover your password if you lose it. In other words, if you lose your password OR your wallet file, you lose your money. There will be nothing you can do about it, so take care of it.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;detailed-walkthrough-getting-your-ethereum-eth-in-few-simple-steps&quot;&gt;DETAILED WALKTHROUGH: Getting Your Ethereum (ETH) in Few Simple Steps&lt;/h4&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;step-1--get-a-wallet-from-httpswwwmyetherwalletcom-later-mew&quot;&gt;Step 1 — Get a wallet from &lt;a href=&quot;https://www.myetherwallet.com/&quot;&gt;https://www.myetherwallet.com&lt;/a&gt; (later MEW)&lt;/h4&gt;
&lt;p id=&quot;p-2fc7e43&quot;&gt;First go to &lt;a href=&quot;https://www.myetherwallet.com/&quot;&gt;https://www.myetherwallet.com&lt;/a&gt;.&lt;/p&gt;
&lt;p id=&quot;p-293f7ee&quot;&gt;You will notice that there is no account to be created. Basically you create password, and then you get your wallet file.&lt;/p&gt;
&lt;p id=&quot;p-25242e8&quot;&gt;DO NOT LOSE THE PASSWORD!!! DON’T LOSE IT.&lt;/p&gt;
&lt;p id=&quot;p-d4da90a&quot;&gt;Once you get to the next screen, follow the instructions and download your wallet file.&lt;/p&gt;
&lt;p id=&quot;p-5b23f4d&quot;&gt;DO NOT LOSE THE WALLET FILE!!! DON’T LOSE IT.&lt;/p&gt;
&lt;p id=&quot;p-e28889b&quot;&gt;It’s probably a good idea to immediately have a backup outside of your computer (and no, your mounted external hard drive is not a good option). Do the same for your password, but better not store it in the same outside place as you store your wallet.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;2-make-sure-that-you-can-access-your-wallet-ok&quot;&gt;2. Make sure that you can access your wallet ok&lt;/h4&gt;
&lt;p id=&quot;p-3b7a431&quot;&gt;Before doing anything else, let’s make sure that you can access the wallet ok. The file that you got in the last step is the UTC / JSON file in the first option, so choose that. Then you’ll be asked for your password, which is what you created in the previous step.&lt;/p&gt;
&lt;p id=&quot;p-475dba7&quot;&gt;Successfully going through the process — which should not take more than 1 minute — yields a screen that looks something like this:&lt;/p&gt;
&lt;p id=&quot;p-ba2bac0&quot;&gt;Note that I’ve masked the account balance and account address, so in your case you would see your own account address and initially your balance would be 0.00 ETH.&lt;/p&gt;
&lt;p id=&quot;p-e707fed&quot;&gt;Make sure to take note of your wallet address. A long string that looks something like this:&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;3-open-an-account-in-httpscexio&quot;&gt;3. Open an account in &lt;a href=&quot;https://cex.io/&quot;&gt;https://cex.io&lt;/a&gt;&lt;/h4&gt;
&lt;p id=&quot;p-812c051&quot;&gt;First go to &lt;a href=&quot;https://cex.iop/&quot;&gt;https://cex.io&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-c65ebcf&quot;&gt;The first thing you want to do is go through the process of creating an account. It’s very nicely streamlined and there is nothing out of ordinary…everything just works. Now go do it and I’ll see you in the next step.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;4-go-through-the-verification-hoops-in-cexio&quot;&gt;4. Go through the verification hoops in CEX.IO&lt;/h4&gt;
&lt;p id=&quot;p-d55feb5&quot;&gt;What you’ll need for this step is:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-329d76a&quot;&gt;mobile phone that can receive SMS&lt;/li&gt;
&lt;li id=&quot;p-1f24ee7&quot;&gt;your ID (I used passport)&lt;/li&gt;
&lt;li id=&quot;p-f98f1f0&quot;&gt;your credit card&lt;/li&gt;
&lt;li id=&quot;p-c875a86&quot;&gt;a webcam or some other means to take a photo&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-7b567f0&quot;&gt;Other than that, these guys clearly have a lot of respect for their users as the verification process is by far the most painless in comparison to at least 7 other platforms I’ve done the same with. This is literally from a different planet in comparison to coinbase.com.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;5-deposit-money-from-your-credit-card-to-cexio&quot;&gt;5. Deposit Money from Your Credit Card to CEX.IO&lt;/h4&gt;
&lt;p id=&quot;p-ccf3a50&quot;&gt;Note that this might work with debit card as well. I only tried credit card so I can’t say for sure. When you add your card, you’ll first have to go through a verification step where you call your bank (or check your online statement via online banking though I think those rarely update in real-time) and they’ll let you know what is the amount in the test charge, and once you key that in to cex.io, you’re ready to go and use the card to deposit for example&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;6-buy-eth-with-your-money-in-cexio&quot;&gt;6. Buy ETH with your money in CEX.IO&lt;/h4&gt;
&lt;p id=&quot;p-c0fdef4&quot;&gt;Now that you’ve deposited the money, you can buy your cryptocurrency (ETH or BTC and maybe). This is made very easy with CEX.IO and takes about 30 seconds to complete. Just choose the amount you want to buy and the kind of cryptocurrency you want, and that’s it.&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;7-withdraw-eth-to-your-wallet-id-do-this-with-small-amount-first&quot;&gt;7. Withdraw ETH to your wallet ID (do this with small amount first)&lt;/h4&gt;
&lt;p id=&quot;p-b61258a&quot;&gt;We’re getting very close now. If you had gone through as much pain as I had before getting to this point, you’re more or less sure something will still go wrong. Don’t worry, this s**t actually works.&lt;/p&gt;
&lt;p id=&quot;p-20a182c&quot;&gt;Go: &lt;a href=&quot;https://cex.io/trade/withdrawal#/currency/BTC/instrument_id/crypto&quot;&gt;https://cex.io/trade/withdrawal#/currency/BTC/instrument_id/crypto&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-0bc78ce&quot;&gt;Now key in your wallet address.&lt;/p&gt;
&lt;p id=&quot;p-8b3e27c&quot;&gt;DON’T SEND MORE THAN 0.1 ETH FIRST BEFORE YOU ARE SURE YOU GOT EVERYTHING RIGHT!!!&lt;/p&gt;
&lt;p id=&quot;p-4710133&quot;&gt;You should now see a notification about email having been sent to your email on associated with the account, and once you confirm it, the ETH will move :)&lt;/p&gt;
&lt;p id=&quot;p-e4dc0b3&quot;&gt;Once you’ve clicked the link in the email, you’ll see a screen like this:&lt;/p&gt;
&lt;p id=&quot;p-342233e&quot;&gt;That’s it…we did it. Now you have ETH on your wallet :)&lt;/p&gt;
&lt;h4 class=&quot;h-2&quot; id=&quot;8-go-back-to-mew-and-confirm-that-the-transaction-have-gone-through&quot;&gt;8. Go back to MEW and confirm that the transaction have gone through&lt;/h4&gt;
&lt;p id=&quot;p-83cb835&quot;&gt;Now go back to &lt;a href=&quot;https://www.myetherwallet.com/&quot;&gt;https://www.myetherwallet.com&lt;/a&gt;.&lt;/p&gt;
&lt;p id=&quot;p-33f4ed9&quot;&gt;Just repeat the steps that you had taken before when confirming that your wallet works, and make sure that the ETH indeed now is in your wallet.&lt;/p&gt;
&lt;p id=&quot;p-d82066c&quot;&gt;Finally, repeat step 7 with the full amount you want to transfer.&lt;/p&gt;
&lt;p id=&quot;p-b25dbd7&quot;&gt;That’s it. Have fun!&lt;/p&gt;</content></entry><entry><title>Demystifying Buddhism — Part 1 — Prelude</title><link href="https://mikkokotila.com/writing/demystifying-buddhism-part-1-prelude/"/><id>https://mikkokotila.com/writing/demystifying-buddhism-part-1-prelude/</id><published>2017-05-24T00:00:00Z</published><updated>2017-05-24T00:00:00Z</updated><category term="practice"/><category term="wisdom"/><summary>If you give me 5 minutes of your time, I’ll use reason and facts to dispel five crucial myths about Buddhism and show you its nothing but common sense</summary><content type="html">&lt;h3 class=&quot;h-1&quot; id=&quot;myth-buddhism-is-a-religion&quot;&gt;MYTH: Buddhism is a Religion&lt;/h3&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;fact-buddhism-is-the-antithesis-of-religion&quot;&gt;FACT: Buddhism is the antithesis of religion&lt;/h3&gt;
&lt;p id=&quot;p-91f01fd&quot; class=&quot;opening&quot;&gt;Buddhist practitioners take many vows, first of which is to never believe in god. One of the well-known public teachings of the historical Buddha’s he emphasized that we should never believe something that we can’t conclude by the power of our reason. In other words, we should not simply believe something because we are told that it is so or because we could not find a better answer. He further emphasized not to believe anything he says, unless one could conclude it to be so by the power of one’s &lt;span class=&quot;nowrap&quot;&gt;own reason.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;myth-statues-of-buddha-are-for-worshipping&quot;&gt;MYTH: Statues of Buddha are for Worshipping&lt;/h3&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;fact-any-form-of-worshipping-is-strictly-renounced-in-buddhism&quot;&gt;FACT: Any form of worshipping is strictly renounced in Buddhism&lt;/h3&gt;
&lt;p id=&quot;p-983689d&quot;&gt;Following a doctrine completely void of any theism, Buddhist masters emphasize the point about not allowing yourself to be a worshipper. This is also 100% true in the case of the more advanced Tantric practices that characterize Tibetan Buddhism. The elaborate paintings with various nonhuman characters are simply the technology part of an ancient meditation technique. They are never referred to as gods, but as Meditational Deities and represent various aspects of our experience such as compassion or anger. Why then Buddhist practitioners have statues and other items, you may ask? It is so that they would not forget Buddha’s teaching and instructions, and in some cases to support meditative concentration.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;myth-buddha-was-a-buddhist&quot;&gt;MYTH: Buddha was a Buddhist&lt;/h3&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;fact-there-was-no-such-thing-as-buddhism-during-buddhas-time&quot;&gt;FACT: There was no such thing as Buddhism during Buddha’s time&lt;/h3&gt;
&lt;p id=&quot;p-9054934&quot;&gt;During Buddha’s time there was no idea or organization with the demarkation &lt;em&gt;Buddhism. &lt;/em&gt;The word Buddha comes from the word “Bodhi” that means “awakened”. In this context awakened refers to not being delusional. Delusional means being trapped in ignorance, desire and fear. The other way of looking at the meaning of awakened is that it is a person who has completely given up self-centered activity of mind, speech and body.&lt;/p&gt;
&lt;p id=&quot;p-e3eafcd&quot;&gt;Actually Buddha was a meditator and a meditation teacher. The modes of organization that he introduced all aimed towards creating a conducive environment both externally and internally for meditation.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;myth-buddhist-texts-are-like-any-other-religious-texts&quot;&gt;MYTH: Buddhist texts are like any other religious texts&lt;/h3&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;fact-all-authentic-buddhist-texts-are-meditation-manuals&quot;&gt;FACT: All authentic buddhist texts are meditation manuals&lt;/h3&gt;
&lt;p id=&quot;p-47ba74b&quot;&gt;Every teaching Buddha gave was an outline for a meditation on a given topic. Today we know these texts as &lt;em&gt;Sutra, &lt;/em&gt;a reference to a teaching that Buddha himself had given. They are all without exception manuals that support a three staged approach to attaining a realization on a given topic:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-a1ac5c9&quot;&gt;&lt;strong&gt;Listen&lt;/strong&gt; so that you know what it is&lt;/li&gt;
&lt;li id=&quot;p-ace5cf4&quot;&gt;&lt;strong&gt;Contemplate &lt;/strong&gt;so you understand why it’s important&lt;/li&gt;
&lt;li id=&quot;p-7d4ea17&quot;&gt;&lt;strong&gt;Meditate &lt;/strong&gt;so you experience it rather just intellectualize it&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-f7277bf&quot;&gt;This method is at the heart of the Buddhist practice, and goes back to the point about not believing anything. But Buddha didn’t just stop there, he also said that it’s important that we really feel at the level of our own experience the information to be accurate. Mere intellectualization is not enough.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;myth-you-can-born-to-being-a-buddhist&quot;&gt;MYTH: You can born to being a Buddhist&lt;/h3&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;fact-buddhism-is-not-a-birthright-but-a-practice&quot;&gt;FACT: Buddhism is not a birthright, but a practice&lt;/h3&gt;
&lt;p id=&quot;p-7866cdc&quot;&gt;While you can born in to religion, you can’t born in to practice. For example, you can’t born in to being a chess player. You have to adopt certain ideas and methods and you have to develop certain skills. It is like that with Buddhism. First and foremost you have to meditate, because that was the practice Buddha was focused on. Also it is said that anyone can be a Buddhist, if they see the world in a particular way introduced by Buddha and later formalized the early Indian Masters. There are four points, three of which I will briefly cover below.&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-3e59d2b&quot;&gt;All compound things are impermanent&lt;/li&gt;
&lt;li id=&quot;p-454ae88&quot;&gt;All emotions are painful&lt;/li&gt;
&lt;li id=&quot;p-93774a6&quot;&gt;All phenomena is without inherent existence&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-ed7e1bc&quot;&gt;Can you name something that is compound, but is also permanent? Of course you can’t, because the very fact that it manifest shows how it is a result of other things coming together. Because it is coming together as a result of other things, it will change in relation to those other things.&lt;/p&gt;
&lt;p id=&quot;p-cf44e27&quot;&gt;Are all emotions really painful? Think about it. If you do something painful, the more you will do it, the more you suffer. It does not become happiness at any point. How about things that you find pleasurable, for example sex? It is the same, when you keep doing it more and more, it will become suffering. This you will find is true to everything that you thought is happiness, which actually is just a contrast to the more gross forms of suffering.&lt;/p&gt;
&lt;p id=&quot;p-e160d8d&quot;&gt;Because phenomena, manifest things, are actually made out of causes and conditions, consequently it follows that those causes and conditions also need to be a result of other causes and conditions…ad infinitum.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;if-we-can-agree-that-meditation-is-beneficial-and-we-cant-refute-these-points-then-it-necessarily-follows-that-buddhism-is-simply-common-sense&quot;&gt;If we can agree that meditation is beneficial, and we can’t refute these points, then it necessarily follows that Buddhism is simply common sense.&lt;/h3&gt;</content></entry><entry><title>Pixalate’s Secret War on Xindi Botnet (Intro) — Full. Spectrum. Goddamn. Cyber.</title><link href="https://mikkokotila.com/writing/pixalates-secret-war-on-xindi-botnet-intro-full-spectrum-goddamn-cyber/"/><id>https://mikkokotila.com/writing/pixalates-secret-war-on-xindi-botnet-intro-full-spectrum-goddamn-cyber/</id><published>2017-05-23T00:00:00Z</published><updated>2017-05-23T00:00:00Z</updated><category term="ad-fraud"/><summary>On 18th of November Mediapost, an advertising industry mouthpiece wrote a story on Pixalate’s findings and the alleged Xindi botnet costing companies $3 billion by end of 2016.</summary><content type="html">&lt;p id=&quot;p-f1eee62&quot;&gt;&lt;em&gt;On 18th of November Mediapost, an advertising industry mouthpiece wrote a story on Pixalate’s findings and the alleged Xindi botnet costing companies $3 billion by end of 2016. This led to what seems like parroting of the original story widely in media, including leading security press. The paper anyhow is not research, but marketing and Pixalate is not a security company, but a sales company. Under closer inspection, Pixalate’s war on Xindi turns out so secret, that even after it became public, nobody knows anything about it.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-6f25dff&quot;&gt;&lt;strong&gt;“Full. Spectrum. Goddam. Cyber.”&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-96af4cb&quot;&gt;That is the phrase used by respected information security researcher @da_667 in his blogpost covering the infosec point-of-view on Pixalate’s Xindi Botnet.&lt;/p&gt;
&lt;p id=&quot;p-4cc351c&quot;&gt;You can read DA’s post here: &lt;a href=&quot;https://blindseeker.com/blahg/?p=647&quot;&gt;https://blindseeker.com/blahg/?p=647&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-524a6f3&quot;&gt;I can’t find much better words to describe the situation the adtech industry, and specifically, the anti-fraud segment of it finds itself with the alleged Xindi Botnet and the events that relate to reporting it widely in the media without any basis of substantial facts.&lt;/p&gt;
&lt;p id=&quot;p-9b7c17f&quot;&gt;What is especially hard to understand in this case, is what was Pixalate thinking, being so ill-prepared, yet aggressively pursuing the attention of Chief Information Security Officers. This is what prompted some of the most respected security researchers to pay closer attention to Pixalate’s claims, and what has turned out an almost complete absence of any evidence.&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-ecc14dc&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;CISOs: Pixalate is releasing the list of infected IP addresses, which have been exploiting this vulnerability, according to our data. Enterprise and Universities Network Security teams can request more data about the IP addresses belonging to their organizations. For further details, please contact Pixalate at &lt;a href=&quot;mailto:xindi@pixalate.com&quot;&gt;xindi@pixalate.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Pixalate, quoted by @da_667 on Twitter, 6 December 2015: “so this shit right here is what prompted my involvement in this shitstorm of a rabbit hole.”&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-26c99e1&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;so between five members of carbon dynamics, me (working at TALOS), and @botnet_hunter working at (cylance SPEAR)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;@da_667, on Twitter, 6 December 2015&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-30e6486&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;@da_667 @botnet_hunter you’re like a super team&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;@SwiftOnSecurity, on Twitter, 6 December 2015&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-e24c45a&quot;&gt;What unfolds here, is a series that covers my involvement in botlab.io’s investigation into Pixalate’s alleged Xindi Botnet. As you will later find out, while we had made several attempts to get sample data from Pixalate on the alleged Xindi botnet, it is very likely that without the contribution of @da_667 and other researchers on this matter, Xindi would have become part of the programmatic storyline. This does not mean researchers or key technical decision makers bought into the report’s claims, I have spoken with a few who all said something along the lines of:&lt;/p&gt;
&lt;p id=&quot;p-ce1e9e9&quot;&gt;“the findings of the report do not make sense to us” or “the alleged vulnerability is not relevant in our system”.&lt;/p&gt;
&lt;p id=&quot;p-6f53819&quot;&gt;It is very important to understand the difference between the two. Where as “the findings of the report do not make sense to us” clearly demonstrate an understanding of the lack of substance the report exhibits. Where as “we’ve already fixed it long ago” implies that the vendor in question was not able to call the bs in the report, or are not committed to transparency and disclosure of important information about the issues in the industry.&lt;/p&gt;
&lt;p id=&quot;p-a4ecf42&quot;&gt;&lt;strong&gt;Why should you take what I say very seriously about this topic?&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-5ba0872&quot;&gt;I work as the lead researcher for botlab.io, the only research foundation focused on ad fraud research. I authored the &lt;em&gt;WFA’s Guide to Programmatic Media&lt;/em&gt;, and am the co-chair of I-COM Data Science Board. &lt;em&gt;WFA’s Guide to Programmatic Media &lt;/em&gt;is considered by many to be the most important, and the most critical analysis of the programmatic media market.&lt;/p&gt;
&lt;p id=&quot;p-ce3f605&quot;&gt;I’ve spent over 20 years researching the internet and advocating better practices based on my research. Having first-hand experience as an innovator in the programmatic industry, I’m one of the only researchers who is widely recognized to intimately understand even the most technical aspects of advertising technology and its use.&lt;/p&gt;
&lt;p id=&quot;p-f388ef1&quot;&gt;As a point of recent reference, here is what &lt;em&gt;Trustworthy Accountability Group’s&lt;/em&gt; CEO Mike Zaneis said about my and ARF’s Dr. Fou’s individual contributions on the topic of ad fraud:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-08d5b04&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Love seeing Augustin and Mikko, two of the smartest data scientists in this space providing insights. We might need to hold a TAG industry forum to further hash out next…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Michael Zaneis, IAB, 3 December 2015&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-fe4cafc&quot;&gt;Not only as a testament to my contributions in this subject matter, it is this kind of co-operative spirit Mike exhibits, that is needed in the industry in order for us to see a reduction in ad fraud. Even when we don’t agree on all things, it is important that we agree to the extent where we can see each other’s good qualities and the contributions that are being made in the fight against ad fraud.&lt;/p&gt;
&lt;p id=&quot;p-d7239d2&quot;&gt;Now let’s let the story speak for itself.&lt;/p&gt;
&lt;p id=&quot;p-1501d27&quot;&gt;And really what we have is a story, which tells about the publishing of sensational findings and having a lot of people panic, without providing substantial evidence that has the effect of backing up the made claims. The people who panicked were the CISOs and CMOs of large advertising companies. They were wrongly told that not only they will lose tremendous amounts of money, but it is their exposed systems that is causing it. It appears that the report was heavily marketed.&lt;/p&gt;
&lt;p id=&quot;p-5a17899&quot;&gt;&lt;strong&gt;Why security researchers matter to ad fraud research?&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-d9a3786&quot;&gt;In botlab.io, as it is an organization of researchers and is setup to support research initiatives, one of our goals is to make ad fraud research more attractive to security researchers. It might not be like selling ice to eskimos, but it’s not easy.&lt;/p&gt;
&lt;p id=&quot;p-57a3aa0&quot;&gt;The main issue we see with the current state of ad fraud research can be explained in three points:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-b605951&quot;&gt;Ad fraud is a cybersecurity problem&lt;/li&gt;
&lt;li id=&quot;p-39310e9&quot;&gt;Cybersecurity researchers have poor understanding of ad fraud&lt;/li&gt;
&lt;li id=&quot;p-2bc2659&quot;&gt;Ad fraud researchers have poor understanding of cybersecurity&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-ef688fc&quot;&gt;The conclusion in our analysis has been that unless there is some convergence between the fields of cybersecurity research and ad fraud research, things will become much worse. By this, I mean that the society we all live in will become worse. Ad fraud is already by far the largest cybercrime, with annual revenues somewhere between $10–$50 billion.&lt;/p&gt;
&lt;p id=&quot;p-b95b88f&quot;&gt;The other way of looking at this, is to ask what are the causes of safe society? It seems fair to argue that four axioms can be established:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-e69a01f&quot;&gt;security of adtech security vendors is a cause for security of adtech vendors&lt;/li&gt;
&lt;li id=&quot;p-a3f7c51&quot;&gt;security of adtech vendors is a cause for security of adtech&lt;/li&gt;
&lt;li id=&quot;p-e55e3de&quot;&gt;security of adtech is a cause for security of the internet&lt;/li&gt;
&lt;li id=&quot;p-7cc489f&quot;&gt;security of the internet is a cause for security of society&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-30f2131&quot;&gt;If we can agree that these four are true, then it is clear that the behavior of those companies that present themselves as “adtech security vendors”, is intimately connected with security of society. We don’t have to like this point, but it does seem like a strong argument with the information we have.&lt;/p&gt;
&lt;p id=&quot;p-5a17899-2&quot;&gt;&lt;strong&gt;Why security researchers matter to ad fraud research?&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-2f5b3ac&quot;&gt;Let’s be honest with ourselves. It’s not like security researchers were fighting for being part of solving advertising technology’s most pressing problems. Our starting point before Pixalate was complicated.&lt;/p&gt;
&lt;p id=&quot;p-ee692ce&quot;&gt;What has happened since the report was published, adtech’s own anti-fraud vendor Pixalate made it to the 2015 FULL SPECTRUM CYBER DOUCHERY KRAMPUS LIST. Listed together with ~200 others, including Hacking Team and Anonymous, only one of the listed have more entries than Pixalate’s five. This is a list by an influential researcher, with other influential researchers as contributors.&lt;/p&gt;
&lt;p id=&quot;p-77f2f2a&quot;&gt;Before we move on to covering everything botlab.io’s research led to in this matter, there is something I want to say to the guys at Pixalate:&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Inritabis crabrones&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/9a3694c55c6c4bca.png&quot; alt=&quot;Cartoon meme: “Do you want pissed off infosecs? Because this is how you get pissed off infosecs.”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;You will stir up the hornets.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Plautus, Amphitryon&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “Do you want pissed off infosecs? Because this is how you get pissed off infosecs.”&lt;/p&gt;&lt;/figure&gt;
&lt;p id=&quot;p-16d1f2e&quot;&gt;At the moment there is a resentment within the information security research community towards advertising technology and topics associated with it. This is not helping to slow down the process where by our estimates, in 2025 there will be more annual ad fraud profit than there will be annual cybersecurity profit. More information can be made available to support this scenario as not only realistic but with the current trends, likely.&lt;/p&gt;
&lt;p id=&quot;p-61523be&quot;&gt;What we have with Pixalate’s Xindi report, is the opposite of convergence of the two fields of research. Not only the integrity of the research have been seriously questioned by very influential security researchers, but also the vendor has entirely failed in satisfying any of the concerns researchers have voiced out.&lt;/p&gt;
&lt;p id=&quot;p-a7c0e42&quot;&gt;As far as I’m considered, the mistakes related to the report covering Xindi Botnet, on behalf of the vendor and media, mark the greatest single set back in this early stage of the fight against ad fraud.&lt;/p&gt;
&lt;p id=&quot;p-ce9b158&quot;&gt;Don’t take my word for it, not even after the reading everything that this series will cover. Go and do your own research, find your own facts. See if you can get to a different result. If you can do that, I will be very happy 🙂&lt;/p&gt;
&lt;p id=&quot;p-c5e3761&quot;&gt;This story is the first part 0f a 10-part dossier that provides unprecedented insight into the workings of a vaporware adtech verification company.&lt;/p&gt;</content></entry><entry><title>How to Move Your Medium Posts to Wordpress (tested)</title><link href="https://mikkokotila.com/writing/how-to-move-your-medium-posts-to-wordpress-tested/"/><id>https://mikkokotila.com/writing/how-to-move-your-medium-posts-to-wordpress-tested/</id><published>2017-05-22T00:00:00Z</published><updated>2017-05-22T00:00:00Z</updated><category term="guides"/><summary>In this short post I will explain how to actually move your posts easily from medium.com to any wordpress site. None of the online instructions I found actually work. This does, I just did it.</summary><content type="html">&lt;p id=&quot;p-44c9f9f&quot; class=&quot;opening&quot;&gt;Medium is not making it easy to move out. On the contrary, they recently removed medium.rss from the export .zip file so you can’t just do it directly to self-hosted Wordpress anymore. There is a small work around though, which I think &lt;a href=&quot;https://medium.com/u/268314bb7e7e&quot;&gt;Ev Williams&lt;/a&gt; and his &lt;a href=&quot;https://medium.com/u/a32c340ea342&quot;&gt;Medium Staff&lt;/a&gt; will have hard time blocking. It takes 5–10 minutes to do and does not require any technical parts. Non programmers can easily do this, maybe even easier as programmers as at least I found it quite mindless that we have to go through these hoops after helping &lt;a href=&quot;https://medium.com/u/268314bb7e7e&quot;&gt;Ev Williams&lt;/a&gt; successfully build medium.com to where it &lt;span class=&quot;nowrap&quot;&gt;is now.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-7b7accf&quot;&gt;It all started with this:&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1282px;--shot-ratio:1.8634&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/2.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Medium banner: “You’re invited: become a Medium member today”&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-eb6a8f6&quot;&gt;So I’m invited to pay for having full access to a platform that was 100% built at the back of writers contributions…who I’m sure many thought as I did, that &lt;a href=&quot;https://medium.com/u/268314bb7e7e&quot;&gt;Ev Williams&lt;/a&gt; would come up with something actually innovative for monetization…maybe even with something to do with attention and paying where paying is due i.e. contributors. This does not seem to be the case, but instead &lt;a href=&quot;https://medium.com/u/268314bb7e7e&quot;&gt;Ev Williams&lt;/a&gt; decided to take the most mindless approach of all…charge a monthly subscription. That’s not the platform I joined, so it’s time to leave. Below I will show you the only proven method to do it easily right now.&lt;/p&gt;
&lt;p id=&quot;p-44b3e28&quot;&gt;I do want to thank &lt;a href=&quot;https://medium.com/u/268314bb7e7e&quot;&gt;Ev Williams&lt;/a&gt; and &lt;a href=&quot;https://medium.com/u/a32c340ea342&quot;&gt;Medium Staff&lt;/a&gt; for the amazing writing tool that had been provided. Given the right circumstances, I would have been delighted to pay $5 for having the access to a top notch writing tool…or actually much more. I just paid around $100 for a year of &lt;a href=&quot;https://medium.com/u/9624c3fa06a&quot;&gt;Grammarly&lt;/a&gt; which really just does one part of writing.&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;1-getting-your-medium-data&quot;&gt;1. Getting your Medium data&lt;/h3&gt;
&lt;p id=&quot;p-ee717f4&quot;&gt;1.1 ) get to your account’s settings page&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:1.8065&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/3.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Medium settings page in 2017, with the account menu open&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-f9b0ce2&quot;&gt;1.2 ) go to towards the bottom of the page (or search for .zip) and hit the Download button.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:2.8226&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/4.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Medium settings: “Export content: export your Medium stories to a .zip file”, with a Download .zip button&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-6bc5d23&quot;&gt;In a moment you should receive the zip package with all your posts in your email. Now we can move to the good people at Wordpress.com who run a commercial blogging platform, as opposed to trying to figure out the next evolution of internet resource harvesting business model (@ev).&lt;/p&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;2-preparing-your-a-temp-account-with-wordpresscom&quot;&gt;2. Preparing your a temp account with Wordpress.com&lt;/h3&gt;
&lt;p id=&quot;p-343ae55&quot;&gt;I’m assuming you already have a wordpress.com account. If you don’t, just make sure that you take the FREE option and not one of the paid ones.&lt;/p&gt;
&lt;p id=&quot;p-ab09f96&quot;&gt;2.1 ) Create a wordpress.com account (this is just a temp)&lt;/p&gt;
&lt;p id=&quot;p-44ab3d3&quot;&gt;2.2 ) Go to &lt;a href=&quot;https://wordpress.com/settings/import&quot;&gt;https://wordpress.com/settings/import&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-3d5ab0a&quot;&gt;2.3 ) Choose the site you want to use as a temp placeholder for your medium posts&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1068px;--shot-ratio:1.7800&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/5.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;WordPress.com: “Please select a site to open Settings Import”, with the mikkokotila site&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;3-moving-your-medium-posts-to-the-temp-blog-in-wordpresscom&quot;&gt;3. Moving your medium posts to the temp blog in wordpress.com&lt;/h3&gt;
&lt;p id=&quot;p-0fecb23&quot;&gt;3.1 ) The good people at Wordpress.com has made this really easy for us and provide a one-click solution to import medium.com&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:1.6787&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/6.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;WordPress.com Import tab: “Import another site”, with the WordPress and Medium importers&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-b586d60&quot;&gt;3.2 ) Once you’ve done everything right, you should have to wait for a moment and get a screen that looks like this while you wait:&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:2.2293&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/7.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;WordPress.com Medium importer at work: “Waiting on 14 resources to import”&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-8b03d88&quot;&gt;3.3 ) Now you should have it the posts in your temp wordpress.com blog. If you just want to use wordpress.com, now you’re done…in case you want to use a self-hosted wordpress site, then do read on to the next section.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:1.3048&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/8.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;The imported post “Big Publishers Attack Brave the Browser — Round 2” on the WordPress site&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;h3 class=&quot;h-1&quot; id=&quot;4-final-step-moving-from-wordpresscom-to-your-self-hosted-wordpress-site&quot;&gt;4. FINAL STEP: moving from wordpress.com to your self-hosted wordpress site&lt;/h3&gt;
&lt;p id=&quot;p-d001d07&quot;&gt;4.1 ) the first thing you want to do is go to your blog in wordpress.com and from &lt;strong&gt;settings&lt;/strong&gt; (on the left pane) go to &lt;strong&gt;export &lt;/strong&gt;on the right area.&lt;/p&gt;
&lt;p id=&quot;p-3ed3cfd&quot;&gt;Wordpress.com &gt; Dashboard &gt; Settings &gt; Export&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:2.0378&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/9.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;WordPress.com site settings, general tab, with the site title and address&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-fd2da9e&quot;&gt;4.2 ) choose the option for exporting just your posts. As you can see you could just choose certain authors etc…btw we’re almost there.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:1.1824&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/10.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;WordPress.com Export tab: “Export your content”, with options for posts, pages and feedback&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-de9ea87&quot;&gt;4.3 ) Once you get the ok message, check your email and download the zip file. We’ll need that in the last step.&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:11.8644&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/11.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;WordPress.com notice: “Your export was successful! A download link has also been sent to your email.”&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-a801046&quot;&gt;The email looks like this:&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1284px;--shot-ratio:2.2369&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/12.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Email from WordPress.com: “We have finished exporting your site ‘mikkokotila’”, with the download link&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-4e23d0a&quot;&gt;4.4 ) Now the final step is to go to your blog, and install the wordpress importer and follow the instructions&lt;/p&gt;
&lt;figure class=&quot;figure screenshot&quot; data-screenshot=&quot;&quot;&gt;&lt;span class=&quot;glass&quot; style=&quot;--shot-width:1400px;--shot-ratio:1.2797&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/how-to-move-your-medium-posts-to-wordpress-tested/13.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;WordPress admin, Tools › Import, listing importers from Blogger to WordPress&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-6b5969a&quot;&gt;Note that this time you have to upload the .xml file i.e. you can’t just upload the zip file you had got in the previous step.&lt;/p&gt;
&lt;p id=&quot;p-7d5492c&quot;&gt;&lt;strong&gt;YOU’RE DONE!&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-2259eb1&quot;&gt;IMPORTANT NOTE: Remember to delete the posts from the temp (and medium.com) to maximize the search engine benefit for your own site.&lt;/p&gt;</content></entry><entry><title>Three Reasons Why Everyone Should Consider Using Ad Blocker</title><link href="https://mikkokotila.com/writing/three-reasons-why-everyone-should-consider-using-ad-blocker/"/><id>https://mikkokotila.com/writing/three-reasons-why-everyone-should-consider-using-ad-blocker/</id><published>2017-05-22T00:00:00Z</published><updated>2017-05-22T00:00:00Z</updated><category term="ad-blocking"/><category term="privacy"/><summary>For an internet advertising company to make money, it can only happen because of the internet user. Yet sometimes it seems almost as if the advertising technology industry is at war with internet users.</summary><content type="html">&lt;h2 class=&quot;h-1&quot; id=&quot;for-an-internet-advertising-company-to-make-money-it-can-only-happen-because-of-the-internet-user-yet-sometimes-it-seems-almost-as-if-the-advertising-technology-industry-is-at-war-with-internet-users&quot;&gt;&lt;em&gt;For an internet advertising company to make money, it can only happen because of the internet user. Yet sometimes it seems almost as if the advertising technology industry is at war with internet users.&lt;/em&gt;&lt;/h2&gt;
&lt;figure class=&quot;fig plate wide&quot; data-fig=&quot;plate&quot; data-intro=&quot;One of the industry’s own words for each of the three reasons. Choose a mark, or walk through them.&quot;&gt;&lt;div class=&quot;plate-head&quot;&gt;&lt;span class=&quot;plate-number&quot;&gt;Plate I&lt;/span&gt;&lt;span class=&quot;plate-title&quot;&gt;The internet user&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;plate-notes&quot; aria-pressed=&quot;true&quot; hidden&gt;Notes&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;plate-view&quot;&gt;&lt;div class=&quot;plate-zoom&quot;&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;../../assets/writing/three-reasons-why-everyone-should-consider-using-ad-blocker/1.webp&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Film still: a man’s eyes held open by clamps&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;span class=&quot;plate-mark&quot; style=&quot;left:36.0%;top:14.0%;--i:0&quot; data-mark=&quot;1&quot; aria-hidden=&quot;true&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;plate-mark&quot; style=&quot;left:46.2%;top:80.0%;--i:1&quot; data-mark=&quot;2&quot; aria-hidden=&quot;true&quot;&gt;ii&lt;/span&gt;&lt;span class=&quot;plate-mark&quot; style=&quot;left:75.0%;top:66.0%;--i:2&quot; data-mark=&quot;3&quot; aria-hidden=&quot;true&quot;&gt;iii&lt;/span&gt;&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;plate-whole&quot; hidden&gt;&lt;svg viewBox=&quot;0 0 20 20&quot; aria-hidden=&quot;true&quot;&gt;&lt;circle cx=&quot;8.5&quot; cy=&quot;8.5&quot; r=&quot;5.75&quot;&gt;&lt;/circle&gt;&lt;path d=&quot;M5.75 8.5h5.5M12.7 12.7l4.8 4.8&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Whole picture&lt;/button&gt;&lt;/div&gt;&lt;ol class=&quot;plate-key&quot;&gt;&lt;li data-note=&quot;1&quot;&gt;&lt;span class=&quot;plate-numeral&quot; aria-hidden=&quot;true&quot;&gt;i&lt;/span&gt;&lt;span&gt;&lt;dfn&gt;Cookie.&lt;/dfn&gt; A small file that lets a website remember its visitor. Through it, an analyst can learn who he is, where he is, and what his politics are.&lt;/span&gt;&lt;/li&gt;&lt;li data-note=&quot;2&quot;&gt;&lt;span class=&quot;plate-numeral&quot; aria-hidden=&quot;true&quot;&gt;ii&lt;/span&gt;&lt;span&gt;&lt;dfn&gt;Impression.&lt;/dfn&gt; One ad, seen once. A thousand of them carrying malware can cost a cent.&lt;/span&gt;&lt;/li&gt;&lt;li data-note=&quot;3&quot;&gt;&lt;span class=&quot;plate-numeral&quot; aria-hidden=&quot;true&quot;&gt;iii&lt;/span&gt;&lt;span&gt;&lt;dfn&gt;Highway robbery.&lt;/dfn&gt; The IAB’s name for ad blocking. Here, it would mean letting him close his eyes.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;plate-steps&quot; hidden&gt;&lt;button type=&quot;button&quot; data-step=&quot;-1&quot; aria-label=&quot;Previous note&quot;&gt;←&lt;/button&gt;&lt;span class=&quot;plate-at&quot;&gt;&lt;/span&gt;&lt;button type=&quot;button&quot; data-step=&quot;1&quot; aria-label=&quot;Next note&quot;&gt;→&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p id=&quot;p-22d518d&quot; class=&quot;opening&quot;&gt;With more than 50% of savvy internet users in US on ad blockers, and ad blockers being among the most downloaded browser extension in history, there is no better (and more important) time than right now to consider the arguments to why internet users may be better off by using an ad &lt;span class=&quot;nowrap&quot;&gt;blocking technology.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-ee4a549&quot;&gt;So what are the three reasons that internet users should consider in terms of ad blocker use?&lt;/p&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;reason-1&quot;&gt;Reason 1&lt;/h5&gt;
&lt;p id=&quot;p-2180405&quot;&gt;&lt;strong&gt;BECAUSE ADVERTISING NETWORKS ARE USED FOR SPYING&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-9211aee&quot;&gt;In 2014 Edward Snowden gave a talk [1] on the topic of surveillance to Council of Europe, where he gave special mention to&lt;em&gt; internet advertising&lt;/em&gt;. I will highlight the interesting part below:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-40094e4&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;…individual. A group out of all the indiciations they intercept in the world is associated with that communication, much like a fingerprint you would leave on the handle of a door, the steering wheel of your car and so on.&lt;/p&gt;
&lt;p&gt;&lt;mark&gt;However, though that has been reported, that is the smallest part of the NSA’s fingerprinting capability. You must first understand any kind of internet traffic that passes before these mass surveillence sensors can be analysed in a protocol agnostic manner, metadata and content both. And it can be today, right now, searched not only with very little effort via a complex regular expression which is a type of shorthand programming but also via any algorithm an analyst can implement in popular high level programming languages. This is very common for technicians, it’s not a serious workload – it’s quite easy&lt;/mark&gt;&lt;/p&gt;
&lt;p&gt;&lt;mark&gt;This provides a capability for analysts to do things that associate unique identifiers assigned to untargreted individuals via unencrypted commercial advertising networks, their cookies or common tracking measures used by businesses every day across the internet with personal details such as an individual’s precise identity, their geographic location, their politial affiliations, their place of work, their computer operating system and other technical details, their sexual orientation, their personal interests and so on and so forth.&lt;/mark&gt;&lt;/p&gt;
&lt;p&gt;There are very few practical limitations to the kind of analysis that can be technically performed in this manner short of the actual imagination of the analysts themselves…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;On the NSA’s fingerprinting capability. Highlighting as in the original post.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-c06df56&quot;&gt;The first reason why this makes sense is because the data that is collected by the internet advertising industry is gigantic. Making it very interesting. In the AT&amp;#x26;T example that has been discussed to the death, there was the number “60 billion events per day” associated with the practice in that case. The programmatic advertising market is at least 200 billion events per day.&lt;/p&gt;
&lt;p id=&quot;p-31405f8&quot;&gt;When you can witness up to 100 ad or tracking tags on a given page, you can guess there is a very high level of reduncacy within that eco-system in respect to user data. Which means that there are trillions of potential meta-data events to exploit each and every day, some of which may have hundreds of individual variables attached to them. Connecting cookies to identities is trivial in most cases. Some of the most powerful, yet trivial &lt;em&gt;reverse lookups&lt;/em&gt; include:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-5411d5a&quot;&gt;cookie to email&lt;/li&gt;
&lt;li id=&quot;p-73f9181&quot;&gt;social id to email&lt;/li&gt;
&lt;li id=&quot;p-e7e1436&quot;&gt;email to social ids&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-1d713e6&quot;&gt;It is not only trivial, but there are companies that are specifically focused on providing reverse lookup services for marketing service, fraud detection and other purpose.&lt;/p&gt;
&lt;p id=&quot;p-aacdba8&quot;&gt;The second point on why it makes sense that ad networks are used for espionage and surveillance, is that US government agencies is actually making appeals to adtech companies for not using end-to-end encrypted connections:&lt;/p&gt;
&lt;a class=&quot;link-card in-text&quot; href=&quot;http://thehackernews.com/2015/12/fbi-end-to-end-encryption.html&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;title&quot;&gt;FBI Director Asks Tech Companies to At least Don’t Offer End-to-End Encryption&lt;/span&gt;&lt;span class=&quot;desc&quot;&gt;FBI declared War against Encryption. Encryption is defeating government intelligence agencies to detect terrorist…&lt;/span&gt;&lt;span class=&quot;host&quot;&gt;thehackernews.com ↗&lt;/span&gt;&lt;/a&gt;
&lt;p id=&quot;p-e91115e&quot;&gt;These comments leave us with the impression that an ad platform would have to be hacked, so that an authority or other agent would be able to leverage such data. That is not at all the case.&lt;/p&gt;
&lt;p id=&quot;p-1f5e92b&quot;&gt;Actually, in the same way as you can spread malware as a customer of an ad network, you can conduct espionage as a customer of an ad network. While the way data is accessed is different, the outcome will be more or less the same.&lt;/p&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;reason-2&quot;&gt;Reason 2&lt;/h5&gt;
&lt;p id=&quot;p-15764bc&quot;&gt;&lt;strong&gt;BECAUSE MALVERTISING IS SPREAD THROUGH AD PLATFORMS&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-1fbf420&quot;&gt;Due to the fact that neither the government, or almost nobody else for that matter understand advertising technology comprehensively , both Snowden’s comments and the recent coverage on FBI Director’s request for keeping ad eco-system poorly encrypted, leave us with a wrong impression of how hard it is at the moment to use ad platforms for spreading spyware or other malicious codes through ad platforms.&lt;/p&gt;
&lt;blockquote id=&quot;p-8ae66d3&quot;&gt;
&lt;p&gt;It is far easier than almost anyone can think, to use ad platforms for spreading malicious codes&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-43620b1&quot;&gt;To do this, is as simple as to start a campaign that targets specific groups or individuals. The &lt;em&gt;Million Browser Botnet&lt;/em&gt; video shows how easy it is to do this in practice. Basically, it shows exactly how to spread malware using ad platforms.&lt;/p&gt;
&lt;p id=&quot;p-e803c43&quot;&gt;To understand how bad the problem is, in my view the video just scratches the surface of what is possible technically and how easy it is to execute something like that with almost any ad platform. We also have to consider that between the major ad platforms, especially DSPs, there is massive overlap in terms of available inventory. Just by delivering your malicious payload in one major DSP will give you over 50% coverage of everything everyone else has. That’s more or less 50% of the internet.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;a class=&quot;video-card&quot; href=&quot;https://www.youtube.com/watch?v=ERJmkLxGRC0&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;play&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span&gt;Video&lt;/span&gt;&lt;span class=&quot;where&quot;&gt;Watch on YouTube ↗&lt;/span&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p id=&quot;p-86df2c9&quot;&gt;Today in 2016 the problem highlighted in the video is only worse.&lt;/p&gt;
&lt;p id=&quot;p-3549dad&quot;&gt;Once you become the customer of an ad platform, you can start distributing your malicious codes. You can do it either with 1-to-1 targeting, or at massive scale reaching 2 billion internet users in a given day. Targeting is widely supported against things like:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-99a1caa&quot;&gt;IP address&lt;/li&gt;
&lt;li id=&quot;p-43c3b8f&quot;&gt;company name&lt;/li&gt;
&lt;li id=&quot;p-3c73814&quot;&gt;cookie ID&lt;/li&gt;
&lt;li id=&quot;p-e2737c9&quot;&gt;an alternate fingerprinting ID&lt;/li&gt;
&lt;li id=&quot;p-6469ac8&quot;&gt;location&lt;/li&gt;
&lt;li id=&quot;p-5e8aa8d&quot;&gt;interest&lt;/li&gt;
&lt;li id=&quot;p-f6ba90f&quot;&gt;searches&lt;/li&gt;
&lt;li id=&quot;p-e800b6e&quot;&gt;times of day&lt;/li&gt;
&lt;li id=&quot;p-0d148df&quot;&gt;version of OS&lt;/li&gt;
&lt;li id=&quot;p-2f80581&quot;&gt;browser version&lt;/li&gt;
&lt;li id=&quot;p-10f4cc0&quot;&gt;device information&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-43640c9&quot;&gt;&lt;em&gt;Targeting capabilities &lt;/em&gt;would make a very long list actually. A single ad platform could have 100 or more of such meta-data variables available to be used as targeting criteria. &lt;em&gt;Data Management Platform’s &lt;/em&gt;boast with their ability to connect cookies to user accounts, and some promise &lt;em&gt;personally identifiable information&lt;/em&gt; (PII) too.&lt;/p&gt;
&lt;p id=&quot;p-38d7333&quot;&gt;In short summary, to create either ultra-targeted or massive scale spray-and-pray campaigns to spread your malware, the only thing you have to do, is to sign up with one of the thousands of ad platforms. Using this method, cost of spreading malware can be as low as $0.01 per thousand ad impressions (malicious payload exposures). Infection rates per ad exposure will vary on the overall methodology used. Because things like browser versions can be targeted, infection rates could be very high.&lt;/p&gt;
&lt;p id=&quot;p-fdb2a69&quot;&gt;Cyphort reports that malvertising attacks are up 325% from previous year. [2]&lt;/p&gt;
&lt;hr&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;reason-3&quot;&gt;Reason 3&lt;/h5&gt;
&lt;p id=&quot;p-6f59c45&quot;&gt;&lt;strong&gt;BECAUSE OF THE DISCONNECTION BETWEEN INTERNET ADVERTISING BUREAU AND INTERNET USERS&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-b474ec4&quot;&gt;Ad blocking is related to abusive internet advertising and the general disconnection between the internet users and those that are responsible for delivering ads to internet users. Yet public comments from IAB, the supposed guardian of the internet advertising industry, leave one with nothing but more reasons to fight back.&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-f7a33d9&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;The IAB Calls Ad Blocking ‘Highway Robbery’ and Ramps Up Its Call to Arms. ‘There’s a war between engineers’&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Headline, by Christopher Heine, 2016&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-9c61b6d&quot;&gt;Ad blocking is a reaction to the disrespect of the internet advertising industry in regards to the internet users. When it is argued by the IAB that it had done a tremendous job in developing internet advertising, ad blocking is part of the cost for that same job. In other words, I think internet users are thinking that IAB did not do a tremendous job in terms of developing internet advertising.&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-b39a5f7&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Ad Blocking: The Unnecessary Internet Apocalypse. The Ad Industry Needs to Disrupt the Disruptors&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Headline, Ad Age, 2016&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-cdca01d&quot;&gt;In the article authored by the IAB CEO Randy Rothenberg, one of the comments is on how ad blocking companies should be sued…&lt;/p&gt;
&lt;blockquote id=&quot;p-f23720c&quot;&gt;
&lt;p&gt;We can (and should) contemplate suing unethical ad-blocking profiteers out of business.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-3837509&quot;&gt;Because “unethical” is mentioned, where does that leave Google? There is evidence that among other things, Google is perpetuating the botnet problem by charging clients for video views when Google knows its a bot[3]. If everyone already agrees that there is at least a 10% exposure to ad fraud in the market, does it mean that 10% of Google’s revenue is from ad fraud? Does it mean that there should be contemplation among the advertisers to sue advertising technology companies? Or when we speak about morals, how about all the malware peddling through ad platforms, should internet users contemplate on suing for neglect in regards to keeping&lt;/p&gt;
&lt;p id=&quot;p-6c80f1f&quot;&gt;While suing ad blocking companies seems far fetched at best, there is clear precedence for at least the two kinds mentioned above, both legally and in terms of filing complaints to various interested parties (FTC, EC, etc.), I just don’t think that by suing each other we will get far.&lt;/p&gt;
&lt;p id=&quot;p-5438d98&quot;&gt;If indeed the IAB is suggesting (as it seems) that suing companies is a good approach if business ethics are in question, then different ways of suing should be fairly evaluated.&lt;/p&gt;
&lt;p id=&quot;p-838cb7d&quot;&gt;With tobacco for example, this approach did not go well. Tobacco kills just as much as before, and other tax payers pay for those deaths and the other illness that comes with tobacco more than ever before. Tobacco companies, with every possible restriction in place, not only do better than ever, but also consistently outperform most other major categories. Making money first at the expense of others, so that you can later buy yourself out of trouble can’t be the right way to do business, or live life.&lt;/p&gt;
&lt;p id=&quot;p-9576760&quot;&gt;One thing seems clear thought, self-regulation has not worked. Otheriwise it appears unlikely that the adblockalypse unfolding as it does.&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-7fbee4b&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Rothenberg Says Ad Blocking Is a War against Diversity and Freedom of Expression&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Headline, 2016&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-e65d848&quot;&gt;The latest episode, in a series of too many to cover here, in the IAB’s Leadership Summit few weeks ago, further statements were made about ad blocking. Ad blocking, is somehow a war against freedom (of expression).&lt;/p&gt;
&lt;p id=&quot;p-2923780&quot;&gt;Aaand…..where do we go from here?&lt;/p&gt;
&lt;p id=&quot;p-ac38eb1&quot;&gt;If you read the entire keynote, is worrying that it is basically saying how great of a job IAB has done. Ad fraud is mentioned as a sidenote to say that IAB’s spin-off TAG is the leader in countering ad fraud. On the contrary, TAG’s many members continue to be the greatest economical beneficiaries of ad fraud. This can be proven very simply. All the while there is zero evidence that there is any improvement in ad fraud, where as there seems to be strong claims towards malvertising being up.&lt;/p&gt;
&lt;p id=&quot;p-1d68790&quot;&gt;Advertising technology vendors almost without exception make money from commissions, so when fraud traffic is sold, or malware is being spread, it is not the publisher (website) who takes most of the money, but the ad network who acts as a conduit in the transactions. &lt;em&gt;Google Display Network &lt;/em&gt;is the largest of such ad networks and is known for taking more than 50% of the revenue.&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-96dc441&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;IAB un-invites Adblock Plus from its annual conference&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Headline, 2016&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-ccfd43d&quot;&gt;What I did not understand, is how can IAB at this stage afford to exclude the leading ad blocking company from the leadership summit in such a blatantly and outright arrogant manner.&lt;/p&gt;
&lt;p id=&quot;p-2797f26&quot;&gt;From the keynote talk it becomes clear that IAB was more interested in glorifying itself than anything else, and the event was built around the idea of “Next 50 billion”. In other words the agenda is “here is how we make $x per every internet user”. We will probably have have an average internet user rate of 3,5 billion for that period of time, so in effect IAB is saying:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-6d1008d&quot;&gt;the next $14.28 per user per year&lt;/li&gt;
&lt;li id=&quot;p-2d9683f&quot;&gt;the next $0.04 per user per day&lt;/li&gt;
&lt;li id=&quot;p-9b58100&quot;&gt;the next 40 ads per user day (at $1 per CPM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-56bd36e&quot;&gt;Which is kind of hilarious, because everyone knows, even the most tentative of financial sector analysts looking at “digital” that even IAB seized to exist right in this moment, the next 50 billion will come fast.&lt;/p&gt;
&lt;p id=&quot;p-0a0749a&quot;&gt;What I was hoping to hear was something like “here is how we make the internet x times better for internet users, maybe at this point even at our own expense”.&lt;/p&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;summary&quot;&gt;Summary&lt;/h5&gt;
&lt;p id=&quot;p-c629df0&quot;&gt;&lt;strong&gt;IS IT THE RESPONSIBILITY OF INTERNET USERS TO USE AD BLOCKING?&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-a52b7f7&quot;&gt;As long as ad networks are used for spying, and normal use of ad platforms remains a principal mean of spreading malware, it is very hard to argue against if internet users should consider using an ad blocker or not. Not using an ad blocker leads inevitably to more malware infected devices, which in turn leads to botnets and many other problems because of that. If IAB and the advertising technology vendors make a sincere effort in securing their systems, which first and foremost means that it becomes much harder to get 3rd-party ad tags in to ad calls. I’ve never met another researcher who does not agree with this point.&lt;/p&gt;
&lt;p id=&quot;p-4b89205&quot;&gt;At the moment, Ad blocking, and ad blockers, are one of the most effective ways to protect yourself from malvertising activity. Very importantly, it is a technology that even less savvier internet users can embrace. Also because it is free, there is no barrier of entry in that sense. You should not use ad blocker to block ads, you should use ad blocker because it is your responsibility as an internet user to do what you can to make the internet safer and better.&lt;/p&gt;
&lt;p id=&quot;p-635b519&quot;&gt;In the long term, the way to block ads is to stay away from the sites that show the kinds of ads you don’t want to see. If you don’t want to see any ads, support ad free sites. That’s where the good content seems to be mostly anyway. If you want to get the latest scoop on Kim or Don, then you probably should be ready to see ads too. If today a site that you love specifically nags you about ad blocking, make the choice of either supporting the site you love, or stop using it.&lt;/p&gt;
&lt;p id=&quot;p-a89255f&quot;&gt;For the internet we are in now, ad blocking provides the single most effective way to fight back against the negative effects internet advertising is currently having on the internet. And with the internet, on civil society and wider human culture.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 class=&quot;h-3&quot; id=&quot;if-you-liked-this-article--please-share-it--in-medium-or-elsewhere-on-the-internet&quot;&gt;If you liked this article &gt; please share it &amp;#x3C; in medium or elsewhere on the internet.&lt;/h4&gt;
&lt;p id=&quot;p-e08e0cf&quot;&gt;For more like this: &lt;em&gt;@mikkokotila&lt;/em&gt;&lt;/p&gt;
&lt;h5 class=&quot;h-3&quot; id=&quot;references&quot;&gt;References&lt;/h5&gt;
&lt;p id=&quot;p-38a403c&quot;&gt;&lt;strong&gt;[1] Edward Snowden speaks to the Council of Europe&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;https://edwardsnowden.com/2014/04/15/edward-snowden-speaks-to-the-council-of-europe/&quot;&gt;https://edwardsnowden.com/2014/04/15/edward-snowden-speaks-to-the-council-of-europe/&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-5507980&quot;&gt;&lt;strong&gt;[2] Malvertising Attacks Up 300% Last Year&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;http://go.cyphort.com/Malvertising-Report-15-Page.html&quot;&gt;http://go.cyphort.com/Malvertising-Report-15-Page.html&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-27b2c7a&quot;&gt;&lt;strong&gt;[3] Google Charges for Bots when it Knows They Are Bots&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;http://arxiv.org/abs/1507.08874&quot;&gt;http://arxiv.org/abs/1507.08874&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-c3d926a&quot;&gt;&lt;strong&gt;[4] IAB un-invites AdBlockPlus from the leadership summit&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;http://www.thedrum.com/news/2016/01/15/iab-un-invites-adblock-plus-its-annual-conference&quot;&gt;http://www.thedrum.com/news/2016/01/15/iab-un-invites-adblock-plus-its-annual-conference&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>Solving the problem of problem solving</title><link href="https://mikkokotila.com/writing/solving-the-problem-of-problem-solving/"/><id>https://mikkokotila.com/writing/solving-the-problem-of-problem-solving/</id><published>2017-05-16T00:00:00Z</published><updated>2017-05-16T00:00:00Z</updated><category term="research-and-development"/><summary>A proposal for people and machines to work in self-organising structures, starting with the problem rather than the solution.</summary><content type="html">&lt;figure class=&quot;fig cascade wide&quot; data-fig=&quot;cascade&quot; data-at=&quot;3&quot; data-says=&quot;[&amp;#x22;First, one group identifies and articulates the problem, and does nothing else.&amp;#x22;,&amp;#x22;A second group only breaks the problem down into its parts.&amp;#x22;,&amp;#x22;Group after group dissects each part, each disconnected from everything but its own scope and its neighbours, and nobody yet thinking of a solution.&amp;#x22;,&amp;#x22;Only then do the solution layers kick in, then the groups for prioritization, feasibility and quality assurance; and now and then a random group attacks the whole, to test its staying power.&amp;#x22;]&quot; data-names=&quot;[&amp;#x22;The problem&amp;#x22;,&amp;#x22;Its parts&amp;#x22;,&amp;#x22;Layers down&amp;#x22;,&amp;#x22;Solutions&amp;#x22;]&quot; aria-label=&quot;A self-organising structure growing around a problem: a group that defines it, a group that breaks it into parts, layers that dissect the parts, and far below, the groups that solve and test&quot;&gt;&lt;p class=&quot;fig-read fig-small&quot; aria-live=&quot;polite&quot;&gt;Only then do the solution layers kick in, then the groups for prioritization, feasibility and quality assurance; and now and then a random group attacks the whole, to test its staying power.&lt;/p&gt;&lt;svg class=&quot;plot&quot; viewBox=&quot;0 0 680 660&quot; role=&quot;img&quot; aria-label=&quot;A self-organising structure for a hard problem: First, one group identifies and articulates the problem, and does nothing else. A second group only breaks the problem down into its parts. Group after group dissects each part, each disconnected from everything but its own scope and its neighbours, and nobody yet thinking of a solution. Only then do the solution layers kick in, then the groups for prioritization, feasibility and quality assurance; and now and then a random group attacks the whole, to test its staying power.&quot;&gt;&lt;circle class=&quot;node problem s0&quot; cx=&quot;340&quot; cy=&quot;142&quot; r=&quot;10&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s1&quot; x1=&quot;340&quot; y1=&quot;152&quot; x2=&quot;113&quot; y2=&quot;214&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s1&quot; d=&quot;M117 216Q240.5 182 346 146&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node part s1&quot; cx=&quot;113&quot; cy=&quot;222&quot; r=&quot;8&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s1&quot; x1=&quot;340&quot; y1=&quot;152&quot; x2=&quot;340&quot; y2=&quot;214&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s1&quot; d=&quot;M344 216Q354 182 346 146&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node part s1&quot; cx=&quot;340&quot; cy=&quot;222&quot; r=&quot;8&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s1&quot; x1=&quot;340&quot; y1=&quot;152&quot; x2=&quot;567&quot; y2=&quot;214&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s1&quot; d=&quot;M571 216Q467.5 182 346 146&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node part s1&quot; cx=&quot;567&quot; cy=&quot;222&quot; r=&quot;8&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;113&quot; y1=&quot;230&quot; x2=&quot;57&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M61 330Q99 279 119 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;57&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;57&quot; y1=&quot;342&quot; x2=&quot;43&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;43&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;43&quot; y1=&quot;387&quot; x2=&quot;43&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;57&quot; y1=&quot;342&quot; x2=&quot;71&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;71&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;71&quot; y1=&quot;387&quot; x2=&quot;71&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;113&quot; y1=&quot;230&quot; x2=&quot;113&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M117 330Q127 279 119 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;113&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;113&quot; y1=&quot;342&quot; x2=&quot;99&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;99&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;99&quot; y1=&quot;387&quot; x2=&quot;99&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;113&quot; y1=&quot;342&quot; x2=&quot;127&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;127&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;127&quot; y1=&quot;387&quot; x2=&quot;127&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;113&quot; y1=&quot;230&quot; x2=&quot;169&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M173 330Q155 279 119 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;169&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;169&quot; y1=&quot;342&quot; x2=&quot;155&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;155&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;155&quot; y1=&quot;387&quot; x2=&quot;155&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;169&quot; y1=&quot;342&quot; x2=&quot;183&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;183&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;183&quot; y1=&quot;387&quot; x2=&quot;183&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;340&quot; y1=&quot;230&quot; x2=&quot;284&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M288 330Q326 279 346 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;284&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;284&quot; y1=&quot;342&quot; x2=&quot;270&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;270&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;270&quot; y1=&quot;387&quot; x2=&quot;270&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;284&quot; y1=&quot;342&quot; x2=&quot;298&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;298&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;298&quot; y1=&quot;387&quot; x2=&quot;298&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;340&quot; y1=&quot;230&quot; x2=&quot;340&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M344 330Q354 279 346 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;340&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;340&quot; y1=&quot;342&quot; x2=&quot;326&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;326&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;326&quot; y1=&quot;387&quot; x2=&quot;326&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;340&quot; y1=&quot;342&quot; x2=&quot;354&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;354&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;354&quot; y1=&quot;387&quot; x2=&quot;354&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;340&quot; y1=&quot;230&quot; x2=&quot;396&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M400 330Q382 279 346 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;396&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;396&quot; y1=&quot;342&quot; x2=&quot;382&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;382&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;382&quot; y1=&quot;387&quot; x2=&quot;382&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;396&quot; y1=&quot;342&quot; x2=&quot;410&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;410&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;410&quot; y1=&quot;387&quot; x2=&quot;410&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;567&quot; y1=&quot;230&quot; x2=&quot;511&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M515 330Q553 279 573 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;511&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;511&quot; y1=&quot;342&quot; x2=&quot;497&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;497&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;497&quot; y1=&quot;387&quot; x2=&quot;497&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;511&quot; y1=&quot;342&quot; x2=&quot;525&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;525&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;525&quot; y1=&quot;387&quot; x2=&quot;525&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;567&quot; y1=&quot;230&quot; x2=&quot;567&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M571 330Q581 279 573 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;567&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;567&quot; y1=&quot;342&quot; x2=&quot;553&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;553&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;553&quot; y1=&quot;387&quot; x2=&quot;553&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;567&quot; y1=&quot;342&quot; x2=&quot;581&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;581&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;581&quot; y1=&quot;387&quot; x2=&quot;581&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;567&quot; y1=&quot;230&quot; x2=&quot;623&quot; y2=&quot;330&quot;&gt;&lt;/line&gt;&lt;path class=&quot;back s2&quot; d=&quot;M627 330Q609 279 573 226&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;623&quot; cy=&quot;336&quot; r=&quot;6&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;623&quot; y1=&quot;342&quot; x2=&quot;609&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;609&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;609&quot; y1=&quot;387&quot; x2=&quot;609&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s2&quot; x1=&quot;623&quot; y1=&quot;342&quot; x2=&quot;637&quot; y2=&quot;377&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node layer s2&quot; cx=&quot;637&quot; cy=&quot;382&quot; r=&quot;5&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s2&quot; x1=&quot;637&quot; y1=&quot;387&quot; x2=&quot;637&quot; y2=&quot;432&quot;&gt;&lt;/line&gt;&lt;line class=&quot;more s3&quot; x1=&quot;47&quot; y1=&quot;502&quot; x2=&quot;47&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;47&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;91&quot; y1=&quot;502&quot; x2=&quot;91&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;91&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;135&quot; y1=&quot;502&quot; x2=&quot;135&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;135&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;179&quot; y1=&quot;502&quot; x2=&quot;179&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;179&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;274&quot; y1=&quot;502&quot; x2=&quot;274&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;274&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;318&quot; y1=&quot;502&quot; x2=&quot;318&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;318&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;362&quot; y1=&quot;502&quot; x2=&quot;362&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;362&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;406&quot; y1=&quot;502&quot; x2=&quot;406&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;406&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;501&quot; y1=&quot;502&quot; x2=&quot;501&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;501&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;545&quot; y1=&quot;502&quot; x2=&quot;545&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;545&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;589&quot; y1=&quot;502&quot; x2=&quot;589&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;589&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;more s3&quot; x1=&quot;633&quot; y1=&quot;502&quot; x2=&quot;633&quot; y2=&quot;529&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node solve s3&quot; cx=&quot;633&quot; cy=&quot;536&quot; r=&quot;7&quot;&gt;&lt;/circle&gt;&lt;path class=&quot;tie s3&quot; d=&quot;M47 558H633&quot;&gt;&lt;/path&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;47&quot; y1=&quot;543&quot; x2=&quot;47&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;91&quot; y1=&quot;543&quot; x2=&quot;91&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;135&quot; y1=&quot;543&quot; x2=&quot;135&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;179&quot; y1=&quot;543&quot; x2=&quot;179&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;274&quot; y1=&quot;543&quot; x2=&quot;274&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;318&quot; y1=&quot;543&quot; x2=&quot;318&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;362&quot; y1=&quot;543&quot; x2=&quot;362&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;406&quot; y1=&quot;543&quot; x2=&quot;406&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;501&quot; y1=&quot;543&quot; x2=&quot;501&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;545&quot; y1=&quot;543&quot; x2=&quot;545&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;589&quot; y1=&quot;543&quot; x2=&quot;589&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;633&quot; y1=&quot;543&quot; x2=&quot;633&quot; y2=&quot;558&quot;&gt;&lt;/line&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;180&quot; y1=&quot;558&quot; x2=&quot;180&quot; y2=&quot;598&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node test s3&quot; cx=&quot;180&quot; cy=&quot;606&quot; r=&quot;8&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;340&quot; y1=&quot;558&quot; x2=&quot;340&quot; y2=&quot;598&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node test s3&quot; cx=&quot;340&quot; cy=&quot;606&quot; r=&quot;8&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;tie s3&quot; x1=&quot;500&quot; y1=&quot;558&quot; x2=&quot;500&quot; y2=&quot;598&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;node test s3&quot; cx=&quot;500&quot; cy=&quot;606&quot; r=&quot;8&quot;&gt;&lt;/circle&gt;&lt;path class=&quot;attack s3&quot; d=&quot;M647 306l-5 7 6 1-5 8 6 2-7 8&quot;&gt;&lt;/path&gt;&lt;path class=&quot;node virus s3&quot; d=&quot;M652 288l3 6 7-2-2 7 6 3-6 3 2 7-7-2-3 6-3-6-7 2 2-7-6-3 6-3-2-7 7 2z&quot;&gt;&lt;/path&gt;&lt;g class=&quot;words s0&quot;&gt;&lt;text class=&quot;w-wide&quot; x=&quot;340&quot; y=&quot;28&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;340&quot; dy=&quot;0&quot;&gt;“extremely poor could be lifted out of their poverty, thus&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;21&quot;&gt;adding $5 trillion in new annual spending to the global economy”&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;w-narrow&quot; x=&quot;340&quot; y=&quot;32&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;340&quot; dy=&quot;0&quot;&gt;“extremely poor could be lifted out of&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;27&quot;&gt;their poverty, thus adding $5 trillion&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;27&quot;&gt;in new annual spending to the global&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;27&quot;&gt;economy”&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;words s1&quot;&gt;&lt;text class=&quot;w-wide&quot; x=&quot;113&quot; y=&quot;252&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;113&quot; dy=&quot;0&quot;&gt;information&lt;/tspan&gt;&lt;tspan x=&quot;113&quot; dy=&quot;18&quot;&gt;deprivation&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;w-narrow&quot; x=&quot;113&quot; y=&quot;256&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;113&quot; dy=&quot;0&quot;&gt;information&lt;/tspan&gt;&lt;tspan x=&quot;113&quot; dy=&quot;25&quot;&gt;deprivation&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;words s1&quot;&gt;&lt;text class=&quot;w-wide&quot; x=&quot;340&quot; y=&quot;252&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;340&quot; dy=&quot;0&quot;&gt;easily avoidable&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;18&quot;&gt;negative health&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;18&quot;&gt;outcomes&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;w-narrow&quot; x=&quot;340&quot; y=&quot;256&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;340&quot; dy=&quot;0&quot;&gt;easily avoidable&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;25&quot;&gt;negative health&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;25&quot;&gt;outcomes&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;words s1&quot;&gt;&lt;text class=&quot;w-wide&quot; x=&quot;567&quot; y=&quot;252&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;567&quot; dy=&quot;0&quot;&gt;lack of skills and&lt;/tspan&gt;&lt;tspan x=&quot;567&quot; dy=&quot;18&quot;&gt;jobs&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;w-narrow&quot; x=&quot;567&quot; y=&quot;256&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;567&quot; dy=&quot;0&quot;&gt;lack of skills&lt;/tspan&gt;&lt;tspan x=&quot;567&quot; dy=&quot;25&quot;&gt;and jobs&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;words s2&quot;&gt;&lt;text class=&quot;w-wide&quot; x=&quot;340&quot; y=&quot;464&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;340&quot; dy=&quot;0&quot;&gt;each part dissected into contributing causes, then interventions:&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;18&quot;&gt;10–20 or even 100 layers down&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;w-narrow&quot; x=&quot;340&quot; y=&quot;468&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;340&quot; dy=&quot;0&quot;&gt;each part dissected into contributing&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;25&quot;&gt;causes, then interventions: 10–20 or even&lt;/tspan&gt;&lt;tspan x=&quot;340&quot; dy=&quot;25&quot;&gt;100 layers down&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;words s3&quot;&gt;&lt;text class=&quot;w-wide&quot; x=&quot;180&quot; y=&quot;636&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;180&quot; dy=&quot;0&quot;&gt;prioritization&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;w-narrow&quot; x=&quot;180&quot; y=&quot;640&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;180&quot; dy=&quot;0&quot;&gt;prioritization&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;words s3&quot;&gt;&lt;text class=&quot;w-wide&quot; x=&quot;340&quot; y=&quot;636&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;340&quot; dy=&quot;0&quot;&gt;feasibility&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;w-narrow&quot; x=&quot;340&quot; y=&quot;640&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;340&quot; dy=&quot;0&quot;&gt;feasibility&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;words s3&quot;&gt;&lt;text class=&quot;w-wide&quot; x=&quot;500&quot; y=&quot;636&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;500&quot; dy=&quot;0&quot;&gt;quality assurance&lt;/tspan&gt;&lt;/text&gt;&lt;text class=&quot;w-narrow&quot; x=&quot;500&quot; y=&quot;640&quot; text-anchor=&quot;middle&quot;&gt;&lt;tspan x=&quot;500&quot; dy=&quot;0&quot;&gt;quality&lt;/tspan&gt;&lt;tspan x=&quot;500&quot; dy=&quot;25&quot;&gt;assurance&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/svg&gt;&lt;div class=&quot;fig-controls&quot; data-controls=&quot;&quot; hidden&gt;&lt;input type=&quot;range&quot; min=&quot;0&quot; max=&quot;3&quot; value=&quot;3&quot; step=&quot;1&quot; aria-label=&quot;Stage&quot; aria-valuetext=&quot;Solutions&quot;&gt;&lt;span class=&quot;cascade-stage fig-small&quot;&gt;Solutions&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;fig-play&quot;&gt;Let it grow&lt;/button&gt;&lt;/div&gt;&lt;ul class=&quot;fig-key cascade-key&quot;&gt;&lt;li&gt;&lt;i class=&quot;k-tie&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;tasks, fed one step down&lt;/li&gt;&lt;li&gt;&lt;i class=&quot;k-back&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;feedback, one step up&lt;/li&gt;&lt;li&gt;&lt;i class=&quot;k-virus&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;a random group, attacking it like a virus&lt;/li&gt;&lt;/ul&gt;&lt;figcaption&gt;Each group feeds the one below it with tasks, and gives feedback one step up.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-a21aaf0&quot; class=&quot;opening&quot;&gt;We have to re-think the way we think about solving problems. As the problems we deal with increase in complexity, so must the methods we use to solve those problems evolve. And how do we do that? By turning to nature, as the great masters of the past did to unravel the mysteries of the &lt;span class=&quot;nowrap&quot;&gt;human mind.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;solving-problems-harder-than-we-can-imagine&quot;&gt;Solving problems harder than we can imagine&lt;/h2&gt;
&lt;p id=&quot;p-108c040&quot;&gt;Having worked in the field of Artificial Intelligence since 2004, I finally feel confident that we have the technological capabilities we need in order to solve very hard problems. Including problems, we’re not even thinking about yet. We’re not thinking about those problems because we don’t know how. That’s where AI, and particularly the deep learning method comes in.&lt;/p&gt;
&lt;p id=&quot;p-6eeedde&quot;&gt;The issue is that we humans don’t have a well-established method/way for solving problems. So any machine intelligence approach would be somehow burdened by our inability to deal with hard problems in an effective way. In this article, I propose a simple guideline that will help us address this problem. As a result, providing us with the ground we need in order to empower machine intelligence solutions to support us in areas where we most desperately need it. I will loosely use the example of what I see as one of the biggest and most pressing problems, extreme poverty.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;how-to-solve-really-hard-problemsself-organising-structures&quot;&gt;How to Solve Really Hard Problems: Self-Organising Structures&lt;/h2&gt;
&lt;p id=&quot;p-567adc6&quot;&gt;First, you have a main workgroup, a group of people (or a single individual) who identifies and articulates what the actual problem statement is. For example “extremely poor could be lifted out of their poverty, thus adding $5 trillion in new annual spending to the global economy”. This group is the upstream source for all the other groups, and do nothing except work on the problem definition itself.&lt;/p&gt;
&lt;p id=&quot;p-2107ab9&quot;&gt;Then there is a second group that works on the breaking down of the problem. Dissecting it to its constituents. This group will never work on anything else except identifying the parts that make up the problem-set. For example “information deprivation”, “easily avoidable negative health outcomes” and “lack of skills and jobs” are the main factors related with remaining in poverty.&lt;/p&gt;
&lt;p id=&quot;p-29d8c4e&quot;&gt;Then there is a group to further dissect each of these into contributing causes, more groups to cover each from the angle of relevant interventions and so forth. Each group completely disconnected from anything except their own scope, and their immediate upstream and downstream connecting nodes.&lt;/p&gt;
&lt;p id=&quot;p-7132176&quot;&gt;Basically, all these groups do is break their subset of the problem further in to ever increasingly actionable items. So far nobody is thinking about solutions. At this point, we could be 10-20 or even 100 layers down in the problem-solving structure. Each layer consisting of one or more human or neural network working either individually or in cooperation. The point so far is to stay away as far as possible from any idea of a solution.&lt;/p&gt;
&lt;p id=&quot;p-6e0e5ec&quot;&gt;At some point, the solutions layers kick in and start to look at actual ways to replace the negative cases with positive ones. These groups don’t think about things like feasibility, but more groups will be introduced later to take care of that. At that point, the prioritization groups, the feasibility groups, and various quality assurance groups, together with many, are introduced to this novel intelligence eco-system.&lt;/p&gt;
&lt;p id=&quot;p-8997937&quot;&gt;Every now and then there is a random group introduced, like virus or bacteria, that tries to break down the system entirely. Attacking it various ways. To test how much staying power the structure has. Also, cancer like mutation functions are introduced randomly or otherwise and serve the function of creating mutations that can then be adopted or dropped depending on how well they perform in various simulations.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;natures-way&quot;&gt;Nature’s Way&lt;/h2&gt;
&lt;p id=&quot;p-48cb18e&quot;&gt;Each of these groups are organizations of people and machines. They could be just one man or machine, or they could be many. At this point, you should think about them as parts of a self-organizing structure. Each on its own having its activity founded on the principles of self-organization.&lt;/p&gt;
&lt;p id=&quot;p-51f0d65&quot;&gt;Each group feeds the one below them with tasks and gives feedback back one step up. This way all the groups are continuously adjusting their organization on the input that is coming to them. So it’s a flux, nothing is fixed, nothing ever stays the same, the only rule is interconnectedness.&lt;/p&gt;
&lt;p id=&quot;p-54dbc1a&quot;&gt;Some of the groups could have overlap, so it would not have to take that many people to solve problems using this approach. If you look at nature, these are the kinds of structures you will always find. Cascading flux. One organization doing something to give feedback to the organization is part of and also assigning another organization to do something else. Nature is infinitely efficient, so if we want to tap into that kind of power to find meaningful and practical solutions to our hardest problems, it seems obvious that we must mimic it.&lt;/p&gt;
&lt;p id=&quot;p-c8b6b08&quot;&gt;For some reason, we human try to solve problems on our own, or then we try to solve them as large groups, we are all working more or less on the same thing or a similar thing, working as “peers”.&lt;/p&gt;
&lt;p id=&quot;p-88a7176&quot;&gt;Further there is no element of continuous self-organization, but instead, things have a tendency of reaching a certain kind of stasis. A point in time when the organizer (the problem solver) forgets what got them motivated in the first place, that is the curiosity driven by the uncertain nature of things. Once a satisfying result is achieved, it is almost as if the nature of things no longer was uncertainty.&lt;/p&gt;
&lt;p id=&quot;p-d5bc96b&quot;&gt;There is always a sense of glorification that comes with problem-solving, so that ends up messing things more. You want to be able to say “I did this” and “I solved this”. But in the way things organize in nature, no such moment exists. No moment is more certain than another, there is no “absolute zero” when something suddenly becomes complete and stops. This is proven with modern science with respect to the movement of atoms.&lt;/p&gt;
&lt;p id=&quot;p-c5a6602&quot;&gt;That’s what solving a problem fundamentally is about an organization of some kind. The identification and mapping out of an organization that was not previously known, or was lost for some reason. It is never more than just a temporary moment in an endless flux. To tell oneself anything but, is to betray the true spirit of problem-solving. Nothing can ever be truly and completely known.&lt;/p&gt;
&lt;p id=&quot;p-c6870b9&quot;&gt;We still haven’t solved the most important problem of all. How to solve problems.&lt;/p&gt;</content></entry><entry><title>Anti Ad Fraud Company’s Guide to Countering Facepalm</title><link href="https://mikkokotila.com/writing/anti-ad-fraud-companys-guide-to-countering-facepalm/"/><id>https://mikkokotila.com/writing/anti-ad-fraud-companys-guide-to-countering-facepalm/</id><published>2017-04-29T00:00:00Z</published><updated>2017-04-29T00:00:00Z</updated><category term="ad-fraud"/><summary>TL;DR What we have in ad fraud research, is companies that are not equipped or incentivized to invest in to serious research, and media that does not know what to believe and what to disregard.</summary><content type="html">&lt;p id=&quot;p-eb1af38&quot; class=&quot;opening&quot;&gt;TL;DR What we have in ad fraud research, is companies that are not equipped or incentivized to invest in to serious research, and media that does not know what to believe and what to disregard. Once a company grows to a certain size, it becomes almost impossible for it to &lt;span class=&quot;nowrap&quot;&gt;keep innovating.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;what-is-research&quot;&gt;What Is Research?&lt;/h2&gt;
&lt;p id=&quot;p-8d9155a&quot;&gt;The idea that makes research powerful, is that once you have found something new, others can validate your findings. This has not been the case with the papers that were referenced the most.&lt;/p&gt;
&lt;p id=&quot;p-e84174f&quot;&gt;There is a difference between research and reporting findings. As long as you are just researching, you could violate every principle and rule and still not cause any damage. When you report findings, any findings at all, you have a responsibility for how others are influenced by your reporting.&lt;/p&gt;
&lt;p id=&quot;p-5d2095a&quot;&gt;Whenever research findings are reported, at least the following should be present:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-c24cffb&quot;&gt;methodology is explained&lt;/li&gt;
&lt;li id=&quot;p-7aaa9c8&quot;&gt;known caveats are explained together with methodology&lt;/li&gt;
&lt;li id=&quot;p-100748e&quot;&gt;sampling and possible violations are explained&lt;/li&gt;
&lt;li id=&quot;p-e3aa924&quot;&gt;a theoretical background (storyline) is provided&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-700e2ad&quot;&gt;In terms of evidence, there are two very important guidelines:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-20491cd&quot;&gt;if you claim something to be true, provide evidence for it&lt;/li&gt;
&lt;li id=&quot;p-9fb4808&quot;&gt;if you provide evidence, make sure it’s relevant to your claim&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-9813578&quot;&gt;Also I would never publish anything before I had checked it with at least a few peers. I prefer someone more academic, as they tend to be better trained for reviewing such information.&lt;/p&gt;
&lt;p id=&quot;p-697a138&quot;&gt;This is the absolute minimum of what constitutes &lt;em&gt;research &lt;/em&gt;when findings are reported. If you have doubt about a paper being research, it’s probably not.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;what-is-not-research&quot;&gt;What Is Not Research?&lt;/h2&gt;
&lt;p id=&quot;p-46d9f37&quot;&gt;Everything else is not research. Therefore it should be clearly labeled as marketing, to avoid confusion in the media or with decision makers.&lt;/p&gt;
&lt;p id=&quot;p-2f5f6f6&quot;&gt;Marketing reports should not use technical titles like “botnet” or “baseline”.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;not-research--bot-benchmark-report-by-whiteops&quot;&gt;Not Research — Bot Benchmark Report by Whiteops&lt;/h2&gt;
&lt;figure class=&quot;entity&quot; aria-label=&quot;White Ops&quot;&gt;&lt;span class=&quot;entity-name&quot;&gt;White Ops&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-d383706&quot;&gt;I had tried to connect with WhiteOps using various means and with all together three different people. Given it’s a small company, I stopped trying.&lt;/p&gt;
&lt;p id=&quot;p-4bb5acc&quot;&gt;After having read carefully through the paper they had done earlier in 2015 together with the ANA, I was already sceptical about the intentions and capabilities WhiteOps has regarding anti ad fraud activity. You can find the ANA white paper here:&lt;/p&gt;
&lt;a class=&quot;link-card in-text&quot; href=&quot;http://www.ana.net/content/show/id/botfraud&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;title&quot;&gt;The Bot Baseline: Fraud in Digital Advertising&lt;/span&gt;&lt;span class=&quot;host&quot;&gt;ana.net ↗&lt;/span&gt;&lt;/a&gt;
&lt;p id=&quot;p-99d8e9e&quot;&gt;This paper turned out to be the single most referenced point of information on the topic of ad fraud. Especially the point it makes about the level of ad fraud exposure in the market. The issue of course is, that the level indicated by WhiteOps is far lower than I have ever witnessed from any data I’ve analysed over the past decade while looking for ad fraud exposures. Also from the storyline it became clear that WhiteOps does not have a substantial theoretical understanding of ad fraud.&lt;/p&gt;
&lt;p id=&quot;p-83dd6e9&quot;&gt;Now let’s look at the DCN Bot Benchmark Report and why it is not research, but a piece of marketing collateral. You can find the report here:&lt;/p&gt;
&lt;a class=&quot;link-card in-text&quot; href=&quot;https://digitalcontentnext.org/blog/2015/09/28/2015-dcn-bot-benchmark-report-what-makes-a-publisher-premium/&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;title&quot;&gt;2015 DCN Bot Benchmark Report: What makes a publisher premium | Digital Content Next&lt;/span&gt;&lt;span class=&quot;host&quot;&gt;digitalcontentnext.org ↗&lt;/span&gt;&lt;/a&gt;
&lt;p id=&quot;p-2d43a0a&quot;&gt;A lot of work went in to this work, and real researh method had to be used in order to be able to report what is being reported here. But what is it saying? First let’s look at the &lt;em&gt;Major Findings &lt;/em&gt;section of the report:&lt;/p&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;Sophisticated bot traffic: 2.8% in the study against an 11% average in 2014&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;Sophisticated bot traffic, against the 2014 average&lt;/p&gt;&lt;dl class=&quot;blog-bars&quot;&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Domains in the study&lt;/dt&gt;&lt;dd&gt;2.8%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:23.333333333333332%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Average across The Bot Baseline 2014 sites&lt;/dt&gt;&lt;dd&gt;11%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:91.66666666666666%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/dl&gt;&lt;figcaption&gt;As stated in the Major Findings of the report: participants had lower sophisticated bot rates than the 2014 average.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-5a85a90&quot;&gt;What had happened so far? WhiteOps had completed a hugely successful study with ANA that downplayed the problem and still was widely accepted by more or less everyone in the industry. Under closer inspection it seemed that the detection method that had been used, was one that outright missed most of ad fraud. That, or every other research on the topic of ad fraud was wrong. Nobody had ever got a number as low as WhiteOps did.&lt;/p&gt;
&lt;p id=&quot;p-f14e775&quot;&gt;The other point related to the Major Findings section of the paper is who is paying for the paper? It is a grass-roots / tradebody organisation that represents the interest of premium digital publishers. The goal of such a body is to attract more money in to digital media from traditional channels such as TV or otherwise. It seems fair to assume that it’s principal goal for the project&lt;/p&gt;
&lt;figure class=&quot;document&quot; aria-label=&quot;Cover of the DCN Bot Benchmark Report, 2015&quot;&gt;&lt;span class=&quot;document-kind&quot;&gt;Report&lt;/span&gt;&lt;span class=&quot;document-title&quot;&gt;Bot Benchmark Report: What Makes a Publisher Premium&lt;/span&gt;&lt;span class=&quot;document-by&quot;&gt;DCN and White Ops, 2015&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-5d3fe72&quot;&gt;What we have here is a publisher study using a bogus method to come to an artificially low number, and then compare that to another artificially low number from a previous study made by the same company. How come nobody is making the case of how dodgy this is?&lt;/p&gt;
&lt;p id=&quot;p-ec7ce86&quot;&gt;The big question is on methodology that is used for detection, and for the distinction between sophisticated and not-sophisticated bot traffic. Also what does WhiteOps think about how much they are missing all together? An anti ad fraud company can’t work out of an assumption that they are detecting everything. They have to have a strong theoretical framework for understanding the various ways in which ad fraud manifests, and then be able to use that to pick the most important fights. Not only WhiteOps, but none of the other known vendors are communicating at this level.&lt;/p&gt;
&lt;p id=&quot;p-370c815&quot;&gt;WhiteOps comes out with aggressive marketing on its website:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-7a1a40d&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Cyber criminals will steal over $6 billion from digital advertisers in 2015. White Ops is the only security solution for digital ad fraud.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;White Ops, on its website, 2015&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-291c9ee&quot;&gt;Also it is completely inaccurate to say that it is the only security solution for digital ad fraud. At this point I’m not entirely sure what WhiteOps is offering can be classified as a &lt;em&gt;security solution.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-e44194a&quot;&gt;Both Michael Tiffany and Dan Kaminsky know that they should be more careful with what they claim in terms of credible findings. Even if their information security friends did not have good understanding of ad fraud…&lt;/p&gt;
&lt;p id=&quot;p-ef3514f&quot;&gt;There is so much more, but let’s just leave that case at that.&lt;/p&gt;
&lt;p id=&quot;p-70e644e&quot;&gt;As I had said before, we did try to contact WhiteOps trough botlab.io on several occasions, but were not able to establish a contact. Due to this, we don’t have any other information available than what had been presented in the reports.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;not-research--xindi-botnet-by-pixalate&quot;&gt;Not Research — Xindi Botnet by Pixalate&lt;/h2&gt;
&lt;figure class=&quot;entity&quot; aria-label=&quot;Pixalate&quot;&gt;&lt;span class=&quot;entity-name&quot;&gt;Pixalate&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-20f0584&quot;&gt;Regardless of many attempts, Pixalate was not able to produce any additional evidence to its claims regarding Xindi botnet. Myself together with many others have concluded that Pixalate’s claims about Xindi botnet were not just mistaken, but to some extent made up in order to make the marketing effort more effective.&lt;/p&gt;
&lt;p id=&quot;p-3ad5f10&quot;&gt;Here is what some security researchers thought about Pixalate’s work on Xindi the Botnet:&lt;/p&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;
























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Company&lt;/th&gt;&lt;th&gt;What security researchers said&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Pixalate&lt;/td&gt;&lt;td&gt;Creating a fake botnet named Xindi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Pixalate&lt;/td&gt;&lt;td&gt;Security’ company gets PR firm to hit up major media and panic C-suites for days without providing a single IOC in marketing effort. Alleges they were actually working with experts the whole time – none of which can be identified or found.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Pixelate&lt;/td&gt;&lt;td&gt;Ask @da_667 @botnet_hunter or Carbon Dynamics about the bullshit surrounding the Xindi Botnet. TL;DR: Extortion and vaporware.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Pixalate&lt;/td&gt;&lt;td&gt;Xindi Botnet and the complete pile of shit the entire report was.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-42eb18f&quot;&gt;It looks like that somewhere along the way Pixalate became confused about what is &lt;em&gt;a botnet &lt;/em&gt;and what is&lt;em&gt; botnet activity. &lt;/em&gt;Botnet research respects this difference, as otherwise botnet research could not make any sense. For example, you could not name a lot of stars with the same name. Each star needs to have its own demarkation, otherwise it could not be studied accurately (or at all). If knowing that there is certain kind of botnet activity would be enough to report a botnet, then anyone could do it.&lt;/p&gt;
&lt;p id=&quot;p-d5e4e81&quot;&gt;In the case of Pixalate, they chose “impression fraud” as the kind of activity their bogus botnet Xindi is made off. They go to the extent of claiming that this is the first time such botnet, one focused on impression fraud, is identified. They also make claims to the extent as if ad fraud had worked in some other way previously. The issue with this is that&lt;/p&gt;
&lt;p id=&quot;p-6218ecc&quot;&gt;Pixalate did not just make up the technical part of their claims, also the underlying storyline is made up. Made up and contrary to what is commonly known.&lt;/p&gt;
&lt;p id=&quot;p-2721cbc&quot;&gt;To avoid using any more time with this, let’s look at what Pixalate’s disclaimer says:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-375f89c&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Disclaimer: Pixalate’s analysis of how organizations are exposed to risk from advertising fraud, as well as its identification of specific organizations at various levels of risk, reflect Pixalate’s opinions with respect to numerous factors. &lt;mark&gt;The scores or ratings in each category reflect Pixalate’s opinions regarding the potential exposure of a particular organization, but is not intended to suggest that a particular organization’s computer system has in fact been infected. That is a matter within the domain of each organization’s cyber security function. The ratings and rankings reflect Pixalate’s opinions regarding the relative risk identified for each firm with respect to the specified factors. Pixalate’s opinions are just that – opinions, not facts or guarantees – but they are grounded in its proprietary technology and analytics, which Pixalate is continuously evaluating and updating.&lt;/mark&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Pixalate, disclaimer in the Xindi report, 2015. Highlighting as in the original post.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-a3dcfda&quot;&gt;If it’s just opinions, how come it is marketed so aggressively?! I’m assuming that everyone on their list (together with others) got this email on the day of the release of the report:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-bfc4a75&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;We are writing to let you know about a security threat to the programmatic advertising industry. Yesterday, Pixalate announced the discovery of the Xindi Botnet, which will cost the industry an estimated three billion dollars by the end of 2016. If you would like to learn more about this botnet and how it operates, you can download our white paper on the topic here.&lt;/p&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-The Pixalate Team&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Email from Pixalate on the day the report was released&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-a9f9798&quot;&gt;At the bottom of the same screen, we can see how Pixalate is in this case positioning itself as a company:&lt;/p&gt;
&lt;figure class=&quot;quote&quot; id=&quot;p-533910a&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;The quality ratings standard for programmatic advertising.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Pixalate, describing itself at the foot of the same email&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p id=&quot;p-79cc1fb&quot;&gt;I hope this makes as little sense to you as it does to me.&lt;/p&gt;
&lt;p id=&quot;p-88b0708&quot;&gt;We’ve now looked at two of the supposed leaders of the industry, and some of the most widely circulated and referenced reports of 2015. It does not look good for 2016 if you ask me, especially when some of the other “leading” companies do not fair any better. This includes the largest company, Integral Ad Sciences making statements about ad fraud rates going down.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;not-research--media-quality-report-by-integral-ad-science&quot;&gt;Not Research — Media Quality Report by Integral Ad Science&lt;/h2&gt;
&lt;figure class=&quot;entity&quot; aria-label=&quot;Integral Ad Science&quot;&gt;&lt;span class=&quot;entity-name&quot;&gt;Integral Ad Science&lt;/span&gt;&lt;/figure&gt;
&lt;p id=&quot;p-7d3e380&quot;&gt;There is a real risk in having an advertising technology company grow to a certain size. What happens is that the sales side of its business takes control of everything else, and that together with pressures to raise ever more money, make it very hard to innovate and create something new.&lt;/p&gt;
&lt;a class=&quot;link-card in-text&quot; href=&quot;http://venturebeat.com/2015/08/13/theres-good-news-and-bad-news-about-digital-ads-in-new-integral-ad-science-report/&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;title&quot;&gt;There’s good news and bad news about digital ads in new Integral Ad Science report&lt;/span&gt;&lt;span class=&quot;host&quot;&gt;venturebeat.com ↗&lt;/span&gt;&lt;/a&gt;
&lt;p id=&quot;p-804fb3e&quot;&gt;Why is it clear that Integral Ad Science &lt;em&gt;Media Quality Report &lt;/em&gt;is nothing but a way for Integral Ad Science to sell more of its solution:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-d256851&quot;&gt;not a single word about methodology&lt;/li&gt;
&lt;li id=&quot;p-bfa9a0e&quot;&gt;not a single word about possible caveats&lt;/li&gt;
&lt;li id=&quot;p-ef2de88&quot;&gt;very low overall reported rate:&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;blog-figure blog-diagram&quot; aria-label=&quot;Ad fraud by channel: 10.5% through networks and exchanges, 4.3% bought from publishers directly&quot;&gt;&lt;p class=&quot;blog-chart-title&quot;&gt;Ad fraud by buying channel&lt;/p&gt;&lt;dl class=&quot;blog-bars&quot;&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Networks and exchanges&lt;/dt&gt;&lt;dd&gt;10.5%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:75%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blog-bar-row&quot;&gt;&lt;dt&gt;Publisher direct&lt;/dt&gt;&lt;dd&gt;4.3%&lt;/dd&gt;&lt;span class=&quot;blog-bar-track&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;blog-bar&quot; style=&quot;--bar-value:30.71428571428571%&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/dl&gt;&lt;p class=&quot;blog-figure-note&quot;&gt;Overall: 10.1%.&lt;/p&gt;&lt;figcaption&gt;Integral Ad Science, Media Quality Report, as reproduced in the original post.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p id=&quot;p-d1f1b0e&quot;&gt;By very low it is meant that findings suggest much lower rate than majority of research. The rates reported by Integral Ad Science are similar to the rates reported by WhiteOps.&lt;/p&gt;
&lt;p id=&quot;p-dbe58a4&quot;&gt;Where as Pixalate showed some attempt to make it clear that their work should not be taken seriously (the disclaimer), and WhiteOps made a real effort to stand out as actual research, Integral Ad Science is doing neither.&lt;/p&gt;
&lt;p id=&quot;p-111302a&quot;&gt;Case closed.&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;examples-of-research&quot;&gt;Examples of Research&lt;/h2&gt;
&lt;p id=&quot;p-685d382&quot;&gt;These Madrid based academic researchers are talking about the the right problem, and backing it up with the right methodology and evidence.&lt;/p&gt;
&lt;a class=&quot;link-card in-text&quot; href=&quot;http://www.networks.imdea.org/whats-new/news/2015/false-view-research-results-imdea-networks-and-uc3m-impact-advertising-industry&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;title&quot;&gt;False View research results from IMDEA Networks and UC3M impact advertising industry and society…&lt;/span&gt;&lt;span class=&quot;host&quot;&gt;networks.imdea.org ↗&lt;/span&gt;&lt;/a&gt;
&lt;p id=&quot;p-b12f033&quot;&gt;These Bishop Fox researchers used their free time to come up with some very interesting proof of concepts relevant for ad fraud researchers.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;a class=&quot;video-card&quot; href=&quot;https://www.youtube.com/watch?v=cpUtYq4SJKA&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;play&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span&gt;Video&lt;/span&gt;&lt;span class=&quot;where&quot;&gt;Watch on YouTube ↗&lt;/span&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p id=&quot;p-ebc519a&quot;&gt;As the last example, a blog post from Sentrant, a Halifax based Anti Ad Fraud company, outlining the workings of a Ad Fraud botnet.&lt;/p&gt;
&lt;p id=&quot;p-c34ed1b&quot;&gt;&lt;a href=&quot;http://sentrant.com/2015/05/20/bedep-ad-fraud-botnet-analysis-exposing-the-mechanics-behind-153-6m-defrauded-ad-impressions-a-day/&quot; title=&quot;http://sentrant.com/2015/05/20/bedep-ad-fraud-botnet-analysis-exposing-the-mechanics-behind-153-6m-defrauded-ad-impressions-a-day/&quot;&gt;&lt;strong&gt;Bedep Ad-Fraud Botnet Analysis – Exposing the Mechanics Behind 153.6M Defrauded Ad Impressions A…&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&quot;h-1&quot; id=&quot;referencing-research-findings&quot;&gt;Referencing Research Findings&lt;/h2&gt;
&lt;p id=&quot;p-8ac4d7a&quot;&gt;It is idiotic to write a story based on a marketing report. It is just as dumb to reference to an argument that is made in a marketing paper. The function of a marketing paper is to sell someone’s product or agenda. Marketing papers should never be treated with the same confidence research papers are treated. This is because of few very important reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-222a75b&quot;&gt;research papers are generally thoroughly reviewed by peers&lt;/li&gt;
&lt;li id=&quot;p-7da0416&quot;&gt;researchers tend to have a broader base of incentives driving their work&lt;/li&gt;
&lt;li id=&quot;p-b8c19e0&quot;&gt;research papers tend to use far more careful language&lt;/li&gt;
&lt;li id=&quot;p-3049e69&quot;&gt;claims made in research papers are backed up by objective evidence&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-96e4765&quot;&gt;When it comes to referencing research findings, let’s keep in mind that one commercially incentivised paper is not enough to establish a credible baseline for further assumptions to be made. On the contrary, it is inviting researchers to prove the initial claims wrong. In my experience, that would mean showing that the numbers are much higher, and that there is a gap between what these vendors are saying and what is really happening.&lt;/p&gt;
&lt;p id=&quot;p-864107e&quot;&gt;As an example of what-if, we have cio.com parroting word to word claims made in a marketing paper by a company with no previous track record in reporting security research findings.&lt;/p&gt;
&lt;a class=&quot;link-card in-text&quot; href=&quot;http://www.cio.com/article/3006233/fraud/new-ad-fraud-botnet-targets-major-corporations-universities.html&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;title&quot;&gt;New ad-fraud botnet targets major corporations, universities&lt;/span&gt;&lt;span class=&quot;host&quot;&gt;cio.com ↗&lt;/span&gt;&lt;/a&gt;
&lt;p id=&quot;p-70b101b&quot;&gt;This gap seems to be the dilemma of commercially focused research, as a company can focus only on so many things. For some reason the media and many other industry stakeholders seeem to have assumed results from the previous Whiteops paper as “true”, even though the paper presents results that are limited and in conflict with results from other researchers. It is concerning to say the least, to see how easy it is to get the press to repeat subjective findings as true.&lt;/p&gt;
&lt;figure class=&quot;figure drawn emblem&quot; data-drawn=&quot;&quot;&gt;&lt;p class=&quot;emblem-motto fig-label&quot; lang=&quot;la&quot;&gt;Stultorum infinitus est numerus&lt;/p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/b4c9b22442626ad9.png&quot; alt=&quot;Demotivational poster of a man with his face in his palm: “Facepalm. For when words can’t explain just how dumb that was.”&quot;&gt;&lt;p class=&quot;emblem-gloss&quot;&gt;The number of fools is infinite.&lt;/p&gt;&lt;p class=&quot;emblem-source fig-small&quot;&gt;Ecclesiastes 1:15, in the Vulgate&lt;/p&gt;&lt;p class=&quot;emblem-meme fig-small&quot;&gt;&lt;b&gt;The meme&lt;/b&gt; “Facepalm. For when words can’t explain just how dumb that was.”&lt;/p&gt;&lt;/figure&gt;</content></entry><entry><title>Dark Side of Google – Ad Fraud</title><link href="https://mikkokotila.com/writing/dark-side-of-google-ad-fraud/"/><id>https://mikkokotila.com/writing/dark-side-of-google-ad-fraud/</id><published>2017-04-29T00:00:00Z</published><updated>2017-04-29T00:00:00Z</updated><category term="ad-fraud"/><summary>TL;DR Google is the biggest company in the world and makes 90% of its money from online ads. Google’s ad revenues are based on commissions it receives from ad buys on its system.</summary><content type="html">&lt;h4 class=&quot;h-1&quot; id=&quot;tldr&quot;&gt;TL;DR&lt;/h4&gt;
&lt;p id=&quot;p-a4ee00b&quot; class=&quot;opening&quot;&gt;Google is the biggest company in the world and makes 90% of its money from online ads. Google’s ad revenues are based on commissions it receives from ad buys on its system. When an advertiser buys an ad impression from some site through Google, the publisher takes a cut and Google keeps the rest. Google ends up with more than half of the money in any case. Where the publisher in question is sending Google fake traffic or some other form of waste, Google makes exactly as much money from selling it as they do in the case of legit inventory. The magnitude and success of Google’s business are tied to selling more and more impressions that cost less and less money. This leaves Google in a very difficult situation; on one hand, it is under pressure to remain the largest company in the world, and on the other, it is making its money from an industry that has a serious problem with fraud to the extent that World Federation of Advertisers recently called &lt;span class=&quot;nowrap&quot;&gt;it “endemic”.&lt;/span&gt;&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;just-let-it-happen-the-market-will-correct-itself&quot;&gt;“Just let it happen, the market will correct itself”&lt;/h4&gt;
&lt;p id=&quot;p-65112de&quot;&gt;The story starts in 2004 when Google’s then CFO Reyes says “ad fraud is the biggest threat to internet economy” [&lt;a href=&quot;http://money.cnn.com/2004/12/02/technology/google_fraud/&quot;&gt;1&lt;/a&gt;], a claim Google’s PR jumped promptly to correct.&lt;/p&gt;
&lt;p id=&quot;p-c46517a&quot;&gt;Two years later Google settles out of a click fraud class action for $90 million [&lt;a href=&quot;https://searchenginewatch.com/sew/news/2059444/google-agrees-to-usd90-million-settlement-in-class-action-lawsuit-over-click-fraud&quot;&gt;2&lt;/a&gt;]. The same year CEO Eric Schmidt says in a talk at Stanford University “letting it (fraud) happen is the perfect economic solution”[&lt;a href=&quot;http://www.zdnet.com/article/google-ceo-on-click-fraud-let-it-happen-is-perfect-economic-solution/&quot;&gt;3&lt;/a&gt;].&lt;/p&gt;
&lt;p id=&quot;p-3c64a1b&quot;&gt;Fast forward to today and we have researchers showing how Google charges for Youtube views even when they know its a bot [&lt;a href=&quot;http://www.recred.eu/sites/default/files/fake_views_imc15.pdf&quot;&gt;4&lt;/a&gt;] a story that landed on the cover of the Financial Times [&lt;a href=&quot;https://www.ft.com/content/53ac3fd0-604e-11e5-a28b-50226830d644&quot;&gt;5&lt;/a&gt;].&lt;/p&gt;
&lt;p id=&quot;p-bb6760d&quot;&gt;Another instance where traffic quality issues got Google on the headlines, is the story about a known and convicted terrorist funder who was using Google ads to make money with his propaganda site[&lt;a href=&quot;https://www.ft.com/content/b06d18c0-1bfb-11e6-8fa5-44094f6d9c46&quot;&gt;6&lt;/a&gt;].&lt;/p&gt;
&lt;p id=&quot;p-1ba41e3&quot;&gt;Advertising focused security firm Sentrant recently published research showcasing how Google Play was being used for very large scale fraud operation [&lt;a href=&quot;https://sentrant.com/2016/02/07/exposing-an-intricate-and-elaborate-scheme-of-mobile-ad-fraud-a-game-of-shells/&quot;&gt;7&lt;/a&gt;].&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;working-with-google-as-an-ad-fraud-researcher&quot;&gt;Working with Google as an ad fraud researcher&lt;/h4&gt;
&lt;p id=&quot;p-82eb681&quot;&gt;Through Botlab, the only research foundation focused on the malicious use of advertising technology, we have interacted with Google to some extent and have learned that when presented with information, Google reps are typically resorting to one of few options:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-65bb620&quot;&gt;refute the information by claiming the superiority of their people and the scale of their investment&lt;/li&gt;
&lt;li id=&quot;p-e60d810&quot;&gt;refute the information by making a specific counter claim, without being willing to discuss/debate the claim further&lt;/li&gt;
&lt;li id=&quot;p-a203a6e&quot;&gt;not refuting the information but refusing to reveal any further intention or action associated with it&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-a2e8309&quot;&gt;In the case of scientific research, the two first are clear fallacies. This can be verified from Wikipedia’s entry on &lt;em&gt;Logic Fallacies&lt;/em&gt;[&lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_fallacies&quot;&gt;8&lt;/a&gt;].&lt;/p&gt;
&lt;p id=&quot;p-4a9c9bf&quot;&gt;Our working theory is that Google has a lot of good people, but also it’s the world’s largest corporations with tremendous financial market pressures to perform. They bought a lot of tech, like DoubleClick, a company that in 2003 was sued for showing computer error messages in place of banners [&lt;a href=&quot;http://www.geek.com/news/doubleclick-sued-for-fraudulent-internet-advertising-552586/&quot;&gt;9&lt;/a&gt;], or blogger.com that at the time was very popular with “advanced SEOs” and “affiliate marketers”. I can’t find the source, but there was a German bank that did a paper where they analyzed blogger and found that 2/3 of the content was auto-generated. Those times it was all Markov auto-generated gibberish. Very cool tech, but does not read well.&lt;/p&gt;
&lt;p id=&quot;p-cb3a12d&quot;&gt;Google has always been under a tremendous pressure to grow. To understand this, we can evidence how Google became the largest company in the world in a very competitive global market. Somewhere along the way, under all those pressures, some baggage in terms of traffic quality may have been acquired. I know all ad fraud researchers agree with the point about “Google being the largest single beneficiary of ad fraud” and it is a point very hard to debate. Because of its share in the total market, “just letting it happen” even to tiny extent amounts to billion of dollars of ad revenue. Stock market analysts don’t understand Google’s traffic issues, so the forecasts they make are completely ignoring the fact that at some point it needs to be “corrected”.&lt;/p&gt;
&lt;p id=&quot;p-9c46182&quot;&gt;In short, summary, if Google in its current situation suddenly admit that 10% of their traffic is bad and probably has been bad all along, it could come at a catastrophic cost. This is one of the reasons why I’m wishing so dearly Google would be more eager to work closely together with researchers when they do reach out to them. There is ZERO benefit for having publicity on matters such as these. The preference of the ad fraud research community is to treat these in a similar way as vulnerabilities would typically be treated:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;p-5c76aeb&quot;&gt;researcher informs the company privately about the vulnerability&lt;/li&gt;
&lt;li id=&quot;p-1481dd4&quot;&gt;the company has a window of time to take action before info is published&lt;/li&gt;
&lt;li id=&quot;p-ac70e80&quot;&gt;the researcher makes the information public&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;p-35919f3&quot;&gt;In this process, there is no doubt, and everyone gets something valuable out of it. The issue with ad fraud related “vulnerabilities” is that the companies in question make money from letting them be.&lt;/p&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;how-cleaning-up-looks-like&quot;&gt;How “cleaning up” looks like?&lt;/h4&gt;
&lt;p id=&quot;p-536be8e&quot;&gt;When AppNexus, one of Google’s competitors, started their fight for traffic quality, on the first move 65% of traffic footprint was lost [&lt;a href=&quot;http://digiday.com/agencies/appnexus-filters-65-percent-impressions-fraudulent/&quot;&gt;10&lt;/a&gt;]. Meaning that AppNexus at one go lost 2/3 of its immediate revenue potential, and opened the door for pissed off buyers who had been buying 2/3 garbage. When AppNexus made this move, Matomy, an Israeli ad network lost 1/3 of its market cap on the London Stock Exchange[&lt;a href=&quot;http://www.telegraph.co.uk/finance/newsbysector/mediatechnologyandtelecoms/digital-media/11558623/Matomy-shares-battered-in-digital-ad-fraud-crackdown.html&quot;&gt;11&lt;/a&gt;]. What AppNexus did in banking terms is same as bank admitting that it has many toxic assets on its books and that while it may seem fine and everyone is in on it, being part of increasing the risk associated with AppNexus significantly. In my view, this was the best thing to do in that situation. Now some other companies have already followed AppNexus’ example with similar initial results in terms of reduction to total traffic footprint. With the information I have, it seems unlikely that such an “initial push” would be less than 50% in the case of exchanges and ad networks (Google’s business models).&lt;/p&gt;
&lt;p id=&quot;p-811b195&quot;&gt;Is Google better off than AppNexus? Their starting point was better, but they have not made any “sudden” improvement like AppNexus and some other companies have. Because Google’s business is far bigger than AppNexus, and because it is a public company, we can conclude that Google has far more risk associated with doing something like this compared to AppNexus for example. I’m assuming that is a very difficult situation to manage even for the absolute best people in the world, which I’m sure Google employ many.&lt;/p&gt;
&lt;p id=&quot;p-cf144e2&quot;&gt;Out of the 10 or so listed adtech companies, others too have been rocked by ad fraud allegations. Rocket Fuel has lost 95% of its listing price a downturn it could not stop after being implicated in fraud allegations. At the same time, Google has increased its market cap many times the total market cap of all the other listed companies doing the same thing Google does.&lt;/p&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;




























































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Company&lt;/th&gt;&lt;th&gt;Symbol&lt;/th&gt;&lt;th&gt;Last price&lt;/th&gt;&lt;th&gt;Cost basis&lt;/th&gt;&lt;th&gt;Market value&lt;/th&gt;&lt;th&gt;Overall return&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Criteo SA (ADR)&lt;/td&gt;&lt;td&gt;CRTO&lt;/td&gt;&lt;td&gt;36.33&lt;/td&gt;&lt;td&gt;10,025.40&lt;/td&gt;&lt;td&gt;10,681.02&lt;/td&gt;&lt;td&gt;+6.54%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Rocket Fuel Inc&lt;/td&gt;&lt;td&gt;FUEL&lt;/td&gt;&lt;td&gt;2.76&lt;/td&gt;&lt;td&gt;9,985.80&lt;/td&gt;&lt;td&gt;491.28&lt;/td&gt;&lt;td&gt;−95.08%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;The Rubicon Project Inc&lt;/td&gt;&lt;td&gt;RUBI&lt;/td&gt;&lt;td&gt;8.62&lt;/td&gt;&lt;td&gt;10,004.40&lt;/td&gt;&lt;td&gt;4,344.48&lt;/td&gt;&lt;td&gt;−56.57%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TubeMogul Inc&lt;/td&gt;&lt;td&gt;TUBE&lt;/td&gt;&lt;td&gt;9.21&lt;/td&gt;&lt;td&gt;10,005.00&lt;/td&gt;&lt;td&gt;8,012.70&lt;/td&gt;&lt;td&gt;−19.91%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Matomy Media Group Ltd&lt;/td&gt;&lt;td&gt;MTMY&lt;/td&gt;&lt;td&gt;109.25&lt;/td&gt;&lt;td&gt;£6,480.00&lt;/td&gt;&lt;td&gt;£2,949.75&lt;/td&gt;&lt;td&gt;−54.48%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Millennial Media, Inc.&lt;/td&gt;&lt;td&gt;MM&lt;/td&gt;&lt;td&gt;1.76&lt;/td&gt;&lt;td&gt;10,011.00&lt;/td&gt;&lt;td&gt;749.76&lt;/td&gt;&lt;td&gt;−92.51%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;YuMe Inc&lt;/td&gt;&lt;td&gt;YUME&lt;/td&gt;&lt;td&gt;4.10&lt;/td&gt;&lt;td&gt;10,001.55&lt;/td&gt;&lt;td&gt;4,571.50&lt;/td&gt;&lt;td&gt;−54.29%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tremor Video Inc&lt;/td&gt;&lt;td&gt;TRMR&lt;/td&gt;&lt;td&gt;1.51&lt;/td&gt;&lt;td&gt;9,999.00&lt;/td&gt;&lt;td&gt;1,677.61&lt;/td&gt;&lt;td&gt;−83.22%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sizmek Inc&lt;/td&gt;&lt;td&gt;SZMK&lt;/td&gt;&lt;td&gt;3.89&lt;/td&gt;&lt;td&gt;10,001.60&lt;/td&gt;&lt;td&gt;4,138.96&lt;/td&gt;&lt;td&gt;−58.62%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Portfolio&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;$90,905.25&lt;/td&gt;&lt;td&gt;$39,616.11&lt;/td&gt;&lt;td&gt;−56.42%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-388c24e&quot;&gt;&lt;em&gt;Listed adtech companies held as one portfolio, as shown in the original post.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-761ad68&quot;&gt;After a long silence, past few months we saw how the financial analysts for the first time started to pay attention to the topic of how traffic quality issues may affect the stock price of Google [&lt;a href=&quot;https://kalkis-research.com/google-end-of-the-online-advertising-bubble&quot;&gt;12&lt;/a&gt;]. Kalkis is recommending a correction to $200 per stock for Alphabet in relation to traffic quality issues.&lt;/p&gt;
&lt;p id=&quot;p-f9591dc&quot;&gt;Roughly $70 billion was invested on ads with Google last year. If even 10% of that goes to something that could be dealt with under the right circumstances, for example by being more transparent, then that means preventable losses of $7 billion in ad effectiveness. In product categories, e.g. cheap shampoo with a weak brand, easily more than half of the sales is a result of advertising. Because economies are increasingly dependent on consumer spending, weaker sales lead to fewer jobs, less tax money and other forms of tax payer burden.&lt;/p&gt;
&lt;p id=&quot;p-b989203&quot;&gt;Google’s problem seems to be that increasingly online advertising inventory is fraudulent, yet Google’s own revenues are almost entirely dependent on its ability to sell more and more online advertising inventory. The other problem is related to being the biggest in the world. Because Google has no other means for making tens of billions of dollars of revenue than online ads, Google wants online advertising market to expand, not shrink.&lt;/p&gt;
&lt;p id=&quot;p-dfd3c49&quot;&gt;In comparison to ad networks in general, is Google bad? Definitely not. My understanding is that its traffic quality is above mid-tier in the market. For a company that grew so large so fast, some could argue that it is a feat in itself to do that and still end up mid-tier. The issue with comparing Google with other ad networks is that there are hundreds (if not thousands by now) of ad networks that 100% focused on arbitrage and nothing else.&lt;/p&gt;
&lt;p id=&quot;p-c42d7cb&quot;&gt;Ari Paparo, who was the longtime product manager for Google DoubleClick both pre and post acquisition by Google, tweeted yesterday from dmexco:&lt;/p&gt;
&lt;blockquote id=&quot;p-cbd7eec&quot;&gt;
&lt;p&gt;“Talking to all the video arbitrage ad networks at #dmexco feels *exactly* like the scene in Big Short when Steve Carrell goes down to Florida”.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 class=&quot;h-1&quot; id=&quot;references&quot;&gt;References:&lt;/h4&gt;
&lt;p id=&quot;p-aefe10e&quot;&gt;[1] &lt;strong&gt;Google CFO: Fraud a big threat&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;http://money.cnn.com/2004/12/02/technology/google_fraud/&quot;&gt;&lt;em&gt;http://money.cnn.com/2004/12/02/technology/google_fraud/&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-ca0d650&quot;&gt;[2] &lt;strong&gt;Google Agrees To $90 Million Settlement In Class Action Lawsuit Over Click Fraud&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;https://searchenginewatch.com/sew/news/2059444/google-agrees-to-usd90-million-settlement-in-class-action-lawsuit-over-click-fraud&quot;&gt;&lt;em&gt;https://searchenginewatch.com/sew/news/2059444/google-agrees-to-usd90-million-settlement-in-class-action-lawsuit-over-click-fraud&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-1cb3839&quot;&gt;[3] &lt;strong&gt;Google CEO on click fraud: ‘let it happen’ is perfect economic solution&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;http://www.zdnet.com/article/google-ceo-on-click-fraud-let-it-happen-is-perfect-economic-solution/&quot;&gt;&lt;em&gt;http://www.zdnet.com/article/google-ceo-on-click-fraud-let-it-happen-is-perfect-economic-solution/&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-70ed37c&quot;&gt;[4] &lt;strong&gt;Understanding the detection of fake view fraud in Video&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;http://www.recred.eu/sites/default/files/fake_views_imc15.pdf&quot;&gt;&lt;em&gt;http://www.recred.eu/sites/default/files/fake_views_imc15.pdf&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-6c905a7&quot;&gt;[5] &lt;strong&gt;Google charges for YouTube ads even when viewed by robots&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;https://www.ft.com/content/53ac3fd0-604e-11e5-a28b-50226830d644&quot;&gt;&lt;em&gt;https://www.ft.com/content/53ac3fd0-604e-11e5-a28b-50226830d644&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-24952ec&quot;&gt;[6] &lt;strong&gt;Jihadi website with beheadings profited from Google ad platform&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;https://www.ft.com/content/b06d18c0-1bfb-11e6-8fa5-44094f6d9c46&quot;&gt;&lt;em&gt;https://www.ft.com/content/b06d18c0-1bfb-11e6-8fa5-44094f6d9c46&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p id=&quot;p-74c717a&quot;&gt;[7] &lt;strong&gt;Fraud Through Comprised Apps and App SDKs Affecting Major Exchange&lt;/strong&gt;&lt;br&gt;
&lt;a href=&quot;https://sentrant.com/2016/02/07/exposing-an-intricate-and-elaborate-scheme-of-mobile-ad-fraud-a-game-of-shells/&quot;&gt;&lt;em&gt;https://sentrant.com/2016/02/07/exposing-an-intricate-and-elaborate-scheme-of-mobile-ad-fraud-a-game-of-shells/&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;</content></entry><entry><title>This Is Why We Cant Have Nice Things</title><link href="https://mikkokotila.com/writing/this-is-why-we-cant-have-nice-things/"/><id>https://mikkokotila.com/writing/this-is-why-we-cant-have-nice-things/</id><published>2017-04-29T00:00:00Z</published><updated>2017-04-29T00:00:00Z</updated><category term="ad-fraud"/><summary>Banner ads are the advertising version of toxic waste. Advertising is a form of waste in itself: - people waste their attention and in some rare case money - advertisers waste their money in beating each other As toxic…</summary><content type="html">&lt;p id=&quot;p-610dd22&quot;&gt;Banner ads are the advertising version of toxic waste. Advertising is a form of waste in itself:&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;p-2e74ec5&quot;&gt;people waste their attention and in some rare case money&lt;/li&gt;
&lt;li id=&quot;p-ffb3821&quot;&gt;advertisers waste their money in beating each other&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;p-a04489b&quot;&gt;As toxic waste is to waste, banners are to advertising. If you disagree, can you then go ahead and name one thing that has hurt the internet more than the banner ad? The argument that ads fund the internet are made up by those that have vested interest in the way the internet is now as opposed to how it could be if there was a serious think in terms of monetization by the IAB, Google, and others that have influence in the matter. More so, the advertisers have to realize that banner ads are garbage, and stop supporting such a mindless business model. No, video, social or mobile is not any better than banner ads. If advertisers stop buying it, the companies that make money from it will figure out something more useful for the advertisers to buy. It will happen immediately.&lt;/p&gt;</content></entry><entry><title>Economic Centralization</title><link href="https://mikkokotila.com/writing/economic-centralization/"/><id>https://mikkokotila.com/writing/economic-centralization/</id><published>2017-01-23T00:00:00Z</published><updated>2017-01-23T00:00:00Z</updated><category term="decentralization"/><summary>Let’s make one point clear; Bitcoin has nothing to do with decentralization. Fundamentally Bitcoin is centralized by design and has done more damage to the perception of decentralization than any other topic.</summary><content type="html">&lt;p id=&quot;p-dd87571&quot; class=&quot;opening&quot;&gt;Let’s make one point clear; Bitcoin has nothing to do with decentralization. Fundamentally Bitcoin is centralized by design and has done more damage to the perception of decentralization than any &lt;span class=&quot;nowrap&quot;&gt;other topic.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-df23539&quot;&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/1460ea5d77e1fb26.png&quot; alt=&quot;Bitcoin miners on stage together at Scaling Bitcoin, Hong Kong, December 2015&quot;&gt;In the photo on the left you see 90% of Bitcoin’s hashing compute power sitting on the same stage. Compared to the formal banking system where a few dozen very large banks dominate global finance, this internet-era innovation has proven to be far more centralized.&lt;/p&gt;
&lt;p id=&quot;p-86712a4&quot;&gt;Perhaps the most startling change that internet has driven in the society, we find in the relationship people of the world have with companies. Where as in the past people would pay money for products of companies, and those companies would treat them as customers, now people have become products of those companies. The greatest myth of the internet-age is that internet users are the customers of internet companies such as Google and Facebook, while actually they are the product of those companies.&lt;/p&gt;
&lt;p id=&quot;p-5bcdd2c&quot;&gt;Let’s see how this plays out. Internet companies make money from selling advertisement and data, in other words the eye balls and personal information of the people of the world. This is the meaning of “valued user” in the internet economy. The users volunteer their time and cognitive energy for the benefit of services such as social networking, search and so forth, while being told that internet is free, and the content is “user generated”. This could not be further from the truth. Even though in many cases people don’t pay directly using monetary means to compensate internet companies, people pay indirectly in both obvious and not so obvious ways.&lt;/p&gt;
&lt;p id=&quot;p-0e3ff7c&quot;&gt;&lt;strong&gt;People of the world pay for the internet in five important ways:&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-e2da547&quot;&gt;– with their money (bandwidth and devices)&lt;br&gt;
– with their data (surveillance capitalism)&lt;br&gt;
– with their tax dollars (various government programs)&lt;br&gt;
– with the environment (the internet energy footprint)&lt;br&gt;
– with their cognitive energy&lt;/p&gt;
&lt;p id=&quot;p-bef050a&quot;&gt;&lt;strong&gt;Decentralization Objective: &lt;/strong&gt;An internet that helps lift people out of extreme poverty and empowers those that struggle, systematically reducing the wealth divide in the world.&lt;/p&gt;</content></entry><entry><title>Fundamental Centralization</title><link href="https://mikkokotila.com/writing/fundamental-centralization/"/><id>https://mikkokotila.com/writing/fundamental-centralization/</id><published>2017-01-23T00:00:00Z</published><updated>2017-01-23T00:00:00Z</updated><category term="decentralization"/><summary>Perhaps the most concerning part of internet-age centralization is the way various technologies such as social networks are transforming the way our brain functions, the way we perceive things such a liberty, and how…</summary><content type="html">&lt;p id=&quot;p-f194269&quot; class=&quot;opening&quot;&gt;Perhaps the most concerning part of internet-age centralization is the way various technologies such as social networks are transforming the way our brain functions, the way we perceive things such a liberty, and how we are actually becoming more disconnected from each other than we’ve ever been before. In less than 20 years, the internet has been reduced to an echo-chamber of meaningless chatter, where sharing of daily minutia is a norm and opinions are considered &lt;span class=&quot;nowrap&quot;&gt;valuable information.&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;figure drawn&quot; data-drawn=&quot;&quot;&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/d9770d1b6b31986b.png&quot; alt=&quot;Portrait photograph of a naval officer in uniform&quot;&gt;&lt;/figure&gt;
&lt;blockquote id=&quot;p-dcf5f9c&quot;&gt;
&lt;p&gt;“Opinion is the lowest form of human knowledge. It requires no accountability, no understanding. The highest form of knowledge… is empathy, for it requires us to suspend our egos and live in another’s world.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-7cefa60&quot;&gt;&lt;strong&gt;To highlight this fundamental shift, research have found that: &lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-eb661b6&quot;&gt;– social media users behave in a similar way as cocaine or gambling addicts&lt;br&gt;
– digital natives (millennials) have a higher baseline neural activity level&lt;br&gt;
– people are becoming less empathic to one and other&lt;br&gt;
– people have less time to spend in actual interactions with people&lt;br&gt;
– devices have become a major source of distraction in physical spaces&lt;br&gt;
– quantity of connections is overtaking depth of relationships&lt;/p&gt;
&lt;p id=&quot;p-3dc5c12&quot;&gt;In short summary, while we seem to be more connected than ever before, the meaning of “connection” has completely changed.  In stark contrast to the way we interacted with each other before, we now do it in a highly centralized manner through a handful of social networks and device platforms.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;a class=&quot;video-card&quot; href=&quot;https://www.youtube.com/watch?v=t7Xr3AsBEK4&quot; rel=&quot;external&quot;&gt;&lt;span class=&quot;play&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;span&gt;Video&lt;/span&gt;&lt;span class=&quot;where&quot;&gt;Watch on YouTube ↗&lt;/span&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p id=&quot;p-943d7e0&quot;&gt;&lt;strong&gt;Decentralization Objective: &lt;/strong&gt;An internet that helps people lead socially valuable and balanced lives, where digital interactions facilitate for enrichment of physical world interactions, and facilitate for for profound connections between people and communities.&lt;/p&gt;</content></entry><entry><title>Information Centralization</title><link href="https://mikkokotila.com/writing/information-centralization/"/><id>https://mikkokotila.com/writing/information-centralization/</id><published>2017-01-23T00:00:00Z</published><updated>2017-01-23T00:00:00Z</updated><category term="decentralization"/><summary>Just one search engine controlling nearly 95% of the world’s internet searches and most of the internet users never go beyond the top 3 results.</summary><content type="html">&lt;p id=&quot;p-1ec677e&quot; class=&quot;opening&quot;&gt;Just one search engine controlling nearly 95% of the world’s internet searches and most of the internet users never go beyond the top 3 results. One encyclopedia has close to 100% market share, and ranks in top 3 in search results for practically any topic it has an article on.  Access to information is more centralized than ever before. Some people never leave the social networks, and instead just consume the media that is posted on their “streams”.  This is model is not too far off from the way our education system is laid out. Regardless of the possibilities digital technologies offer, improvements in early education have been limited &lt;span class=&quot;nowrap&quot;&gt;at best.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;p-535e2ac&quot;&gt;Perhaps the most concerning aspect is how Instead of moving towards a more civil society as a result of a more closely knit global community, we have witnessed how internet is increasingly used to propagate extremism and drive division between people. Due to the high level of information centralization, it has never been easier to influence individuals and masses and change their behaviors. Instead of being used for educating people, internet has become the most significant factor in perpetuating people’s ignorance.&lt;/p&gt;
&lt;blockquote id=&quot;p-dd1685a&quot;&gt;
&lt;p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/3c81359c4afdcf69.png&quot; alt=&quot;Portrait of Aldous Huxley&quot;&gt;“A really efficient totalitarian state would be one in which the all-powerful executive of political bosses and their army of managers control a population of slaves who do not have to be coerced, because they love their servitude”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-e937bbd&quot;&gt;A political or corporate entity can easily drive their self-centered agenda simply by utilizing the centralized advertising powered internet as it is intended  to be used; reach anyone or everyone instantly with any messages and have an army of gullible people amplifying it and authenticating it. In accord with Huxley’s prediction from 100 years ago (above quote), people of the world are not only volunteering for their role in perpetuating centralization, but actively compete against each other on the extent to which they can do it.&lt;/p&gt;
&lt;p id=&quot;p-8f4bf45&quot;&gt;Regardless of the capabilities and potential provided by networked computing and digital technologies, children are still trained as “cannon fodder” using the exact same principles that were devised 2 centuries ago in Preuss, a nation that had spend its history in perpetual state of war. Instead of training able internet age citizens, children are forced towards the mean using mind-numbing curriculum and archaic methods. Few have said this as well as Mathematician Paul Lockhart.&lt;/p&gt;
&lt;blockquote id=&quot;p-6d1748a&quot;&gt;
&lt;p&gt;&lt;img src=&quot;https://mikkokotila.com/drawings/bc31103423114039.png&quot; alt=&quot;Portrait of Paul Lockhart&quot;&gt;“If I had to design a mechanism for the express purpose of destroying a child’s natural curiosity and love of pattern-making, I simply wouldn’t have the imagination to come up with the kind of senseless, soul-crushing ideas that constitute contemporary mathematics education.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-d69738c&quot;&gt;&lt;strong&gt;Decentralization Objective:  &lt;/strong&gt;People of all ages access information frictionlessly based on the relevance of the information to the individual, and the actual value it can add to their lives, to the lives of those close to them, and to the communities they are part of. Instead of being exhausted by information, people are inspired by it.&lt;/p&gt;</content></entry><entry><title>Internet of Centralization</title><link href="https://mikkokotila.com/writing/internet-of-centralization/"/><id>https://mikkokotila.com/writing/internet-of-centralization/</id><published>2017-01-23T00:00:00Z</published><updated>2017-01-23T00:00:00Z</updated><category term="decentralization"/><summary>TL;DR “People have become a resource for the internet-era companies to harvest. Their time and cognitive energy is what is being harvested, which is the only thing people have in this life.</summary><content type="html">&lt;p id=&quot;p-5ff57f4&quot;&gt;TL;DR&lt;/p&gt;
&lt;blockquote id=&quot;p-9d8f59c&quot;&gt;
&lt;p&gt;&lt;em&gt;“People have become a resource for the internet-era companies to harvest. Their time and cognitive energy is what is being harvested, which is the only thing people have in this life. The way it is being done, people flock to compete against each other in respect to which extent their time and cognitive energy can be harvested. In fact, the poorest people in the world see being the resource harvested in this way a key socio economic aspiration. They are not willing to just use whatever little funds might come their way, but they will go in to debt to do it.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;p-8e41320&quot;&gt;The internet may very well be the most centralized thing in the history of the world. Not only that, but it has become a vehicle for accelerating centralization of wealth and power in an unprecedented way.&lt;/p&gt;
&lt;p id=&quot;p-9e965b6&quot;&gt;&lt;strong&gt;Internet centralization in numbers&lt;/strong&gt;&lt;/p&gt;
&lt;p id=&quot;p-1eaf2dc&quot;&gt;– Google controls almost half of all online advertising revenues&lt;br&gt;
– Most of Africa’s ASN are owned by two (non-african) companies&lt;br&gt;
– 36% of all IPv4 addresses are allocated to US&lt;br&gt;
– Just 5 companies own more than 75% of all available IPv4 addresses&lt;br&gt;
– Google Analytics is on 68% of top one million websites&lt;br&gt;
– The two top web browsers have a combined 80% market share&lt;br&gt;
– Facebook accounts for roughly half of all social media visits&lt;br&gt;
– 87% of smartphones use Android operating system&lt;/p&gt;
&lt;p id=&quot;p-fda51ef&quot;&gt;While just 8 men have more wealth than 50% of the world’s population, an average Indian pays 13 hours of average waged labor to access 1 gigabyte of data, accounting to about just 300 page-views. The way we have been trained to use the internet is a cause for even greater concern than the economic aspect of it.&lt;/p&gt;
&lt;div class=&quot;blog-table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Article table&quot; tabindex=&quot;0&quot;&gt;




















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Indonesia&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Price of one gigabyte of mobile data&lt;/td&gt;&lt;td&gt;US$2.84&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hourly wage&lt;/td&gt;&lt;td&gt;US$0.54&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Work needed to pay for one gigabyte&lt;/td&gt;&lt;td&gt;5 hours 16 minutes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p id=&quot;p-fac0184&quot;&gt;&lt;em&gt;What a gigabyte of data costs in hours of work, as shown in the original post.&lt;/em&gt;&lt;/p&gt;
&lt;p id=&quot;p-2793bb7&quot;&gt;A significant fraction of Indonesian internet users never leave Facebook, with 61% thinking that Facebook is the internet.  They pay over 5 hours of work per 1 gigabyte of data for doing that. The average bandwidth consumption for a web page have steadily increased over the years, and is currently roughly 3 megabytes per page-views Research have shown that up to 90% of this is  related with tracking and advertisement, and not the content the user is looking for. Online advertising lobbyists convince law makers that this is necessary to keep internet content free and condemn internet users for protecting themselves and their wallets from surveillance capitalism predatory by using ad blocker and other similar solutions, and refer to such concerned internet users as “freeloaders”.&lt;/p&gt;
&lt;p id=&quot;p-13eca71&quot;&gt;Recent examples show how internet content is of increasingly poor quality, and often more focused on generating advertising revenue than any other aspect. Clickbait headlines, not so long ago embraced only by sleazy affiliate marketers, are now the norm used by every advertising funded online media. While the ad powered internet is responsible for up to 10% of the global energy footprint, few have stopped to ask what is the true cost of this model for the internet users.&lt;/p&gt;
&lt;p id=&quot;p-4e629b0&quot;&gt;&lt;strong&gt;Decentralization Objective:  &lt;/strong&gt;A model for internet that is essentially about people and not about whatever it is that it’s about now.&lt;/p&gt;</content></entry></feed>