Klapmusen.dk | Indhold

Logbog

2004

2003

I gang med application/xhtml+xml

[23] 2004-12-18

2004-12-11 startede Klapmusen omlægningen til at servere XHTML'en med mime-type application/xhtml+xml i stedet for text/html. Problemet er, at IE endnu ikke understøtter application/xhtml+xml (viser en blank side), men det gør Opera, Firefox, Mozilla, osv.

Vi er derfor nødt til at teste hver eneste browser, hvilke mime-types, de understøtter, og det skal gøres direkte i headeren HTTP-accept. Først tester jeg, om der er en accept-header. Hvis der ingen er, anvender jeg application/xhtml+xml. Hvis der er accept-header, tester jeg om den indeholder strengen "application/xhtml+xml". Hvis det er tilfældet (Opera, Mozilla, Firefox, osv.) serverer jeg websiden som application/xhtml+xml. Hvis ikke (IE) bruger jeg text/html.

Foreløbig er det kun websiderne indhold, om klapmusen, jesper og weblog, der serveres med den rigtige mime-type i de browsere der understøtter den, men resten af websitet følger snarest efter. Der har kun været et par små-problemer, som jeg fortæller om i kommende artikel.

Hjælp og Validation er droppet

[22] 2004-05-15

Klapmusen har i årevis haft en webside, der hed Hjælp. For et par år siden skrev jeg endog en artikel, der stadig kan læses på Klapmusen, om den evt. nytte af en sådan Hjælp på hjemmesider.

I mit stadige arbejde på at gøre Klapmusen så enkel og så ret på sag som mulig, er Hjælp nu droppet. En hjælpe-side er aldeles overflødig på dette og de fleste andre website.

Sektionen "Alt om Validering" er også droppet, da den er blevet erstattet af min webtjeneste Be A Nice Doc. Alle websider på Klapmusen linker til denne webtjeneste, der ligger på www.nicedoc.com. Det er en fri webtjeneste alle kan linke til.

Er kommet i tvivl om brugervenlige 404

[21] 2004-04-13

For et år siden skrev jeg en artikel, Brugervenlige 404-fejlmeldinger, der varmt anbefaler konceptet. Artiklen er blevet en succes, den bliver i hvert fald flittigt fundet af søgemaskiner. Men jeg har længe haft en lumsk mistanke om, at noget måske er galt ved konceptet.

For det første dokumenterede artiklens konkrete eksempler fra det virkelige liv, at websites såkaldt brugervenlige fejlmeldinger typisk er meget ringe. Hvorfor skal brugerne døje med alt denne elendighed i millioner af forskellige udgaver, når vi kan overlade jobbet til et par default fejlmeldinger på serverne, der med lidt held kan blive bedre med tiden?

For det andet er jeg gang på gang stødt ind i rygter, der antyder, at mange website ikke medsender Status Code 404, og at brugervenlige fejlmeldinger således i høj grad bidrager til, at vi kun undtagelsesvis kan tjekke websider for døde link med en automatisk linktjekker.

For er par dage side fik jeg så en email fra en hos IBM ansat forsker, der kraftigt anbefalede, at jeg tog et nærmere kig på Status Code 404. Det har jeg nu gjort, og resultatet er chokerende. Halvdelen af de 15 website jeg lister i min artikel, medsender ikke Code 404. Det gjaldt også Klapmusen.dk (meget røde ører), men det er nu rettet.

Det korte af det lange er, at brugervenlige 404-fejlmeldinger reelt bidrager til at gøre Internettet ringere, fordi fejlmeldingerne ikke længere opfattes som fejlmeldinger, men som sider, der findes, og som derfor medsender "Status Code 200, OK", eller 301-302, der blot betyder omdirrigering. Selv de brugervenlige fejlmeldinger i Microsofts ISS medsender ikke de korrekte statuskoder.

Ovenstående viden vil jeg snarest indarbejde i en ny udgave af artiklen.

Nyt design er atter på vej

