Fastnade framför Wilson Miners snack från Build. Fastnade är ordet.

Därför måste vi diskutera hur vi bygger CSS

Jag tror det är nödvändigt att omvärdera hur vi skriver CSS. Vi har kommit till en punkt då det är dags att fråga oss vad som kännetecknar välbyggd CSS.

Historien såhär långt har utmärkts av att det är ett nytt område och att det har varit tumultartat med buggiga webbläsare och standarder som utvecklats parallellt med att de använts. De diskussioner som förts fram tills nu om hur man bör bygga HTML och CSS har varit nödvändiga, men det är dags för en ny diskussion.

Om vi tittar på programmering – alltså utveckling av mjukvara – så befann man sig vid slutet av 80- och början av 90-talet där CSS befinner sig nu. Då var tiden mogen att bena ut hur man bör bygga mjukvara; hur man bör organisera sin kod, hur man bör dela upp den i tydliga delar och hur dessa bör samspela, hur man namnger moduler, objekt, funktioner och variabler.

Nu skiljer sig CSS från mjukvaruutveckling i många avseenden men bland orsakerna till att diskussionen var nödvändig då finns mycket gemensamt. Tydlighet, möjlighet att orientera sig i koden, kvalité, underhållbarhet, prestanda – alla är mål som var viktiga för programmering då och som är viktiga för CSS-utveckling nu.

Tydlighet betyder att koden är lätt att förstå i enskilda stycken – i direktiven för en enskild selektor i CSS fall, att man förstår utvecklarens intentioner och vad enskilda direktiv betyder.

Orienterbarhet betyder att koden är förståelig som helhet. Att man förstår hur den är organiserad, var man hittar vilka saker och var man ska lägga till ny kod.

Kvalité handlar om att hålla nere antalet buggar och om att kunna göra förändringar utan överraskningar.

Underhållbarhet handlar om att hålla koden i schack över tid och att det inte tar längre tid och därmed kostar mer att arbeta med koden ju längre projektet lever. Det handlar om att frisera bort kod som inte längre behövs, om att organisera om så att mängden kod hålls nere i takt med att sajten vidareutvecklas.

Till sist prestanda, som både har att göra med att hålla nere storleken på koden och se till att den är organiserad på ett sätt som möjliggör effektiv laddning av webbläsaren.

Det var dessa tankar jag var inne på när jag frågade om det inte är dags att omvärdera semantisk HTML. Och jag hoppas kunna få mer klarhet i mina tankar framöver. Jag skulle gärna höra era tips om bra läsning om detta och tankar om ämnet i allmänhet.

Jag avslutar med två citat som jag tycker passar in här. Inte från programmerare utan från designers.

Först Ellen Lupton ur boken Thinking with type om Karl Gerstner som i sin bok Designing programmes från 1964 presenterade ett manifest för systemorienterad design: ”Gerstner defined a design ’programme’ as a set of rules for constructing a range of visual solutions. Connecting his methodology with the new field of computer programming, Gerstner presented examples of computer-generated patterns that were made by mathematically describing visual elements and combining them according to simple rules.”

Och Massimo och Lella Vignelli ur boken Design is one: ”We believe that design should be: [1] Semantically correct. In other words, search for the real meaning and the correct signs that connote the object you are working with. [2] Syntactically consistent. Every detail must be consistent to itself and the whole. No borrowed elements. The language is one and every detail should speak the same language. [3] Pragmatically understandable. Otherwise, design is a failure, no matter how beautiful it is. Design is not art, design should express its meaning and that should be universally understandable.”

Steve Souders konstaterar att webbprestandans gyllene regel gäller än
Guardians Oliver Burkeman läser boken The progress principle

Motsatsen till lek, enligt barn

Frågan om vad barn ser som motsatsen till lek tycker jag är intressant.

Förra våren fick jag en handfull rapporter via Facebook och häromdagen bad jag återigen folk fråga barn i sin omgivning, nu via Twitter.

Här en sammanställning med de vanligaste svaren först.

Att ha tråkigt, långtråkigt. Att vila, ta det lugnt. Att jobba. Att plocka undan. Att vänta. Att göra ingenting. Att läsa bok. Att sova. Att klättra i ekar.

Jag är fortsatt intresserad, så tweeta mig gärna.

Besök en välsorterad tidningsbutik, titta på omslagen, bläddra igenom några magasin, läs lite. Du kommer garanterat snappa upp flera nya idéer och lära dig om gryende trender.

