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.

onsdag, desember 20, 2006

SQL Server og oppdateringsproblemer med views

Et view er en kompilert visning av data fra en eller flere tabeller, gjerne med både horisontale og vertikale utvalg. Et view kan lages med SELECT * eller spesifisering av felter som skal inngå i visningen.

Normalt når en kjører SELECT * vil en hente ut alle felt fra tabellen(e) spørringen gjelder for. Med et view er det annerledes siden det skal være en fast, alternativ visning av et utvalg data. SQL Server vil derfor ved oppretting av et view med SELECT * hente ut alle feltnavn og benytter disse i visninger siden. Problemet oppstår dersom en legger til et eller flere felt i tabellen view'et er opprettet for -- data blir "plutselig" feilplassert.


Tabellen over inneholder felt med ulike datatyper for å lettere vise problemet. Et view opprettes for tabellen:

Merk at All Columns er valgt og ikke spesifikke felt. Nederst vises dataene i tabellen som forventet.

Så gjør vi en liten endring i tabelldefinisjonen:

Over er det lagt til et nytt felt Felt_Nytt. Det er også satt en standardverdi for feltet slik at problemet med view'et blir lettere å se.

Og her er view'et nå:
Feltnavnene er de samme som når view'et først ble laget, men dataene har blitt forskjøvet. Legg merke til at Felt1 inneholder teksten til det nye feltet foran (som ikke vises). Felt2 har verdien til Felt1 og Felt3 har verdien til Felt2.

Dette problemet oppstår imidlertid ikke når alle feltnavnene spesifiseres i view'et. Det er da mulig å gjøre endringer i tabelldefinisjonen uten at view'et påvirkes (så lenge du ikke sletter et felt, vel og merke).

tirsdag, november 21, 2006

Generatorer for webprogrammerere og -designere

Smashing Magazine har lagt ut en liste over nyttige generatorer for blant annet CSS, HTML, fargesammensetning med mer i følgende artikkel: http://www.smashingmagazine.com/2006/11/09/online-generators/

Anti-Cross Site Scripting Library: Ekstra sikkerhet for webapplikasjoner

Microsoft har laget et bibliotek som kan implementeres i webapplikasjoner for å oppnå høyere sikkerhet. Dette gjøres etter prinsippet "principle of inclusion", dvs. at godkjente tegn får passere slik de er mens andre tegn blir kodet.

Interessant.

http://msdn2.microsoft.com/en-us/security/aa973814.aspx

torsdag, november 02, 2006

Gratis partisjonering av systemdisk med GParted LiveCD

En av laptop'ene mine er en Dell Inspiron 6000. Den ble levert ferdig oppsatt fra produsenten, men dessverre med kun èn partisjon. Laptop'en er ment benyttet til bl.a. musikk, og jeg ville derfor ha en egen installasjon av Windows XP med minst mulig "dill" og optimalisert for lyd.

Jeg satt klar med kredittkortet for å bestille Norton PartitionMagic, men det er noe i det å svi av 450 kroner for et program som brukes svært sjeldent. I steden søkte jeg litt mer rundt på nettet og fant lykken helt gratis.

GParted er et Open Source Linux-basert diskvertøy med lettfattelig grafisk brukergrensesnitt og støtte for å krympe og dele opp partisjoner. Den lar en til og med opprette NTFS-partisjoner. Den gode nyheten (for en Windows-bruker) er at Linux ikke behøver å installeres på maskinen. GParted LiveCD kan lastes ned som et ISO-bilde og brennes rett på CD. Start opp maskinen med denne CD'en i, og en nedskalert Linux-utgave lastes inn og kjøres fra minnet. (Dersom maskinen ikke starter opp fra CD-rom-stasjonen må boot-rekkefølgen endres i BIOS på maskinen)

GParted LiveCD (og andre varianter) kan lastes ned fra http://gparted.sourceforge.net/

Et fint gratis-program for å brenne ISO-bildet til CD er BurnCDCC fra Terabyte Unlimited. Programmet kan lastes ned fra denne siden: http://www.terabyteunlimited.com/utilities.html

onsdag, oktober 18, 2006

Sikker kode - tips fra Microsoft

En artikkel i MSDN Magazine med 8 tips for sikrere kode. Artikkelen er skrevet av Michael Howard - en sikkerhets-spesialist hos Microsoft.

http://msdn.microsoft.com/msdnmag/issues/06/11/SecureHabits/default.aspx

torsdag, oktober 12, 2006

Artikkel om lydgenerering

Lyd og lydbølger er artige greier, og denne artikkelen er interessant lesning for programmere som vil vite litt mer:

Fundamentals of Sound: How to Make Music out of Nothing at All
http://www.codeproject.com/cs/media/CPIAudio.asp

mandag, september 04, 2006

