måndag, april 30, 2012

Tvåbarnsförälder

Ja nu är snart Valter två månader och Rut två år så då är det väl dags att sammanfatta den nya familjesituationen. Jag minns inte riktigt hur den var innan Valter men vad jag kommer ihåg var Rut lugnare och mer lätthanterlig, hon lyssnade på -och gjorde, som hon blivit tillsagd. Den Rut finns inte mer. Nu har en ny person tagit hennes plats som nästan aldrig lyssnar eller gör som hon blir tillsagd, trotsig från morgon till kväll. Men det är mysigt... Och Valter? Ja han ligger i ett hörn och sover.

söndag, april 29, 2012

Husköp

Nu är det nästan så klart som det kan bli innan inflyttningen. Vi har slagit till på ett radhus. Efter en ombesiktning av ett badrum så känns det nu väldigt definitivt att vi kommer att flytta in den 17 juli. Vi har tittat runt lite här i området, mycket att tänka på med dagis och annat nuförtiden, och kommit fram till att friliggande villa vore kul men priserna är en aningens höga, milt uttryckt, så friköpt radhus hamnade som nummer två på listan. Det började bli dags att hitta ett ställe med trädgård att rasta barnen i och när nu det här huset dök upp på Hemnet och kändes så rätt, då lade vi ett bud som motsvarade acceptpriset och inga andra bud kom in och säljaren accepterade vårt bud. Då fick vi lite annat att tänka på med försäljning av vår lägenhet, mycket att pyssla med.

Köpet har inte varit helt smärtfritt, först var det lite nervöst att sälja av fonder och aktier, stänga fasträntekonton. Börsen rör sig som bekant en del från dag till dag. Sedan var det vår besiktningsman som vi anlitade från Svensk Kvalitetssäkring som bl.a. mätte med fuktmätare på klinkersgolvet i ett av badrummen och i samma rum hittade tejp i golvbrunnen. Han menade på att det var fukt, vi blev oroliga och bad honom förtydliga och fick ett svar så nära "fuktskada" man kan komma. Men se det här med besiktning av våtutrymmen är inte så enkelt att man kan mäta från insidan och enkelt avgöra vad som är fuktskada eller inte. Fuktspärren, som är barriären mellan klinker/kakel och den inre gipsskivan i väggen, är a och o i dessa sammanhang. Om man vet att det är hål i fuktspärren så behöver det åtgärdas, varken det redan finns en fuktskada eller inte (snart fuktskada). Och hur vet man det? Jo man kan antingen ta hål i golv/vägg och titta och eller mäta, då har man förstås sumpat hela idén med fuktspärren och är tvungen att renova badrummet men det kan vara intressant om det finns en nära nog bekräftad fuktskada och att man är intresserad av att avgöra omfattningen. Eller mäta från utsidan, i väggen finns nämligen två gipsskivor och om man tar hål i den yttre (från badrummet sett) och mäter/luktar/tittar där så kan man avgöra om det finns hål eftersom då angrips reglarna som bär upp väggen av mögel. Säljaren var mycket tillmötesgående och hjälpte till med att öppna ett inspektionshål så att vi kunde lukta och känna och sedan tog hon dit sitt hemförsäkringsbolags fuktspecialist som inte hittade någon fukt. Och det är viktigt; om man inte med hjälp av någon specialist lyckas dementera den påstådda fuktskadan så kan man få svårt att få ersättning av försäkringsbolaget vid en eventuell framtida fuktskada.

Så nu har vi snart visning av lägenheten och det får avgöra hur stora renoveringsprojekt vi vågar oss på innan året är slut. Det känns iallafall väldigt skönt att få lite mer utrymme och en egen liten trädgård att peta i.

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.