5 tips för snabbare utveckling av WordPress-tema

När jag utvecklar en webbplats i WordPress står temat (eng. theme, även kallat ”mall”) i centrum, eftersom allt i WordPress kretsar kring temat. Det är oftast också det som tar längst tid — ett komplett tema är väldigt omfattande.

Den senaste tiden har jag utvecklat flera WordPress-teman och har lärt mig ett par knep som spar mycket tid. Självklart är alla projekt olika, men …

Utgå från Underscores (_s)

Det här är det viktigaste tipset, som kommer bespara dig många timmar eller dagars arbete och frustration:

Utveckla aldrig mer ett WordPress-tema från grunden! Det finns många grundstommar som du kan använda för att spara flera arbetsdagar och få ett mer komplett och professionellt tema. Nu menar jag inte parent themes eller ramverk, utan ett ”färdigt” tema som är gjort för att vidareutveckla och snygga till precis hur som helst.

Jag har flera gånger använd Underscores, som är framtaget av Automattic och därför förmodligen är det bästa alternativet. Så här förklarar de själva hur fantastiskt det är:

It incorporates code and tough lessons learned from the best WordPress themes: Kubrick, The Sandbox, Thematic, Twenty Ten, Toolbox, Twenty Eleven … As each new default theme is released, _s will be reviewed and updated. … Likewise with every theme the WordPress.com Theme Team builds using _s. As we come up with new best practices and learn new lessons in our themes, all that code makes its way back to _s.

Jag hoppas att du blivit övertygad.

Färdigt innehåll för testning

Det är omöjligt att utveckla ett tema utan något innehåll på webbplatsen, men att skapa fejkade menyer, widgets, kategorier, etiketter och alla tänkbara varianter av innehåll tar lång tid. Som tur är finns det färdigt innehåll som du kan importera!

WP Test är en XML-fil med (nästan) allt innehåll som du behöver för att utveckla och testa dina teman! Du kommer förmodligen utbrista ”oj, ja, det hade jag inte tänkt på” flera gånger när du granskar ditt tema.

Generator för Custom Post Types

Om du utvecklar ett WordPress-tema som inte bara ska vara en blogg, kommer du förmodligen behöva skapa en eller flera custom post types. Det är inte alls krångligt om du använder en generator som skapar PHP-koden åt dig, exempelvis den här eller den här.

Duger det med ett child theme?

Ett ännu enklare sätt att utveckla ett tema på än att använda en grundmall som Underscores, är att skapa ett child theme. Då skapar du ett nytt tema som ärver utseende och funktioner från ett annat (kallat parent theme). Du blir förstås mer begränsad och bör välja ditt parent theme med omsorg, men det kan löna sig!

Temat som den här bloggen använder är ett (egenutvecklat) child theme till Twenty Twelve.

Instant WordPress (endast Windows)

Instant WordPress är ett fristående program som startar en webb- och databasserver med förinstallerat WordPress på din Windows-dator. Du får alltså en lokal utvecklingsserver väldigt enkelt och behöver inte ladda upp dina filer via ftp eller liknande för att testa. Mycket smidigt!

Avslutande tips

Utöver detta bör du förstås ta en titt i manualen och kanske läsa en uppdaterad bok om WordPress-utveckling. WordPress förändras ganska snabbt, och om du inte har utvecklat med det på länge, rekommenderar jag att du tar en titt på nymodigheterna som kan förenkla för dig.

Appar på Världsbokdagen

Imorgon är det Världsbokdagen 2013, en dag som vill uppmärksamma läsandet (och även upphovsrätten). Jag gillar böcker och vill lyfta fram några bok-appar som jag gillar.

Alla appar finns till både Android och iPhone. Du kan enkelt söka på namnet i App Store eller Google Play för att installera dem.

Goodreads

Jag har testat flera sociala bokappar och communities på webben, och Goodreads är den jag gillar bäst. Tyvärr känner jag knappt någon annan som är aktiv där, men jag kan ändå läsa andra människors recensioner, se och skapa listor som grupperar böcker inom samma ämne, gå med i grupper och få rekommendationer på böcker som passar mig.

Tack vare de 10 miljoner medlemmarna som betygsätter och recenserar böcker är det en guldgruva för att se om en bok kan vara intressant innan jag börjar läsa den.

Det är en engelsk app, men väldigt många svenska böcker finns med.

Amazon Kindle och Dito

De e-boksläsare som jag har fastnat för är Amazon Kindle (för engelska böcker) och Akademibokhandelns Dito (för svenska böcker). De är båda mycket bra appar och har ett stort utbud av böcker.

Apparna är gratis, men böckerna köper du i webbutikerna hos Amazon eller på Dito.se. De skickas sedan automatiskt till alla enheter där du har loggat in i deras respektive appar. Du kan börja läsa direkt.

