30 dagars upptid!

Publicerat: 2013-05-20 18:51:26 | Kategori: Uppdateringar

Ett av mina mål med att ha en egen webbserver i hemmet var att ha en lång upptid som kunde mäta sig med mer professionella lösningar. En månad är faktiskt inte speciellt mycket tid då jag inte har lagt märke till att jag har en dator som ständigt är igång, men det är nog också det som är poängen! Nästa mål blir ett år, så jag hoppas att det inte blir några strömavbrott den närmaste tiden. smiley

Det kommer att komma fler artiklar inom en snar framtid, men jag har varit upptagen med annat ett tag (om man nu kan räkna att spela Euro Truck Simulator 2 som att vara upptagen)...


Kommentera

Euro Truck Simulator 2

Publicerat: 2013-05-14 16:23:04 | Kategori: Spel & Program

Som jag nämnde i förra inlägget hade jag mycket svårt att finna tiden att skriva här i och med att jag spelade Euro Truck Simulator 2. För att kombinera det nöjet med hraffe.se så tänkte jag fördjupa mig lite på vad egentligen Euro Truck Simulator 2 är och vad jag tycker om det.

Det första spelet i serien kom ut för tre år sedan och handlar så vitt jag vet om precis samma sak fast inte lika raffinerat. Jag har tyvärr inte spelat det, men jag spelar i allmänhet väldigt lite så det är inte så konstigt att jag missar några spel här och där. Uppföljaren å andra sidan började jag spela för ett par veckor sedan. Det kom ut förra året, men med tanke på att det är aningen nischat så tog det ett tag för mig att upptäcka spelet.

Vad går då Euro Truck Simulator 2 ut på? Det är faktiskt så pass enkelt att det endast handlar om att köra lastbil från punkt A till punkt B med diverse gods. Man kör omkring i större delen av Europa, men tyvärr verkar skandinavien saknas. Å andra sidan finns det lastbilar både av märket Volvo och Skania, så helt osvenskt känns det inte.

Man tjänar dessutom pengar på rutterna och efter ett tag så kan man uppgradera sitt garage, köpa lastbilar och anlita medarbetare. För att ha råd kan man antingen köra till fördärv eller ta ett banklån.

Grafiken är faktiskt riktigt vacker och gör det extra roligt att bara köra omkring i lastbilen. Tyvärr är spelet också ganska tungdrivet. Jag kör med ett rejält överklockat GTX 680 och med högsta inställningarna så är det knappt spelbart! Bilderna här är med mina inställningar och spelet går för det mesta i jämna 60 fps förutom i större städer. Utan att ta i så ser spelet förbaskat fint ut ändå!

Något jag däremot märkte ganska fort är att det inte är speciellt skoj att spela ett sånt här spel med tangentbord och mus. Man tappar i princip all känsla och man ledsnar fort. Några dagar efter jag hade börjat spela så körde jag i verkligheten över till Netonnet och köpte en ratt. Riktigt billigt skräp egentligen, men ett bra köp om man endast spelar ett bilspel. Efter ett par dagars trixande med inställningar och även en fysisk reparation av ratten så fungerar den ypperligt. Nu känns det som att det är mitt fel ifall jag inte kan hålla mig på vägen och inte rattens.

Något annat som kan förhöja spelupplevelsen på vägen är musik. Man kan antingen lyssna på Internetradio eller spela musik från hårddisken. Det känns lite som när man är ute och kör i verkligheten. Ibland så lyssnar man ju på CD, MP3 eller Spotify, men det händer ju att man bara slår på en radiokanal om man inte ids klura ut något speciellt man vill lyssna på.

Trafiken i Euro Truck Simulator är relativt verklighetstrogen och för det mesta känns det verkligen som riktig trafik. Man kommer på sig själv att använda blinkers och slå av hellysena vid möte på natten. Medtrafikanterna kan däremot också vara riktigt knäppa ibland, precis som riktiga bilister. Ibland är det någon bil som väljer att byta fil precis när man håller på att köra om den och så smäller det. Annars är det oftast saker som att de kan vara rejält långsamma på att köra ut i korsningar som stör mig. Det leder även till att det ibland bildas ganska rejäla köer. Jag minns att det en gång hände att jag faktiskt stod i en bilkö i över en halvtimma tills jag till slut blev less och körde förbi på vägrenen.

