2008.04.17

C# API documentation issues

Kategori: Brok, Programmering — Michael Schøler, Kl. 09:07:18

According to http://msdn2.microsoft.com/en-us/library/system.datetime_methods(VS.71).aspx the AddHours() method for any DateTime instance has the following effect:

AddHours: Adds the specified number of hours to the value of this instance.

This means that given a DateTime object “dt”, and that the method AddHours is called on that object, the specific object instance “dt” will be updated with the new value.

DateTime codecompletion hint

As can be seen above, this is also what is shown in the codecompletion hint text in Microsoft Visual Studio 2005.

So the following code should yield the new date value “2008-04-17 10:03:00″:

DateTime dt = new DateTime(2008, 04, 17);
// The object instance "dt" is now equal to "2008-04-17 00:00:00
dt.AddHours(10.0);
dt.AddMinutes(3.0);
// "dt" is now "2008-04-17 00.00.00" ?!

… but instead it yields the value “2008-04-17 00:00:00″.

Digging further in the API documentation you’ll find a contradiction on the method description pages, eg. http://msdn2.microsoft.com/en-us/library/system.datetime.addhours(VS.71).aspx:

Return Value
A DateTime whose value is the sum of the date and time represented by this instance and the number of hours represented by value.

This method does not change the value of this DateTime. Instead, a new DateTime is returned whose value is the result of this operation.

So the correct code is:

DateTime dt = new DateTime(2008, 04, 17);
// The object instance "dt" is now equal to "2008-04-17 00:00:00
dt = dt.AddHours(10.0);
dt = dt.AddMinutes(3.0);
// "dt" is now "2008-04-17 10.03.00"

And that’s not playing nice - now is it? The definition text is ambiguous. Looking closely to the hint text you’ll notice that a DateTime object instance is returned when calling the AddHours method: “DateTime DateTime.AddHours(double value)”.

I suggest correcting the documentation text to the following unambiguous definition:

AddHours: Returns a new DateTime with the specified number of hours added to the value of this instance.

2008.03.01

Mon der er nogen der har fået travlt

Kategori: Brok — Michael Schøler, Kl. 09:13:12

Forleden blev home.dk udråbt som Webchamp08, og lige siden har flere kompetente webfolk i landet været optaget af at kritisere prisuddelingen. På den oprindelige prisvinder annonceringsartikel hos computerworld.dk er kommentarsektionen fyldt op med undren og kritik af valget.

Og nu er det lidt sjovt at iagttage hvordan der tilsyneladende er kommet fokus på valideringsfejlene på home.dk. Igår var antallet af valideringsfejl nemlig nedbragt fra 28 til 17, og her til morgen er tallet i skrivende stund 11. Det burde faktisk ikke tage lang tid at komme ned på nul fejl, men som skrevet i min tidligere artikel, så er server-side koden garanteret rodet så meget sammen at det er en langvarrig process at ende med en fejlfri side.

Home.dk fortsat med masser af valideringsfejl

CSS fejlene er de ikke nået til endnu. Her er der fortsat 30 valideringsfejl og 797 advarsler om ukorrekt brug af CSS standarden.

2008.02.27

Festlig titel - uden værdi

Kategori: Brok — Michael Schøler, Kl. 20:32:34

Webchamp08 ?I dag blev Webchamp08 kåret af www.computerworld.dk. Tillykke til Hanne fra home.dk. Tænker du også hvem og hvorfor?

Min vurdering er, at prisen er totalt meningsløs. Det kan ganske enkelt ikke passe at home.dk kan lede til at vinde en sådanne personlig pris. Som Hanne også selv hurtigt siger: “Det at lave sådan noget som Home.dk, er ikke noget man gør som enkeltperson.”. Der skal rigtigt nok mange flere personer til at rode så meget er jeg sikker på hun også tænker.

Striben af problemer med prismodtagelsen er der nok af.

Valideringsfejl og “forældet” HTML standard anvendt

Dels validerer home.dk ikke til den HTML standard, der iøvrigt må betragtes som værende forældet, som sitet selv påstår at overholde: HTML 4.01 Transitional. Dette er en gammel standard, indført i 1999 som en ren midlertidig udgave, der havde til formål at være en blid overgang til HTML 4.01 strict standarden. Nutildags er det mere korrekt at skele til XHTML 1.0 standarden der blev indført lige omkring 2000. XHTML 1.0 er siden blevet til XHTML 1.1 omkring 2001 og denne seneste standard må betragtes som værende det rigtige og seriøse valg til større professionelle sites.

Sitet home.dk har i skrivende stund 28 HTML valideringsfejl. Der er ligeledes ikke mindre end 30 CSS fejl og 797 CSS advarsler at finde. Ikke imponerende.

Du er selvsagt velkommen til at teste om denne webside validerer:

Rodet HTML og dermed rodet server-side kode

