En natt med daladevelop

Så har vi kört Daladevelop igen, vilket borde bli något liknande det femte i ordningen. Den här gången körde vi på mediehuset igen. I fokus den här gången var att vi tog tag i vår egen hemsida för att äntligen ha en bra plats att visa upp alla roliga projekt vi gör.nytt för den här gången var att  vi hade med oss en designer vilket kommer lyfta vår sida rejält! Kul att sitta sida vid sida med designern istället för att bara få en färdig mall. Fler jobb borde vara på det sättet.
Övriga projekt för den här gången blev det inte så mycket med. Christoffer gjorde ett litet tetris som på ett eller annat sätt ska integreras i hemsidan det också.

Nästa daladevelop kommer väl att gå av stapeln om enmånad och för egen del tycker jag det hade varit roligt att vsra klsr med hemsidan då så vi kunde fokusera på annat.
Tack för den här gången!

Ah juste, missa inte att kolla in på daladevelop.se,
Just nu är den nog snyggast i mobilen. :-)


Länktips: github.com

För alla som har missat det vill jag bara tipsa om https://github.com/mikaeljorhult/wp-plugin-boilerplate som är en fenomenal wordpress plugin boilerplate. Där finns grunden till det mesta du kan tänka dig vilja göra med den plugin du funderar på och ur du ska koda den. Varsegod! Think no more!


has_cap was called with an argument that is deprecated since version 2.0

När du har DEBUG på så kan du vid användning av plugins väldigt ofta se felmeddelandet:

has_cap was called with an argument that is deprecated since version 2.0

Den här varningen kommer oftast av att pluginet skapar en meny i administrationsgränssnittet och använder sig där av ett förlegat argument. När man skapar en meny så måste man ange vem som ska få använda administrationsmenyn för din plugin och det gör man genom wordpress ”Roles and capabilities”.

För mig gav t.ex simplepie core pluginen den här noticen och fixet var väldigt enkelt. Leta upp raden som skapar administrationsmenyn. Den borde se ut ungefär så här:

add_options_page('SimplePie Core', 'SimplePie Core', 8, 'simplepie_core', simplepie_core_options_page');

Det tredje argumentet, i det här fallet åttan, är en siffra som anger vem som kan se det här. Men det är inte helt korrekt användning av funktionen och genererar därför felmeddelandet. Ändra i stället det tredje argumentet till ‘manage_options’ så försvinner felmeddelandet. Raden blir då att se ut så här:

add_options_page('SimplePie Core', 'SimplePie Core', 'manage_options', 'simplepie_core', simplepie_core_options_page');

Och det borde ta bort felmeddelandet. Tänk på att det kan förekomma på flera ställen i flera filer – på en enda plugin.  Tänk också på att om du ändrat i en plugin och den sen uppdateras till en nyare version så skrivs dina ändringar över. För att förhindra detta så uppmuntrar jag så mycket jag bara kan till att du efter att ha förbättrat en plugin skickar in en buggfix till författaren så kommer han/hon med största sannolikhet att lägga in förbättringen i koden.


Tre standardfunktioner i min functions.php

Här är tre av mina standardfunktioner som jag alltid har med i min functions.php, då de kan vara nyttiga att använda till olika sorters andra funktioner:

getTopAncestor()

Den här använder jag när jag behöver få reda på vad sidan heter som är den högsta föräldern i hierarkin till en sida.

function getTopAncestor($pageID)
{
	global $post;
	if($post->post_parent)
	{
		$ancestors = get_post_ancestors($pageID);
		$root = count($ancestors) -1;
		$parent = $ancestors[$root];
			return $parent; 
	}
}

isChild()

den här funktionen använder jag för att ta reda på om nuvarande sida är ett barn till någon annan sida.

function is_child() { 
	global $post;
	if( is_page() && is_array($post->ancestors) && ! empty($post->ancestors) ) {
		return true;
	} else { 
		return false; 
	}
}

the_slug()

den här funktionen använder jag för att ta returnera en posts slug. om en post heter ‘Emil kan wordpress’ så blir slugen ‘emil-kan-wordpress’

function the_slug($pageID) {
	$post_data = get_post($pageID, ARRAY_A);
	$slug = $post_data['post_name'];
	return $slug; 
}

Packlista #sswc

Imorgon åker jag till #sswc för att i tre dagar diskutera internet, nörda och lära mig massor av nytt av andra intelligenta människor. Det ska bli jättespännande. På internet florerar mängder med packningslistor över saker som man vill ha med sig, och jag har tröttnat på listor över tält, sovsäckar och liggunderlag!

Här är min packlista som jag ser till att packa min dator med innan jag åker:

  • node.js – för serverside javascript
  • jquery – självklart val
  • apache + mysql + php
  • ruby on rails
  • socket.io – för appar som kan prata med node.js
  • senaste wordpress

Och med det i datorn så känner jag mig beredd på det mesta jag kan komma att möta i form av ideer, saker som bara vill hoppa fram och som där och då måste kodas. Spännande värre. Hoppas på mycket kvalitativt nördande.


Automatiska twitterlänkar i wordpress

Jag har skrivit en enkel funktion för att automatiskt skapa twitterlänkar när man i ett inlägg skriver t.ex @emomilol Det räcker alltså att skriva ett@ och sen ett namn. Väldigt smidigt och enkelt.

Så här gjorde jag:

Öppna functions.php och lägg till följande:

function twittify( $data , $postarr )
{
$ret = $data['post_content'];
$ret = preg_replace("#(^|[\n ])@([^ \"\t\n\r&lt;]*)#ise", "'\\1<a href="\&quot;http://www.twitter.com/\\2\&quot;">@\\2</a>'", $ret);
$data['post_content'] = $ret;
return $data;
}
add_filter( 'wp_insert_post_data' , 'twittify' , '99' );

Och voila, det bör fungera!
Obs – den matchar även mailadresser så skriver du sådana får du redigera manuellt.


Ny design!

Japp! larsemil.se har fått en ny design!
Trots några hektiska jobbdagar så har jag pillat ihop ett nytt utseende på siten. Att programmera är ju trots allt mer än bara ett jobb – det är ju en av mina största hobbys också.

En av de stora anledningarna till bytet var att jag satt fast i ett tema som jag inte hade gjort själv. Det gjorde det väldigt bökigt och väldigt krångligt när jag ville göra något utöver att posta inlägg på sidan. Nu när jag byggt mitt eget så är jag glad och lycklig och förändringar enkla att göra.

Bland annat har jag byggt in stöd för gömda fält som man kan fälla ut. För att göra det enkelt har jag byggt in i temat att man kan gömma delar av text direkt i editorn.

Så här t.ex, det här är en gömd text.

Läs mer

Förövrigt är planen att tagga upp inläggen mycket bättre så att jag kan använda mig mer av liknande inlägg.
Wordpress har också fått en större del på sidan, då det är vad jag jobbar mest med det och behöver någonstanns att posta det jag gör till wordpress.

Finns några saker kvar att göra: som att bygga kommentarsfunktionen, styra upp kontaktfunktionen som inte fungerar ännu och lite annat. Men inspirationen finns helt plötsligt här och det känns bra. Får se om det håller i sig!


En ny slider!

Jag har kollat igenom alla möjliga olika sliders för att hitta en som passar till det jobb jag gör åt en kund just nu. Mina krav var egentligen ganska simpla:

  1. Kunna skapa flera olika sliders, med unika bilder och inställningar på varje slide.
  2. Att välja bilder från wordpress media bibliotek.

Alla sliders som fanns hade tusen inställningsmöjligheter vad gällde hur bilderna skulle bytas och allt annat, men att just klara av de två ovanstående kraven och presentera det på ett vettigt sätt var helt omöjligt.

Så jag bestämde mig för att göra en egen

Sagt och gjort, fem timmars kvällsprogrammering resulterade i en enkel plugin till wordpress där man kan skapa ett oändligt antal sliders och unika inställningar för varje slide. Slidern bygger såklart på jquery och går självklart att skriva ett betydligt mer avancerat javascript som hanterar bildskiftningen, men keep it simple tänkte jag och det är det nu. Och fungerar rackarns bra.

Håll utkik efter demo!

Koden ska nu snyggas upp lite och så ska jag lägga till lite enkla inställningar som man kan vilja ha om man inte vill hårdkoda och sen kommer jag att släppa den fritt på ett eller annat sätt.


Wordcamp Stockholm 2010 – the judgement

Wordcamp stockholm gick av stapeln nu i helgen, lördag till söndag. Det är den första wordcampen som arrangerats i Sverige någon gång och som utvecklare och wordpressnörd kändes det efter att barnvakt var fixat som ett måste att åka dit. Förväntningarna var väldigt höga och nu när det närmar sig slutet så tänkte jag att det vore på sin plats med en liten wrap up om vad som har hänt och vad jag har varit med om.

Informationen

Jag vet jag vet, Wordcamp Stockholm är ett arrangemang av ideella eldsjälar. Och de har gjort ett fantastiskt arbete. Men informationen innan var faktiskt under all kritik. Först EFTER att tiden för att köpa biljetter hade gått ut så kom talarlistan upp. Innan det var det generell information. Jag hade dessutom tyckt att det vore schysst att ha en deltagarlista på sidan, med kontaktuppgifter till de som skulle komma.

Sessionerna

Den första av sessionerna jag var på handlade om WordPress och sökmotoroptimering med Nikke Lindqvist. Det här var ett helt fantastiskt föredrag som både inspirerade att ta tag i sin sida för att rankas högre i sökmotorrankingen och dessutom lärde ut många tips om hur man faktiskt kunde göra det. Full pott på det här!

Efter det gick jag till Kristian Erendi från Aller som pratade om hur de hostade sjukt många wordpresssiter i samma installation. Det gav en viss insyn i hur en setup bakom wordpress kan se ut och hur de hade optimerat det. Också lite intressanta diskussioner om hur man som företag ger och tar till open source communityn. De hade flera hundra tusen sidvisningar i veckan och körde det på en enda Nginx server och en databasserver.

Tredje sessionen handlade om säkerhet och wordpress. Kontentan där var ”patcha patcha patcha” och använd inte php 5.3. Mycker mer sades egentligen inte på den halvtimme som gick. Hade varit mycket trevligare med andra aspekter, som hur man kan konfigurera mysql eller apache för att optimera säkerheten för att hosta just wordpress.

Fjärde sessionen var med Thord Daniel Hedengren, initiativtagare och eldsjälen bakom Wordcampet. Det handlade om teman och underteman och hur man kunde använda det för att bygga bloggramverk. För någon som är van vid objektorienterad programmering och arvhanteringen där så var det inget nytt. TDH har en enorm kompetens men ämnet som sådant var inte så spännande som jag hade hoppats.

Den femte och sista sessionen handlade om WordPress mobila lösningar. Här hade jag hoppats att det skulle handla om t.ex jQuery mobile eller mer bakomliggande tänk. Istället handlade det till största delen om att det finns klienter till de tre största mobila operativsystemen. Inget nytt alls under solen. Istället så missade jag sessionen med TV4 som tydligen varit riktigt bra.

Sammanfattningsvis om sessionerna så tycker jag nog att det hade varit smidigare att sprida ut dem över både lördagen och söndagen för att ge fler deltagare chansen att delta på fler sessioner.

Maten

När jag fick schemat så blev jag helt sjukt imponerad över hur mycket mat som ingick i de 650kr som wordcampet kostade. I efterhand har jag fått lära mig att matigt fika innebär en muffin och att lunch och nattmat är en baguette/macka. Men man får vad man betalar för och med tanke på priset är jag förvånad ändå över vad som ingick. Hade jag vetat tidigare att jag skulle vara så hungrig hade jag nog tagit med mig mer att äta själv.  Sjukt bra att all köttfärs till taccosen var qournfärs.

Kvällen

På kvällen var det dags för natthack och vi spenderade de första timmarna åt att försöka komma på ett lämpligt projekt. Med ett engagemang utan dess like men inget projekt så falnade snart glöden. Jag tog tag i mig själv alldeles för sent och kodade på mitt bokningssystem som jag täntke bygga länge. Dock så blev jag snart för trött och stirrade mer på skärmen än vad jag fick något gjort så jag gick till mitt rum på Villa Källhagen och somnade till ett avsnitt av Battlestar Galactiva som jag inte hade sett.

Söndagen då?

Än är den ju inte slut, men det känns ändå som om den mest är sjukt outnyttjad tid. Söndagen har potential till att innehålla sessioner och workshops men de diskussioner jag såg intresserade mig inte jättemycket.

Förslag på förbättringar:

  • Färre paralella spår på sessionerna och använd söndagen effektivare
  • Mer information om de anmälda på hemsidan
  • Lite ”matigare” fika. :)
  • Ha internetuppkoppling även på söndagen. Moahahaha!
  • Wishlist på föredrag
    • Hands on – så kör du wordpress på nginx.
    • Att marknadsföra sin site reklam/Adsense etc
    • 10 sätt att köra backup på din wordpress

Och det var i stort det, vilket leder mig till….

Sammanfattningen:

Wordcamp stockholm har för mig varit väldigt lyckat. Jag börjar känna mig färdig även om det är några timmar till med nördande då det nyss passerade lunchtid. De saker som inte har fungerat känns som barnsjukdomar som förhoppningsvis växer bort till nästa wordcamp. Jag har lärt mig sjukt mycket, träffat andra inspirerade nördar och fått påbörja lite projekt jag har dragit mig för att göra. TDH och gänget ska ha all cred för en fantastisk helg. Och återigen tack nickelin för att ha fått upp mina ögon för SEO och hur det fungerar.

Dessutom börjar det klia i mina arrangemangsfingrar… Det hade varit väldigt trevligt med ett Wordcamp Summer 2011.


Några tjänster som gör internet lite smidigare

Web2.0 har varit här i ett par år nu och vissa tjänster har blivit riktigt bra. Här har jag listat några av de tjänster som gjort mitt liv online lite smidigare och bättre.

Gravatar
Gravatar är det som gör att jag har en bild på mig själv här på bloggen. Eller på någon annans blogg med för den delen. Det fungerar helt enkelt så att man skaffar sig ett konto på gravatars hemsida där man sedan laddar upp en bild och kopplar den till en epostadress. Om man sedan kommenterar på en blogg som är synkroniserad mot gravatar så dyker ditt porträtt upp när du klickar på skicka. Det är både snyggt och smidigt.Dessutom så kan du som har en egenprogrammerad blogg faktiskt programmera och integrera gravatar även i din blogg.(pik till hullarn och mattis)

WordPress
wordpress.com kan man skaffa sig en blogg och får då adressen namn.wordpress.com. Men wordpress är större än att bara vara en bloggportal. Man kan från wordpress.org ladda ner bloggprogramvaran och skapa en blogg på vilken webbserver som helst. Installationen är ganska enkel och tar bara några minuter. Väl installerat så finns det tusentals teman och plugins för att få ditt wordpress att se ut eller bete sig precis som du vill. Om du tycker det är krångligt eller har en ide om en blogg som du vill skapa så hör av dig till mig så löser vi det.

Ubuntu One
Ubuntu One är en dropboxliknande tjänst. Tänk dig tjänsten som ett usbminne – fast istället för att ha det i fickan så har du det på internet. Det monteras som en enhet på datorn och de filer du kopierar dit synkroniseras automatiskt på alla andra datorer som du anslutit till ditt konto. Ubuntu One heter tjänsten om man kör Ubuntu men som sagt så finns även dropbox med samma funktionalitet och det finns även till Microsoft och Apples operativsystem.

iGoogle
iGoogle är googles sökmotor men anpassad så som du vill ha den. Den är helt perfekt att ha som förstasida i webbläsaren och går att konfigurera med mängder av olika små widgets för att visa olika information. Vad sägs om senaste nyheterna, kommande tvprogram, väder eller favoritlänkar? iGoogle går att anpassa i mängder och kan faktiskt vara riktigt trevligt.

Det vore väl orättvist att skriva ett inlägg om web2.0 och inte nämna facebook, twitter, flickr eller andra sociala nätverk. Men sanningen är den att jag inte använder något av dem. Facebook  har jag använt men det känner ni redan till. Twitra har jag aldrig fastnat för och därför uttalar jag mig inte om det.

Håll er uppdaterade, nästa teknikinlägg kommer handla om hur man provar linux på sin dator. Hurra!