Vad är en patch? Steg för steg guide hur du själv gör en till Drupal

En patch kan jämföras med ett plåster med en unik passform för ett unikt skrubbsår. Patchen bygger man för att fixa något som man tycker är fel i en modul (core eller contrib) som man använder. Då man listat ut hur man kan fixa den kan man först applicera den på sin egen sajt, och sedan dela den med communityn så att alla kan få nytta av den. Passar väl rätt bra ihop med public service eller hur?

Min första patch skapade jag förra veckan. Vi använder Redirect modulen för att hantera namnbyten på artiklar. Om en artikel byter namn på vår sajt ändras nämligen också adressen till artikeln, och om artikeln då redan hunnit delas i social medier så skulle besökare den vägen inte hitta artikeln utan redirect modulen.

Problemet uppstår ifall artikeln först döps till ”Kalle Anka är bäst!”, sedan döps om till ”Kalle Anka bäst!”. Då skapas en hänvisning från ”Kalle Anka är bäst!” till ”Kalle Anka bäst!”. Om man sedan döper om artikeln till ”Kalle Anka är bäst!” döps artikeln om, och det finns redan en hänvisning som pekar på ”Kalle Anka är bäst!”. En infinite loop har skapats, då besökaren skickas runt i en cirkel utan att någonsin kunna stanna (Sajten märker dock av felet och bryter loopen, men besökaren kan inte läsa artikeln).

Det felmeddelande som visades var inte särskilt tydligt för en icke tekniskt kunnig. Där stod ”Oops, looks like this request tried to create an infinite loop. We do not allow such things here. We are a professional website!”.

Jag tänkte jag skulle översätta det till något tydligare, samt inkludera ett lösningsförslag åt den som skapade felet. Jag kunde dock inte göra det, för översättningsfunktionen kunde inte hitta meningen i fråga. Jag bestämde mig för att kolla på modulens kod, och kunde där konstatera att t() översättningsfunktionen saknades. Dessutom visades felet som ett grönt statusmeddelande. Jag ville ändra det till ett gult eller rött varningsmeddelande.

Genom en sökning på ”create Drupal patch” hittade jag en manual för att skapa en patch (Quick and simple patch). Man klarar sig med det som står på modulens ”versioner” sida, gör en patch för redirect. Följande Youtube video guidar dig genom git och drupal.org issue skapandet.