[20] 2004-03-31

Nyt design er altid på vej. Websitet består i øjeblikket af websider, der tilhører forskellige generationer. Jeg har besluttet i højere grad at satse på rendyrket minimalistisk design, der tjener mit website bedst.

De fleste brugere på klapmusen ankommer via søgemaskiner som Google. De enkelte artikler er næsten lige så vigtige indgange som selve hjemmesiden. Et vigtigt mål er, at få førstegangsbrugere til at læse artiklerne, der skal være mest mulig rene og indbydende. Et andet vigtigt mål er at få andre website til at linke til artiklerne, der derfor skal være mest mulig troværdige og præsentable.

Det er den enkelte artikel som ressource, brugerne er interesseret i. Websitet som sådan er mindre vigtigt og skal nedprioriteres.

Artikler er atter bagte

[19] 2003-10-24

Alle Klapmusens artikler er nu atter avancerede statiske filer eller avancerede dynamiske filer. Vælg den formulering, du foretrækker. Dokumenterne er statiske, når du requester dem. De er genereret på forhånd. Hvorfor spilde tid med at generere hver gang, hvis intet er forandret?

Dokumenterne er samtidigt dynamiske i den forstand, at så snart der sker en forandring i den bagvedliggende XML, genereres dokumentet på ny. Det sker f.eks., når en bruger kommenterer en artikel.

Fordelen ved såkaldt "bagte" websider imodsætning til "stegte" er, at websiderne loader marginalt hurtigere og belaster serveren marginalt mindre. Disse marginaler har dog kun undtagelsesvis praktisk betydning i tilfældet Klapmusen, men har betydning på website med tusinder af samtidige brugere.

For historikken, se hvad jeg skriver under 9 og 2.

Alt om validering

[18] 2003-08-23

Siden tidernes morgen har Klapmusen gjort et stort nummer ud af at validere sine websider. Det har altid været let for nysgerrige at kontrollere valideringen, fordi dokumenterne har været listet i en tabel med direkte link til W3C's validatorer. Det gælder XHTML og CSS. Hvad angår tilgængelighed, har jeg indtil for nylig brugt Bobby.

Tidligere var "Alt om validering" blot en enkelt side med "quick and dirty" layout. Nu har jeg udvidet siden til i første omgang syv sider. Det er planen, at siderne med "tip til validering" løbende tilføjes flere tip.

"Alt om validering" er blevet en hel sektion i "avisen", hvor jeg samtidig eksperimenterer med ny layout. Jeg har gjort brødteksten større, dvs. sat den til "1em", dvs. browserens default. Jeg tror, det er det bedste "all round" udgangspunkt for de fleste brugere, hvad angår tekst, der er beregnet til at blive læst.

Jeg opretholder fortsat mindre skriftstørrelse, typisk "0.9em", til tekst, der fortrinsvis skal skannes, f.eks. menuer. Til datatabeller, der også fortrinsvis er til for at blive skannet, anvender jeg endog "0.8em".

Bemærk at sektionen "Alt om validering" ikke anvender tabeller til layout men CSS, og at sektionen også er lavet til den engelske udgave af websitet.

2004-02-05: Sektionen "Alt om validering" er afløst af "Be a nice doc".

Nyt layout for hjemmeside

[17] 2003-07-25

Dette er femte layout for Klapmusens hjemmeside, forsiden. Bemærk: ingen tabeller for layout, ren CSS. Så fleksibel at siden præsenterer sig flot i så godt som alle opløsninger og størrelser på browserens vindue.

Det gamle layout havde tre kolonner, den tredje, tilhøjre, blev kun anvendt til et billede. Den tredje kolonne gjorde siden mindre fleksibel, og den tilføjede ikke særlig værdi til websitet.

Det nye layout med to kolonner er godt. Jeg tror det vil klare sig et års tid eller mer. Jeg vil snart tilføje en styleswitch øverst i hovedmenuen som i det gamle layout. Jeg ønsker også at tilføje funktionalitet til resuméerne, f.eks. sortering.