Fysiken är även den bra och lastbilen känns riktigt tung. Har man inte koll på svängarna  så är det lätt hänt att man välter och får kalla på bärgare. Det blir även svårare att kontrollera lastbilen när det regnar och man kan tappa kontrollen över lastbilen om man kör för fort i kurvor. Däremot är det synd att man inte kan se skador på lastbilen eller andra bilar samt att krockar aldrig är livshotande på något vis. Krockar man så tar lastbilen skada och motorfel kan förekomma om man inte reparerar lastbilen, men den ser alltid splitterny ut.

Man kan även bli trött när man är ute och kör, lastbilsföraren i spelet kan börja gäspa och blunda om man inte vilar. Tack och lov går det att stänga av, det kan bli lite tröttsamt om man själv har svårt att hålla ögonen öppna. Sist men inte minst så måste man tänka på att tanka lastbilen så att man inte blir stående mitt ute i ingenstans.

Euro Truck Simulator 2 är alltså ett riktigt grymt spel eller kanske snarare simulator. Det är så att jag funderar på att skaffa fler skärmar så att man slipper kolla runt med musen när man ska svänga ut i en korsning. Klart beroendeframkallande och värt pengarna, både spelet och en ratt det vill säga!


Kommentera

Lite om webbservern

Publicerat: 2013-05-08 23:35:22 | Kategori: Prylar & Hårdvara

Nu när jag har kommit så pass långt med hraffe.se kanske jag borde börja skriva lite om vad som driver hemsidan. Utan en Raspberry PI hade jag aldrig börjat jobba med hemsidan om jag ska vara ärlig. Jag köpte den på måfå mer eller mindre och hade ingen aning om vad jag skulle ha den till. Jag använde den under första dagen som surfdator vilket den är alldeles för långsam för. Under andra dagen blev det en mediaspelare vilket inte heller var något att hurra över, speciellt eftersom jag redan har en HTPC som i allvarlighetens namn är hundratals gånger snabbare. Tredje förslaget blev en webbserver och efter det har jag inte tittat tillbaka ens en sekund.

Det första jag gjorde den dagen jag jag hämtade ut min Raspberry PI från posten var att limma fast kylflänsar. Jag önskar att jag kunde ha varit lite speciell och använt kylflänsar menade för grafikkort eller liknande, men det fick bli de officiella Raspberry PI kylflänsarna då jag inte hade några andra att sätta fast. De fästes hur som helst med en hemmamixtrad blandning av epoxy-lim och kylpasta. Visst går det att köpa termisk tejp eller färdigblandat lim för kylflänsar, men det är ju inte alls så roligt som att göra något eget.

Klart man ska ha en låda också. Utan att ens ha testat temperaturerna så utsatte jag min nyköpta låda för borrmaskinen. Jag hade fått höra att CPU:n kunde bli ganska varm i en stängd låda varav jag nästan kände mig tvungen. Det blev inte speciellt fint i slutändan tyvärr, men det spelar inte så stor roll. Jag ser i princip aldrig ovansidan av lådan hur som helst.

Hur fungerar då servern så här långt? Jag skulle inte kunna vara nöjdare med resultatet. En så pass liten och långsam maskin känns otroligt snabb som en webbserver. Servern är fasligt stabil och responsiv för att vara fullkomligt ärlig! Som jag skrev i ett tidigare inlägg så har jag aldrig varit med om sådan här prestanda innan på ett webbhotell eller via Xampp lokalt i Windows. Den enda akilleshälen är väldigt stora, dåligt kodade eller avancerade hemsidor kan vara långsamma. Det känns ofantligt söligt att köra PHPMyAdmin till exempel. Här är i vilket fall resultatet av serverns hastighet taget från Pingdom Tools.


Kommentera

Allmänt om kylning

Publicerat: 2013-05-04 23:22:27 | Kategori: Prylar & Hårdvara

