Log in
Seblog.nl

Alles

De installatie

Nou, de laptop die ik ging kopen is binnen sinds maandag, dus hoog tijd voor een update. Allereerst: Linux op dit ding zetten was echt een eitje. Natuurlijk, je moet even weten wat je moet doen, maar Youtube had heel behulpzame videos die ik van te voren had bekeken, en tussendoor hoefde ik eigenlijk niets op te zoeken.

  1. Je download een iso-image voor de distributie die je wil hebben. Ik ben voor Manjaro gegaan, maar heb het mezelf wel makkelijk gemaakt met een versie met Gnome Desktop, want dat zag er het volledigst uit.
  2. Je download een programma om dit mee op een USB-stick te flashen. De aanbeveling was om Etcher te gebruiken. Via de terminal kon het vast ook, maar aangezien ik mijn Mac toch ging wissen dacht ik: sure, dat installeren we gewoon wel even.
  3. Haal de USB-stick uit de Mac en stop hem in de nieuwe laptop en zet die aan. Het opstartscherm zei al iets van 'press Enter' voor meer boot-opties, maar aangezien er nog geen OS op de harde schijf stond schakelde hij automatisch over naar de USB-stick en startte hij dus Manjaro op vanaf daar.
  4. En toen werkte eigenlijk alles gewoon: de trackpad, het geluid, de wifi. Ik moest alleen nog even in het speciaal daarvoor geopende venster op 'install' klikken, om het OS daadwerkelijk op mijn harde schijf te zetten. (Ik koos voor geen swap-partitie, wat gebruikersnamen en wachtwoorden, en daarna even wachten op het wegschrijven.)
  5. De rest is gewoon een kwestie van programma's die ik nodig heb installeren, zoals Vim, Tmux, mijn Firefox historie overzetten, dat soort dingen.

Het werkt gewoon, maar het is toch even wennen. De meeste sneltoetsen zijn net anders en ook zitten veel knoppen op net een iets andere plek. Ik heb Gnome Desktop nu op 'Tiling' staan en het is even uitzoeken hoe dat werkt. Het geluid dat uit deze Thinkpad T14 komt is werkelijk abominabel (maar wel functioneel) in vergelijking met hoe de MacBook Pro (M1) klonk. Maar goed, dat is ook waar je Apple voor betaalt: de boterzachte gebruikerservaring, die ik na 14 jaar Mac een beetje voor lief nam.

Mijn vorige desktop-ervaring met Linux was vooral op een Raspberry Pi, en ik moet zeggen: dit is heel erg volwassen. Nu mijn nerdy programma's zijn ingeregeld met mijn eigen dotfiles en dus alles (qua terminal) precies is zoals ik gewend ben, voelt het al gelijk echt als mijn eigen computer. Zelfs al sla ik dus soms op enter terwijl ik dat niet bedoeld had, en struggle ik met zoiets simpels als Ctrl+C Ctrl+V.

Een nieuw begin

Het is alweer 2024 en daarmee zijn we 20 jaar verder dan 2004. In 2004 mocht ik van mijn oma een boek uitzoeken voor mijn verjaardag, en koos ik Leer jezelf makkelijk PHP (Geschikt voor versies 4 en 5) door Arjan Burger. In de jaren daarna begon ik diverse projectjes, van random-stamboomgenerators tot een complete website met een custom CMS voor een bevriende kunstwinkel. In 2006 begon ik ook dit weblog. Uiteindelijk vond ik werk als PHP-programmeur, vanaf 2014 als freelancer en vanaf 2017 in dienst.

In 2019 ging ik bij BigSpark in Nijmegen werken, en daar had ik achtereenvolgens de collega’s Max, Michiel en Bram. Hoewel ze elkaar dus afwisselden waren er twee eigenschappen die stabiel bleven: allen hadden ze een Linux-laptop en allen hadden ze een motorrijbewijs. Dat tweede klinkt wel cool, maar vooral de Linux-laptop vind ik al tijden heel interessant en zou ik ook willen uitproberen. Ik heb het alleen nooit gedurfd.

