<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:podcast="https://podcastindex.org/namespace/1.0"><channel><title>dovydas.com blog</title><description>Personal blog of Dovydas Joksas</description><link>https://dovydas.com/blog/</link><language>en</language><atom:link href="https://dovydas.com/blog/index.xml" rel="self" type="application/rss+xml"/><podcast:guid>c4479ba4-49c7-51c1-99db-840af2394bf5</podcast:guid><item><title>Review: The Typographic Medium</title><link>https://dovydas.com/blog/the-typographic-medium/</link><pubDate>Mon, 02 Feb 2026 21:30 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://dovydas.com/blog/the-typographic-medium/</guid><description><![CDATA[
      
        <p><em><strong>Note:</strong> This blog post contains LaTeX typography that will not be rendered correctly by RSS readers. To read the blog post with its original formatting, please visit <a href="https://dovydas.com/blog/the-typographic-medium/" rel="noreferrer" target="_blank">https://dovydas.com/blog/the-typographic-medium/</a>.</em></p>
      
      <blockquote>
<p><a  href="https://uk.bookshop.org/a/7630/9780262045858" rel="noreferrer" target="_blank"><em><strong>The Typographic Medium</strong></em></a><br>
by Kate Brideau<br>
MIT Press, 2021, 304pp</p>
</blockquote>
<p>Most people have agonized over a font choice at some point—for a PowerPoint presentation, a website&rsquo;s hero section, or a PhD thesis<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>.
Even if we can&rsquo;t articulate why one option feels right and another doesn&rsquo;t, it all feels very important!
These feelings are not new.</p>
<p>In the 18th century, debates raged over <a  href="https://upload.wikimedia.org/wikipedia/commons/b/b4/Adobe_Caslon.png" rel="noreferrer" target="_blank">Caslon</a> and <a  href="https://upload.wikimedia.org/wikipedia/commons/1/16/BaskervilleSpec.svg" rel="noreferrer" target="_blank">Baskerville</a> (the latter derived from the former).
Benjamin Franklin, an advocate of Baskerville, once tore off a piece of paper and asked a proponent of Caslon to point out the flaws in Baskerville.
Easy enough: Lines too thin! Letters of unnatural proportions! Too painful to read!
Only to realize moments later that he&rsquo;d been critiquing Caslon all along.</p>
<p>The story, apparently a staple in typography texts<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>, raises interesting questions.
What makes up a typeface?
What makes them distinct?
How do they influence us?
Kate Brideau takes all of these up in <em>The Typographic Medium</em>—though the book&rsquo;s central argument eluded me.</p>
<p>The book is full of fascinating detail: the lack of copyright protections for typefaces<sup id="fnref:3"><a href="#fn:3"  role="doc-noteref">3</a></sup>, how language scripts shape typographic design<sup id="fnref:4"><a href="#fn:4"  role="doc-noteref">4</a></sup>, the competing demands of form and function<sup id="fnref:5"><a href="#fn:5"  role="doc-noteref">5</a></sup>, and so much more.
The focus on the word &ldquo;medium&rdquo; throughout the book implies something fundamental—yet I couldn&rsquo;t grasp what that is, or what makes it unique to typography rather than applicable to music, architecture, or engineering.
I&rsquo;d have trouble summarizing the book&rsquo;s thesis to someone else, though I could happily list the things I learned.
If you&rsquo;re interested in typography, you&rsquo;ll learn a great deal from it too.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>It&rsquo;s $\text{\small{Computer Modern}}$!&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>I guess every field has its essential anecdote or principle—something interesting enough to hook a layman. When I was in hardware engineering, one always had to mention <a  href="https://ourworldindata.org/moores-law" rel="noreferrer" target="_blank">Moore&rsquo;s Law</a> in every paper and presentation.&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>In the US, the shapes of typefaces are not eligible for copyright; however, the computer code that produces the vector outlines may be protected.&#160;<a href="#fnref:3"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>An interesting example is Han unification, an attempt by the authors of Unicode to map the character sets of Chinese, Japanese, and Korean onto a single set of characters—an understandable thing to do given the size of each set!&#160;<a href="#fnref:4"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>In the 1970s, West Germany realized that the standard typeface used for car plates was incredibly easy to modify, e.g., one could easily turn a &lsquo;P&rsquo; into an &lsquo;R&rsquo; with some black tape, and it was becoming a problem. <a  href="https://upload.wikimedia.org/wikipedia/commons/e/e8/Fe-Schrift-Manipulation.png" rel="noreferrer" target="_blank">FE-Schrift typeface</a> was designed to make such modifications much more difficult.&#160;<a href="#fnref:5"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description><category>book reviews</category><category>typography</category></item><item><title>Review: Everything and More</title><link>https://dovydas.com/blog/everything-and-more/</link><pubDate>Mon, 29 Dec 2025 12:45 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://dovydas.com/blog/everything-and-more/</guid><description><![CDATA[
      
      <blockquote>
<p><em><strong>Everything and More: A Compact History of Infinity</strong></em><br>
by David Foster Wallace<br>
Weidenfeld &amp; Nicolson, 2003, 336pp</p>
</blockquote>
<p>I bought this book in <a  href="https://www.openstreetmap.org/way/881418267#map=19/51.543860/-0.146816" rel="noreferrer" target="_blank">a second-hand bookshop</a> a few weeks ago.
It looked intriguing enough for me to pick up and flip through the pages, probably because of the mental connection to <a  href="https://uk.bookshop.org/a/7630/9780349121086" rel="noreferrer" target="_blank"><em>Infinite Jest</em></a> one naturally makes.
And also because I&rsquo;ve always found Wallace&rsquo;s non-fiction more interesting than his fiction.</p>
<p>First, on the intended audience. That&rsquo;s people who</p>
<ol>
<li>care enough about the history of infinity or philosophy of mathematics,</li>
<li>and have enough exposure to math to be able to follow simple proofs but ideally not enough to have rigorously dealt with infinite sets.</li>
</ol>
<p>I&rsquo;m in that target audience, though I&rsquo;m not sure how many others like me are out there.
If the cultural impact of <a  href="https://uk.bookshop.org/a/7630/9780465026562" rel="noreferrer" target="_blank"><em>Gödel, Escher, Bach</em></a> (which I feel is aimed at the same type of reader) is any indication, probably quite a few.</p>
<p>Next, the writing style.
I see how page-long footnotes can seem gimmicky<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>, but I&rsquo;ve never really minded them.
No concept can be naturally explained and no story can be naturally told in a fully linear fashion; footnotes are one of the few tools that writers have to present text nonlinearly.
Of course, <em>Everything and More</em> also has abbreviation tables, emergency glossaries, optional and required interpolations, all of which can seem somewhat silly but, in my view, are quite useful—especially in a book like this.</p>
<p>Now, the book subject itself: infinity—or, more accurately, its history.
The book is laid out loosely chronologically with occasional tangents (=footnotes/interpolations) to explain math concepts in more depth.
The destination is clear from the start though—Wallace opens by crowning Georg Cantor &ldquo;the most important mathematician of the nineteenth century&rdquo;, and everything that follows builds toward Cantor&rsquo;s theories of sets and infinities.</p>
<p>The general history—Babylonians, Greeks, Aquinas, Newton/Leibniz, Weierstrass—is interesting enough, but it&rsquo;s the last quarter of the book where he dives into the development of set theory (and its problems) that is the most exciting.
Wallace has the ability to reveal just enough information to make math feel like a good mystery novel.
When he explains the &ldquo;size&rdquo; of infinite sets, he shows that the set of real numbers is larger than the set of integers.
A curious reader may be tempted to ask about <em>other</em> sets smaller than the reals, but Wallace holds that back until much later, when you learn it was exactly the sort of question Cantor obsessed over, and that it resisted solution for decades.
[THE REST OF THE PARAGRAPH MAY BE CONSIDERED A MATH SPOILER] In fact, mathematicians eventually figure out that this statement can’t be proved or disproved from the standard axioms of set theory.
I was aware of Gödel&rsquo;s incompleteness theorems before, but this was the first time I encountered it not just theoretically, but through a problem that I understood.</p>
<p><em>Everything and More</em> occupies a strange place.
It&rsquo;s not quite popular math, but it isn&rsquo;t a textbook either.
Though you can (and I&rsquo;d say, should) treat it as a textbook—making notes and proving statements—if you want to truly learn something, not just in a pop-mathy/sciency way.
And if you’re enthusiastic enough about the subject, you&rsquo;ll find yourself caught up in this math mystery novel, trying to anticipate the next move.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Footnotes—although not page-long—in my PhD thesis were an obvious influence of Wallace and probably the only thing my viva examiner really disliked about my work<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Another idiosyncrasy of my writing is the heavy use of em dashes—I&rsquo;m glad I had published my PhD thesis before ChatGPT came out or I could be accused of something unholy. Also, yes, this is a footnote originating in a footnote—where else, if not in a DFW piece, could I get away with that?&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description><category>book reviews</category><category>mathematics</category></item><item><title>Let's Make Video Podcasting Open</title><link>https://dovydas.com/blog/lets-make-video-podcasting-open/</link><pubDate>Fri, 05 Dec 2025 13:55 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://dovydas.com/blog/lets-make-video-podcasting-open/</guid><description><![CDATA[
      
      <p>Over the last few months, we&rsquo;ve been working hard at <a  href="https://fountain.fm" rel="noreferrer" target="_blank">Fountain</a> to make the video podcast experience amazing and to show what&rsquo;s possible with open standards.</p>
<p>I break it all down in a blog post: <a  href="https://blog.fountain.fm/p/video-podcasts" rel="noreferrer" target="_blank">blog.fountain.fm/p/video-podcasts</a></p>

      ]]></description><category>podcasting</category></item><item><title>p-values</title><link>https://dovydas.com/blog/p-values/</link><pubDate>Thu, 29 Feb 2024 19:15 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://dovydas.com/blog/p-values/</guid><description><![CDATA[
      
      <p>I lead math workshops for second-year electronic engineering students at <a  href="https://www.ucl.ac.uk" rel="noreferrer" target="_blank">UCL</a>, and statistics has always been the most challenging topic to teach.
There is far too much misuse of frequentist statistics in academia (including academic publishing), medicine, and law.
Instead of making the students follow some <a  href="https://doi.org/10.1016/j.socec.2004.09.033" rel="noreferrer" target="_blank">ritual</a> for rejecting the null hypothesis, my goal is to make sure they get the <strong>fundamentals</strong> right.</p>
<p>There was a <a  href="https://psycnet.apa.org/record/2002-14044-001" rel="noreferrer" target="_blank">study</a> in 2002 where academics and students from psychology departments of several German universities were asked to fill out a questionnaire.
It consisted of 6 statements about <em>p</em>-values which the participants had to mark as true or false.
Second year in a row, I&rsquo;m performing a little experiment—at the beginning of the workshop, I present a similar scenario to my students and ask those same 6 questions.
Here&rsquo;s my version:</p>
<blockquote>
<p><strong><em>p</em>-value is the probability of obtaining a result at least as extreme as the one observed, assuming that the null hypothesis is true.</strong></p>
<p>You have a treatment that you suspect may cure covid.</p>
<p>You compare the means of your control and experimental groups, each of size 100. At the end of the experiment, 50 people in the control group and 60 people in the experimental group do not have covid.</p>
<p>You use a simple independent-means <em>t</em>-test to investigate whether there is a significant difference between the two groups.</p>
<p>You compute <em>p</em>-value of 0.01.</p>
<p>Are the following statements true or false?</p>
<ol>
<li>You have absolutely disproved the null hypothesis.</li>
<li>You have found the probability of the null hypothesis being true.</li>
<li>You have absolutely proved your alternative hypothesis.</li>
<li>You can deduce the probability of the alternative hypothesis being true.</li>
<li>You know, if you decide to reject the null hypothesis, the probability that you are making the wrong decision.</li>
<li>You have a reliable experimental finding that if the experiment were repeated a great number of times, you would obtain a significant result on 99% of occasions.</li>
</ol>
</blockquote>
<p>Results from today&rsquo;s workshop:</p>
<ol>
<li>0 true, 15 false</li>
<li>14 true, 1 false</li>
<li>0 true, 15 false</li>
<li>13 true, 2 false</li>
<li>13 true, 2 false</li>
<li>1 true, 14 false</li>
</ol>
<p>All six statements are, in fact, <strong>false</strong>.
The lesson is that people love to attach additional meaning to <em>p</em>-values and other statistical concepts, even when a clear definition is given.
It&rsquo;s absolutely not an issue that the students didn&rsquo;t get all the answers right—that&rsquo;s what education is for.
The problem is that even the people who are supposed to teach these things <a  href="/blog/dont-teach-statistics-in-high-school">often make the same mistakes</a>:






<div >
  <figure >
    <img
        
        src="https://dovydas.com/images/blog/significance.f99be532e339f3b669d615b87dba089d8f7610983b8e0e74152f5ce394ff15bc.svg"
        width="269.266"
        height="238.108"
        loading="eager"
        
        alt="A bar chart. y axis: &#39;Proportion that marked all 6 statements correctly (%)&#39;. x axis: 1) &#39;Academics teaching statistics (n = 30)&#39;: 20%, 2) &#39;Academics not teaching statistics (n = 39)&#39;: 10.3%, 3) &#39;Psychology students (n = 44)&#39;: 0%."
        
        
        >
        
  </figure>
</div>
</p>

      ]]></description><category>education</category><category>statistics</category></item><item><title>Podcasting 2.0</title><link>https://dovydas.com/blog/podcasting-2.0/</link><pubDate>Thu, 28 Sep 2023 09:55 -0500</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/podcasting-2.0/</guid><description><![CDATA[
      
      <p>Last Friday, I had a great time on the <a  href="https://podcastindex.org/podcast/920666" rel="noreferrer" target="_blank">Podcasting 2.0</a> show with <a  href="https://curry.com" rel="noreferrer" target="_blank">Adam Curry</a> and <a  href="https://podcastindex.social/@dave" rel="noreferrer" target="_blank">Dave Jones</a>!</p>
<p>We discuss <a  href="https://rssblue.com" rel="noreferrer" target="_blank">RSS Blue</a> (my podcast hosting company), programming languages, open standards for music hosting, monetization, OnlyFans (!), censorship, and the podcast industrial complex with its delusional growth projections and broken ad models.</p>





<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1440"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/podcasting-2.0/videos/video.ok.6825862505bc6506e878063aa46eff5328da22dd3e8b5600a0974044f07cb73a.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>

<p>Listen <a  href="https://podverse.fm/episode/_2JWX5m_V" rel="noreferrer" target="_blank">in your browser</a> or using your <a  href="https://podcastindex.org/apps?appTypes=podcast&#43;player" rel="noreferrer" target="_blank">favorite podcast player</a>!</p>

      ]]></description><category>podcasting</category><category>technology</category></item><item><title>Machine Learning With Analog Computers</title><link>https://dovydas.com/blog/machine-learning-with-analog-computers/</link><pubDate>Tue, 15 Aug 2023 09:55 +0300</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/machine-learning-with-analog-computers/</guid><description><![CDATA[
      
      <p><a  href="https://www.ee.ucl.ac.uk/~uceeadm/">Adnan Mehonic</a> and I contributed a chapter to a new upcoming edition of a textbook on nonvolatile memories.
Our part discusses scalability problems in machine learning and how they may be addressed with emerging memory technologies.</p>
<p>I am quite happy with how the chapter turned out.
We focused on the fundamentals, which, at least for me, is always the most fun to think and write about.
If you&rsquo;d like to read the chapter for free, there is some great news&mdash;we&rsquo;ve uploaded it to arXiv!
Click on the link below:</p>
<p><a  href="https://arxiv.org/abs/2308.03659" rel="noreferrer" target="_blank"><em>Emerging Nonvolatile Memories for Machine Learning</em></a></p>

      ]]></description><category>computing</category><category>machine learning</category><category>my papers</category><category>neural networks</category></item><item><title>Vietnam</title><link>https://dovydas.com/blog/vietnam/</link><pubDate>Tue, 18 Jul 2023 10:30 +0300</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/vietnam/</guid><description><![CDATA[
      
      <p>Earlier this month, I visited Vietnam for the first time in my life.
It&rsquo;s the most beautiful country I&rsquo;ve been to; hopefully, the photos and videos below can convey at least a small part of this beauty.</p>
<div >
<span >
  Jump to...
</span>
</div>
<div >
  <a href="#hà-nội" >
  
  
  
  
  
  <div >
    <figure >
      <img
          
          src="https://dovydas.com/blog/vietnam/images/1-hanoi/20.ok_hu_8402b561d96cfa6c.207b4146660de6b86ea3a9502b2893d5b23ec52454d8721f498e3a824c77d2f1.webp"
          width="1920"
          height="1440"
          loading="eager"
          
          
            
            style="background-color: #393832;"
          
          >
          
    </figure>
  </div>

  <span >
    Hà Nội
  </span>
  </a>
  <a href="#tràng-an" >
  
  
  
  
  
  <div >
    <figure >
      <img
          
          src="https://dovydas.com/blog/vietnam/images/2-trang-an/12.ok_hu_131e2a076d8b9364.7d8d6be48adc118d3c424e11167f90355354d59bf1539b7064fac7df395c62f2.webp"
          width="1920"
          height="1440"
          loading="eager"
          
          
            
            style="background-color: #39412f;"
          
          >
          
    </figure>
  </div>

  <span >
    Tràng An
  </span>
  </a>
  <a href="#tuyet-tinh-coc" >
  
  
  
  
  
  <div >
    <figure >
      <img
          
          src="https://dovydas.com/blog/vietnam/images/3-tuyet-tinh-coc/4.ok_hu_8df6e3567519e9c0.cd51643513b85baefd12605f183e70c7ee099fcb0da58d651459179b30d0b311.webp"
          width="1920"
          height="1440"
          loading="eager"
          
          
            
            style="background-color: #42462d;"
          
          >
          
    </figure>
  </div>

  <span >
    Tuyet Tinh Coc
  </span>
  </a>
  <a href="#tam-coc" >
  
  
  
  
  
  <div >
    <figure >
      <img
          
          src="https://dovydas.com/blog/vietnam/images/4-tam-coc/1.ok_hu_82299c82e758a9c2.9a079582658f386389d60c380255ce3ec414162fbe27bac99e2dbe878c989253.webp"
          width="1920"
          height="1440"
          loading="eager"
          
          
            
            style="background-color: #373c32;"
          
          >
          
    </figure>
  </div>

  <span >
    Tam Coc
  </span>
  </a>
  <a href="#thung-nang" >
  
  
  
  
  
  <div >
    <figure >
      <img
          
          src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/6.ok_hu_6db79dbb36431dc4.efb8e6b3dde4e8376871585703ec09fa02d7e4f04160a3e65c302cc75b512246.webp"
          width="1920"
          height="1440"
          loading="eager"
          
          
            
            style="background-color: #42473f;"
          
          >
          
    </figure>
  </div>

  <span >
    Thung Nang
  </span>
  </a>
  <a href="#hang-mua" >
  
  
  
  
  
  <div >
    <figure >
      <img
          
          src="https://dovydas.com/blog/vietnam/images/6-hang-mua/1.ok_hu_d136d00be2f9f9ae.f70d7f3859b8f443092a9e1553e7315abf23bedb379edfce9405f37ce5950169.webp"
          width="1920"
          height="1440"
          loading="eager"
          
          
            
            style="background-color: #6cacea;"
          
          >
          
    </figure>
  </div>

  <span >
    Hang Mua
  </span>
  </a>
  <a href="#hạ-long-bay" >
  
  
  
  
  
  <div >
    <figure >
      <img
          
          src="https://dovydas.com/blog/vietnam/images/8-halong-bay/10-extra.ok_hu_6ad860417325297d.7a9528cf4aa2d07da502628d01115553d5dcc22aa6875aa026651fbc1a40bfe8.webp"
          width="1920"
          height="1440"
          loading="eager"
          
          
            
            style="background-color: #b2b6b3;"
          
          >
          
    </figure>
  </div>

  <span >
    Hạ Long Bay
  </span>
  </a>
  <a href="#hội-an" >
  
  
  
  
  
  <div >
    <figure >
      <img
          
          src="https://dovydas.com/blog/vietnam/images/10-mr-xe/2-b-extra.ok.107c0dfdcb9616c294d73dd6269d1245e2631dafc712f1b7d11e23a5c5e201ef.webp"
          width="1440"
          height="1080"
          loading="lazy"
          
          
            
            style="background-color: #383738;"
          
          >
          
    </figure>
  </div>

  <span >
    Hội An
  </span>
  </a>
</div>
<h2 id="hà-nội">Hà Nội</h2>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/21.ok.0ef7c4aeb7af23eafd73eb8b6edb798b24c12d68fef12f4fb909e40a4393ffa0.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3a3733;"
        
        >
        
        <figcaption >Hà Nội—like many cities in Vietnam—is charmingly chaotic.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/20.ok.d50804a8ba20b700000ff6c2d529c9da1a364ea5c097a559e20c439f52134ed1.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #383732;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/23.ok.605665cbba9b62780a54c857639a432cd4bee2a45342a211ba3753dd889fbac0.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #babcbc;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/27.ok.09ecc87e4c0fd824c551832a78cff7fff838bc4b699d37b996d5e9fd025a7468.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #c7c4c1;"
        
        >
        
        <figcaption >Everyone&rsquo;s a millionaire in Vietnam.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/1.ok.7d36c3eafed84d2e9bf13b6b476344e9fb1f5655288e1893383ff18d66c4d506.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #4d3716;"
        
        >
        
        <figcaption >My first meal in Vietnam. Trying to avoid gluten has been relatively easy—noodles are everywhere, but they&rsquo;re typically made from rice.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/5.ok.ea299f74d27fc275b6d390546c4323bc418bef6ed7e5c30404840d9eb91439ef.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #363336;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/10.ok.7ccdcf035c14df86f4202b2aba096dbd9f20ae6a1ad32d61c388216fe50afbe9.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #4e493a;"
        
        >
        
        <figcaption >I tried my luck too. Fortunately, my <a  href="https://www.youtube.com/watch?v=5hlUEj9SCwE" rel="noreferrer" target="_blank">epic fail</a> wasn&rsquo;t captured on camera.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/1-hanoi/11.ok.ad25f543727134c9fe6bda507feb5d9e7d92d81067b5db42163e5c66e489dc4a.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Had an amazing lunch at this small, family-run restaurant.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/12.ok.e7444feba8724ac2f329921eccb5f12280671e35c0fa1ed1bb2ce8947df8df5a.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #4e3e20;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/14.ok.30180544ae6119b6a629bb072c2931811b43fe9f11abea994cf516843c3a1076.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3c402d;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/15.ok.1673c28323a2d88971a75e3bb68438acdd79365fb66b004531199d09d9b6d3d6.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #414834;"
        
        >
        
        <figcaption >It rained for 20 minutes. This was the only rain I experienced in Vietnam.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/16.ok.1703cc711d0db73506afc44db232f8c48a3913620e0124f059a1d690ede68853.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3f3d3a;"
        
        >
        
        <figcaption >Hỏa Lò Prison, AKA <em>Hanoi Hilton</em>.</figcaption>
        
  </figure>
</div>

<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/17.ok.6108531a556dd58271ec119c7eeaf13d61681a454862bff560b57f30491480d7.webp"
        width="1440"
        height="1920"
        loading="lazy"
        
        
          
          style="background-color: #3e3931;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/18.ok.a146293b2d07d0cf50b857a7a3615d454e155bc75492f3de79cecfeed635b4f9.webp"
        width="1440"
        height="1920"
        loading="lazy"
        
        
          
          style="background-color: #c5c3be;"
        
        >
        
        <figcaption >John McCain.</figcaption>
        
  </figure>
</div>

</div>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/19.ok.375374b55b7a87f869b69e1ec4e1d599f9ad013c139f21f52f80ccefc818a0b7.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3a3d33;"
        
        >
        
        <figcaption >The imprints of the French colonial era (<a  href="https://en.wikipedia.org/wiki/St._Joseph%27s_Cathedral,_Hanoi" rel="noreferrer" target="_blank">St. Joseph&rsquo;s Cathedral</a>).</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1080"
        height="1920"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/1-hanoi/22-a.ok.a4839d1496e7cb6cc81fded44bc4b8181baa2aa670766703514b5e8ea364c380.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >The people gathering here are the most powerful, influential, sexiest people in Hà Nội. I even got too excited at 0:21.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/22-b.ok.0e0d76a45b124fc2b49b0ae5a371717230cebd602af5d30531679f79c1d31126.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #50483c;"
        
        >
        
        <figcaption ><a  href="https://en.wikipedia.org/wiki/Egg_coffee" rel="noreferrer" target="_blank">Egg coffee</a>—a Vietnamese specialty.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/24.ok.02e9874283a801fdd3bb433b7202dea515590597b8dd9d20c65042703f737ed3.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #2c2b29;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/1-hanoi/3.ok.68c9b08b3016e28215648722769be3c420862ff7c7696ab865e0a4262506d480.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #312f30;"
        
        >
        
        <figcaption >Hà Nội Night Market.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/1-hanoi/2.ok.8659308ae18c1cb0f50ff01e073224661aa94c8bdf530756de5b8e037b6aa5f3.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>

</div>
<h2 id="tràng-an">Tràng An</h2>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/0-a.ok.675d97d1a5271dd9bb4fc3c2f574a1f1b6e60dfc167ddc024704f3fdcd7011f6.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #b9c9dc;"
        
        >
        
        <figcaption >Spending two days in Ninh Bình province has probably been my favorite part of the whole trip. The nature here is so different from anything else I&rsquo;ve seen before.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/2-trang-an/0-b.ok.c7bfcc72ce49b8eb9242cc3fea65ee07cbb3e9a70832f6e994d2de64dc1cac8f.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/1.ok.fb4b500d405f5661c5517567c5b75181eb898ad765c08a1e408fbe4b1cc04808.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3b492d;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/4.ok.520039966334a01b55f5651f1d9032c65bed2b5b10f9fee064885ad29f271ba7.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #2f2b2b;"
        
        >
        
        <figcaption >Linda is an amazing tour guide. She organised my travels in Northern Vietnam, including Hà Nội, Ninh Bình, and Hạ Long Bay. Whether you&rsquo;re travelling alone or with a group, Linda is the best person if you want to explore around Hà Nội; you can <a  href="https://www.facebook.com/kimphuong.phamluong.3" rel="noreferrer" target="_blank">reach her on Facebook</a>.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/2.ok.54938d21626cd078d4f0cca665c0ae8e8babff0a58804e2927465accbde4ec16.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3d4b33;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/3.ok.b39c35bec9f863e3322606c91fc2902558f77d5940637031f8c7cd831df2e30a.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3d462d;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/5.ok.820a7eefb102902f81f6d13dbe6aab98bbc16b097b1be13eef832badcb949fd3.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #374130;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/6.ok.1d62b4ca7b1bf810be87c3f75fb0d1cd5ee39e052233bc0bf4c53a2c78b4281f.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #444d39;"
        
        >
        
        <figcaption >Entering a 1-km-long cave.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/7.ok.9e12a2731d8d5d1e1bb51ffe37fc39df8dcf928f99700349f196100d0c4b403c.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #130c0a;"
        
        >
        
        <figcaption >Inside the cave. Yes, there are bats.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/2-trang-an/8.ok.2a1b44f900b1e95e529bae05220632767c891685d1573176bcce597dc9706be4.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >And leaving&hellip;</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/9.ok.c16c619d736735a2728db79c3366b165e1c4c40974e41338a9dbae364ce24f32.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #a2a8a7;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/10.ok.0db7ba89270b5a2d58056e513b4e66dcd9f739a500987aad2b8bc50b158aaca0.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #45483f;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/11.ok.b68bd3a4beb427c089b967c4b84409ccd08a31dbfe63f1d8c81bdc7b677aeee0.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3c4137;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/12.ok.05dd330dbc642f792ed6b8098b16bd80e7a5a1b861dcea37cf1f877d4d252d5a.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #38402f;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/2-trang-an/13.ok.31a2995cd6e0afe8d1d9560658ba0b4a413245d9e89f745f1637c4c2c57a3d8d.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #4e4638;"
        
        >
        
  </figure>
</div>