Något jag har varit grymt nyfiken på de senaste åren är kylning av datorer. Jag har pysslat grymt mycket med både luft- och vattenkylning, men även nu på senaste med passiv kylning. Ett exempel är denna server som är en Raspberry PI som körs helt passivt med endast några små kylflänsar pålimmade. Just för så strömsnåla processorer som den på Raspberry PI fungerar passiv kylning utmärkt. Tyvärr är det så att bättre prestanda än så kräver mer ström som i sin tur utvecklar mer värme. När man väl kommer till "riktiga" datorer så behövs det något kraftfullare än små kylflänsar för att leda bort värmen.

Det som är imponerande är däremot att det sker mycket i utvecklingen gällande strömbesparing. Processorerna idag drar faktiskt inte speciellt mycket mer ström än vad de gjorde för 10 eller till och med 15 år sedan, men prestandan är så många gånger bättre att det är helt omöjligt att jämföra dem.

I och med att vi faktiskt behöver mycket av prestandan idag så skapas det inte så hemskt många passiva lösningar. De flesta bärbara datorer, spelkonsoler och såklart stationära datorer har en bunt fläktar som låter och oftast går de i så höga varvtal att de irriterar användaren, iaf de som är lika känsliga som jag är. Det är inte så konstigt egentligen att det krävs sådana åtgärder av tillverkarna. Skulle t ex den nya spelkonsolen Wii U ha utvecklats för att vara passiv med samma komponenter så skulle enheten vara mer än dubbelt så stor och kosta nästan dubbelt så mycket.

 

I mitt fall så har jag alltid försökt att hålla så låg ljudnivå och låga temperaturer som möjligt när det kommer till mina egna datorer, men det kostar ofta en del. I början handlade det om att byta ut fläktarna som följde med chassit och sen blev det att byta till större kylanordningar både för processor och grafikkort.

Mot slutet av kampen mot värmeutvecklingen med luftkylning så hade jag en så pass stor processorkylare att det knappt gick att få på chassisidan, men det var ganska tyst åtminstone. Däremot tog det ofantligt mycket plats som nämnt och det gjorde att det vart mycket svårt att komma åt i chassit.

 

 

Senare började jag experimentera med andra kyllösningar. Även om det egentligen inte var fullt nödvändigt i mitt fall så var det svårt att hålla sig borta från att testa. Vattenkylning var ett roligt projekt bland annat. Även om man slipper gigantiska kylare så blev datorn större och större för att få plats med allt. Radiatorer kräver mycket utrymme och jag fick uppgradera chassin ett par gånger för att bli nöjd.

I skrivande stund så sitter jag vid en dator som har två gigantiska 360 mm radiatorer, vardera med tre fläktar monterade för att leda bort värmen. Även om temperaturerna är låga under belastning så är det inte överdrivet tyst ändå.

 

Senaste året så började jag att jobba med en passiv dator att ha som HTPC till TV:n. Det var ett ganska påkostat projekt för att inte vara ett prestandamonster, men så besatt är jag. Som chassi använde jag en låda som är byggt i rent aluminium och agerar som både chassi och kylare så att säga. Såna här lösningar fungerar jättebra om man inte har komponenter som utvecklar överdrivet mycket värme. En så enkel sak som en hårddisk kan vara gränsen vilket syns på bilden till vänster. Jag fick montera kylflänsar direkt på hårddisken och fick ge upp drömmen om en helt passiv dator genom att montera en fläkt.

 

Det gör i och för sig inte speciellt mycket då fläkten går väldigt långsamt och faktiskt inte kan höras om man inte håller örat direkt mot chassit, men ändå inte en passivt kyld dator.

Vad ville jag egentligen säga med denna artikel? Att prestanda låter är väl en kortfattad sammanfattning. Något som däremot är väldigt positivt är att ypperligt strömsnåla processorer är under utveckling. ARM som används till mobiltelefoner (och Raspberry PI) körs helt passivt och har ändå relativt bra prestanda idag. Om några år skulle det inte förvåna mig ifall dessa processorer skulle säljas separat och gå att installera på moderkort till stationära datorer. det hade kunnat vara ett alternativ till dagens tjutande och skrikande datorer.


Kommentera

SQL-kod för arkiv

Publicerat: 2013-05-04 21:56:17 | Kategori: PHP & SQL

