Keyboard only / using the mouse?! #ui

🕤︎ - 2023-03-21

My first computer didn't have a mouse, it had joysticks - a Commodore 64. But my computers after that had the mouse as a very integrated part of how you used them - Commodore Amigas.

I have a feeling that I am still influenced by growing up, as it were, with those, when I hear keyboard-only enthusiasts speak of not leaving "home row", not using arrow keys, and definitely reaching out for their mouse as little as possible.

Similarly I am sometimes surprised when sitting next to someone using a computer at how often I am thinking "why don't you just use the mouse", both to avoid retyping a lot of text and for avoiding mistyping something.

On the Amiga selecting arbitrary text was, like many things - to be fair - a hack. There was a small program you'd run in the background, which allowed you to draw a rectangle of "travelling ants" around any text, and the program would examine the pixels(!), recognize the characters and copy them. One of the peripherals I spent serious money on was a 3-button optical mouse. So very modern. Had to use a mouse pad with the right dots on them for it to work.

When I sold my final Amiga - just in time I felt, as I avoided losing a lot of money on owning it - and after some time put together a machine running Linux with X, I very quickly appreciated how easy it is so select some text with one mouse button and insert it somewhere else with another mouse button. No need to fiddle around with the keyboard to do copy/paste!

Maybe it's just simple and efficient in my mind, but I like it.

Word processor history #computers #history

🕦︎ - 2023-03-18

When I saw this message on the fediverse, I hadn't heard about Evelyn Berezin - computing pioneer within office computers, airline reservation systems, word processors, and more.

Redactron word processors arrived in an office like a trunk of magic tricks, liberating users from the tyranny of having to retype pages marred by bad keystrokes and the monotony of copying pages for wider distribution. The machines were bulky, slow and noisy, but they could edit, delete, and cut and paste text.

Happy to have now, at l(e)ast!

Hey, Ken #music #linux

🕛︎ - 2023-03-16

What's your operating system of choice today?

I have, for most of my life, because I was sort of born into it, run Apple. Alright, now, recently, meaning within the last 5 years, I've become more and more and more depressed and what Apple was doing to something that should... allow you to work, is just atrocious. But they are taking a lot of space and time to do it, so it's okay. And I have come, within the last month or two, to say: even though I have invested, you know, a zillion years in Apple, I am throwing it away, and I am going to Linux, to Raspbian in particular. Anyway, I'm half-transitioned now.

· ken thompson, keynote at SCaLE 20x.

Emacs in Uses This #emacs #ui #art

🕤︎ - 2023-03-12

After a while, I installed emacs at home, and then my config was a hundred lines long, and then I realised that I hadn't used TextMate in months.

There are three reasons to use emacs. One, it is available on a lot of platforms. Two, it can be used for almost any task. Three, it is very customisable. I only take advantage of reason three. From this perspective, using emacs is kind of like making a piece of art. You start with a big block and you slowly chip away, bringing it closer and closer to what you want.

· Mary Rose Cook, Coder, musician - uses this (2011)

Via Emacs news 2023-03-06. Also, in the same Emacs news edition:

Neal Stephenson, on whether he still uses Emacs: "YEs, every day"

· I am Neal Stephenson, sci-fi author, geek, and [now] sword maker - AMA

Dataframes #programming #python

🕤︎ - 2023-03-08

Dateframes are the spreadsheets of [Python] programming:

  • It is a simple, yet versatile concept
  • People who learn them really like to use them
  • Their usage makes me uneasy, in a hard-to-articulate way
  • They are easy to use inefficiently¹
  • It is easy to make hard-to-spot mistakes with large consequences²

¹ Say you have a dataframe of records, and you also have some values from somewhere else. How to store the values? Put them in a dataframe! Now you have two dataframes. How to look up a value for each record? Do a filter on the second dataframe. Now you have #R*#V running time.

² Say you have a dataframe of records and some values in another dataframe. To avoid going through all values for every record, you store the records and the values in the same order, now you can simply index into the value dataframe. Say you need to filter or sort the records somehow, now you have to remember to filter and sort the value dataframe in exactly the same way.

