söndag, mars 25, 2012

Ett år med Volvo V70 -01

Nu har vi ägt vår bil i ett år. Det har varit ett spännande år inte helt utan överraskningar men inget vi inte tagit oss igenom. Om jag vetat då vad jag vet nu hade jag antagligen försökt pruta något på bilen, exempelvis spjällhuset som behövde åtgärdas och som är ett vanligt problem med den här årsmodellen och som bilförsäljaren troligen var väl medveten om. Det största bakslaget var i vintras när bilen inte ville starta i minus 20 grader på grund av att batteriet laddats ur. Största överraskningen var när vi mötte de där bäddmadrasserna som vi mötte på E18. Annars har det mest varit en skön känsla att kunna åka när vi vill och vart vi vill, slippa släpa matkassarna på bussen eller sitta i ett försenat SJ tåg med bristfällig information. Jag kommer nog inte att klara mig utan bil nu när jag vet hur smidigt det är.

I diagrammet ovan kan man se att det mesta av pengarna vi lagt på vårt bilägande gått till service, ca 35000kr, vilket man kan tycka är en ganska stor summa med tanke på att bilen kostade 65000kr i inköp men då ingår exempelvis kamremsbyte som är en av de största posterna för den här bilen. Vi har även valt att inte göra all service själva och då blir det förstås dyrare. I service ingår även nya vinter och sommardäck inklusive byte och balansering (totalt ca 9500kr). Nu idag bytte jag samtliga bromsskivor, bromsbelägg och bromsbackar på egen hand och sparade ca 4000kr i arbetskostnad så det hade kunnat vara mer pengar ändå. Och det här kan knappast ses som ett normalår med den här typen av bil, jag gissar att servicekostnaden kommer att ligga på runt 8000kr per år de närmaste åren.

fredag, mars 02, 2012

Handbrake and PowerShell

If you, like myself, has got a digital camera with HD capabilities but very limited encoding options then the following script might interest you. It traverses a folder structure scouting for movies to re-encode and then sets the new files creation time to the same as the old one. Then removes the old movie file. For encoding it uses Handbrake, a sweet little tool that is easy to use and produces good results.

set-alias hb "C:\Program Files\Handbrake\HandBrakeCLI.exe"
$files = get-childitem "F:\Movies" -recurse -filter *.mov
$log = "C:\log.txt"

foreach ($file in $files) {
    $old = $file.FullName
    $new = $file.FullName.Replace('.MOV','.mp4').Replace('.mov','.mpg4')

    hb -t 1 -c 1 -i "$old" -o "$new" -f mp4 --strict-anamorphic  -e x264 -q 20 --vfr  -a 1 -E faac -B 160 -6 dpl2 -R Auto -D 0 --gain=0 --audio-copy-mask none --audio-fallback ffac3 -x ref=1:weightp=1:subq=2:rc-lookahead=10:trellis=0:8x8dct=0 --verbose=1 2>&1 |
        out-file $log
        
    get-item $new | foreach { $_.CreationTime = $file.CreationTime }
    remove-item $old
}

måndag, februari 27, 2012

TSQL Challenge 76

Här är min lösning av TSQL pussel nummer 76 från Beyond Relational. Pusslet är tydligen inspirerat av Erland Sommarskogs problem från verkligheten. Erland har en väldigt trevlig sida med mycket matnyttig information om SQL Server.

;WITH base AS
(
  SELECT ROW_NUMBER() OVER (ORDER BY AccountNo, InstrumentID, TradeDatesOrder) [TransactionID]
  , ROW_NUMBER() OVER (PARTITION BY AccountNo, InstrumentID ORDER BY AccountNo, InstrumentID) [AccountInstrumentNo]
  , AccountNo, InstrumentID, Qty, TotalQty, TradeDatesOrder
  FROM TC76
)
, rec AS
(
  SELECT TransactionID, AccountInstrumentNo, AccountNo, InstrumentID
  , CASE WHEN TotalQty = 0 THEN CONVERT(BIT,1) ELSE CONVERT(BIT,0) END [NewBlock]
  , CONVERT(INT,1) [BlockNo]
  , CONVERT(INT,1) [RowNoInBlock]
  FROM base 
  WHERE [AccountInstrumentNo] = 1 AND Qty < 0

  UNION ALL

  SELECT b.TransactionID, b.AccountInstrumentNo, b.AccountNo, b.InstrumentID
  , CASE WHEN b.TotalQty = 0 Or b.AccountInstrumentNo = 1 THEN CONVERT(BIT,1) ELSE CONVERT(BIT,0) END [NewBlock]
  , CASE WHEN r.NewBlock = 1 THEN r.BlockNo + 1 ELSE r.BlockNo END [BlockNo]
  , CASE WHEN r.NewBlock = 1 THEN 1 ELSE r.RowNoInBlock + 1 END [RowNoInBlock]
  FROM rec r
  INNER JOIN base b ON r.AccountNo = b.AccountNo 
    AND r.InstrumentID = b.InstrumentID 
    AND r.AccountInstrumentNo + 1 = b.AccountInstrumentNo
)
SELECT b.AccountNo, b.InstrumentID, b.Qty, b.TotalQty, 
b.TradeDatesOrder, r.BlockNo, r.RowNoInBlock
FROM rec r
INNER JOIN base b ON r.TransactionID = b.TransactionID
ORDER BY b.AccountNo, b.InstrumentID, b.TradeDatesOrder

