madr.se

Delningar

Länkar som är värda att uppmärksammas och lämna åsikt om.

torsdag, 6 mars 2025

Video: Vi lever i en värld där utvecklare hatar Firefox pga lyxproblem

Wow.

Firefox är skit och går inte att använda för att Firefox saknar 100% täckning på allt ögongodis tillgängligt i W3C Working Drafts.

Ett bra exempel på att dagens webbutvecklare har sina huvuden uppkörda så långt i sina egna ändtarmar, att de saknar förmåga att se utifrån en vanlig användares perspektiv.

Ingen vanlig användare på Internet bryr sig om ögongodis. De har fullt upp med att ägna 50% av sin tid åt att klicka bort invasiv reklam och godkänna cookies, samt bli stressade av att texten de läser hoppar på grund av att reklam sprängs in medans de bläddrar. Och har de fått tipset att stänga av spårare eller tredjeparts-cookies, så slutar 50% av Internet att fungera för dem. Har de dessutom lämnat Facebook, X och Instagram kommer hälften av alla länkar de fått till sig inte ens leda någonstans.

Framförallt är det inga vanliga användare som någonsin skulle uppskatta de poweruser-funktioner som Arc, Zen och Vivaldi ger.

Det är en bra tid vi lever i, om uteblivet ögongodis (som rimligen borde vara en perfekt progressiv enhancement) anses vara så kränkande att det leder till hat mot webbläsare som inte stödjer dem.

Personligen är jag otroligt optimistisk. Tiden med Netscape 4, Internet Explorer 6-11 är över. Flash är över. Java Applets är över. Tiden vi jagade KB att spara verkar ingen minnas. Tiden när SPA:er var sköra som glas är förbi.

Vi lever i en fantastisk tid. Visa litet jävla respekt mot resan som krävdes för att komma hit, för fan.

tisdag, 4 mars 2025

Hemsidan behöver återuppstå

I want a world where finding content is harder. Where it takes a little more work, and where we appreciate what we read, watch, and consume because it didn’t come easily.

I want a world where musicians don’t have to tailor their music to the 5-second attention span of a million swiping doomscrollers and can instead rely on the support of an audience who care enough not to sleepwalk their way through the Internet.

I want a world where not every writer is devoting their time - and their audience’s time - to helping Substack justify its VC valuation through the homogenization of the Internet.

Även jag vill detta. Primärt för att småföretagen, föreningarna och vännerna alla kräver att jag kör Facebook eller Instagram för att få vara med i loopen. En vanlig hemsida eller en E-postlista hade inkluderat fler.

Läsvärd artikel som bör läsas i sin helhet.

torsdag, 13 februari 2025

Video: En historik om varför skrivbordsmiljöerna på Linux stinker

Med en lagom skopa av “det var bättre förr”, såklart.

I princip var GNOME 2 och KDE 3.5 mycket tilltalande vid sidan av Windows Vista, och det skapade intresse för att byta till Linux.

Sedan hände KDE 4, och GNOME 3. Kontroversiella och alldeles för omdömeslösa storsteg framåt. Eftersom KDE 4 hände först, blev GNOME “the golden standard”. Detta är ett arv som sådde frön för nya frustationsmoment.

fredag, 7 februari 2025

Video: studioägare delar lärdomar från att spela in en hitlåt med prosumer audio interface

Don’t get too distracted by the tools. The tools are there to facilitate what you are doing. The things that matter the most: no 1, the song; no 2, your skills, take your time. No 3: work with good and skilled people. The song, your skills, the people you work with, and then tools, in that order.

Lättsmält film som visar vad man kan åstadkomma med begränsad utrustning. Flera bra tips om rummickar visas, samt hur trummor bäst mickas upp när det inte finns oändligt med ingångar.

För mig bekräftar det att ett bra ljudbehandlat rum där flera personer kan ta tid på sig att tillsammans arbeta på en låt förmodligen är viktigare än att ha ytterligare 20 mickar, gitarrer eller förstärkare.

Kan knappat bärga mig med att få till ett bra musikrum i källaren :)

onsdag, 5 februari 2025

En rad CSS istället för 300 rader JavaScript

textarea {
  field-sizing: content;
}

Jag har suttit tiotals timmar för att lösa avrundningsfel med JavaScript-lösningar för självväxande textareas, där scrolls på 1px skapas vid vissa inzoomningar när vissa typsnitt används.

För en mer utförlig demo, se This CSS Property Replaces Hundreds of Lines of Code.

Det är surrealistiskt att detta behov snart är möjligt att tillgodose med en rad CSS, som går alldeles utmärkt att applicera med progressive enhancement.

tisdag, 21 januari 2025

POC på Offline-first PWA med Phoenix LiveView och Svelte

  • Phoenix LiveView, PubSub, and Ecto/PostgreSQL for real-time syncing and data persistence.
  • Svelte (via LiveSvelte) for the frontend UI and state management.
  • Service Workers, Web Storage, and IndexedDB (via y-indexeddb) for offline support.
  • CRDTs (via Yjs) to resolve conflicts between distributed app states.

Conflict-free Replicated Data Type (CRDT) är ett koncept jag ofta filosoferat kring, men aldrig brytt mig om att se om det faktiskt finns. Nu är jag upplyst!

Det verkar också som att Svelte håller på att bli community-favorit för att ge utvecklare möjlighet att flytta logik från servern till webbläsarfliken i projekt med Phoenix LiveView.

söndag, 8 december 2024

Mailtråd med Advent of Code-skaparen gällande LLMs i topplistor

The big change this year is that it’s the first time “asking the community nicely” has failed to fix a problem. For the past nine years, I’ve been able to (for the most part) keep people from overwhelming the site, sharing answers, streaming early, making copies of the site, or even using LLMs on the global leaderboard, all by just asking nicely. This year, I’m not sure what changed, but people have been very brazen about their cheating.