Kvällens stora uppdatering var som sagt ett bloggarkiv. I min databas så läggs en tidsstämpel till automatiskt när jag skrivit ett inlägg. Det är i "CURRENT_TIMESTAMP" som är formaterat som "0000-00-00 00:00:00". Det är väldigt passande för att visa i inlägg, men är inte sådär jätteanpassat för ett arkiv. Utmaningen var alltså att konvertera om tidsstämpeln till månad och år.

Det finns många sätt att lösa det med, men i mitt fall valde jag att göra det endast med sql. För att visa månad och år i menyn användes följande:

$sql = "SELECT DISTINCT DATE_FORMAT(datum, '%M %Y') AS 'month', DATE_FORMAT(datum, '%M-%Y') AS 'month2' FROM posts ORDER BY datum DESC";

För att översätta till svenska blir det ungefär "välj unika datum formaterade i månad och år och kalla det för månad". I princip gör den samma sak två gånger just nu. En gång för att visa och en gång för att skapa en länk. Det hade varit bättre att lägga till ett streck med en str_replace i php, men jag ville bara få det löst så fort som möjligt. :)

För att visa inläggen för den aktuella månaden och året så krävs det ytterligare en kodsnutt:

$sql = "SELECT * FROM posts WHERE DATE_FORMAT(datum, '%M-%Y') = '$search_archive' ORDER BY datum DESC";

Här väljer databasen ut månad-år och jämför det med $search_archive som i detta fallet är $_GET-värdet från länken som skapades högre upp.

 

Uppdatering 2013-05-04
Något som slog mig häromdagen är att MySQL faktiskt visar månaderna på engelska vilket är ett litet problem om man har en hemsida på svenska vilket är fallet här. Ett enkelt sätt att lösa detta på är att sätta upp en array och översätta med preg_replace. Först och främst så behöver vi inte översätta alla månader, endast hälften skiljer sig. Vi sätter först upp en enkel array och skriver de engelska namnen på månaderna.

$patterns = array('/January/', '/February/', '/March/', '/May/', '/June/', '/July/', '/October/'); 

Efter detta så måste vi skapa ännu en array med de svenska namnen.

$replacements = array('Januari', 'Februari', 'Mars', 'Maj', 'Juni', 'Juli', 'Oktober'); 

Nu gäller det bara att koppla ihop dem med en preg_replace.

$timestamp2 = preg_replace($patterns, $replacements, $timestamp); 

$timestamp i detta fall är vad som tas ut ur databasen och formaterats om med date_format. Om inte preg_replace hittar ett ord från $patterns så kommer det inte att ändras, t ex "april". Om däremot ordet i $patterns skulle hittas så letar preg_replace upp översättningen i $replacements.

Det här fungerar såklart inte bara för månader, även dagar eller i princip vad som helst kan översättas på samma sätt.


Kommentera

CM10.1 Nightly uppdatering

Publicerat: 2013-05-01 20:50:25 | Kategori: Android

Jag tänkte att det skulle vara trevligt att göra en lite annorlunda artikel som inte har med webbservern att göra, men ändå är mysigt nördig så att säga. smiley Jag är inte bara intresserad av Raspberry PI, även mobiltelefoner är riktigt roliga att leka med. I skrivande stund så är Google Nexus 4 den enda telefonen jag vill röra i och jag kommer sannolikt hålla mig kvar vid Nexus så länge som möjligt. I mitt fall så rootade jag telefonen direkt efter inköp eftersom att jag tycker att endast Cyanogenmod 10.1 är bra nog för daglig använding.

Ett problem (och en välsingnelse) är däremot att det kommer ut en ny så kallad nightly i princip varje dag. Jag tycker om att uppdatera så ofta som möjligt, men det är inte så smidigt när man varje gång måste installera om kernelen och ta bort oönskade CM- och Google-appar. Detta kunde ta uppemot 30 minuter vilket är mycket tid att lägga när man uppdaterar så ofta som jag gör. Det jag gjorde var att ta hjälp av några appar för att göra processen enklare. Det tar inte 30 minuter längre, snarare fem minuter på sin höjd!

