<story><title>Mechanical sympathy for QR codes: making NSW check-in better</title><url>https://huonw.github.io/blog/2021/10/nsw-covid-qr/</url></story><parent_chain></parent_chain><comment><author>negative_zero</author><text>Something that I have found very interesting:
In New Zealand the QR codes are like the &amp;quot;Works Now&amp;quot; NSW ones. The combination of the A4 page size, the QR code taking up most of that page and peoples natural standing distance away from the posters, roughly means that the QR code takes up most of their screen. And I am not sure why, but some phones seem to &lt;i&gt;really&lt;/i&gt; struggle with this setup.&lt;p&gt;And when the code won&amp;#x27;t scan, people&amp;#x27;s natural tendency is to then move closer to the QR code (make it fill the whole screen), which doesn&amp;#x27;t help at all. But if they instead initially move away it can fix the issue.&lt;p&gt;I&amp;#x27;m not sure what would cause this? Maybe a reduction in relative angular distortion? Or perhaps only a crop of the image is &amp;quot;scanned&amp;quot; for QR codes?&lt;p&gt;But yeah this, (very) anecdotal, data point would counterintuitively push for a smaller QR code than &amp;quot;Works now&amp;quot;(maybe 10-20%).&lt;p&gt;The best experience I have had was the Queensland system. The QR codes I saw were different than explained at the end of this article. They were small (Original NSW size) but very simple codes. From the look and the number below, I assumed it was just a 6 digit number. Those would scan very fast (as in while I was still moving the phone at speed to align with the QR code).&lt;p&gt;In NZ the behaviour is: stop, aim, scan, wait, done. But in Queensland it worked so well I could just keep walking, wave my phone in the direction of the barcode and it would catch it.&lt;p&gt;Anyway, I just found those experiences very interesting, maybe others will too :)</text></comment>
<story><title>Mechanical sympathy for QR codes: making NSW check-in better</title><url>https://huonw.github.io/blog/2021/10/nsw-covid-qr/</url></story><parent_chain></parent_chain><comment><author>lifthrasiir</author><text>The workflow is generally reversed in South Korea: the visitor shows a generated QR code to the merchant&amp;#x27;s camera for the check-in. (There are also multiple fallbacks available.) The QR code is, to my knowledge, a very short living JWT credential and looks like this: (I&amp;#x27;ve redacted pretty much every nonce for the obvious reason)&lt;p&gt;&lt;pre&gt;&lt;code&gt;    003|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImVucCI6Imh0dHBzOi8vd3NzLmNvb3YuaW8vMDEyMzQ1Njc4OUFiQ2RFZkdoSWoiLCJpc3MiOiJBQ01FIiwiZXhwIjoxNjAwMDAwMDAwLCJ2ZXJzaW9uIjoiMDAzIn0.AEwfg3OC34g07x_xVWekdUumxPTqbrRFvQkOVV_TQT4
&lt;/code&gt;&lt;/pre&gt;
That got encoded into a fairly large QR code---61 by 61 modules (version 11, error correction level L)---and it is always painful to get it recognized, mainly because every merchant&amp;#x27;s device is different and some devices and&amp;#x2F;or apps are particularly less responsive.&lt;p&gt;It is very noticable that there is a lot of redundancy here: the format of JWT payload will be very regular, always having `sub`, `enp`, `iss`, `exp` and `version` (fixed to `003`) fields in a verbose base64 format for example. It makes a fun challenge to optimize this into something much smaller.</text></comment>