I do not mean “more people are cheating”. I mean that people this year have been emailing me to explicitly state that they see the request to not use LLMs, but that they do not respect me or my work, and as such will be using LLMs to place on the global leaderboard regardless of what I say. This change in behavior is disappointing to me; it leads me to believe that any solution to our immediate problem which relies on users being honest will likely fail.

Advent of Code filar tioårsjubileum, och det är en jävligt sur och bitter eftersmak att rövhattar struntar i regler och skapar distorsion i den globala poängtabellen.

Detta är ett publikt arkiv av en mailkorrespondens mellan en av de profilerade tävlingsprogrammerarna och skaparen av Advent of Code, som håller god ton och ger insikt. Skaparen ser att detta är ett problem, men har ingen enkel lösning.

Min åsikt: ta bort globala poänglistan, och låt istället communityt lösa det. En möjlig lösning är att låta en kurerad privat poänglista summera resultat för tävlingsprogrammerarna. Det är det enda sättet, då Advent of Code drivs av 1 person med stöd av ett par reddit-moderatorer.

Jag anser inte att det är att “fuska” att träna på sin färdighet att prompta LLMs och att göra detta med Advent of Code-problem. Vad jag däremot kan uppskatta är att se dessa tävlingsprogrammerares tider för att få litet feedback om t ex

  • Huruvida dagens pussel var så svårt som jag upplevde det,
  • det alls går att lösa dagens pussel snabbt och enkelt, eller
  • Hur jag själv presterar i jämförelse med de som är proffs och är specialiserade i den här typen av programmering.

Med en massa brus i form av “kopiera och klistra in”-tider blir den globala poängtabellen irrelevant för mig, och andra som följer den av samma eller liknande anledningar.

tisdag, 26 november 2024

Om att vara linuxasket snarare än linuxanvändare

However, there’s another often-overlooked aspect that can make using a minimal Linux distribution worthwhile: using a minimal Linux distro on your personal computer is a form of Askesis -disciplined practices done for self-improvement.

Jag har på sistone allt oftare hamnat i samtal där personer frågat eller klagat på “linux”. Jag har inte riktigt kunnat sätta ordet på vad som gör att vi inte kan uppnå konsensus i samtalen, så jag blev lättad över detta blogginlägg som träffsäkert gör detta.

Utifrån blogginlägget inser jag att jag inledde mitt utforskande av linux som en asket snarare än en användare. Det är därför jag har litet svårt att argumentera med personer som istället vill bruka linux som användare. Jag känner därför igen mig mycket i blogginlägget, och kan identifiera mig i det där sättet att tänka.

Askes är dock inte för alla, och det ska jag och andra asketer vara ödmjuka inför.

torsdag, 17 oktober 2024

blockquote-elementet i skärmläsare

TL;DR: This post does not assert the correct way to code blockquotes, it will only demonstrate how screen readers announce some existing patterns.

Några lärdomar om att använda blockcitat på ett inkluderande sätt.

  • Attributet cite<blockquote> ignoreras av de vanligaste skärmläsarna, och renderas inte för den stora användarbasen.
  • Det finns ingen semantisk eller systematisk gruppering mellan <cite> + <blockquote>, som t ex med <label> + <input>.

Jag har under många år haft dåligt samvete när jag tillämpat Markdown för att skriva för webb. Att inte vara mer noggrann med blockcitat har känts som att skippa alt-texten på bilder.

En helt obefogad känsla, visade det sig.

Som bonustips:

  • Använd inte <figure> + <figcaption> för pull quotes eller för att gruppera <cite> + <blockquote>.

HTML är svårt

Conversely, it’s pretty easy to write bad HTML, because for most developers there are no consequences. If you write some bad Javascript, your application will probably crash and you or your users will get a horrible error message. It’s like a flashing light above your head telling the world you’ve done something bad. At the very least you’ll feel like a prize chump. HTML fails silently. Write bad HTML and maybe it means someone who doesn’t browse the web in exactly the same way as you do doesn’t get access to the information they need. But maybe you still get your pay rise and bonus.

So it’s frustrating to see the importance of learning HTML dismissed time and time again. Sorry to end on a bad note, but that’s where we’re at right now.

Content-Type: application/xhtml+xml försökte införa detta på 00-talet, faktiskt, under XHTML Strict-eran. Man visade då en Yellow screen of Death om HTML-koden inte var korrekt. Det floppade.

Det hade ställt högre krav på utvecklare, men också på glada hobbyister och nyfikna amatörer. I dagens läge sköter webbläsare och skärmläsare en hel del förlåtande åtgärder för att bristäfllig HTML ändå ska låta användaren ta del av innehållet.

Det är en bra sak att HTML inte är drakonisk, men det är inte utan problem.

Använd inte blockquote-elementet for att skapa sk "pull quotes"

That has been fun. I have a migraine.

  • Använd inte <blockquote> for att göra sk “pull quotes”, alltså utdrag ur artikeln som belyser höjdpunkter i brödtext. Använd istället <aside> eller <figure>.
  • Placera inte <cite> som barnelement till <blockquote. Placera istället denna som närliggande syskonelement.
  • För att gruppera <blockquote> och <cite>, använd en <aside> eller en <div>.
  • Attributet cite är i praktiken onödigt. Den renderas inte, och ignoreras av skärmläsare.

måndag, 30 september 2024

FreeBSD ska fokusera på bättre hårdvarustöd för bärbara datorer

However, the limited support for modern laptop hardware—such as disk encryption, hibernation, and the latest standards for wireless connectivity—has slowed broader corporate adoption. By improving laptop compatibility, FreeBSD has the potential to become a robust, secure alternative to Linux and Windows in enterprise settings.

Bra initiativ, även om jag tror att det kommer göra liten skillnad. FreeBSD såväl som NetBSD och OpenBSD är inte relevant för den stora massan, och har inte varit det på mycket länge.

