Alt om programmering som jeg selv finner interessant. No more, no less. Trolig vil det være mest om webprogrammering, .NET og andre ting jeg jobber med fast.

mandag, juli 24, 2006

Google Copernicus Center

Hvorfor skal vi alltid begrense oss til å arbeide her nede på jorden? Jeg ble veldig interessert da jeg leste Googles planer om et forskningssenter på månen, og sendte derfor følgende søknad til lunarjobs@google.com:

"I read your great plans for a truly inspiring workplace on the moon. Since I am constantly searching new job opportunities, I would like to apply for the position as the sushi chef’s fish-chopper assistant (I work as a programmer here on earth, but I’m a fast learner).

As a descendant of the true discoverers (Norwegians) of America, and as such a proven earthling, I hope you’ll find my application of interest.

Regarding my physical shape…I hope your review stays in the digital domain.


Cheers,
Kenneth Lykkås
Happy programmer"


Jeg fikk et automatisert svar fra Google om at alle stillinger allerede var besatt, men nye søknader ville bli tatt opp til vurdering 1. april 2104.

Informasjon om Google Copernicus Center er å finne på følgende adresse: http://www.google.com/jobs/lunar_job.html

torsdag, juli 20, 2006

Generere dokumentasjon fra assembly og kodekommentarer

