addy34 an hour ago

>An estimated 10 billion barcodes are scanned globally, every day, according to GS1, the organisation that oversees UPC and QR code standards.

GS1 are the ultimate gate keeping monopoly. They provide numbers as a service.

Most retailers like Amazon require you to have a GS1-issued barcode number on your product, and so you need to pay GS1 annually for the right to use a particular number. You can see the pricing here:

https://www.gs1us.org/upcs-barcodes-prefixes/how-to-get-a-up...

That's $250 upfront and $50/year for the right to use 10 numbers. What a business.

They get away with it by being a (tax-exempt) non-profit.

According to ProPublica, the CEO of the US division (Robert Carpenter) earned US$3.3 million in 2022.

https://projects.propublica.org/nonprofits/organizations/362...

nhatcher 11 hours ago

Derek Muller just did an interesting take on QR codes and their history on his popular channel veritasium:

https://m.youtube.com/watch?v=w5ebcowAJD8

  • ranger_danger 9 hours ago

    It also contradicts what the other commenter said about barcodes originating with railways. But I believe Derek.

    • happytoexplain 9 hours ago

      It looks like the video touches on the origins of product barcodes (UPC/EAN) specifically, not literal barcodes in general.

      Edit: Oh, I guess that's moot since the product barcodes predated the train barcodes anyway.

      • jcrawfordor 7 hours ago

        Kartrak is generally recognized as the first barcode system in actual use, but research on the topic and small prototype systems go back around 20 years earlier at IBM. So it depends on what you consider "first."

        One of the issues is that barcode readers were very large and expensive to construct in the mid-century. The railroad application became practical earlier because of the small number of readers and large amount of space available at railyards. Kartrak readers were small-refrigerator-sized cabinets with arc lamps and an AC motor driving a rotating mirror. They required regular mechanical maintenance. The actual logic was done in a minicomputer installed in a nearby building. Between the optical cabinet and the minicomputer, it probably came out to something like 15 square feet for each reader (and kW power consumption for the arc lamp).

        Practical retail barcodes had to wait for a lot more miniaturization of the mechanics and pretty much for lasers, and weren't seen until after Kartrak.

        You can tell that Kartrak had a rather distinct lineage from retail barcodes - GTE, who designed Kartrak, don't seem to have been aware of the earlier work at IBM and designed their system independently. WABCO developed a competing system that didn't gain adoption but actually was based on the IBM work and resembles modern barcodes much more. The result is that Kartrak is an exceptionally weird symbology, with a number of design traits that were either not seen at all in other barcodes (the unusual half-toned bars for better performance with arc lamp readers) or not seen until decades later (the use of color and offset start/end points of bars to avoid partial reads).

EvanAnderson 5 hours ago

Thinking about 2D barcodes as pulse trains, rather than pixels, made them make a lot more sense to me.

Aside: It's not a Marsh anymore, but I drive by the supermarket where the first UPC was scanned in a retail sale a couple times a week.

slivanes 7 hours ago

I'm not into conspiracy theories, but I was told the guide bars on every code (each end, plus middle) is the code for digit 6, so 666 on every one. Something about the mark of the beast on every person. People can find something coincidental when they want I suppose.

  • jcrawfordor 7 hours ago

    The whole 666 embedded in barcodes thing is sort of interesting. The UPC symbology uses an unusual encoding method, not seen in other barcode families, where every digit has two different representations, a "left" and "right" version. These were originally used to allow readers to detect the direction that they were scanning the barcode (whether it was upside down or not). This avoided the need for distinct "start" and "end" markers, as most barcode symbologies have. Instead, UPC had a "guard" symbol used at the beginning and end and, following the symmetric design principle, in the middle as well. Later, GS.1/EAN was designed to add a digit while mostly maintaining compatibility with UPC readers. To do this, yet a third variant representation was added, so each digit has an L, R, and G representation. On the left side, L and G variants can be used to encode the check digit.

    I am not sure exactly why UPC uses a center guard, but I think it was probably just to provide more material for clock recovery, which was more challenging when UPC was designed. Mechanically scanning laser readers did not necessarily have well-controlled scan speeds, and in the early days manually scanned readers were common, so more clock recovery was better.

    It so happens that the guard symbol chosen, which is a trivial alternating pattern, has a fairly close resemblance to the R variant of the digit 6 (but not to the L or G variants). It's not really the same, as the guard pattern is 3 modules wide (except the center one which is 5 modules) while digits are all seven modules. We could describe it this way: the guard pattern is 101 (or 01010 in the center case) while the R variant of 6 is 1010000. The "101" part looks similar. The L variant of 6 is 0101111 (L and R variants are the inverse of each other) and does not superficially resemble the guard at all. For completeness, the G variant is 0000101, but it was not in use when the "666 in barcodes" conspiracy theory was most current.

    UPC is kind of weirdly complicated, reflecting its age. Later symbologies mostly use much simpler designs, usually with a distinct "start" and "end" guard and no center guard at all, and only one representation of each digit. Direction is recovered by telling the start/end markers apart, and check digits are implemented with just a digit in the body, rather than the curious "character variant" method adopted by GS.1 for compatibility.

  • kergonath 7 hours ago

    This falsehood is mentioned in the article.