BSD-varianternas tidigare triumfkort var att de var bättre på servrar, och även där har de sedan länge blivit orelevanta. Debian ersatte dem för länge sedan.

Då PipeWire finns på FreeBSD numera så vore det allra störst skräll om mitt Focusrite Scarlett skulle få lika bra stöd som Linux. I sådant fall hade jag övervägt att använda FreeBSD i hemstudion.

Drömma kan man alltid!

måndag, 9 september 2024

Starta en Placekitten-klon på 1 minut

A quick and simple service for getting pictures for use as placeholders in your designs or code. Just put your image size (width & height) after our URL and you’ll get a placeholder.

Placekitten är sedan länge död, så det gör mitt gamla hack litet mer aktuellt.

Skapa en katalog, fyll den med litet bilder (måste inte vara katter, och tänk på att inte bryta på Copyright!) och kör därefter denna:

docker run -p 8080:8080 -v ./image-collection-directory:/app/images madr23/placeany

Lägg den bakom en reverse proxy (Jag föredrar Caddy) så är detta en komplett Placekitten-ersättare.

Detta är, för transparensens skull, alltså mitt verk. Det råkade bli den första container jag publicerade på Docker Hub.

Källa: madr23/placeany

onsdag, 4 september 2024

Video: Tributen till BATHORY på Beyond the Gates 2024

0:00 Intro: Oden Ride Over Northland
2:45 A Fine Day to Die (vocal: Gaahl)
11:05 The Rite of Darkness (vocal: Apollyon)
13:30 Possessed (vocal: Apollyon)
16:52 Enter the Eternal Fire (vocal: Erik Danielsson (Watain); Drums by V. Einride (Whoredom Rife))
23:55 Raise the Dead (vocal: Satyr (Satyricon); Bass by Frederick Malander (BATHORY))
28:30 The Return of Darkness and Evil (vocal: Wraath (Darvaza, Behexen et al); Bass by Frederick Malander (BATHORY))
33:50 Shores in Flames (vocal: Apollyon)
43:40 Call From the Grave (vocal: Grutle Kjellson (Enslaved))
48:50 Total Destruction (vocal: Kvitrim (Djevel, Vemod))
53:10 Blood Fire Death (vocal: Erik Danielsson (Watain))

Line-up:
Guitar: Ivar Bjørnson (Enslaved)
Drums: Bard “Faust” Eithun (Djevel, Emperor)
Bass: Ole Jørgen, aka “Apollyon” (Aura Noir)
Guitar: Rune “Blasphemer” Eriksen (Aura Noir)

Flera skriver i kommentarsfältet att detta var höjdpunkten på årets BEYOND THE GATES. Jag förstår varför. En sådan här tribut kommer inte att ske igen på många år.

Det är otroligt att låtarna i denna särskilda låtskatt är skrivna av en tonåring, inspelade med spartanska medel och utan en endaste intention att framföras live.

Personligen är jag också en del av skaran som blir till en våt fläck varje gång jag får uppleva en cover på Bathory live. Varje gång det händer sker det ofta tillsammans med några ord av respekt och vördnad från artisten. Jag blir lika golvad varje gång.

20 år efter Quorthon dött. 30+ år efter att låtarna spelades in. Om inte detta är odödligt, vet jag inte vad som är det.

tisdag, 3 september 2024

En frågetråd om Folkhälsomyndighetens nya rekommendationer för skärmtid bland barn och unga

Det var alla frågor som hanns med idag! Stort tack alla ni som hört av er. I december kommer Folkhälsomyndigheten att släppa mer detaljerad vägledning för föräldrar och andra viktiga vuxna. Fler råd och verktyg finns hos bland andra Mediemyndigheten och BRIS. Lycka till!

Som förälder såväl som en som självlärde mig mitt yrke som webbutvecklare som tonåring, väcker Folkhälsomyndighetens nya rekommendationer starka känslor och engagemang för mig.

Den här frågetråden är inte särskilt djup, men den är summarisk. Det är en bra start att börja med, då flera föräldrar passade på att ställa bra frågor.

måndag, 2 september 2024

Varför React var och fortfarande är häftigt

I’m mostly concerned with the core problems of data binding and componentizing UIs. After much research and usage of the technologies mentioned above, I found React to provide the best solution.

10 år sedan. React är fortfarande relevant. Det är 2010-talets jQuery.

Varför använder inte fler Linux?

If exercising is so healthy, why don’t more people do it? If reading is so educational, why don’t more people do it? If junk food is so bad for you, why do so many people eat it?

Inte så dumt svar faktiskt.

söndag, 25 augusti 2024

Vertikal och horisontell centrering med en rad CSS

Browsers are funny, basic needs like aligning stuff do not have simple answers for a very long time.

Kan bara hålla med om detta. CSS har en särskild förstaplats på min lista över saker jag hatar med mitt jobb.

Nu går det iaf att göra en så grundläggande sak som att centrera text i en ruta med en rad CSS. Det har gått att göra med 3-4 rader senaste decenniet, vilket är snudd på oacceptabelt.

Källa: Hej

fredag, 9 augusti 2024

Elixir är värt att lära sig, dess opopularitet till trots

The 2024 Stack Overflow survey highlighted little-known Elixir as the second-most desired programming language to learn – but why?

Det hade varit roligt att bli tagen på allvar när man för Elixir på tal. Det var litet samma känsla när som när jag föreslog python i början av 2010-talet, några år innan språket kom in i allmänna finrummet.

Vad krävs för att få Elixir till finrummet?

tisdag, 6 augusti 2024

2023 hade Linux-ekosystemet fortfarande problem

In this regularly but rarely updated article, which is without doubt the most comprehensive list of Linux distributions’ problems on the entire Internet, we only discuss their main problems and shortcomings (which may be the reason why some people say Linux distros are not ready for the desktop)