</div>
<h2 id="tuyet-tinh-coc">Tuyet Tinh Coc</h2>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/3-tuyet-tinh-coc/1.ok.2933ff441f6fc9d01cf49e561ffc8c2a54e263e552051b621551048985483c5a.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #434b2f;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/3-tuyet-tinh-coc/2.ok.9c1fd0c090669820778873be2c2aa607be2cc83eb97a3091583dd09b9b4684b9.webp"
        width="1200"
        height="1600"
        loading="lazy"
        
        
          
          style="background-color: #414834;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/3-tuyet-tinh-coc/3.ok.c67730a96317d687e9ff5b09a1ebb6013e39e846e928e2878bb982c07021d19c.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #cbcdce;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/3-tuyet-tinh-coc/4.ok.0520bd1bfe2d2691a300a9d360e1e84927b58e72cf474292c81f18e8abbb3c58.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #41442d;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/3-tuyet-tinh-coc/5.ok.ec87077f3b55f50647607a95a083a9070f3a65670cd47b87b3c2e31f6ad8123e.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3a422c;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/3-tuyet-tinh-coc/6.ok.b065ed31905e4639fdfb14b10ae0e094a2632b8563e766813828da181703bfb9.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>

</div>
<h2 id="tam-coc">Tam Coc</h2>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/4-tam-coc/1.ok.9dc479f4b82dea9c9484ee0546101e8d1f898664da1198cc6d8446c5431245f1.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #363b31;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/4-tam-coc/2.ok.6d83513a54a672d51ec04e40129df6dd76f9fe72bdc42ec1f22daae9e2f5d8c2.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #b5b3b0;"
        
        >
        
        <figcaption >Decided to go on an evening bike ride!</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/4-tam-coc/3.ok.efce8ab27bda42c39d7bf98ddfba8d284a9097eda8d508391822985584b346e3.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #414436;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/4-tam-coc/4.ok.cdc4d428699dc207ed43a8ff156d6f3bc5713b5f3f36edbfe0613911ef4c1551.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #bed0d5;"
        
        >
        
        <figcaption >Rice fields.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/4-tam-coc/5.ok.f72d48ebd42a5aa91c0ad92b8de4177771a0e1f4356dc6af3de6dfc577cd633d.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #474940;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/4-tam-coc/6.ok.091559faea98068046b99305eb5f9364786ca18d2b990eb92cb2d91c2343fa0e.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #535548;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1080"
        height="1920"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/4-tam-coc/7.ok.8e6d25ad4565c15a925c5256d68dea6c9901515b4543a2b721d17d8f948a4ccb.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >We&rsquo;d come back to this place in a rowboat the following day.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/4-tam-coc/8.ok.c770e38dafe6f9d8658ddf5aaf5f289c258c1ca2d373e55d93fa0e504ff18396.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #394231;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/4-tam-coc/9.ok.9bf307e0345e218c42fcfacd1c78884de66821f58ed84e4ee17989e46ef830b0.webp"
        width="1440"
        height="1920"
        loading="lazy"
        
        
          
          style="background-color: #b9ae9e;"
        
        >
        
        <figcaption >Hai, doggy!</figcaption>
        
  </figure>
</div>

</div>
<h2 id="thung-nang">Thung Nang</h2>
<div >





<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/1.ok.75fca4264ca28e87cedca9867ae39fb9e01233b0ff70417f3602499392f37bcc.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >We went on a boat trip early in the morning to see the water lilies. Thung Nang is a lot less touristy than Tràng An&mdash;two hours spent here were incredibly peaceful.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/2.ok.2c3edda2b0e7332960e161e7599435a4312c8108e09e84b2b31ea0983e7709f1.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/3.ok.031af22cb518198dadc7c7591d524d75cbebab3eae08c234747b85fc9a94cc31.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #384023;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/4.ok.e66449c64ad372a02786a50f1729509fbb9d8d1785722f34839ff68474d31b56.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >A fisherman.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/5.ok.c3a7f003cdb72d817cfa7c89c1c5c2d91c68810209bfb905572d78613d219801.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #37392c;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/6.ok.483f285cd17d6f53de9119b27d424d9ecefdbd390f8c7637f693d34a403266d7.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #41463e;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/7.ok.e69cd09a5c018fb4160ea8468c30537d2148e5751c779a1e7eb432fa7a5ea95f.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Probably my favourite video captured in Vietnam.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/5-thung-nang-boat/8.ok.94c67297107e7ef2293d852d36f820203ab173eb5c16868aac72093a8c5d9690.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #323c2e;"
        
        >
        
  </figure>
</div>

</div>
<h2 id="hang-mua">Hang Mua</h2>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/6-hang-mua/1.ok.d70325ee6063701783438f2e8b150132330c27cf0d163b61c5cfc365853fe3e6.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #6cacea;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/6-hang-mua/3.ok.fac451e8c88664a697d0dfdfd9ca3e89b1795b97fea418e16dc15624083c7b72.webp"
        width="1920"
        height="1151"
        loading="lazy"
        
        
          
          style="background-color: #3b4c34;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/6-hang-mua/4.ok.7e8cc31c63a18d527100e4e7a1fe8a39120f5d79fcbd918f686c22fd968007a2.webp"
        width="1920"
        height="1087"
        loading="lazy"
        
        
          
          style="background-color: #3b4831;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/6-hang-mua/5.ok.c2729fe43469a40b3d8d74e3c6f1f99e213618b0a668b4e0af73a7ab71350735.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #3a412c;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/6-hang-mua/6.ok.b0c848ed67a3b99c023a113b7c94c3b6f44a2141aefeb646b300695d63c5ecd9.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #333f28;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/6-hang-mua/7.ok.69aa8203add7e8a0ee57e77dae61ad6df5033a1ceae274c64464674dc736821b.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #303420;"
        
        >
        
        <figcaption >Going up&hellip;</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/6-hang-mua/8.ok.e29993f9bdd92a9c7140a559e3069d40d92e1ed10cbf80d64b41190421d0e6ce.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #b2cfec;"
        
        >
        
        <figcaption >View from the top.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/6-hang-mua/9.ok.ef5a633eb30ebb279a785d46aabd2b0d226b1d9f822d046819870e17373f277b.webp"
        width="1443"
        height="1920"
        loading="lazy"
        
        
          
          style="background-color: #443b34;"
        
        >
        
        <figcaption >Apparently, going up and down the stairs in 34°C weather is hard.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/7-last-supper/1.ok.e335ec6c2de82596c13d5ec81d77b9d842cf9f12ed5946b46258e9c15579629c.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #403838;"
        
        >
        
        <figcaption >One last meal with Linda and the driver.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/7-last-supper/2.ok.0ec6c19e9fdeec90cff2ffa5553d6d297f2a68ed0ae154bd8989c3c4f47b756b.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #403831;"
        
        >
        
  </figure>
</div>

</div>
<h2 id="hạ-long-bay">Hạ Long Bay</h2>
<div >





<div >
  <figure >
    <video
        controls
        
        width="1080"
        height="1920"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/8-halong-bay/1.ok.13c887f5a1a8005e3da82ecb0f418c67e4df02b76884586f547b85c733cf3d5e.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Whenever I stay at the White Lotus, I always have a memorable time.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/8-halong-bay/2.ok.09f7b94d7e74f1e1ea39f17abffba14147b837c9ee55d247d0bfb379a09647c4.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/8-halong-bay/3.ok.7f2be4723cf227f8af9fedf6370b87e150d8128257bfc6d0d5a402346b354263.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/8-halong-bay/4.ok.6ec2afb944a05219dfaf4f2b7e07751637f405dad919d22c2a45864d91b3535c.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/8-halong-bay/5.ok.de03f82bc0e37397d6e39216313c2724dc20b07b0353dffe6810bd9694d1d922.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #2c3328;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/8-halong-bay/6-a.ok.14e69024be2650c3b1ff82c771e6c0aecc7ffe83e7595501a94e3218287e7284.webp"
        width="1920"
        height="1440"
        loading="lazy"
        
        
          
          style="background-color: #393d2f;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/8-halong-bay/6-b.ok.2a12003aa6d817a600cce2dc72341d52b33b28cac3ade624d25922b9318ed65b.webp"
        width="1920"
        height="1443"
        loading="lazy"
        
        
          
          style="background-color: #b1b6c0;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/8-halong-bay/7.ok.d5722444eb6b695d00d66ea308154a7f750125cdaff0418ff517302e8a3e8c58.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/8-halong-bay/9.ok.89e3469fe59c7aaff02324ca79d0866c5ffbd151fd8f77727254d31d35093ec6.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #a4b8c9;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/8-halong-bay/10.ok.c9bf01695b491948907b2b0c638e49e3de816444cc2d3c9c252c25310ac5a449.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #afb3b2;"
        
        >
        
  </figure>
</div>

</div>
<h2 id="hội-an">Hội An</h2>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/0.ok.2214d6daf1926d1d12ede4b7e2b51bce8880b9135b512a90cf5f7bebd32fbdc3.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #393d35;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/1.ok.b5f13404f9d9e3d0781db5c4e1b4e79832ad0cda054a7c390ed83ffe4e83c195.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Hội An Market.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/2.ok.bcc7ae556dc0da41d426e15e8ea0016037d5157d6d806fb99722bf22ce65d6bb.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/4.ok.af8b3a15cd7a62949895331ec3e31be68d39838e683bd5456b5cc298523b6427.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Stall E034, which Anthony Bourdain once ate at.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/5.ok.05e88404586644ab583e5e76c1a5becb39d9af1132bcff7f5e4da072b449caa8.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #403c31;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/6.ok.908d5cce2aca6b07bb4810eccb09e22b5257c507841c9e05cb5f82071bd1533b.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #37382a;"
        
        >
        
        <figcaption >Stall E047.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/7.ok.bfc325267104d19f4303c574bce3a7b78895a14219892815ff98b4afc3ad44ef.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #3d3e34;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/9.ok.c406e1edb07d9420dde7225c4829c6b2de53e88f921662950789277652e3dd89.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #424344;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/10.ok.658e848c90b3121d9931df7f1127ed4a042f81136d3fa38d47227436fdd8d8d9.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/11.ok.a1adc39751bb4717b83dc232d4532d0c6c100dd120911e52bcdec3cc46391d4f.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/12.ok.d7ec1eebcf921dbfcacdcbafa7136da7c3968679f3d3f09813780500caf62881.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #2a2619;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/14.ok.a0d12d28aeb2ab5d1bc31731b2cb1627f7b11534f2f2f50f0eccdde0449e9e3c.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #56574a;"
        
        >
        
        <figcaption >Not enough food so went on <a  href="https://www.eathoian.com" rel="noreferrer" target="_blank">a food tour</a>!</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/13.ok.48f95e5afd6483d83d852cd67a9a9a840be7cb4c7beef18bcb9252616974aa9c.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #cbc3c2;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/15.ok.efd780c3c3675e0ca011470b1d3c71b1ffdd559b5ab0310c01e88c9c8a6b124d.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/16.ok.1a747fa32664d76f411b3ca041b043493e0d9172658086a76b588771161108bb.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/17.ok.e5f4e216592f3b1500114aa12b11f2c48c49bbb9f8488216c2c98dd81db2d677.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >The making of a dumpling.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/18.ok.da514f9110c03318aab8db0bf6dfa3f2e5e5a4ac511df6853b67cd6b7863e1ce.webp"
        width="1080"
        height="1920"
        loading="lazy"
        
        
          
          style="background-color: #412727;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/19.ok.4af2be5f786a05beea59ed21b33c0bcd5d183e47c0fd7115b2cdb5e086a218e4.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #434136;"
        
        >
        
        <figcaption >Back to Hội An Market; this time, Stall E027.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/20.ok.a99e47fe6eeb29c2308ae45c5ac475b02bae50a660105bc0e0590a72b91cd379.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #403830;"
        
        >
        
        <figcaption >I also went back to E034 to try rice dumplings with 1) green beans and 2) prawns. This probably was my favourite meal in Vietnam.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/21.ok.df85fce2b210a5bfd67697c83f0112298a0e8220468828c792b3f5db6355f66d.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #3e332a;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/22.ok.20e6ef5c7ba53d3e977219c3ed9db50757e90fbffe0b1dce0036a78114812ebc.webp"
        width="1080"
        height="1920"
        loading="lazy"
        
        
          
          style="background-color: #343239;"
        
        >
        
        <figcaption >Old propaganda posters are sold everywhere. Most are prints, but there are a few shops that sell the originals as well.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/23.ok.f503a22fc9fdf8a7cb05f493f5a48dae323afe87fb7bc7fbc5a43a17e56f3a5f.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Hội An Memories Show.</figcaption>
      
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/24.ok.309e836db3da7b5652697686744c594895430f28bc3685e13357bfe8983f16b7.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #100d1f;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/25.ok.c78f671f3103e2fdbff9ea8b170a2c581de6095403a719be4021c0de704382a5.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #99acbd;"
        
        >
        
        <figcaption >An Bang Beach.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/26.ok.51296ef2d672f65fea90e73a68fc567ad2b5abcdedcab1e770c9fc53db433d9e.webp"
        width="1080"
        height="1920"
        loading="lazy"
        
        
          
          style="background-color: #413f3a;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/9-hoi-an/27.ok.0ecb166825381ea5ed909b7488fbc4a5604532a945467d5d4ef7287e2020012d.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #353227;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/28.ok.9514b33e24c45f0ddaa5f02c5211d56c18f0a14c96a1bacd44bdac25567aae1b.mp4" type="video/mp4">
    </video>
      
  </figure>
</div>






<div >
  <figure >
    <video
        controls
        
        width="1080"
        height="1920"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/9-hoi-an/29.ok.4231592bc92f7072ac9df63bccef2c934f7d5c88d8a409e815bab90588b60804.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Lots of dangerous animals in Vietnam.</figcaption>
      
  </figure>
</div>

</div>
<h3 id="tailored-suit">Tailored suit</h3>
<h4 id="day-1">Day 1</h4>





<div >
  <figure >
    <video
        controls
        
        width="1920"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/10-mr-xe/1.ok.be1ada32d958f3c060257e129299aa69d7a55eaa58de9e8604ace27804340a16.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Hội An is known for its tailors. Mr. Xe is among the most popular. I decided to order a suit, two shirts, and a pair of shorts.</figcaption>
      
  </figure>
</div>

<h4 id="day-2">Day 2</h4>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/10-mr-xe/2-b.ok.11119b4c6518f3893d5a0d763ba0be06f228d26365443fb462cc78e40fcb515a.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #363638;"
        
        >
        
        <figcaption >The first version of the suit was ready in 30 hours!</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/10-mr-xe/3.ok.23e804ff3b666e494766866365691c01e17d38fd3dc098cb41c7dd056515cdba.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #333231;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/10-mr-xe/4.ok.1b7b4cd9342a0c6c32a7cd8ef95ba83181c6f090bf68efebcf8aba2f7a921d5e.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #333234;"
        
        >
        
  </figure>
</div>

</div>
<h4 id="day-3">Day 3</h4>





<div >
  <figure >
    <video
        controls
        
        width="1140"
        height="1080"
        preload="metadata"
        
        >
        <source src="https://dovydas.com/blog/vietnam/images/10-mr-xe/6.ok.0cef3c4477f38aedc74b202d10767ac398902562a1d96db57a995861919b6792.mp4" type="video/mp4">
    </video>
      
      <figcaption
          >Final fixes.</figcaption>
      
  </figure>
</div>

<h4 id="day-4">Day 4</h4>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/10-mr-xe/7.ok.db16b7bb1f80f561de0dcd278d95fa54d00d4108b89f3b3575fb76a13932c283.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #39372a;"
        
        >
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/vietnam/images/10-mr-xe/8.ok.9bc23083e581b550e411742a70c9e7af130b2f8da1c5adc61b9715f7619e71ba.webp"
        width="1920"
        height="1080"
        loading="lazy"
        
        
          
          style="background-color: #b0afaa;"
        
        >
        
  </figure>
</div>

</div>

      ]]></description><category>travel</category></item><item><title>Rename Von Neumann Architecture?</title><link>https://dovydas.com/blog/rename-von-neumann-architecture/</link><pubDate>Sun, 11 Jun 2023 17:05 +0100</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/rename-von-neumann-architecture/</guid><description><![CDATA[
      
      <p>The following from <a  href="https://uk.bookshop.org/a/7630/9780465026562" rel="noreferrer" target="_blank"><em>Gödel, Escher, Bach</em></a> caught my attention:</p>
<blockquote>
<p>Unlike any previosuly designed machine, [<a  href="https://en.wikipedia.org/wiki/Charles_Babbage" rel="noreferrer" target="_blank">Babbage&rsquo;s</a> <a  href="https://en.wikipedia.org/wiki/Analytical_engine" rel="noreferrer" target="_blank"><em>Analytical Engine</em></a>] was to possess both <mark>a &ldquo;store&rdquo; (memory) and a &ldquo;mill&rdquo; (calculating and decision-making unit)</mark>.
Babbage had a vision of numbers swirling in and out of <mark>the mill under control of a <em>program</em></mark> contained in punched cards . . .</p>
</blockquote>
<p>What is this if not the <a  href="https://en.wikipedia.org/wiki/Von_Neumann_architecture" rel="noreferrer" target="_blank">von Neumann architecture</a>?</p>
<p><a  href="https://en.wikipedia.org/wiki/Allan_G._Bromley" rel="noreferrer" target="_blank">Allan Bromley&rsquo;s</a> <a  href="https://doi.org/10.1109%2Fmahc.1982.10028" rel="noreferrer" target="_blank">paper</a> on this subject makes the same connection:</p>
<blockquote>
<p>The development of the multiplication algorithm played an important role in the history of the Analytical Engine because it led Babbage to the invention of the anticipating carry to speed the addition of the partial products.
The complexity of the anticipating carry apparatus led him in turn to the clear <mark>separation of the functions of the mill and store</mark>, a concept that <mark>did not clearly emerge in modern computers until the work of von Neumann</mark>.</p>
</blockquote>
<p><a  href="https://en.wikipedia.org/wiki/John_von_Neumann" rel="noreferrer" target="_blank">John von Neumann</a> was a genius, but unless I&rsquo;m overlooking something, it seems fairer to say that modern computers use <em>the Babbage<del>von Neumann</del> architecture</em>.
Of course, you have to take the good with the bad, so maybe <em>the Babbage<del>von Neumann</del> bottleneck</em> is, too, a more appropriate term.</p>

      ]]></description><category>technology</category><category>computing</category></item><item><title>It Doesn't Matter Which Text Editor You Use</title><link>https://dovydas.com/blog/it-doesnt-matter-which-text-editor-you-use/</link><pubDate>Wed, 15 Mar 2023 11:30 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/it-doesnt-matter-which-text-editor-you-use/</guid><description><![CDATA[
      
      <p>Obviously, <a  href="https://neovim.io" rel="noreferrer" target="_blank">Neovim</a> is the best text editor.
But in 2023, it mostly doesn&rsquo;t matter.
The power of a text editor is in its plugins, and now that we have
<a  href="https://microsoft.github.io/language-server-protocol" rel="noreferrer" target="_blank">Language Server Protocol (LSP)</a>, you should be able to achieve the same functionality everywhere.</p>
<h2 id="the-old-way-of-doing-plugins">The old way of doing plugins</h2>
<p>Suppose you want to write a plugin that indents <a  href="https://www.rust-lang.org" rel="noreferrer" target="_blank">Rust</a> code in <a  href="https://www.gnu.org/software/emacs" rel="noreferrer" target="_blank">Emacs</a>.
Well, you&rsquo;ll probably need to learn <a  href="https://www.gnu.org/software/emacs/manual/html_node/elisp" rel="noreferrer" target="_blank">Elisp</a>, dialect of <a  href="https://lisp-lang.org" rel="noreferrer" target="_blank">Lisp</a> that Emacs is written in.
It will take some time to learn the language, implement parsing, and figure out how to programmatically manipulate text inside Emacs.
But it&rsquo;s doable.</p>
<p>Suppose that after you&rsquo;ve written the plugin, an intellectual friend of yours asks if he could use it in <a  href="https://www.vim.org" rel="noreferrer" target="_blank">Vim</a>.
Well, not right away.
Although the parsing part can be reused, you need to understand how to programmatically manipulate text in Vim.
Even though the functionality of the plugin is the same (inserting or removing spaces at the beginnings of lines for various indentation levels), this is probably done differently in Vim and Emacs.
But, again, it&rsquo;s doable.</p>
<p>If you have <var>n</var> text editors, you will need to write <var>n</var> versions of the same plugin.
And if you have <var>m</var> different plugins (say, for indenting code in <var>m</var> different languages<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>), you will need to write <var>m</var> × <var>n</var> variations of plugins to cover each language and each text editor.</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/it-doesnt-matter-which-text-editor-you-use/images/m-times-n.313e47f6208a02a10bbcff86775c9c406623444787822524045f110cb9f1caac.svg"
        width="299.88689"
        height="400.74641"
        loading="eager"
        
        alt="Complete bipartite graph with m vertices (programming languages) on the left and n vertices (text editors) on the right. There are m × n edges between the vertices, denoting all plugin implementations."
        
        
        >
        
  </figure>
</div>

<h2 id="the-lsp-way">The LSP way</h2>
<p>The key thing to recognize here is that the functionality of a given plugin is the same across all text editors.
So maybe there is no need to repeat the same work over and over again?</p>
<p>LSP is an attempt to standardize all the things that a text editor might be able to do: insert text, find references, rename variables, display errors, etc.
Any editor that supports LSP can be interacted with using the same commands instead of editor-specific languages or configuration files.
Then, a given plugin only needs to be implemented <em>once</em> by using <a  href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#languageFeatures" rel="noreferrer" target="_blank">features provided by LSP</a>; it will work in <em>any</em> text editor that supports LSP.</p>
<p>If you have <var>n</var> text editors, you will only need to add the support for LSP in each of them <em>once</em>.
Similarly, as mentioned before, each of the <var>m</var> plugins only needs to be implemented once by following LSP specification.
Although the things being implemented are different, we can essentially say that we reduced the complexity of the problem from <var>m</var> × <var>n</var> to <var>m</var> + <var>n</var>.</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/it-doesnt-matter-which-text-editor-you-use/images/m-plus-n.b302ce88a9d4cc16463e06a0843b23afbc600cc7579df3b0db5883c6526061b9.svg"
        width="469.22014"
        height="356.80794"
        loading="eager"
        
        alt="A graph in which m vertices (programming languages) are connected to a vertex representing LSP and n vertices (text editors) are connected to the same vertex. Inside the LSP block, some features are mentioned: inserting text, finding references, renaming variables, and displaying errors."
        
        
        >
        
  </figure>
</div>

<h2 id="so-what">So what?</h2>
<p>Unlike most standards (see below), LSP seems to have succeeded.</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/it-doesnt-matter-which-text-editor-you-use/images/standards.ok_hu_5ef05d4663924fe0.b97793fd0aa3f2f49c258b3e384a73998f9b73de6e24fab2bd16910153858806.webp"
        width="1000"
        height="567"
        loading="eager"
        
        alt="XKCD comic: https://xkcd.com/927"
        
        
        >
        
  </figure>
</div>

<p>These days, most of the serious text editors support LSP&mdash;indeed, it&rsquo;s become almost a requirement to be taken seriously.
That is not to say that all text editors are now equal&mdash;they all do things differently.
It&rsquo;s just that there is no longer any point to argue over the <em>technical</em> capabilities of each.
With the proliferation of LSP implementations of plugins, it&rsquo;s rare to be able to achieve something in one text editor but not in some other.</p>
<p>Finally, if you are crazy enough to want to write a new text editor, maybe it&rsquo;s not such a bad idea&mdash;if you add support for LSP, you&rsquo;ll now automatically have access to an amazing ecosystem of plugins!</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Yes, I know, it&rsquo;s a bit different in Python&hellip;&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description><category>technology</category></item><item><title>Interview for Podnews Weekly Review</title><link>https://dovydas.com/blog/interview-for-podnews-weekly-review/</link><pubDate>Fri, 17 Feb 2023 13:15 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/interview-for-podnews-weekly-review/</guid><description><![CDATA[
      
      <p>I was interviewed by the amazing <a  href="https://www.linkedin.com/in/samsethi/" rel="noreferrer" target="_blank">Sam Sethi</a> for <a  href="https://weekly.podnews.net/" rel="noreferrer" target="_blank">Podnews Weekly Review</a>!</p>
<p>We discuss my podcast hosting company <a  href="https://rssblue.com" rel="noreferrer" target="_blank">RSS Blue</a>, RSS technology, and the evolution of podcasting standards.</p>
<p>Listen <a  href="https://podverse.fm/clip/-V91tQmuT0" rel="noreferrer" target="_blank">in your browser</a> or using your <a  href="https://podcastindex.org/apps?appTypes=podcast&#43;player" rel="noreferrer" target="_blank">favorite podcast player</a>!</p>

      ]]></description><category>podcasting</category></item><item><title>MathML</title><link>https://dovydas.com/blog/mathml/</link><pubDate>Wed, 11 Jan 2023 11:30 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/mathml/</guid><description><![CDATA[
      
      <p>MathML has been <a  href="https://bugs.chromium.org/p/chromium/issues/detail?id=6606" rel="noreferrer" target="_blank">integrated into the Chromium engine</a>, which powers browsers like Chrome, Edge, and Brave.
It allows to render mathematical formulas in the browser without the use of additional JavaScr*pt libraries.
Browsers supporting MathML should display the formula below as a summation on the left-hand side and as a product of an &ldquo;m&rdquo; and a second order derivative on the right-hand side.</p>
<math display="block">
  <mrow>
    <mrow>
      <munder>
        <mo movablelimits="false">∑</mo>
        <mi>i</mi>
      </munder>
    </mrow>
    <msub>
      <mover>
        <mi>F</mi>
        <mo stretchy="false" style="transform:scale(0.75) translate(10%, 30%);">→</mo>
      </mover>
      <mi>i</mi>
    </msub>
    <mo>=</mo>
    <mi>m</mi>
    <mfrac>
      <mrow>
        <msup>
          <mrow>
            <mi mathvariant="normal">d</mi>
          </mrow>
          <mn>2</mn>
        </msup>
        <mover>
          <mi>r</mi>
          <mo stretchy="false" style="transform:scale(0.75) translate(10%, 30%);">→</mo>
        </mover>
      </mrow>
      <mrow>
        <mrow>
          <mi mathvariant="normal">d</mi>
        </mrow>
        <msup>
          <mi>t</mi>
          <mn>2</mn>
        </msup>
      </mrow>
    </mfrac>
  </mrow>
</math>
<p>Now, all major browsers will support MathML.
To ensure no one is left behind, I plan to wait a couple of release cycles before transitioning away from using <a  href="https://katex.org" rel="noreferrer" target="_blank">KaTeX</a> on this site in favor of MathML.
I will have to check, but it should probably be possible to convert LaTeX to MathML with <a  href="https://pandoc.org" rel="noreferrer" target="_blank">pandoc</a> (MathML is not nice to write in).</p>

      ]]></description><category>web technology</category></item><item><title>Less Cynicism</title><link>https://dovydas.com/blog/less-cynicism/</link><pubDate>Sun, 01 Jan 2023 20:05 +0200</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/less-cynicism/</guid><description><![CDATA[
      
      <p>That&rsquo;s my New Year&rsquo;s resolution.
I think being less cynical is a good goal for anyone to have, but I&rsquo;m failing to verbalize why without sounding too&hellip; cynical.</p>
<p>This was <em>triggered</em> by the responses to a <a  href="https://twitter.com/lexfridman/status/1609301085524578304" rel="noreferrer" target="_blank">Lex Fridman tweet</a>, most of which were like &ldquo;I read all of these when I was 14, lol&rdquo;.
People being mocked for the books they read (especially, classics) has become quite common.
I could somewhat comprehend this if most of us were literary geniuses, but the fact is <a  href="https://wordsrated.com/american-reading-habits-study" rel="noreferrer" target="_blank">most people don&rsquo;t read</a>.
So making fun of people for doing that (or anything that helps them become better humans) seems crazy to me.</p>
<p>Personally, I&rsquo;ll try to recognize this type of behavior in myself and try to stop it.</p>

      ]]></description></item><item><title>RIP, Angelo Badalamenti</title><link>https://dovydas.com/blog/rip-angelo-badalamenti/</link><pubDate>Sun, 18 Dec 2022 13:10 +2000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/rip-angelo-badalamenti/</guid><description><![CDATA[
      
      <p>Angelo Badalamenti, the composer most well known for his work with David Lynch, has passed away a few days ago.
