oktober 14th, 2009 av Baronen
Nu har Google återigen skickat ut nya inbjudningar till Google Wave. Denna gång var jag än av de som fick en inbjudan att. Jag har under dagen testat tjänsten lite grann. Min första reflektion är tjänsten känns ganska buggig och jag har redan fått skicka en felrapport. Trots detta känns det som en kanontjänst, och många kommer ha nytta av den.
Jag fick även invites att dela ut till vänner och bekanta. Jag tänkte därför anordna en liten tävling där jag delar ut tre Google wave invites.
Vinn en Wave invite
För att ha chans att vinna en Google wave invite, ska du skriva en kommentar på denna post där du beskriver varför just du ska vinna.
Regler
- Tre stycken invites delas ut
- Skriv en kommentar här under och förklara varför just du ska vinna en inbjudan till google wave.
- Tävlingen pågår till Söndag 25 oktober 2009, 23:59 då jag utser en vinnare.
- Ändrar Google förutsättningarna för antalet inbjudningar eller förändrar något annat som gör att jag inte kan dela ut dessa invites avbryts tävlingen.
- Enligt Google tar det ett tag innan inbjudan skickas ut, jag kan därför inte garantera att du får din invite direkt efter tävlingens slut.
Lycka till, och tipsa gärna dina vänner om tävlingen.
Tävlingen avgjord
Jag har nu utsett ut tre stycken vinnare. Jag har skickat ut ett mail till de tre som har vunnit, grattis
oktober 6th, 2009 av Baronen
I och med att användandet av mikrobloggtjänster har ökat och folk delar mycket länkar har förkortningtjänster blivit väldigt populära. Jag tänkte därför visa hur du bygger en enkel PHP-klass och använder en av de populära tjänsterna, bit.ly. Notera att för att använda förkortningstjänsten bit.ly krävs det att du har ett konto och en API-nyckel från tjänsten.
När du väl har fixat din API-nyckel och har ett konto så är det dags att börja koda. Kollar vi på den officiella dokumentation så ser vi att länken vi använder ser ut enligt följande: http://api.bit.ly/shorten?version=2.0.1&longUrl=http://baronen.org&login=anvadare&apiKey=APINyckel&format=json
Vi skapar sedan vår ganska enkla klass som innehåller en statisk funktion, GetShortUrl.
class Bitly
{
public static function GetShortUrl($url, $login, $api, $format = 'json')
{
$bitly = "http://api.bit.ly/shorten?version=2.0.1&longUrl=".$url."&login=".$login."&apiKey=".$api."&format=".$format;
$response = file_get_contents($bitly);
if($format == 'json') {
$resultJson = json_decode($response, true);
return $resultJson['results'][$url]['shortUrl'];
} elseif ($format == 'xml') {
$resultXml = simplexml_load_string($response);
return $resultXml->results->nodeKeyVal->shortUrl;
} else {
return "Wrong type supplied: " . $this->format;
}
}
}
APIet tillåter att man väljer vilket format man vill ha tillbaka resultatet i, jag har byggt denna klass så man kan välja både json och xml.
För att sedan använda klassen anropar du den statiska funktionen. I detta exempel förkortar jag baronen.org, jag skickar även med bitly-användare, api-nyckel samt att jag vill använda formatet xml.
<?php echo Bitly::GetShortUrl('http://www.baronen.org', 'Anvandare', 'API-Nyckel', 'xml'); ?>
Resultat och demo
Se demo eller ladda ner källkoden.
oktober 6th, 2009 av Baronen
Det är nu ungefär sex månader sedan vi startade Utomic HB. I slutet av förra veckan tog vi äntligen tag i saken och skickade iväg en beställning på visitkort.
Som du ser på bilden har vi kört ett Twitter-tema, dels för att vi ska sticka ut lite och dels för att vi kommer i framtiden jobba mycket med sociala medier och kanske främst twitter. För att dra twitter-grejen ett steg längre har vi även valt att skippa att använda vår vanliga adress, istället kör vi en bit.ly adress i ren twitteranda.
Vad tycker du om nya visitkortet?

