PHP och late static bindings

I PHP 5.3.0 introducerades en fin liten grej som inte fått så jättemycket uppmärksamhet. Late static bindings. 

När du jobbar med klasser för att skapa objekt så får du ofta en situation som ser ut som följande:

<?php
class person{
    static $name = 'Unidentified person';
 
    public static function getName(){
        return self::$name;
    }
 
}
 
class teacher extends person{
    static $name ="Teacher"; 
 
}
 
echo teacher::getName();?>

Vilket kommer att ge

Unidentified person

När man egentligen vill ha variabeln från childklassen och inte parentklassen. Det är här late static bindings kommer in i bilden.

Om man då byter ut raden return self::$name till return static::$name så gör man alltså en late static binding och php förstår att det är variabeln från childklassen du vill returnera och inte den från parentklassen(där funktionen getName ligger). Koden blir alltså så här:

<?php
class person{
    static $name = 'Unidentified person';
 
    public static function getName(){
        return static::$name;
    }
 
}
 
class teacher extends person{
    static $name ="Teacher"; 
 
}
 
echo teacher::getName();?>

Vilket kommer att ge

Teacher

Och helt plötsligt blev även statiska funktioner och variabler så mycket enklare att jobba med genom klasser och arv. Kör hårt!


Ett farväl av en gammal vän

Max bodde inte här där jag bodde när jag växte upp. Max hamburgare alltså.  Då fanns bara Mc Donalds att välja på om man ville ha snabbmat. Vi klagade inte, det var ju där man skulle hänga i tonåren. När jag åkte till platser där Max fanns så stannade vi till, de hade goda hamburgare och det gick ganska snabbt att få maten. Det var en fin relation vi hade jag och Max. Om jag kände för att tvinga i mig lite hamburgare så var det vad som gällde.

När jag blev äldre valde jag att bara äta vegetarisk mat. Inga döda djur. Max vegetariska burgare sparkar de andra kedjornas burgare hästlängder och när Max dessutom införskaffade Dill i Dill dippen så var kärleken förseglad. Vi hade det bra jag och Max.

Idag äter jag mycket nyttigare, sällan hamburgare och mycket oftare hemma. Men det händer ibland att familjen åker till Max ändå. För att ibland vill man bara ha mat lite fort när man är på väg från en aktivitet till en annan.
Och så var fallet igår. Efter yoga, på väg ut på sjön för att åka skidor så sa vi att”vi tar bara en lite snabbis på Max så vi fort kommer igång”. Och då mindes jag varför jag sällan gick till Max längre. Först och främst – vi har vuxit i från varandra. Friterad potatis i pinnform smakar inte lika gott som det gjorde för några år sedan. Men det kan man leva med.

Att få vänta i över 20 minuter på att få beställa, trots ingen före i kassan är därimot mindre acceptabelt. Att det sen tar 20 minuter till efter att beställningen är tagen till att någon pratar med mig igen är obeskrivligt. Expresskassan och Drive Through kunderna fick sin mat och kunde äta och lämna stället innan jag eller mina hungriga barn ens fått maten. Och då tänker jag att expresskassan finns väl till för att avlasta kassapersonalen? I går så var det snarare så att kassapersonalen prioriterade dem före oss som stått i kö för att få maten. Men så mindes jag, att gången innan beställde jag på expressautomaten, fick ett kvitto och blev bortglömd, så hugget som stucket. Efter 40 minuter längst fram i kassan där jag EN endaste gång blivit tilltalad förutom i samband med beställning så fick vi maten – då fattades halva vår beställning och jag fick säga till ännu en gång.

Allt det här hade jag kunnat leva med. Men det värsta sveket återstår. De har tagit bort Dill i Dilldippen ur sortimentet. 

Så när snabbmat gick från att vara snabbmat till väntmat och gick från att vara gott till fettigt så skriver jag nu till dig Max – tack för en fin relation – men den är över nu. Det är inte bara du, men inte heller bara jag. Adjö.


Owncloud och smidig kod!