<a  href="https://www.youtube.com/watch?v=e-eqgr_gn4k" rel="noreferrer" target="_blank">This video</a> of him discussing how he wrote Laura Palmer&rsquo;s theme for Twin Peaks is one of my favorite things on the Internet.</p>

      ]]></description></item><item><title>Replicator Dynamics</title><link>https://dovydas.com/blog/replicator-dynamics/</link><pubDate>Tue, 06 Dec 2022 14:10 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/replicator-dynamics/</guid><description><![CDATA[
      
        <p><em><strong>Note:</strong> This blog post contains LaTeX typography that will not be rendered correctly by RSS readers. To read the blog post with its original formatting, please visit <a href="https://dovydas.com/blog/replicator-dynamics/" rel="noreferrer" target="_blank">https://dovydas.com/blog/replicator-dynamics/</a>.</em></p>
      
      <p>Today, I had the pleasure of attending <a  href="https://math.ucr.edu/home/baez/" rel="noreferrer" target="_blank">John Carlos Baez&rsquo;s</a> very interesting <a  href="https://www.qmul.ac.uk/maths/research/seminars/statistics-and-data-science-seminar#997053" rel="noreferrer" target="_blank">talk</a> at the Queen Mary University of London.
He presented how information theory can be used to describe replicator dynamics in the context of natural selection, evolutionary algorithms, game theory, and more.
You should probably check out <a  href="https://math.ucr.edu/home/baez/bio_asu/" rel="noreferrer" target="_blank">his own writing</a> on this topic, but I found the following particularly interesting:</p>
<p>Suppose we have $n$ types of replicators with population sizes $P_1(t), P_2(t), \ldots, P_n(t)$.
Suppose also that these populations satisfy the following set of differential equations:</p>
<p>$$
\frac{\mathrm{d} P_i}{\mathrm{d} t} = f_i(P_1, P_2, \ldots, P_n) P_i
$$
where $f_i$ is the fitness function of the $i$<sup>th</sup> replicator.</p>
<p>Next, if we define $p_i$ to be the fraction of the population that is of type $i$, it can be shown that</p>
<p>$$
\left| \left| \frac{\mathrm{d} p}{\mathrm{d} t} \right| \right|^2 = \sum_i (f_i - \langle f \rangle)^2 p_i
$$
The left-hand side is the square of, what Baez calls, <a  href="https://arxiv.org/abs/2107.05610" rel="noreferrer" target="_blank">&ldquo;Fisher speed&rdquo;</a>, or the rate of learning, i.e. the &ldquo;speed&rdquo; of the changing probability distribution $p(t) = (p_1(t), p_2(t), \ldots, p_n(t))$.
The right-hand side is the variance of the fitness.</p>
<p>Baez interprets this as a revised version of <a  href="https://en.wikipedia.org/wiki/Fisher%27s_fundamental_theorem_of_natural_selection" rel="noreferrer" target="_blank">Fisher&rsquo;s fundamental theorem of natural selection</a>.
In English, <a  href="https://arxiv.org/abs/2107.05610" rel="noreferrer" target="_blank">he states it</a> in the following way:</p>
<blockquote>
<p>As a population changes with time, the rate at which information is updated equals the variance of fitness.</p>
</blockquote>

      ]]></description></item><item><title>Time Series Data and Causality</title><link>https://dovydas.com/blog/time-series-data-and-causality/</link><pubDate>Wed, 09 Nov 2022 10:15 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/time-series-data-and-causality/</guid><description><![CDATA[
      
      <p>This graph is great for demonstrating the danger of inferring causality from time series data alone.</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/time-series-data-and-causality/images/graph.ok_hu_7a4719125454b50.a0e014b0e12803e5082425f5dc01ac06d3f3473235aa3e34277e03af9203e23d.webp"
        width="812"
        height="517"
        loading="eager"
        
        alt="A graph showing births and deaths in China from 2012. There is a sudden drop in births after 2016, when one-child policy was ended."
        
        
        >
        
        <figcaption >Taken from <a  href="https://www.axios.com/2022/10/15/china-party-congress-2022-xi-jinping-third-term" rel="noreferrer" target="_blank">https://www.axios.com/2022/10/15/china-party-congress-2022-xi-jinping-third-term</a>.</figcaption>
        
  </figure>
</div>


      ]]></description><category>statistics</category></item><item><title>Adversarial Attacks on Linear Models</title><link>https://dovydas.com/blog/adversarial-attacks-on-linear-models/</link><pubDate>Thu, 15 Sep 2022 15:40 +0100</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/adversarial-attacks-on-linear-models/</guid><description><![CDATA[
      
        <p><em><strong>Note:</strong> This blog post contains LaTeX typography that will not be rendered correctly by RSS readers. To read the blog post with its original formatting, please visit <a href="https://dovydas.com/blog/adversarial-attacks-on-linear-models/" rel="noreferrer" target="_blank">https://dovydas.com/blog/adversarial-attacks-on-linear-models/</a>.</em></p>
      
      <p>I&rsquo;ve been reading about adversarial attacks and wanted to implement something very simple.
<a  href="https://github.com/pierreablin/adversarial_example/blob/master/Simple_attack.ipynb" rel="noreferrer" target="_blank"><em>The simplest adversarial attack: attacking a linear model</em></a> by <a  href="https://pierreablin.com" rel="noreferrer" target="_blank">Pierre Ablin</a> helped me do just that and this blog post adapts a lot of material from there&mdash;check it out!</p>
<h2 id="setup">Setup</h2>
<p>Suppose we have a binary classifier that has been trained on input-output pairs $(\boldsymbol{x}_1, \boldsymbol{y}_1), \ldots, (\boldsymbol{x}_n, \boldsymbol{y}_n)$, with $\boldsymbol{x}_i \in \mathbb{R}^p$ and $\boldsymbol{y}_i \in \lbrace -1, 1 \rbrace$.
Our goal is to take <em>base</em> input $\boldsymbol{x}_\mathrm{b}$ and transform it to <em>poison</em> input $\boldsymbol{x}_\mathrm{p}$ such that</p>
<ul>
<li>its class would be guessed incorrectly by the classifier</li>
<li>$\boldsymbol{x}_\mathrm{p}$ would remain similar to $\boldsymbol{x}_\mathrm{b}$</li>
</ul>
<p>If $\boldsymbol{x}$&rsquo;s represent images, then &ldquo;similar&rdquo; could mean that any introduced changes are visually imperceptible.
For example, if we are dealing with two classes of digits, say 3&rsquo;s and 7&rsquo;s, from the <a  href="http://yann.lecun.com/exdb/mnist/" rel="noreferrer" target="_blank">MNIST database</a> ($p = 28 \times 28 = 784$), then our goal would be to take an image of a &lsquo;7&rsquo; and make it look like a &lsquo;3&rsquo; to the classifier but keep it looking like a &lsquo;7&rsquo; to the human, and vice versa.</p>
<p>We will assume a classifier that makes predictions based on the sign of a linear regression model:
$$ y = \text{sign}(\boldsymbol{w}^\top \boldsymbol{x} + \boldsymbol{b}) $$
with $\boldsymbol{w} \in \mathbb{R}^p$ and $\boldsymbol{b} \in \mathbb{R}$.</p>
<p>Thus, the decision boundary of the classifier is a hyperplane $\Pi$ with equation
$$ \boldsymbol{w}^\top \boldsymbol{x} + \boldsymbol{b} = 0 $$
i.e. any point $\boldsymbol{x} \in \Pi$ must satisfy the above equation.</p>
<h2 id="strategy">Strategy</h2>
<p>To have an input $\boldsymbol{x}_\mathrm{p}$ classified differently than $\boldsymbol{x}_\mathrm{b}$, it must lie on the opposite side of the hyperplane<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>.
To ensure visually imperceptible changes, a sensible strategy would be to move from $\boldsymbol{x}_\mathrm{b}$ as little as possible, i.e. perpendicularly towards the plane.</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/adversarial-attacks-on-linear-models/images/towards-poison.9afdc1bac8b4d1465e34a3d31fa14930fa94eca58b6fdf8b2dfb38b3f36090eb.svg"
        width="156.218"
        height="89.137"
        loading="eager"
        
        
        >
        
  </figure>
</div>

<p>It might be useful to think of going from $\boldsymbol{x}_\mathrm{b}$ to $\boldsymbol{x}_\mathrm{p}$ in terms of the shortest distance from the hyperplane $\Pi$ to $\boldsymbol{x}_\mathrm{p}$.
We can use vector $\boldsymbol{d}$ to denote that:</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/adversarial-attacks-on-linear-models/images/distance.7d7fce875ea3818beef79b5776090b5b62f46518fd257766c9807dd342ec6857.svg"
        width="156.218"
        height="89.137"
        loading="eager"
        
        
        >
        
  </figure>
</div>

<p>We can then express $\boldsymbol{x}_\mathrm{p}$ in the following way:
$$ \boldsymbol{x}_\mathrm{p} = \boldsymbol{x}_\mathrm{b} - \alpha \boldsymbol{d} $$
with $\alpha \in \mathbb{R}$.</p>
<p>This is useful because</p>
<ul>
<li>$\alpha &lt; 1$ means $\boldsymbol{x}_\mathrm{p}$ is on the same side as $\boldsymbol{x}_\mathrm{b}$, and the attack is unsuccessful</li>
<li>$\alpha = 1$ means $\boldsymbol{x}_\mathrm{p}$ is on hyperplane $\Pi$</li>
<li>$\alpha &gt; 1$ means $\boldsymbol{x}_\mathrm{p}$ is on the opposite side to $\boldsymbol{x}_\mathrm{b}$, and the attack is successful</li>
</ul>
<p>However, we should express $\boldsymbol{d}$ in terms of quantities we already know.</p>
<p>Notice that <a  href="https://math.stackexchange.com/a/3354836" rel="noreferrer" target="_blank">$\boldsymbol{w}$ is perpendicular to the hyperplane</a> and so is in the same (or opposite) direction as $\boldsymbol{d}$.
We can thus say that $\boldsymbol{d} = c \boldsymbol{w}$ (with $c \in \mathbb{R}$) and so
$$ \boldsymbol{x}_\mathrm{p} = \boldsymbol{x}_\mathrm{b} - \alpha c \boldsymbol{w} $$</p>
<p>Further, we can find $c$ by considering the case of $\alpha = 1$, when $\boldsymbol{x}_\mathrm{p}$ is on the hyperplane $\Pi$ and thus must satisfy its equation:
$$ \boldsymbol{w}^\top (\boldsymbol{x}_\mathrm{b} - 1 c \boldsymbol{w}) + \boldsymbol{b} = 0 $$</p>
<p>Solving for $c$ gives
$$ c = \frac{\boldsymbol{w}^\top \boldsymbol{x}_\mathrm{b} + \boldsymbol{b}}{\boldsymbol{w}^\top \boldsymbol{w} } $$</p>
<p>and so
$$ \boldsymbol{x}_\mathrm{p} = \boldsymbol{x}_\mathrm{b} - \alpha \frac{\boldsymbol{w}^\top \boldsymbol{x}_\mathrm{b} + \boldsymbol{b}}{\boldsymbol{w}^\top \boldsymbol{w} } \boldsymbol{w} $$</p>
<h2 id="results">Results</h2>
<p>After achieving 95% test accuracy with the linear classifier, I attempted to evaluate the attack&rsquo;s effectiveness.
Such a simple strategy for manipulating the inputs yielded great results&mdash;I was definitely surprised.
Here is how an image of a digit &lsquo;7&rsquo; changes as we increase $\alpha$ (remember, $\alpha &gt; 1$ is already enough for misclassification, though the higher the $\alpha$, the more confident the classifier will be of its incorrect decision):</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/adversarial-attacks-on-linear-models/images/poisoning.ok.ecfd734d30f455254de3c1c2cb70edde71e89a463727cd6bd64a524b64bd5eda.gif"
        width="1920"
        height="1440"
        loading="eager"
        
        
        >
        
  </figure>
</div>

<p>Personally, I didn&rsquo;t notice any changes until $\alpha = 5$ (more than enough for misclassification!).
But if I hadn&rsquo;t observed the original image, I wouldn&rsquo;t even know that something is wrong.
Only at around $\alpha = 50$ do we see some funny stuff (mostly in the background pixels), where one may suspect that the images are being manipulated.</p>
<p>The strategy of moving perpendicularly towards the decision boundary made sense, but it wasn&rsquo;t at all obvious to me that the resulting poisoned image wouldn&rsquo;t look drastically different.
Of course, this whole &ldquo;attack&rdquo; assumed a lot of knowledge and power to change things on the attacker&rsquo;s side, but it is still interesting why something like this could potentially work so well.
It could be that my genuine surprise comes from looking at the 2D representations of the hyperplane in the diagrams above and interpreting movement in any direction as incredibly consequential.
Indeed, <a  href="https://www.esann.org/sites/default/files/proceedings/legacy/es2019-114.pdf" rel="noreferrer" target="_blank">some existing works</a> speculate that the effectiveness of adversarial attacks is partly due to high dimensionality of the models (even a linear classifier for MNIST has $785$ parameters), but, so far, I haven&rsquo;t found <em>truly</em> satisfactory explanations.
I&rsquo;ll have to keep looking, but please let me know if you are aware of any relevant literature!</p>
<details>
<summary >Bonus chicanery</summary>
<p>Setting $\alpha$ to negative values means we are moving <em>away</em> from the hyperplane.
That makes a &lsquo;7&rsquo; look even more like a &lsquo;7&rsquo; to the classifier.
Does it to <em>you</em>?</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/adversarial-attacks-on-linear-models/images/poisoning-negative.ok.93a3fe2855ab7a872591561cf075830b29621e79e70584149745dab691ad39bf.gif"
        width="1920"
        height="1440"
        loading="eager"
        
        
        >
        
  </figure>
</div>

</details>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>I will consider only the base inputs that were classified correctly in the first place.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description><category>machine learning</category><category>statistics</category></item><item><title>Trip to Peak District</title><link>https://dovydas.com/blog/trip-to-peak-district/</link><pubDate>Mon, 12 Sep 2022 11:00 +0100</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/trip-to-peak-district/</guid><description><![CDATA[
      
      <p>Over the weekend, I had an amazing time at Peak District National Park.</p>
<div >





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/trip-to-peak-district/images/1.ok_hu_8e7752dd1afdb373.c7922ab2e63fe7b2fe4bf1fc76a81423768d63b8788228ebf5bbecff7959cb41.webp"
        width="1600"
        height="1200"
        loading="eager"
        
        
        >
        
        <figcaption >Not the best time to get caught in a thunderstorm.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/trip-to-peak-district/images/2.ok_hu_108fdc5bdac37552.b9b00f5bbfd9650c27deb9f13ef9e43ff8105c5775df09446d85289d78db1e80.webp"
        width="1000"
        height="750"
        loading="eager"
        
        
        >
        
        <figcaption >Lots of sheep.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/trip-to-peak-district/images/3.ok_hu_23ac1003a99e534a.0c3953272ef578348dfbc20760adb373733e910e9d917376af366198a67db8d8.webp"
        width="1500"
        height="1125"
        loading="eager"
        
        
        >
        
        <figcaption >Lots of ferns. Which I love because they always give me ancient forest vibes.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/trip-to-peak-district/images/4.ok_hu_13d335a7761f04c4.88d0489aa7caae1ab265952ee6e4a0e8262b7861cdfb01dcf9796feade59106b.webp"
        width="1500"
        height="1125"
        loading="eager"
        
        
        >
        
        <figcaption >I&rsquo;ve been told there had been even more flowers in August, but this was still breathtaking.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/trip-to-peak-district/images/5.ok_hu_10073cd102f21aa8.face3b8422a8b6c14ac6d8627a7edfc45fdcc15568eaee609ecda25518a7da5a.webp"
        width="1700"
        height="1275"
        loading="eager"
        
        
        >
        
        <figcaption ><a  href="https://en.wikipedia.org/wiki/Kinder_Scout" rel="noreferrer" target="_blank">Kinder Scout</a>.</figcaption>
        
  </figure>
</div>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/trip-to-peak-district/images/6.ok_hu_6fa092afa1609ac.add1b6278d990e69700f33fe005d1e538926f8dca01cc67080b7888fd24e6ccb.webp"
        width="1500"
        height="1125"
        loading="eager"
        
        
        >
        
        <figcaption >Kinder Scout. I&rsquo;m obviously afraid to fall off.</figcaption>
        
  </figure>
</div>

</div>

      ]]></description><category>travel</category></item><item><title>PhD Thesis</title><link>https://dovydas.com/blog/phd-thesis/</link><pubDate>Tue, 06 Sep 2022 11:55 +0100</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/phd-thesis/</guid><description><![CDATA[
      
      <p>Happy to say that my PhD thesis&mdash;&ldquo;Memristive Crossbars as
Hardware Accelerators: Modelling, Design and New Uses&rdquo;&mdash;has been made available online by UCL library services.
You can find it (including full-text PDF) <a  href="https://discovery.ucl.ac.uk/id/eprint/10152211" rel="noreferrer" target="_blank">here</a>.</p>
<p>As previously discussed in some of the blog posts<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>, my research focused on using memristive crossbar arrays to accelerate matrix operations, which are heavily utilized in fields like machine learning.
I investigated (1) the negative effects of using nonideal analog devices, (2) ways to improve the performance of these devices and systems that they comprise, and (3) new ways of using memristive crossbar arrays.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a  href="/blog/the-power-crisis-of-modern-computing">&ldquo;The Power Crisis of Modern Computing&rdquo;</a>, <a  href="/blog/analogue-solution-to-the-power-hungry-field-of-machine-learning">&ldquo;Analogue Solution to the Power-Hungry Field of Machine Learning&rdquo;</a>, <a  href="/blog/memristive-neural-networks-perform-better-when-they-work-in-teams">&ldquo;Memristive neural networks perform better when they work in teams&rdquo;</a>.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description></item><item><title>Bulgakov &amp; Lynch</title><link>https://dovydas.com/blog/bulgakov-lynch/</link><pubDate>Wed, 31 Aug 2022 10:15 +0300</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/bulgakov-lynch/</guid><description><![CDATA[
      
      <p>At some point when reading The Master and Margarita, I realized &ldquo;wow, this is so Lynchian!&rdquo;
Of course, due to fundamental nature of time, it&rsquo;s probably the other way around.
Regardless, I&rsquo;m not the first to <a  href="https://inlitero.com/2012/07/23/the-master-the-margarita-and-twin-peaks/" rel="noreferrer" target="_blank">make this connection</a>.</p>

      ]]></description></item><item><title>Is China Doxxing People Using Targeted Advertising?</title><link>https://dovydas.com/blog/is-china-doxxing-people-using-targeted-advertising/</link><pubDate>Sat, 27 Aug 2022 17:30 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/is-china-doxxing-people-using-targeted-advertising/</guid><description><![CDATA[
      
      <p>A recent leak of <a  href="https://www.washingtonpost.com/technology/interactive/2022/twitter-whistleblower-sec-spam/whistleblower_disclosure.pdf" rel="noreferrer" target="_blank">a whistleblower complaint</a> by <a  href="https://twitter.com/dotmudge" rel="noreferrer" target="_blank">Mudge</a> suggests that Twitter is making a lot of money from Chinese entities and that some Twitter employees have concerns about it:</p>
<blockquote>
<p>Twitter executives opted to allow Twitter to become more dependent upon
revenue coming from Chinese entities even though the Twitter service is
blocked in China. After Chinese entities paid money to Twitter, there were
concerns within Twitter that the information the Chinese entities could
receive would allow them to identify and learn sensitive information about
Chinese users who successfully circumvented the block, and other users
around the world. Twitter executives knew that accepting Chinese money
risked endangering users in China (where employing VPNs or other
circumvention technologies to access the platform is prohibited) and
elsewhere.</p>
</blockquote>
<p><a  href="https://twitter.com/thezedwards" rel="noreferrer" target="_blank">Zach Edwards</a> suggests in <a  href="https://twitter.com/thezedwards/status/1562321634295312384" rel="noreferrer" target="_blank">a Twitter thread</a> how that may be possible.
Long story short: custom audiences for Twitter advertising can be built using email addresses and mobile IDs, which&mdash;through some clever tricks of how ad campaigns are set up&mdash;would allow to relate those details (which Chinese entities might already have) to sensitive information, like location (which they might seek).
At least, that&rsquo;s how I understood it, you should check out that thread.</p>

      ]]></description><category>government</category><category>privacy</category><category>technology</category></item><item><title>Abstractions in JAX</title><link>https://dovydas.com/blog/abstractions-in-jax/</link><pubDate>Thu, 11 Aug 2022 14:15 +0300</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/abstractions-in-jax/</guid><description><![CDATA[
      
      <p><em>Originally posted <a  href="https://www.linkedin.com/feed/update/urn:li:activity:6963415736346185728" rel="noreferrer" target="_blank">on LinkedIn</a></em>.</p>
<p>I&rsquo;m considering making a transition from <a  href="https://www.tensorflow.org/" rel="noreferrer" target="_blank">TensorFlow</a> to <a  href="https://jax.readthedocs.io/" rel="noreferrer" target="_blank">JAX</a> and, so far, am loving how effectively the latter exposes low-level behavior while still providing useful abstractions.</p>
<p>For example, the code snippet<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> below shows how one can perform gradient descent while utilising multiple devices:</p>
<ol>
<li>the gradients are computed on <em>multiple</em> devices</li>
<li>they are <em>synced</em> across multiple devices and averaged</li>
<li>the new parameters are computed by adjusting them in a direction opposite to gradient</li>
</ol>
<div ><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code  data-lang="python"><span style="display:flex;"><span>@functools.partial(jax<span style="color:#ff79c6">.</span>pmap, axis_name<span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;num_devices&#34;</span>)
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">def</span> <span style="color:#50fa7b">update</span>(params, xs, ys, learning_rate<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0.005</span>):
</span></span><span style="display:flex;"><span>    <span style="color:#6272a4"># 1. Compute the gradients on the given minibatch</span>
</span></span><span style="display:flex;"><span>    <span style="color:#6272a4"># (individually on each device).</span>
</span></span><span style="display:flex;"><span>    grads <span style="color:#ff79c6">=</span> jax<span style="color:#ff79c6">.</span>grad(loss_fn)(params, xs, ys)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#6272a4"># 2. Combine the gradients across all devices</span>
</span></span><span style="display:flex;"><span>    <span style="color:#6272a4"># (by taking their mean).</span>
</span></span><span style="display:flex;"><span>    grads <span style="color:#ff79c6">=</span> jax<span style="color:#ff79c6">.</span>lax<span style="color:#ff79c6">.</span>pmean(grads, axis_name<span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;num_devices&#34;</span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#6272a4"># 3. Each device performs its own update, but since we</span>
</span></span><span style="display:flex;"><span>    <span style="color:#6272a4"># start with the same params and synchronise gradients,</span>
</span></span><span style="display:flex;"><span>    <span style="color:#6272a4"># the params stay in sync.</span>
</span></span><span style="display:flex;"><span>    new_params <span style="color:#ff79c6">=</span> jax<span style="color:#ff79c6">.</span>tree_map(
</span></span><span style="display:flex;"><span>        <span style="color:#ff79c6">lambda</span> param, g: param <span style="color:#ff79c6">-</span> g <span style="color:#ff79c6">*</span> learning_rate,
</span></span><span style="display:flex;"><span>        params,
</span></span><span style="display:flex;"><span>        grads,
</span></span><span style="display:flex;"><span>    )
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">return</span> new_params
</span></span></code></pre></div><div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>adapted from <a  href="https://jax.readthedocs.io/en/latest/jax-101/06-parallelism.html" rel="noreferrer" target="_blank">a tutorial</a> by DeepMind&rsquo;s Vladimir Mikulik and Roman Ring&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description></item><item><title>Updated Blog Structure—Again!</title><link>https://dovydas.com/blog/updated-blog-structure-again/</link><pubDate>Wed, 06 Jul 2022 22:58 +0300</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updated-blog-structure-again/</guid><description><![CDATA[
      
      <p><a  href="/blog/updated-blog-structure">A year and a half ago</a>, I split my blog posts into &ldquo;essays&rdquo; and &ldquo;updates&rdquo;.
The former being mostly long-form writing and the latter&mdash;my personal updates and other minor stuff.
I had a feeling for a long time, but now I&rsquo;m almost certain&mdash;this was a bad idea!</p>
<p><a  href="https://www.wired.com/story/the-teeny-tiny-scientific-screwup-that-helped-covid-kill/" rel="noreferrer" target="_blank">Categorization can constrain thinking</a>.
And that&rsquo;s how I&rsquo;ve been feeling about my blog for some time.
If I want to write a programming tutorial, it&rsquo;s not really an essay, but it&rsquo;s also not an update&mdash;it&rsquo;s an original piece of writing.
However, I don&rsquo;t want to create a whole new section on my website dedicated to tutorials.
Well, maybe, but it shouldn&rsquo;t clutter the site.
And that would be certainly happen with all the new categories I&rsquo;d come up with.</p>
<p>There is no perfect solution to this, but I did following:</p>
<ul>
<li>I got rid of major sections.</li>
<li>To make it easy to find relevant reads, I added a &ldquo;category&rdquo; to each post; you&rsquo;ll find these at <a  href="/blog"><code>/blog</code></a>. You might say that it&rsquo;s the exact same thing as sections, but I really view this taxonomy as being soft, something I&rsquo;ll be unafraid to change. I say &ldquo;unafraid&rdquo; because I removed section names from URLs, so any category changes from now on will not require tedious refactoring.</li>
</ul>
<p>Additionally, I made these changes:</p>
<ul>
<li>Removed dates from URLs. I hope most of my blog posts will make sense even after some time has passed.</li>
<li>Removed all RSS feeds except the <a  href="/blog/index.xml">main one</a>. Sorry to all those who subscribed to feeds of specific tags! I just feel these feeds are redundant because I already include tag information in the <code>&lt;category&gt;</code> elements, so you should be able to filter the posts in your RSS reader (if it&rsquo;s any good&hellip;). For now, I redirect all RSS feeds to the main one. If that&rsquo;s annoying, feel free to unsubscribe.</li>
<li>Removed trailing slashes from URLs. Looks better!</li>
</ul>
<p>I took great care to not break anything (even <a  href="https://github.com/joksas/diffguid" rel="noreferrer" target="_blank">wrote a few Go functions</a>!), but if you notice anything strange, please <a  href="/contact">let me know</a>!</p>

      ]]></description></item><item><title>Future Computing Systems</title><link>https://dovydas.com/blog/future-computing-systems/</link><pubDate>Fri, 01 Jul 2022 16:55 +0300</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2022/07/future-computing-systems/</guid><description><![CDATA[
      
      <p>There are concerns that Moore&rsquo;s law&mdash;the trend of exponential increase in transistor density&mdash;no longer holds true.
However, a number of new technologies may allow to keep improving computers and even give them new capabilities.</p>
<p>We explore this in our perspective article titled “Memristive, Spintronic, and 2D-Materials-Based Devices to Improve and Complement Computing Hardware”, which has been published today in <em>Advanced Intelligent Systems</em> [<a  href="#bibreference-1" title="D. Joksas, A. AlMutairi, O. Lee, M. Cubukcu, A. Lombardo, H. Kurebayashi, A. Kenyon, and A. Mehonic, Memristive, spintronic, and 2D-materials-based devices to improve and complement computing hardware, Advanced Intelligent Systems, vol. 4, no. 8, p. 2200068, 2022. doi:10.1002/aisy.202200068">1</a>].
You can access it for free <a  href="https://doi.org/10.1002/aisy.202200068" rel="noreferrer" target="_blank">here</a>.</p>
<p>Great team effort:</p>
<ul>
<li><a  href="https://www.graphene.cam.ac.uk/people/abdulaziz-almutairi" rel="noreferrer" target="_blank">AbdulAziz AlMutairi</a></li>
<li><a  href="https://www.linkedin.com/in/oscar-lee-25098895" rel="noreferrer" target="_blank">Oscar Lee</a></li>
<li><a  href="https://www.npl.co.uk/people/profiles/murat-cubukcu" rel="noreferrer" target="_blank">Murat Cubukcu</a></li>
<li><a  href="https://www.london-nano.com/our-people/our-people-bios/antonio-lombardo" rel="noreferrer" target="_blank">Antonio Lombardo</a></li>
<li><a  href="https://www.ucl.ac.uk/spintronics/people/hidekazu-kurebayashi" rel="noreferrer" target="_blank">Hidekazu Kurebayashi</a></li>
<li><a  href="https://www.ucl.ac.uk/electronic-electrical-engineering/people/prof-tony-kenyon" rel="noreferrer" target="_blank">Anthony J. Kenyon</a></li>
<li><a  href="https://www.ee.ucl.ac.uk/~uceeadm/" rel="noreferrer" target="_blank">Adnan Mehonic</a></li>
</ul>
<h2 id="reference">Reference</h2>
<ol ><li  id="bibreference-1">D. Joksas,&#32;A. AlMutairi,&#32;O. Lee,&#32;M. Cubukcu,&#32;A. Lombardo,&#32;H. Kurebayashi,&#32;A. Kenyon, and&#32;A. Mehonic,&#32;<q>Memristive, spintronic, and 2D-materials-based devices to improve and complement computing hardware,</q>&#32;<em>Advanced Intelligent Systems</em>,&#32;vol. 4,&#32;no. 8,&#32;p. 2200068,&#32;2022.&#32;doi:<a  rel="noopener" target="_blank" href="https://doi.org/10.1002/aisy.202200068">10.1002/aisy.202200068</a></li></ol>

      ]]></description><category>memristors</category><category>my papers</category><category>technology</category></item><item><title>Viva</title><link>https://dovydas.com/blog/viva/</link><pubDate>Thu, 30 Jun 2022 11:30 +0300</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2022/06/viva/</guid><description><![CDATA[
      
      <p>Excited to share that I successfully passed my PhD viva two days ago!