Jeg har meget at sige om det ny layout. Bemærk at der kun anvendes datoer ved førse punkt i de tre lister tilvenstre. Datoer ved hvert punkt er overkill, der gør hjemmesiden sværere at scanne og læse. De alternerende farver, "white smoke", i listerne, limer de to kolonner sammen ved enhver bredde af browservinduet.

Informationsarkitektur på Klapmusen

[16] 2003-07-18

Klapmusen har et kæmpe hængeparti, hvad angår en mere fornuftig inddeling af artiklerne. De tre grupper: "Anmeldelser: Website", "Anmeldelser: Software" og "Anmeldelser: IT-bøger" er regelrette. Det samme gælder for Sprog: ASP.NET og "Sprog: XML/XSLT". Derimod skriger "Webdesign: Designmanual", "Webdesign: Rapporter", "Webdesign: Kommentar" og "Webdesign: Tips og Tricks" til himlen for deres kluntethed.

Grupperinger er vanskelige. Jeg vil gerne have en gruppe, der hedder "brugervenlighed" og en gruppe, der hedder "Tilgængelighed". Men mange artikler kan grupperes begge steder, og alle artikler handler mere eller mindre om brugervenlighed og tilgængelighed.

Jeg ønsker også at kunne arkivere artikler, ikke når en bestemt dato er nået, men når de trods kvaliteter, har for store mangler til at stå i første række. Artikler, der ikke længere er interessante, eller som jeg ikke længere kan anbefale, skal selvfølgelig straks i fjernarkiv.

Det er også et stort ønske at niveauinddele artiklerne, f.eks.: "begynder", "erfaren", "ekspert". Flere af artiklerne er unikke og kan måle sig med hvad som helst på nettet. Andre artikler er hyldevare, og atter andre er undermålere, men af betydning for min egen faglige udvikling og for andre på samme niveau.

En løsning kunne være at have fire overordnede grupper: "artikler til offentliggørelse", "artikler der trænger til at blive revideret", "noter og arbejdspapirer" og "arkiverede artikler". Jeg er dog ikke tilhænger af offentlige "kladder" i en tidsalder, hvor selv bøger ofte aldrig burde være blevet udgivet. En faglig weblog kunne også være relevant.

I gang med brugervenlige URL'er

[15] 2003-07-17

Klapmusen er begyndt at eksperimentere med at lave mere brugervenlige URL'er til glæde for mennesker og for søgemaskiner som Google. Bemærk at "Indhold" og "Søg" i hovedmenuen nu virker uden "extension", dvs. uden filtypebetegnelse.

Bemærk også at den engelske og danske udgave af websitet nu har identiske URL'er bortset fra domænenavnet. Når en webside åbner tjekker den først domænenavnet og henter så det engelske eller det danske indhold.

Drop Nyt Vindue med JavaScript

[14] 2003-07-10

Klapmusen har nu droppet de sidste "Nyt vindue" lavet med JavaScript. Jeg har altid fundet "Nyt vindue" problematisk, fordi det ødelægger et naturligt historik-forløb, og fordi brugeren sandsynligvis skal spilde tid med at maksimere eller "resize" det ny vindue.

Jeg er nu også blevet klar over i forbindelse med udviklingen af brugervenlig 404-fejlmelding, at link, der aktiveres med JavaScript, ikke medsender referenten som HTTP-header. Det vil i mange situationer ødelægge muligheden for trafikanalyse, der er et vigtigt redskab til at gøre et website mere brugervenligt. Nyt vindue lavet med attributten Target="_blank" har også sine problemer, fordi attributten Target ikke længere er med i de strikse DTD'er for HTML og XHTML.

Jeg vil snarest skrive en artikel om emnet.

Debatmodul er nu delvis tilgængeligt

[13] 2003-07-06

