Dijkstra on stage #programming

🕒︎ - 2022-06-21

If you ever looked a graphs (in computer science) you've come across the name Dijkstra. He is also known for a paper that became sort of a proto-meme: "Go To Statement Considered Harmful", and a number of other papers and pithy quotes, like this:

"Computer science is no more about computers than astronomy is about telescopes."


"I would therefore like to posit that computing's central challenge 'How not to make a mess of it,' has not been met."

Watching this video: A Programmer’s Early Memories by Edsger W. Dijkstra from The International Research Conference in the History of Computing at Los Alamos, 1976 make my toes curl - the contrast to e.g. Donald Knuth's or Konrad Zuze's stage presence is striking.

A less biased programming language #programming #language

🕝︎ - 2022-06-18

Many, most, programming languages use English keywords. That leads to a bias, I think.

How would you go about constructing a programming language without?

Another bias is that most programming languages are written left-to-right. I guess some asian languages are written top-to-bottom? So, left-to-right, right-to-left and top-to-bottom are out. That leaves bottom-to-top. Hm, or it could be "on the bias", i.e. diagonally.

Keywords must'nt be in English. So they are out. The latin alphabet is also out.

It feels like this thought experiment might very well end up as a variant of Whitespace.

(Inspired by this recently restored video from The International Research Conference in the History of Computing at Los Alamos, 1976: Early History of Programming Languages by Donald Knuth.)

Big Thief, Store Vega ★★★★☆ #live #music

🕦︎ - 2022-06-13

Warming up for Big Thief tonight was Tucker Zimmerman who I had never heard of before, so we arrived at the time the concert was announced, to hear him as well.

It was touching to see the band help Tucker Zimmerman (he is of 1941-vintage) on- and off stage - they also accompanied him on a couple of songs, including the encore.

I can't remember being at a concert where the warm up artist played an encore before :-)

It was quite fitting that this concert was my first since the SARS-CoV-2 lock down on March 11, 2020, as the early Big Thief concert that evening was the last concert before the lock down - the late concert got cancelled!

I still haven't heard any of their recorded music, so I know very little of it, but I also enjoyed this concert - which was sold out - and so did the audience, which seemed quite in tune with a very sympathetic band.

If Big Thief plays near you - next are Stockholm, Helsinki, Stavanger, Bergen, Oslo, Göteborg, Pilton, Cologne, Utrecht, Brussels, Belfort, Hamburg, Roskilde, Berlin and then Australia - go check them out!

Lazy pigeons and IT #biology #software

🕦︎ - 2022-06-11

The website "Sad and Useless" has a bunch of pictures labeled "Pigeons Make The Laziest Nests!"

I may be slightly jaded, but my first thought when looking at the pictures was: "Those are IT-pigeons: Minimum Viable Product".

If the pigeons are a certain type of Free Software/Open Source zealot they would be going "Not happy with the nest? When you hatch, send a patch".

Thank you, I'll be here all week.

Emarcheology #emacs #dynamic programming

🕓︎ - 2022-06-10

I randomly ended up reading the comments on this 6 year old blog post: export TERM=aaa-60 which sent me on to an archeology archive site of Emacs sources.

Paradoxically, or not, hosted on Microsoft GitHub.

Anyway, the blog comment referenced the top of the Gosling Emacs' display.c:

			/		\
		       /		 \
		      /			  \
		      |	  XXXX	   XXXX	  |
		      |	  XXXX	   XXXX	  |
		      |	  XXX	    XXX	  |
		      \		X	  /
		       --\     XXX     /--
			| |    XXX    | |
			| |	      | |
			| I I I I I I I |
			|  I I I I I I	|
			 \	       /
			  --	     --
		    XXX			   XXX
		    XXX			   XXX

			  *  BEWARE!!  *

			All ye who enter here:
		    Most of the code in this module
		       is twisted beyond belief!

			   Tread carefully.

		    If you think you understand it,
			      You Don't,
			    So Look Again.

To optimize the number of changes done to update the screen a dynamic programming algorithm was used; here is another comment later in the file:

/*	1   2   3   4   ....	Each Mij represents the minumum cost of
      +---+---+---+---+-----	rearranging the first i lines to map onto
    1 |   |   |   |   |		the first j lines (the j direction
      +---+---+---+---+-----	represents the desired contents of a line,
    2 |   |  \| ^ |   |		i the current contents).  The algorithm
      +---+---\-|-+---+-----	used is a dynamic programming one, where
    3 |   | <-+Mij|   |		M[i,j] = min( M[i-1,j],
      +---+---+---+---+-----		      M[i,j-1]+redraw cost for j,2
    4 |   |   |   |   |			      M[i-1,j-1]+the cost of
      +---+---+---+---+-----			converting line i to line j);
    . |   |   |   |   |		Line i can be converted to line j by either
    .				just drawing j, or if they match, by moving
    .				line i to line j (with insert/delete line)

Quite neat.

GitLab sticking with Ruby on Rails

🕤︎ - 2022-06-09

In Why We’re Sticking with Ruby on Rails at GitLab the CEO of GitLab writes:

Wouldn’t it be better to have a proper plugin interface? Or better yet, a services interface modeled on microservices? In a word: no.

Which is short and to the point. The article continues:

Not only do these approaches impose deployment and integration hurdles that go far beyond “I made a small change to the source code,” they often enforce architectural constraints too rigidly. Anticipating all the future extension points is a fool’s errand, one that we luckily did not embark on and do not have to.

Very good point - make it easy to contribute rather than building complicated integration of plugins or splitting everything out in microservices.

With our boring modular monolith, users and other third-party developers can and do contribute enhancements to the core product

I wasn't convinced that GitLab would be a great choice when we installed at it work in 2016, but it has only grown better (and our instance is widely used, among other reasons because we took advantage of GitLab being free software/open source and added single-sign-on support and automatic account creation into it, so our colleagues didn't have to sign up) - I think reasoning like outlined above has very likely been a big contributor to that.

Boring is good.

Switching out connectby() with a CTE #lantern #postgresql

🕒︎ - 2022-05-28

I got annoyed with seeing loglines like this from PostgreSQL:

2022-05-28 01:57:34 CEST [2992011-1] lantern@lantern LOG:  duration: 606.988 ms
  statement: SELECT article.id, [...] ORDER BY date DESC LIMIT 7

Really? 600 ms for just getting the 7 articles for the frontpage? Admittedly including the comment count, but still!

So after finding the obligatory example code on StackOverflow and fighting my way through adapting it to work, I got the query down to a more reasonable ~20 ms.

Also, the query that generates the Archive page was identical (except for the LIMIT (and sort order)), so I refactored it to use the same base SQL-string. This could be improved to only get the fields needed on the page, but then I need to figure out how to have a partial Article data type, and I don't want to do that now.

There are still 3 places I use connectby(); they need to be eliminated as well, but it's late, so not tonight.

One thing I didn't leave for another day, was to get rid of a warning. Phew.

Lille langebro


Project Gutenberg (51).


Debian Social Contract (25).


Beck Hansen (52).

Ruby Vega (28).

dazz (39).


Adam (49).

Courtney Love (56).

Tom Hanks (65).

Anjelica Huston (70).

O.J. Simpson (74).

UN Small Arms Destruction Day.

Palau: National Day.


Suzanne Vega (63).


The DNA Lounge reopened (21).


Rosetta Stone discovered in Egypt (223).


Nelson Mandela (104).


First moonlanding (53).


H.C. Ørsted describes electromagnetism (202).


koldfront (23).

Prins Felix Henrik Valdemar Christian (20).


Amiga launched (37).


Christina Ruskær Nielsen (43).


Dolly (25).


George Bernard Shaw (166).

Carl Gustav Jung (147).

FBI (114).


George Bradshaw (222).

Jesper Holm (45).


d-a-d.com (25).