The process took almost four hours!
I believe this is quite long for a UK PhD defense, but we went through the thesis chapter by chapter and explored all the main research questions and ideas, so I&rsquo;m very happy with how it went.
I got minor corrections, which should mostly entail (1) providing additional context in the beginning of the thesis for the motivation of the whole work, and (2) thinking how to better fit the chapter on new non-machine-learning applications of crossbar arrays with the rest of the thesis (which is <em>mostly</em> about machine learning) or whether to include it at all.</p>
<p>I want to thank the examiners&mdash;<a  href="https://www.sheffield.ac.uk/dcs/people/academic/eleni-vasilaki" rel="noreferrer" target="_blank">Eleni Vasilaki</a> of the University of Sheffield and <a  href="https://www.ee.ucl.ac.uk/~mrio" rel="noreferrer" target="_blank">Miguel Rio</a> of University College London (UCL)&mdash;for carefully going through my work and for asking great questions during the viva.
I am also incredibly grateful to my amazing supervisor <a  href="https://www.ee.ucl.ac.uk/~uceeadm" rel="noreferrer" target="_blank">Adnan Mehonic</a>, the whole memristor group at UCL, my collaborators, the colleagues and staff at <a  href="https://www.ucl.ac.uk/electronic-electrical-engineering/" rel="noreferrer" target="_blank">our department</a>, and, of course, my friends and family!</p>
<p>It&rsquo;s a great conclusion to the four years of research work, but I don&rsquo;t think it changes much of anything.
I&rsquo;m just happy that academic spam emails I receive will now be <a  href="/blog/essays/2020/09/lets-save-the-internet.-with-rss./">more accurate</a>.</p>

      ]]></description></item><item><title>Loading Remote Bibliography with Biber</title><link>https://dovydas.com/blog/loading-remote-bibliography-with-biber/</link><pubDate>Sun, 22 May 2022 09:45 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2022/05/loading-remote-bibliography-with-biber/</guid><description><![CDATA[
      
      <p>I have tens of LaTeX projects, and I&rsquo;ve always found it annoying that I have to duplicate bibliographic entries in case I use another machine where specifying absolute path to a master BIB file wouldn&rsquo;t work.
I&rsquo;ve always wanted to have a remote BIB file that could be automatically retrieved when compiling a LaTeX project.
I didn&rsquo;t realize <a  href="https://ctan.org/pkg/biber" rel="noreferrer" target="_blank">Biber</a> had this capability out of the box!</p>
<p>So now I simply have the following in my TeX preamble:</p>
<div ><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code  data-lang="latex"><span style="display:flex;"><span><span style="color:#ff79c6">\usepackage</span><span style="color:#50fa7b">[backend=biber]</span><span style="color:#8be9fd;font-style:italic">{</span>biblatex<span style="color:#8be9fd;font-style:italic">}</span>
</span></span><span style="display:flex;"><span><span style="color:#6272a4">% URL of plain text version of my master BIB file on GitHub (replace &#34;github&#34; with &#34;raw.githubusercontent&#34;).
</span></span></span><span style="display:flex;"><span><span style="color:#ff79c6">\addbibresource</span><span style="color:#50fa7b">[location=remote]</span><span style="color:#8be9fd;font-style:italic">{</span>https://raw.githubusercontent.com/joksas/latex-bibliography/master/phd.bib<span style="color:#8be9fd;font-style:italic">}</span>
</span></span></code></pre></div><p>After which, I do</p>
<div ><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code  data-lang="shell"><span style="display:flex;"><span>pdflatex main
</span></span><span style="display:flex;"><span>biber main
</span></span><span style="display:flex;"><span>pdflatex main
</span></span><span style="display:flex;"><span>pdflatex main
</span></span></code></pre></div>
      ]]></description></item><item><title>Smarter Training of Memristive Neural Networks</title><link>https://dovydas.com/blog/smarter-training-of-memristive-neural-networks/</link><pubDate>Thu, 05 May 2022 11:45 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2022/05/smarter-training-of-memristive-neural-networks/</guid><description><![CDATA[
      
      <p>Neural networks consume massive amounts of power, and memristive implementations may offer a solution.
But although memristors are much less power-hungry, they are also stochastic and&mdash;like most analog devices&mdash;less precise.
How do we deal with that?</p>
<p>We have been collaborating with <a  href="https://www.imperial.ac.uk/electrical-engineering" rel="noreferrer" target="_blank">Imperial</a> to make memristive neural networks</p>
<ul>
<li>adapt to nonidealities</li>
<li>consume even less energy</li>
<li>be robust to uncertainty</li>
</ul>
<p>As illustrated below, we did this by</p>
<ul>
<li>redefining neural network node functions so that they take into account potential nonlinearity and stochasticity</li>
<li>rethinking how neural network weights are implemented using memristor conductances, so that regularization could act as a way of further tuning power consumption</li>
<li>computing validation error multiple times at checkpoints to take stochastic nature of memristors into account</li>
</ul>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/smarter-training-of-memristive-neural-networks/images/overview.ce52467a54152121a74a95c96f58578d0f8ce3d12f52e0864703eda5eb666fa5.svg"
        width="185.94075"
        height="100.47139"
        loading="eager"
        
        alt="Overview of our new techniques: taking into account nonlinearity and stochasticity, rethinking how weights are mapped onto conductances, and improving validation"
        
        
        >
        
  </figure>
</div>

<p>The resulting paper <a  href="https://doi.org/10.1002/advs.202105784" rel="noreferrer" target="_blank">just came out</a> in Advanced Science, while the code can be found <a  href="https://github.com/joksas/nonideality-aware-mnn-training" rel="noreferrer" target="_blank">here</a>.</p>
<p>I want to thank my coauthors for all their contributions:</p>
<ul>
<li><a  href="https://www.linkedin.com/in/erweiwang" rel="noreferrer" target="_blank">Erwei Wang</a></li>
<li><a  href="https://www.linkedin.com/in/nikolaos-barmpatsalos-a199569a" rel="noreferrer" target="_blank">Nikolaos Barmpatsalos</a></li>
<li><a  href="https://www.ucl.ac.uk/electronic-electrical-engineering/people/dr-wing-ng" rel="noreferrer" target="_blank">Wing Ng</a></li>
<li><a  href="https://www.ucl.ac.uk/electronic-electrical-engineering/people/prof-tony-kenyon" rel="noreferrer" target="_blank">Tony Kenyon</a></li>
<li><a  href="https://cas.ee.ic.ac.uk/people/gac1/" rel="noreferrer" target="_blank">George Constantinides</a></li>
<li><a  href="https://www.ee.ucl.ac.uk/~uceeadm/" rel="noreferrer" target="_blank">Adnan Mehonic</a></li>
</ul>

      ]]></description><category>machine learning</category><category>memristors</category><category>my papers</category><category>neural networks</category><category>technology</category></item><item><title>Telegram is Not “Encrypted”</title><link>https://dovydas.com/blog/telegram-is-not-encrypted/</link><pubDate>Sat, 26 Feb 2022 11:20 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/essays/2022/02/telegram-is-not-encrypted/</guid><description><![CDATA[
      
      <p>I feel like repeating myself when discussing encrypted communication apps but, with Russia&rsquo;s invasion of Ukraine, this does need repeating.
As of 26 February, <a  href="https://www.similarweb.com/apps/top/apple/store-rank/ua/social-networking/top-free/iphone/" rel="noreferrer" target="_blank">Telegram is the most downloaded social networking app in Ukraine</a> and is incredibly popular in Eastern Europe in general.
If you don&rsquo;t want Russian government to find out who you are communicating with or what the contents of your messages are, it&rsquo;s <strong>dangerous</strong> to use Telegram.
I&rsquo;m tired of <a  href="https://www.theguardian.com/world/2022/feb/25/pure-orwell-how-russian-state-media-spins-ukraine-invasion-as-liberation" rel="noreferrer" target="_blank">newspapers still referring</a> to this app as &ldquo;encrypted&rdquo;.
It&rsquo;s mostly not, at least not in the way that matters.</p>
<ul>
<li>end-to-end encryption (E2EE) is not enabled by default in individual (one-to-one) chats</li>
<li>E2EE is not available in group chats</li>
<li>E2EE is not available in channels</li>
</ul>
<p>Sure, Telegram communications <em>are</em> encrypted between the users and the servers.
This kind of encryption is used by all modern websites, including this one, so this a <em>really</em> low bar.
Because Telegram mostly doesn&rsquo;t use <em>end-to-end</em> encryption, it holds massive amounts of unencrypted (or easily decryptable) user data and communications on those servers.</p>
<p>In fairness to Telegram, its founder <a  href="https://www.washingtonpost.com/world/europe/russia-telegram-kremlin-pavel-durov/2020/06/27/4928ddd4-b161-11ea-98b5-279a6479a1e4_story.html" rel="noreferrer" target="_blank">has stood up</a> to Putin in the past.
However, this is more of a technological problem than a moral or political one.
If servers hold sensitive data, governments could, in theory, access them either through court orders (of questionable legality) or through explicitly illegal means, like hacking.
A better way is to simply not store such data on the servers in the first place.</p>
<p>Alternatives<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> to Telegram include <a  href="https://signal.org/" rel="noreferrer" target="_blank">Signal</a> and <a  href="https://www.whatsapp.com/" rel="noreferrer" target="_blank">WhatsApp</a>.
<a  href="/blog/essays/2020/07/do-not-trust-whatsapp/">I have criticized the latter</a> for its closed-source nature in the past, but, frankly, I believe it&rsquo;s still better than Telegram in terms of security.
Of course, Telegram has popular features like channels and there might not be great alternatives to that at the moment<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>.
But that doesn&rsquo;t mean you should use this app for all communications, especially ones containing sensitive information.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>There are also apps based on <a  href="https://xmpp.org/" rel="noreferrer" target="_blank">XMPP</a> and <a  href="https://matrix.org/" rel="noreferrer" target="_blank">Matrix</a> protocols but, due to a number of social factors, I don&rsquo;t think they can gain wide adoption.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Let me know if there are!&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description><category>government</category><category>privacy</category><category>technology</category></item><item><title>Who's Watching You?</title><link>https://dovydas.com/blog/whos-watching-you/</link><pubDate>Mon, 07 Feb 2022 12:10 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2022/02/whos-watching-you/</guid><description><![CDATA[
      
      <p>Once you are told about Hikvision, you notice it everywhere in the UK.
Cameras made by Chinese state-owned companies are used by most public bodies, including schools, universities, local authorities, and even a significant fraction of police forces.
Some cameras have disturbing capabilities, including gender and age detection, and yet suffer from security vulnerabilities.</p>
<p>Big Brother Watch has just published an important report on this, detailing the findings from 4500 Freedom of Information requests and describing the capabilities of modern cameras by Hikvision and Dahua.
I am happy to have been able to contribute in a small way.</p>
<p>You can read the full report <a  href="https://bigbrotherwatch.org.uk/wp-content/uploads/2022/02/Whos-Watching-You_The-dominance-of-Chinese-state-owned-CCTV-in-the-UK.pdf" rel="noreferrer" target="_blank">here</a>.</p>

      ]]></description><category>government</category><category>privacy</category><category>technology</category></item><item><title>Open Source: Trust and Money</title><link>https://dovydas.com/blog/open-source-trust-and-money/</link><pubDate>Sat, 13 Nov 2021 11:45 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/essays/2021/11/open-source-trust-and-money/</guid><description><![CDATA[
      
      <p>Signal <a  href="https://signal.org/blog/keeping-spam-off-signal/" rel="noreferrer" target="_blank">recently announced</a> that they will move away from a fully open-source model. To fight spam, a fraction of the server-side code will become closed. Some people became worried&mdash;&ldquo;WHAT ARE THEY HIDING?&rdquo;&mdash;but, honestly, I couldn&rsquo;t care less if server side is &ldquo;open source&rdquo;. It actually made me realize that we are finally living in an age where you can run fully open-source software on clients&rsquo; devices, collect zero personal data and still make money.</p>
<h2 id="trusting-the-server">Trusting the Server</h2>
<p>Here&rsquo;s how the Internet<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> works. If you type in <a  href="https://yoshke.org/contact" rel="noreferrer" target="_blank"><code>yoshke.org/contact</code></a> into your browser&rsquo;s address bar, a request will be made to the server (that I control) responsible for <a  href="https://yoshke.org" rel="noreferrer" target="_blank"><code>yoshke.org</code></a> domain name. Ideally, all you&rsquo;d want this server to do is send back an HTML document containing my contact details. But you have no guarantee how and what the server will do. I could be</p>
<ul>
<li>generating the page each time or simply serving a static file</li>
<li>sending different contact details to different people</li>
<li>logging your IP address and selling the information to the Chinese Communist Party</li>
</ul>
<p>The first one shouldn&rsquo;t matter to you, the second one is really annoying, and the third one&mdash;well, it depends&hellip; My point is, if you don&rsquo;t know what&rsquo;s happening on my server, how can you trust me with your data? After all, this website doesn&rsquo;t even have a privacy policy&mdash;OH NO!</p>
<p>The good thing is that you don&rsquo;t have to <em>trust</em> me. This website uses zero cookies<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>&mdash;you can confirm it in your browser. Thus, the only information you&rsquo;re sending me is your IP address<sup id="fnref:3"><a href="#fn:3"  role="doc-noteref">3</a></sup> which <em>alone</em> can&rsquo;t be used to personally identify you.</p>
<p>What about Signal? It is a messaging platform so all it deals with is private information! Fortunately, it is end-to-end encrypted. If Alice wants to send a message to Bob, it will get encrypted before leaving her device. The server will receive a series of seemingly random characters but even if they decide to store it or send it to someone other than Bob, these characters will be worthless to them. That&rsquo;s because only Bob has the key capable of decrypting them into the message that Alice sent him.</p>
<p>So all we should care about is that Signal keeps their client-side app fully open. Unless you wish to run your own Signal server, it doesn&rsquo;t matter what fraction of the server-side code they publish on GitHub&mdash;we couldn&rsquo;t verify that that&rsquo;s what they&rsquo;re running anyway. As long as we (or someone who understands cryptography) can verify that the messages are properly encrypted, we can feel safe about our communications.</p>
<h2 id="zero-knowledge-business-model">Zero-Knowledge Business Model</h2>
<p>Unfortunately, most of the other apps utilize personal data in some way. Even if they say they don&rsquo;t you can&rsquo;t be sure because the majority are not revealing the code that is running on your device. And it makes sense&mdash;businesses have little incentive to open-source their apps.</p>
<p>But there <em>are</em> examples of community- or even business-driven applications whose source code is available to the end user. A major problem, though, is that most people possess multiple devices. If you install a note-taking app on your phone, you&rsquo;d probably want to access those notes on your desktop computer. How do you do that while keeping them private? Open-source evangelists will probably recommend you some program which you can host on your server and which will sync the data between your devices. The issue is&hellip; normal people don&rsquo;t own servers.</p>
<p>Although the end-to-end encryption model is usually synonymous with communication apps, I believe there is a huge market in other segments as well. There is no reason why your notes, calendars or news feeds which you subscribe to shouldn&rsquo;t be encrypted by default&mdash;if all the server does is synchronize data between devices, it doesn&rsquo;t need to know what the contents are<sup id="fnref:4"><a href="#fn:4"  role="doc-noteref">4</a></sup>. It also solves the financial incentive problem<sup id="fnref:5"><a href="#fn:5"  role="doc-noteref">5</a></sup>&mdash;everything that runs on your devices is open source, yet the entrepreneurs can still make money by offering a service that syncs your data. Importantly, you don&rsquo;t have to trust them because all they&rsquo;ll know is where the encrypted data are coming from and where they should be sent to.</p>
<p>I am actually surprised this isn&rsquo;t a more popular business model. In a world where people are supposedly becoming more conscious about their privacy online, only fake solutions like VPNs<sup id="fnref:6"><a href="#fn:6"  role="doc-noteref">6</a></sup> are starting to gain traction. I hope it&rsquo;s just a <a  href="https://news.ycombinator.com/item?id=25062230" rel="noreferrer" target="_blank">marketing problem</a> because trustless zero-knowledge apps seem to be one of the very few ways to ensure <em>real</em> digital privacy.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>As a side note, only zoomers and <a  href="https://www.nytimes.com/2016/06/02/insider/now-it-is-official-the-internet-is-over.html" rel="noreferrer" target="_blank">the NYT</a> choose not to capitalize this word.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>I also don&rsquo;t use embedded social media buttons or YouTube video players which often enable these third parties to track you.&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>This is necessary so that I know where the requested information should be sent back to.&#160;<a href="#fnref:3"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p><a  href="https://www.etebase.com/" rel="noreferrer" target="_blank">Etebase</a> looks like an amazing framework for this kind of model.&#160;<a href="#fnref:4"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>At one point in his life, Travis Oliphant, the creator of <a  href="https://numpy.org/" rel="noreferrer" target="_blank">NumPy</a>, was worried about the amount of time he was spending on writing open-source software&mdash;how does one make money, afford to have kids, etc.? So he asked <a  href="https://stallman.org/" rel="noreferrer" target="_blank">Richard Stallman</a> and here&rsquo;s what Stallman had to say: <a  href="https://youtu.be/gFEE3w7F0ww?t=2444" rel="noreferrer" target="_blank">&ldquo;Well, you know, I think just be like me and don&rsquo;t have kids.&rdquo;</a> I can&rsquo;t express in words how stupid this advice is. It&rsquo;s ridiculous to abandon plans of starting a family just to develop software which is in line with your ethics.&#160;<a href="#fnref:5"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:6">
<p>All that VPNs are good for is torrenting and <a  href="https://www.bbc.com/news/world-europe-44248448" rel="noreferrer" target="_blank">accessing US newspapers</a>.&#160;<a href="#fnref:6"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description><category>privacy</category><category>technology</category></item><item><title>Genetic Privacy</title><link>https://dovydas.com/blog/genetic-privacy/</link><pubDate>Sun, 03 Oct 2021 07:20 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/10/genetic-privacy/</guid><description><![CDATA[
      
      <p><a  href="https://odysee.com/@veritasium:f/your-dna-is-already-in-a-database:4" rel="noreferrer" target="_blank">This Veritasium video</a> gives a great overview of how genetic information can be used to solve criminal cases nowadays. The idea is that the criminal&rsquo;s DNA doesn&rsquo;t have to be on anyone&rsquo;s database&mdash;genetic information from the relatives (e.g. from genetic testing companies) can be partially matched to the DNA found at the crime scene. This allows to narrow down possible suspects to very few individuals.</p>
<p>I cannot imagine how important this is to the victims&rsquo; families, but the increasing availability of genetic information scares me a lot too. Not only the fact that it could be abused by governments or insurance companies (as mentioned in the video), but also the fact that <a  href="https://www.washingtonpost.com/news/the-switch/wp/2017/09/20/the-single-most-depressing-thing-about-the-equifax-breach/" rel="noreferrer" target="_blank">catastrophic data breaches</a> do happen. Even if you&rsquo;ve never used the services of genetic testing companies, a fuzzy signature of your DNA is already stored on someone&rsquo;s servers. Your DNA is not your password or your credit card&mdash;if it gets stolen, you can&rsquo;t just change it. Today, the damage would probably be limited. But I&rsquo;m worried how tomorrow&rsquo;s technology will change the calculus.</p>

      ]]></description></item><item><title>Amazon Alternative for Books</title><link>https://dovydas.com/blog/amazon-alternative-for-books/</link><pubDate>Mon, 16 Aug 2021 12:50 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/08/amazon-alternative-for-books/</guid><description><![CDATA[
      
      <p>Amazon originally started as an online marketplace for books. It has since expanded to all sectors of <a  href="https://www.emarketer.com/content/top-10-us-ecommerce-companies-2021-plus-6-key-takeaways-our-latest-forecast" rel="noreferrer" target="_blank">online retail</a>, <a  href="https://www.cnbc.com/2021/07/29/aws-earnings-q2-2021.html" rel="noreferrer" target="_blank">internet infrastructure</a>, <a  href="https://chainstoreage.com/amazon-reports-third-consecutive-100-billion-quarter-store-sales-10" rel="noreferrer" target="_blank">physical stores</a> and <a  href="https://www.bbc.com/news/technology-56835803" rel="noreferrer" target="_blank">services</a>. Even so, it remains the dominant player in the bookselling business.</p>
<p>Not feeling comfortable using Amazon anymore, many people are looking for alternatives. But that&rsquo;s especially complicated when it comes to books. Amazon is great at it&mdash;they have all the books one might be looking for, their prices are probably the best, and the review system helps you find out about the print (and sometimes content) quality before purchasing a book. But I think I found<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> a good enough alternative that I&rsquo;ve been using for the past five months&mdash;<a  href="https://bookshop.org" rel="noreferrer" target="_blank">bookshop.org</a> (or if you, like me, are in the UK&mdash;<a  href="https://uk.bookshop.org" rel="noreferrer" target="_blank">uk.bookshop.org</a>).</p>
<p>You can find most books on Bookshop, albeit at a slightly higher price than at Amazon. But the main reason I&rsquo;m using this new service is because they support local bookshops. With every order, you&rsquo;ll be <a  href="https://bookshop.org/pages/about" rel="noreferrer" target="_blank">contributing to an earnings pool</a> that is evenly distributed among independent bookshops. Alternatively, you can pick a specific store you want to support.</p>
<p>I must mention that not all booksellers are happy about this. A <a  href="https://www.newstatesman.com/culture/books/2020/12/bookshoporg-independent-bookshops-andy-hunter-waterstones" rel="noreferrer" target="_blank">New Statesman article</a> says</p>
<blockquote>
<p>Bookshops earn less through sales on Bookshop.org than they would from selling their books direct to customers, and booksellers fear the site, rather than competing with Amazon, is diverting shoppers away from the high street.</p>
</blockquote>
<p>Sure, if you are looking for Obama&rsquo;s newest memoir, you are going to find it in most bookshops&mdash;that&rsquo;s where you should buy it. But for those looking for less popular books or for those who would buy online anyway, Bookshop seems like a good option.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>thanks to <a  href="https://the-realignment.simplecast.com/" rel="noreferrer" target="_blank">The Realignment Podcast</a> (which you should check out!)&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

      ]]></description></item><item><title>RSS Screwup</title><link>https://dovydas.com/blog/rss-screwup/</link><pubDate>Wed, 14 Jul 2021 09:35 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/07/rss-screwup/</guid><description>
      
      &lt;p>I was decanonifying (is that a word?) my URLs and, as a result, accidentally altered GUIDs of some RSS items. This might have lead some feed readers to misidentify a number of old posts as new ones. Sorry! Should be fixed now.&lt;/p>

      </description></item><item><title>Your Medical Data</title><link>https://dovydas.com/blog/your-medical-data/</link><pubDate>Fri, 11 Jun 2021 13:20 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/06/your-medical-data/</guid><description><![CDATA[
      
      <p>NHS is planning to store UK patients&rsquo; medical histories in a centralized database with <a  href="https://www.ft.com/content/9fee812f-6975-49ce-915c-aeb25d3dd748" rel="noreferrer" target="_blank">access provided</a> to &ldquo;academic and commercial third parties for research and planning purposes&rdquo;.
The government is justifying the move by claiming that it will save lives and the data<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> of patients will be replaced with unique codes anyway, so there is supposedly no risk of compromising privacy.
However, the <a  href="https://digital.nhs.uk/data-and-information/data-collections-and-data-sets/data-collections/general-practice-data-for-planning-and-research/transparency-notice" rel="noreferrer" target="_blank">NHS will be able to convert the codes back to data</a> to identify the patients &ldquo;in certain circumstances, and where there is a valid legal reason&rdquo;.</p>
<p>Your data are not secure.
If the NHS can identify you, so can anyone who compromises their centralized database.
Your data at your local GP probably aren&rsquo;t secure either, but it&rsquo;s less likely that they will be targeted&mdash;orders of magnitude smaller reward simply isn&rsquo;t worth it to most hackers.
But even if this database doesn&rsquo;t get hacked, the government doesn&rsquo;t exactly inspire confidence so I&rsquo;m not enthusiastic about entrusting it with even more power.</p>
<p>These concerns are shared by a lot of people, and so, after backlash, the <a  href="https://www.bbc.co.uk/news/uk-politics-57400902" rel="noreferrer" target="_blank">NHS has decided to delay</a> the creation of the database by two months (from July to September of this year).
This is important because you now have time (if you wish) to opt out and prevent &ldquo;your GP data leaving your GP practice for purposes other than your direct care&rdquo;.
You can do this by following the steps <a  href="https://medconfidential.org/how-to-opt-out/" rel="noreferrer" target="_blank">HERE</a>.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a  href="https://digital.nhs.uk/data-and-information/data-collections-and-data-sets/data-collections/general-practice-data-for-planning-and-research/transparency-notice" rel="noreferrer" target="_blank">NHS number, General Practice Local Patient Number, full postcode and date of birth</a>.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>privacy</category></item><item><title>Why Doesn't Google Maps Use Its Own Subdomain?</title><link>https://dovydas.com/blog/why-doesnt-google-maps-use-its-own-subdomain/</link><pubDate>Tue, 01 Jun 2021 20:50 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/06/why-doesnt-google-maps-use-its-own-subdomain/</guid><description><![CDATA[
      
      <p>I&rsquo;ve recently moved to a new place and realized that I need a haircut. So I opened Google Maps on my laptop with the hope of finding a decent barbershop nearby. Being a bit lazy, I just pressed the button that would center the map around my location automatically. A message appeared asking me to change location permissions in the site settings. I&rsquo;m not enthusiastic about providing even more data to Google, but, I figured, whatever, Maps can have my location.</p>
<p>When I opened the site settings, I was a bit surprised because all the permission changes would apply not only to Google Maps, but also to Google Search which uses <a  href="https://www.google.com" rel="noreferrer" target="_blank">www.google.com</a> domain name. I was surprised because I had been under the impression that Google Maps uses <a  href="https://maps.google.com" rel="noreferrer" target="_blank">maps.google.com</a> domain name; had this been the case, it would have allowed me to apply separate site settings to Google Maps <em>only</em><sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>. But then I checked the URL, and nope&mdash;it&rsquo;s <a  href="https://maps.google.com/maps" rel="noreferrer" target="_blank">www.google.com/maps</a> instead.</p>
<p>Why did I think that Google Maps uses its own subdomain? Because every other major Google service does!</p>
<ul>
<li>Gmail: <a  href="https://mail.google.com" rel="noreferrer" target="_blank">mail.google.com</a></li>
<li>Google Duo: <a  href="https://duo.google.com" rel="noreferrer" target="_blank">duo.google.com</a></li>
<li>Google Cloud: <a  href="https://cloud.google.com" rel="noreferrer" target="_blank">cloud.google.com</a></li>
<li>Google Fonts: <a  href="https://fonts.google.com" rel="noreferrer" target="_blank">fonts.google.com</a></li>
<li>Google Photos: <a  href="https://photos.google.com" rel="noreferrer" target="_blank">photos.google.com</a></li>
<li>Google Play: <a  href="https://play.google.com" rel="noreferrer" target="_blank">play.google.com</a></li>
<li>Google Voice: <a  href="https://voice.google.com" rel="noreferrer" target="_blank">voice.google.com</a></li>
<li>Google {Docs, Sheets, Slides, Forms}: <a  href="https://docs.google.com" rel="noreferrer" target="_blank">docs.google.com</a></li>
</ul>
<p>Now, you can enter <a  href="https://maps.google.com" rel="noreferrer" target="_blank">maps.google.com</a> into the address bar, but it will simply redirect you to <a  href="https://maps.google.com/maps" rel="noreferrer" target="_blank">www.google.com/maps</a>. So why does Google make an exception for Maps? I don&rsquo;t know for sure but I am hypothesizing that the answer lies in how I uncovered this in the first place. It could be the case that the best way for Google Search to gain access to users&rsquo; location in browsers is through Maps where providing such access seems reasonable. This information might be so valuable that it warrants Google Maps not utilizing its own subdomain.</p>
<p>In the end, I didn&rsquo;t provide the access, and simply entered my postal code. There is a barbershop a few blocks away with a perfect 5.0 star rating (with a large enough sample size), so I guess I&rsquo;ll try them!</p>
<hr>


