Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/mu-plugins/gkphp.php on line 1
Archive for mars, 2011 « Daniel Liljeberg

Arkiv för mars, 2011

Warning: Use of undefined constant archives - assumed 'archives' (this will throw an Error in a future version of PHP) in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: Use of undefined constant page - assumed 'page' (this will throw an Error in a future version of PHP) in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: A non-numeric value encountered in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: A non-numeric value encountered in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32
class="post-163 post type-post status-publish format-standard hentry category-okategoriserade">

Keep an open mind

31 mars, 2011

Idag fick jag en förfrågan av ett par killar på högskolan om att svara på en enkät gällande olika programmeringsspråk, vilka jag använder, hur jag använder dem och även betygsätta språken i olika kategorier så som säkerhet, prestanda etc.

Något som snabbt slog mig var de gamla minnena ifrån studietiden då vi var två läger, C++ och Java. Det ena hade bara ont att säga om det andra. Java supportrarna stoltserade med att “allt fanns färdigt i bibliotek” och C++ anhängarna förklarade att “C++ låter dig göra vad du vill, men kräver att du vet vad du pysslar med”, något som lite underförstått betydde att Java-nissarna inte hade lika bra koll. Det hela var egentligen mest oskyldigt smutskastande mellan två olika inriktningar på en utbildning, men samma läger kunde sedan, och kan till viss del även idag, återfinnas bland anhängare av olika språk eller plattformar.

Jag har dock under mina många år i branschen lärt mig att ha ett öppet sinne. Alla språk som existerar och kontinuerligt används idag gör det för att de funnit en nisch som de passar för. Det betyder inte att alla språk är underbara att jobba i men man bör försöka att inte förblindas av namnet på ett språk utan istället försöka se vad det är man försöker lösa. VAD skall vi göra, och vilket språk passar BÄST för den uppgiften.

C++ fungerade ypperligt till spelutveckling, vilket var det vi satt med under utbildningen. Men jag skulle nog behöva ha otroligt få val till hands innan jag skulle sätta mig ner och koda webutveckling i C++. Inte för att det inte går, för det gör det, utan för att det helt enkelt finns andra språk som lämpar sig bättre för ändamålet.

På samma sätt skulle jag förmodligen hellre välja C för kodning av inbyggda system istället för Visual Basic. Ibland uppstår gråzoner där två språk faktiskt kan fungera i princip lika bra, .Net och PHP för webbutveckling tex. Men istället för att hamna i det ena eller andra lägret och per automatik endast spy galla över det andra alternativet så har jag lärt mig att man får en mycket bättre förståelse om man är öppen för båda språken och försöker hitta deras styrkor och svagheter. Valet av utvecklingsspråk handlar ofta om företagets tidigare investeringar, framtida planer, medarbetares kompetenser, kunders önskemål och tekniska begränsning. Det är inte alltid alla dessa variabler kommer fram till att det är ditt favoritspråk som väljs. Kort och gott, keep an open mind Blinkar

Och till mina gamla Java-nissar från utbildningen, förlåt om ni blev ledsna i ögat…

Flattr this!

Warning: Use of undefined constant archives - assumed 'archives' (this will throw an Error in a future version of PHP) in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: Use of undefined constant page - assumed 'page' (this will throw an Error in a future version of PHP) in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: A non-numeric value encountered in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: A non-numeric value encountered in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32
class="post-156 post type-post status-publish format-standard hentry category-amahi category-scaleo category-windows-home-server">

Efter VAIL FAIL så blev det Amahi

24 mars, 2011

Jag installerade för några månader sedan WHS Vail på min Scaleo. Detta eftersom jag fått en system crash, pga strömavbrott, av min WHS V1 och factory restore inte ville fungera och en ominstallation ifrån grunden ändå var att vänta i och med detta. Dock tog det bara några dagar innan Microsoft släppte ytterliggare en update, men i och med denna kom nyheten om att de övergav Drive Extender (DE). DE är den pooling teknologi som gjort det så lätt att lägga till diskar till WHS och en selling point för många.

Det har debatterats friskt kring detta och prestanda problem, tillsammans med en konsolidering mellan Small Business Server och WHS teamen, har pekats ut som en anledning till att MS ville gå ifrån DE. Man har på senare tid lagt till lite funktionalitet igen rörande att filer läggs på mer än en disk osv, men inget som är lika enkelt som DE när det handlar om att lägga till nya diskar osv. Vill man följa lite av diskussionerna och reaktionerna kring ämnet så finns dessa på

http://windowsteamblog.com/windows/b/windowshomeserver/

