söndag, mars 18, 2012
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.
- Erland Sommarskogs hemsida - www.sommarskog.se
- Beskrivning av pusslet hos Beyond Relational - TC76
;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
fiAnd 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.
söndag, januari 22, 2012
Le petit projekt
En kollega ville bli av med en militärcykel och jag tänkte att den kan man nog rusta upp... Så nu står den i förrådet. Tanken är att den ska monteras isär, blästras och lackas för att sedan smörjas och monteras ihop. Förutom en del grejor som behöver bytas. Antingen ska vi ha den som brukscykel inne i stan eller koppla på en cykelkärra och ha här hemma i sommar. Eller både och. Här är en liten bild på cykeln som den ser ut idag.