<p><strong>Update #1</strong> (June 2, 2021): In an <a  href="https://news.ycombinator.com/item?id=27360385" rel="noreferrer" target="_blank">exchange on Hacker News</a>, I was told that Google Maps had utilized <a  href="https://maps.google.com" rel="noreferrer" target="_blank">maps.google.com</a> before, but switched to <a  href="https://maps.google.com/maps" rel="noreferrer" target="_blank">www.google.com/maps</a> about two years ago. So this does seem to be a  calculated move.</p>

<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>I think this is how all Chromium-based browsers handle permissions, i.e. different settings can be applied to <code>subdomainA.domain.tld</code> and <code>subdomainB.domain.tld</code>.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>privacy</category><category>technology</category><category>web technology</category></item><item><title>Don't Teach Statistics in High School</title><link>https://dovydas.com/blog/dont-teach-statistics-in-high-school/</link><pubDate>Thu, 20 May 2021 16:35 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/essays/2021/05/dont-teach-statistics-in-high-school/</guid><description><![CDATA[
      
      <p>In recent years, there have been <a  href="https://www.ted.com/talks/arthur_benjamin_teach_statistics_before_calculus" rel="noreferrer" target="_blank">more</a> and <a  href="https://stanfordreview.org/calculus-is-overrated-why-we-should-prioritize-statistics-ec8b147389a3" rel="noreferrer" target="_blank">more</a> calls to prioritize statistics in high-school math curricula. The rationale is that unlike, say, calculus, statistics is supposedly much more applicable in everyday life. Sounds nice, but what does that <em>really</em> mean? Computing averages? Hell yeah, that&rsquo;s useful<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>! But most of the things that are taught in a typical (<a  href="https://apcentral.collegeboard.org/pdf/ap-statistics-course-a-glance.pdf" rel="noreferrer" target="_blank">AP</a>, <a  href="https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/516949/GCE_AS_and_A_level_subject_content_for_mathematics_with_appendices.pdf" rel="noreferrer" target="_blank">A-level</a>, <a  href="https://www.holyheart.ca/wp-content/uploads/2019/06/Mathematics-Analysis-and-Approaches-Guide-first-assessment-2021.pdf" rel="noreferrer" target="_blank">IB</a>) high-school stats course are not only of little practical value, but also&mdash;and more importantly&mdash;misleading. Statistics is one of very few subjects where studying it for a short time leads to poorer intuition about the real world than not having studied it at all.</p>
<h2 id="its-real-hard">It&rsquo;s Real Hard</h2>
<p>Analyzing noisy data and making decisions based on that is incredibly difficult, but we have somehow convinced ourselves that this is something any 17-year-old should be able to do with the help of a few simplistic tools. It&rsquo;s delusional and it should be obvious by now. Even most of the people whose job is to utilize statistics every day don&rsquo;t really know what they are doing.</p>
<p>In 2002, academics and students from psychology departments of several German universities were asked to fill out a questionnaire [<a  href="#bibreference-1" title="H. Haller and S. Krauss, Misinterpretations of significance: A problem students share with their teachers, Methods of Psychological Research, vol. 7, no. 1, pp. 1–20, 2002. ">1</a>]. It consisted of 6 statements about the concepts behind statistical significance in hypothesis testing; the respondents had to mark each statement as either true or false. The bar chart below shows what proportion of each group marked all 6 statements correctly:</p>






<div >
  <figure >
    <img
        
        src="https://dovydas.com/images/blog/significance.f99be532e339f3b669d615b87dba089d8f7610983b8e0e74152f5ce394ff15bc.svg"
        width="269.266"
        height="238.108"
        loading="eager"
        
        alt="A bar chart. y axis: &#39;Proportion that marked all 6 statements correctly (%)&#39;. x axis: 1) &#39;Academics teaching statistics (n = 30)&#39;: 20%, 2) &#39;Academics not teaching statistics (n = 39)&#39;: 10.3%, 3) &#39;Psychology students (n = 44)&#39;: 0%."
        
        
        >
        
  </figure>
</div>

<p>The fact that all students who had taken statistics courses made at least one mistake is not as scary as the fact that so did most of the instructors who teach these courses. But upon reflection, this isn&rsquo;t surprising. Statistics courses in high schools and universities aren&rsquo;t meant to develop understanding. They are all about &ldquo;useful&rdquo; procedures that make little sense but are supposed to make data analysis more rigorous<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>. One of such procedures has been half-jokingly dubbed the &ldquo;null ritual&rdquo; by Gerd Gigerenzer [<a  href="#bibreference-2" title="G. Gigerenzer, Mindless statistics, The Journal of Socio-Economics, vol. 33, no. 5, pp. 587–606, 2004. doi:10.1016/j.socec.2004.09.033">2</a>]:</p>
<blockquote>
<ol>
<li>Set up a statistical null hypothesis of &ldquo;no mean difference&rdquo; or &ldquo;zero correlation.&rdquo; Don&rsquo;t specify the predictions of your research hypothesis or of any alternative substantive hypotheses.</li>
<li>Use 5% as a convention for rejecting the null. If significant, accept your research hypothesis. Report the result as <em>p</em> &lt; 0.05, <em>p</em> &lt; 0.01, or <em>p</em> &lt; 0.001 (whichever comes next to the obtained <em>p</em>-value).</li>
<li>Always perform this procedure.</li>
</ol>
</blockquote>
<h2 id="better-than-nothing">Better Than Nothing?</h2>
<p>Misusing statistical methods is worse than not using them at all. They have become a way of presenting results based on small sample sizes as solid evidence. We know this happens all the time because a large number of studies cannot be replicated; in fact, many more than one would expect given the assumptions about randomness in them. In 2018, an effort was made to reproduce 28 famous psychology experiments [<a  href="#bibreference-3" title="R. Klein, M. Vianello, F. Hasselman, B. Adams, R. Adams Jr, S. Alper, M. Aveyard, J. Axt, M. Babalola, Š. Bahnı́k, et al., Many labs 2: Investigating variation in replicability across samples and settings, Advances in Methods and Practices in Psychological Science, vol. 1, no. 4, pp. 443–490, 2018. doi:10.1177/2515245918810225">3</a>]. Only half yielded significant results when repeated with large sample sizes.</p>
<p>That&rsquo;s terrible. It&rsquo;s not just that these studies are wrong. Other scientists build on top of that, using them to explain their own questionable findings. Pretty soon you have people tweeting &ldquo;New study shows that&hellip;&rdquo; or, worse, politicians introducing new legislation because TRUST THE SCIENCE™.</p>
<h2 id="things-to-teach">Things to Teach</h2>
<p>The fact that people who take university-level statistics courses still misuse it, should make it obvious that this is not something we should be teaching to high-school students. Sadly, that won&rsquo;t change the minds of new-wave educators who are all about making math &ldquo;more useful in the real world&rdquo;. But <em>teaching students about instantiations of concepts, rather than their abstractions is simply a bad strategy</em>. I almost never see students who understand the theory well struggling to apply it to a specific problem in the real world. But I observe the opposite all the time&mdash;students learn some algorithm (&ldquo;trick&rdquo;, &ldquo;hack&rdquo;), they know how to use it to solve a particular problem, but when they are asked to explain it or to apply it in a different context, they almost always fail. Statistics education in high schools and universities is the most unfortunate example of this.</p>
<p>I believe math education should be all about enabling students to think abstractly. But if I had to compromise and develop a syllabus for high-school statistics, it would be very different from what we have now. It wouldn&rsquo;t instruct students to use hypothesis testing or correlation coefficients because these can be easily misused if not understood properly. Instead, it would be a course about being skeptical, about always questioning conclusions based on data:</p>
<ul>
<li>Could this be explained by randomness?</li>
<li>Was this discovered by testing a hypothesis or looking for a pattern in a large data set [<a  href="#bibreference-4" title="G. Smith and S. Ebrahim, Data dredging, bias, or confounding: They can all get you into the BMJ and the friday papers, BMJ, vol. 325, no. 7378, pp. 1437–1438, 2002. doi:10.1136/bmj.325.7378.1437">4</a>]?</li>
<li>Even if observed effects are significant, could they be explained by some other variable<sup id="fnref:3"><a href="#fn:3"  role="doc-noteref">3</a></sup>?</li>
</ul>
<p>Knowing how to explore these is not enough to perform statistical analyses, but asking such questions will certainly make students more confident while navigating the world where dubious claims are being made all the time. And for those who wish to use statistics the right way, a long road lies ahead, with lots of concepts to be mastered first. It will take time. But that&rsquo;s OK.</p>
<h2 id="references">References</h2>
<ol ><li  id="bibreference-1">H. Haller and&#32;S. Krauss,&#32;<q>Misinterpretations of significance: A problem students share with their teachers,</q>&#32;<em>Methods of Psychological Research</em>,&#32;vol. 7,&#32;no. 1,&#32;pp. 1–20,&#32;2002.&#32;</li><li  id="bibreference-2">G. Gigerenzer,&#32;<q>Mindless statistics,</q>&#32;<em>The Journal of Socio-Economics</em>,&#32;vol. 33,&#32;no. 5,&#32;pp. 587–606,&#32;2004.&#32;doi:<a  rel="noopener" target="_blank" href="https://doi.org/10.1016/j.socec.2004.09.033">10.1016/j.socec.2004.09.033</a></li><li  id="bibreference-3">R. Klein,&#32;M. Vianello,&#32;F. Hasselman,&#32;B. Adams,&#32;R. Adams Jr,&#32;S. Alper,&#32;M. Aveyard,&#32;J. Axt,&#32;M. Babalola,&#32;Š. Bahnı́k,&#32;<em>et al.</em>,&#32;<q>Many labs 2: Investigating variation in replicability across samples and settings,</q>&#32;<em>Advances in Methods and Practices in Psychological Science</em>,&#32;vol. 1,&#32;no. 4,&#32;pp. 443–490,&#32;2018.&#32;doi:<a  rel="noopener" target="_blank" href="https://doi.org/10.1177/2515245918810225">10.1177/2515245918810225</a></li><li  id="bibreference-4">G. Smith and&#32;S. Ebrahim,&#32;<q>Data dredging, bias, or confounding: They can all get you into the BMJ and the friday papers,</q>&#32;<em>BMJ</em>,&#32;vol. 325,&#32;no. 7378,&#32;pp. 1437–1438,&#32;2002.&#32;doi:<a  rel="noopener" target="_blank" href="https://doi.org/10.1136/bmj.325.7378.1437">10.1136/bmj.325.7378.1437</a></li></ol>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>It&rsquo;s also something that students already know how to do by the time they reach high school anyway.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>I, too, used these procedures in my undergrad years, thinking that this is what science is all about.&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>&ldquo;Oh boy, all these drownings seem to be really driving the ice cream sales!&rdquo;&#160;<a href="#fnref:3"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>education</category><category>science</category><category>statistics</category></item><item><title>Undoing Robert Maxwell</title><link>https://dovydas.com/blog/undoing-robert-maxwell/</link><pubDate>Tue, 04 May 2021 09:35 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/essays/2021/05/undoing-robert-maxwell/</guid><description><![CDATA[
      
      <p>&ldquo;The Big Short&rdquo; opens with the following lines:</p>
<blockquote>
<p>In the late seventies, banking was not a job you went into to make large sums of money. It was a fucking snooze. &lt;&hellip;&gt; And if banking was boring then the bond department at a bank was downright comatose. &lt;&hellip;&gt; That is, until Lewis Ranieri came on the scene at Solomon Brothers&hellip;</p>
</blockquote>
<p>What Lewis Ranieri did to banking by introducing mortgage-backed securities, Robert Maxwell had done to scientific publishing by exploiting the broken incentive structure of that industry.</p>
<h2 id="the-sundae">The Sundae</h2>
<p>Scientific knowledge is disseminated through academic publishers: scientists perform research, they submit their findings to journals, and then others scientists read about those findings, usually through their university library which purchases access to the periodicals. The bottleneck of this whole process, at least in the UK, used to be trying to have your papers be even considered by the journals. These were usually created by scientific societies that were slow and focused almost exclusively on works published for their own members [<a  href="#bibreference-1" title="B. Cox, The Pergamon phenomenon 1951–1991: Robert Maxwell and scientific publishing, Learned Publishing, vol. 15, no. 4, pp. 273–278, 2002. ">1</a>].</p>
<p>But in the early 1950s, there comes this guy&mdash;Robert Maxwell&mdash;whose tactics are much more aggressive. Having recently become the majority shareholder of Pergamon Press, he takes a very proactive approach to scientific publishing. He goes to conferences, invites researchers to parties in villas or on private jets<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> with one goal in mind&mdash;to convince individual scientists that their field needs a new journal and to recruit them as editors [<a  href="#bibreference-2" title="S. Buranyi, Is the staggeringly profitable business of scientific publishing bad for science?, The Guardian, 2017. [Online]. Available: https://www.theguardian.com/science/2017/jun/27/profitable-business-scientific-publishing-bad-for-science [Accessed: May. 2, 2021]. ">2</a>].</p>
<p>And just like that, Robert Maxwell began quickly turning Pergamon into a household name. By 1960, it was publishing 59 journals, and more were added every year [<a  href="#bibreference-1" title="B. Cox, The Pergamon phenomenon 1951–1991: Robert Maxwell and scientific publishing, Learned Publishing, vol. 15, no. 4, pp. 273–278, 2002. ">1</a>]. It seemed that it was a win not only for the publishers, but for the scientists too&mdash;more of them were now able to share their findings with the world. And although the exponential growth of this industry was worrying to some, most believed that that&rsquo;s what the market was demanding, thus the move towards a new economic equilibrium seemed only natural.</p>
<p>The problem was that the industry wasn&rsquo;t operating under the free-market principles. Maxwell&rsquo;s genius was to recognize that. As new journals were emerging, scientists wanted to keep up with all this knowledge, and libraries were willing to satisfy that need. Universities began subscribing to every new journal that Pergamon or other major publishers created. With government funding for research only increasing throughout the sixties and seventies [<a  href="#bibreference-2" title="S. Buranyi, Is the staggeringly profitable business of scientific publishing bad for science?, The Guardian, 2017. [Online]. Available: https://www.theguardian.com/science/2017/jun/27/profitable-business-scientific-publishing-bad-for-science [Accessed: May. 2, 2021]. ">2</a>], there was no incentive for Maxwell (and others who mimicked him) to slow down. And so the publishers became the kingmakers of science.</p>
<h2 id="seafood-stew">Seafood Stew</h2>
<p>Half a century later, we are at a point where <em>each</em> of the major academic publishers controls <em>thousands</em> of journals, and most of the following is usually true:</p>
<ul>
<li>Papers submitted to journals undergo a process called peer review where other scientists judge the novelty and quality of the work, and help determine whether it should be published. They don&rsquo;t get paid.</li>
<li>The authors sign away their copyright. It is not uncommon for the journals to demand hundreds of dollars for figures that the authors themselves produced if they want to reuse them in, say, review articles.</li>
<li>Governments fund scientific research in universities, scientists submit their work to journals without getting paid, and then the governments (indirectly) pay the publishers for scientists&rsquo; access to those journals.</li>
<li>The public (which pays for all of this) <a  href="https://ec.europa.eu/info/research-and-innovation/strategy/goals-research-and-innovation-policy/open-science/open-science-monitor/trends-open-access-publications_en" rel="noreferrer" target="_blank">doesn&rsquo;t have access to most of the published papers</a>.</li>
</ul>
<p>The last point has especially troubled governments for decades. But academic publishers&mdash;being the crafty and morally onerous supporters of science that they are&mdash;have finally embraced a solution proposed by activists: Open Access. For a small fee (<a  href="https://www.nature.com/articles/d41586-020-02959-1" rel="noreferrer" target="_blank">of up to $11,200 per article</a>) many journals now offer the authors to make their work open to the public.</p>
<p>Publishers want everyone to believe that they provide great value to the scientific community and that they are already being generous, but <a  href="https://www.bloomberg.com/opinion/articles/2020-06-30/covid-19-shows-scientific-journals-like-elsevier-need-to-open-up" rel="noreferrer" target="_blank">the data</a> just don&rsquo;t support that. In 2019, Nature Springer had an operating profit margin of 23%, Wiley&mdash;of 27%, and Elsevier (which had absorbed Pergamon in the nineties)&mdash;of 37%. And that&rsquo;s not surprising&mdash;most of the work for them is done for free. Their costs are mainly the salaries of the editors and the people who format the accepted papers<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>; hosting the papers on the website is unlikely to be expensive<sup id="fnref:3"><a href="#fn:3"  role="doc-noteref">3</a></sup>. Publishers are just middlemen.</p>
<h2 id="the-b-word">The B-Word</h2>
<p>I was wondering how to remove the need for publishers altogether, and I&rsquo;m slightly embarrassed by the first thing that popped into my mind. Blockchain. I roll my eyes 90% of the time when I hear this word because it almost always is <em>a solution in search of a problem</em>. However, in this specific case, it could actually solve a real problem. I was reassured after I had found out that <a  href="https://decentralizedscience.github.io/papers/hicssDecentralizedScience.pdf" rel="noreferrer" target="_blank">others</a> too are taking this idea seriously.</p>
<p>Blockchain approach would allow scientists to share and assess each other&rsquo;s work without middlemen. More specifically, it could facilitate</p>
<ul>
<li>peer review process that ensures
<ul>
<li>fair selection of reviewers</li>
<li>accountability of reviewers</li>
<li>if necessary, anonymity of authors and/or reviewers</li>
</ul>
</li>
<li>decentralized distribution of knowledge immune to
<ul>
<li>arbitrary changes to terms of service</li>
<li><a  href="https://www.nature.com/articles/s41467-020-20617-y" rel="noreferrer" target="_blank">influence from the mobs</a><sup id="fnref:4"><a href="#fn:4"  role="doc-noteref">4</a></sup></li>
</ul>
</li>
</ul>
<p>The technology to replace academic publishers is clearly here, but that&rsquo;s not enough. Different journals have become (non-perfect) proxies for the quality of the research&mdash;if the author has the freedom to choose to submit their paper to either Nature or some new crypto platform used only by libertarian weirdos, they will pick the former every time. Sure, the equivalents of journals with different impact factors and prestige attached to them could naturally arise in the blockchain implementation, but not until their widespread adoption.</p>
<p>I love free-market solutions, but they may not be sufficient to convince the scientific community to abandon traditional academic publishers. The whole industry is just too heavily distorted by government influence. Obviously, I&rsquo;m angry at the publishers but, really, I shouldn&rsquo;t be. Robert Maxwell did what he was supposed to do&mdash;maximize profits. Similarly, scientists don&rsquo;t have enough skin in the game, or more precisely, there aren&rsquo;t enough incentives for them to consider the public interest. Both of these phenomena are emergent from the way science funding works and only governments can fix it, unfortunately. And although the move towards Open Access didn&rsquo;t address the oligopoly of academic publishing, it at least showed that large-scale changes <em>are</em> possible.</p>
<h2 id="references">References</h2>
<ol ><li  id="bibreference-1">B. Cox,&#32;<q>The Pergamon phenomenon 1951–1991: Robert Maxwell and scientific publishing,</q>&#32;<em>Learned Publishing</em>,&#32;vol. 15,&#32;no. 4,&#32;pp. 273–278,&#32;2002.&#32;</li><li  id="bibreference-2">S. Buranyi,&#32;<q>Is the staggeringly profitable business of scientific publishing bad for science?,</q>&#32;<i>The Guardian</i>,&#32;2017.&#32;[Online]. Available: <a  rel="noopener" target="_blank" href="https://www.theguardian.com/science/2017/jun/27/profitable-business-scientific-publishing-bad-for-science">https://www.theguardian.com/science/2017/jun/27/profitable-business-scientific-publishing-bad-for-science</a>&#32;[Accessed:
May. 2, 2021].
</li></ol>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>I wonder if this was an inspiration to his daugther&rsquo;s partner who also <a  href="https://www.theguardian.com/us-news/2019/aug/18/private-jets-parties-and-eugenics-jeffrey-epsteins-bizarre-world-of-scientists" rel="noreferrer" target="_blank">loved to hang out with scientists</a>.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>By the way, the formatting is often terrible. Using a simple LaTeX template would do a better job most of the time.&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>See page 9 of <a  href="https://static.arxiv.org/static/arxiv.marxdown/0.1/about/reports/2020_arXiv_annual_report.pdf" rel="noreferrer" target="_blank">arXiv&rsquo;s 2020 annual report</a>.&#160;<a href="#fnref:3"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Just to be clear, I am not saying that this paper was very rigorous. It&rsquo;s just that if we apply such standards selectively, a bias will be introduced favoring certain types of conclusions.&#160;<a href="#fnref:4"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>government</category><category>science</category></item><item><title>Spotify Thinks I Like German Music</title><link>https://dovydas.com/blog/spotify-thinks-i-like-german-music/</link><pubDate>Wed, 28 Apr 2021 18:25 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/04/spotify-thinks-i-like-german-music/</guid><description><![CDATA[
      
      <p>Spotify collects so much behavioral data, yet I&rsquo;m amazed at how poorly its AI is utilizing them. Each Discover Weekly playlist of mine for the last two years has included at least one German song. I can hide these songs, I can skip them, and yet nothing has an effect on the recommendations. I&rsquo;ve already lost count of how many times I&rsquo;ve been recommended a 20-minute song about the Autobahn. Autobahn? Really?</p>
      ]]></description></item><item><title>The Strangest Thing About the Bitcoin White Paper</title><link>https://dovydas.com/blog/the-strangest-thing-about-the-bitcoin-white-paper/</link><pubDate>Wed, 07 Apr 2021 13:50 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/essays/2021/04/the-strangest-thing-about-the-bitcoin-white-paper/</guid><description><![CDATA[
      
        <p><em><strong>Note:</strong> This blog post contains LaTeX typography that will not be rendered correctly by RSS readers. To read the blog post with its original formatting, please visit <a href="https://dovydas.com/blog/the-strangest-thing-about-the-bitcoin-white-paper/" rel="noreferrer" target="_blank">https://dovydas.com/blog/the-strangest-thing-about-the-bitcoin-white-paper/</a>.</em></p>
      
      <p>A few weeks ago, I realized that the net worth of Satoshi Nakamoto, the anonymous creator of Bitcoin, makes him<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> the fifth richest person on planet Earth. I started reading about the predictions of who he is, various analyzes of his behavior before the disappearance, etc. It eventually led me to the beginning of it all&mdash;<a  href="https://bitcoin.org/bitcoin.pdf" rel="noreferrer" target="_blank">the Bitcoin white paper</a> where, for the first time, Satoshi laid out the design principles behind the Bitcoin protocol.</p>
<p>I wasn&rsquo;t surprised to find that the paper was written in $\LaTeX$. After all, that&rsquo;s what most of technically-minded people use when creating complex documents. However, one thing that stood out to me was its quality. It wasn&rsquo;t great. Here are a few typographical errors that I spotted right away:</p>
<ul>
<li>Some of the variables or calculations were not typeset in math mode.</li>
<li>Contents inside math mode were often over-italicized, e.g. the word &ldquo;if&rdquo; is written in italics, even though the convention would be to make it upright.</li>
<li>Satoshi used <code>&quot;</code> to enclose text in quotation marks, even though the preferred way is to use <code>``</code> (two backticks) for opening quotation marks and <code>''</code> (two single quotation marks) for closing quotation marks<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>.</li>
</ul>
<p>I know what you are thinking: &ldquo;YOU NERD, WHO THE HELL CARES ABOUT THE TYPESETTING CONVENTIONS OF QUOTATION MARKS?!&rdquo; Sure, if you prefer Microsoft W*rd, that&rsquo;s not something you&rsquo;ll ever consider, but people who use $\LaTeX$, on average, pay more attention to such things. The first documents I wrote in $\LaTeX$ weren&rsquo;t great, and I&rsquo;m learning new things up to this day. But Satoshi looked like someone a lot more experienced so these mistakes seemed out of place.</p>
<p>And so I DuckDuckWent<sup id="fnref:3"><a href="#fn:3"  role="doc-noteref">3</a></sup> &ldquo;satoshi nakamoto bad latex&rdquo; or something like that. It was at that moment in time that I realized&mdash;I am an idiot. I found <a  href="https://tex.stackexchange.com/questions/306754/was-anything-in-satoshi-nakamotos-original-bitcoin-paper-compiled-in-latex" rel="noreferrer" target="_blank">this discussion</a> on StackExchange which essentially showed that the Bitcoin white paper was <em>not</em> written in $\LaTeX$. I went back to the paper and became convinced of this myself. I had been fooled and I felt terrible about it.</p>
<p>But why <em>was</em> I fooled? Well, the white paper does mimic $\LaTeX$:</p>
<ul>
<li>The margins are huge which is a feature of the default templates.</li>
<li>The font used is very similar to Computer Modern (the default font in $\TeX$ documents).</li>
<li>Centered title and numbered sections in bold.</li>
<li>Author name followed by an abstract in the center of the page with even larger margins than the rest of the document.</li>
</ul>
<p>The totality of these observations made me not even question that this is a $\LaTeX$ document when I first opened it. But once the truth is revealed to you, it becomes obvious. The font is not really Computer Modern, the spacing is a little weird in some places, where math mode <em>is</em> used the equations still look really ugly.</p>
<p>The discussion on StackExchange provides some hypotheses as to how the document was actually produced. File metadata suggest that it was created using OpenOffice Writer. Of course, one could fake metadata, but the paper being written in W*rd or Writer would explain a lot&mdash;ugly typography, weird spacing, the style of the diagrams, etc. The thing that bothers me is this&mdash;why even try mimicking $\LaTeX$?</p>
<p>The fact that the document looks the way it does is no coincidence and there must have been a deliberate effort to make it look like that. Did Satoshi have some kind of insecurity about how his writings looked that he went to extreme lengths to make them appear more academic? That seems silly&mdash;it would have been much simpler to just use $\LaTeX$ which is very easy to learn, especially for someone like Satoshi. The second possibility is that OpenOffice had some sort of plugin which would allow to effortlessly make any document look more $\LaTeX$-like. I don&rsquo;t know what OpenOffice&rsquo;s capabilities in 2008 were, but this seems unlikely. I can think of only one other possible scenario<sup id="fnref:4"><a href="#fn:4"  role="doc-noteref">4</a></sup>; the only one that would make me happy.</p>
<p>What if the Bitcoin white paper <em>was</em> written in $\LaTeX$? At this point, you might already be thinking that this whole blog post is just me trolling bitcoiners, but hear me out. $\LaTeX$ is incredibly powerful and, in theory, you could even use it to make a document look ugly. That&rsquo;s not an easy task&mdash;you would have to import ugly fonts, manually modify spacing of words and characters, and change the metadata to make it look like it was produced by OpenOffice&mdash;but it&rsquo;s doable. Why would Satoshi do this though? The more I read about him, the less I understand him. But I wouldn&rsquo;t be surprised if this was his attempt at humor.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Satoshi could be a man, a woman, or a group of individuals. Given the evidence, the first scenario seems the most likely one, so, for simplicity, I&rsquo;ll make that assumption.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>I am referring to the way they should be typed in the source file, not how they will appear in the compiled file.&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>This joke is so bad that I&rsquo;m actually embarassed.&#160;<a href="#fnref:3"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Also alluded to in the StackExchange discussion.&#160;<a href="#fnref:4"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>technology</category><category>typography</category><category>visualization</category></item><item><title>Updated Website</title><link>https://dovydas.com/blog/updated-website/</link><pubDate>Sun, 28 Mar 2021 19:28 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/03/updated-website/</guid><description><![CDATA[
      
      <p>I&rsquo;ve been coding (startup- and PhD-related stuff) almost every day for about half a year now, so this weekend I decided to procrastinate a little bit&hellip; by coding <em>non-urgent</em> things. Specifically, I thought my website needed some redesigning.</p>