Kigger man som webudvikler i den genererede HTML kode som home.dk sender til browseren fremstår det, efter min bedste overbevisning, tydeligt at der ikke arbejdes med et fast koderegelsæt hos udviklingsholdet. Eksempelvist skiftes der voldsomt imellem brug af tabulering og mellemrum som indentering. HTML koden er ligeledes oversået med unødige og formålsløse linieskift. Udfra de simple betragtninger i sitets HTML kildetekst kan man godt tillade sig at udlede, at udviklingshodet bag home.dk ikke overholder et fælles besluttet krav til kode og kodestil. Det giver gnidninger med hensyn til vedligehold, modularisering og udskiftbarhed i selve kildekoden til sitet. Gad vide om home.dk holdet ikke er nervøs ved tanken om et eventuelt code-review?

Manglende cross-browser kompatibilitet

Kigger man på home.dk i Internet Explorer fremstår siden helt sikkert som tiltænkt af holdet bag. Sitet fungerer, trods ovenstående iagttagelser, men tonen skifter lidt hvis man benytter andre browsere. Anvendes Firefox til at se home.dk med kan man se nogle små afvigelser i hjemmesidens layout. Værre er, at hvis man fra Firefox klikker på sidste menupunkt til højre “myhome” ledes man til en side kun indeholdende teksten “The URL has moved here” (der indeholder et link der fører til samme blanke side), da der anvendes et ikke gyldigt HTTP redirect ved menupunktets link. Det ser Internet Explorer stort på, da den er tvunget i “quirks mode” for overhovedet at kunne vise den ikke gyldige webside.

Som følge af, at man ikke har skænket andre browsere en tanke, opstår der et hav af JavaScript fejl når siden vises i Firefox. F.eks. er første fejl ved visning af home.dk forsiden:

Uncaught exception: Adgang nægtet til kaldemetoden Location.toString

I følge Foreningen af Danske InternetMedier står Firefox iøjeblikket for ca. 10% af den samlede webtraffik i Danmark.

Udløbne certifikater

Går man det digitale certifikat i sømmene som home.dk anvender ved visning af “kort og skyline” fremgår det at det er udløbet (dette bør man dog nok klandre krak.dk for):
- Certifikatet for “VeriSign Trust Network” er udløbet Jan 7 23:59:59 2004 GMT. Webmasteren bør opdatere certifikaterne.

Med andre ord har folkene bag home.dk kun haft 4 år til at opdage og at rette op på problemet ved at føre en dialog med krak.dk.

Kort opsumering

Som den vakse læser nok har bemærket er jeg en kende forundret over både prisen Webchamp08, og over valget af home.dk som baggrunden for at udpege én person (hvilket også kan anfægtes) som prisvinder.

Jeg ser mig ikke selv værdig som vinder, så det er ikke fordi jeg er ærgelig over ikke selv at være pristageren. Jeg synes bare fundamentalt set at prisen er skudt helt ved siden af. Dan du din egen mening, min er hermed givet tilkende.

Relaterede blog indlæg og kommentarer

2007.12.10

CVI-Projects

Kategori: Brok, Programmering — Michael Schøler, Kl. 21:03:42

Christian Effenberger has made a collection of quite awesome effect libraries which can be found on his CVI-Projects page, CVI being an acronym for Canvas, Vml and Image effects.

I’ll get back to how cool I think his effect libraries are in a moment but first off, I have to derail this articles focus and ponder a bit about his websites front page. In the moment of writing I think it’s rubbish. It currently states:

“This page is temporarily closed in protest against software patents. Websites may soon be closed down regularly due to software patents. Software patents can get you prosecuted for publishing texts you wrote yourself!”

Apparently Christian is frustrated about software patents, and links to a page where you can read more about how to support the cause - his front page no doubt beign a copy/paste template from that “get-more-information-page”. 

As I understand his quarrels he is opposed to software patents and supports this by closing down access to his site. Well, his effect libraries are still there freely available and quite public, and they are very, very cool - I promise to get back to it right away - so to me his digital demonstration seems a bit half-hearted and indifferent. Furthermore, I find it troublesome that the site promoting this war against software patents is violating its own advice. Close down your sites, don’t write texts, you’ll get prosecuted - Danger Will Robinson, Danger!

Oh well I got no beef with software patents, as long as I’m not getting sued I guess. Back to the nice effects!

The CVI-Projects page has a number of unobtrusive javascript effects you can use for your website - free of charge if private or non-commercial, licensed if not:

  • Curl
  • Reflex
  • Edge
  • Corner
  • Glossy
  • Instant
  • Slided
  • Filmed
  • Louped

Especially I like the loupe effect. It illustrates the raw power of scripted effects I think.

The scripted effects are accomplished by utilizing the browsers graphical capabilities to the maximum. The effects libraries nicely degrades according to the supported graphic functions provided by the users browser. If none are present an unaltered image with no effects are shown.

Take a look at the various effects for yourself. Enjoy.