oktober 2nd, 2009 av Baronen
Den här posten kan tyckas tråkig men skriver den som en försiktigtighetsåtgärd och hoppas ni har förståelse ifall konstiga fel uppstår.
Jag har äntligen tagit tag i saken och flyttat baronen till ett nytt webbhotell. Det var över ett år sedan jag flyttade förra gången, då var det från Proinet och denna gång är det från Loopia. Baronen har legat på Loopia ett tag nu, och enligt min mening har det bara blivit sämre och sämre, långa laddningstider och seg MySQL server.
Idag har jag alltså flyttat från Loopia och till Oderland, enligt mig det bästa svenska webbhotellet idag. Jag klarade av flytten utan större problem. Jag har dock inte hunnit kontrollera allt än, till exempel mina demos och källkodsfiler, kan hända att någon länk är trasig.
Jag skulle uppskatta att du kontaktar mig om du hittar något som verkar konstigt eller eh fungerande.
oktober 1st, 2009 av Baronen
Jag tänkte bara tipsa om ett plugin till wordpress. Pluginet heter WpTouch och gör att din wordpressblog fungerar klockrent i iPhone.
Det pluginet egentligen gör är att byta tema på din blogg till ett som är Mac-inspirerat och som är anpassat för iPhone. Eftersom det är ett helt eget tema så kommer det fungera till alla wordpressbloggar oavsett tema.
Så här ser baronen ut med det nya pluginet/temat. Jag tycker det fungerar bra även om det inte följer baronens grafiska profil.

Ladda ner pluginet Wptouch här.
september 17th, 2009 av Baronen
Nu var det ett tag sedan jag skrev nåt här på baronen, så jag tyckte det var dags nu. I denna post tänkte jag bara tipsa om PHP-funktionen parse_ini_file, som tillåter dig att enkelt använda en konfigurationsfil i form av en .ini.
Vi börjar med att skapa settings.ini där vi ska spara lite information. I denna fil har vi lagt till två sektioner, site och database, dessa innehåller sedan olika värden.
[site]
version = 0.1
develop = true
[database]
host = localhost
username = root
password = root
table = site
För att sedan läsa ut inställningarna använder vi alltså funktionen parse_ini_file. Denna funktion returnerar en eller flerdimensionella arrayer beroende på parametrar.
$iniFile = parse_ini_file('settings.ini', true);
Som andra inparameter i funktionen skickar vi med true, detta för att få med alla sektioner i INI-filen. Om vi nu kollar vad $iniFile innehåller ser vi följande.

Vi kan nu använda denna information som en vanlig array, där vi kan hämta ut version, databasanvändare med mera.
Här är två små exempel på hur man kan använda detta.
if($iniFile['site']['develop']) {
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
}
echo "Du använder just nu version: " . $iniFile['site']['version'];
Svårare än så är det inte att använda sig av en INI-fil för att spara inställningar. Detta är bara ett väldigt enkelt exempel också, man bör har en egen klass som sköter detta på ett bättre sätt, samt använda Singleton-mönstret.
Värt att tänka på är att lägga INI-filen utanför “www-mappen”, detta för att inga obehöriga ska kunna öppna och läsa filen, kan bli så dumt om man sparar databasuppgifter och annan känslig data.
Vill du veta mer om parse_ini funktionen rekommenderar jag den officiella dokumentationen.
augusti 31st, 2009 av Baronen
I och med PHP 5+ och stödet för objekt finns det något som kallas Method Chaining. Detta innebär att du kan köra flera funktioner/metoder efter varandra.
Ett ganska vanligt förekommande sätt att använda objekt på är följande.
$userObj = new User();
$userObj->setUsername('baronen');
$userObj->setEmail('mail@mail.com');
$userObj->RegisterUser();
Här skapar vi ett nytt User objekt, sedan anropar vi två set-funktioner för att sedan köra funktionen RegisterUser.
Använd Method Chaining
Man behöver inte göra stora ändringar för att skapa metodkedjor. Jag har här skapat en väldigt enkelt User-klass som har två set funktioner och en funktion för att skriva ut egenskaperna.
class User
{
private $username;
private $email;
public function setEmail($email) {
$this->email = $email;
return $this;
}
public function setUsername($username) {
$this->username = $username;
return $this;
}
public function RegisterUser() {
echo "Register user with email <strong>" . $this->email . "</strong>";
echo " and username <strong>" . $this->username . "</strong>";
}
}
Den ända skillnaden från en “vanlig” klass är att set-funktionerna returnerar hela objektet, detta för att kunna bygga på med fler funktioner på följande sätt.
$userObj = new User();
$userObj->setEmail('baronen@mail.org')->setUsername('baronen')->RegisterUser();
Resultatet blir i detta fall följande:
Register user with email baronen@mail.org and username baronen
Svårare än så är det inte att använda sig av “Method Chaining”.
Resultat
Se demo eller Ladda ner källkod här.