<p>When I first made it last summer, I had had essentially zero experience of web development. I used <a  href="https://gohugo.io/" rel="noreferrer" target="_blank">Hugo website generator</a> which made my life much easier. I could import a theme, change a few parameters, write a blog post in Markdown and voilà&mdash;I had a non-bloated static website ready to deploy to a server.</p>
<p>As I&rsquo;ve learned more about how webpages work,<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> I wanted to tweak my website in various little ways. But I spent more time analyzing HTML and CSS definitions of the theme that I was using than actually improving the website. Also, I got tired from my website&rsquo;s design. Too many people are using that same theme and, also, some stylistic choices didn&rsquo;t make much sense to me.</p>
<p>Thus, on Friday, I thought I&rsquo;d give a shot at redesigning the website. I still used Hugo, but instead of importing someone else&rsquo;s theme, I decided to design HTML templates myself and use Bootstrap for base CSS<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>. For design inspiration, I used <a  href="https://www.nybooks.com/" rel="noreferrer" target="_blank">the New York Review of Books website</a>&mdash;I adopted one (red and yellow) of their many beautiful color schemes and I also redid blog post headers by mimicking some of their layouts.</p>
<p>Other changes made include:</p>
<ul>
<li>I no longer show estimated reading time for any of the essays.</li>
<li>I no longer use Font Awesome icons. I realized I don&rsquo;t need any icons at all!</li>
<li>I converted bitmap images in the blog posts to WebP format for smaller size. One extremely annoying thing is that a lot of websites still don&rsquo;t support WebP for <a  href="https://ogp.me/" rel="noreferrer" target="_blank">the Open Graph protocol</a> (used for content previews), so I still have to use JPG or PNG for that.</li>
<li>I have a <a  href="/404.html">new 404 page</a>!</li>
</ul>
<p>If you find anything broken, please <a  href="/contact">let me know</a>!</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Out of necessity, really, because I needed to build a dynamic web app for creating quiz questions for Ab Initio AI.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>People who say that Bootstrap is bloated are silly. You can import only the components that you need and, also, most browsers cache CSS so it&rsquo;s loaded only once anyway. My customized Bootstrap CSS and JavaScript (latter for toggling menu button on small screens) take up less than 100 KB.&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description></item><item><title>Variances in Memristors: Mitigation and Exploitation (Seminar)</title><link>https://dovydas.com/blog/variances-in-memristors-mitigation-and-exploitation-seminar/</link><pubDate>Tue, 16 Feb 2021 07:25 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/02/variances-in-memristors-mitigation-and-exploitation-seminar/</guid><description><![CDATA[
      
      <p>On the 26th of February, I will be giving a talk &ldquo;Memristive Neural Networks Work Better in Teams&rdquo; at a research seminar hosted by the <a  href="https://www.ucl.ac.uk/electronic-electrical-engineering/" rel="noreferrer" target="_blank">Electronic and Electrical Engineering Department of UCL</a> and the <a  href="https://www.mdm.imm.cnr.it/" rel="noreferrer" target="_blank">Agrate Unit of the Institute for Microelectronics and Microsystems (Italian National Research Council)</a>. You can register <a  href="https://www.eventbrite.co.uk/e/variances-in-memristors-mitigation-and-exploitation-tickets-141009327695" rel="noreferrer" target="_blank">here</a>!</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/variances-in-memristors-mitigation-and-exploitation-seminar/images/research-seminar-poster.4425c19f1ba5ba7455fcdbf1dc0029410197e03f65a3c6e3d6bd76730efab668.svg"
        width="380.76"
        height="540"
        loading="eager"
        
        alt="Reseach seminar poster"
        
        
        >
        
  </figure>
</div>
      ]]></description></item><item><title>Great Scott, They Predicted... the '80s!</title><link>https://dovydas.com/blog/great-scott-they-predicted...-the-80s/</link><pubDate>Thu, 11 Feb 2021 14:35 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/02/great-scott-they-predicted...-the-80s/</guid><description><![CDATA[
      
      <p>I&rsquo;ve been rewatching Back to the Future trilogy (for the nth time) over the last few days. One thing that stood out to me this time was the <em>Cafe 80&rsquo;s</em> from Part II. It was an attempt at depicting the 1980s as perceived by people from 2015 (remember, Part II was released in 1989).</p>
<p>I was surprised by how accurate that portrayal was. It was really the things many of us tend to think about when that period of time is mentioned nowadays: VHS cameras, Michael Jackson, <a  href="https://en.wikipedia.org/wiki/Memphis_Group" rel="noreferrer" target="_blank">the colors</a>, arcade games.</p>
<p>I don&rsquo;t think we&rsquo;d be able to depict the 2010s that well. Sure, one could say that that&rsquo;s a good thing i.e. &lsquo;culture is not so monolithic anymore&rsquo;. But I fear we&rsquo;re just <em>dull</em>&mdash;can you think of a single thing from the last decade that you&rsquo;re sure would be fondly remembered 30 years from now?</p>
      ]]></description></item><item><title>Contact Tracing</title><link>https://dovydas.com/blog/contact-tracing/</link><pubDate>Tue, 12 Jan 2021 15:57 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/01/contact-tracing/</guid><description><![CDATA[
      
      <p>There is <a  href="https://www.technologyreview.com/2021/01/11/1016004/singapore-tracetogether-contact-tracing-police/" rel="noreferrer" target="_blank">a great article</a> on MIT Technology Review about Singapore&rsquo;s contact tracing fiasco. It is amazing to me how much trust some people put into government apps. This <em>was</em> supposed to happen.</p>
      ]]></description><category>privacy</category><category>technology</category></item><item><title>Zuccing Reimagined</title><link>https://dovydas.com/blog/zuccing-reimagined/</link><pubDate>Fri, 08 Jan 2021 09:43 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/01/zuccing-reimagined/</guid><description><![CDATA[
      
      <p>Half a year ago, <a  href="/blog/essays/2020/07/do-not-trust-whatsapp/">I explored</a> whether we can be sure if WhatsApp messages are actually end-to-end encrypted. We can&rsquo;t, but I am more inclined to believe them now than I was back then. Not because I think they are the good guys, but because they are going to extreme lengths to monetize the app in other ways while maintaining that the messages are encrypted.</p>
<p>Yesterday, a pop-up message appeared asking me to agree to the new WhatsApp terms of service. If you actually read <a  href="https://www.whatsapp.com/legal/updates/privacy-policy" rel="noreferrer" target="_blank">the new privacy policy</a>, you find that not only will they be collecting information about you, your device and how you use the app, but they will also be able to share that information with its parent company, Facebook. Those who don&rsquo;t agree to the new terms <strong>won&rsquo;t be allowed to use WhatsApp</strong> after February 8.</p>
<p>Privacy and targeted-ads-based revenue models are incompatible. Anyone who, after this, still thinks that WhatsApp prioritizes privacy is a fool. Having encrypted messages while giving all other pieces of personal information away is like putting on some sunscreen before running into a burning building.</p>
      ]]></description><category>privacy</category><category>technology</category></item><item><title>Happy New Year!</title><link>https://dovydas.com/blog/happy-new-year/</link><pubDate>Fri, 01 Jan 2021 08:56 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2021/01/happy-new-year/</guid><description><![CDATA[
      
      <div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/happy-new-year/images/the-office.ok.dd4ae77618fcaf06820d2f1813961296ce234d2bd59bed3b06be36d880b4a7f0.gif"
        width="272"
        height="160"
        loading="eager"
        
        alt="Michael Scott"
        
        
        >
        
  </figure>
</div>
      ]]></description></item><item><title>Restoration</title><link>https://dovydas.com/blog/restoration/</link><pubDate>Tue, 29 Dec 2020 14:06 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2020/12/restoration/</guid><description><![CDATA[
      
      <p>A few months ago I discovered an amazing YouTube channel&mdash;<a  href="https://www.youtube.com/channel/UCvZe6ZCbF9xgbbbdkiodPKQ" rel="noreferrer" target="_blank">Baumgartner Restoration</a>. It is maintained by <a  href="https://baumgartnerfineartrestoration.com/about.shtml" rel="noreferrer" target="_blank">a guy</a> who restores old paintings for a living. I had no idea how many different stages this process usually involves; the level of mastery required makes these videos extremely satisfying to watch. <a  href="https://www.youtube.com/watch?v=5G1C3aBY62E" rel="noreferrer" target="_blank">This video</a> is a great example of how many techniques may need to be employed to fix a painting that suffered an extensive amount of damage.</p>
      ]]></description></item><item><title>The Sopranos ∩ The Godfather ≠ ∅</title><link>https://dovydas.com/blog/the-sopranos-the-godfather/</link><pubDate>Sat, 26 Dec 2020 08:16 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2020/12/the-sopranos-the-godfather/</guid><description><![CDATA[
      
      <p>One of the things I find strange about &lsquo;The Sopranos&rsquo; is the large number of (often explicit) references to gangster movies. &lsquo;Goodfellas&rsquo; is mentioned a few times, despite the fact that <a  href="https://www.independent.co.uk/arts-entertainment/tv/features/sopranos-and-goodfellas-shared-27-actors-a6841556.html" rel="noreferrer" target="_blank">27 actors from that movie star in &lsquo;The Sopranos&rsquo;</a>. References to &lsquo;The Godfather&rsquo; trilogy are <a  href="https://www.youtube.com/watch?v=si4rMCJBD3E" rel="noreferrer" target="_blank">even more abundant</a>, so I figured it would not share any actors with the TV series. I was wrong&mdash;in a big way! For example, Dominic Chianese&rsquo;s character Junior Soprano makes <a  href="https://www.youtube.com/watch?v=xjNmGA6AauU" rel="noreferrer" target="_blank">Chinese Godfather joke</a>, even though Chianese himself played Johnny Ola in &lsquo;The Godfather Part II&rsquo;. This somewhat takes away from the magic of &lsquo;The Sopranos&rsquo;, unless the <em>whole</em> series was just Tony&rsquo;s dream (which I hope it wasn&rsquo;t!).</p>
      ]]></description></item><item><title>GitHub Surprise</title><link>https://dovydas.com/blog/github-surprise/</link><pubDate>Sun, 20 Dec 2020 12:59 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2020/12/github-surprise/</guid><description><![CDATA[
      
      <p>Am I the only one who didn&rsquo;t know that GitHub Pro is free for students? I had no need for Pro features until now, but still&hellip;</p>
      ]]></description></item><item><title>Personal Library: How?!</title><link>https://dovydas.com/blog/personal-library-how/</link><pubDate>Fri, 04 Dec 2020 08:20 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2020/12/personal-library-how/</guid><description><![CDATA[
      
      <p>As if there isn&rsquo;t enough work to do, I decided to organize my personal library. Thanks to my OCD, I have zero tolerance for chaos in this world, and yet my (and my family&rsquo;s) collection of books has been just that. After some rigorous research<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> on how to organize books&mdash;with some of the options being &ldquo;alphabetically&rdquo;, &ldquo;chronologically, &ldquo;by color&rdquo; (WHAT??)&mdash;I decided to go with <a  href="https://en.wikipedia.org/wiki/Universal_Decimal_Classification" rel="noreferrer" target="_blank">Universal Decimal Classification</a> which arranges materials by subject (each of whose contents I would sort alphabetically). However, I realized that if I ever change my mind on the system that should be used, I would have to start over from scratch. This made me focus on a more daunting task first&mdash;cataloging!</p>
<p>Before I even try to organize my books, I want to have a good understanding of what is in my possession. Essentially, I want to create a database for my books&mdash;each entry would contain the book&rsquo;s title, author(s), current location (as I move between the UK and Lithuania) and any other useful details. Being the strong independent man that I am, I thought I should build it myself from the ground up. I know some SQL and PHP (both which I had to learn for my startup), so I figured that would be doable. But there came an instant realization that I might not be the only one using the database&mdash;my family might too. Given that user interface has never been my strong suit, I decided that this is a silly idea. Besides, I would be wasting a lot of time on this; someone must have figured it out already!</p>
<p><em>If anyone has had experience with cataloging their books using software and has any suggestions, I would really appreciate it.</em> Here are my <strong>preferences</strong>:</p>
<ul>
<li>Simple (functionality-wise). It&rsquo;s at most a few hundred books we are talking about, not the Library of Congress.</li>
<li>Modifiable. I want to be able to add my own fields, etc.</li>
<li>Easy to use (high-level) interface, as well as a low-level alternative (e.g. a CLI).</li>
<li>Access by the Internet.</li>
<li>Privacy/independence. I want to run my personal instance of this database on my server, instead of letting some company handle it. By extension, I would want the solution to be open source.</li>
<li>Flexibility. The data should be stored in a popular format, so that I could easily convert them, if necessary.</li>
</ul>
<p>There are solutions like <a  href="https://github.com/inveniosoftware/invenio" rel="noreferrer" target="_blank">Invenio</a> which seem close to what I have in mind, but they have so many dependencies that I had trouble even trying to install them. Thus, before settling on a solution, I am really hoping to hear from someone who has had to deal with this kind of software before. Thank you.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>googling&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description></item><item><title>Why Censuses Should Be (Slightly) Inaccurate</title><link>https://dovydas.com/blog/why-censuses-should-be-slightly-inaccurate/</link><pubDate>Fri, 20 Nov 2020 10:40 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/essays/2020/11/why-censuses-should-be-slightly-inaccurate/</guid><description><![CDATA[
      
        <p><em><strong>Note:</strong> This blog post contains LaTeX typography that will not be rendered correctly by RSS readers. To read the blog post with its original formatting, please visit <a href="https://dovydas.com/blog/why-censuses-should-be-slightly-inaccurate/" rel="noreferrer" target="_blank">https://dovydas.com/blog/why-censuses-should-be-slightly-inaccurate/</a>.</em></p>
      
      <p>Since the founding of the country, the US government has been conducting a census every 10 years. The results of this survey are used to calculate the number of seats each state gets in the House of Representatives, to distribute federal funds to states, etc. [<a  href="#bibreference-1" title="S. Garfinkel, J. Abowd, and C. Martindale, Understanding database reconstruction attacks on public data, Communications of the ACM, vol. 62, no. 3, pp. 46–53, 2019. doi:10.1145/3287287">1</a>] In addition to estimating the populations of states, the census aims to find out the number of people living in each household, as well as the age, sex, race and relationship status of each individual in that household [<a  href="#bibreference-2" title="Questions Asked on the Form, United States Census 2020, [Online]. Available: https://2020census.gov/en/about-questions.html [Accessed: Nov. 10, 2020]. ">2</a>]. Such data can be used by the government to, for example, monitor compliance with anti-discrimination laws, but also, if made accessible to the public, can be of great use to academics, NGOs, and others. Of course, given the sensitive nature of these data, we do not want to compromise the privacy of the individuals who are disclosing the information. So how much about the census can we reveal so that it provides useful insight into the population and, at the same time, keeps the individuals&rsquo; data confidential?</p>
<h2 id="aggregation">Aggregation</h2>
<p>One of the most obvious ways to publish data about a population without revealing the identities of the individuals within it, is to <strong>aggregate</strong> those data. Saying that the median age of the American population is 38.2 years, tells you virtually nothing about how old Morgan Freeman or Laura Dern is. Unfortunately, that level of aggregation may not be particularly useful.</p>
<p>To understand local populations, more fine-grained data may be preferred, but with that comes higher risk of privacy loss. If aggregated data about very few people are published, there may be a way to reconstruct the characteristics of those individuals. We will imagine a scenario where an intern<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> at a city council decides to upload aggregated block-by-block age data (by demographic) to city&rsquo;s public website without reviewing each block individually. We will explore data of one of these hypothetical blocks&mdash;one where 8 people live:</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/why-censuses-should-be-slightly-inaccurate/images/aggregation.32fe5274bf35865e1b8c415c4e2eae770fd95da5ec3f46e1f086145cb0d66499.svg"
        width="521.967"
        height="162.399"
        loading="eager"
        
        alt="Aggregation of data"
        
        
        >
        
  </figure>
</div>

<p>Some of you may notice right away how careless the release of such data is. We can already deduce that a 45-year-old white male lives in the block because there is only one white male living in the block according to the aggregated data, and we have age data for that group. As bad as it already is, there is a good chance that we might even be able to determine whether that guy is single or married, thus reconstructing all of his traits that were aggregated.</p>
<h2 id="reconstruction-attacks">Reconstruction Attacks</h2>
<p>In a recent paper, computer scientists at US Census Bureau laid out how bad actors may utilize the processing power of modern computers to infer something about the individuals from their summaries&mdash;a process known as <strong>data reconstruction</strong> [<a  href="#bibreference-1" title="S. Garfinkel, J. Abowd, and C. Martindale, Understanding database reconstruction attacks on public data, Communications of the ACM, vol. 62, no. 3, pp. 46–53, 2019. doi:10.1145/3287287">1</a>]. In one of the more popular methods involving SAT<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup> solvers, one could describe this task almost like an algebra problem. We can attempt to reconstruct summary tables by introducing a bunch of variables and then set up equations (constraints) which we would try to solve. For example, we might describe the statistics above using equations such as
$$\frac{A_1 + A_2 + \cdots + A_8}{8} = 39$$
where $A_i$ is the age of person #$i$.</p>
<p>I applied data reconstruction principles described in [<a  href="#bibreference-1" title="S. Garfinkel, J. Abowd, and C. Martindale, Understanding database reconstruction attacks on public data, Communications of the ACM, vol. 62, no. 3, pp. 46–53, 2019. doi:10.1145/3287287">1</a>] to our example. Modern SAT solvers allowed me to determine with 100% certainty that the 45-year-old white male is married. Not only that, I was able to reconstruct <em>all</em> characteristics of <em>all</em> 8 people with 100% certainty. That is, from the universe of all possible combinations of the eight individuals and their traits, there was only one that fit all the data in the table, and the solver found it:</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/why-censuses-should-be-slightly-inaccurate/images/reconstruction.3b640458a2b6e709b8c4f2204c5437494cc68570487ce7a95692c8d278e6afd9.svg"
        width="566.256"
        height="162.399"
        loading="eager"
        
        alt="Reconstruction of data"
        
        
        >
        
  </figure>
</div>

<h2 id="the-best-defense">The Best Defense</h2>
<p><em>What is the best way to avoid such disastrous scenarios?</em></p>
<h3 id="suppression">Suppression</h3>
<p>One of the techniques to avoid compromising the privacy when publishing summaries about a small number of people is called <strong>cell suppression</strong>. For example, if a statistic is based on one or two people, a choice could be made to not publish it. When applied to our example, it would mean that we would have to suppress the data for single adults, black females, black males and white males. Of course, if we publish data for white females and females overall, we can easily deduce the number (2) and average age (32) of black females. Thus, an argument could be made to also suppress the data for white females. However, for the sake of simplicity and the fact that a lot of facts could be deduced this way (just using more steps), I will keep the data for white females in place. With aforementioned fields suppressed, there are now 9 possible configurations that could produce such statistics:</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/why-censuses-should-be-slightly-inaccurate/images/reconstruction-suppressed.8a07d19707936b5491910d57dce7e8e064fce9df30b7db5514067dd09b14c7b5.svg"
        width="566.256"
        height="595.674"
        loading="eager"
        
        alt="Reconstruction of data with even more data suppressed"
        
        
        >
        
  </figure>
</div>

<p>The fact that now there is more than one plausible set of people that would fit the summary table, at least in theory, ensures more privacy&mdash;the attacker will be less certain which set is the real one. However, if we investigate closely, we see that the situation has not improved by a lot. All 9 possibilities are very similar&mdash;mostly just the youngest and the oldest individuals have slightly different characteristics from set to set. This means that the attacker could determine the characteristics of some people with very high certainty. We could try suppressing even more data but that may be problematic because</p>
<ol>
<li>ensuring high level of privacy (i.e. having many plausible combinations) severely limits how many pieces of data can be published [<a  href="#bibreference-1" title="S. Garfinkel, J. Abowd, and C. Martindale, Understanding database reconstruction attacks on public data, Communications of the ACM, vol. 62, no. 3, pp. 46–53, 2019. doi:10.1145/3287287">1</a>],</li>
<li>even with relatively small data sets, it might be computationally infeasible to determine whether the data that are published could be used to identify any of the individuals [<a  href="#bibreference-1" title="S. Garfinkel, J. Abowd, and C. Martindale, Understanding database reconstruction attacks on public data, Communications of the ACM, vol. 62, no. 3, pp. 46–53, 2019. doi:10.1145/3287287">1</a>],</li>
<li>there is no guarantee that the attacker will not have in their possession additional data (gathered from other sources) that, when combined with the redacted statistics, would compromise the privacy of everyone whose personal information was aggregated.</li>
</ol>
<h3 id="noise">Noise</h3>
<p>If we choose to publish more informative statistics, one thing we could do to preserve privacy is&hellip; to alter the data! If we add noise&mdash;say, a random integer between $-3$ and $3$&mdash;to your age, an attacker will be less likely to identify you because your age is not well defined anymore. But doesn&rsquo;t this make the published statistics less accurate? Technically yes, but not by as much as one might expect. Remember that we are not publishing data about individuals, but rather about groups of them&mdash;if the noise is applied in a careful way, it will tend to cancel out, i.e. it is unlikely that the ages of all the residents in a particular block will be altered in the same direction. And the more aggregation we apply, the less negative impact the noise will have: city-level data will be more accurate than block-level data, state-level data will be more accurate than city-level data, and so on.</p>
<p>Even more effective is adding noise to the tabulated data directly, instead of the individual entries. Not only do we require significantly less noise in that case [<a  href="#bibreference-3" title="K. Polich, Differential Privacy at the US Census, Data Skeptic, 2020. [Online]. Available: https://traffic.libsyn.com/secure/dataskeptic/differential-privacy-at-the-us-census.mp3 [Accessed: Nov. 19, 2020]. ">3</a>], but it is also much more difficult to reconstruct the database, i.e. there is a very large number of plausible combinations and they are much more diverse<sup id="fnref:3"><a href="#fn:3"  role="doc-noteref">3</a></sup>:</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/why-censuses-should-be-slightly-inaccurate/images/reconstruction-noisy.8e050401e3ef13d172b610a1d68771ea6542fc645b23b1e4ed5a637e186a67b0.svg"
        width="588.115"
        height="605.808"
        loading="eager"
        
        alt="Reconstruction of noisy data"
        
        
        >
        
  </figure>
</div>

<p>For a long time, it was difficult to quantify the effect of noise when publishing statistical results, but in 2006 a framework, called <strong>differential privacy</strong>, was developed [<a  href="#bibreference-4" title="C. Dwork, F. McSherry, K. Nissim, and A. Smith, Calibrating noise to sensitivity in private data analysis, In Proc. Theory of cryptography conference, 2006, pp. 265–284. doi:10.1007/11681878_14">4</a>]. This system formalizes the treatment of trade-off between privacy loss and accuracy. That is, differential privacy shows to what extent a certain amount of noise increases privacy and decreases accuracy of published statistics, as well as how to inject the noise in the most efficient way. Importantly for censuses, this framework gives relative guarantees about the privacy loss resulting from public release of statistics [<a  href="#bibreference-3" title="K. Polich, Differential Privacy at the US Census, Data Skeptic, 2020. [Online]. Available: https://traffic.libsyn.com/secure/dataskeptic/differential-privacy-at-the-us-census.mp3 [Accessed: Nov. 19, 2020]. ">3</a>]. Even if an attacker has additional information, such as consumer data from a credit bureau, using differential privacy in a careful way guarantees that publishing statistics will not increase the privacy loss of the people whose noisy data are included [<a  href="#bibreference-3" title="K. Polich, Differential Privacy at the US Census, Data Skeptic, 2020. [Online]. Available: https://traffic.libsyn.com/secure/dataskeptic/differential-privacy-at-the-us-census.mp3 [Accessed: Nov. 19, 2020]. ">3</a>].</p>
<p>Given the power of differential privacy, it will, for the first time, be used in the 2020 US national census. Although noise was being injected in previous censuses (in a form of <a  href="https://www.sciencedirect.com/science/article/pii/0378375882900581" rel="noreferrer" target="_blank">swapping</a>, for example [<a  href="#bibreference-1" title="S. Garfinkel, J. Abowd, and C. Martindale, Understanding database reconstruction attacks on public data, Communications of the ACM, vol. 62, no. 3, pp. 46–53, 2019. doi:10.1145/3287287">1</a>]), differential privacy will allow the Census Bureau to decide how much noise to inject to both 1) ensure sufficient privacy, and 2) make sure that statistics are accurate enough. Additionally, it makes it possible to prioritize&mdash;certain characteristics might be treated as more private without disproportionately affecting their accuracy [<a  href="#bibreference-3" title="K. Polich, Differential Privacy at the US Census, Data Skeptic, 2020. [Online]. Available: https://traffic.libsyn.com/secure/dataskeptic/differential-privacy-at-the-us-census.mp3 [Accessed: Nov. 19, 2020]. ">3</a>]. Finally, differential privacy increases transparency&mdash;the Bureau can release <a  href="https://github.com/uscensusbureau" rel="noreferrer" target="_blank">their implementation of the method</a> and that will not affect the privacy of the respondents [<a  href="#bibreference-3" title="K. Polich, Differential Privacy at the US Census, Data Skeptic, 2020. [Online]. Available: https://traffic.libsyn.com/secure/dataskeptic/differential-privacy-at-the-us-census.mp3 [Accessed: Nov. 19, 2020]. ">3</a>].</p>
<h2 id="the-new-normal">The New Normal</h2>
<p>Differential privacy is the most mathematically rigorous way of dealing with sensitive data. And it should be applied to much more than just the censuses. Whenever we are handling private information&mdash;whether sharing results of clinical trials or training neural networks on sensitive data&mdash;we have an obligation to ensure the privacy of individuals whose data are being used. At the same time, I am not optimistic that everyone will accept the use of this counter-intuitive concept of tweaking real-world data in such important procedures as national censuses. Unfortunately, there is probably no other way.</p>
<h2 id="code">Code</h2>
<p>The code that I used for data reconstruction examples can be found <a  href="https://github.com/joksas/yoshke-org-blog-code/tree/master/essays/2020/11/why-censuses-should-be-slightly-inaccurate/SAT" rel="noreferrer" target="_blank">here</a>.</p>
<h2 id="references">References</h2>
<ol ><li  id="bibreference-1">S. Garfinkel,&#32;J. Abowd, and&#32;C. Martindale,&#32;<q>Understanding database reconstruction attacks on public data,</q>&#32;<em>Communications of the ACM</em>,&#32;vol. 62,&#32;no. 3,&#32;pp. 46–53,&#32;2019.&#32;doi:<a  rel="noopener" target="_blank" href="https://doi.org/10.1145/3287287">10.1145/3287287</a></li><li  id="bibreference-2"><q>Questions Asked on the Form,</q>&#32;<i>United States Census 2020</i>,&#32;[Online]. Available: <a  rel="noopener" target="_blank" href="https://2020census.gov/en/about-questions.html">https://2020census.gov/en/about-questions.html</a>&#32;[Accessed:
Nov. 10, 2020].
</li><li  id="bibreference-3">K. Polich,&#32;<q>Differential Privacy at the US Census,</q>&#32;<em>Data Skeptic</em>,&#32;2020.&#32;[Online]. Available: <a  rel="noopener" target="_blank" href="https://traffic.libsyn.com/secure/dataskeptic/differential-privacy-at-the-us-census.mp3">https://traffic.libsyn.com/secure/dataskeptic/differential-privacy-at-the-us-census.mp3</a>&#32;[Accessed:
Nov. 19, 2020].
</li><li  id="bibreference-4">C. Dwork,&#32;F. McSherry,&#32;K. Nissim, and&#32;A. Smith,&#32;<q>Calibrating noise to sensitivity in private data analysis,</q>&#32;In Proc. Theory of cryptography conference,&#32;2006, pp. 265–284.&#32;doi:<a  rel="noopener" target="_blank" href="https://doi.org/10.1007/11681878_14">10.1007/11681878_14</a></li></ol>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>because we can blame them for everything&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>bolean SATisfiability problem&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>I made up the tables on the left just to illustrate the point. In reality, the possiblities would depend on the nature of applied noise.&#160;<a href="#fnref:3"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>government</category><category>privacy</category><category>technology</category></item><item><title>Updated Blog Structure</title><link>https://dovydas.com/blog/updated-blog-structure/</link><pubDate>Tue, 17 Nov 2020 11:00 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/updates/2020/11/updated-blog-structure/</guid><description><![CDATA[
      
      <p>After some thought, I decided to restructure my blog. I realized that I occasionally want to share some small updates&mdash;a book or an article that I would like to recommend, a new paper of mine, or an announcement like this one (meta, right?). But it did not seem right to put it together with all of my other writing which up until now I considered to be what my blog would <em>all</em> be about. Therefore, I decided to split my blog into two sections: &lsquo;Essays&rsquo; and &lsquo;Updates&rsquo;.</p>