Det första som krävs är en smidig liten gratisapp som heter CyanDelta Updater. Fördelen med CyanDelta är att man inte behöver ladda hem ett fullstort system varje gång man vill installera en uppdatering, endast uppdateringen tas alltså hem. Det andra som är bra med CyanDelta är att det går att installera flera filer på samma gång. Inte nog med att man vill installera just uppdateringen, det är ju klart att man vill ha Google Apps också. I mitt fall så installerar jag även en hemgjord ZIP-fil som raderar, enligt mig, oönskade appar.

Vi kan stanna lite på ämnet oönskade appar. Det jag menar med det är såklart inte skadliga eller farliga appar, snarare appar som jag helt enkelt inte har någon nytta av. Mitt hemmagjorda skript tar bort allt det jag inte vill ha så jag slipper att göra det manuellt i efterhand. Såhär ser skriptet ut:

run_program("/sbin/busybox", "mount", "/system");
delete("/system/app/Browser.apk", "/system/app/CellBroadcastReceiver.apk", "/system/app/CMFileManager.apk", "/system/app/CMUpdater.apk", "/system/app/Term.apk", "/system/app/VideoEditor.apk", "/system/app/Email2.apk", "/system/app/Exchange2.apk", "/system/app/Talk.apk", "/system/app/Talkback.apk");
run_program("/sbin/busybox", "umount", "/system");

 Det är bara att baka in i en valfri ZIP-fil och byta ut "Updater-Script" till detta skriptet.

Bilden till vänster visar att nya CM 10.1, Gapps och mitt hemmagjorda skript ska installeras. Som nämnt går detta att specificera enkelt i CyanDelta. När man godkänt frågerutan så startar telefonen om och installerar allt via recovery, i mitt fall TeamWin recovery. Tyvärr är det så illa att man inte kan använda Clockworkmod recovery som andars är min favorit. De har stängt ner möjligheten för andra appar att kontakta det så man kan endast använda deras egna Rom Manager för att installera uppdateringar vilket varken är gratis eller lika smidigt som CyanDelta.

När telefonen har startat om så kommer en notifikation upp från CyanDelta som frågar om det kan få radera den gamla installationsfilen. Detta är helt ok att godkänna, skulle det vara något klurigt med installationen så går det för det ofta att fixa på annat vis.

Nästa steg, som jag föredrar att göra, är att integrera Sys Dalvik. Detta odexerar alla filerna i systemet och bör göra allting en liten del snabbare. För att göra detta måste man ha den betalda varianten av Titanium Backup. Visst, det kostar 40 kronor, men det är nästan en nödvändig app om man gillar att gå under huven på telefonen så att säga.

Nu är det bara en sak kvar att göra innan jag är klar med uppdateringen. I mitt tycke så är det nästan ett krav att köra med en lite bättre kernel än den som följer med Cyanogenmod. Jag tycker personligen att Franco Kernel är helt underbar och kör alltid med de senaste nightly-versionerna. Det släpps ofta uppdateringar för även kernelen så det är inte så smidigt att installera via CyanDelta. Istället använder jag den betalda versionen av appen Franco Kernel Updater. Det kostar dryga 30 kronor, men man får mycket för pengarna. Via appen kan man uppdatera till den senaste versionen av Franco Kernel. Man kan även överklocka, undervolta, ställa in färgerna på skärmen och en hel del annat.

Även om det i princip är klart nu så vill jag gärna undervolta lite också. Det är inte nödvändigt, men kan spara lite batteri i slutändan att göra det. Appen för Franco Kernel håller kvar alla inställningar förutom just spänningen efter att man installerat en nyare kernel. Det är å andra sidan väldigt enkelt. Till höger syns mina inställningar.

Detta är vad jag gör varje gång jag uppdaterar Cyanogenmod 10.1. Det tar inte så mycket tid och gör så att jag alltid hänger med i utvecklingen. Det enda som saknas som jag skulle vilja ha med i CyanDelta är möjligheten att göra en backup samtidigt som man installerar en ny version av CM 10.1. Det finns ännu en gratisapp som jag ibland använder som heter Auto Flasher som man kan använda till detta, men det gör det hela lite mindre smidigt. Då måste man först ladda ner uppdateringen via CyanDelta och sedan installera via Auto Flasher. Det gjorde jag inte idag, men kanske nästa vecka. wink


Kommentera