För mig så betydde detta att jag stod inför en ominstallation till. Men då bestämde jag mig för att göra något jag länge funderat på. Jag installerade Ubuntu Server på den och installerade allt jag behövde för att få den funktionalitet jag önskade mig. Jag skissade lite på en egen DE funktionalitet för Linux, men i och med detta fick jag höra talas om Greyhole. Den arbetade i precis så som min ursprungliga idé såg ut så jag bestämde mig för att testa. Då läste jag att Grehole installerades som standard med Amahi, “men vad är Amahi” tänkte jag då.

Amahi visade sig vara en i princip komplett Home Server baserad på Fedora 10. Nu heter den Amahi6 och är uppdaterad och körs på Fedora 14. Med Greyhole så får du i princip det du hade med DE och även om en del saker fortfarande måste konfigureras via terminalen så görs det mesta ifrån ett webgränssnitt. Det finns en “AppStore” där färdiga paket av testade program finns för 1-click-installationer. Det kan tex handla om att installera Media-Wiki, uTorrent, Transmission, SpeedTest Mini, DLNA, WordPress, SABnzbd, CouchPotato, Sick Beard,  Squeezebox Server, MythTV Backend, CrashPlan osv, osv, osv.

Nya “Appar” kommer hela tiden och skaran som använder Amahi har nyligen växt en hel del med folk som just övergett WHS. Jag kan inte säga att Amahi är rätt för alla, men jag komemr nog inte gå tillbaka till WHS på mycket länge. Jag har i princip all funktionalitet jag använde mig av i WHS, plus VPN som standard, plus stabiliteten i både filsystem och drift som Linux erbjuder.

Om ni som jag tröttnat lite på MS hantering av WHS så rekommenderar jag er att läsa om Amahi på länken nedan. Frågor om mina erfarenheter med Amahi på våra kära Scaleo’s svarar jag gärna på

https://www.amahi.org

Lite bilder av min Amahi

image

image

image

image

image

Flattr this!

Warning: Use of undefined constant archives - assumed 'archives' (this will throw an Error in a future version of PHP) in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: Use of undefined constant page - assumed 'page' (this will throw an Error in a future version of PHP) in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: A non-numeric value encountered in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32

Warning: A non-numeric value encountered in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/themes/cordobo-green-park-2/archive.php on line 32
class="post-141 post type-post status-publish format-standard hentry category-php">

Överlagra PHP standardfunktioner med hjälp av namespaces

24 mars, 2011

Såg ett webinar om PHP namespaces nydligen. Jag är van med detta ifrån tex C++ så det var inte direkt några nyheter. Men om vi bortser ifrån att ‘\’ valts som separator som det har spytts galla på under lång tid så var en av sakerna de talade varmt om att man i ett namspace kan implementera funktioner med samma namn som standardfunktioner.

Exempelvis

Även om jag länge eftersök möjligheten att överlagring i stil med vad C++ har där du kan överlagra operator+ osv så tycker jag nog att ovanstående bör användas sparsamt. Säg att du har deklarerat en massa klasser i ditt namespace ‘Foo’ och sedan även har denna typ av ‘överlagring’ av ‘str_split’.

Om detta inte är väldigt väl dokumenterat och användaren gjorts uppmärksam på detta så kommer han att förvänta sig att om han förvänta sig att ‘str_split’ fungerar som vanligt. Det kommer den också göra om om du tex inkluderar en fiktiv klass ‘Bar’ som du har i ditt namespace ‘Foo’ med

Men om användaren använder dina klasser mycket kommer de förmodligen att använda ‘use’ istället. Är de lite slarviga kommer de förmodligen att köra en ‘use’ på hela ditt namespace och inte på varje enskild klass. Detta gör nu att ‘str_split’, i de filer som inkluderar ditt namespace, helt plötsligt kör din implementation av ‘str_split’. Så även om jag kan se användningsområden för detta och speciellt så länge man håller koll på vad man gör så ser jag framför mig att det kan skapa förvirring för folk som använder 3:e parts bibliotek.

För att snabbt ‘patcha’ beteenden i PHP så kan detta användas framgångsrikt, men om det är situationer då standardfunktioner i PHP behöver förändras så förefaller det mera logiskt att ‘felet’ ligger i PHP och att PHP bör patchas i källkoden. Om man annars vill ha en ‘str_split’ som splittar på ord så känns det relativt logiskt att istället bara kalla den ‘str_split_words’ eller något liknande. I dagsläget kan jag mest se ‘hack’ som man kan lösa genom att använda sig av denna typ av ‘överlagring’ annars.

Men det återstår väll att de hur detta kommer användas. Vad tycker ni själva eller har ni några bra tips på användningsområden. Lämna gärna en kommentar.

Information om i vilken ordning PHP’s nameresolution arbetar, för att undvika oplanerade problem i er egen kod, hittar ni på följande länk:

http://php.net/manual/en/language.namespaces.rules.php

Flattr this!