Jag delade denna lista för första gången 2013. Den är fortfarande aktuell. Jag har dock optimism framåt.

  • X kommer att ersättas av Wayland. Det är oundvikligt.
  • NVidia kommer att bli lika bra som AMD inom 1-2 år.
  • Electron, hur mycket jag än hatar det, har bidragit till att fler appar yrkespersoner använder även finns till Linux-OS.
  • PipeWire kommer att mogna på sig, med bättre GUI-inställningar och skrivbordsintegration.
  • KDE 6 och GNOME 4* är utmärkta skrivbordsmiljöer, som kompletterar varandra ypperligt bra.
  • Flatpak är på väg att bli lika bra som nativa paketrepositorier.
  • Podman och Docker gör det enklare och snabbare att få upp tjänster på sin maskin.
  • Steam med Proton, Heroic och Lutris gör spelandet mindre problematiskt.
  • Focusrite och PreSonus har drivrutiner i Linuxkärnan.

tisdag, 23 juli 2024

Linux-ekosystemet är inte för alla, inte ens för de som verkligen vill

  • Gaming
  • Creative apps
  • Video/Photo editing

En snubbe som har en situation mycket snarlik min, som gör en video bra mycket mer givande än jag hade kunnat uppbåda. Sevärd!

torsdag, 18 juli 2024

7 saker som visar att HTML aldrig blev dåligt

  • HTML Dialog
  • HTML Popover API
  • HTML Details Element
  • HTML DataList Element
  • HTML Inert Attribute
  • HTML Color Picker
  • HTML Capture

Jag hade koll på 4-5 av dessa. Det är synd att hetsen på att uppfinna hjulet på nytt med jQuery, och sedan React ska ta udden av hur användbart HTML kan vara i sig självt.

Vanlig HTML kommer alltid ha 5-stjärnigt stöd för användabarhet, tillgänglighet och skärmläsare. Det är en enkel väg, i all sin tråkighet.

fredag, 12 juli 2024

Det är inte enbart elitism som gör att Ubuntu har slutat rekommenderas

The Canonical (corpo behind Ubuntu) is doing weird decisions lately that make people worried that Ubuntu will become just another rotten corpo OS with plenty of proprietary bloat to spy and “improve experience”.

En välskriven kommentar på Reddit. I grunden är det inget fel alls på Ubuntu, utan det som ogillas är Canonical, bolaget bakom Ubuntu.

Genom att använda Linux Mint eller ElementaryOS får man Ubuntus styrkor, med Canonicals dynga avlägsnad.

torsdag, 4 juli 2024

måndag, 1 juli 2024

LiveView lämnar det roliga JavaScriptet kvar

The JS you’d otherwise need for routing, auth, and the like in another framework, you can write in Elixir instead. Any client code you end up needing tends to be just the fun stuff: Data visualisation, Web Audio, the Gamepad API, WebGL — just take a look through MDN’s list of Web APIs.

Det här är något jag ibland funderar på. Vilken typ av JavaScript ska man tillämpa för något som LiveView, där allt teoretiskt kan hanteras på servern? Vad ska stanna i besökarens webbläsare och vad ska servern hantera?

Bra skrivet på det temat.

fredag, 21 juni 2024

Batterier och den gröna bubblan

  • Offentliga medel såsom kreditgarantier och bidrag gör att företag agerar vårdslöst och tar för stora risker. Ingen risk är för stor när någon annan betalar.
  • Särintressen påverkar politiken till sin fördel.
  • Den politiska makten saknar kunskap om teknikens utveckling.
  • Den politiska logiken handlar mer om positiv publicitet än om ekonomiska och tekniska realiteter.
  • Det skapas en konsensuskultur där ingen ställer kritiska frågor, förrän det är för sent. När politiker skickar ner skattemedel i privatkapitalistiska fickor i utbyte mot positiv medial uppståndelse saknas i regel ifrågasättande röster. Av rädsla att bli utpekad som “klimatförnekare” viker sig kritikerna såväl inom akademin som i media.

Northvolt hade en svart vecka i somras. Det talas fortfarande om deras arbetsplatsrelaterade dödsfall. Mer lokalt från den veckan var dock att den utlovade satsningen i Borlänge, som skulle täcka upp det hål nedläggningen av Kvarnsvedens pappersbruk skapade, inte blir av.

Tråkiga tider, där vargar sliter i får, som de alltid gjort.

tisdag, 11 juni 2024

Nej, generativ AI kommer inte kunna matcha ett team av utvecklare

The right way to think about tools like Copilot is more like a really fancy autocomplete or copy-paste function, or maybe like the unholy love child of Stack Overflow search results plus Google’s “I feel lucky”. You roll the dice, every time.

Kan bara hålla med.

torsdag, 23 maj 2024

Ett vackrare vanilla Minecraft

Unforunately the mod list has grown quite a bit in order to get some of the graphical enhancements optifine had. but here are the visual ones I use (and other things):

  • render distance: 28
  • better clouds: added those cool clouds in today vid
  • bobby: I use it for longer render distance on Hermitcraft. not sure if it does anything in single player
  • better animations resource pack: for better moving villagers, animals etc
  • simple fog: its a mod that gives you control over where the fog starts and stops. my settings are a fog begin % of 0 and and end % of 130.
  • sound physics: for reverb in large rooms and dampening in water
  • also I made some resource pack tweaks where I removed the white lines off of the water, smaller clock, lower shield.
  • brightness at 50% for deeper shadows and depth
  • not using shaders

but the biggest impact on visuals is the simple fog mod. vanilla fog looks terrible and gives a claustrophobic feeling. turning fog off takes away all of the atmosphere and immersion. but with this mod you can dial it in just enough to get the feeling of depth between the buildings without it being overwhelming.

BDubs är en av mina favoriter av alla duktiga builders i Minecraft. Jag installerade ovanstående, med undantag för Better animations. Kan bara säga att Minecraft blev som ett nytt spel, och otroligt mycket behagligare att uppleva.