lördag, februari 25, 2012

Microsoft SQL Server 2012

Då var det dags igen! En ny version av den programvara som jag arbetar mest med är på väg att släppas, finns idag tillgängligt att ladda ner och testa som en s.k "release candidate" vilket innebär att allt är i princip klart och att man vill låta oss utvecklare provköra de nya funktionerna och hitta eventuella brister. Ett par nyheter i licensmodellen innebär att det nu är tänkt att bli enklare och billigare att jobba med en virtualiserad miljö vilket blir allt vanligare. Det finns ett par åsikter om det här med virtualisering och databaser som jag inte kommer att gå in närmare på nu. Vi är, oavsett vad det betyder för just DBMS, på väg mot en servermiljö där allt fler satsar på virtualisering för att kanske främst sänka kostnader.

För mig som utvecklare innebär den här nya versionen ett par större förändringar i utvecklingsmiljön som bl.a innebär; lättare att förbereda lyft mellan miljöer och hålla databaser i synk, möjlighet att arbeta offline utan kontakt med databasen (man validerar sina ändringar mot script och en lokal utvecklingsdatabas som liknar .NETs Cassini för webutveckling), en mer fungerande utvecklingsmiljö för SSIS. Listan är lång och gör mig riktigt glad. Det känns kul att få jobba med en produkt som ligger så långt fram och strävar vidare framåt.

Den nya versionen kommer att släppas den 7 mars 2012 i något så fräsigt som ett virtuellt event, läs mer om detta på www.sqlserverlaunch.com. En bra plats att lära sig mer om nyheterna i den nya versionen är Microsofts informationsportal.

fredag, februari 24, 2012

Ulf Bilting

En av de första böckerna jag minns som jag hade något direkt utbyte av och som var kopplade till IT skrevs av Jan Skansholm och Ulf Bilting. Boken hette "Vägen till C" och var en något som idag är väldigt ovanligt, en riktigt bra bok på svenska om programspråk. En av de största skillnaderna mellan svenska och de andra (amerikanska böcker) är att de svenska är betydligt mer kompakta och kärnfulla, ett stående skämt är att amerikanska författare får betalt per sida (vilket kanske faktiskt är sanning). Hursomhelst är boken mycket bra.

När jag läste mitt sista år vid KTH här i Stockholm passade jag på att läsa två kvällskurser, en i E-musik och en i designmönster. Den första kursen var intressant men mer lättsam medan den andra var extremt intressant och nyttig för mig som blivande programutvecklare. Det roliga var att det var Ulf som höll i båda kurserna! Nu i efterhand har jag förstått att han även var med att om att på Chalmers ansluta den första IP klienten till vad som senare skulle kallas Internet.

Jag kan inte hitta designmönsterkursen någonstans på nätet så jag gissar att den inte hålls längre, kanske Ulf valt att endast ägna sig åt musik?

tisdag, februari 21, 2012

CRON job to keep OpenWRT 3G connection alive

This is the CRON job that I use to keep the 3G connection on my OpenWRT setup alive. It is probably not the most correct way to accomplish this and I'm eager to hear suggestions on improvements from other users out there. Here goes:

#!/bin/sh
IFCONFIG="/sbin/ifconfig 3g-wan";

ISIT=`$IFCONFIG | grep "UP" | wc -l`;

if test $ISIT -gt 0; then
        if ! ping -q -c 1 -W 10 -I 3g-wan www.sunet.se > /dev/null; then
                #(ifdown wan; ifup wan) &
                /etc/init.d/network3g restart &
        fi
fi

And my crontab looks like this, runs the script every five minutes:

*/5 * * * * /bin/tester.sh

Rut målar

Trots att vädret är dåligt och att det är mörkt ute kan tiden ändå inte stå stilla. Rut gillar att måla så det gör vi ganska ofta. Jag hoppas att hon fortsätter när hon blir äldre. Idag hade vi besök av vår coach i Early Stop studien och pratade sömn, mat och aktiviteter.

torsdag, januari 26, 2012

Några gamla bilder mitt i vintern

Här är ett par lite äldre bilder, en från Hallsberg och övriga från Australien. Det är väl snart dags att söka sig ut och hitta lite ny inspiration men just nu är mörkret lite för... mörkt.

måndag, januari 23, 2012

Snyggast hittills

Är det bara jag eller är inte det här en av de snyggaste cyklar som gjorts? Och med skivbromsar går den nog att använda både sommar och vinter. Behöver bara en pakethållare.

Cykeln är en Giant Escape N7 RB, det finns en liknande (äldre modell gissar jag) till salu på rea hos Cykelexpo som kanske är ännu snyggare.

Det var när jag tittade efter nya fälgar till det lilla renoveringsobjektet som jag sprang på den. Konstigt hur svårt det ska vara att hitta stålfälgar modell äldre. Däck blir nog ett par Schwalbe Delta Cruiser Creme, men det är nog det minsta problemet just nu.