<p>&lsquo;Essays&rsquo; will contain my long-form writing that I put some effort into, i.e. things I have been putting on this website up until now. For some reason, the word &rsquo;essay&rsquo; always sounded very pretentious to me, but that&rsquo;s what a lot of people whom I respect call their pieces of writing on their own websites, so I guess I will stick with it.</p>
<p>&lsquo;Updates&rsquo; will contain quick updates or generally just a less formal kind of writing. I envision these as tweets (sometimes longer than 280 characters), just on my website.</p>
<p>When moving to the new structure, I wanted to avoid breaking anything. Specifically, I wanted the old URLs to work (and ideally redirect to updated URLs), and to ensure that my RSS feeds do not interpret old blog posts as new ones. Items in my RSS feeds use URLs as <a  href="https://validator.w3.org/feed/docs/rss2.html#ltguidgtSubelementOfLtitemgt" rel="noreferrer" target="_blank">unique identifiers</a>, which made me realize that this change could incorrectly notify the subscribers of those feeds about old posts because their URLs have changed. Thankfully, <a  href="https://gohugo.io/" rel="noreferrer" target="_blank">Hugo website generator</a> (that I use to build my website) allowed me to address both of these issues and everything should work just fine. If you spot any strange behavior though, please let me know.</p>
      ]]></description></item><item><title>Let's Save the Internet. With RSS.</title><link>https://dovydas.com/blog/lets-save-the-internet.-with-rss./</link><pubDate>Wed, 23 Sep 2020 10:25 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/2020-09-23-lets-save-the-internet-with-rss/</guid><description><![CDATA[
      
      <p>Almost everything you do on the Internet is guided by opaque algorithms. Machine-learning-powered sites deliver you your search results, decide whose posts you should see on social media and which of your emails should go to the spam folder. And although I enjoy receiving occasional spam email (because they all prematurely refer to me as <em>Dr</em> Joksas and ask me to give a plenary talk at the hottest neuroscience conference of the year), it&rsquo;s probably a good thing overall that these algorithms enable us to focus on the important emails. What about everything else though? It seems that in the last few years it became more difficult to find relevant information. Exponential growth of information is partly to blame, but it might also be a result of a very basic incentive misalignment&mdash;what the tech companies want is different from what we want.</p>
<p>One of the most fundamental ways in which machine learning has shaped the Internet since 2012 is in the personal tailoring of content to each of us. Before that, social media sites (as an example) used to serve us content in a chronological order; that is either no longer an option on most of these sites, or is a well-hidden opt-in feature that they prefer you would not use at all. By tracking our behavior, they can now train neural networks to serve us content in such a way that maximizes some objective measure, like the time spent on their platform. Why they would do it is obvious&mdash;more time spent on their website means more ads shown to us which means higher revenues. The content that&rsquo;s tailored to us is marketed as &ldquo;relevant&rdquo;, but a more accurate term would be &ldquo;addictive&rdquo;. There is maybe 2-minutes&rsquo; worth of <em>relevant</em> content on your Twitter feed every day, but even that little amount is hard to uncover.</p>
<p>So in a world of infinite streams of information and algorithms trying to manipulate us, how do we find the news that is relevant to us, how do we get updates from people whose opinions we care about, and, more generally, <em>how do we interact with the Internet?</em> Do we each train our personal neural networks that would learn what each of us cares about? NO! In a world of complexity, we should not seek to introduce additional complexity. What we need is simplicity and for that we will have to go back in time!</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/lets-save-the-internet.-with-rss./images/back-to-the-future.ok.b8ca47544971be21635391fd581fd9c1ee7d9edea180f1c7da1cd4b23a6a20d5.webp"
        width="1000"
        height="562"
        loading="eager"
        
        alt="&#34;Back to the Future&#34; poster"
        
        
        >
        
  </figure>
</div>

<h2 id="where-were-going-we-dont-need-machine-learning">Where We’re Going, We Don’t Need Machine Learning</h2>
<p>More than 20 years ago, a technology, called RSS (Really Simple Syndication), emerged. Its aim was to keep track of many different websites so that the users wouldn&rsquo;t have to check for updates manually in each one of them. For example, if you were interested in news sites X and Y, and a blogger Z, you could subscribe to their RSS feeds and get notified whenever a new piece of content would come out. How? Using an RSS feed reader that automatically checks for updates in those feeds and then aggregates the content in one place. I know this may sound a bit confusing and given that I am obviously advocating for RSS as a replacement for social media (besides other things) when it comes to us getting updates about the world, I think it makes sense to explain how it <em>really</em> works. Because what is the point otherwise? If you cannot explain the basic principles behind RSS and what its limitations are, it might seem no better than using social media to interact with the Internet.</p>
<h3 id="so-how-does-rss-work">So how does RSS work?</h3>
<p>RSS uses XML files to encode information. These are just simple text files that are usually used for structured data. In the case of RSS, they can be used to describe individual items of content in a feed. Let me illustrate it with an example. Suppose I wanted to make an RSS feed for my blog; I could create an XML file like this<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>:</p>
<div ><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code  data-lang="xml"><span style="display:flex;"><span><span style="color:#ff79c6">&lt;rss&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ff79c6">&lt;channel&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">&lt;title&gt;</span>dovydas.com Blog<span style="color:#ff79c6">&lt;/title&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">&lt;link&gt;</span>https://dovydas.com/blog/<span style="color:#ff79c6">&lt;/link&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">&lt;description&gt;</span>This is my blog!<span style="color:#ff79c6">&lt;/description&gt;</span>
</span></span><span style="display:flex;"><span>    
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">&lt;item&gt;</span>
</span></span><span style="display:flex;"><span>      <span style="color:#ff79c6">&lt;title&gt;</span>Colorblind-Friendly Diagrams<span style="color:#ff79c6">&lt;/title&gt;</span>
</span></span><span style="display:flex;"><span>      <span style="color:#ff79c6">&lt;link&gt;</span>https://dovydas.com/blog/2020-07-06-colorblind-friendly-diagrams/<span style="color:#ff79c6">&lt;/link&gt;</span>
</span></span><span style="display:flex;"><span>      <span style="color:#ff79c6">&lt;pubDate&gt;</span>06 Jul 2020<span style="color:#ff79c6">&lt;/pubDate&gt;</span>
</span></span><span style="display:flex;"><span>      <span style="color:#ff79c6">&lt;description&gt;</span>This is my second blog post!<span style="color:#ff79c6">&lt;/description&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">&lt;/item&gt;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">&lt;item&gt;</span>
</span></span><span style="display:flex;"><span>      <span style="color:#ff79c6">&lt;title&gt;</span>Do Not Trust WhatsApp<span style="color:#ff79c6">&lt;/title&gt;</span>
</span></span><span style="display:flex;"><span>      <span style="color:#ff79c6">&lt;link&gt;</span>https://dovydas.com/blog/2020-07-01-do-not-trust-whatsapp/<span style="color:#ff79c6">&lt;/link&gt;</span>
</span></span><span style="display:flex;"><span>      <span style="color:#ff79c6">&lt;pubDate&gt;</span>01 Jul 2020<span style="color:#ff79c6">&lt;/pubDate&gt;</span>
</span></span><span style="display:flex;"><span>      <span style="color:#ff79c6">&lt;description&gt;</span>This is my first blog post!<span style="color:#ff79c6">&lt;/description&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">&lt;/item&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ff79c6">&lt;/channel&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">&lt;/rss&gt;</span>
</span></span></code></pre></div><p>In this file, I defined an RSS feed (using <code>&lt;channel&gt;</code> tags) for my blog and named it &ldquo;dovydas.com Blog&rdquo; (using <code>&lt;title&gt;</code> tags). Additionally, I added two blog posts (using <code>&lt;item&gt;</code> tags) with specific titles (using <code>&lt;title&gt;</code> tags). For both the feed and individual posts, I included URLs (using <code>&lt;link&gt;</code> tags) and short descriptions (using <code>&lt;description&gt;</code> tags). Finally, I included publication dates (using <code>&lt;pubDate&gt;</code> tags) for both blog posts.</p>
<p>Now that the file is prepared, I could essentially store it anywhere on my website so that others could access it. Visitors to the site would copy the URL to that file and then paste it into their RSS reader. That RSS reader would download the file and display the various elements of the feed to the user. For example, <a  href="https://tt-rss.org/" rel="noreferrer" target="_blank">my RSS reader of choice</a> would display this feed in the following way:</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/lets-save-the-internet.-with-rss./images/rss-example.ok.81fb036e1342aba0cb5bd0bc10c8757b739b26d1f5a9b278a5fc86c8725730be.webp"
        width="881"
        height="258"
        loading="eager"
        
        alt="RSS feed in Tiny Tiny RSS"
        
        
        >
        
  </figure>
</div>

<p>We can see that the RSS reader presented all the information that we specified in the XML file: blog name, blog post titles, publication dates and descriptions. Additionally, I can press on the titles of individual posts and the RSS reader will redirect me to my website because the URLs were specified.</p>
<p>All RSS readers update the feeds at some regular intervals, i.e. they download and process the XML file again. So, whenever I, as an owner of a website, want to add a new piece of content to the website, I should also update the XML file containing the RSS feed. That is the only way in which RSS readers will be able to detect any changes.</p>
<p>And that&rsquo;s it! It&rsquo;s that simple. RSS feed is just a text file that presents content in a structured, machine-readable format.</p>
<h3 id="how-to-use-rss">How to use RSS?</h3>
<p>Most RSS readers allow you to subscribe to as many feeds as you want. Here is what my own general feed is usually like:</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/lets-save-the-internet.-with-rss./images/my-rss-feed.ok.71473fa14264a6075afc5fedf968b29f863fa851b963b57270e323ad0c41ecb6.webp"
        width="1522"
        height="385"
        loading="eager"
        
        alt="RSS feed in Tiny Tiny RSS"
        
        
        >
        
  </figure>
</div>

<p>I know that content-wise this looks like social media and appearance-wise it looks like an email client. The reason I prefer RSS over social media though is because I get updated about everything&mdash;news, Twitter, YouTube, blogs, podcasts, and more&mdash;in one place, the results are not filtered by some machine learning algorithm and I can process the information in any way I want.</p>
<p>Similar to the way email clients allow you to take care of your emails, most RSS readers enable you to categorize the feeds, add your own tags and organize them the way you prefer. That is the beauty of text files&mdash;they are simple, but they allow you to add a lot of modular functionality. For example, some RSS readers might provide the option to process your feeds using <a  href="https://en.wikipedia.org/wiki/Regular_expression" rel="noreferrer" target="_blank">regular expressions</a>. Suppose you subscribed to a dozen technology-oriented RSS feeds but were mostly interested in robotics. You could tell your RSS reader to mark any RSS item with a tag &ldquo;robotics&rdquo; if it contained a string &ldquo;robot&rdquo; in its title or description. That way, you could easily focus on the news that you are most interested in.</p>
<h2 id="the-arrow-of-time">The Arrow of Time</h2>
<p>Technologies tend to become more accessible over time. Whether it is building websites, writing LaTeX documents or training image classifiers, tools are constantly being developed that allow people without in-depth knowledge to effortlessly use these technologies. The same could be said of RSS, which saw the development of hundreds of feed readers in forms of websites, desktop applications, browser extensions and even terminal applications. Unfortunately, these advances in ease of use have been canceled out by an active opposition to the adoption of RSS in a large number of sectors. In surveillance capitalism, there exist incentives not only to track user behavior, but also to oppose any technology that prevents you from doing it.</p>
<p>The most blatant example of this behavior is, obviously, social media companies. Both Facebook and Twitter used to offer RSS feeds, but that is no longer the case. It is quite amusing that Facebook still recognizes the power of RSS, although in a very selfish way. They have this feature called instant articles that allows publishers to submit their articles to Facebook <a  href="https://developers.facebook.com/docs/instant-articles/publishing/setup-rss-feed" rel="noreferrer" target="_blank">using RSS</a> or other methods. They claim it improves loading times on mobiles, but obviously their goal was to increase their own tracking capabilities even further <a  href="https://www.facebook.com/business/help/2012051535674814?id=858706964600987" rel="noreferrer" target="_blank">which is possible</a> now that these articles are hosted on their platform.</p>
<p>There is some hope though. In media that do not rely on such an extreme user tracking you still see some support for RSS. A large proportion of news outlets still offer their own RSS feeds where they put summaries of the articles and link back to their website. Some non-profit publications, such as <a  href="https://www.quantamagazine.org/" rel="noreferrer" target="_blank">Quanta Magazine</a>, can even afford to put the whole content of their articles inside the RSS feeds&mdash;that way the users can read the articles even without leaving their RSS readers. I too put my full blog posts inside my RSS feeds; I do not place any ads on my website and so do not care whether people access the posts directly or through their feed readers<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>.</p>
<p>But just because someone relies on ads to generate revenue, does not necessarily mean they cannot utilize RSS. Podcasts are the best example of this. They are, almost by definition, RSS feeds&mdash;podcast creators add a new RSS item for each episode and associate it with an audio file that anyone can download. That is the reason they do not have to upload each episode manually to Spotify, iTunes, Google Podcasts or wherever else people listen to podcasts&mdash;all these services read the RSS feeds automatically. Podcasters usually earn money by doing dumb ads, i.e. ads that are not personalized. Because of their simple format, they can simply be read out during each episode and thus be embedded in the audio file; a link to that file is part of the RSS feed. So, no. RSS does not prevent you from making money.</p>
<p>Overall, I have mixed feelings about the future of RSS and the Internet in general. Sure, there are people who create tools for constructing RSS feeds of websites that do not offer them, but it&rsquo;s a constant struggle&mdash;someone finds a way to automatically extract Facebook posts and then Facebook changes its interface, after which the cycle repeats. I am also not optimistic about how many people would be willing to go back to a more primitive technology, even if it gives them more control. And yet I see no other way. In a world where there is a widespread belief that advertisers must know customers&rsquo; religious beliefs and a thousand other things to successfully sell them a teapot, we will naturally converge towards more addictive social media and more intrusive tracking. Only by rejecting these business models completely can we incentivize the tech companies to change. In the meantime, RSS seems like a good enough alternative.</p>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>This is a simplified example that is missing a lot of standard tags.&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>The exception is posts that include math typography (which requires JavaScript). Although I still include these posts in my RSS feeds, I also add a note saying that they will not be rendered correctly in RSS feed readers and they should instead be read directly on my website.&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>machine learning</category><category>privacy</category><category>technology</category></item><item><title>Memristive neural networks perform better when they work in teams</title><link>https://dovydas.com/blog/memristive-neural-networks-perform-better-when-they-work-in-teams/</link><pubDate>Thu, 27 Aug 2020 11:00 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/2020-08-27-behind-the-paper-committee-machines/</guid><description><![CDATA[
      
      <p><em>Originally published <a  href="https://devicematerialscommunity.nature.com/posts/memristive-neural-networks-perform-better-when-they-work-in-teams" rel="noreferrer" target="_blank">here</a>&mdash;written by my supervisor, <a  href="https://www.ee.ucl.ac.uk/~uceeadm/">Dr Adnan Mehonic</a>, and me.
In the blog post, we discuss our recent paper <a  href="https://doi.org/10.1038/s41467-020-18098-0" rel="noreferrer" target="_blank">&ldquo;Committee machines&mdash;a universal method to deal with non-idealities in memristor-based neural networks&rdquo;</a>.</em></p>
      ]]></description><category>machine learning</category><category>memristors</category><category>my papers</category><category>neural networks</category><category>technology</category></item><item><title>“Dude, Machine Learning is Just Glorified Curve Fitting”</title><link>https://dovydas.com/blog/dude-machine-learning-is-just-glorified-curve-fitting/</link><pubDate>Tue, 04 Aug 2020 11:00 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/2020-08-04-machine-learning-curve-fitting/</guid><description><![CDATA[
      
        <p><em><strong>Note:</strong> This blog post contains LaTeX typography that will not be rendered correctly by RSS readers. To read the blog post with its original formatting, please visit <a href="https://dovydas.com/blog/dude-machine-learning-is-just-glorified-curve-fitting/" rel="noreferrer" target="_blank">https://dovydas.com/blog/dude-machine-learning-is-just-glorified-curve-fitting/</a>.</em></p>
      
      <p>There is this video of David Bowie being interviewed by Jeremy Paxman that I keep coming back to. The interview took place in 1999 and one of the topics they discuss is the Internet. Specifically, Bowie expresses his opinion that &ldquo;the potential of what the Internet is going to do to society&mdash;both good and bad&mdash;is unimaginable&rdquo;. What is much more interesting to me though is Paxman&rsquo;s skepticism: &ldquo;It&rsquo;s just a tool though, isn&rsquo;t it? &lt;&hellip;&gt; It&rsquo;s simply a different delivery system&rdquo;. You can watch the full exchange on YouTube using <a  href="https://youtu.be/FiK7s_0tGsg?t=645" rel="noreferrer" target="_blank">this link</a> (the most relevant part from 10:45 to 11:30).</p>
<p>For us, the enlightened people of 2020, it feels like Paxman made a fool of himself. But my point is that Paxman was technically correct. It is just that saying &ldquo;$X$ is just $Y$&rdquo; may not necessarily diminish the importance of $X$ if we are underestimating the power of $Y$ or if it is too vaguely defined.</p>
<p>One of the most popular variants of this meme today is the saying &ldquo;machine learning is just glorified curve fitting&rdquo;. It seems to have been popularized by Judea Pearl and is now the main argument of the folks that question the significance of recent advances in machine learning or are skeptical about its potential to replace jobs, for example. Although you might already (correctly) guess that I am of the opinion that this way of thinking is mostly flawed, in some ways I can actually sympathize with it too.</p>
<h2 id="curve-fitting">Curve Fitting</h2>
<h3 id="2-d">2-D</h3>
<p>Before digging into machine learning, let us clarify what curve fitting even is; it might be illustrated with a classic experiment. Suppose you have a container of gas and you measure its pressure, $P$, at various temperatures, $T$. You then plot $P$ versus $T$ and find that the relationship between the two (at least in the range that you measured) is almost perfectly linear, i.e. $P(T) = aT + b$, where $a$ and $b$ are some constants. This is an example of fitting a straight line on a graph of two variables, which can then be used to predict the value of one variable given the value of the other.</p>
<h3 id="9000-d">9000-D</h3>
<p>In machine learning, one might try to achieve something similar. For example, a neural network could be trained to differentiate between dogs and cats when provided with their images (which are collections of pixels with certain intensities of red, green and blue colors). A trained fully-connected neural network with one hidden layer would produce the relationship $\mathbf{F}(\mathbf{x}) = \sigma_2(\mathbf{A}_2 \sigma_1(\mathbf{A}_1 \mathbf{x} + \mathbf{b}_1) + \mathbf{b}_2)$ between an input image $\mathbf{x}$ and a function $\mathbf{F}$ with outputs labeled &ldquo;dog&rdquo; and &ldquo;cat&rdquo;, where $\mathbf{A}_1$, $\mathbf{b}_1$, $\mathbf{A}_2$ and $\mathbf{b}_2$ are just collections of constants and $\sigma_1$ and $\sigma_2$ are some non-linear functions. Although scarier looking, this model performs the same task&mdash;predicts an output given some input. You can visualize<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup> this as fitting a multi-thousand-dimensional surface using millions of parameters.</p>
<p>Large machine learning models are not elegant at all. They have millions or even billions of parameters that model the relationships between inputs and outputs. And often our intuition is that this is just an extension of the same curve fitting principle we have seen with pressure and temperature, just with more inputs and more outputs. However, as the sizes of these models grow, behaviors sometimes emerge that mimic human cognition.</p>
<h2 id="alien-life-form">Alien Life Form</h2>
<p>GPT-3 is the largest language model in the world; it might be the best example to illustrate my point. In the simplest terms, language model is an auto-completer of words, sentences, paragraphs, etc. Even the most basic of them should be able to complete sentences like &ldquo;My favorite color is __&rdquo; with words like &ldquo;red&rdquo; or &ldquo;light blue&rdquo; instead of &ldquo;hamburger&rdquo; or &ldquo;Richard Nixon&rdquo;. GPT-3 is much more sophisticated. For example, when provided with a definition of a made-up word, this language model can use it in context [<a  href="#bibreference-1" title="T. Brown, B. Mann, N. Ryder, M. Subbiah, J. Kaplan, P. Dhariwal, A. Neelakantan, P. Shyam, G. Sastry, A. Askell, et al., Language models are few-shot learners, 2020. [Online]. Available: https://arxiv.org/abs/2005.14165  ">1</a>]:</p>
<blockquote>
<p><strong>Human input:</strong><br>
A &ldquo;Burringo&rdquo; is a car with very fast acceleration. An example of a sentence that uses the word Burringo is:<br>
<strong>GPT-3 output:</strong><br>
In our garage we have a Burringo that my father drives to work every day.</p>
</blockquote>
<p>There are many examples of what GPT-3 is capable of doing but to me the most fascinating one is its ability to perform basic arithmetic. When asked &ldquo;What is 3 plus 2?&rdquo;, the model will almost certainly correctly answer &ldquo;5&rdquo;. Of course, what could have happened is that the model might have found such a sentence in its training data set and simply memorized it. That is almost certain with one-digit addition given how much text GPT-3 was trained on. However, it performs almost as well on two- or three-digit addition and subtraction. Out of 2,000 three-digit subtraction problems, only 0.1% of which appeared in the training data set, GPT-3 was able to compute the answer correctly 94% of the time [<a  href="#bibreference-1" title="T. Brown, B. Mann, N. Ryder, M. Subbiah, J. Kaplan, P. Dhariwal, A. Neelakantan, P. Shyam, G. Sastry, A. Askell, et al., Language models are few-shot learners, 2020. [Online]. Available: https://arxiv.org/abs/2005.14165  ">1</a>]. And the mistakes that it made are human-like&mdash;&ldquo;forgetting&rdquo; to borrow a &ldquo;1&rdquo;, for example. But it does carry or borrow a &ldquo;1&rdquo; when it needs to most of the time which in itself is impressive because it was not explicitly told the rules of addition and subtraction. It is amazing that with enough data even a relatively simple<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup> model can &ldquo;learn&rdquo; mathematical rules by analyzing text and extracting a pattern.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Most machine learning models are indeed just a high-dimensional equivalent of curve fitting. But thinking about them on this level of abstraction is simply not helpful. I agree with the sentiment that just building larger models is not a feasible strategy to achieve artificial general intelligence. However, we keep getting surprised by how good these dumb curve fitting algorithms can be at performing cognitive tasks. My enthusiasm and concern regarding machine learning stems from the belief that with large enough models emergent behaviors arise that emulate the way we, humans, perform many tasks. I fear that no matter how anticlimactic it sounds, functions with a few billion parameters might replace millions of jobs. Not because these mathematical functions can develop some sort of advanced intelligence, but because a lot of what we do does not require it.</p>
<h2 id="references">References</h2>
<ol ><li  id="bibreference-1">T. Brown,&#32;B. Mann,&#32;N. Ryder,&#32;M. Subbiah,&#32;J. Kaplan,&#32;P. Dhariwal,&#32;A. Neelakantan,&#32;P. Shyam,&#32;G. Sastry,&#32;A. Askell,&#32;<em>et al.</em>,&#32;<q>Language models are few-shot learners,</q>&#32;2020.&#32;[Online]. Available: <a  rel="noopener" target="_blank" href="https://arxiv.org/abs/2005.14165">https://arxiv.org/abs/2005.14165</a>&#32;
</li></ol>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>just kidding&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>structure-wise, not size-wise&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>artificial intelligence</category><category>machine learning</category><category>neural networks</category><category>technology</category></item><item><title>The Destroyer of Worlds</title><link>https://dovydas.com/blog/the-destroyer-of-worlds/</link><pubDate>Thu, 16 Jul 2020 11:00 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/2020-07-16-the-destroyer-of-worlds/</guid><description><![CDATA[
      
      <p>75 years ago today, the first nuclear weapon was detonated. As Robert Oppenheimer recalled of that day, <em>&ldquo;We knew the world would not be the same.&rdquo;</em> Although we are no longer (technically) in the Cold War, the threat of a nuclear apocalypse is as real as it has ever been since 1945. And yet I feel stupid writing about it&mdash;contrary to the evidence, this scenario feels so improbable, something you would only see in a sci-fi movie or a David Lynch creation<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>.</p>
<p>And it is true that, at least for now, no single bomb is capable of destroying the whole of humanity. But having a weapon that is so powerful naturally produces a system of strategies and incentives in which the detonation (or even a perceived threat) of a single bomb can easily lead to the launch of a hundred rockets equipped with nuclear warheads. What is so challenging to comprehend is that <em>this is most likely to happen by accident</em>. It is difficult to estimate the probabilities of events that have never happened before, but looking at the history of humanity since the Trinity test it seems that we are really really really lucky to have not experienced a nuclear war yet.</p>
<h2 id="close-calls">Close Calls</h2>
<h3 id="october-1960">October 1960</h3>
<p>To detect any incoming missiles from the Soviet Union, the United States built a large number of radars in various countries. On October 5, 1960, one such radar in Greenland sent an automated warning to the North American Aerospace Defense Command (NORAD) in the US notifying that a huge number of missiles had been detected, suggesting with 99.9% certainty that the USSR is attacking the US [<a  href="#bibreference-1" title="E. Schlosser, Command and control: Nuclear weapons, the damascus accident, and the illusion of safety. Penguin, 2013. ">1</a>]. One can only imagine the amount of panic there must have been at the NORAD.</p>
<p>One thing made no sense at all though&mdash;at that time, USSR leader Nikita Khrushchev was in New York! Given the low likelihood of such a Shakespearean scenario, there was no immediate military response. It was later found that the radar in Greenland had actually detected the rising of the Moon, and not a swarm of missiles.</p>
<h3 id="january-1961">January 1961</h3>
<p>On January 24, 1961, an American bomber B-52 broke up while flying over Goldsboro, a city in North Carolina. It was carrying two Mark 39 thermonuclear weapons, each of which was around 270 times more powerful than the bomb dropped over Hiroshima. The plane crashed and the bombs dropped in a field; fortunately, neither of them actually exploded. However, a <a  href="https://www.theguardian.com/world/interactive/2013/sep/20/goldsboro-revisited-declassified-document" rel="noreferrer" target="_blank">document</a> acquired under the Freedom of Information Act in 2013 reveals a horrifying reality. Mark 39 bombs were equipped with six interlocking mechanisms, all of which had to be triggered for the bomb to explode. Inspection of one of the bombs found that &ldquo;five of the six interlocks had been set off by the fall&rdquo;. Had the bomb exploded, it could have resulted not only in hundreds of thousands of lives lost, but also in a perception that the US was being attacked by a foreign country.</p>
<h3 id="september-1983">September 1983</h3>
<p>Having witnessed the Hungarian Uprising with his own eyes<sup id="fnref:2"><a href="#fn:2"  role="doc-noteref">2</a></sup>, Yuri Andropov, the head of the KGB and later the leader of the Soviet Union, over the years became increasingly paranoid about possible threats to the Soviet Union. George H. W. Bush&rsquo;s White House <a  href="https://apps.washingtonpost.com/g/documents/world/read-the-us-assessment-that-concluded-the-soviet-leadership-feared-an-american-nuclear-strike-in-1983/1779/" rel="noreferrer" target="_blank">top-secret intelligence review</a><sup id="fnref:3"><a href="#fn:3"  role="doc-noteref">3</a></sup> declassified in 2015 states that &ldquo;[The President&rsquo;s Foreign Intelligence Advisory Board (PFIAB)] believe[s] that the Soviets perceived &lt;&hellip;&gt; that the chances of the US launching a nuclear first strike [during the first years of Reagan&rsquo;s presidency] &lt;&hellip;&gt; were growing. [The PFIAB] also believes that the US intelligence community did not at the time &lt;&hellip;&gt; attach sufficient weight to the possibility that the war scare was real.&rdquo; For example, in 1981 Andropov, as the head of the KGB, initiated Operation RYaN (РЯН). Its aim was to collect intelligence on a nuclear attack that the Reagan administration might have been planning (as speculated by the Soviets).</p>
<p>Even if unjustified, the fear was real. The tension was at its highest in 1983 when the Soviets shot down a South Korean airliner carrying 269 people, including a US congressman, on September 1. What happened 25 days later is probably the closest we have been to a nuclear war.</p>
<p>At that time, USSR had a protocol where if a notification was received from a warning system that incoming missiles had been detected, an <em>immediate</em> nuclear counter-attack would be launched against the US. A missile strike had been detected by an early-warning system on September 26, 1983 and a notification was sent to Stanislav Petrov, a duty officer who was working near Moscow. His job was simple&mdash;to report any such warnings to his superiors. But he did not. Suspecting a false alarm (<a  href="https://www.bbc.co.uk/news/world-europe-24280831" rel="noreferrer" target="_blank">though not being completely sure about it</a>), he made a decision that he was not supposed to make. The highest ranking officials in the Soviet Union, including its leader Yuri Andropov, were ready to launch a retaliatory strike. But by making the decision to dismiss the warning himself, Stanislav Petrov may have saved the world. And it did not take long to find out that he had made the right call&mdash;there were no missiles after all.</p>
<h2 id="conclusion">Conclusion</h2>
<p>These are just a few of many examples of nuclear close calls. The Cold War ended three decades ago but the nuclear weapons are still here&mdash;fourteen thousand of them, actually. Whether it is the US and North Korea, India and Pakistan, or <a  href="https://www.youtube.com/watch?v=SUuOskX3z7U" rel="noreferrer" target="_blank">a group of radicals with access to a uranium enrichment facility</a>, a nuclear war can erupt very easily. We want to think that the decision to start such a war would be carefully thought through; the history shows us that this is unlikely. As a matter of fact, some nuclear strike authorization protocols make it so that no <em>conscious</em> decision would need to be made at all. A faulty switch or a software bug could initiate a series of events that, <a  href="https://www.netflix.com/title/80190519" rel="noreferrer" target="_blank">like some mad conductor</a>, would move us toward a war that <em>no one</em> wants.</p>
<h2 id="references">References</h2>
<ol ><li  id="bibreference-1">E. Schlosser,&#32;<em>Command and control: Nuclear weapons, the damascus accident, and the illusion of safety</em>.&#32;Penguin, 2013.&#32;</li></ol>
<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Twin Peaks season 3, episode 8: <em>Gotta Light?</em>&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>while serving as the Soviet ambassador to Hungary.&#160;<a href="#fnref:2"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>If you are in Europe, you might need a VPN to access this. Or you can try <a  href="https://assets.documentcloud.org/documents/2484214/read-the-u-s-assessment-that-concluded-the.pdf" rel="noreferrer" target="_blank">this link</a> instead.&#160;<a href="#fnref:3"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>existential risk</category><category>technology</category></item><item><title>Colorblind-Friendly Diagrams</title><link>https://dovydas.com/blog/colorblind-friendly-diagrams/</link><pubDate>Mon, 06 Jul 2020 11:00 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/2020-07-06-colorblind-friendly-diagrams/</guid><description><![CDATA[
      
        <p><em><strong>Note:</strong> This blog post contains LaTeX typography that will not be rendered correctly by RSS readers. To read the blog post with its original formatting, please visit <a href="https://dovydas.com/blog/colorblind-friendly-diagrams/" rel="noreferrer" target="_blank">https://dovydas.com/blog/colorblind-friendly-diagrams/</a>.</em></p>
      
      <p><a href="https://ghr.nlm.nih.gov/condition/color-vision-deficiency#statistics" target="_blank" rel="noopener" >According to the National Institutes of Health</a>, around 1 in 12 males and 1 in 200 females have some form of color vision deficiency. I will admit that until recently I have not thought about the implications of this on my work. But many of us, especially in research, use colors in diagrams to communicate ideas. And as much as we like to associate abstract concepts with colors (e.g. &ldquo;good is green, bad is red&rdquo;), it might backfire on us. I will borrow an example from a 2002 paper by Okabe and Ito [<a  href="#bibreference-1" title="M. Okabe and K. Ito, How to make figures and presentations that are friendly to color blind people, University of Tokyo, 2002. ">1</a>]. Imagine that you submit a manuscript to a journal and it is then sent to three male reviewers (which even today is not unrealistic in some fields). The probability that at least one of them is colorblind is ~23%<sup id="fnref:1"><a href="#fn:1"  role="doc-noteref">1</a></sup>.</p>