Det er lykkedes mig at generere nestede lister ud af mit XML-datalager, så debatmodulet nu er Best Practice. Det har bl.a. den effekt, at debatmodulet også fungerer i skærmlæsere, og i browsere, der ikke forstår CSS. Det gælder dog stadig kun debatten kaldt fra de enkelte artikler.

Inde i debatten vises oversigten over indlæggene stadig med den primitive "indryk-metode", som omtalt under forrige nyhed. Debattens websider laves endnu ikke med XSLT, men med W3C-DOM i ASP.NET. Der går lige lidt tid, før jeg får omprogrammeret debatmodulet.

Debatmodul er ikke tilgængeligt

[12] 2003-06-12

Der er et lille debatmodul tilknyttet mine artikler, og jeg har længe været klar over, at debatten ikke er tilgængelig eller optimal for f.eks. blinde.

Debatmodulet fungerer heller ikke, hvis brugerens browser ikke understøtter CSS, eller hvis brugeren anvender eget stylesheet. Årsagen er indlysende. Debatindlæggene hænger kun sammen visuelt. Der er lavet indryk i CSS, der for ét af niveauerne ser således ud:

.indryk3{display: block; position: relative; left: 100px;}

Stuktural opmærkning mangler. Debatindlæg skal selvfølgelig i stedet laves med nestede lister ("ul"-taggen i HTML). Så forbliver debatindlæggene i den rigtige position, også hvis en browser ikke understøtter CSS, f.eks. tekst-browseren LYNX, eller hvis brugeren anvender eget stylesheet. Struktur er også forudsætningen for at gøre det forståeligt for blinde.

I løbet af de nærmeste måneder laver jeg et mere tilgængeligt debatmodul.

CSS erstatter sidste tabel til layout

[11] 2003-03-03

I gennem de sidste par år, har jeg hver tredje måned forsøgt at droppe yderligere et par tabeller til layout til fordel for layout med ren CSS (Cascading Style Sheet). Tabellerne er blevet færre og færre, men jeg er ofte løbet ind i problemer i nogle browsere. Nu er den aller sidste tabel til layout væk: forsidens trespaltede layout laves nu med CSS.

Forsiden, default.aspx, er ægte webdesign med anvendelse af tre DIV med "float" (egenskab i CSS) sat til "Left". Det trespaltede layout fungerer ved så godt som en hvilken som helst bredde på broserwinduet og ved en hvilken som helst opløsning, og brugeren kan tilpasse skriftstørrelsen i browseren. "Float" er efter min vurdering rigtigt implementeret i IE, hvor højre spalte flyder ned under midterspalten, når der ikke længere er plads. I Mozilla og Opera presses de tre søjlespalter i stedet sammen, når vinduet bliver for lille.

Den tredje søjlespalte forvises altså til websidens bund i smalle browservinduer (mindre end 750px), ved lave skærmopløsninger (640x480), og hvis brugeren gør skriftstørrelsen meget stor i browseren. Det er kun acceptabelt, fordi tredje søjlespalte har sekundær betydning. Denne type fleksibel layout skal nogle brugerne sikkert først vænne sig til. Klapmusens indholdfortegnelse, indhold.html, har længe virket på denne måde. Med fleksibel bredde, "float" og brugerdefineret skriftstørrelse bliver layout på nettet radikalt anderledes end på papir.

Klapmusens forside er lavet med asp.net, C# og CodeBehind med anvendelse af XML DOM. Forsiden er således en af de meget få websider på Klapmusen, der ikke transformeres ved hjælp af XSLT. Der mangler bl.a. dato-funktioner i XSLT (de kommer med i XSLT 2.0), og det betyder, at det er lidt bøvlet at anvende XSLT i nogle situationer.

Forsiden validerer som XHTML 1.1 som stort set alle øvrige websider på Klapmusen. Webserveren sender dog endnu ikke websiderne som mime-type "application/xhtml+xml" men som "text/html".

Indhold.html

[10] 2003-02-22