Det är ett av många tips ur Tom Kelleys bok The ten faces of innovation – och förmodligen det som fastnat bäst hos mig.

Jag gillar tanken på tidningsbutiken som en outsinlig källa till idéer att korsbefrukta med sina egna. Att gå in och plocka titlar nästan på måfå för att se vilka nya idéer de ska ge mig.

James Gleick snackar om sin bok The information
Boken The universal traveler av Don Koberg och Jim Bagnall

Johan & Nyströms Monsun Malabar hotar samma kafferosteris Yirgacheffe som mitt favoritkaffe. Monsunlagrat!

Tiramisu – mot dåsiga eftermiddagar
I söndags gjorde jag äntligen för första gången Tiramisu. Jag har alltid uppskattat denna rätt de gånger jag beställt den på restaurant eller bjudits på den hemma hos vänner. 
Recept på menumo.

Tiramisu – mot dåsiga eftermiddagar

I söndags gjorde jag äntligen för första gången Tiramisu. Jag har alltid uppskattat denna rätt de gånger jag beställt den på restaurant eller bjudits på den hemma hos vänner. 

Recept på menumo.

Dags att omvärdera semantisk HTML?

(Här följer några tweets som jag postade ikväll om något som jag funderat på den sista tiden. Därav den fragmentariska texten.)

Jag har börjat ifrågasätta idén med semantisk HTML. Inte själva markupen utan grejen med semantiska CSS-klasser.

Jag tror mer på att namnge CSS-klasser med koppling till det visuella, hur det faktiskt ser ut.

För underhållningsbar CSS i ett icketrivialt projekt har man misslyckats om enda sättet att orientera sig är via Inspect element.

Semantisk HTML var en nödvändig reaktion mot inline-stilar, tabeller för layout och annat. Men det är inte svaret på underhållningsbar CSS.

Jag tycker OOCSS är det mest lovande inom CSS för underhållningsbarhet (bland annat). Många riktigt bra idéer där. http://oocss.org/

(Jag fick en fråga från @upperdog_se om det verkligen blir lättare att underhålla med klassnamn som ”green_menu” och ”big_heading” om färger och storlekar ändras. Mitt svar fortsätter.)

Det är inte så hårdraget jag menar med visuell koppling. Och jag menar inte heller att helt bortse från det semantiska.

Semantisk HTML så som det praktiseras förutsätter att du har selektorer med flera element. Typ ”.blog-post .comments .name”.

I ett komplext projekt blir det mycket sådant. Ändringar i markup-struktur slår brett och du har låg grad av återanvändning.

Med OOCSS undviker du långa selektorer och tänker i stället objekt. Behåller man semantiken blir det typ ”.blog-comment-name”.

Där har man gjort en stor vinst bara genom att bryta ned det i objekt med specifika namn som består av objekt. Mer begripligt.

Men för öka återanvändning är det ofrånkomligt att blanda in det visuella, för det är vad CSS beskriver.

Att utveckla underhållningsbara system kräver tydlighet i namngivning & hur saker hänger ihop, samt att hålla nere duplicering.

Och där är CSS inget undantag. Jag kan inte se att det kan lösas på något annat sätt.

Paul Graham: Vilka problem önskar du att någon annan skulle lösa?

Fleecelabs kanon

Följande böcker tycker vi som företagare inom mjukvara att man ska ha läst. Det här är inte bara bra böcker utan sådana som påtagligt har format oss och som vi ständigt återkommer till. Vår kanon.

  • Extreme programming explained, Kent Beck,
  • The elements of typographic style, Robert Bringhurst,
  • The visual display of quantitative information, Edward Tufte,
  • Made to stick, Chip Heath och Dan Heath,
  • Getting things done, David Allen,
  • Don’t make me think, Steve Krug,
  • The pragmatic programmer, Andrew Hunt och David Thomas,
  • Refactoring, Martin Fowler.

Med tiden kommer vi skriva något om varje bok. Vi kommer också lägga till fler böcker när vi kan enas om vilka ytterligare som kvalificerar sig. Men dessa åtta är vi säkra på.

Pingis-/konferensbord i teak från James Perse
”This time, [Charles and Ray Eames] wouldn’t design the look of the chair first. They would never make that mistake again. They would let the design flow from the learning. That meant knowing who they were serving. In Charles’s words, it was always about being a good host to their guests.”