En fördel med e-böcker är att du själv kan förstora eller förminska textstorleken för att passa dina ögon. En telefon eller surfplatta med riktigt bra skärm rekommenderas, men jag har läst ”tjocka” böcker på billiga, svartvita handdatorer långt innan iPhone uppfanns.

Audible och Storytel

Om du hellre lyssnar till böcker än läser dem, kan jag rekommendera Audible (för engelska böcker) och Storytel (för svenska böcker). Som tillbehör rekommenderas ett par bekväma hörlurar, men du kan också använda telefonens eller surfplattans högtalare.

Båda tjänsterna har ett prenumerationsbaserat system, där du betalar per månad, vilket skiljer sig från e-boksläsarna ovan. Själva apparna är dock gratis.

Hos Storytel betalar du för att få lyssna på böckerna som hos Spotify. Du äger alltså inte böckerna, och du kan inte lyssna på dem igen efter att du har avslutat ditt abonnemang.

Hos Audible ingår en eller två böcker per månad och kan lyssna till dem även om du avslutar ditt abonnemang.

En annan skillnad är att Storytel strömmar böckerna successivt när du lyssnar, men Audible kräver att du laddar ned hela boken över trådlöst nätverk innan du kan börja lyssna.

Läser eller lyssnar du till böcker på din telefon eller surfplatta? Dela gärna med dig av tips i kommentarsfältet.

Vad är Cross-Site Scripting och hur hindrar jag det?

Det här inlägget publicerades ursprungligen på bloggen Entreprenörd 15 december 2009.

Cross-Site Scripting (förkortas XSS) är ett säkerhetshål som tillåter en hacker att injicera Javascript på din webbplats och därigenom komma över andra användares känsliga uppgifter, exempelvis lösenord.

I Wikipedias artikel om Cross-Site Scripting kan vi läsa att XSS har blivit det vanligaste säkerhetshålet över huvud taget för programvara, och att vissa forskare hävdar att 68% av alla webbplatser är öppna för XSS-attacker. Historiskt har både Google (sökmotorn), GMail, Facebook och Wikipedia haft problem med XSS.

Läs mer

Hur lagrar man användarnas lösenord säkert?

Det här inlägget publicerades ursprungligen på bloggen Entreprenörd 9 mars 2009.

Det skrivs ibland om webbtjänster som blir hackade och lösenord som läcker ut. Då är det en fördel om lösenorden är skyddade på något sätt, men så är det inte alltid. Hur kan man då göra för att säkra lösenorden för den händelse att ens tjänst skulle bli hackad? Jag har definierat tre säkerhetsnivåer nedan.

Läs mer

Hur fungerar det här med teckenkodning egentligen?

Det här inlägget publicerades ursprungligen på bloggen Entreprenörd 29 januari 2010.

Något som jag själv och väldigt många andra har svårt att förstå fullt ut är hur teckenkodning fungerar. Du vet det här med ASCII, UTF-8, ISO 8859-1 och så vidare… Vad är det egentligen? Och när man ser en text med ö istället för våra svenska tecken – vad är det som har hänt?

Läs mer

n+1 sätt att bli en bättre programmerare

IBM 1403 printout (from the power-of-two program)

Det är en enorm skillnad mellan de bästa programmerarna och de mediokra:

… many studies have shown order of magnitude differences in the quality of the programs written, the sizes of the programs written, and the productivity of the programmers. /…/ They studied professional programmers with an average of 7 years’ experience and found that the ratio of intitial coding time between the best and worst programmers was about 20:1; the ratio of debugging times over 25:1; of program sizes 5:1; and of program execution speed about 10:1.

(Notera alltså att studien jämförde programmerare som jobbade aktivt som programmerare och som hade gjort det i genomsnitt i 7 år. Alltså inte praktikanter eller studenter mot företagens superstjärnor.)

Fog Creek Softwares vd och grundare, Joel Spolsky, skriver också om detta, och är känd för att enbart vilja anställa de allra bästa programmerarna:

The real trouble with using a lot of mediocre programmers instead of a couple of good ones is that no matter how long they work, they never produce something as good as what the great programmers can produce.

En slutsats av detta är att om du är en riktigt, riktigt smart och effektiv programmerare så kan du få riktigt bra betalt och välja och vraka bland jobberbjudandena (med brasklappen att du faktiskt måste marknadsföra din kompetens också). Det kan man se exempelvis på hur mycket företagen satsar på att locka till sig oss duktiga programmerare och hur de försöker överträffa varandra i personalförmåner, lön och ”kul på jobbet”.

Hur blir man då en ännu bättre programmerare?