I nördkretsar började det idag pratas mycket om owncloud, en sorts molntjänst där du kan lagra data i molnet för att komma åt från vart du än är. Dropbox tänker du, rätt men fel säger jag. För owncloud är något så smart som en dropboxliknande tjänst – fast där du kan sätta upp owncloud på egen server. (Vilket vi gjorde hos daladevelop såklart gjorde för att prova).

Det är ju en ganska färsk programvara och den har några babysjukdomar – men intresset är enormt. Demot som finns på ownclouds hemsida drog under två dygn 250gb data, vilket är schysst för ett open source projekt som precis sett dagens ljus. Prova gärna! Och om du är en daladevelopare så ska du kunna logga in på vårat eget owncloud med dina serverinloggningsuppgifter.

Och appropå det, så fick jag det inte att fungera när jag först provade. Det gick inte. Jag kollade på deras forum och såg att fler haft samma problem och satte mig sen ner för att försöka lösa problemet. Tack vare att projektet är just öppen källkod så kunde jag gå in i koden och se vad som skulle kunna vara fel. Och snabbt förstod jag att det faktiskt var en bugg i koden. Jag skrev ihop en fix och mailade den till författaren av orginalkoden och sa att han gärna fick använda den.

Och det är själva kärnan av open source, att vi tillsammans kan göra programvara bättre genom att tillsammans hitta felen, testa dem och fixa dem.

 


Stäng av gästinloggning i Ubuntu 11.10

Gör så här för att stänga av gästinloggning i Ubuntu 11.10:

sudo gedit /etc/lightdm/lightdm.conf

och lägg till följande rad:

allow-guest=false

Roota Samsung Galaxy Tab 10.1 samt ta bort förinstallerade program

Jag är väldigt nöjd med min Samsung Galaxy tab 10.1 som jag köpte för några månader sedan. Den gör sitt jobb och jag är glad och lycklig. Tyvärr(iaf för mig) så kommer den med ett helt gäng förinstallerade appar, appar som man får gratis men som kostar pengar att använda. T.ex DN, DI+, Sköna Hem och lite andra tidningsappar. Allt som allt – appar som jag aldrig kommer använda, och om jag vill det – kunna välja själv om jag vill använda eller inte. Dessutom så kommer den med Pulse som är en nyhetsaggregator. Den irriterade mig också då jag inte ville köra den och, den låg och körde hela tiden samt uppdaterade med nya nyheter.

Eftersom det inte gick att ta bort apparna så bestämde jag mig för att roota min platta.

För att roota plattan så följde jag den här guiden: http://forum.xda-developers.com/showthread.php?t=1171089, bläddra ner till RETAIL 3G
[GTP7500] rubriken och följ stegen. Det är väldigt väldigt enkelt men kräver att du har adb från SDKets platform-tools.

När det väl var klart så går det att få root på telefonen och man kan då ta bort appar.

user@linuxbox> adb shell
user@phone>; su
root@phone#  mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

Där ska /dev/block/mtdblock3 bytas ut mot vad /proc/mounts säger är mountat på /system

root@phone cat /proc/mounts

För att sen ta bort en app navigera till /system/app/ och ta bort de valda apparna med kommandot rm


Mycket i pipelinen

Just nu är det väldigt mycket jobb. Därför hinns det inte med att blogga något särskilt. Det är inte så mycket annat som hinns med heller, och då kommer ju tyvärr bloggen efter både familj och sambo.

Samtidigt så är det ju när man jobbar mycket som man också får många ideer till inlägg, när man kommer på bra lösningar och hittar roliga tekniker man vill använda.
Nu en strategisk affärslunch med min sambo. Får passa på.


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. :-)


Börjar längta till Daladevelop nu!

 

Ska lägga lite mer krut på att blogga lite lokalt! Här mina inlägg som handlar om Bjursås.

 

Samsung galaxy tab 10.1

image

image

Jag spontaninhandlade en Samsung galaxy tab 10.1 igår. Kommer mer om den sen, men so far very fuckin good. Jag är jätteimponerad på alla sätt och vis. Fint med en till androidgadget.