torsdag 30 augusti 2007

Windows Vista SP1

Det gick snabbare än väntat. Snart kommer ServicePack 1 för Windows Vista. Med tanke på allt snack om den enorma säkerheten i Vista och att det skulle dröja ett tag innan vi såg något SP1 så är jag lite förvånad. Men jag har i tidigare inlägg påpekat om vissa buggar i Vista och det finns fler. Förhoppningsvis blir många av dessa åtgärdade i SP1. En av de tunga bitarna i SP1 verkar vara integration av alla Windows Updates som släpps varje tisdag (patch Tuesday, som det så fint kallas).

En annan bit är alla drivrutiner till olika hårdvaror som äntligen kommit sedan Vista släpptes i November-06.
Microsoft ändrade mycket i drivrutinsmodellen för Windows Vista jämfört med tidigare operativsystem. Detta för att öka på stabiliteten på det nya OS:et. Nackdelen var att alla hårdvarutillverkare fick ett mastodont jobb att skriva om drivrutinerna. Men nu har många kommit ikapp och flera av dessa skall ingå i SP1.

Stöd för nya exFAT filsystemet och SD-DMA för snabbare åtkomst till SecureDigital minnen lovas också. Direct 3D 10.1 (måste fär alla gamers) stöd. Allt som allt så är det ett bra ServicePack som väntas med bättre prestanda, säkerhet och tillgänglighet. Min vilda gissning är att SP1 släpps i samband med Windows Server 2008 i Februari 2008. Läs här för mer info om vad som är tänkt att ingå.

fredag 24 augusti 2007

Ultimata tangentbordet

Jag har gått och väntat på att den här killen ska få igång tillverkningen av det jag tycker är det ultimata tangentbordet. Nu verkar det ha skett, dock i liten skala men ändå.
Den ryska killen Artemy Lebedev och hans företag har gjort det. Art Lebedev är en industridesigner med unika ideer.

Tänk er ett tangentbord där varje tangent är en liten OLED skärm på 1 cm och 48x48 pixlar 65k färger, som kan visa unika bilder och animeringar beroende på vilken applikation man jobbar i. Det går även att programmera tangentbordet efter eget tycke. Borta är problemet med att komma ihåg genvägskombinationerna i de program man jobbar med. Eller alla snabbkommandon i spelen. Nu kan man snabbt se en liten bild eller animering som illustrerar dessa olika kommandon.

Kolla det här tangentbordet och fascineras.
Det får Logitech's G15 att likna stenhuggar stilen.
Men ska ni ha ett får ni skynda er att boka.
I slutet av december kommer nästa produktionsbatch om troligtvis 300 enheter att vara klar för leverans (först till kvarn gäller).

Förresten, glömde nämna priset. Håll i er nu... ca 17000 SEK!! Mer än vad många av era spenderat på sin dator. I Sverige kan ni förhandsboka/beställa hos DataNova. Beställ... den som har flest prylar vinner!

onsdag 22 augusti 2007

ClassMate 2 (Stopwatch)

Denna gång ska jag tjata om vikten av att använda rätt klasser till rätt saker. Vi tar klassen StopWatch, som namnet antyder så är det ett tidtagarur. Bra att använda när man vill klocka delar av sin kod eller funktioner som man tror tar för lång tid. Du hittar StopWatch klassen i System.Diagnostics. Det jag sett att många gör när de vill ta tid i sin kod är att spara undan 2 stycken objekt av typen System.DateTime som innehåller DateTime.Now() och sedan räkna ut resultattiden.
T ex så här:

System.DateTime startTime = System.DateTime.Now;
//Do some time consuming stuff here...
System.DateTime stopTime = System.DateTime.Now;
//Calculate the difference.
System.TimeSpan elapsedTimeSpan = stopTime.Subtract(stopTime);
double elapsedSeconds = elapsedTimeSpan.TotalSeconds;


Varför??? Det finns ju en klass som gör allt det där åt dig. Samma exempel med StopWatch klassen.

Stopwatch objStopWatch = new Stopwatch();
objStopWatch.Start();
//Do some time consuming stuff...
objStopWatch.Stop();
double elapsedSeconds = objStopWatch.Elapsed.TotalSeconds;


Ok! Jag vet vad ni tänker nu. Smartass! Det är ju bara 1 kodrad mindre. Jo!! men det är inte det som är poängen. Det sista exemplet är mycket elegantare och tydligare att läsa och förstå. Man ser direkt vart tidtagningen startar och slutar. Man bör göra allt man kan för att skriva kod som inte är "write only". Nu kanske detta exempel inte var så komplicerat, men en annan kanske viktigare punkt. Det skapas bara 2 objekt instanser för GarbageCollectorn att hålla reda på och rensa upp, istället för 4 objekt som i det första exemplet. Färre objekt instanser = snabbare exekvering av kod.

lördag 18 augusti 2007

Skaffat en Apple MacBook Pro

Många av er som känner mig vet vilken stor uppoffring jag har gjort. Nu har jag bytt ut min IBM Thinkpad mot en fet Apple MacBook Pro! Så nu ska jag bara övertyga mig själv att byta OS och gå över till MacOS X också.

fredag 17 augusti 2007

CD-Skivan 25 år idag.