NDoc (http://ndoc.sourceforge.net) er et glimrende verktøy for å generere dokumentasjon i ulike formater fra kodekommentarer i C# og VB.NET (sistnevnte med add-in). Men dette gjelder dessverre bare for .NET 1.0 og 1.1. I VS 2005 genereres dokumentasjon til XML for begge programmeringsspråkene, men NDoc -- som er basert på åpen kildekode og høyst frivillig arbeid -- har enda ikke fått støtte for siste utgaven av rammeverket.

Utviklere har derfor "skreket" etter en oppgradering, og svaret har kommet fra uventet hold: Microsoft slipper sitt eget verktøy for generering av dokumentasjon!

Sandcastle er navnet på Microsofts interne verktøy, og det er benyttet til å generere dokumentasjonen for .NET Framework. Sandcastle slippes før utgangen av juli i følge Anand Raman hos Microsoft. Sjekk linken nedenfor for mer informasjon. Klarer nesten ikke å vente, jeg!

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=517576&SiteID=1

Oppdatering 5. august 2006
Ja, nå er SandCastle klar for nedlasting. Jeg må innrømme at jeg forventet et like enkelt brukergrensesnitt som NDoc, men der tok jeg veldig feil. Det er imidlertid en del utviklere som har kastet seg rundt for å lage både GUI'er og skript.

SandCastle July CTP kan lastes ned fra http://www.microsoft.com/downloads/details.aspx?FamilyID=E82EA71D-DA89-42EE-A715-696E3A4873B2&displaylang=en.

Ellers virker dette Add-in-prosjektet for Visual Studio 2005 svært interessant: http://dotnetpret.blogspot.com/2006/08/sandcastle-continued-documentation.html.

tirsdag, juli 18, 2006

Regne ut ny høyde og bredde for miniatyrbilder

Et miniatyrbilde kan genereres fra eksisterende størrelse til en fraksjon, f.eks. en halv ved å dele høyde og bredde på 2. Enkelt. Men hva hvis du har et maksimalt høyde-/breddeforhold å ta hensyn til?

Disse formlene løser problemet greit:

Ny bredde beregnes slik:
ny bredde = bredde * ny høyde / eksisterende høyde

Ny høyde beregnes slik:
ny høyde = høyde * ny bredde / eksisterende bredde

Formlene kan også kombineres for å sørge for at et miniatyrbildet har både en maksbredde og en makshøyde.

I kodeeksemplet nedenfor er maks bredde og høyde 200 piksler. Ny størrelse vil beregnes (til 200 X 150) fra original størrelse (400 X 300).

Dim hoydeEksisterendeBilde As Integer = 400
Dim breddeEksisterendeBilde As Integer = 300
Dim maksBredde As Integer = 200
Dim maksHoyde As Integer = 200

Dim nyBredde As Integer = maksBredde
Dim nyHoyde As Integer = hoydeEksisterendeBilde * nyBredde / breddeEksisterendeBilde
If nyHoyde > maksHoyde Then
nyHoyde = maksHoyde
' beregn bredde siden bildet var for høyt
nyBredde = breddeEksisterendeBilde * nyHoyde / hoydeEksisterendeBilde
End If


Oppdatering
Jeg har siden funnet et eksempel på det samme i "Personal Web Site Starter Kit" som følger med VS 2005. Prosjektet kan også lastes ned fra http://www.asp.net/downloads/starterkits/default.aspx?tabid=62.

fredag, juli 14, 2006

Visual Basic Compiler - irriterende problem

Jeg har en løsning i Visual Studio 2005 som består av et ASP.NET-prosjekt, et klassebibliotek og til slutt (og her tror jeg det skurrer mest) et konsoll-prosjekt for å teste klassebiblioteket.

Dette føltes som en god idè når jeg satte det opp, men det begynte snart å dukke opp en svært irriterende feil som ser slik ut:




Når denne starter slutter den virkelig ikke. Melding popper opp gang på gang og legger seg over alle andre vinduer i Windows. Eneste løsning er å stoppe Visual Studio.

Nei. Konsollprosjektet er trolig årsaken til alle interne uroligheter og stemmes derfor UT. Testkoden skal jeg flytte over i en Code-behind fil i ASP.

torsdag, juli 13, 2006

Krigsgrisene

Jeg lyttet til plata Epic med Faith No More i kveld og fikk et gledelig gjenhør med deres coverversjon av Black Sabbaths War Pigs. Av en eller annen grunn førte dette fingrene mine ned til tastaturet som dunket inn et søk etter "war pigs" på Google. Der fant jeg en side som brukte originalutgaven på en rystende men, etter mitt syn, en helt riktig måte:

http://www.bushflash.com/warpig.html.

NB: Det legges ingen fingre mellom i denne presentasjonen av Irak-krigen!

onsdag, juli 12, 2006

Endelig en film å glede seg til igjen!

Dersom du også gledet deg til filmer som Ringenes Herre, The Matrix, X-men o.l., vil du sikkert like å glede deg til A Scanner Darkly. Kjente skuespillere og ekstremt interessant filmatiske triks der film og tegnefilm blandes sammen...

Sjekk traileren på IMDB: http://www.imdb.com/title/tt0405296/trailers-screenplay-E26723-10-2

Nullstille Identity-felt i SQL Server

Egenskapen Identity brukes ofte på felt som skal være primærnøkkel i en tabell. Den setter automatisk inn en høyere verdi enn forrige ved INSERT-operasjoner. Ved testing av kode som lager rader i tabeller kommer gjerne behovet for å nullstille verdien i slike felt.

I SQL Server gjøres dette med kommandoen dbcc checkident som har følgende syntaks (Takk, Helge!):

dbcc checkident('Tabellnavn', reseed, 0)

Argumentene er navnet på tabellen med identity-feltet som skal startes på nytt, hva som skal gjøres ("så" på nytt), og sist hva den skal begynne på. Settes den til 0 som i eksempelet vil den første verdien som brukes være 1.

Det er flere operasjoner som kan utføres med dbcc. For mer informasjon se MSDN-dokumentasjon: http://msdn2.microsoft.com/en-us/library/ms176057.aspx

Nyttig artikkel om identity-felt generelt: http://www.databasejournal.com/features/mssql/article.php/10894_3307541_1

Kjapp diskusjon om relevante problemer: http://weblogs.sqlteam.com/billg/archive/2003/10/21/337.aspx

Om meg

Bildet mitt
I love music. And computers. And Dostoevsky, too.