<p>Does this mean we should avoid using colors in our diagrams and instead utilize patterns and symbols? Not necessarily. If we are smart about it, we can design colorful diagrams that are accessible to colorblind people.</p>
<h2 id="the-nature-of-colorblindness">The Nature of Colorblindness</h2>
<p>In most cases, <em>colorblind people can still see colors</em>, though usually in a limited range. Human eyes have three special types of cells that are sensitive to mainly red, green and blue light [<a  href="#bibreference-1" title="M. Okabe and K. Ito, How to make figures and presentations that are friendly to color blind people, University of Tokyo, 2002. ">1</a>]. Each cell type is associated with a gene; if one of those genes mutates, it changes how we perceive colors. Most colorblind people have problems with either the &ldquo;red&rdquo; or the &ldquo;green&rdquo; gene. A much rarer occurrence is people with a mutated &ldquo;blue&rdquo; gene. People with mutated &ldquo;red&rdquo;, &ldquo;green&rdquo; and &ldquo;blue&rdquo; genes are said to have <strong>protanopia</strong>, <strong>deuteranopia</strong> and <strong>tritanopia</strong>, respectively [<a  href="#bibreference-1" title="M. Okabe and K. Ito, How to make figures and presentations that are friendly to color blind people, University of Tokyo, 2002. ">1</a>].</p>
<h2 id="types-of-palettes">Types of Palettes</h2>
<p>When designing diagrams, there are three main types of color palettes that you might use: sequential, diverging and categorical. Sequential and diverging palettes are usually used for continuous variables (like temperature) and can be constructed using just one or two main colors, in addition to a neutral color (e.g. black, gray or white), by producing a gradient. Categorical palettes, on the other hand, are used either for data that are discrete in nature or to differentiate between different categories. In most cases, palettes of this type have more colors. Because of this, I will focus on categorical palettes—they represent a more general case and so the findings will also be applicable to sequential and diverging palettes where fewer unique colors are needed.</p>
<h2 id="the-problem-with-plotting-software">The Problem with Plotting Software</h2>
<p><em>Whatever plotting software you use, the chances are it might not be optimized for colorblind people by default</em>.</p>
<p>I do most of my programming in Python and so naturally I use <a href="https://matplotlib.org/" target="_blank" rel="noopener" >matplotlib library</a> for plotting any experimental or simulation results. Unfortunately, the default color cycle used by matplotlib for categorical data is not colorblind-friendly and <a href="https://github.com/matplotlib/matplotlib/issues/9460" target="_blank" rel="noopener" >this issue is known</a>. In the image below, using <a href="https://www.color-blindness.com/coblis-color-blindness-simulator/" target="_blank" rel="noopener" >this online tool</a>, I simulated how matplotlib&rsquo;s color cycle would appear to people with the three types of colorblindness. We can see that especially people with protanopia and deuteranopia might find it challenging to distinguish between some of the colors. One of the main issues here might be the fact that matplotlib uses a lot of them. The more colors one wants to add to a palette, the more difficult it becomes to find a set of colors that are easy to distinguish, especially when you want to make the palette colorblind-friendly.</p>
<p>Back in 2014, <a href="https://www.mathworks.com/products/matlab/matlab-graphics.html" target="_blank" rel="noopener" >MATLAB introduced a new default color cycle</a>. Because they had gotten rid of the bright red, I assumed this new palette is colorblind-friendly. However, while researching for this blog post I could not find any official information on their website and after I simulated how their default color cycle is perceived by colorblind people (in the image below), I am no longer so sure anymore. Although it is better than matplotlib&rsquo;s default colors, it seems to me that people with protanopia and deuteranopia might find it difficult to distinguish between colors 2 and 5—they would be perceived as having almost identical hue and similar brightness (or at least that is what my eyes are telling me&hellip;).</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/colorblind-friendly-diagrams/images/matplotlib-and-matlab-color-schemes.fa07c86626d651cc62532897a23dacd80ed6c357c7fc84acd96da7d7afbcf7ed.svg"
        width="447.87"
        height="130.39"
        loading="eager"
        
        alt="Matplotlib and MATLAB color schemes"
        
        
        >
        
  </figure>
</div>

<h2 id="a-better-palette">A Better Palette</h2>
<p>Color palette that I have now adopted is the one by Okabe and Ito. It seems to have been popularized by Bang Wong&rsquo;s Nature Methods column in 2011 [<a  href="#bibreference-2" title="B. Wong, Points of view: Color blindness, Nature Methods, vol. 8, no. 6, p. 441, 2011. doi:10.1038/nmeth.1618">2</a>]. In the image below, you can see the original palette and simulations of how it is perceived by people with colorblindness. It is not perfect—for example, colors 2 and 7 might look quite similar to people with protanopia, but at least there is a noticeable difference in brightness, which is larger than in the MATLAB example. Also, people with tritanopia might find it difficult to differentiate between some of the colors. However, tritanopia is order of magnitudes rarer than, for example, protanopia, so that might be a reasonable compromise.</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/colorblind-friendly-diagrams/images/okabe-ito-color-scheme.3ce3c7ee668765d09b6210b07d6354f65246831fa3b824c18cf80f691eb399d3.svg"
        width="250.27262"
        height="130.39"
        loading="eager"
        
        alt="Okabe &amp; Ito color scheme"
        
        
        >
        
  </figure>
</div>

<p>RGB and CMYK color code values for Okabe &amp; Ito palette are listed below. The palette also includes black color which could be considered cheating as it would be distinguishable in all color palettes&hellip; Personally, I use it only if necessary and have thus set it as my eighth (instead of first) color because I want to distinguish diagram elements from the text, which is usually typed in black. However, in most cases, you do not even need that many different colors, so that is not an issue.</p>
<table>
  <thead>
      <tr>
          <th>Color</th>
          <th>RGB (0-255)</th>
          <th>CMYK (0-100)</th>
          <th>Hex</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><span style="text-decoration: underline; text-decoration-color: #000000">Black</span></td>
          <td>0, 0, 0</td>
          <td>0, 0, 0, 100</td>
          <td>000000</td>
      </tr>
      <tr>
          <td><span style="text-decoration: underline; text-decoration-color: #E69F00">Orange</span></td>
          <td>230, 159, 0</td>
          <td>0, 50, 100, 0</td>
          <td>E69F00</td>
      </tr>
      <tr>
          <td><span style="text-decoration: underline; text-decoration-color: #56B4E9">Sky blue</span></td>
          <td>86, 180, 233</td>
          <td>80, 0, 0, 0</td>
          <td>56B4E9</td>
      </tr>
      <tr>
          <td><span style="text-decoration: underline; text-decoration-color: #009E73">Bluish green</span></td>
          <td>0, 158, 115</td>
          <td>97, 0, 75, 0</td>
          <td>009E73</td>
      </tr>
      <tr>
          <td><span style="text-decoration: underline; text-decoration-color: #F0E442">Yellow</span></td>
          <td>240, 228, 66</td>
          <td>10, 5, 90, 0</td>
          <td>F0E442</td>
      </tr>
      <tr>
          <td><span style="text-decoration: underline; text-decoration-color: #0072B2">Blue</span></td>
          <td>0, 114, 178</td>
          <td>100, 50, 0, 0</td>
          <td>0072B2</td>
      </tr>
      <tr>
          <td><span style="text-decoration: underline; text-decoration-color: #D55E00">Vermilion</span></td>
          <td>213, 94, 0</td>
          <td>0, 80, 100, 0</td>
          <td>D55E00</td>
      </tr>
      <tr>
          <td><span style="text-decoration: underline; text-decoration-color: #CC79A7">Reddish purple</span></td>
          <td>204, 121, 167</td>
          <td>10, 70, 0, 0</td>
          <td>CC79A7</td>
      </tr>
  </tbody>
</table>
<h2 id="final-remarks">Final Remarks</h2>
<p>Although I provide some recommendations, this blog post is not meant to be a complete guide to preparing colorblind-friendly diagrams. Whatever you use for plotting—whether it is Excel, ggplot2, matplotlib, MATLAB or something else—you should familiarize yourself with the capabilities and limitations of these tools. Some plotting software does not implement colorblind-friendly palettes by default but still offers them to the users. For example, matplotlib does not implement a colorblind-friendly palette in its default color cycle, but provides the option to use <a href="https://matplotlib.org/3.1.0/tutorials/colors/colormaps" target="_blank" rel="noopener" >sequential, diverging and categorical palettes</a> that are accessible to people with color vision deficiencies.</p>
<p>Even if your software does not offer any colorblind-friendly palettes, there are a lot of online tools that you might find useful. For example, <a href="https://www.color-blindness.com/coblis-color-blindness-simulator/" target="_blank" rel="noopener" >this tool</a>, which I mentioned previously, allows you to simulate how any image is perceived by people with color vision deficiencies. It can be used to make sure that your diagrams are accessible to colorblind people, though have in mind that every simulation has its limitations. You can also try out <a href="https://colorbrewer2.org" target="_blank" rel="noopener" >this tool</a> which allows to build sequential, diverging and categorical palettes that are colorblind-friendly.</p>
<p>Whether by using built-in functionality of your software or by employing external tools, you should consider colorblind readers when designing your diagrams. Not only is it the right thing to do, but it will also make your work more impactful—after all, more people will be able to understand it.</p>
<h2 id="references">References</h2>
<ol ><li  id="bibreference-1">M. Okabe and&#32;K. Ito,&#32;<q>How to make figures and presentations that are friendly to color blind people,</q>&#32;<em>University of Tokyo</em>,&#32;2002.&#32;</li><li  id="bibreference-2">B. Wong,&#32;<q>Points of view: Color blindness,</q>&#32;<em>Nature Methods</em>,&#32;vol. 8,&#32;no. 6,&#32;p. 441,&#32;2011.&#32;doi:<a  rel="noopener" target="_blank" href="https://doi.org/10.1038/nmeth.1618">10.1038/nmeth.1618</a></li></ol>
<hr>


<p><strong>Update #1</strong> (July 20, 2022): I added hex values for Okabe-Ito palette.</p>

<div  role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>$1 - \left( 1 - 1/12 \right)^3 \approx 0.23 = 23%$&#160;<a href="#fnref:1"  role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
      ]]></description><category>technology</category><category>visualization</category></item><item><title>Do Not Trust WhatsApp</title><link>https://dovydas.com/blog/do-not-trust-whatsapp/</link><pubDate>Wed, 01 Jul 2020 11:00 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/2020-07-01-do-not-trust-whatsapp/</guid><description><![CDATA[
      
      <p>WhatsApp, with its 2 billion users, is the most popular messaging app in the world. In addition to a user-friendly interface and many useful features, it claims to offer end-to-end encryption, meaning that only the sender and the recipient, and no one in-between, can read the messages. However, some do not feel comfortable using WhatsApp because it is owned by Facebook whose track record on data privacy is <a  href="https://dictionary.cambridge.org/dictionary/english/understatement" rel="noreferrer" target="_blank">not great</a>. It might indeed be a problem, but not the biggest one. The fact that <strong>WhatsApp is a closed-source software</strong> is what should worry you the most.</p>
<h2 id="why-open-source">Why Open Source?</h2>
<p>I am not yet an open-source evangelist but when it comes to data privacy and secure communications, the code being available to the public is a must for me. WhatsApp, like many other messaging platforms, claims to have implemented the <a  href="https://signal.org/docs/" rel="noreferrer" target="_blank">Signal Protocol</a>. It is an open-source protocol and the gold standard of end-to-end encrypted communication&mdash;it ensures secure exchange of messages between two or more individuals. But although the Signal Protocol is open source, WhatsApp is not. How that impacts us depends on which one (or superposition) of the following universes we live in: The Good, the Bad and/or the Ugly.</p>
<h3 id="the-good">The Good</h3>
<p><em>WhatsApp developers have only good intentions and do not make any mistakes</em>.</p>
<p>It is possible that WhatsApp has indeed implemented the Signal Protocol without any backdoors or bugs. It would make little sense for them to risk their reputation and not ensure the one thing that they became known for&mdash;privacy. As a matter of fact, if you analyse the messages that WhatsApp transmits, they do seem to be encrypted; well, at least there is no obvious way to decrypt them without a cryptographic key.</p>
<h3 id="the-bad">The Bad</h3>
<p><em>WhatsApp is evil.</em> (Dear Mark Zuckerberg, this is a hypothetical. Please do not sue me. I am poor.)</p>
<p>Even if WhatsApp communications are encrypted in some way, there is much more to secure exchange of information than just sending an encrypted message. In the end, we still want at least two parties to be able to read those messages; this is where cryptographic keys come in. The Signal Protocol uses a complex process of generating these keys for two (or more) users (see <a  href="https://www.youtube.com/watch?v=DXv1boalsDI" rel="noreferrer" target="_blank">this Computerphile video</a>, for example). However, with WhatsApp being closed source, there is no way of verifying if this process is properly implemented. It is, in theory, possible for them to introduce a backdoor without our knowledge. Such a backdoor could be abused either by the company itself (for commercial purposes) or by other entities, such as governments.</p>
<h3 id="the-ugly">The Ugly</h3>
<p><em>WhatsApp developers make mistakes.</em></p>
<p>As a matter of fact, all developers make mistakes. With any large software project, there will almost certainly be a scenario that results in an unintended behaviour of the program. Although some of the deviations from the engineered behaviour might be harmless, secure messaging apps should be held to a much higher standard. Having code open to the public allows many more people to spot potential vulnerabilities, which can then be dealt with. Of course, one can make an argument that keeping the code closed source would not allow the bad guys to spot the vulnerabilities in the first place and then exploit them. In practise, this strategy usually does not work because you do not necessarily need to see the code to exploit the vulnerabilities of the software.</p>
<h2 id="what-is-the-alternative">What is the Alternative?</h2>
<p>Due to its popularity, I focused on WhatsApp in this post, but these considerations apply to any messaging platform that claims to offer end-to-end encryption, and yet is closed source. Why you should care about privacy at all is a post for another time. However, if you do care about it and you think in terms of potentiality, WhatsApp is <em>not</em> the way to go.</p>
<p>My personal recommendation is <a  href="https://signal.org/en/" rel="noreferrer" target="_blank">Signal</a>, which I use to communicate with most of my friends and family. It is provided by a non-profit organization lead by Moxie Marlinspike who originally co-developed the Signal Protocol. Signal has state-of-the-art security features and, importantly, is open source. Even if you are not a cryptographer (neither am I!), it makes it easier for those with the expertise to inspect the code and suggest improvements (as is constantly happening on <a  href="https://github.com/signalapp" rel="noreferrer" target="_blank">their GitHub page</a>). Signal has now become the natural first choice for journalists, activists and even politicians. We all should have the right to privacy and, fortunately, the technology for that is here.</p>
      ]]></description><category>privacy</category><category>technology</category></item><item><title>Analogue Solution to the Power-Hungry Field of Machine Learning</title><link>https://dovydas.com/blog/analogue-solution-to-the-power-hungry-field-of-machine-learning/</link><pubDate>Fri, 28 Feb 2020 11:00 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/2020-02-28-analogue-solution/</guid><description><![CDATA[
      
      <p><em>Originally published <a  href="https://www.linkedin.com/pulse/analogue-solution-power-hungry-field-machine-learning-dovydas-joksas/" rel="noreferrer" target="_blank">here</a></em>.</p>
<p>Machine learning methods&mdash;although performing many cognitive tasks successfully&mdash;are very time- and power-consuming, and, consequently, bad for the environment. For example, training a large neural network can emit as much carbon dioxide as five cars in their lifetimes [<a  href="#bibreference-1" title="E. Strubell, A. Ganesh, and A. McCallum, Energy and policy considerations for deep learning in NLP, 2019. [Online]. Available: http://arxiv.org/abs/1906.02243  ">1</a>]. Because of the ever-increasing use of machine learning techniques (such as neural networks) it is important to consider whether it is possible to make them more efficient. The main roadblock for further rapid development might be our current hardware platforms that we use to implement machine learning. Alternatives, such as physically implemented neural networks, have been suggested to match the hardware to the task.</p>
<p>Currently, machine learning algorithms&mdash;like most others&mdash;are being implemented in digital computing systems; these rely on storing information in binary format and processing it using binary logic. In such digital computers, computations are well-controlled, predictable and accurate. However, even simple tasks are not trivial to realise and require a lot of space&mdash;storing an 8-bit number requires tens of transistors, while performing mathematical operations (e.g. multiplication) with such numbers requires thousands of transistors. Furthermore, conventional computers use an architecture which separates memory and computing. Such separation results in large amounts of information being shuffled between these two modules during data-intensive tasks. This presents an enormous challenge and a bottleneck for improving power efficiency.</p>
<p>Using analogue approach, as well as merging memory and computing modules together, has been suggested in the past. Analogue implementation would mean that devices, that are capable of encoding numbers on a continuous range, would be employed, thus increasing the density of encoded information. However, it is often feared that such systems would not be accurate enough for practical purposes. Nevertheless, such implementations could increase the speed and power efficiency of various computing operations by orders of magnitude. It is thus important to consider whether it is possible to employ them at least in some contexts without sacrificing the accuracy.</p>
<p>Artificial neural networks (ANNs) seem to be one of the machine learning models that can handle a certain amount of inaccuracy associated with analogue computing. ANNs are structures that consist of two main elements: neurons and synapses (see diagram in Figure 1). Synapses amplify the signals, while neurons add and transform those signals; as a whole they can perform tasks like classification (more information on how ANNs operate can be found <a  href="https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi" rel="noreferrer" target="_blank">here</a>).</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/analogue-solution-to-the-power-hungry-field-of-machine-learning/images/neural-network.a041af71542942762aaa8a06e964f7d6c22f1f2ef668cfff4385765c21a0f825.svg"
        width="524.7"
        height="232.1"
        loading="eager"
        
        alt="Architecture of artificial neural networks"
        
        
        >
        
        <figcaption ><strong>Figure 1:</strong>&nbsp;Architecture of artificial neural networks with neurons represented using coloured circles and synapses as connections between those circles. Input (e.g. an image of a handwritten digit) is fed into the leftmost neuronal layer, after which a signal propagates to the right. A prediction (e.g. guessing what digit the image depicts) is made by the rightmost neuronal layer of the network.</figcaption>
        
  </figure>
</div>

<p>Analogue implementations of ANNs could be realised using devices, called memristors, whose resistance can be easily varied&mdash;a key property of synaptic behaviour. Thus, memristors could implement the synapses of neural networks&mdash;devices would be arranged in two-dimensional structures, called crossbar arrays, that resemble the way synapses are arranged in ANNs. Most importantly, this would enable to easily perform matrix-vector multiplication operations that are the costliest ones in these networks. In this way, ANNs could be made orders of magnitude more efficient.</p>
<p>Resistive random-access memory (RRAM) devices&mdash;being a type of memristor&mdash;are one of the most promising candidates for such implementations. They can be manufactured using conventional semiconductor materials and are relatively easy to integrate with current computing systems. Although ANNs can tolerate some amount of inaccuracies due to their very parallel and interconnected nature, the more precisely one can program RRAM devices, the better the performance of an ANN will be. Thus, many groups working on RRAM are trying to optimise their various properties: dynamic range, chance of failure, programming non-linearities, current/voltage non-linearities, device-to-device variability, and others. However, there is little prioritisation of some properties over others because the way each of these non-idealities affect ANNs is not fully understood.</p>
<h2 id="our-approach">Our Approach</h2>
<p>We decided to look at each of the properties (shown in Figure 2) separately and evaluate their effect on network performance. We simulated many different configurations of ANNs, and then disturbed their weights to reflect the effects of these RRAM properties. These randomized disturbances were applied multiple times to get a reliable estimate of the average effect that they have on physically implemented neural networks.</p>





<div >
  <figure >
    <img
        
        src="https://dovydas.com/blog/analogue-solution-to-the-power-hungry-field-of-machine-learning/images/non-idealities.844bfd8d0c0e4dcbdb2bb778e76fcd7fa4814daac42b1769bb0383a3b19c5e23.svg"
        width="366.9"
        height="261.5"
        loading="eager"
        
        alt="Properties of RRAM devices"
        
        
        >
        
        <figcaption ><strong>Figure 2:</strong>&nbsp;Properties of RRAM devices that have an influence on ANN accuracy.</figcaption>
        
  </figure>
</div>

<p>In our analysis [<a  href="#bibreference-2" title="A. Mehonic, D. Joksas, W. Ng, M. Buckwell, and A. Kenyon, Simulation of inference accuracy using realistic RRAM devices, Frontiers in Neuroscience, vol. 13, p. 593, 2019. doi:10.3389/fnins.2019.00593">2</a>], we discovered that different non-idealities have very different effects on ANN performance. We found that in realistic scenarios small proportion of devices failing, and programming or current/voltage curves being non-linear, are tolerable&mdash;the decrease in inference accuracy is relatively small. The range of resistances that the devices can be set to, i.e. the dynamic range, can have a much more detrimental effect. However, it can be mitigated by employing a different mapping scheme. That is, it is possible to represent the synaptic weights using resistances so that the accuracy would not be affected, even if the range of those resistances is small. We found that the most important factor affecting accuracy is device-to-device variability. When the manufactured devices do not respond to the inputs in the same way, the accuracy can drop considerably. Besides, this non-ideality is more difficult to deal with as it cannot be avoided by simply using a different mapping or programming scheme.</p>
<p>Although some qualitative trends were observed, at this moment it is difficult to make generalised quantitative conclusions that would be applicable to all RRAM devices. The nature of non-idealities differs not only with different materials, but also with different physical dimensions of the devices. Although the effects of properties like dynamic resistance range are applicable to many different variants of RRAM devices, some other non-idealities, such as device-to-device variability, can vary a lot between differently manufactured devices. Besides, non-idealities can manifest themselves differently when using different network architectures. Thus, this is just the beginning of an exploration to build a more complete picture of the non-idealities of RRAM devices and the effect they have on the neural networks that they constitute.</p>
<h2 id="where-are-we-at">Where are we at?</h2>
<p>Analogue devices, such as RRAM, could potentially solve problems of high power consumption of ANNs. Although there are several competing types of analogue devices being considered, a focused approach to device optimisation will be key to their successful integration into mainstream computing systems. Instead of optimising device properties that are important in conventional memory technology, it will be crucial to understand what role each of them plays in the specific context of neural networks.</p>
<p>Despite the rapid development of RRAM devices&rsquo; technology, the discussion about the relative importance of their various non-idealities in physically implemented ANNs has been very limited. Thus, it is still difficult to take a structured approach to the optimisation of these devices. Our simulation results show that from all RRAM device non-idealities, device-to-device variability can have the largest effect. Although the nature of this and other non-idealities can differ in different types of RRAM devices, a systematic approach that we take provides a more comprehensive understanding of how various device properties affect ANN accuracy. We hope that this analysis will inform researchers trying to optimise RRAM devices suited for physical implementations of neural networks and that it will accelerate the growth of this exciting field even further.</p>
<p><em>Thanks to <a  href="https://www.sunnybains.com/" rel="noreferrer" target="_blank">Dr Sunny Bains</a> for reading the drafts of this post and for helping me organize my thoughts.</em></p>
<h2 id="references">References</h2>
<ol ><li  id="bibreference-1">E. Strubell,&#32;A. Ganesh, and&#32;A. McCallum,&#32;<q>Energy and policy considerations for deep learning in NLP,</q>&#32;2019.&#32;[Online]. Available: <a  rel="noopener" target="_blank" href="http://arxiv.org/abs/1906.02243">http://arxiv.org/abs/1906.02243</a>&#32;
</li><li  id="bibreference-2">A. Mehonic,&#32;D. Joksas,&#32;W. Ng,&#32;M. Buckwell, and&#32;A. Kenyon,&#32;<q>Simulation of inference accuracy using realistic RRAM devices,</q>&#32;<em>Frontiers in Neuroscience</em>,&#32;vol. 13,&#32;p. 593,&#32;2019.&#32;doi:<a  rel="noopener" target="_blank" href="https://doi.org/10.3389/fnins.2019.00593">10.3389/fnins.2019.00593</a></li></ol>
      ]]></description><category>machine learning</category><category>memristors</category><category>neural networks</category><category>technology</category></item><item><title>The Power Crisis of Modern Computing</title><link>https://dovydas.com/blog/the-power-crisis-of-modern-computing/</link><pubDate>Tue, 03 Dec 2019 11:00 +0000</pubDate><author>Dovydas Joksas</author><guid isPermaLink="false">https://yoshke.org/blog/2019-12-03-the-power-crisis/</guid><description><![CDATA[
      
      <p><em>Originally published <a  href="http://energyjournal.co.uk/Edition_8#8_A6" rel="noreferrer" target="_blank">here</a></em>.</p>
      ]]></description><category>machine learning</category><category>memristors</category><category>neural networks</category><category>technology</category></item></channel></rss>