SandCastle Help File Builder...endelig!

Jeg gjorde et søk i dag for å se om det var noen oppdateringer til SandCastle -- Microsofts verktøy for å generere dokumentasjon for kode. Fant en artikkel på www.codeproject.com av en mann ved navn Eric Woodruff. Han har laget et verktøy som ligner på NDoc, men det er i realiteten et brukervennlig overbygg til SandCastle.

SandCastle - August Community Technology Preview (CTP) må lastes ned og installeres først fra http://www.microsoft.com/downloads/details.aspx?FamilyID=E82EA71D-DA89-42EE-A715-696E3A4873B2&displaylang=en.

Installasjonsprogram for Sandcastle Help File Builder kan lastes ned fra http://www.codeproject.com/useritems/SandcastleBuilder.asp.

NB: Jeg fikk ikke programmet til å fungere umiddlerbart. Under Dependencies var jeg nødt til å legge inn stien til .NET Framework. Deretter spyttet den imidlertid ut dokumentasjon som hakka møkk :-)

torsdag, august 24, 2006

Gode ideer som ikke er så gode likevel

I det siste har jeg forsøkt å ha fokus på sikkerhet når jeg programmerer. Jeg mener at vi som er programmerere må sikre koden i alle bauger og kanter for å motvirke angrep. Uheldigvis gikk jeg litt for langt i min iver etter å leve opp til det.

Det syntes som en svært god ide klekket ut av en brilliant mesterhjerne da jeg kodet en webside til å ikke å akseptere direkte kall -- kun ved klikk på lenker under samme domene skulle funksjonaliteten igangsettes. Det uheldige var selvsagt at jeg ikke sjekket grundig nok om ideen lot seg omsette i praksis. Så hva var det jeg hadde gjort og hva ble galt?

I webprogrammering har en tilgang til en rekke variable som sendes med forespørsler fra nettlesere. Den jeg benyttet meg av var URLREFERRER. For å sikre mot lenker fra andre domener kontrollerte jeg at denne inneholdt samme domene som applikasjonen kjørte på. Applikasjonen er forøvrig en butikkløsning og det kom snart undrende spørsmål fra kunder som ikke kunne handle i butikken. Unødvendig å nevne at dette fikk fart på både meg og andre.

Det som skjedde var at kundene hadde brannmurer som filtrerte bort URLREFERRER fra forespørsler, og koden "trodde" dermed at noen hadde forsøkt å få tilgang til siden ved å skrive inn adressen direkte i adresselinjen i en nettleser. Huff!

Moralen i historien må vel bli at fokus på sikkerhet er viktig, men det er like viktig å undersøke at sikkerheten som etableres faktisk ikke ødelegger for vanlige brukere. Jeg bommet stygt på det siste.

(I lukkede løsninger tror jeg imidlertid at denne teknikken kan benyttes som et av flere tiltak. Så det så.)

lørdag, august 05, 2006

Artikkel om sikkerhet i webapplikasjoner

Sikkerhet i webapplikasjoner er et viktig men dessverre lett neglisjerbart tema. Det er ingen heksekunst å lage programmer som er vidåpne for ulike angrep. Dersom en ønsker å utvikle sikre applikasjoner MÅ en lære seg hvilke farer som truer og hva en kan gjøre for å unngå dem.

Følgende lenke er til en artikkel skrevet av Sverre H. Huseby som tar for seg ulike former for angrep med interessante og faktiske eksempler. Artikkelen er et godt utgangspunkt for å utvikle en forståelse for hvilke farer som lurer ”der ute”. Han foreslår at utviklere tar til seg følgende mantra når de utvikler programvare: "All clients are evil". Ingen inndata må tas for gitt. Har du sendt en verdi til klienten, for eksempel en informasjonskapsel eller et skjult felt, så må ikke applikasjonen blindt akseptere verdien når den postes tilbake. Den kan ha blitt endret.

Common Security Problems in the Code of Dynamic Web Applications http://www.webappsec.org/projects/articles/062105.shtml

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

onsdag, juni 28, 2006

Lagring av ConnectionString i ASP .NET

I tidligere ASP-tider kunne det være en god idè å lagre tilkoblingsstrengen for databasetilkobling i Application-objektet. Etter å googlet litt rundt for å sjekke status for dette i .NET fant jeg ut at Application er uegnet for lagring av denne informasjonen. Hvorfor? På grunn av Tracing.

Trace brukes ved debugging og skriver ut bl.a. alle data i Application nederst på websiden som ber om det. Dette kan skrus av og på for hele applikasjonen i Web.Config, men individuelle sider kan også gjøre det uten at det overstyres av innstillingene i Web.Config.