Happy birthday Y.O. 90 #art

🕛︎ - 2023-02-18

Yoko Ono - the famous Fluxus-adjacent artist, also known for her music and husband - turns 90 today. Congratulations Yoko!

Improvements in bling #x #ui

🕦︎ - 2023-02-18

My desktop is almost austere - I use XMonad with XMobar and very little decoration.

A while back I noticed that XMobar would crash when showing the title of the active window when it included emoji - yes, some websites do this.

But recently XMobar started using Cairo/Pango for rendering, and now it doesn't crash. That also means that unicode characters are supported, so I can add some icons easily.

Here is what the left part of XMobar looks like now:

I added the number of the virtual screen in front of the active window title by adding this to my ~/.config/xmonad/xmonad.hs:

myXmobarPP :: PP
myXmobarPP = def
             { ppOrder  = \(ws:_:t:_) -> [ws, t]
             , ppHidden = \_ -> ""
             , ppCurrent = displayWorkspace
             , ppSep = " → "
             , ppTitle  = xmobarColor "#666666" "" . shorten 200
    displayWorkspace "1" = "①"
    displayWorkspace "2" = "②"
    displayWorkspace "3" = "③"
    displayWorkspace "4" = "④"
    displayWorkspace "5" = "⑤"
    displayWorkspace "6" = "⑥"
    displayWorkspace "7" = "⑦"
    displayWorkspace "8" = "⑧"
    displayWorkspace "9" = "⑨"
    displayWorkspace ws = ws

The right side of the bar also got a face lift:

The icon in front of the window status now reflects whether it is running on battery, charging, or charged. The two other icons for wifi and time are just static, however I did setup up different colors for wireless quality. Here is the configuration I changed in ~/.xmobarrc:

    , Run Wireless "wlp82s0" [ "-t", "<essid> (<quality>)"
                             , "-l", "#886666"
                             , "-n", "#666666"
                             , "-h", "#667766"] 100
    , Run Battery [ "-t", "<acstatus>"
                  , "-l", "#886666"
                  , "-n", "#666666"
                  , "-h", "#667766"
                  , "--" -- battery specific options
                  , "-o", "🔋︎ <left>% (<timeleft>)" -- discharging
                  , "-O", "⚡︎ <fc=#666666><left>% (<timeleft>)</fc>" -- AC on
                  , "-i", "🔌︎ <fc=#667766><left>% (<timeleft>)</fc>" -- charged
                  ] 100


  , template = "%XMonadLog% }{ %battery%  📶︎ %wlp82s0wi%  🕒︎ %date% "

Sometimes small improvements are pleasing.

Lille langebro


Herlev (114).


H.C. Andersen (218).

Håkan Hellström (49).

Sem (42).


Pilvi (26).


Bornholms befrielse (77).

CSS-nøgendag (18).


Isambard Kingdom Brunel (217).

Tom Lehrer (95).

Occupation of Denmark (83).


Jurij Gagarin first human in space (62).

Setiadi Handoko (50).



Proclamation of Liberland (8).


B. R. Ambedkar (132).


Leonardo da Vinci (571).

Leonhard Euler (316).


FTP (RFC 114) (52).

Queen Margrethe II of Denmark (83).

Charlie Chaplin (134).


Ahmad Yani (40).


Bicycle Day (81).


Prinsesse Isabella Henrietta Ingrid Margrethe (16).


Earth Day (53).

NCSA Mosaic 1.0 (30).


World Book Day (29).

Sct. George's Day.


Jørgen Clevin (103).

Hubble Space Telescope launched (33).


World Malaria Day (23).


Kaj (52).

Chernobyl (37).

Jens Unmack (Love shop) (59).

World Intellectual Freedom Day (8).


Thomas Koppel (Savage Rose) (79).


Solomy Nakirya (57).


Princess Benedikte (79).

International Dance Day.


King Carl XVI Gustaf of Sweden (77).