HN user

tristramb

374 karma
Posts0
Comments118
View on HN
No posts found.

A year ago I started sending postcards to my 91 year old father because he has difficulties with modern forms of communication. They do still exist but you have to search for them.

He liked to be able to reason about programs without running them. He preferred simpler languages because they contain less irrelevant noise which got in the way of that.

"Kinda hard to find where Dijkstra praised something (except Algol 60)."

Hamilton Richards, who was one of Dijkstra's colleagues at the University of Texas, told me in an email that Dijkstra was impressed by the work of Richard Bird on functional programming.

If the transients occur immediately following the nuclear explosions but not before them, then the correlation together with the earth shadow deficit suggests that the transients are caused by reflective debris produced by the nuclear explosions. I don't know how feasible it would be for this debris to survive the explosion and be blasted above the atmosphere to glint in the sunlight at night, but there is the case of the missing manhole cover from one of the Operation Plumbbob tests: https://en.wikipedia.org/wiki/Operation_Plumbbob#Missing_ste...

Yes, that is how Facebook, Yahoo and many other companies started out. But they rewrote their code when it became to big to be maintainable. The problem with shoddy code is not necessarily that it doesn't work but that it becomes impossible to change.

Just behind me where I am sitting at the moment I have 21 RUBs containing my collection of about 42000 pinned out flies (mostly). The RUBs are stacked in and on top of bookshelves. I seem to remember that you could buy a rack to hold them but it looked too flimsy for what I wanted. The flies are pinned out onto plastic foam sheets in small clear plastic presentation boxes, 48 of which fit in each 12 litre RUB. I still have to properly identify about half of the flies. Photos of the presentation boxes and CSV files of the identifications are backed up to https://github.com/tristrambrelstaff/flies. RUBs have played a significant part in enabling me to manage all this.

"To explain what I was doing in logic-driven software architecture I looked for a good metaphor and, on the spot, proposed that there was a kind of “contract” between caller and callee. He did not say anything, but his mere presence had enabled me to make my incipient ideas jell."

I hadn't realised that Hoare was present when Meyer first used the term 'contract' to describe his ideas.

Tony Hoare has died 4 months ago

"Around Easter 1961, a course on ALGOL 60 was offered in Brighton, England, with Peter Naur, Edsger W. Dijkstra, and Peter Landin as tutors. I attended this course with my colleague in the language project, Jill Pym, our divisional Technical Manager, Roger Cook, and our Sales Manager, Paul King. It was there that I first learned about recursive procedures and saw how to program the sorting method which I had earlier found such difficulty in explaining. It was there that I wrote the procedure, immodestly named Quicksort, on which my career as a computer scientist is founded. Due credit must be paid to the genius of the designers of ALGOL 60 who included recursion in their language and enabled me to describe my invention so elegantly to the world. I have regarded it as the highest goal of programming language design to enable good ideas to be elegantly expressed." - C.A.R Hoare, The Emperor's Old Clothes, Comm. ACM 24(2), 75-83 (February 1981).

I retired in 2024 after a four decade career, mostly programming avionics systems but with a decade of Ruby on Rails towards the end. I am now sitting here eating popcorn and watching the disaster unfold. I am happy to be out of it. So long as it doesn't affect my pensions and the local shops still have food...

I think it is a good general principle that, for any process that is likely to be a tempting target for scammers, you should require a non-electronic step to initiate that process. Requiring a physical letter of application for a job, for example.

It doesn't have to prevent the scam completely, it just has to make harder for them to scam you than it would be to move on to scam someone else.

I seem to remember (but I can't find the source) that Wirth initially had three aims in designing Pascal:

1. To use it in teaching a structure programming course to new students. As in the late 60's all student programming was batch mode (submit your program to an operator to run, and pick up the printout the following day), this meant the compiler had to be single-pass and give good error messages.

2. To use it in teaching a data structures course involving new data structures worked out by Wirth and Hoare.

3. To use it in teaching a compilers course. This meant the compiler code had to be clean and understandable. Being single-pass helped in this.

In 'Managing Technical People', 1997, page 199, Watts Humphrey says that, after several failed attempts to produce a PC by IBM procedures, they set up an independent team that could skip the procedures as necessary to get the job done. This worked in the short term but it had two side-effects that were catastrophic in the long term: they lost control of the operating system to Microsoft, and they also lost control of the chips to Intel. He says both of these side-effects would have been caught by the checks inherent in the normal IBM procedures.

I recently came to realise that my memories of my experiences of early childhood are probably greatly affected by seeing my younger siblings going through those same experiences a few years later. At age five or six I would see my mother reading to them on the sofa and they would be lying with their heads on her tummy feeling her warmth and listening to her heartbeat and stomach gurgles. Seeing this would remind me of when I used to do that, thus reinforcing those memories and probably somewhat distorting them. One of the distortions is that this memory is set in the house we moved to when I was four, and most of my own relevant experiences would have been set in our previous house. I think the accumulation of memories is a bit like training an LLM on a combination of new data and its own data.

It always pleases me to see pictures of NGC 4216, the edge-on spiral galaxy with a star beside its nucleus. I used to use it as a pointer to the short-period contact binary star CC Comae Berenices back when I used observe eclipsing binaries with my Celestron 8.

Take a mapping a and precompose it with the identity mapping i. By the definition of the identity mapping the resulting composition is equal to a.

  i;a = a
(Here ';' represents forward composition. Mathematicians tend to use backward composition represented by '∘' but I find backward composition awkward and error-prone and so avoid using it.)

Now, if there is another mapping j that is different from i, such that

  j;a = a
then the mapping a loses information. By this I mean that if you are given the value of a(x) you cannot always determine what x was. To understand this properly you may need to work through a simple example by drawing circles, dots and arrows on a piece of paper.

If there is no such j then mapping a is said to be a monomorphism or injection (the set theoretic term) and it does not lose information.

This specification of the property 'loses information' only involves mapping equality and mapping composition. It does not involve sets or elements of sets.

An example of a mapping that loses information would be the capitalization of strings of letters. An example of a mapping that you would not want to lose information would be zip file compression.

If you alter the above specification to use post-composition (a;i = a and a;j = a) instead of pre-composition you get epimorphisms or surjections which capture the idea that a mapping constrains all the values in its codomain. I like to think of this as the mapping does not return uninitialized values or 'junk' as it is sometimes called.

Bartosz Milewski works through this in more detail (including from the set-theoretic side) in the last 10 minutes of https://www.youtube.com/watch?v=O2lZkr-aAqk&list=PLbgaMIhjbm... and the first 10 minutes of https://www.youtube.com/watch?v=NcT7CGPICzo&list=PLbgaMIhjbm....