Jag stänger fortsatt av all dimma i Nether, av den enkla anledningen att jag har svårt nog som det är att uppskatta den dimensionen.

måndag, 20 maj 2024

Video som går igenom kommande JavaScript-funktioner

Man there’s a ton of awesome stuff coming to JS soon. Hopefully. All these proposals are advancing fast. Some can be used today.

Video för allt nytt i JavaScript under 2024-2025. En del saker, som t ex Temporal och match-operatorn, är något som jag alltid saknat omgående när jag kodat Python litet extra mycket.

söndag, 19 maj 2024

Få igång Affinity Designer eller Photo på linuxbaserat OS utan en enda rad i kommandotolk

  1. Install Bottles
  2. From Settings/Runners, install ‘Caffe 7.10’
  3. Download the custom recipe file (from Kontik from the Bottles Telegram chat)
  4. Create a new bottle, click ‘Custom’ and choose the recipe (AffinityCustomBottleRecipe.yml)
  5. Click the ‘Run executable’ button and choose your downloaded .exe (Download from your Affinity Account)
  6. Install it like the Windows version
  7. Click the three dots next in the ‘Photo’ card of the ‘Programs’ list choose ‘Change Launch options’ and add the following to ‘Command arguments’: –no-hw-ui argument

Bottles börjar bli moget, precis som Lutris. Det är en bra tid att leva i för alla som vill fortsätta använda proffsmjukvara eller spela, men som har begränsat tålamod med alternativ till Windows och Mac.

torsdag, 16 maj 2024

Ett olöst försvinnande med lokal anknytning

Forsgren, Nils BENNY, 570213, anmäldes försvunnen den 12 december 1976 av sin far, S-E Forsgren. Anmälan togs upp på polisstationen klockan 15.30 av kriminalinspektör N.

Detta är ett intressant fall, då jag är uppvuxen på den gata detta utspelar sig. En bloggade har grävt i detta och publicerat en följtetång med förhör, tidningsnotiser och annat.

Även Flashback har en tråd, med den vanliga brasklappen att det är Flashback.

onsdag, 15 maj 2024

Handlingar från utredningen av mordet på Olof Palme

Massa länkar till PDF!

Utredningen av mordet på Olof Palme 28 februari 1986 lades ner sommaren 2020. Detta blev starten för en ny fas för många av de så kallade privatspanarna, men även journalister.

Ett trevligt initiativ är detta kalkylark, där beställning av handlingar koordineras och offentliggörs när någon fått tillgång.

En guldgruva för alla som är intresserade av den råa datan i världens största brottsutredning.

lördag, 11 maj 2024

En rant om varför expertis inte får erkännande inom Tech längre

The long-term popularity of any given tool for software development is proportional to how much labour arbitrage it enables.

The more effective it is at enabling labour arbitrage, the more funding and adoption it gets from management.

Välskriven rant som för mig sätter fingret på en känsla jag länge haft. En olustig känsla av att fel nyckelfaktorer driver innovation och tekniska framsteg.

fredag, 10 maj 2024

Phoenix LiveView 1.0

Think realtime form validations, updating the quantity in a shopping cart, or real-time streaming updates. Why does it require moving mountains to solve in a traditional stack? We write the HTTP glue or GraphQL schemas and resolvers, then we figure out which validation logic needs shared or dup’d.

Efter sex år så har ett de mest bevakade projekten för min del 1.0 nära. Det har varit en spännande resa att följa, med alla ändringar i arkitekturen som skett längs med vägen.

För egen del tror jag att allt mer kommer att flytta tillbaka till servern. Next, Remix och SvelteKit visar en alternativ väg, så det finns utmaningar att välja rätt arkitektur för problemet som ska lösas.

Jag har några idéer på projekt som jag tror är perfekt för LiveView. Nu när 1.0 är här känner jag mig manad att börja.

måndag, 30 augusti 2021

Den webb vi har skapat

I searched for something, then it shows me something

Är detta världen vi har skapat? följetång II.

En utmaning: testa att klicka på sökträffen och försök att komma till innehållet under tio klick.

Hur vi hamnade här? UX-kompromisser, en i taget. Det gör ont i hjärtat.

söndag, 22 augusti 2021

Arnold ryter ifrån kring COVID och ansvar

Screw your freedom!

Arnold Schwartzenegger hamnade i blåsväder förra veckan då han nedvärderade den så heliga och välsignade amerikanska friheten.

Den fulla kontexten är att han i en intervju med CNN uttalade sig om att pandemin fortfarande är igång, och att alla måste göra sin del av att bära mask, hålla avstånd, socialt distansera sig och tvätta händerna ofta. Han påtalade att flera uttryckt att deras frihet är inskränkt och att ingen kan tvinga dem att bära mask och ta ansvar, varvid uttalandet Screw your freedom! kom till för att markera att detta är trams.

Flera amerikanska profiler inom bodybuilding och strongman har nu valt att plocka ner bilder på Arnold från sina gym. Man ska verkligen inte talla på den heliga amerikanska friheten. Det är inte alldeles lätt att förstå detta. Länken här går hur som helst till de 4 minuter som är kontexten för uttalandet.

tisdag, 1 juni 2021

Wacken ställs in igen

It is with a heavy heart that we have decided that Wacken Open Air cannot take place at the end of July this year. We therefore postpone the festival to 04.08. - 06.08.2022. This decision was anything but easy for us, also because we know that you are already in the middle of the preparations and planning. Like we are, too

Så, äntligen, ställde Wacken in efter flera veckor i ett falskt hopp. Inte ens the Holy ground kan värja sig mot viruset.

Jag hade älskat att återuppleva Wacken igen, då det är något alldeles extra. Bland årets band hade jag mest sett fram emot Judas Priest, Grave Digger, Amon Amarth, Pestilence, Agalloch och Tiamat.

onsdag, 12 maj 2021

Om att välja tråkiga teknologier