Peter Norvig har en del bra tips i sin artikel Teach Yourself Programming in Ten Years. (Glömde jag nämna att detta är något som tar tid? Programmering är som ett gammalt hantverk, där du behöver din lärlingstid innan du kan bli mästare.) Jeremy Morgan har också en del tips.

Det är dock viktigt att poängtera att erfarenhet inte automatiskt gör dig skickligare:

They found no relationship between a programmer’s amount of experience and code quality or productivity.

Jag skulle säga så här: att byta ramverk, programmeringsspråk eller paradigm är väldigt utvecklande. Men ju längre tid du jobbar med samma tekniker, desto mer avtar din personliga utveckling. Du kanske känner dig trygg som en expert, men du skulle förmodligen bli ännu duktigare om du utmande dig själv och lärde dig något nytt.

Boken The Pragmatic Programmer säger så här:

Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.

Jag har själv märkt hur jag har blivit en bredare och smartare programmerare genom exempelvis min utbildning — där vi lärde oss många programmeringsspråk och teoretiska koncept. När jag har bytt jobb har jag ofta också bytt språk och ramverk, och har även programmerat en hel del på fritiden i allt från C++ till Python och Bash. Utan allt detta, tror jag att jag hade varit en mycket sämre programmerare.

Här får du därför några tips för det kommande året — för att du ska utvecklas så mycket som möjligt och bli smartare, effektivare och mer välbetald:

  • Lär dig ett nytt programmeringsspråk, helst så olikt det du vanligtvis använder som möjligt. Har du testat Ruby eller Python än? Har du skrivit något i Erlang och Objective-C? Det finns en oändlig mängd språk, och vill du tänka nytt kan Prolog eller Haskell också vara något att prova på. Har du brottats med pekare och minnesallokering i C?
  • Lär dig ett nytt MVC-ramverk för att se olika implementationer och filosofier kring MVC-mönstret (de skiljer sig åt en del). Exempel beror förstås på ditt programmeringsspråk. Eller varför inte utmana tanken med MVC och prova något annat mönster?
  • Lär dig en ny databasmodell för att utmana dina tankar om hur du kan strukturera data. Du måste tänka om när du ska lagra data i en key-value store istället för i en relationsdatabas! Exempel: MongoDB, Redis, Neo4j.
  • Lär dig ett nytt CMS eller e-handelssystem för att se hur andra system tänker kring innehåll. Om du exempelvis bara jobbar med WordPress, lär dig Joomla, Drupal eller Umbraco.
  • Lär dig en ny plattform för att helt byta kontext; skriv en app för Android, iPhone eller Windows Phone; skriv en webbapplikation; skriv ett Windows/Linux/Mac-program.

Som bonustips föreslår jag att du också läser ett par böcker inom programmering, exempelvis någon av dessa:

Hur gör du själv för att utvecklas och bli en duktigare programmerare?

Smartphones ger sämre lösenord

Föreställ dig att lösenordet till ditt Facebook-konto är Bo4!p&kK=LsG. (Du har väl säkra och unika lösenord till alla dina konton, eller hur?) Nu har du köpt en smartphone och ska logga in för första gången. Vad gör du?

Jag gissar att du loggar in på Facebook på datorn och byter till ett enklare lösenord, ett som du snabbt och enkelt kan skriva in på din smartphones tangentbord.

På iPhone är det enklast att skriva tecknen a-ö (gemener) och mellanslag. För att få fram en uppsättning specialtecken måste du trycka på ”123″ för att byta tangentbordslayout. För vissa specialtecken måste du byta ännu en gång genom att trycka på ”#+=”.

Tyvärr är det alltså lite besvärligare att skriva in säkra lösenord på smartphones (framförallt iPhone, Android är bättre på specialtecken), vilket får mig att dra en slutsats och göra en förutsägelse:

Kvaliteten på lösenord kommer försämras framöver, i takt med att pekskärmar används mer och mer. Lösenord kommer bestå av enbart bokstäver och inte vara tillräckligt långa.

Men du som vill ha hyfsat säkra lösenord som är iPhone-vänliga, tänk på detta:

  • Använd bokstäver med accenter och andra tecken, ex. áõêüß, som du snabbt får fram genom att hålla inne respektive bokstav på tangentbordet.
  • Håll inne tangenten ”123″ och dra fingret till en siffra eller ett specialtecken och släpp för att komma tillbaka till ”ABC”-tangenterna direkt.
  • Kompensera för dålig variation mellan tecknen med extra långa lösenord, ex. så kallade pass phrases.

Har du tänkt på att det är besvärligt att skriva in lösenord på din smartphone? Har du några knep eller tankar om det? Dela gärna med dig i kommentarerna.