For at fejre at HTML er tilbage på Klapmusen, har jeg samtidigt fikset problemer med layoutet på indhold.html. Læg mærke til "Indhold" i menuen, der fungerer som websidens overskrift. Den er nu opmærket korrekt med "H1", hvor "display" er sat til "inline". Bemærk især, at websiden er lavet uden tabeller til layout, der er kun anvendt CSS. Jeg har længe brugt farveskift i hver anden linje i almindelig ASP-programmering, men har nu også fået farveskift til at virke i XSLT.

Indhold.html er en af de få websider, jeg har lavet, som jeg er stolt af. Prøv at sætte skriftstørrelsen op i browseren eller prøv at gøre browserens vindue mindre. Når der ikke længere er plads til den gule menu til højre, flytter den automatisk ned til websidens bund. Websiden er også optimeret til brug for tastatur. Prøv at tabulere rundt. Jeg anvender omvendt video for "aktivt" link, så det er let at se, hvor du befinder dig. Alle link kan vælges med ACCESSKEY, der er lig linktekstens første bogstav.

Indhold.html validerer selvfølgelig til XHTML 1.1, og siden ses perfekt i f.eks. IE, Netscape og Opera. Der er dog et enkelt problem i Opera, som jeg ikke lige har fået løst: af en eller anden grund er linkfarven sort i stedet for blå men "hover" virker.

Websiden mangler en bundtekst som mange andre websider på Klapmusen. Jeg har endnu ikke fundet på noget nyttigt at placere i en sådan bundtekst. Hellere et rent look end overflødige "copyrights", osv., osv. på hver eneste webside.

HTML er tilbage på Klapmusen

[9] 2003-02-21

Som jeg skrev under 27. oktober 2002, har jeg ikke opgivet HTML-filer for evigt. Den første HTML-fil er nu tilbage, indhold.html. Filen genereres fra XML ved hjælp af XSLT, men i stedet for at sende output til skærmen, dvs. som en aspx-fil, der genereres ved hver request, gemmes outputtet nu atter som HTML-fil.

En HTML-fil har i ovenstående tilfælde en dramatisk effekt på den hastighed hvormed websiden loades i browseren. Det skyldes, at jeg i XSLT foretager en avanceret såkaldt "Muenchian" gruppering, der over min ADSL tager ca. 6-8 sekunder. Jeg tror, der er en fejl i Microsofts XSLT-processor. Det er selvfølgelig tåbeligt at foretage en sådan XSLT-gruppering, hver gang filen requestes. Det tager kun et halvt sekundt at loade HTML-filen.

Tip en ven, email webside

[8] 2002-12-28

Jeg har lavet en lille "Tip en ven"-funktion, der nu afslutter artiklerne. De fleste websites, der har en sådan funktion, bruger formular. En formular virker i over 99 pct. af browserne, men er en langt ringere løsning end min egen "URL-mailto"-løsning, der understøttes af måske et par procent færre browsere! "Mailto"-løsningen vil blive anvendt af flere brugere, bl.a. fordi alt er mere handy, og fordi du ikke skal opgive email-adresser i mistænkelige indtastningfelter. Det vil jeg uddybe i en artikel, som jeg går i gang med at skrive nu.

Indlæg i debatten

[7] 2002-12-27

Til dato er ét indlæg blevet slettet, fordi afsenderen var anonym. Indlægget var ellers meget troværdigt og positivt, men da der på det tidspunkt kun var få debatindlæg, brød jeg mig ikke om anonymiteten, der kunne inspirere andre. Èt andet indlæg er blevet slettet, fordi det afsporede debatten ved at fokusere på andre bidragyderes stavekundskaber, og ét indlægs overskrift er blevet slettet ved en fejl, så jeg måtte finde på en ny overskrift!

Linkarkitektur forenklet på forsiden

[6] 2002-12-26

Da ét link til hvert emne og ét link til mit navn allerede findes øverst på websitets forside, default.aspx, har jeg fjernet de tilsvarende link til emne og mit navn i hver artikels resumé på forsiden. Da der i øjeblikket er 39 artikler, har jeg altså fjernet 39 overflødige link til mit navn og 39 overflødige link til emner.