What counts as boring? That’s a little tricky. “Boring” should not be conflated with “bad.” There is technology out there that is both boring and bad. You should not use any of that. But there are many choices of technology that are boring and good, or at least good enough. MySQL is boring. Postgres is boring. PHP is boring. Python is boring. Memcached is boring. Squid is boring. Cron is boring.

Jag kommer på mig själv med att prata om “boring tech” ganska ofta, särskilt när jag sitter i samtal med kollegor som hittar något nytt och skinande som vore roligt att testa. Den är från 2015, men är verkligen otroligt relevant.

T ex så tar den upp konceptet med Innovation tokens. Den pratar även om unknowns, och unknown unknowns.

When choosing technology, you have both known unknowns and unknown unknowns.

  • A known unknown is something like: we don’t know what happens when this database hits 100% CPU.
  • An unknown unknown is something like: geez it didn’t even occur to us that writing stats would cause GC pauses.

Även denna tankelek och prov på kreativitet är värd att bokmärka artikeln för, och diskutera med sitt team.

One of the most worthwhile exercises I recommend here is to consider how you would solve your immediate problem without adding anything new. First, posing this question should detect the situation where the “problem” is that someone really wants to use the technology. If that is the case, you should immediately abort.

It can be amazing how far a small set of technology choices can go. The answer to this question in practice is almost never “we can’t do it,” it’s usually just somewhere on the spectrum of “well, we could do it, but it would be too hard”. If you think you can’t accomplish your goals with what you’ve got now, you are probably just not thinking creatively enough.

tisdag, 11 maj 2021

Mattheten och tröttheten kring frameworks

En tråd som belyser något jag själv känt, men haft svårt att sätta orden på: att det faktiskt kostar något att försöka hänga med på frameworks.

Jag har likt @malchata också rätt många år i yrket, och har flera gånger investerat massor av tid och ork på att lära mig något - bara för att bli tvungen att helt kasta bort kunskaperna och ersätta dem med nya.

Det jag har kommit att eftersträva, och även råda andra att göra, är att ställa frågan Vad gör X som jag inte redan har i verktygslådan? X är i detta fall

  • ett nytt ramverk,
  • ett nytt bibliotek,
  • Ett nytt API,
  • En ny paradigm,
  • ett nytt programmeringsspråk eller
  • En vidareutbyggnad/återupptäckelse av något av ovantående.

En annan viktig fråga att ställa sig är Är det möjligt att lösa problem/behov Y utan att introducera något nytt, och hur svårt är det i så fall? Om X inte har ett tydligt övertag eller glasklar fördel, så är det förmodligen inte värt besväret.

En blandning av magkänsla, fingertoppskänsla och omvärldsbevakning gör att jag avfärdar en majoritet av alla X som trendar. Jag lutar mig tillbaka, iakttar vad som händer och är sällan först på bollen på något - även om jag gärna bekantar mig med X rätt tidigt, så undviker jag att försöka göra riktiga saker med X.

Några exempel.

  • Saker jag ägnat tusentals timmar åt, som inte längre är relevant: PHP4-5, ASP, XHTML, tabellbaserad layout, diverse Google-API:er, CSS sprites, CSS sliding doors, ActionScript/Flash, buggar i IE6.
  • Saker jag lärt mig från grunden sedan mycket länge sedan, och fortfarande har fördelar av: Progressive enhancement, Prototyp-arv och scopes i JavaScript, CSS Grids, Elixir/OTP, sass, BEM.
  • Kunskaper jag vet är på väg bort, men haft stor nytta av att använda mig av: layout med CSS floats, Python 2 unicode, Angular, React+Redux.

onsdag, 5 maj 2021

Utmärkta exempel på att använda CSS custom properties

In practice, component definitions have way more styles than just colours. There’s a bunch of box-model properties, maybe a display, and possibly text styling instructions. In any case, a lot of lines of CSS.

If you use custom properties only for those CSS properties that will change you give future CSS developers a much better and quicker insight in how your component works. If the definition uses a custom property that means the property may change in some circumstances. If it uses a fixed definition you know it’s a constant.

CSS custom properties är något som jag själv försöker tillämpa så mycket jag kan i projekt. Denna artikel öppnade några dörrar till och gör det än tydligare att det är skillnad på Sass-variabler och CSS Custom Properties: man ska kombinera dem, inte välja en av dem.

På Twitter-tråden om artikeln kompletterade Sara Soeidan med en egen artikel om att arbeta med CSS custom properties, som också är läsvärd.

torsdag, 15 april 2021

Brutal Assault ställs in igen

So far 2021 is not developing favourably for live events. Thanks to your support we have managed to stand through the last year and were hoping that this summer we’d welcome you at the Brutal Assault as you all know it. We have worked hard to make the anniversary something special. Unfortunately, the Covid situation has not improved much and therefore we are left with no other choice than to move the 25th edition to next year.

En mörk torsdag. Jag hade hoppats att Brutal Assault skulle ha en chans med tanke på att det ligger senare på sommaren, men verkligheten är för bitter och hård.

Jag har verkligen sett fram emot att få se extremmetal-band spela på ett militärfort från 1800-talet i Tjeckien, i form av en Roadtrip i Europa med Wacken som första stopp, och en hemresa som korsade Polen. I årets upplaga såg jag mest fram emot Evoken, Uada och Winterfylleth.

Jag får nu istället hoppas på nåd nästa år.

Gefle Metal Festival ställs in igen

Tyvärr måste vi meddela att även årets upplaga av Gefle Metal Festival måste skjutas upp. På grund av den pågående pandemin är det inte möjligt att genomföra ett stort evenemang i sommar. Viktigast av allt är säkerheten för vår publik, personal och artister och det är något vi aldrig kommer att kompromissa med.

En mörk torsdag, sannerligen. Inom loppet av ett par timmar ställdes ytterligare två festivaler in.

Gefle Metal Festival hade tänkt att växa till en tredagarsfestival, och har haft helt fantastiska line-ups de två år de tvingats ställa in. I årets upplaga hade jag främst sett fram emot Amon Amarth, Mgła och Tribulation.

Min förhoppning är att festivalen orkar ligga på vila ytterligare ett år.

söndag, 11 april 2021

Ett genuint problem

En läsvärd tråd på Twitter, som bland mycket annat tar upp en av de främsta anledningarna till att folk byter jobb ofta: Det kommer att ge bäst löneutveckling. Vi har med andra ord ett läge där folk uppmuntras (genom lön) till att skotta massa kod utan att behöva ta långsiktigt ansvar, eftersom de ändå slutar och byter jobb.

tisdag, 6 april 2021

Lockdowns är bra, sa de

Ingen av våra textböcker rekommenderar nedstängning av skolor, idrott, restauranger, kultur eller andra essentiella delar av samhället vid smittoutbrott. Varken WHO eller något enskilt land hade nedstängningar i sina beredskapsplaner före 2020. Kinas auktoritära styre gjorde en brutal lockdown, som märkligt nog spred sig till västvärldens demokratier. I dag vet vi från forskning och officiell statistik att metoden inte skyddar riskgrupperna. Tvärtom orsakar lockdown sjukdom, död och stora skador på ekonomin. År 2020 kommer gå till historien som året då vi begick världshistoriens största misstag för folkhälsan.

Känns inte så lyckat att hela världen tappade huvudet så totalt. Faktaresistensen segrar.

tisdag, 30 mars 2021

Sweden Rock Festival ställs in igen

Alla förberedelser och förhoppningar till trots, står det nu klart att det inte finns några möjligheter att genomföra Sweden Rock Festival i år heller. Istället skiftar vi nu vårt fokus till 2022 och ser då fram emot en mer minnesvärd festival än någonsin.

Dagen efter min födelsedags kom den länge inväntade spikförsedda sparken i Solar Plexus: SRF ställer in, ännu en gång. Helt väntat, då Hellfest och Graspop sedan flera veckor tillbaka har ställt in.

SRF är min favorit på hela festivalåret. Det är den enda festivalen jag alltid köper biljetter till, oavsett utanonserade band. I årets upplaga hade jag främst sett fram emot Amon Amarth, Nightwish och Guns n’ Roses.

tisdag, 9 mars 2021

PETAL

The PETAL Stack in Elixir means:

  • Phoenix
  • Elixir
  • TailwindCSS
  • Alpine.js
  • LiveView

Kul grej! Blomblad.

Den enda komponenten jag upplever inte motiverar sitt värde riktigt i ovanstående stack är Tailwind.

Jag anser att Tailwind, precis som Twitter Bootstrap och ZURB Foundation, har värde vid framtagning av prototyper för att testa koncept; särskilt om en designer inte är en del av teamet.

Så snart prototypen ersätts av the real deal - särskilt om en designer anlitas för projektet - så ska inte prototyp-verktyg användas. Lägg hellre tid på att skriva egen CSS som löser det unika affärsbehovet. Med dagens gridsystem, variabler och media queries är detta inte längre svårt eller tidskrävande.

torsdag, 4 mars 2021

HTML över websockets är Framtiden

The future of web-based software architectures is already taking form, and this time it’s server-rendered (again). Papa’s got a brand new bag: HTML-over-WebSockets and broadcast everything all the time.

The dual approach of marrying a Single Page App with an API service has left many dev teams mired in endless JSON wrangling and state discrepancy bugs across two layers. This costs dev time, slows release cycles, and saps the bandwidth for innovation.

A List Apart har en stor samling artiklar som åldras mycket väl, och min förhoppning är att även denna kommer att göra det.

Jag är redan övertygad om att detta är ett pågående teknikskifte, och att serverrenderad HTML som transporteras över webbsockets är den logiska efterföljaren till SPA:er.

Lagom långa och bra diskussionstrådar finns på reddit under r/programming och r/coding.

måndag, 15 februari 2021

Grafiska gränssnitts komplexitet

  • Connect the boxes: create the user avatar component and pass its instance to the inventory table component. Whenever the edit state of the inventory table changes, the business logic in the inventory table should also trigger a state change in the user avatar component with the help of the user avatar’s public API.
  • Lift the state up: move the internal state of the user avatar component and the state of the inventory table into a separate box/class. The logic of the user avatar and inventory table component will still be neatly separated in their own boxes, but they will be able to communicate without inventory table needing the direct access to the user avatar.
  • Introduce a message bus: connect the inventory table and the user avatar component to the shared pipe that is used for distributing events in the application. The user avatar component subscribes to the message bus and every time it receives a table edit event, it executes an appropriate action (e.g turn the light on).

Jag gillar denna skarpt! Det som gör den riktigt bra är att den är skriven på ett teknik-agnostiskt sätt.

En person som skriver saker i LiveView eller Hotwire (som hanterar state backend) tar till sig idéerna och koncepten lika väl som folk som bara arbetar i rena SPA:er med React, Vue, Angular eller Elm.

Min egen inställning efter att ha byggt webbgränssnitt 15 år som yrkesverksam är att fokusera på leverans snarare än perfektion: Göra om är billigt, ändra befintligt efter nya lärdomar är dyrt.

måndag, 8 februari 2021

Pulverised Records

Skivbolag som har mycket dödsmetall. Bra att ha för inspiration eller när man är nyfiken på något nytt.

söndag, 17 januari 2021

Nästlade selektorer i CSS, utan preprocessors

This module introduces the ability to nest one style rule inside another, with the selector of the child rule relative to the selector of the parent rule. This increases the modularity and maintainability of CSS stylesheets.

Hoppla! Exempel, starkt inspirerat av hur Sass gör, finns på The future of CSS: Nesting Selectors.