Maar 2024 brengt verandering: Sneaker District, het bedrijf waarvoor ik één jaar en vier maanden heb gewerkt, is in november failliet gegaan en dus ben ik per 1 januari werkeloos. Ik ben op zoek naar nieuw werk, maar neem aan dat ik snel weer iets kan vinden. Het betekent echter ook dat ik nu mijn MacBook-van-de-zaak kwijt ben, en dat ik momenteel niet eindeloos budget heb om een eigen MacBook aan te schaffen.

Wat ik zei: ik kijk al tijden nieuwsgierig naar collega's en IndieWebCamp-gangers die Linux gebruiken, zonder zelf de stap te wagen. Maar nu, zonder laptop en zonder veel budget, heb ik besloten ervoor te gaan. Ik heb een laptop zonder OS besteld (want waarom Microsoft betalen als je het niet gaat gebruiken?) en zodra die binnen is ga ik – techsavvy als ik ben – proberen er een Linux-distributie op te zetten.

En welke dan? Mijn eerste keus zou Ubuntu zijn (makkelijk beginnen en ik ken Ubuntu op de server al heel goed), maar ik zit ook naar Manjaro te kijken (want de cool kids draaien Arch natuurlijk). Uiteindelijk wil ik denk ik iets zonder desktop environment, met een standalone window manager, maar laat ik niet te hard van stapel lopen.

O en ik ben dus voornemens om over de ervaring te bloggen, maar dat begreep je al wel uit het bestaan van deze post, denk ik.

Mijn Apple Music Replay'23

Henrique zit me al een paar dagen achter mijn broek aan dat ik mijn Spotify Wrapped moet delen. Uitleggen dat ik op Apple Music zit hielp niet: prompt kreeg ik links van blogposts waarbij juist Apple Music Replay werd gedeeld. Dus ja.

Mijn grootste probleem ermee is dat ik me niet genoeg identificeer met muziek, en dat ik het niet vaak genoeg luister. Ik heb wel Apple Music, maar juist om gewoon even wat op te zetten. Vaak luister ik naar de playlists van Apple, en ik heb vrijwel geen enkele zelf-gecureerde playlist. Mijn 'milestone' van 2500 songs heb ik aldus het overzicht pas op 11 oktober gehaald. Ik weet niet wat de volgende mijlpaal is na 10.000 minuten, maar aangezien ik die op 8 augustus haalde vermoed ik dat ik onder de 20.000 minuten voor het hele jaar zit.

Verder kan ik me ook niet zo vinden in de top-5 lijstjes. De nummer 1 song (Dream 1 (before the wind blows it all away [Pt. 4]) van Max Richter) heb ik kennelijk 11 keer afgespeeld, maar herken ik verder totaal niet (misschien per ongeluk op repeat en in slaap gevallen?). De nummer 2 song klopt wel (What Was I Made For? van Billie Eilish, 9×), want die stond op repeat tijdens een kleine episode van liefdesvertriet.

Mijn top-albums zijn ook een lachertje: op nummer 1 staat de soundtrack van Succession seizoen 4, met 51 plays en op 2 staat een DJ mix van Trixie Mattel met 40 plays. Voor context: de soundtrack heeft 25 nummers, de DJ mix 20. Twee keer luisteren en je staat op 1.

Mijn top-artiest is uiteraard De Kift en dat is gewoon terecht.

Maar als ik iets meer zelf mag kiezen, hieronder de héle top 15 aan artiesten, zoals gegeven door mijn Apple Music Replay, maar met toelichting. Daar weer onder mijn 'gecureerde' top 20 aan songs, gebaseerd op data van Apple, maar met wat skips.