Det gør forsiden mindre kompleks, hvad angår link, til stor fordel for brugere, der kun eller fortrinsvis anvender tastaturet, og for blinde der ikke skal lægge øre til en masse gentagelser i skærmlæseren. Det er min vurdering, at fraværet af alle disse link-gentagelser er til skade for så få, at det er et acceptabelt kompromis i betragtning af den forøgede tilgængelighed.

Tilmelding til nyhedsbrev

[5] 2002-11-24

I følge Bobby er der stadig én "Priority 2"-fejl, der skyldes en af controllerne i ASP.NET, hvor der anvendes en click-event uden samtidig brug af onkeydown. Efter min vurdering er dette en fejl fra Bobby's side, da submit-knappen også aktiveres med Enter.

Søgefunktionen

[4] 2002-11-23

Bobby returnerer ingen deciderede fejl, hvad angår websiden "Søg", dvs. find.aspx. Der er stadig mange manuelle punkter at tjekke. Ét af dem kræver tilsyneladende, at en søge-funktion skal være niveaudelt i en avanceret funktion og i en søge-funktion til normale brugere. Det kan være godt nok, men er i mit tilfælde et tåbeligt krav med så få artikler at søge i.

På et tidspunkt bliver et website stort nok til at gøre en søgefunktion relevant, men man kan da ikke kræve, at en sådan søgefunktion fra starten skal være niveauopdelt til forskellige typer brugere. Om nogle måneder, når jeg efterhånden synes, det er påkrævet, vil jeg programmere en "Advanced" søge-funktion, med forskel på store og små bogstaver, mulighed for kun at søge efter hele ord, osv., osv.

Optimering til søgemaskiner

[3] 2002-11-09

Med henblik på optimering til søgemaskiner er forside og artikler nu optimeret, så godt som jeg kan dagsdato, dvs. helt grundlæggende optimering. Af en eller anden grund har jeg hidtil glemt at anvende comment-tag i begyndelse af body med samme indhold som meta-taggen "Beskrivelse".

"Beskrivelse" i kommentar-tag som første tekst i BODY sikrer (der går nok nogle uger), at søgemaskinernes resultater omfatter en god beskrivelse af websiden. I modsætning til nu, hvor f.eks. Google finder menulinjen og bruger den som beskrivelse!

Artikler transformeres ved request

[2] 2002-10-27

Den største nyhed er, at artiklerne ikke længere er færdigttransformerede html-filer, når de requstes. I forbindelse med overgang fra VB.NET til C# har jeg nødtvunget måttet satse på den programmeringsmæssigt letteste løsning, dvs. at transformationen fra XML til XHTML ved hjælp af XSLT sker hver eneste gang en artikel requestes. Det er den evige kamp mellem fordele og ulemper ved et såkaldt "baked" og et "fried" website.

I nærmeste fremtid oploader jeg en artikel, der diskuterer mine erfaringer med ét års anvendelse af XML/XSLT på Klapmusen. Jeg har været meget stolt af mine færdigttransformerede html-filer, og selv om de nu er droppet, så er det nok kun midlertidigt. Jeg tror de ved lejlighed dukker op igen men på et højere niveau.

I forbindelse med ovennævnte omstrukturering har alle artikler fået nye URL'er, men samtidigt har jeg forandret de gamle HTML-filer, så de nu peger på de ny. Det betyder, at brugere, der har linket til de gamle filer, automatisk omdirrigeres til de nye filnavne.

Fra VB.NET til C#

[1] 2002-10-26

I løbet af foråret blev websitet konverteret fra ASP med VBScript til ASP.NET med VB.NET. Jeg er nu i fuld gang med at konvertere videre fra VB.NET til C# med brug af Codebehind og "Visual Studio".net. I nærmeste fremtid oploader jeg en artikel med mine erfaringer.