Hacker Newsnew | past | comments | ask | show | jobs | submit | komlan's commentslogin

This is the fundamental weakness of every self-check-in system. QR codes are just information, and information can already be transmitted instantly and faked (GPS, etc.) if needed.

If you care about reliability, there's no way around scanning the codes yourself (instead of making attendees scan), so you can be sure that each scan maps to an actual attendee, and you're not getting 30 scans from 10 people actually present.

I guess self-check-in became popular in zoom calls during the covid area, but people that need reliability instantly prefer the alternative, when available.

Shameless self-plug: this is precisely why my Google Forms/Sheets check-in plugin is named "Qr code ticket per attendee" [1], because the unique ID per person is what makes it more reliable than self-check-in.

Yes, people can still send friends, but most of the time, you don't care, and it's too much of a hassle for the attendee. People sometimes worry that check-in won't be quick, but QR code reading is very fast [2], and you're only limited by how quick people move.

[1] https://qr-code-ticket.com

[2] https://www.youtube.com/watch?v=-fkgCX3H7so


Hex is worse, see here [1] for UUIDs

[1] https://news.ycombinator.com/item?id=39094251


I'm not confident of the math there.

https://i.imgur.com/cAVbqka.png

Because of quirks, in edge cases decimal is more efficient, but overall alphanumeric is better in QR code.


Ah, I was assuming numeric data rendered as hex, like UUIDs. Decimal works wonders for those, because the numeric mode of QR codes is the most efficient.


This is particularly useful for numeric data that is usually displayed in hex, like UUIDs [1]

I used this for digital QR code tickets [2], and it made the codes so much easier to scan, even with bad lighting.

[1] https://news.ycombinator.com/item?id=39094251

[2] https://workspace.google.com/marketplace/app/qr_code_ticket_...


I'm building a point/credit/voucher tracking tool for QR code member cards.

https://workspace.google.com/marketplace/app/qr_code_loyalty...

You create a new member by filling a Google Form (they receive a digital member card with a QR code by email), and add or subtract points by scanning the QR code.


Physically bigger pixels help a lot indeed. The encoding mode also helps make pixels bigger.

This is very convenient when you control the QR reader and need to represent long numeric identifiers like UUIDs.

For example:

  9728983f-7d7d-4189-b624-f92781e36650 (lowercase UUID):
    => length=36, 15 pixels between markers
  JWM9GFVXFN0RKDH4Z4KR3RV6A0 (base32 UUID):
    => length=26, 11 pixels between markers
  9728983F-7D7D-4189-B624-F92781E36650 (uppercase UUID):
    => length=36, 11 pixels between markers
  200924207194334734815443970355691218512 (decimal UUID):
    => length=39, 7 pixels between markers
The uppercase UUID has bigger pixels because it used a different encoding, and gets the same results as the shorter base32 uuid.

The decimal UUID is a longer string, but results in much bigger pixels because it can use numeric encoding.

I have a QR code base attendance tracker [1], where attendees show the code [2] on their phones (glares, etc.), in bad lighting conditions, etc. Bigger pixels means scanning stays quick. Same with parcel tracking [3] where field agents might need to scan QR codes in barely-lit hallways, etc.

[1] https://workspace.google.com/marketplace/app/qr_code_pass_fo...

[2] https://share.darkaa.com/!qntvtzNPWJ

[3] https://admin.trak.codes/


You can also use base45 [1]:

  -4J5BJ+%F$C881NIMV-IG2.C (base45, 132 bits in QR)
  JWM9GFVXFN0RKDH4Z4KR3RV6A0 (base32, 143 bits in QR)
  200924207194334734815443970355691218512 (decimal, 130 bits in QR)
It will make use of all allowed characters in the alphanumeric mode, while being significantly shorter than base32 and as dense as decimal. And decimal encoding in general needs bignum, because there is no suitable 10^k which is only slightly larger than powers of two so no convenient binary-to-decimal encoding exists (conversely, QR code itself does make use of the fact 2^10 is only slightly larger than 10^3 for this mode). Base45 always works on three-byte groups and maintains the similar efficiency in comparison.

[1] https://datatracker.ietf.org/doc/html/rfc9285


That's neat, especially for arbitrary binary data!


Thanks, please get in touch when you do try it!


Thanks, please don't hesitate to get in touch when you do try it!


Mostly nation by nation, but key hubs like Nigeria/Ghana (English) and Senegal/Ivory Coast (French) draw other countries in, due to the presence of a larger pool of investors.


Spot on. Fortunately, the underlying platform itself is independent of Google.

The Forms and Sheets add-ons are just customer acquisition channels, just like our Zapier integration [1]. These mostly use our API, and very little of our UI (mostly the scanner).

[1] https://zapier.com/apps/trak-qr-automation/integrations


It depends on which app you are using to scan the codes. For Trak [1], the main use case is to scan QR codes you made yourself (or someone from your company made). The scanner simply rejects anything it doesn't recognise as a valid (app-specific) code.

[1] https://admin.trak.codes/


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: