koldfront

Early Unix rand() #unix

🕤︎ - 2024-03-12

I have mentioned The Unix Heritage Society mailing list before - fun stuff comes by on it from time to time.

Today Douglas McIlroy replied to a thread about the early Unix rand() routine and who had written a funny note in the documentation, recalling an early story of password breaking:

When Ken pioneered password cracking by trying every word in word lists at hand, one of the password files he found plenty of hits in came from Berkeley. He told them and they responded by assigning random passwords to everybody. That was a memorable error. Guessing that the passwords were generated by a simple encoding of the output of rand, Ken promptly broke 100% of the newly "hardened" password file.

Ken Thompson replied:

i wrote the generator.
dmr or rhm wrote the comment.

.signatures #usenet #email #amiga

🕔︎ - 2024-02-24

A staple of usenet and email is the .signature. I just had a little peek at a usenet archive to find some of my old ones.

1992:

                                      .
                                     -*-
  Adam_Sjoegren@thesystem.bbs.bad.se   \O_  BBS    +45-31-354775
  Copenhagen, Denmark                   |   ANet betatester
  GCChost support DK                   / \  FidoNet    2:230/149

GCChost was software for running a FidoNet node - it was very configurable through ARexx, and at some point I think I started handling licenses for Denmark (the author was in Italy).

ANet was BBS software from Sweden that I was running, it had a cool interface where navigation was done by typing "shortest command prefix", automatically figured out by the software.

My BBS was called "The system", with that capitalization, for some... uh... artistic or otherwise self-indulgent reason.

1993:

 Adam Sjoegren          Interstellar Navigation      DLG BB/OS 24h
 Copenhagen, Denmark      asj@inav.bbs.bad.se        +45 31354775
 EMS/GCCh support DK   * Powered by AGA and 040 *    16.8k USR Dual

GCChost was replaced by EMS, by the same author, which was designed to handle other types of mail/news systems than FidoNet - we all had email and usenet envy in those days - so it was attractive.

By this time I had changed the name of my BBS to Interstellar Navigation, and I had changed software to the Canadian developed DLG, and it was running on my Amiga 4000, which I was very proud of. It was very expensive as well.

I kind of liked the little stick figure in the older .signature, and have taken to putting a variant in motd on my machines these days, eg:

$ ssh virgil
Linux virgil 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64
   _.
   \O_.    virgil: PC, Copenhagen
    |              AMD Ryzen 5 2400 GE (8 cores)
 ._/_\_,           64G memory, 1.9T disk
  o   o

Last login: Sat Feb 24 15:20:02 2024 from 192.168.1.102

Just for fun.

D-A-D turns 40 - exhibition #d-a-d #disneylandafterdark

🕘︎ - 2024-02-21
Columns outside the Danish National Museum decorated with pictures of the band D-A-DColumns outside the Danish National Museum decorated with pictures of the band D-A-D, other angle

The Danish National Museum has started advertising the upcoming exhibition about Denmark during the last 40 years seen through the band D-A-D, which turns 40 the day the exhibit opens, March 3rd, 2024.

The weekend after the opening there is a series of talks at the museum as well!

I ❤️ Free Software #free software #ilovefs

🕠︎ - 2024-02-14
I Love Free Software sticker - Use Study Share Improve

GNU Emacs, Debian GNU/Linux, Linux, Gnus, X.Org, Postfix, GHC, PostgreSQL, OpenSSH, Firefox, Apache, ejabberd, Dovecot, git, GnuPG, XMonad, jabber.el, Magit, rdiff-backup, LaTeX, Gimp, VLC, Syncthing, Sakura, chrony, Fail2ban, WeeWX, DejaVu fonts, ripgrep, lirc, MPD Flameshot, lots of GNU, the list goes on and on - thanks everybody!

Fallen Leaves (2023) #movies

🕧︎ - 2024-01-28
Cinema poster for Koulleet Lehdet (Fallen Leaves) by Aki Kaurismäki, showing the to main characters sitting in a cinema

Caught the early Sunday screening of Kuolleet Lehdet (Fallen Leaves) by Aki Kaurismäki today.

The movie is good - good is the movie.

Well worth going to the cinema for.

Improvements in HTML/CSS #html #css

🕗︎ - 2024-01-17

I kind of stopped following the HTML and CSS standards quite a while back. Sort of when XHTML and CSS2 were the newest stuff.

Recently I learned about CSS grids, which seemed nice, although I haven't used that on a public site yet.

I stumbled over the blog-post "Making my website faster" a couple of days ago, and it had some stuff I want to remember without having to read the entire thing again, so I'm just going to list them here:

    <link rel="preload" as="ROLE" crossorigin href="URL">

in <head> before anything else, eg for fonts; URL must match the entry in the CSS file exactly.

Lazy loading images using loading="lazy", and <details>:

    <details>
      <summary>This is a big GIF, you have been warned!</summary>
      <img src="big-gif.gif" loading="lazy" alt="You're not missing much, really">
    </details>

Bubble sort, recursive, in Haskell #haskell #programming

🕘︎ - 2024-01-14

I asked an LLM to spit out an implementation of recursive bubble sort and it kept regurgitating code that didn't work.

That made me want to write a recursive bubble sort in Haskell. It took me a, to be honest slighly embarrassing long, while to come up with a way to write it, so I'm putting it here:

bubbleSort :: [Int] -> [Int]
bubbleSort (x:xs) | bubble (x:xs) == (x:xs) = x:xs
                  | otherwise               = bubbleSort (bubble (x:xs))

bubble :: [Int] -> [Int]
bubble (x:xs) | null xs      = [x]
              | x <= head xs = x : bubble xs
              | otherwise    = head xs : bubble (x : tail xs)

The first function is the ending condition: if bubbling doesn't change the list, we are done. Otherwise, bubble the list and test again.

Bubbling is simple as well, if the first element is smaller than or equal to the second element, keep the first element and bubble the rest of the list.

On the other hand, if the first element is larger than the second, the resulting list is the second element followed by bubbling the first element and the rest of the list.

Here is a Haskell snippet to try it out:

main :: IO ()
main = print (bubbleSort [5, 4, 8, 1, 3, 2, 9, 7])
Lille langebro

Tomorrow

The Rexx Language (45).

GNU Emacs released (39).

curl (26).

Thursday

J.S.Bach (339).

Ayrton Senna (64).

World Forestry Day (54).

NetBSD (31).

Friday

World Water Day (31).

Hugo Rasmussen (83).

Saturday

Joan Crawford (119).

Wernher von Braun (112).

Martinus' illumination (103).

Pakistan Day (84).

Helsinki Treaty (62).

Nordens dag (63).

World Meteorological Day (74).

Atheist Day.

Monday

Thames Tunnel (181).

Treaty of Rome (67).

koldfront (the company) closed (10).

2024-03-26

Peter Lundholm Jensen (59).

2024-03-27

Carl Barks (123).

2024-03-28

Three Mile Island accident (45).

2024-03-29

Syahriany Tengku Syahril (46).

2024-03-30

Vincent van Gogh (171).

2024-03-31

Kristian Zahrtmann (181).

First usenet spam (31).

Netscape releases Communicator client source code (26).

Johnny Madsen (73).

Kammeratx (53).