Postscript is one of these old technologies that seem like they will never die. Launched in 1984, it is still in used today, en though it has been partly supplanted by PDF. The difference between the two data formats is in fact pretty foggy for many people – yet there is one important one: PostScript is a Turing Complete language.
This means a short Postscript file might execute for a very long time, or for ever. This also means that a Postscript file might render different things. To show this, I wrote – years ago – a small Postscript program which draws a tree. The file is pretty short, 1533 bytes, yet it will take quite some time to render it, so please don’t sent it to the printer a work at a busy time. The tree should be slightly different each time you render it.
The fact that you could write Postscript files directly was a common idea when I was at the University, both the compilation course given by Jacques Menu and the analysis course given by Gerhard Wanner contained examples of doing so (in the latter case, Postscript was generated from Fortran).
I also added a variant of the tree with a lesser level of recursion, and a version of the Koch snow-flake.
The Landesmuesum in Zürich has an exhibit to celebrate the 500th birthday of Conrad Gessner, a public figure of Zürich. He was one of the first bibliographer, and a pioneer in botany, biology and linguistics. The 50 swiss franc bill of the previous set of bills featured his picture and one of his drawings.
The exhibit was very interesting, with many samples of his writing, drawings, a part of his collection of animals, but also more information to show the context, a printing press, movies explaining all fields in pioneered: the first bibliography of written texts, the first biological encyclopædia, treaties about the relationship between geography and biology, the relationship between human languages. The exhibits also gave an overview of his correspondence with other scientists spread all over Europe, and how his drawing influenced other representations of animals and plants. I found it fascinating that he drew the first ever image of a tulip.
In short, a very nice exhibit, which is worth visiting if you are in Zürich and interested in the history of science and representation of life.
Most of the bar codes we see around us are just a sequence of untyped bytes, the reader might infer their meaning based on the encoding (carrier), or by looking at the bytes – if the content starts with
http, it probably is a url.
One example of structured bar code is GS1’s expanded Databar. The code is segmented in various fields, whose type is identified by a number. If you look at the bar code in the image, it contains the following fields:
||GTIN of the item in the package
||Expiration data, 30th of June 2020, not 2006.
||Count of Trade Items. The box actually contains 100 pieces.
What is interesting is that this product has a PZN, the german medical product identifier, with number 06453501, this number could have been encoded in the Databar, with application/type code
While I’m now working in Shopping, I used to work in cluster management, and during my academic days, on optimistic replication. Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, and John Wilkes published an interesting paper in Issue 1, Volume 14 of ACM evolution with the title Borg, Omega, and Kubernetes – Lessons learned from three container-management systems over a decade, which gives an overview of the way jobs are run at Google.
The container system uses an optimistic approach to consensus (Paxos), basically ideas my and my colleagues at André Schiper‘s lab in EPFL were working on. It is always nice to see ideas from academia finally making it into industry.
Another aspect of the article I connected with is the section about configuration language, first because my starter project at Google was on the configuration language used by Borg, but also because I think this is a real issue, best captured by a blog post by Mike Hadlow in 2012 – configuration data is first extracted from the code, the configuration file becomes increasingly complex until it is Turing complete language, usually as complicated as the one used to build the actual program, but with worse tooling and performance.