Artikkelen som lenkes til nedenfor anbefaler at en bruker Web.Config eller evt. Machine.Config til dette. Sjekk artikkel på aspalliance.com for mer informasjon. Ganske gammel artikkel. Bør finne flere kilder!

onsdag, april 26, 2006

Robots.txt og søkemotorer

Websider indekseres automatisk for søkemotorer av programmer som blant annet kalles roboter. En kan hinte til disse programmene om indekseringen av et websted.

Robots.txt
Den første muligheten til å hinte til roboter er å sette opp noen regler i en fil som heter robots.txt. Den skal ligge på nettstedets rot.

http://www.dittdomene.com/robots.txt

Filens oppgave er å fortelle robotene hvilke deler av nettstedet som IKKE skal indekseres. Eksempel:

User-agent: *
Disallow: /bin/
Disallow: /Admin/

Hver linje er en egen regel. I eksempelet sier første linje at alle (*) roboter skal lystre reglene på de etterfølgende linjene.

De neste linjene sier at roboter ikke skal indeksere filer i katalogene bin og Admin. I praksis betyr dette at dersom roboten finner en lenke på nettstedet til en fil i en av disse katalogene så skal den ikke følge den ei heller indeksere den.

Det kan lages ulike regler for ulike søkemotorer ved å angi navn på dem istedenfor asterisk (*) etter User-Agent som gjort her. Dersom det lages ulike regler for ulike roboter må disse være først i robots.txt. Årsaken er at en robot leser fra toppen og slutter når den har nok informasjon.

Spesielle regler må settes opp før generelle regler.

SSL


For sikre forbindelser der https-protokollen benyttes skal det være en egen robots.txt fil. Denne bør (trolig!) be roboten om ikke å indeksere filer:

User-agent: *
Disallow: /


Fjerne individuelle websider


Websider kan fjernes fra søkeresultater ved at websider selv har informasjon om at roboter skal overse dem ved å bruke en META-tagg. Eksempelet viser at roboter ikke skal indeksere siden og at de heller ikke skal følge lenker og indeksere dem.


<html>
<head>
<title>Ikke indekser denne siden...</title>
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
</head>
<body>-</body>
</html>


Mer informasjon



http://www.google.com/webmasters/remove.html
Forklaring på tilpassing av nettsted for Google’s robot.

http://www.searchtools.com/
Informasjon om søkemotorer til bruk på nettsteder. Informerer også om håndtering av roboter.

http://www.robotstxt.org/
The Web Robots Pages med informasjon om roboter og ulike søkemotorer.

torsdag, april 20, 2006

Sammenligne versjoner av filer i TortoiseCVS

Å sammenligne filer under versjonskontroll er nyttig, men TortoiseCVS støtter ikke dette direkte. En kan imidlertid fortelle TortoiseCVS hvilket program en vil bruke til dette.

Et gratis verktøy som lar en se ulikheter mellom to filer heter ExamDiff. Programmet kan lastes ned og installeres fra http://www.prestosoft.com/ps.asp?page=edp_examdiff.

Når ExamDiff er installert kan TortoiseCVS settes opp til å bruke det på følgende måte:

  • Klikk Start Alle programmer TortoiseCVS Settings (Eller høyreklikk i Windows utforsker og velg CVS Settings…).
    Klikk arkfanen Tools.
  • Feltet Diff application skal inneholde banen til ExamDiff. Dersom du har norsk operativsystem og installerte ExamDiff til standardplassering, skal banen være C:\Programfiler\ExamDiff\ExamDiff.exe.
  • Det neste feltet er kommandolinje-argumenter som skal sendes til diff-programmet. ExamDiff trenger å vite navn på filene som skal sammenlignes. For at TortoiseCVS skal gi navnet på begge filene til ExamDiff må det stå "%1" "%2" i feltet.

Dersom du har filer under kildekontroll kan du høyreklikke på en av dem og velge CVS History… Merk to versjoner av filen ved å holde CTRL-tasten nede, høyreklikk på dem og velg Diff på hurtigmenyen. TortoiseCVS starter ExamDiff og versjonene sammenlignes visuelt. Nyttig!

Versjonskontroll i Windows med TortoiseCVS

Total kontroll på versjoner av kode er ikke noe alle programmerere er forunt å ha sånn helt av seg selv. Men mangel på versjonskontroll kan få svært kjedelige konsekvenser når endringer overskriver kode som var viktigere enn antatt og den gamle versjonen ikke lenger… fins. Au. Jo da, jeg har opplevd dette.

Dette temaet er viktig for heltidsprogrammerere, men studenter innen informasjonsteknologi bør absolutt også lære dette (”Den skal tidlig krøkes…” osv.).