Artiesten

  1. De Kift 350 minuten (terecht op 1, ik hou hiervan)
  2. De Jeugd van Tegenwoordig 234 minuten (nieuwe en oude albums een paar keer geluisterd)
  3. Arctic Monkeys 162 minuten
  4. Thursday 159 minuten (weilen Jonas Neubauer, de Tetris-kampioen, had dit ooit opstaan op een stream en dus speel ik het af en toe als ik die emo-vibe wil)
  5. Spinvis 133 minuten (gewoon fijn)
  6. Sufjan Stevens 126 minuten
  7. Pink Floyd 112 minuten
  8. Death Cap for Cutie 111 minuten
  9. Queens of the Stone Age 105 minuten
  10. Nicholas Britell 103 minuten (deze moest ik opzoeken, maar dit is dus de componist van Succession)
  11. GALNERYUS 97 minuten (hoofdzakelijk 'DESTINY' wat gewoon een fijn nummer is)
  12. The Decemberists 93 minuten (mijn auto startte soms 'gewoon' muziek en daarbij staat 'A Cautionary Tale' op nummer één, want alfabet. Sindsdien zitten ze zwaar in mijn algoritme ingebed, maar voor alle andere nummers vind ik dat niet heel erg ook)
  13. Kamasi Washington 93 minuten (ja)
  14. Joe Hisaishi 93 minuten (ja)
  15. Troye Sivan 91 minuten (voornamelijk Rush afgelopen zomer, denk ik, maar 2.5 × 8 is 20 minuten dus eigenlijk snap ik dit niet)

Nummers

  1. What Was I made For [from Barbie] - Billie Eilish
  2. Dai Zero Kan - 10-Feet
  3. Kaikai Kitan - Eve
  4. Rush - Troye Sivan
  5. Rage on - OLDCODEX
  6. Tattoo - Loreen
  7. All My Friends - LCD Soundsystem
  8. Horizon (Extended Version) - Xinon
  9. Ze is pas net begonnen (Leerstage / werkstage) - De Jeugd van Tegenwoordig
  10. Black Honey - Thrice
  11. The Archaic Revival - Henry Homesweet
  12. The Invincible Youth - Kamasi Washington
  13. Attack Vector - Covox
  14. Body Paint - Arctic Monkeys
  15. Understanding in a Car Crash - Thursday

'Sure I will take a 7 hour train to Nürnberg, I will work on stuff' quickly derailed into compulsive sudoku solving. Now for the last hour, finally got my laptop out again.

Mijn schijf was vol, dus ik ben weer lekker even met du -sh * 2> /dev/null op pad geweest door mijn computer. En ja hoor: weer een logfile waarin PHP me elke seconde vertelt dat het niet lukt om op te starten ter waarde van 340 GB. En gewoon wéér rond Pasen.

Floppies

It just hit me. I learned how to code via an article in a Dutch school magazine (Taptoe), which explained how to create a website on a floppy disk. They were already old, but at least our computers had the drives still. The article just explained how to write flat HTML, but it was enough to spark this fascination that ended up being my job.

What hit me is that actually most websites these days won't actually fit on a 1,44 MB floppy anymore. (The content on this site already is more than 1 GB.) It would be a nice challenge again, to make a website fit 1,44 MB.

Related to this is the 10 KB Club, who try to keep their homepage under 10 KB. My site fails that test too, but at least the homepage fits a floppy.

Slim huis

Ton schreef over zijn Hue-lampen die middenin de nacht aan gingen omdat de stroom uitviel. Ik had onlangs een soortgelijke ervaring, maar met een andere oorzaak.

Ik woon alleen, dus ik had mijn huis 'geleerd' dat de lampen uit moeten gaan zodra ik wegga, aan moeten gaan als ik thuiskom en de zon onder is, en ook aan moeten gaan als de zon onder gaat terwijl er iemand thuis is. Allemaal gewoon in Apple's Woning-app, niet heel spannend.

Maar soms zijn mijn huis en telefoon van elkaar ontvreemd en gaan dus middenin de nacht mijn lichten opeens aan als ze elkaar weer gevonden hebben. Dat gebeurde vorige maand een paar keer per nacht, dus ik heb momenteel de hele feature uitgezet.

Op mijn eindeloze lijst aan projecten staat dat ik eigenlijk wat meer bewegingsmelders wil aanschaffen. Die van Hue detecteren beweging, maar ook hoe sterk het licht is, en gaan alleen aan als het te donker is. Ik heb er al een in de badkamer en een in de keuken en eigenlijk is dat ideaal.

Het enige probleem met je hele huis vol bewegingssensors is dat de timeout wat lastiger in te stellen is. Voor de badkamer kom ik prima weg met de lampen uitzetten na 3 minuten zonder beweging, maar een timeout van een uur instellen omdat je graag rustig op de bank wil kunnen lezen zonder opeens in het donker te zitten voelt ook inefficiënt.

Het project op de lijst is dan ook: programmeer mijn Raspberry Pi zo, zodat hij Homekit spreekt, en dus het brein wordt van mijn huis. Hou dan in de Pi bij welke kamer het laatst beweging zag. De timeout is daarna altijd 3 minuten, tenzij je de kamer met laatste beweging bent, dan krijg je, zeg, een uur. Volgens mij werkt die strategie ook voor huishoudens met meerdere personen. Alleen als ik het huis verlaat moet ik dat nog op een bepaalde manier kenbaar maken aan het huis.

Maar ja, ik geef toe: soms sta ik tegen mijn telefoon te schreeuwen en vraag ik me af of ik niet beter gewoon even naar het lichtknopje had kunnen lopen.

Spelidee: trek voor elke speler een willekeurige provincie en een willekeurige partij. Doe allemaal een kieswijzer. Wie het dichtst bij zijn of naar partij scoort wint.

Nederlandse go-termen

Vandaag was ik in Tilburg voor het go-toernooi aldaar. Een goed excuus om hier wat op te schrijven over go.

Go is een eeuwenoud spel, maar hier in het westen is het minder bekend. Schaken zit veel dieper in de cultuur, wat je ook ziet aan de naam (de sch-) en aan de namen van de stukken op het bord: wij hebben 'paard' waar Engelsen het over een 'knight' hebben en Duitsers over een 'Springer'. In go gebruikt men vooral Japanse leenwoorden, maar door de invloed van het internet – waar iedereen Engels spreekt – zijn er veel Engelse termen ons go-jargon binnengeslopen. Ik denk dat 'pincer' het hardnekkigste voorbeeld is. Toch hebben we voor veel zaken ook echt onze eigen termen, die ik hier graag beschrijf.

Allereerst de naam van het spel: vrijwel iedereen spreekt het uit met de Engelse g, van 'goal' en het werkwoord 'go'. Dit komt ook overeen met waar we de naam vandaan hebben: het Japanse woord 'igo'. Maar diverse oudere spelers heb ik een Nederlandse g horen gebruiken voor go, wat ik ook best charmant vind. (Wie wil googelen op 'go' kan misschien beter het Koreaanse 'baduk' of het Chinese 'weiqi' gebruiken, maar dat is een ander onderwerp.)

De voorgenoemde 'pincer' kan ook een 'klem' zijn, al zou ik zelf 'tang' leuker vinden. Ik hoor ook vaak: 'dan neem je een enclosure', terwijl we dan ook kunnen zeggen: 'dan sluit je de hoek af'. Sommige spelers gebruiken voor deze twee dingen trouwens de Japanse termen 'hasami' en 'shimari', wat ik persoonlijk dan leuker vind dan de Engelse variant, maar misschien dat dit type speler wel langzaamaan uitsterft.

Ik denk dat 'ko' en 'atari' de meest gebruikte en diepst ingeburgerde Japanse termen in het Nederlandse go-jargon zijn. Het Engels gebruikt ze ook, maar vooral ook omdat het zeer specifieke concepten zijn waar je echt een compleet nieuw woord voor zou moeten verzinnen.

Een tegenvoorbeeld daarop is het concept 'vrijheid', als in: 'deze groep heeft twee vrijheden'. In het Engels heet dat 'liberties' (die hoor ik ook gebruiken op de club). Aan de ene kant is het een logische term: het is het aantal 'vrije zetten' dat een speler nog heeft voor de betreffende groep gevangen is. Aan de andere kant voelt het soms zo erg als eigenschap van een groep dat ik het zelf bijna als concept op zichzelf zie.

Qua onvertaalbare leenwoorden uit het Japans doen Engels en Nederlands het soms ook anders. De termen 'sente' en 'gote' zijn elkaars tegenhangers en verwijzen naar een zet waarop de tegenstander wel (sente) of niet (gote) hoeft te reageren. In het Engels hebben ze de termen gewoon overgenomen (met enigszins verbasterde uitspraak), maar in Nederland kennen we ook de prachtige letterlijke vertalingen: 'voorhand' en 'nahand'. Ik hoop echt dat die nooit verloren gaan.

Expanding the search in Vim

I just discovered a new Vim trick I think I am going to use quite often, so I am sharing it here to look it up when I forget.

As you may know, you can issue the / command in Vim to start a search. Every character you type will be in the search, until you hit enter, which will jump you to the first occurance of your searched text.

Another thing you may know, is that you can use this search-motion as a motion to other commands as well. When you do v/here, you will visually select everything between the current cursor position and the first occurance of 'here' in the buffer. I use this to delete stuff that I can't target using the f and t motions.

Then there is the thing I once found out, but never could remember: once you press /, you are in a little submode I can find the name for. In this mode, you can use Ctrl+L and Ctrl+H to increase or decrease your search string by the characters of the first match. You can also use Ctrl+G to move that virtual cursor to the next match, or Ctrl+T to get to the previous. Once you hit enter you are on that last position, removing the need to do n.

But here it comes: when you are deleting with d/, you can also use Ctrl+G to get to that next match. If you searched for a small snippet that accidentally occurs before the place you wanted to go, you can press Gtrl+G to jump over it, and pressing enter will delete the full distance.

Gisteravond luisterde ik een aflevering van de Remote Ruby podcast met Derek Sivers, waarin hij uit de doeken doet hoe hij alle logica van zijn applicaties in de database zelf stopt, en waarin hij ook zijn persoonlijke database noemt, waarin hij zo'n beetje zijn hele leven vastlegt.

Zijn database staat in interessant contrast met de gebruikers van Obsidian, die juist voor 'plain text' gaan als opslagformaat, in de hoop dat tekst over twintig, vijftig, honderd jaar nog steeds gelezen kan worden door computers. Maar tegelijkertijd staat het óók in interessant contrast met de Ruby on Rails en Laravel developers die alle logica uit de database proberen te houden en de database alleen maar gebruiken voor domme opslag van data.

Het is fijn om af en toe even uit je comfortabele doos te worden gestuurd. Dit weblog slaat alle posts ook op in losse tekstbestanden en op mijn werk werk ik met Laravel en een relatief domme database.

Derek wijst in de aflevering ook op de Simplicity Matters talk van Rich Hickey, wiens talks eigenlijk allemaal heel goed zijn. De talk gaat in op de concepten 'makkelijk' (easy) en 'simpel' (simple), en hoe mensen die twee concepten door elkaar halen terwijl ze fundamenteel andere dingen zijn. Ook voor niet-programmeurs wel een aanrader, denk ik, al moet je af en toe even door wat jargon heen.

Ik kwam laatst langs een buitenreclame die iets zei als 'als op je bank wachten je kansen kost'. Ik dacht eerst: ik vind het best lekker om op de bank te zitten als ik wacht. Daarna dacht ik: o ja, L. heeft een bank gekocht en moet daar nu op wachten. Pas daarna drong het tot me door dat het reclamebord waarschijnlijk een ander soort bank bedoelde.

Vandaag geleerd in HTML en CSS

Ik ben dus mijn RSS-reader aan het uitmesten en daarbij leerde ik een paar dingetjes over HTML en CSS die ik kon niet wist of kende.

Bijvoorbeeld dat je dus een uitklapbare boomstructuur kan maken met alleen maar HTML en CSS, dus zonder Javascript, door gebruik te maken van <ul> en <li>, met daarin <details> en <summary>. Vooral die laatste twee elementen kende ik niet, weer wat geleerd.

In CSS-land zijn ze kennelijk ook bezig met een nieuwe manier van kleuren uitdrukken, genaamd LCH of oklch. Wie rgb of cmyk gebruikt, specificeert zelf hoeveel licht of inkt er moet worden gebruikt om de kleur te maken. In feite is dat een hele imperatieve manier van een kleur beschrijven. Een meer declaratieve manier is hsl, waarbij je je kleur beschrijft in termen van tint, verzadiging en helderheid. Deze methode heeft echter nog steeds een directe vertaling naar rgb en is dus een 'leaky abstraction'. De lch is een abstractie die rekening houdt met welke kleuren wij als mensen kunnen waarnemen, en maakt berekeningen met kleuren ('deze kleur maar dan iets donkerder') veel makkelijker.

Verder kwam Hidde met een leuke manier om flexbox te gebruiken voor data-visualisatie.

Meer laden