Detta, CSS-variabler och nästlade media queries gör att det blir allt mindre risk i att slopa preprocessors som Sass, Less eler Stylus i mindre projekt.

Tre saker:

  • Detta har potential att få utvecklarverktygen i webbläsarna till nya nivåer.
  • @nest känns litet märklig, men kanske har den ett nyttigt signalvärde? Vi får se!
  • Om inte stöd för &-- och &__ införs är detta ointressant för alla som använder BEM: dessa utvecklare kommer att stanna med preprocessors, tror jag.

fredag, 15 januari 2021

Magiska känslan från Phoenix LiveView

What you get is the speed, responsiveness and UX performance exceeding that of a React/Vue/javascript front end framework against a server API, but you haven’t written a line of javascript.

This is a magical feeling.

Kan verkligen bara hålla med.

Den här vägen, att skapa ett abstraktionslager som partiellt renderar om delar av sidor i realtid med serverside-renderad HTML över websockets, känner jag är framtiden.

Vue, React, Ember och Angular har visat världen vad som är möjligt, men rent arkitekturellt är det dags att sluta att blint tro på att Single Page Applications är ett måste för att skapa en bra användar- och utvecklarupplevelse.

Elixir faller inte alla i smaken, men denna rörelse finns som tur är i flera stora communities.

Den senare är agnostisk, och kommer förmodligen portas till såväl Django som Laravel.

lördag, 25 januari 2020

Android utan Googles appar

For a good while now I’ve been running my Android phone with no Google Apps, and I don’t regret trying it out. It’s a really good experience without it. Want to learn how to ungoogle your Android as well? This post is for you.

iPhone kommer från Apple, ett företag som inte gör din personliga data till en produkt. iPhone är dock dyr och faller inte alla i smaken. Apple har andra idéer och koncept som är mindre bra.

Telefoner med Android ger större urval, men har mjukvara i sig som spionerar på telefonens brukare och skickar data till Google, som gör denna data till produkter.

Android är däremot öppen källkod, så orkar man göra sig omaket att installera en annan version av Android på sin telefon kan man få det bästa av två världar:

  • En telefon som inte spionerar på dig.
  • Ett stort urval av telefonmodeller att välja på.

Jag kommer högst troligtvis att fundera på Android utan Googles appar nästa gång jag behöver byta telefon.

tisdag, 21 januari 2020

Twittersnillen om Reacts framtid

React is very much at the jQuery’s-last-days stage now. There are better, more efficient ways of doing things (Svelte, custom elements, module/nomodule pattern, Lit etc etc). React is existing on inertia and some minor / soon to disappear compatibility worries.

Sagt av @heydonworks. Kanske stämmer det? Jag tror inte vi är i ovanstående läge riktigt ännu, men att det mycket väl kan vara fallet om 1-2 år.

Mycket är surr och brus i tråden som följer, men några korn av guld finns. Min favorit är dessa från @ttiurani:

jQuery lost to AngularJS because ng gave a way to manage a lots of JS and you didn’t need a server to host routes. Ng lost to React because components are so much better than ng at small and large scale. React will lose when there is the next great leap in developer productivity

Just being better by removing a few lines of code, or being slightly faster, is not going to be enough. I personally think WebAssembly with a superior developer experience using language X, is the only big enough thing that can dethrone React.

Träffsäkert tycker jag! Jag håller med i sak. Överhuvudtaget tror jag att WebAssembly måste hända, då webben skulle må bra av att ha mer än ett programmeringsspråk[^1].

Hur mycket jag än gillar Vue och är nyfiken på Elm och ReasonML så känns dessa som halvmesyrer som inte går hela vägen, eller som för smala projekt utan plan. Det behöver komma något radikalt annorlunda som tar webbutvecklar-communityt med storm.

[^1]: Nej, HTML och CSS är inte programmeringsspråk. De är uppmärkningsspråk och stilmallsspråk.

måndag, 20 januari 2020

Ingen mer Google?

Privacy-friendly alternatives to Google that don’t track you.

Gedige lista för Foliehattar, eller för folk som likt mig vill motbevisa att det faktiskt är valfritt att vara beroende av Google. Jag har personligen slutat använda följande sedan länge: Google Mail, Google Chrome, Google Search och Google Analytics. Jag kör istället Fastmail, Firefox och DuckDuckGo.

Jag sneglar nu på att börja använda DeepL för att översätta saker, och något att ersätta Google Docs med. Typ Coda, ZoHo Docs eller Airtable. Eller gå offline helt med LibreOffice.

Jag borde definitivt sluta att använda Google Maps. Leaflet är bra nog numera.

Källa: No More Google

tisdag, 7 januari 2020

En sammanfattning av Frontend-utveckling för 2019

After a rather quiet year, WebAssembly received some huge news early December — it is officially recommended as a language of the web by the W3C Consortium.

In the StackOverflow Survey released early in 2019, TypeScript was tied for 2nd with Python as the most loved language, falling only behind Rust.

Two of the biggest changes for HTML are native lazy loading and no-jank fluid image loading. Large images have been a pain for web performance, and we have hacked around it to better handle how we load them. With native support for lazy loading and aspect ratio recognition, we can get seamless images without needing to implement any additional functionality in JS.

En länk med en välskriven sammanfattning av 2019 års trender i Webbutveckling. Jag tar med mig tre saker från denna.

  • Jag hejar på Wasm, då jag sedan länge trott att webben skulle må bra av att inte bli fastlåst till enbart JavaScript. Exempelvis Blazor kompilerar C# till Wasm.
  • TypeScript är här för att stanna, vad det verkar. Jag välkomnar det, då jag föredrar det framför alternativen Flow, PropTypes och Reason. Det är trevligt att minimiera risken för runtime exceptions när så mycket görs med JavaScript som idag.
  • Lazy loading på bilder är så bra. Det är verkligen aldrig försent för att innovera HTML och CSS. Dessa attribut är måsten från och med nu, skulle jag säga.