I det siste har jeg brukt et program for versjonskontroll som heter TortoiseCVS og er under GPL-lisens. Det kan brukes alene eller knyttet opp til et sentralt oppbevaringssted (repository). TortoiseCVS integreres på hurtigmenyen i Windows Utforsker og er enkelt i bruk. Jeg har laget en kjapp steg-for-steg introduksjon til programmet nedenfor slik at det blir enklere å komme i gang.

  • Last ned og installer TortoiseCVS fra http://www.tortoisecvs.org/download.shtml.
  • Lag en mappe på maskinen som skal inneholde endringer (oppbevaringsstedet), for eksempel C:\CVSfiler\
  • Lag en mappe som skal inneholde filene du arbeider med. Test med mappen C:\EtProsjekt\
  • Høyreklikk på arbeidsmappen C:\EtProsjekt, velg CVS Make New Module…
  • Endre Protocol til Locally mounted folder
  • Skriv inn banen til oppbevaringsstedet C:\CVSfiler etter ledeteksten Repository Folder
  • Navn på modulen vises nederst og den er oppkalt etter arbeidsmappen
    Klikk OK.
  • Det kommer opp en meldingsboks som sier There is no CVS repository in this folder. Kryss av for Initialise a new repository here og klikk OK.
  • Hvis du tar en titt i mappen CVSfiler vil du se at det er opprettet to mapper inne i den. Mappen CVSROOT inneholder endringer som er gjort på filer. Mappen EtProsjekt inneholder filene til modulen. (Husk at det er filene i arbeidsmappen du skal arbeide med og ikke filer i denne mappen!)

    Filer kan nå legges til i arbeidsmappen. Disse må manuelt tas med i kildekontroll. Eksempel:

  • Lag en tekstfil som heter test.txt i mappen C:\EtProsjekt. Legg merke til spørsmålstegnet som vises over ikonet. Det indikerer at filen ikke er lagt til i kildekontroll.
  • Høyreklikk på filen og velg CVS Add… Et vindu viser informasjon om fil(er) som skal legges til. Klikk OK i dette vinduet. Spørsmålstegnet er nå erstattet av et pluss-tegn.
  • Høyreklikk på filen og velg CVS Commit… Vinduet som kommer opp nå lar en legge til informasjon om filen. Bruk dette alternativet så mye som mulig! Skriv følgende under Comment: ”Fil lagt til i modul for å teste TortoiseCVS.”
  • Klikk OK. Plusstegnet over ikonet til filen er nå erstattet av en avkrysning. Denne indikerer at filen ikke er blitt endret på siden den ble lagt til.
  • For å se at filen virkelig er lagt til under kildekontroll kan vi åpne mappen C:\CVSfiler\EtProsjekt\ og se at den er der med en modifisert filendelse.

    Gå tilbake til mappen C:\EtProsjekt og åpne tekstfilen. Skriv ”Heisann!”, lagre og lukk filen. Ikonet til filen får nå en over seg en pil som peker til venstre som indikerer at filen er endret siden den ble sjekket inn sist.

    Høyreklikk på filen og velg CVS Commit… Skriv ”Jeg la til ordet Heisann i filen.” som kommentar og klikk OK. Merk at ikonet på filen har endret seg til en avkrysning igjen!

    Nå eksisterer det to versjoner av denne filen. Høyreklikk filen og velg CVS History... I listen ligger versjon 1.1 og versjon 1.2 av filen. Kommentarene som ble lagt til vises også her når en velger versjon.

    Det er selvsagt mye mer å sette seg inn i, men en kan komme i gang med det som er gjennomgått over. Kanskje skriver jeg noe mer i en senere post ;-)

    Om bloggen

    "Alt om programmering ;-)" er min blogg om alt jeg finner interessant om programmering og ikke noe mer.

    Linux har jeg fremdeles til gode å stifte et seriøst bekjentskap med selv om jeg har arbeidet i it-bransjen i mange år. Windows-plattformen og Microsoft-teknologier er (og har vært) mitt område. Webprogrammering med ASP .NET er primært i fokus på jobben, og i dag bruker jeg stort sett Microsoft Visual Web Developer 2005 Express Edition som utviklingsmiljø til dette.

    (Reklame: WDE er forøvrig et veldig bra IDE med god debugger og til og med en liten webserver for lokal testing. Fri nedlasting av programmet for alle ut november 2006 fra http://msdn.microsoft.com/vstudio/express/vwd/.)

    PS: Dersom du faktisk ønsker å vite ALT om programmering vil jeg anbefale deg å sjekke ut www.google.com ;-)

    Oppdatering 5. august 2006
    I dag benytter jeg Visual Studio 2005 Professional som gir større fleksibilitet og muligheter enn Express-utgavene. Har jeg skjønt ting riktig, er forøvrig Express-utgavene gratis for nedlasting helt til jorda og resten av solsystemet slukes av et stort, sort hull.

    Om meg

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