I korthet gjorde jag följande:

  1. Ändrade på min local dev version av redirect modulen för att kolla om jag överhuvudtaget kunde fixa problemet
  2. Installerade en ren version av Drupal 7.x (min local dev är så modifierad att det är bäst att testa och skapa patchen från en så ren install som möjligt
  3. Installerade git_deploy som behövs för att generera all info som behövs till patchen
  4. Installerade dev versionen av redirect (git clone av dev branch) och pathauto som behövdes för att testa den ändrade koden
  5. Gjorde ändringarna i filen
  6. Gå till modulens mapp med CMD, kör git status. Du ser då ett meddelande om att filen du ändrat har ändrats.
  7. Kör git diff > [description]-[issue-number]-[comment-number].patch (du kan testa att döpa den till vad som helst, för att se att det fungerar. Filen finns sedan i modulens mapp) Fortsätt sedan med följande steg och döp sedan om testfilen du skapade eller kör kommandot en gång till.
  8. Gick till drupal.org och redirect modulen och skapade en ny issue. Där beskrev jag problemet och hur jag tänkt lösa det. Ta issue nummern från url:en efter att du sparat din issue, och döp patchen enligt namngivningskonventionen. I mitt fall blev det missing_t_function-1903228-1.patch
  9. Skriv en kommentar och bifoga patchen, ändra status till needs review
  10. Vänta på att någon av upprätthållarna kollar på din patch och bifogar den först till dev branchen och sedan till den stabila versionen
  11. Om du inte kan vänta kan du också ta patchen i bruk bara på din egen sajt i väntan på att den blir tillgänglig via modulen
  12. Patchen denna bloggpost handlar om blev infogad i dev branchen efter en vecka

Här kan du läsa issuen jag skapade för patchen:
#1903228 – Missing t() function in drupal_set_message

Vill du jobba med datajournalistik eller spel? Ansökningstiden har utgått.

Den 22.11 2012 gick vi ut med att vi söker efter två utvecklare till Svenska.yle.fi. Det här är en stor grej för oss på Svenska Yle då vi inte haft en möjlighet att verkligen utvidga vårt team så här sedan början på 2000-talet, trots att behovet ökat markant på 12 år. De jobb vi nu lediganslagit, ett webbutvecklarjobb med inriktning på spel och ett webbutvecklarjobb med inriktning på datajournalistik, visar också klart på vilka delområden Svenska Yle satsar på. Vi valde avsiktligt att inte gå på Monty Python-linjen den här gången eftersom man inte kan upprepa en likadan reaktion två gånger. Förra gången vi sökte en webbutvecklare som ersatte en person som slutat gick det nämligen så här.

Båda jobben är mycket intressanta och ger den personen som får jobbet möjlighet att jobba med ett team som är framåt och otroligt duktigt.

Det har redan länge stått klart att vi behöver mer krut för att kunna presentera innehåll som datavisuliseringar och stöda datajournalistiken på Svenska Yle. Trots att vi inte haft en enda dedikerad person för jobbet så har vi lyckats skapa en hel del journalistiskt innehåll utgående från tillgänglig data. Orsaken till att det lyckats är att en av Finlands främsta personer när det gäller datajournalistik finns i vårt team, Teemo Tebest, som har gett oss en insikt i hur mycket man verkligen kan göra med den data vi har tillgång till. Det mest uppmärksammade projektet vi gjort är Maktbasen http://svenska.yle.fi/maktbasen, men vi har också jobbat fram Svenskfinland som fem storkommuner utifrån datan i Maktbasen. Därutöver har vi haft mindre projekt, till exempel Alkoholkartan och Hjälp Kalle. När vi nu utökar vårt team med en webbutvecklare som skall ha som sin huvuduppgift att jobba med datajournalistik blir det en hel del annat att se fram emot.

Varje år har BUU-klubbens webbsatsningar och spel skapat glädje och förtjusning hos både barn och vuxna. Det är helt klart ett monsterjobb som har skötts med små resurser och med stor passion. Nu ser vi en stor potential och en massa outforskade möjligheter i den barnwebbsproduktion vi kan skapa, men vi klarar inte av att göra mera utan att få förstärkning. Pia Manns är den person som drivit produktionen och även i år skapar en helt fantastiskt fin julkalender som kommer att tvinga föräldrarna att slita loss sina barn från datorerna så att de själva skall hinna spela. Det paradigmskifte vi nu har framför oss är att kunna nå ut till alla mobila plattformar, som pekplattor och telefoner, men det går inte att direkt lösa med den teknik vi använder idag. Personen vi är ute efter ska kunna se potentialen i koncepten då det gäller att anpassa dem till andra plattformar, men också att kunna göra själva jobbet. Det gäller ju inte enbart BUU, utan man har hela Svenska.yle.fi som spelplan, ja varför inte även finska Yle om det blir tid över för att kunna göra spel av journalistiskt innehåll tillsammans med hela vårt team.

Bilderna med plock ur BUU-klubbens e-post respons

 

jagfyläråridagsnälajörnyaspel

 

hei buuglup minä aijon pelata paljon teidän pelejä ne ovat  kivoja pelejä
ja hyvin keksitty ja heippa minä alan nyt pelaamaan

 

– Häj jag vill att ni lagar nya häst spell och ett nyt bill spell.

 

BUU-KLUPPEN ON KIVA PAIKKA MÄ JA MUN PIKKUSISKO PELATAA SITÄ MELKEIN AINA KUN ON TYLSÄÄ

 

jag tykär at ni har brasidår måna pusar å kramar

 

hei minä en pidä saha pelistä voisitko laittaa jotain pelejä kiitos

Öppen data nytt vapen i
kampen mot korruption

Öppen data kan hjälpa avslöja korruption och ekonomisk brottslighet. Det tror man på OpenCorporates och Global Witness – två organisationer som vill lyfta fram dunkla hemligheter i dagsljuset.

Öppen data i kampen mot pengatvätt

OpenCorporates har skapat en söktjänst där vem som helst kan försöka nysta upp ägarförhållanden i företagsvärlden. Tjänsten är det största öppna företagsregistret i världen.

Söktjänsten innehåller i dag uppgifter om 45 miljoner företag – 377 000 av dem i Finland.

Informationen mår bra av att vara öppen eftersom osunda eller olagliga kopplingar är svåra att hitta, förklarar Chris Taggart, verkställande direktör för OpenCorporates.

Målet är att journalister, organisationer och intresserade medborgare ska kunna bidra med information, och hjälpa avslöja den ”mörka sidan” av företagsvärlden.

– Det är som att leta efter nålar i en höstack. Vi måste börja göra större skillnad mellan den genomskinliga företagsvärlden och den ogenomskinliga – den mörka företagsvärlden, säger Chris Taggart, som tidigare har arbetat som journalist.

Den mörka företagsvärlden drar nytta av komplexitet, förklarar Taggart. Ägarförhållanden och relationer mellan bolag kan vara så invecklade att det är näst intill omöjligt att reda ut dem. OpenCorporates har som mål att registrera varje företagsentitet i världen, med tillhörande information om företagsnamn, direktörer, aktieinnehav, med mera.

Rosie Sharp arbetar för Global Witness’  bank- och korruptionsteam. Hennes team försöker påvisa problemen med att vissa banker låter korrupta klienter deponera pengar.

Sharp säger att det har blivit allt vanligare att brottslingar tvättar pengar via global bank- och företagsverksamhet. Hennes organisation har satt ihop en broschyr ”An Idiots Guide to Money Laundering” som visar hur man kan dölja sin identitet och gömma pengar via rätt kopplingar. Syftet med dokumentet är att på ett enkelt sätt förklara ett komplext ämne.

Pengatvättarna registrerar vanligen sina bolag på platser där bankerna håller ägarförhållandena hemliga. Sådana platser är exempelvis Schweiz, Brittiska Jungfruöarna och Maldiverna.

Pengatvättarna brukar öppna bankkonton i någon bank som inte ställer så många frågor. Sådana banker finns exempelvis i Lettland, uppger Rosie Sharp. Via Lettland kan man sedan flytta pengar vart som helst inom EU.

Rosie Sharps organisation använder öppen data för att påvisa pengatvätt och andra internationella problem. Global Witness gör sina avslöjanden och dokument fritt tillgängliga på webben.

 Stommen för OpenCorporates webbsida är en sökfunktion. Organisationen erbjuder gratis gränssnitt för att återanvända sökfunktionen på andra webbsidor. En sökning på ”Microsoft” ger exempelvis 206 resultat globalt, vilket ger en inblick i hur utbredda tentakler ett stort bolag kan ha.

– Öppen data är inte tillräckligt. Vi behöver också färdigheter, förståelse och inspiration att göra något av den, säger Chris Taggart.

 Länkar:
http://opencorporates.com/
http://www.globalwitness.org/

 Chris Taggart och Rosie Sharp föreläste vid konferensen ”Open Knowledge Festival” i Helsingfors i september 2012.

DrupalCon 2012 München

En del av Svenska.yle.fi hade möjligheten att som en skolningsresa delta i årets europeiska Drupalkonferens som i år ordnades i München. För mig var detta mitt första Drupalevenemang så jag visste inte riktigt vad som väntade. Då Robert Douglass dök upp i öppningen av DrupalCon iklädd dirndl och några minuter senare salen genomljöd av 1800 programmerare som joddlade steg nog orosmålen några pinnsteg …

Men snabbt blev det nog klart att ovannämnda hör till den familjära atmosfär som präglar Drupalcommunityn, och själva programmet var ytterst intressant och mångsidigt. Stor fokus låg på utvecklingsarbetet med D8, följande version av Drupal. Det arbetet är nu inne på slutrakan och de funktioner som skall med bör vara klara i december. Lansering planerad till augusti 2013. Tills dags dato har över 600 webbutvecklare arbetat med D8.

 

Utvecklingen av D8 visar på flera intressanta spår för Drupal. Ett av dem är implementeringen av php-ramverket Symfony. Detta innebär en fortsättning på breddningen av Drupals verktygspalett till externa open source-lösningar, en utveckling som redan tidigare inletts med implementeringen av javascriptbiblioteket jQuery i D7. Det här var ett spår Henri Bergius var inne på i sin keynote Decoupling content managment. I hans mening är fortfarande samtliga CMS monoliter, som borde brytas ner.

 

Utvecklingsarbetet med arkitekturen i D8 forsätter med fokus på att ytterligare underlätta såväl testning, lansering och uppgradering genom att hålla olika lager mellan innehåll, frontend och backend separata. Ett annat steg är de stora framsteg som gjort i användarvänlighet och WYSIWYG-uppdatering i D8 i och med Spark-projektet och Alhoa-editorn. Imponerande grejer! Se själv:

Förutom det mer tekniska snacket jag i ärlighetens namn stundvis hade svårt att hänga med i, kom där också många intressanta saker fram som mer berör mitt eget konceptutvecklarperspektiv. Både Dries Buytaert och Anke Domscheit-Berg pratade om hur Drupal använts för att främja genomskinlighet, samarbete och deltagande mellan myndigheter och medborgare, dvs. det sk. Government 2.0.

 

Drupal har också framgångrikt använts av ideella organisationer som behöver ett system för att med minimala instegskostnader få upp en webbplats. Öppna ”distron” är här till stor hjälp, de är liksom nycklarna-i-handen-färdiga-att-tas-i-bruk webbpaket. En intressant presentation på DrupalCom handlade om ett av dem, OpenAid.

Andan av open source kändes starkt på många håll. Förrutom ovan nämnda OpenAid så var det Sony-sponsorerade projektet med views i Drupal6 ännu i färskt minne. De investerade miljoner i utvecklingspengar för att bygga mångspråkiga sajter för fans till de stjärnor som de har hos dem. De släppte sedan allt vad du utvecklat öppet till Drupal-gemenskapen. Som sedan dess bidragit med vidareutveckling som skulle ha kostat oräkneliga miljoner . Samma kungstanke ligger bakom initiativet Large Scale Drupal (LSD) där de största aktörerna som använder Drupal samarbetar med stora utvecklingsprojekt. Jag ställde i detta sammanhang en representant från NBC frågan om detta är besvärligt ur konkurenssynvinkel, han menade att det inte är så. ”Det är ju innehållet vi konkurerar med, inte de tekniska verktygen vi använder för att publicera innehållet. Dessutom gav detta oss bra insyn och samarbete med hur t.ex. Disney löst en del problem som vi också haft”.

Utöver det officiella programmet var korridorsnacket, Birds of a Feather-sessionerna (spontana möten kring av deltagarna föreslagna ämnen) och möjligheterna att träffa de främsta experterna inom området verkligen givande. Vi fick t.ex. stor hjälp och härligt meningsutbyte av Lin Clark och Stéphane Corlosquet, de ledande krafterna inom semantisk webb och Drupal. Och Dan ”dman” Morrison gjorde en code review av Svenska Yles Onki-modul mitt under pågående konferens. Mer om allt detta kommer så småningom här på Utvecklingsbloggen.

Just dessa möten, gemenskapen, samarbetet (och det goda ölet i München) blev de stora behållingarna av DrupalCon 2012 Munich.

 

It’s all about the community

Group Photo* DrupalCon Europe 2012. Munich, Germany

PS. gratis Drupal-klistermärken till den som kan hitta bloggpostförfattaren från bilden ovan 🙂