April 2008 in the Life of Ben (Blog)
From NCRs to Entities (27th April 2008)
Having moved the last article about websites from Site Surgeon to here, the scene was set for my renovation of Site Surgeon. It is now a single CV-like page which, in retrospect, is what it should always have been.
Whilst formatting the content I decided to try named character entities instead of numeric character references (NCRs).
String replacement is good enough for this task. I searched Project Cerbera’s 354 pages and 12 PHP scripts for &#
. I replaced the number with the corresponding name. There’s a full comparison table of references to work from.
Before | After | Example |
---|---|---|
£ | £ | £ |
¦ | ¦ | ¦ |
© | © | © |
¬ | ¬ | ¬ |
° | ° | ° |
¼ | ¼ | ¼ |
½ | ½ | ½ |
¾ | ¾ | ¾ |
× | × | × |
å | å | å |
é | é | é |
ó | ó | ó |
÷ | ÷ | ÷ |
ü | ü | ü |
– | – | – |
— | — | — |
’ | ’ | ’ |
‘ | ‘ | ‘ |
“ | “ | “ |
” | ” | ” |
… | … | … |
′ | ′ | ′ |
″ | ″ | ″ |
These 13 18 22 are the only characters I don’t write directly in ASCII. Now to update TextStudio.
While checking the PHP scripts for entities, I swapped lots of "
for '
. In retrospect, it doesn’t seem worth it.
Added More Entities (27th December 2009)
There are now 18 entries in the table; originally there were 13.
My blog feed build script has needed very ocassionally additions over the past months. I add them only when needed in order to keep the list small. Otherwise there would be hundreds of Replace$()
statements in my ConvertEntities()
function.
Chickenpox at Age 22 (25th April 2008)
Although my sister caught this when I was about 2, the virus never got to me. Recently my mum had shingles, which is when the defeated chickenpox virus has a second coming. Apparently this got transferred to me and so I caught chickenpox. Big time.
15th to 16th April 2008
Noticed the first spots during the night. There was a corker on the left side of my chest. By the afternoon I decided to shower, just in case I started getting more and couldn’t do so the next day.
17th April 2008
Woke up feeling rotten. Hadn’t got much sleep. No position was particularly comfortable. The spots had spread all around my torso and started down my legs. Started getting some beneath and behind my ears, too.
Tried going back to sleep but nothing happened. Eventually stumbled downstairs and slowly, painfully made some breakfast. I hardly ate much of it but felt the worst of the rottenness fall away. Eating seemed to make a world of difference to my mood, although I still felt very poorly.
18th April 2008
Got downstairs and started talking to mum. Began feeling lightheaded and disoriented. Then all the colours faded and it felt like my eyes had pins and needles. Something instinctively told me to go and sit down right away, that this wasn’t just a bit of a headrush.
After being sat for several minutes I still felt pretty weak. But the colours were starting to come back. I’m sure I would have fainted otherwise.
19th April 2008
Sometimes people say they haven’t slept as a shorthand for they haven’t slept well. Could not get a wink of sleep. Literally. The discomfort, the fever and outright pain of these spots was unbearable. By morning I was feeling helpless, in dispair.
My mum phoned NHS Direct. I described my symptoms. After a short talk they said a nurse would call me back within the hour. A few minutes later one duely did so. After quarter of an hour of detailed questions and advice, she said to visit the out patients section of Frimely Park Hospital.
She agreed with taking paracetamol to keep my temperature under control and suggested an anti-hystemine to go with them. These help with the itching and irritation.
Got there are waited in the reception for a while. Eventually saw a doctor who examined the spots, checked my breathing and temperature. “Well, I think it’s chickenpox,” he quipped. Apparently this was a high dose and was already quite far gone.
20th April 2008
Bathed in warm water with 5 tablespoons of bicarbonate of soda. Spots were now like blisters, growing big heads fill with puss. Really disgusting.
24th April 2008
Bathed in warm water with 4 tablespoons of bicarbonate of soda in the evening. Went down to the guinea pigs and talked to them for a while. This was relaxing.
It’s now at the scabbing over and falling off stage. My instincts are telling me to start scratching and picking at them but I’m trying hard to resist!
2nd May 2008
Still got small scabs. Mainly on my back and chest but also on my scalp. Mostly gone from my face and hands, though.
Had a tentative shower, being very careful to avoid knocking any scabs off. Also washed my hair. Could only have baths before this as the pox were so fragile and I hardly fit in out bath. Feel like a million dollars now!
5th May 2008
Parents were on holiday for a long weekend in Weymouth. So the living room has become my personal vacation, during which I have mostly watched TV and played Gran Turismo 3 in widescreen with 5.1 surround.
Plan to have another careful shower today. Will leave for Sight City 2008 in Frankfurt tomorrow.
14th May 2008
Still got plenty of red marks. Mainly on my arms and back. A lot less marks than I had spots though, so those ones healed without scarring.
30th May 2008
Some of the lighter red marks have gone. The rest are fading very, very slowly.
7th June 2008
Most of the red marks are still here. They are noticably fainter than last time I blogged about them, though.
Managing Bandwidth (23rd April 2008)
People would search for car names and screenshots of mods on Project Cerbera would show up. They would click these, despite not really wanting to install a GTA mod.
Inbound traffic is dominated by image searches. Here’s what I got from AWstats today:
Site | Page Views | |
---|---|---|
2008 | Google (Images) | 479,203 |
46,617 | ||
Yahoo! | 2,323 | |
Windows Live | 1,608 | |
MSN Search | 1,149 | |
Unknown search engines | 614 | |
AOL | 482 | |
Google (cache) | 433 | |
alice.it | 421 | |
Ask | 78 | |
2006 | Google (Images) | 703,812 |
30,715 | ||
MSN Search | 3,873 | |
Yahoo! | 3,415 | |
Unknown search engines | 926 | |
AltaVista | 508 | |
Baidu | 342 | |
AOL | 269 | |
AOL (de) | 187 | |
Netscape | 124 | |
2005 | Google (Images) | 420,138 |
28,168 | ||
Yahoo! | 1,656 | |
MSN Search | 960 | |
AOL | 657 | |
Unknown search engines | 483 | |
AltaVista | 482 | |
AOL (de) | 265 | |
Netscape | 180 | |
Baidu | 170 | |
2004 | Google (Images) | 75,589 |
4,368 | ||
Yahoo! | 345 | |
AOL | 185 | |
Unknown search engines | 159 | |
Ask | 100 | |
AOL (de) | 77 | |
Virgilio | 67 | |
MSN Search | 63 | |
Netscape | 56 |
Today I got a 509 Bandwidth Exceeded message when trying to access the site. Checked my inbox and there was the e-mail confirming this. Chatted with Dave Bateman, my ever-friendly host. Decided to remove the site from Google Images.
Simple to do. Just added this to the bottom of my robots.txt
file:
# Google Image Searches (2008-04-23)
User-agent: Googlebot-Image
Disallow: /
After a month or two we’ll see what effect this has.
Update (Monday 23rd June 2008)
When viewing my stats in June 2008, nothing had changed. So I moved that entry from the bottom of my file to be the 2nd entry; the first Disallow
rule. The exact code:
# Google Image Searches (2008-04-23, moved up from bottom of file on 2008-06-23)
User-agent: Googlebot-Image
Disallow: /
Time to sit and wait again.
Update (Friday 21st November 2008)
It worked! Bandwidth use per month dropped from 27GB in June 2008 to 12GB in July 2008. It’s been falling by about 1GB per month since then, reaching 7.5GB in October 2008.
Coincidence? The referrer stats say otherwise:
Site | Page Views | |
---|---|---|
May 2008 | Google (Images) | 186,808 |
(No Referer ) | 27,725 | |
23,141 | ||
June 2008 | Google (Images) | 150,979 |
(No Referer ) | 31,505 | |
19,985 | ||
July 2008 | Google (Images) | 21,817 |
16,972 | ||
(No Referer ) | 16,033 | |
October 2008 | 13,633 | |
(No Referer ) | 11,682 | |
Google (Images) | 9,057 |
Now my site is using a much more reasonable amount of my host’s resources. Phew!
Cycling Hero! (15th April 2008)
On the approach to Fleet Pond a woman with a mobile phone stood with two others in a clearing. She asked me if I’d seen three kids. “No, sorry”, I replied, “Plenty of dogs but no kids.”
The tracks were quite muddy so I went slowly. After a while a keen mountain cyclist caught me up so I moved over. He overtook, politely panting “cheers” as he pedalled away. He swung right and honked up the bank. I followed in case he was following an interesting route.
Upon reaching the crest I looked around but couldn’t see him. So I trundled along the bank, slowly, taking in the view.
Out of the corner of my eye, to the right, I saw some movement. I turned and initially couldn’t figure out what had tripped my spider-sense. When I stopped and focussed I noticed a huddle of small shapes inside a stack of branches which were lent against a tree. “Hello!” I called out, adding “I think your parents are looking for you.”
The shapes shyly edged out of the branches and formed three children: Two boys and one girl. They said nothing so I kept talking to them, as if calming a startled horse. “Are you lost? A woman told me she was looking for three kids; is that you three?” They asked me to describe the woman, who else was with her and so on.
Clearly well trained against following strangers, which is good to see.
“Children have a quick instinct,” I remember a public service announcement from decades past saying, “they know when they are amongst friends.” After explaining where I’d seen the woman and describing her pink mobile phone, they trusted me. I suggested leading them back to the woman since the area is criss-crossed with random tracks. Commenting on what a lovely day it was seemed to clinch things. I guess that’s a British thing.
We went back down the bank. My brakes were squeaking embarrassingly. You look like a complete noob when you let them get so far out of alignment. Just like people who don’t oiled the chain or shift gears effectively. But I digress.
“You’ve been on an adventure?” I enquired. This got them all talking about how they’ve been finding treehouses (the stacks of branches) and that they should return to the carpark if they got lost but evidently their parents had forgotten.
A small group of people were heading towards us. I asked them if the woman was still looking for her kids and they confirmed she was. As we rounded a corner the kids started shouting “There they are! There they are!”
The girl ran ahead but the boys kept walking alongside me. Maybe they thought they were in trouble? To lighten things up, I did the obvious: “Race you to her. Come on! Race you!”
The women seemed very relieved to have their kids back, as you can imagine! “That’s so good of you, we really appreciate it.” What’s the ettiquette for responding to that? “Thanks, you’re welcome.” is all I could muster but seemed adequate.
The small group of people were walking around Fleet Pond on the same path I was riding. I announced “they are all reunited” as I rode past. “Aww, that’s your good turn for the day!”
Back at home now and find myself humming. Doing the right thing is its own reward.
Sunshine and Guinea Pigs (15th April 2008)
For comparison with the April Blizzard photos:
These were taking 4pm or just before.
My mum was cleaning out the guinea pigs and had put them out on the lawn. Each group gets a metal cage called a run. This is to protect them from local cats and magpies. They are very talkative whenever they strop mowing through the vegetation for long enough.
Dutchie & her Litter
Silver, Babs, Sugar & Lad
Honey & her Litter
Sin & her Litter
Awww, Sweeeeet!
Hearing them squeak and twitter is always relaxing. There are 7 adults and 7 offspring.
Tabular Forms Idea (14th April 2008)
(Followup to the Tables with form fields: am I crazy? topic and my previous blog entry.)
An idea for detecting and handling tabular forms:
- If there is a
<th>
,scope
orheaders
:- Apply the table header association algorithm.
- If there is a form control:
- Get the control labels from the headers for that cell.
- If there is a
<label>
:- Add to the control labels using the
<label>
association algorithm.
- Add to the control labels using the
- Otherwise:
- If there is a form control:
- If there is a
<label>
:- Get the control labels using the
<label>
association algorithm.
- Get the control labels using the
- Otherwise:
- Get the control labels using the absent
<label>
heuristics.
- Get the control labels using the absent
- If there is a
- If there is a form control:
- End.
Or just say:
<label>
association works the same inside and outside of<table>
elements.- The headers of a table cell apply to all its descendants, like
title
.
Hackish Accessibility Techniques (10th April 2008)
In Accessible CMS Project, someone who evidently has some knowledge of the subject asks for review of the system they’ve created.
I notice lots of small issues. It strikes me that I see these issues a lot on websites by newcomers to accessibility. Then I realise it’s due to the culture of accessibility experts.
Tabular Forms
In Tables with form fields: am I crazy? Stephen Lang suggests using a correct and semantically rich data table with form controls in it. The table headers get associated with the table cells, as is normal. The idea is these associations are passed on to the controls when you’re filling them in with ATs.
This is obvious, isn’t it? After all, if you use a <ul>
or an <img>
in the cell you expect the table headers to work.
Steve Faulkner points out major screen readers don’t do this. He goes on to say this isn’t the AT vendor’s problem; it is the problem of every author. For each <input>
he proposes hiding a <label>
offscreen or adding a title
attribute.
This is met with cheers of approval from two other experts.
But I say it’s the AT at fault:
If a website provides good markup but a device doesn’t support it, the problem is in that device.
Steve disagrees. I provide code samples to make it clearer and explain how the structure is available from each. Steve accepts one of them which has complete table header markup and full-fat form labelling. He rejects the other two.
Wrong Impression
To a casual observer or someone new to accessibility, the certainty of stevefaulkner, brucelawson and dotjay probably makes me look like a crank. You leave with the impression that accessibility requires loads of complicated markup and repetitive information.
Anyone with a clue about accessiblity will realise this is exactly the wrong impression. These hackish accessibility techniques confuse people starting out with accessibility, resulting in less accessible websites.
Correct markup and calls for AT vendors to fix their bugs are drowned out or even snidely bashed. Super-duper markup tricks are what beginners leave each of these discussions with. Tricks so complicated only their inventor stands a chance of getting them right.
It leads to more broken markup and more repetitive text.
Hype Wins Again
Simply linking table header association with control labelling in ATs is dismissed as too much for anyone to implement. Yet ARIA is portrayed as the unquestionable and urgent solution.
ARIA requires complicated implementations of complicated specifications (which duplicate features already present in basic HTML4) into both UAs and ATs. How can that be the way forwards if simple improvements to form labelling aren’t?
I know for a fact that everyone involved is trying to do the right thing. But tabular forms using reams of labelledBy
, describedBy
and title
without a <th>
in sight seem inevitable.
It’s just so sad that good ideas get drowned out by hype.
8 Mile Ride (9th April 2008)
The right pedal on my bicycle has been a bit stiff since I replaced the pedals last April. I thought it would wear in over time but it hasn’t.
- Levered the cap off the end using a long screwdriver.
- Eventually found that a 12mm socket fitted the nut.
- Undid the nut.
- Still as stiff as it was.
- Noticed another, larger nut deeper inside.
- Couldn’t find a socket large enough that would fit in the housing.
- Gave up and put it back together.
Ben Rides Out
Started by riding towards the woods near Basingbourne Park. Was wearing a T-shirt and quickly found the air was way too chilly on my arms. So I went back, got a jumper and headed out again.
Rode into the woods and noticed a fallen tree had been cleared. Went along that bit and crossed the ditch. This leads into a slope where trees are just far enough apart to slalom between them. The ground is covered in pine cones and needles, making it very easy to lose the front wheel.
After winding between the trees for a fair while, I pootled out onto the roads. Went straight at the roundabout and the subsequent crossroads to the dirt track which runs between the houses and the woodland. After a fairly short while I saw it ended on a road, so I turned right into the woodland. The path ran past a park where kids were doing football training for a local club.
This route ended near Pondtail. This was the shortcut I’d been trying to find since the start of this year. It was like discovering the Northwest Passage! Well, not really, but you get the idea. From there I took the roads to the path between the houses and the woodland.
Towards Pyestock
After a while I turned right and headed towards the stream. It has a shallow ford and a bridge. I stopped on the bridge and watched the clear water rushing underneath. A man walked three dogs across the bridge. Only one was on a leash and it hid behind his legs as they went past.
Going straight on a gravel track leads to the long hilly track at the foot of the hill Pyestock sits on. Some tracks weave exciting routes across the face of this hill so I explored them more fully that ever before. They seem to continue right around, alongside a road. Another area to explore!
I took the gravel road back to the stream. The track drops sharply, flattens out then drops again. This is perfect for tucking in and whizzing along at dangerous speeds. So, naturally, that’s exactly what I did.
This time I went through the ford. The mixture of small, loose gravel, changing depth and fast flow mean you have to be awake and fairly well balanced to get across.
Towards Fleet Pond
I turned left and followed it a long way. There were quite a few families with kids and dogs walking so I went slowly and gave way.
After some time I wondered how far it was to Fleet Pond. Soon after thinking I noticed a puddle on my right. Looking over to it, I realised this puddle actually stretched out a long way and was, in fact, the Pond! It’s the largest body of freshwater on Hampshire, easily classed as a lake. So why is it called Fleet Pond? Well, the people round here are a modest sort. c{:-)
I circumnavigated the pond. There are some awesome views along its length, particularly in the corner between Fleet Station and the business park.
Hill Climb
Further round there is a steep bank; perhaps an ancient shoreline. I rode up and down this and found a really challenging part. It is steep, long, turns slightly left, gets very narrow, steepens some more and then levels out. There is a less steep but equally high slope further back along the track, so I would hurtle down that to get as far up this slope as possible.
After about 10 attempts, I couldn’t quite conquer it. Either I’d lose the front wheel on the lose surface as it turned left or I’d run out of momentum. In a way this is cool because when I eventually reach the summit, the difficulty will have made it all the sweeter.
Heading back around the pond led me to an opening where you can get right down to the water’s edge. The way back from here always eludes me! After a wrong turn I picked up a stream and figured it led to the ford since the bed was made of orange gravel, same as at the ford.
My guess was correct, thankfully.
Homeward Bound
Turning right, I rode back to the track between the houses and the woodland. I joined straight into the roads rather than riding along the track. After going some way, I realised this joined King’s Road some way down from where I wanted.
Luckily there was a through road on the left. This led me to the Pondtail I had followed to the woodland. It exits onto King’s Road at a cross-roads which I can go straight across towards Church Crookham.
Flattened Conversations (9th April 2008)
About 3.5 years ago, I documented a nasty conversation with Demarest from GTA Forums.
It used Invision Power Board’s private message system which produced deeply nested [quote]
tags. I recreated this with equally nested <blockquote>
elements:
A faithful reproduction of a terrible design! I’ve now flattened it, like a forum topic:
Analysis
Each quote was attributed using a <p>
before the <blockquote>
. It now uses an <h4>
before the <blockquote>
. This makes the meaning clearer visually. It also implies each message is a subsection of the “Conversation” section, making the meaning clearer structurally.
It used to take 7 screens at 800×600, about 3,150 pixels tall. The flattened layout takes 6 screens, about 2,700 pixels tall.
The old markup took 5,956 bytes. The new markup takes 5,924 bytes. These changes slightly reduced the already lightweight filesize.
Conclusion
All in all, a successful piece of tinkering.
Menus in Firefox 2 (8th April 2008)
After much labour, not least about the best IRIs to use, my analysis of the menus in Firefox 2 is up. The hub for Firefox 2 UI review now has all the notes I’d scribbled on paper and in a notes.txt
file.
Reviewing user interfaces takes too much time. The 384 unpublished screenshots and photos I’ve taken will remain unpublished, unless I stumble upon a sponsor.
April Showers Blizzards (6th April 2008)
At 7:20am I noticed there was a bizzard outside my window. That’s very rare for this part of the UK, even in the middle of Spring. I’m only 30 miles West of London, so it’s hardly the Scottish highlands. And this is April!
By 7:30am, with camera in hand, I ventured outside. Wearing pyjamas, slippers and a dressing gown. That’s all they wear in The Snowman so that’s all you need, right? Wrong!
Taking photos whilst shivering and shooting through buffeting winds with heavy snow are not “ideal conditions”. But every few seconds the shivering would stop for a bit and that’s when I took the photo. When you stop shivering is usually a sign of hypothermia, so I only shot for about 10 minutes.
By 8am the plants by our patio were just a snow bank. It’s settling and building; again very unusual. Normally we just get slush but it’s crazy cold out there this morning.
The first 5 of these photos broadly match the ones taken at 7am. But there’s much less snow in the air and much more on the ground.
That’s about 4 inches in about 2 hours. It drifted into 7 inch banks in parts of our garden.
Subscribing to public-pfwg-comments@w3.org
(3rd April 2008)
A query I e-mailed to Al Gilman and Michael Cooper about my subscription attempt not working, reformatted in HTML:
Hello, I have tried subscribing to public-pfwg-comments-request@w3.org but it seems not to have worked.
The list is listed in the Public Mailing Lists list (for lack of a better phrase).
So I followed the Mailing List Administrivia to subscribe.
I received a confirmation e-mail with subject line CONFIRM s246908088, to which I replied as it instructed.
I have sent 1 message to the list since then, here.
More detail about the steps I followed is here.
On the
#whatwg
IRC channel today at 21:00CET, Anne van Kesteren thinks I can only subscribe if I have “permission”.How do I go about getting this? Also, how come I need “permission” to subscribe to a W3C Public Mailing List in the first place? :-)
Has PFWG considered making its process and proceedings even more open than they are now? Such as the HTML Working Group’s use of a public mailing list.
Please let me know if it’s OK to make your reply public when you send it. I don’t want to get in trouble!
--
Ben ‘Cerbera’ Millard
Collections of Interesting Data Tables
Within half an hour I got this reply:
The PF public comments list is intended as an input-only channel for the PFWG. As such, the distribution of this mailing list is restricted to chairs and editors of the PFWG. It is not intended as a discussion forum.
There are other fora that the PFWG uses for discussion of issues, including issues initially raised through the public commments list. These include the main PFWG mailing list (
w3c-wai-pf@w3.org
) and the WAI-XTech list (wai-xtech@w3.org
). The latter list in particular is a public list and has a reasonably open invitation for people to join and participate in discussion of issues related to the mission of the PFWG.If you simply wanted to see the comments submitted to the PFWG through the comments list, you can check the publicly visible archives at any time at
http://lists.w3.org/Archives/Public/public-pfwg-comments/
. If you would like to join the WAI-Xtech list, let me know and I’ll add you.Regarding the openness of the PFWG, the PFWG is chartered in Member space. This is a standard aspect of W3C Process, that some groups are Member-restricted while some are Public. The expectations of such groups are different than they are for Public groups like the HTML WG. Questions about this should go to the owner of the Process Document.
I don’t mind if you make the substance of this reply public, though I would prefer if you not do it via a direct email forward.
Michael
A detailed and helpful response given promptly, courteously and openly.
However, I’m not sure how tracking comments with the web interface is fine if doing the same thing within my e-mail client is disallowed. Either both ways of doing the same thing are fine or they are both disallowed? The WAI-Xtech list mailing list looks like a way I could contribute occassionally.
The W3C Process Document describes different types of Group. But the Protocols and Formats Working Group (PFWG) Charter sets the openness of PFWG specifically. I was wondering why PFWG isn’t a Public group.
A related message is Re: PF Public Comments list from Ian Hickson.