November – ingen anledning att deppa

Färgerna försvinner och regnet kommer. Man kan lätt tycka att det är läge att kapitulera för de mörka krafterna men det finns en ljusning! Om tio dagar (14 november) ordnar vi i Symfony Sverige en endagskonferens om modern php/Symfony och årets talarlista är riktigt spännande. Tycker vi har fått ihop en bra variation och jag ser fram emot alla föreläsningar. Har du inte redan köpt biljett så skynda skynda och hoppas vi ses där!

Stängd data

Örebro kommun ligger långt fram med öppen data för offentliga uppgifter. Örebro kommun, tillsammans med Länsstyrelsen och universitetet, ordnar dessutom en tävling i hur man använder öppen data bäst. Det är riktigt kul och jag kommer såklart att följa tävlingen. Hade jag haft tid hade jag gärna varit med men antalet projekt jag driver bör snarare minska än öka.

Ett miniprojekt jag kodade ihop häromkvällen använder data från Örebro kommun som dessvärre inte är öppen. Jag scrapar uppgifter om bibliotekslån och sammanställer på familjenivå. Givetvis går det inte att ha personers boklån som öppen data men det hade varit riktigt snyggt om konton man skapar på kommunens sajter kan använda OAuth för att tillåta tredjepartsapplikationer att komma åt datan.

I mitt boklåneprojekt sammanställer jag hela familjens boklån och skickar ett mejl till mig om vi inom familjen har en eller flera böcker som ska lämnas tillbaka inom några dagar.

screenshot

För den som är intresserad finns koden på Github.

Setup invoicer.se

I förra inlägget skrev av lite om idén bakom invoicer.se. Nu tänkte jag skriva lite om tekniken bakom.

Själva sajten är skriven i php och ramverket Symfony2. Speciella bundles vi använder är

  • KnpSnappyBundle – för fakturapdfgenerering
  • CloudBackupBundle – för dagliga backupper till Dropbox
  • EkinoNewRelicBundle – för rapportering till New Relic
  • VreshTwilioBundle – för smsutskick (min fork för att bara skicka sms till ett valt nummer på stagingmiljön)
  • BCCResqueBundle – tillsammans med Redis är det ett väldigt bra kösystem.
  • Samt Doctrine migration-, fixture- och extensionbundle och andra självklara bibliotek.

Givetvis använder vi git och Github för versionshanteringen. Phpci är uppsatt att köra testsviten vid varje pushning så man får ett tydligt svar om branchen är ok att merga eller inte. Jenkins är såklart bättre men eftersom vi bara kör med en server kan vi använda Phpci utan att något ytterligare behöver installeras på servern.

Släpp av ny kod till antingen staging- eller produktionsmiljön görs enkelt med ett terminalkommando tack vare Capifony. Vid släpp till stagingmiljön laddas fixaturerna om och till produktionsmiljön sker en databasbackup och migrationerna körs.

För logghantering använder vi Loggly. Jag har satt upp lite sökningar så vid tex fatal error så får jag ett mejl. Eftersom testsviten innehåller funktionstester för (i princip) alla controllers actions och deras olika http status så fångas det mesta innan koden når produktionsmiljön. Det har faktiskt bara hänt en gång att Loggly mejlat för ett fel.

En annan tjänst vi använder är New Relic. Nu har vi inte speciellt mycket trafik och sajten är väldigt stabil så har inte jättenytta av tjänsten just nu. Men det är ändå en väldigt bra tjänst för att kolla hälsostatus på applikationen.

Vid något riktigt kritiskt så hela sajten går ner har vi Pingdom som larmar.

Än så länge klarar vi oss på gratisversionerna av alla tjänster. När vi når gränserna för att behöva betala har vi förhoppningsvis också ökat våra intäkter så de kostnaderna inte blir speciellt tunga.

Gratis fakturamall

Tidigare använde jag bokföringsprogrammets fakturamall men det blir lite krångligt eftersom jag inte sköter bokföringen själv. Iom bildandet av aktiebolaget gjorde jag om strategin och gör nu fakturorna för hand. Efter en del googlande på gratis fakturamall hittade jag bara riktigt kassa excel-mallar så jag beslutade mig för att göra en egen.

Min krav var

  • Snabb – Det ska gå snabbt att skapa en ny faktura. Det behöver inte vara massa krångel med momssatser och fraktsätt.
  • Snygg – Man vill ju inte skämmas när man skickar fakturor.
  • Fönsteradress – De gånger jag skickar fakturorna med snigelpost är det smidigt om adressen visas i fönstret på ett C5-kuvert.

Resultatet blev en html-sida med lite css. Mha lite php behöver man bara ändra några parametrar som ligger i toppen på filen och inte på alla ställen runt om i fakturan. Förfallodatum och totalbelopp räknas såklart ut. Intresserad? Koden ligger i ett repo på Github.

Symfony day i Köln 2011

Tog en liten paus i min föräldraledighet och åkte till Köln och Symfony day under slutet av förra veckan. Även om jag verkligen uppskattar att vara föräldraledig är det ett skönt avbrott att komma iväg på ett jobbrelaterat evenemang. Symfony day, som trots namnet, är ett 2 dagars event med workshops en dag och konferens en dag.

Workshopdagen gick jag på @hhamons ”A Practical Tour Of Symfony2 & Doctrine 2”. Skönt med en rejäl genomkörare av Symfony2 och även om jag kunde mycket var det bra att få det repeterat. Tyvärr var det lite för många som var för gröna på php så det gick lite för långsamt och vi hann inte med allt som var tänkt.

Konferensdagen var en dag med väldigt blandade föredrag. @igorwesomes dragning av Silex microramverk var intressant. Ska absolut kolla in det mer om jag ska bygga någon lite mindre sajt framöver. En dragning om open source var väldigt bra men dagens höjdpunkt var såklart @fabpot om framtiden för Symfony2. På en fråga från en i publiken om när den nya funktionen kommer switchar Fabien till termninalen och mergar in branchen i master och sen pushar.

Eftersom det inte gick något flyg hem på lördagen blev det allmän hacking samt lite obligatoriskt turistande vid en sjukt stor kyrka. Sammanfattningsvis var det ett helt grymt event! En riktigt bra genomkörare för mitt Symfony2ande inför 24hbc nästa vecka. Kommer att bli awesome!

Fler bilder finns på mitt Flickrkonto.

Nu tar jag bort nofollow

Jag känner mig extra snäll och ger lite länkkärlek tillbaka till er som kommenterar. Jag tar alltså bort rel=”nofollow” på alla länkar i kommentarerna.

Jag använder pluginet Remove nofollow. Pluginet tar bara bort nofollowlänkarna på namnet och inte länkarna i kommentarsfältet. Jag vill vara lite extra snäll och modifierade pluginet lite inga länkar får nofollow! Koden som behöver läggas till i remove_follow.php är:

function remove_nofollow2($nofollow) {
   $nofollow = preg_replace('/rel="nofollow"/',"", $nofollow);
   return $nofollow;
}
add_filter('comment_text', 'remove_nofollow2');

De enda länkarna jag har nofollow på nu är de till bloggar.se och det verkar säkrast att ha det så…