madr.se

Innehåll från 2021

November, 2021

Eternals

Film på Falan, Falun den 6 november 2021

Affisch

Oktober, 2021

Dune

Film på Falan, Falun den 16 oktober 2021

Affisch

September, 2021

Mötley Crüe - Live Wire, från Too Fast for Love (1981)

  • Mötley Crüe - Live Wire
Skivomslag

Augusti, 2021

Racer X - YRO, från Street Lethal (1986)

  • Racer X - YRO
Skivomslag

Black Sabbath - Never Say Die, från Never Say Die! (1978)

  • Black Sabbath - Never Say Die
Skivomslag

Black Sabbath - Symptom Of The Universe, från Sabotage (1975)

  • Black Sabbath - Symptom Of The Universe
Skivomslag

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.

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.

Juli, 2021

Budgie - Zoom Club, från In For The Kill! (1974)

  • Budgie - Zoom Club
Skivomslag

Juni, 2021

Mötley Crüe - Dr. Feelgood och Kickstart my Heart, från Dr Feelgood (1989)

  • Mötley Crüe - Dr. Feelgood
  • Mötley Crüe - Kickstart my Heart
Skivomslag

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.

Saxon - Wheels of Steel, från Wheels of Steel (1980)

  • Saxon - Wheels of Steel
Skivomslag

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.

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.

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.

April, 2021

Motörhead - Marching off to War och Back at the Funny Farm, från Another Perfect Day (1983)

  • Motörhead - Marching off to War
  • Motörhead - Back at the Funny Farm
Skivomslag

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.

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.

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.

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.

Ozzy Ozzbourne - Diary of a Madman och Believer, från Diary of a Madman (1981)

  • Ozzy Ozzbourne - Diary of a Madman
  • Ozzy Ozzbourne - Believer
Skivomslag

Anthrax - Metal Thrashing Mad, från Fistful of Metal (1984)

  • Anthrax - Metal Thrashing Mad
Skivomslag

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.

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.

Scorpions - Holiday, från Lovedrive (1981)

  • Scorpions - Holiday
Skivomslag

Accept - Fast as a Shark, från Restless and Wild (1982)

  • Accept - Fast as a Shark
Skivomslag

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.

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.

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.

UFO - Rock Bottom, från Phenomenom (1974)

  • UFO - Rock Bottom
Skivomslag

Girlschool - Bomber, från St. Valentine's Day Massacre (1981)

  • Girlschool - Bomber
Skivomslag

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.

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.