Jag tycker att vi passar på att säga grattis till CD-skivan som fyller 25 år idag 17/8-2007. Eller kanske grattis till de företag som skapade den första specen.

Philips och Sony samarbetade med att ta fram en spec för ett media att lagra musik digitalt på. LP skivans underbara knaster skulle ersättas av något som inte slets med tiden eller adderade någon karaktär till inspelad musik. 1980 var specen klar och fick namnet ”Red Book”. 1982 pressades den första CD-DA (musik) skivan med Alpsymfonin av Richard Strauss som premiärmusik. Detta media kom sen att användas för lagring av data där ISO-9660 var filsystemet som användes. CD-skivorna utvecklades senare till DVD media allteftersom tekniken tillät oss att krympa våglängden på lasern. Vi datormänniskor tackar Philips och Sony för detta. Det skulle varit extremt jobbigt att installera Windows Vista på 2.6 Gb från

1.44 Mb floppy disketter. Förstår ni den stackars it-kille som skulle få byta diskett minst 1805 gånger vid en installation. För att inte tala om vilken grym låda Vista skulle levereras i. Tänk på den ni!! Så än en gång grattis till Philips och Sony och tack så mycket!!!

torsdag 16 augusti 2007

ClassMate 1 (ObservableCollection)

ClassMate är en grej jag testar där jag tänkte ha följande upplägg:
Lite då och då så kommer jag skriva om en klass eller ett namespace i .NET som kanske inte alla är bekanta med. Se det som en liten tips och trix. De flesta sitter och kodar med samma gamla klasser som de alltid använt och gör saker på sitt "gamla invanda" sätt. ovetande om att det kanske finns klasser i .NET som kan underlätta. Klassbiblioteket i .NET är hur stort som helst och växer ständigt. Ingen har full koll på alla klasser.
Det jag tänkte göra är att utforska och försöka förklara vissa av de "okända" klasserna och namespacen.


Vi börjar denna gång med en klass som heter ObservableCollection<T>. Den finns bara i .NET 3.0 (om ni inte använder 3.0 så är det kanske dags nu!?). Ni hittar ObservableCollection<T> i System.Collection.ObjectModel. Glöm inte att lägga till en referens till assemblyn WindowsBase.dll, vilket jag tycker är idiotiskt. Förstår att classen inte kan ligga i mscorlib.dll för att inte bryta versionshanteringen men en ny assembly som kunde hetat System.Collections hade inte varit fel. Men men man kan inte få allt.
ObservableCollection<T> är som ni ser generisk. Det är en avancerad variant av System.Collections.Generic.List<T>.
Det som finns i ObservableCollection<T> men inte i List<T> är stöd för eventhantering. När ObservableCollection<T> förändras på något sätt så triggas CollectionChanged eventet som skickar med 2 parametrar; object sender (som vanligt) och
System.Collections.Specialized.NotifyCollectionChangedEventArgs e som innehåller all info du behöver veta om vad som är förändrat, gammalt värde och nytt värde etc. Kanon bra för att ha koll på vad som läggs till, tas bort eller förändras i en lista. Jag har tidigare haft behov av en sån klass och då implementerat den genom att implementera IList<T> och lagt till eventhandlers etc. Det blev en klass på ca 700 rader som skall underhållas och debuggas etc. Skönt att ObservableCollection<T> finns nu. Säg till så skickar jag kodexempel.

söndag 12 augusti 2007

Konstig Windows Vista utforskare

Av någon anledning så kunde jag inte längre välja flera filer i utforskaren i Vista. Det bara slutade att fungera, provade alla möjliga varianter via menyerna, Ctrl-A, hålla ner Shift-tangenten samtidigt som man klickar på filer. Inget fungerar. Detta är första gången som jag blivit besviken på Vista. Vad gör man när sånt händer? Jo, man googlar och ser om någon annan har haft liknande problem. Sagt och gjort. Hittade flera som råkat ut för samma. De dom löste det var att med ta bort "Bags" och "BagsMRU" i registret under HKCU/Software/Microsoft/Windows/Shell.
Jag gjorde det men det hjälpte inte. Så nu börjar jag bli lite arg. Jag tog saken i egna händer och började analysera vad "Bags" används till och såg då att det finns på flera ställen i registret. Den som skall raderas är i HKCU/Software/Classes/Local Settings/Microsoft/Windows/Shell. Då fungerar det att välja fler filer igen. Dessvärre förlorar man alla inställningar man gjort i olika mappar som avser hur filer skall presenteras. Placeringen av dina ikoner på skrivbordet kommer också att ryka. Det är sånt som "Bags" används till. Men så är det, man vinner och förlorar alltid. Det jag fortfarande undrar är varför det slutade fungera. Konstigt.

lördag 11 augusti 2007

Välkommen till ThinAir Software (RMConsult)

Hej och välkommen till min blog om programutveckling och annat relaterat till programmering och systemdesign. Här kommer jag att skriva lite om mycket, så förvänta er inte någon specifik inriktning utan mer allmänt om programmering och teknik. Det kan vara jobbrelaterat men även roliga prylar etc. Skriver så ofta jag hinner och har något som jag känner att jag vill dela med mig. Välkommnar alla kommentarer och kritik. Just go for it!!