toolkit/components/feeds/test/xml/rfc4287/feed_title_full_feed.xml

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/toolkit/components/feeds/test/xml/rfc4287/feed_title_full_feed.xml	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,936 @@
     1.4 +<?xml version='1.0' encoding='UTF-8'?>
     1.5 +<!--
     1.6 +Description: Feed title works with full entry
     1.7 +Expect: feed.title.text == 'ongoing'
     1.8 +-->
     1.9 +<feed xmlns='http://www.w3.org/2005/Atom'
    1.10 +      xml:base='http://www.tbray.org/ongoing/ongoing.atom'
    1.11 +      xml:lang='en-us'>
    1.12 + <title>ongoing</title>
    1.13 + <id>http://www.tbray.org/ongoing/</id>
    1.14 + <link href='./' />
    1.15 + <link rel='self' href='' />
    1.16 + <logo>rsslogo.jpg</logo>
    1.17 + <icon>/favicon.ico</icon>
    1.18 + <updated>2006-04-26T20:10:25-08:00</updated>
    1.19 + <author><name>Tim Bray</name></author>
    1.20 + <subtitle>ongoing fragmented essay by Tim Bray</subtitle>
    1.21 + <rights>All content written by Tim Bray and photos by Tim Bray Copyright Tim Bray, some rights reserved, see /ongoing/misc/Copyright</rights>
    1.22 + <generator uri='/misc/Colophon'>Generated from XML source code using Perl, Expat, XML::Parser, Emacs, Mysql, and ImageMagick.  Industrial strength technology, baby.</generator>
    1.23 +
    1.24 +<entry xml:base='When/200x/2006/04/26/'>
    1.25 + <title>Spring in White on White</title>
    1.26 + <link href='Spring-in-White-on-White' />
    1.27 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/26/Spring-in-White-on-White</id>
    1.28 + <published>2006-04-26T13:00:00-08:00</published>
    1.29 + <updated>2006-04-26T20:10:16-08:00</updated>
    1.30 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Photos' />
    1.31 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
    1.32 + <category scheme='http://www.tbray.org/ongoing/What/' term='Photos' />
    1.33 + <category scheme='http://www.tbray.org/ongoing/What/' term='Garden' />
    1.34 + <category scheme='http://www.tbray.org/ongoing/What/' term='Garden' />
    1.35 + <summary type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>Most people would generally prefer a climate where it&#x2019;s bright and warm most of the time. But for Canadians and others who live where it&#x2019;s not, there are compensations, and one is the experience of spring.  I have a picture.</div></summary>
    1.36 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
    1.37 +<p>Most people would generally prefer a climate where it’s bright
    1.38 +and warm most of the time. But for Canadians and others who live where it’s
    1.39 +not, there are compensations, and one is the experience of
    1.40 +spring.  I have a picture.</p>
    1.41 +<img src="IMGP3247.png" alt="Pear blossoms against cherry blossoms" />
    1.42 +<div class="caption"><p>The blossoms are pear in the foreground, cherry behind.</p></div>
    1.43 +<p>After all the months of 50° North Latitude winter—icy-sharp in most
    1.44 +of Canada, wet and dark here in Vancouver—the soul, the spirit, and the
    1.45 +libido all spring to life when the sun comes back.  We’ve had a solid year of
    1.46 +crappy weather, but this last Saturday through Monday were solidly summery,
    1.47 +bright 
    1.48 +and warm; and in this season the days are already long and each gets
    1.49 +longer so fast you can feel it.</p>
    1.50 +<p>On the back porch, our pear tree’s branches were silhouetted against the
    1.51 +neighbors’ big wild old cherry; the cherry yields no edible fruit but who
    1.52 +cares, it’s beautiful
    1.53 +tree any time of year.</p>
    1.54 +</div></content></entry>
    1.55 +
    1.56 +<entry xml:base='When/200x/2006/04/26/'>
    1.57 + <title>Scott</title>
    1.58 + <link href='Scott' />
    1.59 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/26/Scott</id>
    1.60 + <published>2006-04-26T13:00:00-08:00</published>
    1.61 + <updated>2006-04-26T20:06:50-08:00</updated>
    1.62 + <category scheme='http://www.tbray.org/ongoing/What/' term='Business/Sun' />
    1.63 + <category scheme='http://www.tbray.org/ongoing/What/' term='Business' />
    1.64 + <category scheme='http://www.tbray.org/ongoing/What/' term='Sun' />
    1.65 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
    1.66 +<p>I’ve been watching our internal leadership conference and spending quite a
    1.67 +bit of time talking in the virtual hallways, and I’ve been surprised at
    1.68 +the intensity of feeling about Mr. McNealy.  Yes, there are those
    1.69 +here saying “About bloody time, now we can make some progress” but there’s a
    1.70 +much bigger group that is genuinely emotional about this transition.
    1.71 +Maybe it’s a function of seniority: I never met nor corresponded with Scott, and
    1.72 +he hasn’t been
    1.73 +much of a presence in the company’s conversation in the time I’ve been here.
    1.74 +But there are a lot of smart, seasoned, unsentimental people making it clear
    1.75 +that 
    1.76 +he’s been a major force in their lives, at a more personal level than I’m
    1.77 +used to hearing when people speak about executives.  I guess also that to a
    1.78 +lot of people, Sun’s vision, for which Scott gets some of the credit, was a
    1.79 +radical and wonderful thing.   I first used Unix in 1979 and quit a nice
    1.80 +big-company job
    1.81 +to become a VAX-bsd sysadmin in 1983, so I’ve always kind of
    1.82 +lived inside that vision.
    1.83 +But I’ll tell you one thing, what I’ve been hearing the last couple of days
    1.84 +makes me really regret that I didn’t get to know Scott.</p>
    1.85 +</div></content></entry>
    1.86 +
    1.87 +<entry xml:base='When/200x/2006/04/26/'>
    1.88 + <title>Jacobs, Pictures, Spartans</title>
    1.89 + <link href='Jane-Jacobs' />
    1.90 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/26/Jane-Jacobs</id>
    1.91 + <published>2006-04-26T13:00:00-08:00</published>
    1.92 + <updated>2006-04-26T17:28:59-08:00</updated>
    1.93 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
    1.94 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
    1.95 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Photos' />
    1.96 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
    1.97 + <category scheme='http://www.tbray.org/ongoing/What/' term='Photos' />
    1.98 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
    1.99 +<p><a href="http://en.wikipedia.org/wiki/Jane_Jacobs">Jane Jacobs</a> died;
   1.100 +the city I live in, Vancouver, is pretty solidly Jacobsian both in its current
   1.101 +shape and its planning dogma.  By choosing to live here I’m empirically a
   1.102 +fan.  Oddly, few have remarked how great Jacobs
   1.103 +<em>looked</em>; her face commanded the eye.  Which leads me Alex
   1.104 +Waterhouse-Hayward’s wonderful 
   1.105 +<a href="http://www.alexwaterhousehayward.com/blog/2006/04/jane-jacobs-viveca-lindfors_26.html">Jane Jacobs &amp; Viveca Lindfors</a>;
   1.106 +surprising portraits and thoughts on decoration.  W-H’s blog has become one of
   1.107 +only two or three that I 
   1.108 +stab at excitedly whenever I see something new.  For example, see 
   1.109 +<a href="http://www.alexwaterhousehayward.com/blog/archives/2006_04_01_archive.html#114476408248660848">Sex Crimes, Homicide and Drugs</a>
   1.110 +and yes, that’s what it’s about.
   1.111 +Staying with the death-and-betrayal theme, and apparently (but not really)
   1.112 +shifting back 2&#xbd; millennia, see John Cowan’s
   1.113 +<a href="http://recycledknowledge.blogspot.com/2006/04/war-after-simonides.html">The
   1.114 +War (after Simonides)</a>, being careful to look closely at the links.
   1.115 +I’ve
   1.116 +<a href="http://www.tbray.org/ongoing/When/200x/2003/03/24/Herodotus">written</a>
   1.117 +about those same wars.</p>
   1.118 +</div></content></entry>
   1.119 +
   1.120 +<entry xml:base='When/200x/2006/04/25/'>
   1.121 + <title>LAMP and MARS</title>
   1.122 + <link href='Scaling-Rails' />
   1.123 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/25/Scaling-Rails</id>
   1.124 + <published>2006-04-25T13:00:00-08:00</published>
   1.125 + <updated>2006-04-26T07:24:06-08:00</updated>
   1.126 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Web' />
   1.127 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.128 + <category scheme='http://www.tbray.org/ongoing/What/' term='Web' />
   1.129 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Sun' />
   1.130 + <category scheme='http://www.tbray.org/ongoing/What/' term='Sun' />
   1.131 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.132 +<p>At
   1.133 +<a href="/ongoing/When/200x/2006/04/13/RoR">that Rails conference</a>, when I
   1.134 +was
   1.135 +<a href="http://blog.garbledygook.com/2006/04/17/ruby-on-rails-podcast-tim-bray-ruby-on-rails-podcast/">talking</a>
   1.136 +to
   1.137 +<a href="http://jroller.com/page/obie">Obie Fernandez</a>, he asked, more or
   1.138 +less “How can Sun love us?  We’re not Java” and I said, more or less, “Hey,
   1.139 +you’re programmers, you write software and there have to be computers to run
   1.140 +it, we sell computers, why wouldn’t we love you?”  Anyhow, we touched on
   1.141 +parallelism a bit and I talked up the
   1.142 +<a href="http://www.sun.com/processors/UltraSPARC-T1/">T1</a>; 
   1.143 +Obie took that ball and 
   1.144 +<a href="http://jroller.com/page/obie?entry=will_ultrasparc_t1_emerge_as">ran with it</a>,
   1.145 +saying all sorts of positive things about synergy between Rails’
   1.146 +shared-nothing architecture and our multicore systems.  Yeah, well, good in
   1.147 +theory, but I’m too old to make that kind of prediction without running some
   1.148 +tests.  Hah, it turns out that
   1.149 +<a href="http://joyent.com/">Joyent</a> has been
   1.150 +<a href="http://scalewithrails.com/">doing that</a>, and have
   1.151 +<a href="http://scalewithrails.com/downloads/ScaleWithRails-April2006.pdf">76
   1.152 +PDF slides</a> on the subject.
   1.153 +If you care about big-system scaling issues, read the whole thing; a little
   1.154 +long, but amusing and with hardly any bullet lists.  If you’re a Sun
   1.155 +shareholder looking for a pick-me up, check out slides 40-41, 49, and 52-74.
   1.156 +Oh, I gather that the T1, Solaris, and ZFS are OK for Java too.
   1.157 +<i>[Update: The title was just “SAMR”, as in LAMP with two new letters.  
   1.158 +Enough people didn’t get it that I was forced to think about it, and MARS
   1.159 +works better anyhow.]</i></p>
   1.160 +</div></content></entry>
   1.161 +
   1.162 +<entry xml:base='When/200x/2006/04/25/'>
   1.163 + <title>Real-Time Journalism</title>
   1.164 + <link href='Talk-With-Berlind' />
   1.165 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/25/Talk-With-Berlind</id>
   1.166 + <published>2006-04-25T13:00:00-08:00</published>
   1.167 + <updated>2006-04-26T06:40:19-08:00</updated>
   1.168 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Journalism' />
   1.169 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   1.170 + <category scheme='http://www.tbray.org/ongoing/What/' term='Journalism' />
   1.171 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Syndication' />
   1.172 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.173 + <category scheme='http://www.tbray.org/ongoing/What/' term='Syndication' />
   1.174 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.175 +<p>I got email late yesterday from
   1.176 +<a href="http://blogs.zdnet.com/bio.php#berlind">David Berlind</a>: “Hey, can
   1.177 +I call you for a minute?”  He wanted commentary on
   1.178 +<a href="http://blogs.zdnet.com/BTL/?p=2906">a story he was writing</a> that I
   1.179 +think is about the potential for intellectual-property lock-ins on RSS and Atom
   1.180 +extensions.  I say “I think is about” because the headline is “Will or could
   1.181 +RSS get forked?”.  After a few minutes’ chat, David asked if he could record
   1.182 +for a podcast, and even though I only had a cellphone, the audio came out OK.
   1.183 +The conversation was rhythmic: David brought up a succession of potential
   1.184 +issues and answered each along the lines of “Yes, it’s reasonable to worry
   1.185 +about that, but in this 
   1.186 +case I don’t see any particular problems.”  
   1.187 +Plus I emitted a mercifully-brief rant on the difference between protocols,
   1.188 +data, and software.
   1.189 +On the one hand, I thought David could have been a 
   1.190 +little clearer that I was pushing back against the thrust of his story, but on
   1.191 +the other hand he included the whole conversation right
   1.192 +there in the piece, so anyone who actually cares can listen and find out what
   1.193 +I actually said, not what I think I said nor what David reported I said.
   1.194 +I find this raw barely-intermediated journalism (we
   1.195 +talk on the phone this afternoon, it’s on the Web in hours) a little
   1.196 +shocking still.
   1.197 +On balance, it’s better than the way we used to do things.</p>
   1.198 +</div></content></entry>
   1.199 +
   1.200 +<entry xml:base='When/200x/2006/04/24/'>
   1.201 + <title>The Transition Explained</title>
   1.202 + <link href='CEO-Transition' />
   1.203 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/24/CEO-Transition</id>
   1.204 + <published>2006-04-24T13:00:00-08:00</published>
   1.205 + <updated>2006-04-24T16:49:05-08:00</updated>
   1.206 + <category scheme='http://www.tbray.org/ongoing/What/' term='Business/Sun' />
   1.207 + <category scheme='http://www.tbray.org/ongoing/What/' term='Business' />
   1.208 + <category scheme='http://www.tbray.org/ongoing/What/' term='Sun' />
   1.209 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.210 +<p>It’s not that complicated, really.
   1.211 +Bloggers are
   1.212 +<a href="http://www.sun.com/2006-0418/js/index.jsp">taking over the world</a>.
   1.213 +Resistance is futile; you will be assimilated.</p>
   1.214 +</div></content></entry>
   1.215 +
   1.216 +<entry xml:base='When/200x/2006/04/24/'>
   1.217 + <title>5&#x272d;&#x266b;: One More Cup of Coffee</title>
   1.218 + <link href='One-More-Cup-Of-Coffee' />
   1.219 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/24/One-More-Cup-Of-Coffee</id>
   1.220 + <published>2006-04-24T13:00:00-08:00</published>
   1.221 + <updated>2006-04-24T13:00:00-08:00</updated>
   1.222 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Music/Recordings' />
   1.223 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
   1.224 + <category scheme='http://www.tbray.org/ongoing/What/' term='Music' />
   1.225 + <category scheme='http://www.tbray.org/ongoing/What/' term='Recordings' />
   1.226 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Music/5 Stars' />
   1.227 + <category scheme='http://www.tbray.org/ongoing/What/' term='5 Stars' />
   1.228 + <summary type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>I&#x2019;m not really a <a href='http://en.wikipedia.org/wiki/Bob_Dylan'>Bob Dylan</a> fan.  A voice like that, and a tunesmithing talent like that, come along only a few times per century, but he&#x2019;s still kind of irritating. That aside, the song <cite>One More Cup of Coffee</cite>, from the 1976 album <a href='http://en.wikipedia.org/wiki/Desire_%28album%29'>Desire</a>, can&#x2019;t be ignored; wonderful tune, wonderful orchestration, wonderful performance. <i>(&#x201c;5&#x272d;&#x266b;&#x201d; series introduction <a href='/ongoing/When/200x/2006/01/23/5-Star-Music'>here</a>; with <a href='/ongoing/When/200x/2006/01/23/5-Star-Music#p-1'>an explanation</a> of why the title may look broken.)</i></div></summary>
   1.229 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.230 +<p>I’m not really a
   1.231 +<a href="http://en.wikipedia.org/wiki/Bob_Dylan">Bob Dylan</a> fan.  A voice
   1.232 +like that, and a tunesmithing talent like that, come along only a few times
   1.233 +per century, but he’s still kind of irritating.
   1.234 +That aside, the song <cite>One More Cup of Coffee</cite>, from the 1976 album
   1.235 +<a href="http://en.wikipedia.org/wiki/Desire_%28album%29">Desire</a>, can’t be
   1.236 +ignored; wonderful tune, wonderful orchestration, wonderful performance.
   1.237 +<i>(“5✭♫” series introduction <a href="/ongoing/When/200x/2006/01/23/5-Star-Music">here</a>;
   1.238 +with <a href="/ongoing/When/200x/2006/01/23/5-Star-Music#p-1">an
   1.239 +explanation</a> of why the title may look broken.)</i></p>
   1.240 +<img src="Desire.png" class="inline" alt="Desire, by Bob Dylan" />
   1.241 +<h2 id='p-1'>The Context</h2>
   1.242 +<p>Nothing I can possibly write will add any wisdom to the
   1.243 +millions of words, some 90% of them in excess of needs, written on the subject
   1.244 +of this particular person.</p>
   1.245 +<p>A personal statement: Bob Dylan has long irritated me for, during the first
   1.246 +thirty years or 
   1.247 +so of his career, never having given a straight answer to a straight question,
   1.248 +and for writing songs with dozens of boring verses.  But they’ll still be
   1.249 +listening 
   1.250 +to lots of his performances long after I’m dead, and in recent years he’s
   1.251 +become a better, more direct, interview.</p>
   1.252 +<p>My taste in Dylan is a little unusual: once you get past <cite>One More Cup
   1.253 +of Coffee</cite>, my favorites would be <cite>Baby Let Me Follow You
   1.254 +Down</cite> (from the <cite>Last Waltz</cite> soundtrack) and 
   1.255 +<cite>Crash on the Levee (Down in the Flood)</cite> from
   1.256 +<a href="http://en.wikipedia.org/wiki/The_Basement_Tapes">The Basement
   1.257 +Tapes</a>.</p>
   1.258 +<p><cite>Desire</cite>, the record, is hit and miss. <cite>Joey</cite>,
   1.259 +glorification of the life of some mafioso, is flawed in concept
   1.260 +and unlistenable in execution.  <cite>Hurricane</cite>, whatever you think
   1.261 +about
   1.262 +<a href="http://en.wikipedia.org/wiki/Rubin_Carter">Mr. Carter</a>, that song
   1.263 +rocks; and <cite>Isis</cite> hits pretty hard too.</p>
   1.264 +<h2 id='p-2'>The Music</h2>
   1.265 +<p>Is there anything in <cite>One More Cup of Coffee</cite> that’s not
   1.266 +perfect?  Well yes, in the verses, the
   1.267 +lyrics on occasion drag (“He oversees his kingdom / So no stranger does
   1.268 +intrude / His voice it trembles as he calls out / For another plate of food”).
   1.269 +But apart from that, the sentiment is compelling,
   1.270 +<a href="http://en.wikipedia.org/wiki/Scarlet_Rivera">Scarlet Rivera’s</a>
   1.271 +violin is beautifully scored and played, the tune is to die for, and the
   1.272 +backing vocals are by Emmylou Harris, who you can bet is going to be here in
   1.273 +the 5-✭ series one of these days.
   1.274 +And while there’s not much middle ground on the subject of Dylan’s singing, if
   1.275 +you like it, you’ll <em>really</em> like this song.</p>
   1.276 +<p>Listen to the choruses: Bob and Emmylou veer wildly around the rhythm, then
   1.277 +coalesce on the beat when it matters, and they’re making it
   1.278 +up as they go along, they’re wholly inhabiting the moment, and it’s
   1.279 +quite, quite perfect.</p>
   1.280 +<h2 id='p-3'>Sampling It</h2>
   1.281 +<p>Oh yeah, it’s out there.  And there’s a live version too; but the smart
   1.282 +thing  would be to go buy the un-compressed un-DRM’ed shiny round silver
   1.283 +version of <cite>Desire</cite>; it’s a keeper.</p>
   1.284 +</div></content></entry>
   1.285 +
   1.286 +<entry xml:base='When/200x/2006/04/24/'>
   1.287 + <title>Atomic Monday</title>
   1.288 + <link href='Atomic-Monday' />
   1.289 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/24/Atomic-Monday</id>
   1.290 + <published>2006-04-24T13:00:00-08:00</published>
   1.291 + <updated>2006-04-24T00:44:06-08:00</updated>
   1.292 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Syndication' />
   1.293 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.294 + <category scheme='http://www.tbray.org/ongoing/What/' term='Syndication' />
   1.295 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Atom' />
   1.296 + <category scheme='http://www.tbray.org/ongoing/What/' term='Atom' />
   1.297 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.298 +<p>First of all, implementors of anything Atom-related need to spend some time
   1.299 +<a href="http://golem.ph.utexas.edu/~distler/blog/archives/000793.html">chez
   1.300 +Jacques Distler</a>; in particular, the conversation that plays out in the
   1.301 +comments. Second, there’s this piece of software called
   1.302 +<a href="http://www.planetplanet.org/">Planet Planet</a> that allows you to
   1.303 +make an aggregate web page by reading lots of feeds; for example, see
   1.304 +<a href="http://www.planetapache.org/">Planet Apache</a> or
   1.305 +<a href="http://planetsun.org/">Planet Sun</a>.
   1.306 +Sam Ruby decided that its Atom support needed some work, so
   1.307 +<a href="http://www.intertwingly.net/blog/2006/04/23/Adding-Atom-support-to-PlanetPlanet">he did
   1.308 +it</a>.  Now, here’s the exciting part: he pinged me over the weekend and said
   1.309 +“Hey, look at this” wanting to show me his cleverly-Atomized
   1.310 +Planet Intertwingly feed. 
   1.311 +I looked at it in
   1.312 +<a href="http://ranchero.com/netnewswire/">NetNewsWire</a> and was puzzled for
   1.313 +a moment; some but not all of the 
   1.314 +things in the feed were highlighted as unread, even though this was the first
   1.315 +time I’d seen it.  Then the light went on. 
   1.316 +This
   1.317 +is Atom doing <em>exactly what we went to all that trouble to make it do</em>.
   1.318 +NetNewsWire has good Atom support and, because Atom entries all have unique
   1.319 +IDs and timestamps,  it can
   1.320 +tell that it’s seen lots of those entries before in other feeds that I
   1.321 +subscribe to.  That’s how I found Jacques’ piece.  This is huge; anyone who
   1.322 +uses synthetic or aggregated feeds knows that dupes are a big problem, showing
   1.323 +up all over the place.
   1.324 +No longer, Atom makes that problem go away.</p>
   1.325 +</div></content></entry>
   1.326 +
   1.327 +<entry xml:base='When/200x/2006/04/22/'>
   1.328 + <title>Hyatt on the High-Res Web</title>
   1.329 + <link href='High-Res-Web' />
   1.330 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/22/High-Res-Web</id>
   1.331 + <published>2006-04-22T13:00:00-08:00</published>
   1.332 + <updated>2006-04-23T17:12:18-08:00</updated>
   1.333 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Web' />
   1.334 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.335 + <category scheme='http://www.tbray.org/ongoing/What/' term='Web' />
   1.336 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Presentation' />
   1.337 + <category scheme='http://www.tbray.org/ongoing/What/' term='Presentation' />
   1.338 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.339 +<p>Check out Dave Hyatt’s
   1.340 +<a href="http://webkit.opendarwin.org/blog/?p=55">excellent write-up</a> on
   1.341 +designing and rendering Web pages so they take advantage of the
   1.342 +higher-resolution screens that <em>may</em> be coming our way. 
   1.343 +I emphasize “may” because I’ve seen how slowly we’ve picked up pixels over
   1.344 +the years. The first really substantial screen I ever worked on was a
   1.345 +1988-vintage Sun workstation with about a million pixels.  The Mac on my
   1.346 +lap right now, which has 125 times as much memory as that workstation, has
   1.347 +only 1.38 million pixels.
   1.348 +Anyhow, Hyatt has some smart things to say on the issues,
   1.349 +which are trickier than you might think.  I suspect that sometime in a couple of
   1.350 +years, if I still care about <span class='o'>ongoing</span>, I’m  going to
   1.351 +have to go back and reprocess all the images so that higher-res versions are
   1.352 +available for those who have the screens and don’t mind downloading bigger
   1.353 +files. 
   1.354 +Anyhow, Dave’s piece may be slightly misleading in that he talks about SVG
   1.355 +as though 
   1.356 +it’s something coming in the future.  Not so, check out
   1.357 +<a href="http://zcorpan.1go.dk/sandbox/svg/atom/.xml">this nifty SVG Atom
   1.358 +logo</a>, which works fine in all the Mozilla browsers I have here.
   1.359 +Load it up, resize the window, and watch what happens.  Then do a “view
   1.360 +source”.
   1.361 +<i>[Update:
   1.362 +<a href="http://blog.codedread.com">Jeff Schiller</a> writes to tell me that
   1.363 +Opera 9 does SVG (and Opera 8 “SVG Tiny”) too.]
   1.364 +[<a href="http://www.freeke.org/ffg">Dave Walker</a> writes: Though the shipping version of Safari doesn’t support SVG,
   1.365 +<a href="http://nightly.webkit.org/builds/Latest-WebKit-SVN.dmg">the
   1.366 +nightlies</a> do.]
   1.367 +[<a href="http://www.davelemen.com/archives/2006/04/is_it_time_for_jpeg_2000_to_go_mainstream.html">Dave Lemen</a>
   1.368 +points to
   1.369 +<a href="http://en.wikipedia.org/wiki/JPEG-2000">JPEG 2000</a> as possibly
   1.370 +useful in a high-res context.]</i></p>
   1.371 +</div></content></entry>
   1.372 +
   1.373 +<entry xml:base='When/200x/2006/04/23/'>
   1.374 + <title>Wrong About the Infield Fly Rule</title>
   1.375 + <link href='Wrong-About-the-Infield-Fly-Rule' />
   1.376 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/23/Wrong-About-the-Infield-Fly-Rule</id>
   1.377 + <published>2006-04-23T13:00:00-08:00</published>
   1.378 + <updated>2006-04-23T15:02:41-08:00</updated>
   1.379 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Family' />
   1.380 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   1.381 + <category scheme='http://www.tbray.org/ongoing/What/' term='Family' />
   1.382 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.383 +<p>My brother
   1.384 +<a href="http://takingalongview.blogspot.com/">Rob</a> is really taking to
   1.385 +this blogging medium.  Check out his recent
   1.386 +<a href="http://takingalongview.blogspot.com/2006/04/credo.html">Credo</a>,
   1.387 +and also the only instance I’ve seen of
   1.388 +<a href="http://takingalongview.blogspot.com/2006/04/ode-to-96-chevy-lumina.html">Anglo-Saxon alliterative poetry</a>
   1.389 +applied to a mini-van.</p>
   1.390 +</div></content></entry>
   1.391 +
   1.392 +<entry xml:base='When/200x/2004/12/12/'>
   1.393 + <title>Statistics</title>
   1.394 + <link href='BMS' />
   1.395 + <id>http://www.tbray.org/ongoing/When/200x/2004/12/12/BMS</id>
   1.396 + <published>2004-12-12T12:00:00-08:00</published>
   1.397 + <updated>2006-04-23T10:10:02-08:00</updated>
   1.398 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Publishing' />
   1.399 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.400 + <category scheme='http://www.tbray.org/ongoing/What/' term='Publishing' />
   1.401 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Web' />
   1.402 + <category scheme='http://www.tbray.org/ongoing/What/' term='Web' />
   1.403 + <summary type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>Almost every Sunday I grab the week&#x2019;s <span class="o">ongoing</span> logfiles and update my numbers. I find it interesting and maybe others will too, so  this entry is now the charts&#x2019; permanent home. I&#x2019;ll update it most weeks, probably. <i>[Updated: 2006/04/23.]</i></div></summary>
   1.404 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.405 +<p>Almost every Sunday I grab the week’s <span class='o'>ongoing</span>
   1.406 +logfiles and update my numbers.
   1.407 +I find it interesting
   1.408 +and maybe others will too, so 
   1.409 +this entry is now the charts’ permanent home. I’ll update it most weeks,
   1.410 +probably.
   1.411 +<i>[Updated: 2006/04/23.]</i></p>
   1.412 +<img src="Browser-Market-Share.png" alt="Browser market shares at ‘ongoing’" />
   1.413 +<div class="caption"><p>Browsers visiting <span class='o'>ongoing</span>,
   1.414 +percent.</p></div>
   1.415 +<img src="Browsers-via-search.png" alt="Browser market shares at ‘ongoing’, visitors via search engines" />
   1.416 +<div class="caption"><p>Browsers visiting <span class='o'>ongoing</span> via
   1.417 +search engines, percent.</p></div>
   1.418 +<img src="Search-Engines.png" alt="Search engine market shares at ‘ongoing’" />
   1.419 +<div class="caption"><p>Search referrals to <span
   1.420 +class='o'>ongoing</span> .</p></div>
   1.421 +<img src="Feeds.png" alt="RSS and Atom feed fetches" />
   1.422 +<div class="caption"><p>Fetches of the RSS 2.0 and Atom 1.0 feeds.</p></div>
   1.423 +<p>The notes on usage and source code will return in coming weeks when I get
   1.424 +the cycles to rewrite this whole article.</p>
   1.425 +<h2 id='p-1'>What a “Hit” Means</h2>
   1.426 +<p>I recently
   1.427 +<a href="/ongoing/When/200x/2006/02/07/Thumbnail">updated</a> the
   1.428 +<a href="/ongoing/misc/Colophon"><span class='o'>ongoing</span> software</a>
   1.429 +(but haven’t updated the Colophon I see, oops).
   1.430 +Anyhow, the <code>XMLHttpRequest</code> now issued by each page seems to be a
   1.431 +pretty reliable counter of the number of actual browsers with humans behind
   1.432 +them reading the pages.  I checked against
   1.433 +<a href="/ongoing/When/200x/2005/12/04/Google-Analytics">Google Analytics</a>
   1.434 +and the numbers agreed to within a dozen or two on days with 5,000 to 10,000
   1.435 +page views; interestingly, Google Analytics was always 10 or 20 views
   1.436 +higher.</p>
   1.437 +<p>Anyhow, do <em>not</em> conclude that now I know how many people are
   1.438 +reading whatever it is I write here; because I publish lots of short pieces
   1.439 +that are all there in my RSS feed, and anyone reading my Atom feed gets the
   1.440 +full content of everything.
   1.441 +I and I have <em>no #&amp;*!$ idea</em> how many people look at my feeds.</p>
   1.442 +<p>By the way, this was the first time in weeks and weeks that I’d looked at the
   1.443 +Analytics numbers, and they showed almost exactly zero change from the report
   1.444 +linked above.  So I’m going to turn them off; they’re a little too intrusive
   1.445 +and I think may be slowing page loads.</p>
   1.446 +<p>Anyhow, I ran some detailed statistics on the traffic for Wednesday,
   1.447 +February 8th, 2006.</p>
   1.448 +<table cellspacing="3" cellpadding="2" class="wltable">
   1.449 +<tr valign="top"><td>Total connections to the server</td><td align="right">180,428</td></tr>
   1.450 +<tr valign="top"><td>Total successful GET transactions</td><td align="right">155,507</td></tr>
   1.451 +<tr valign="top"><td>Total fetches of the RSS and Atom feeds</td><td align="right">88,450</td></tr>
   1.452 +<tr valign="top"><td>Total GET transactions that actually fetched data (i.e. status code
   1.453 +200 as opposed to 304)</td><td align="right">87,271</td></tr>
   1.454 +<tr valign="top"><td>Total GETs of actual ongoing pages (i.e. not CSS, js, or
   1.455 +images)</td><td align="right">18,444</td></tr>
   1.456 +<tr valign="top"><td>Actual human page-views</td><td align="right">6,348</td>
   1.457 +</tr>
   1.458 +</table>
   1.459 +<p>So, there you have it.  Doing a bit of rounding, if you take the 180K
   1.460 +transactions and subtract the 90K feed fetches and the 6000 actual human page
   1.461 +views, you’re left with 84,000 or so “Web overhead” transactions, mostly
   1.462 +stylesheets and graphics and so on.
   1.463 +For every human who viewed a page, it was fetched almost twice again by
   1.464 +various kinds of robots and non-browser automated agents.</p>
   1.465 +<p>It’s amazing that the whole thing works at all.</p>
   1.466 +</div></content></entry>
   1.467 +
   1.468 +<entry xml:base='When/200x/2006/04/18/'>
   1.469 + <title>XML Automaton</title>
   1.470 + <link href='XML-Grammar' />
   1.471 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/18/XML-Grammar</id>
   1.472 + <published>2006-04-18T13:00:00-08:00</published>
   1.473 + <updated>2006-04-23T08:25:56-08:00</updated>
   1.474 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/XML' />
   1.475 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.476 + <category scheme='http://www.tbray.org/ongoing/What/' term='XML' />
   1.477 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Coding' />
   1.478 + <category scheme='http://www.tbray.org/ongoing/What/' term='Coding' />
   1.479 + <summary type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>In December of 1996 I released a piece of software called <a href='http://www.textuality.com/Lark/'>Lark</a>, which was the world&#x2019;s first <a href='http://www.w3.org/TR/REC-xml/#dt-xml-proc'>XML Processor</a> (as the term is defined in the <a href='http://www.w3.org/TR/REC-xml/'>XML Specification</a>). It was successful, but I stopped maintaining it in 1998 because lots of other smart people, and some big companies like Microsoft, were shipping perfectly good processors.  I never <em>quite</em> open-sourced it, holding back one clever bit in the moronic idea that I could make money out of Lark somehow. The magic sauce is a finite state machine that can be used to parse XML 1.0. Recently, someone out there needed one of those, so I thought I&#x2019;d publish it, with some commentary on Lark&#x2019;s construction and an amusing anecdote about the name. I doubt there are more than twelve people on the planet who care about this kind of parsing arcana. <i>[Rick Jelliffe  <a href='http://www.oreillynet.com/xml/blog/2006/04/xml_in_xml.html'>has upgraded</a> the machine].</i></div></summary>
   1.480 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.481 +<p>In December of 1996 I released a piece of software called
   1.482 +<a href="http://www.textuality.com/Lark/">Lark</a>, which was
   1.483 +the world’s first
   1.484 +<a href="http://www.w3.org/TR/REC-xml/#dt-xml-proc">XML Processor</a> (as the
   1.485 +term is defined in the
   1.486 +<a href="http://www.w3.org/TR/REC-xml/">XML Specification</a>).
   1.487 +It was successful, but I stopped maintaining it in 1998 because lots of other
   1.488 +smart people, and some big companies like Microsoft, were shipping perfectly
   1.489 +good processors.  I never <em>quite</em> open-sourced it, holding back one
   1.490 +clever bit in the moronic idea that I could make money out of Lark somehow.
   1.491 +The magic sauce is a finite state machine that can be used to parse XML 1.0.
   1.492 +Recently, someone out there needed one of those, so I thought I’d publish
   1.493 +it, with some commentary on Lark’s construction and an amusing anecdote about
   1.494 +the name.
   1.495 +I doubt there are more than twelve people on the planet who care about
   1.496 +this kind of parsing arcana.
   1.497 +<i>[Rick Jelliffe 
   1.498 +<a href="http://www.oreillynet.com/xml/blog/2006/04/xml_in_xml.html">has
   1.499 +upgraded</a> the machine].</i></p>
   1.500 +<h2 id='p-1'>Why “Lark”?</h2>
   1.501 +<p><a href="http://www.laurenwood.org/anyway/">Lauren</a> and I went to
   1.502 +Australia in late 1996 to visit her mother and to get married, which we
   1.503 +did on November 30th.  Forty-eight hours later, Lauren twisted her knee
   1.504 +badly enough that she was pretty well
   1.505 +confined to a sofa for the rest of our Australian vacation.</p>
   1.506 +<p>So I broke out my computer and finished the work I’d already started on my
   1.507 +XML processor, and decided to call it Lark for <b>La</b>uren’s <b>R</b>ight
   1.508 +<b>K</b>nee.</p>
   1.509 +<h2 id='p-2'>How Lark Worked</h2>
   1.510 +<p>Lark was a pure
   1.511 +<a href="http://en.wikipedia.org/wiki/Deterministic_finite_state_machine">deterministic
   1.512 +finite automaton</a> (DFA)
   1.513 +parser, with a little teeny state stack.
   1.514 +Some of its transitions were labeled with named “events” that would provoke
   1.515 +the parser to do something if, for example, it had just recognized a start tag
   1.516 +or whatever.</p>
   1.517 +<p>DFA-driven parsers are a common enough design pattern, although I think
   1.518 +Lark is the only example in the XML space.
   1.519 +There are well-known parser generators such as
   1.520 +<a href="http://en.wikipedia.org/wiki/Yacc">yacc</a>, 
   1.521 +<a href="http://en.wikipedia.org/wiki/GNU_bison">GNU bison</a>, and
   1.522 +<a href="https://javacc.dev.java.net/">javacc</a>,
   1.523 +usually used in combination with lexical scanners such as
   1.524 +<a href="http://en.wikipedia.org/wiki/Flex_lexical_analyser">flex</a> so that
   1.525 +you can write your grammar in terms of tokens not characters.
   1.526 +Also, they handle LALR langauges, so the parsing technique is quite a bit
   1.527 +richer than a pure state machine.</p>
   1.528 +<p>I thought I had a better idea.  The grammar of XML is simple
   1.529 +enough, and the syntax characters few enough, that I thought I could just
   1.530 +write down the state machine by hand.
   1.531 +So that’s what I did, inventing a special-purpose DFA-description
   1.532 +language for the purpose.</p>
   1.533 +<p>Then I had a file called <code>Lark.jin</code> which was really a Java
   1.534 +program that used the state machine to parse XML.  The transition “events”
   1.535 +in the machine were mapped to <code>case</code> labels in a huge
   1.536 +<code>switch</code> construct.  Then there was a horrible, <em>horrible</em>
   1.537 +Perl program that read the <code>Lark.jin</code> and the automaton,
   1.538 +generated the DFA tables in Java syntax, inserted them into the code and 
   1.539 +produced <code>Lark.java</code>, which you actually compiled
   1.540 +to make the parser.</p>
   1.541 +<p>So while Java doesn’t have a preprocessor, Lark did, which made quite a few
   1.542 +things easier.</p>
   1.543 +<p>There were a lot of tricks; some of the state transitions 
   1.544 +weren’t on characters, they were on XML character classes such as
   1.545 +<code>NameChar</code> and so on.
   1.546 +This made the automaton easier to write, and in fact, to keep the class files
   1.547 +small, the character-class transitions persisted into the Java form, and the
   1.548 +real DFA was built at startup time.
   1.549 +These days, quick startup might be more important than <code>.class</code>
   1.550 +file size.</p>
   1.551 +<h2 id='p-3'>What Was Good</h2>
   1.552 +<p>It was <em>damn</em> fast.  James Clark managed to hand-craft a
   1.553 +Java-language XML parser called
   1.554 +<a href="http://jclark.com/xml/xp/index.html">XP</a> that was a little faster
   1.555 +than Lark, but he did that by clever I/O buffering, and I was determined to
   1.556 +leapfrog him by improving my I/O.</p>
   1.557 +<p>This was before the time of standardized XML APIs, but Lark had a stream API
   1.558 +that influenced SAX, and a DOM-like tree API; both worked just fine.
   1.559 +Lark is one of very few parsers ever to have survived the
   1.560 +<a href="http://www.securityfocus.com/archive/1/303509/2002-12-13/2002-12-19/0">billion
   1.561 +laughs attack</a>.</p>
   1.562 +<p>Lark was put into production in quite a few deployments, and the flow of
   1.563 +bug reports slowed to a trickle.
   1.564 +Then in 1998 I noticed that IBM and Microsoft and BEA and everyone else
   1.565 +were building XML Processors, so I decided that it wasn’t worthwhile 
   1.566 +maintaining mine.</p>
   1.567 +<h2 id='p-4'>What Was Bad</h2>
   1.568 +<p>I never got around to teaching it namespaces, which means it wouldn’t be
   1.569 +real useful today.</p>
   1.570 +<p>It had one serious bug that would have been real work to fix and since
   1.571 +nobody ever encountered it in practice, I kept putting it off and never did.
   1.572 +If you had an internal parsed entity reference in an attribute value and the
   1.573 +replacement text included the attribute delimiter (<code>'</code> or
   1.574 +<code>"</code>), it would scream and claim you had a busted XML document.</p>
   1.575 +<h2 id='p-5'>That Automaton</h2>
   1.576 +<p>What happened was,
   1.577 +<a href="http://www.oreillynet.com/pub/au/1712">Rick Jelliffe</a>, who is a
   1.578 +Good Person, was 
   1.579 +<a href="http://www.stylusstudio.com/xmldev/200604/post30110.html">looking for
   1.580 +a FSM for XML</a> and I eventually noticed, and so I sent him mine.</p>
   1.581 +<p>There’s no reason whatsoever to keep it a secret: 
   1.582 +<a href="/ongoing/code/lark/com/textuality/autom.txt">here it is</a>.
   1.583 +Be warned: it’s ugly.</p>
   1.584 +<p>Fortunately, there were only 227 states and 8732 transitions, so the state
   1.585 +number fit into a 
   1.586 +byte; that and the associated event index pack into a short.
   1.587 +To make things even tighter, the transitions were only keyed by characters up
   1.588 +to 127, as in 7-bit ASCII.
   1.589 +Characters higher than that can’t be XML syntax characters, so we’re only
   1.590 +interested whether they fall into classes like <code>NameChar</code> and
   1.591 +<code>NameStartChar</code> and so on.  A 64K <code>byte[]</code> array takes
   1.592 +care of that, each byte having a class bitmask.</p>
   1.593 +<p>As a result of all this jiggery-pokery, the DFA ends up, believe it
   1.594 +or not, constituting a <code>short[227][128]</code>.</p>
   1.595 +<p>Here’s a typical chunk of the automaton:</p>
   1.596 +<pre><code>1. # in Start tag GI
   1.597 +2. State StagGI BustedMarkup {in element type}
   1.598 +3. T $NameC StagGI
   1.599 +4. T $S InStag !EndGI
   1.600 +5. T > InDoc !EndGI !ReportSTag
   1.601 +6. T / EmptyClose !EndGI</code></pre>
   1.602 +<p>This state, called <code>StagGI</code>, is the state where we’re actually
   1.603 +reading the name of a tag, we got here by seeing a <code>&lt;</code> followed
   1.604 +by a <code>NameStart</code> character.<br/>
   1.605 +Line 1 is a comment.<br/>
   1.606 +In line 2 we name the state, and support error reporting, providing the name
   1.607 +of another state to fall back into in case of error, and in the curly braces,
   1.608 +some text to help build an error message.<br/>
   1.609 +Line 3 says that if we see a valid XML Name character, we just stay in this
   1.610 +state.<br/>
   1.611 +Line 4 says that if we see an XML space character, we move to state
   1.612 +<code>InStag</code> and process an <code>EndGI</code> event, which would stash
   1.613 +the characters in the start tag.<br/>And so on.</p>
   1.614 +<h2 id='p-6'>Other Hackery</h2>
   1.615 +<p>An early cut of Lark used String and StringBuffer objects to hold all the
   1.616 +bits and pieces of the XML.  This might be a viable strategy today, but in
   1.617 +1996’s Java it was painfully slow. 
   1.618 +So the code goes to heroic lengths to live in the land of character arrays at
   1.619 +all times, making Strings only when a client program asks for one through the
   1.620 +API.  The performance difference was mind-boggling.</p>
   1.621 +<h2 id='p-7'>An Evil Idea</h2>
   1.622 +<p>If you look at the automaton, and the Lark code, at least half—I’d bet
   1.623 +three quarters—is there to deal with parsing the DTD and then dealing with
   1.624 +entity wrangling.
   1.625 +A whole bunch more is there to support DOM-building and walking.</p>
   1.626 +<p>I bet if I went through and simply removed support for anything coming out
   1.627 +of the <code>&lt;!DOCTYPE></code>, including all entity processing, 
   1.628 +then discarded
   1.629 +the DOM stuff, then added namespace support and SAX and StAX APIs, it would be
   1.630 +less than half its current size.  
   1.631 +Then if I reworked the I/O, knowing what I know now and stealing some tricks
   1.632 +that James Clark uses in
   1.633 +<a href="http://expat.sourceforge.net/">expat</a>, I bet it would
   1.634 +be the fastest Java XML parser on the planet for XML docs without a
   1.635 +DOCTYPE; by a wide margin.  It’s hard to beat a DFA.</p>
   1.636 +<p>And it would still be fully XML 1.0 compliant.  Because (snicker) this is
   1.637 +Java, and your basic core Java now includes an XML parser, so I could simply
   1.638 +instrument Larkette to buffer the prologue and if it saw a DOCTYPE with an
   1.639 +internal subset, defer to Java’s built-in parser.</p>
   1.640 +<p>I’ll probably never do it.  But the thought brings a smile to my face.</p>
   1.641 +</div></content></entry>
   1.642 +
   1.643 +<entry xml:base='When/200x/2006/04/22/'>
   1.644 + <title>Just A Kid</title>
   1.645 + <link href='Just-a-Kid' />
   1.646 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/22/Just-a-Kid</id>
   1.647 + <published>2006-04-22T13:00:00-08:00</published>
   1.648 + <updated>2006-04-22T13:37:58-08:00</updated>
   1.649 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Food and Drink' />
   1.650 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   1.651 + <category scheme='http://www.tbray.org/ongoing/What/' term='Food and Drink' />
   1.652 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.653 +<p>Last weekend, Lauren felt like cooking up home-made Easter eggs, so
   1.654 +the shopping list included “chocolate chips (large bag)”.  I was heading down
   1.655 +the bulk-foods aisle and realized one of the vertical acrylic bins was full of
   1.656 +them.  Someone had been sloppy, and there was a little heap of chocolate chips
   1.657 +on the shelf underneath it.  For a second, I flashed into pure eight-year-old
   1.658 +mode, thinking “Holy cow, there’s a <em>whole bin</em> full of chocolate
   1.659 +chips, and more just lying there!”  I popped a few in my mouth and they were
   1.660 +excellent; semi-sweet, dark, strong, and firm.  I was still in the state that
   1.661 +Buddhists don’t mean when they say “Child’s Mind”, thinking “I
   1.662 +can get as many as I want!”  The list did say “large bag” after all, so I put
   1.663 +a bag under the spout and gleefully jammed the lever <em>all the way
   1.664 +over</em>.  At home, Lauren said “You went overboard, a bit, didn’t you?”
   1.665 +and now we have a plastic canister-full in the pantry which should last us
   1.666 +into 2007.  It’s a good feeling.</p>
   1.667 +</div></content></entry>
   1.668 +
   1.669 +<entry xml:base='When/200x/2006/04/22/'>
   1.670 + <title>Goddess</title>
   1.671 + <link href='Goddess' />
   1.672 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/22/Goddess</id>
   1.673 + <published>2006-04-22T13:00:00-08:00</published>
   1.674 + <updated>2006-04-22T12:25:59-08:00</updated>
   1.675 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Family' />
   1.676 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   1.677 + <category scheme='http://www.tbray.org/ongoing/What/' term='Family' />
   1.678 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Microsoft' />
   1.679 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.680 + <category scheme='http://www.tbray.org/ongoing/What/' term='Microsoft' />
   1.681 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.682 +<p>That would be my wife 
   1.683 +<a href="http://www.laurenwood.org/anyway/">Lauren</a>.  After 
   1.684 +<a href="/ongoing/When/200x/2006/04/16/Mad-at-Microsoft">I b0rked</a> our
   1.685 +Win2K gamebox, I tried re-installing the OS and eventually reduced it to
   1.686 +complete brick-ness, it recognized neither the video adapter nor the network
   1.687 +card.  So Lauren brushed me aside and started wrestling with the problem, and
   1.688 +to make a long story short, it almost completely works again.  At one point
   1.689 +she seemed nearly infinite in her capabilities, sitting in front of the
   1.690 +computer wrangling software updates while knitting baby stuff and looking up
   1.691 +words in a German dictionary for the kid’s homework.  Some of the German nouns
   1.692 +and muttered curses at the Windows install sounded remarkably like each other.
   1.693 +Why would anyone not marry a geek?  The only problem is that Win2K won’t
   1.694 +auto-switch resolutions to play games any more, it gets the frequency wrong
   1.695 +and the LCD goes pear-shaped, you have to hand-select the frequency and
   1.696 +switch into the right resolution first.  LazyWeb?</p>
   1.697 +</div></content></entry>
   1.698 +
   1.699 +<entry xml:base='When/200x/2006/04/21/'>
   1.700 + <title>Routing Around Spotlight</title>
   1.701 + <link href='Routing-Around-Spotlight' />
   1.702 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/21/Routing-Around-Spotlight</id>
   1.703 + <published>2006-04-21T13:00:00-08:00</published>
   1.704 + <updated>2006-04-21T23:16:25-08:00</updated>
   1.705 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Mac OS X/Gripes' />
   1.706 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.707 + <category scheme='http://www.tbray.org/ongoing/What/' term='Mac OS X' />
   1.708 + <category scheme='http://www.tbray.org/ongoing/What/' term='Gripes' />
   1.709 + <summary type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>Herewith two hideously ugly little shell scripts for use when Spotlight refuses to search your mail. Spotlight is a flawed v1.0 implementation of a really good idea and will, I&#x2019;m sure, be debugged in a near-future release. <i>[Update: The LazyWeb is educating me... these are moving targets.]</i></div></summary>
   1.710 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.711 +<p>Herewith two hideously ugly little shell scripts for use when Spotlight
   1.712 +refuses to search your mail.
   1.713 +Spotlight is a flawed v1.0 implementation of a really good idea and will, I’m
   1.714 +sure, be debugged in a near-future release.
   1.715 +<i>[Update: The LazyWeb is educating me... these are moving targets.]</i></p>
   1.716 +<p>My problem is that whereas Mail.app will search my To/From/Subject
   1.717 +lines (slowly, and with a
   1.718 +<a href="/ongoing/When/200x/2005/11/20/UnTiger">really irritating GUI</a>),
   1.719 +the “Entire Message” option just doesn’t work, it returns instantly with no
   1.720 +results.  Yes, I’ve read the hints about making Spotlight re-index,
   1.721 +but it just flatly refuses to work for me.  Mind you, I have a lot of
   1.722 +email, but still, it should at least try.</p>
   1.723 +<p>It turns out I had never really figured out the <code>-print0</code> and
   1.724 +<code>-0</code> idioms that a lot of the shell-command stalwarts now have.
   1.725 +Thanks to Malcolm Tredinnick for raising my consciousness.</p>
   1.726 +<p>This lives in <code>$HOME/bin</code> under the name
   1.727 +<code>mailgrep</code>:</p>
   1.728 +<pre><code>#!/bin/sh
   1.729 +find $HOME/Library/Mail/IMAP* -name '*.emlx' -print0 | \
   1.730 +  xargs -0 fgrep -i $@</code></pre>
   1.731 +<p>Isn’t <code>xargs</code> a funny command?  I’ve discovered that it’s nearly
   1.732 +impossible to describe what does, and then why what it does is necessary, but
   1.733 +there are just a whole bunch of places where you’d be lost without it.</p>
   1.734 +<p>This lives in <code>$HOME/bin/mailview</code>:</p>
   1.735 +<pre><code>#!/bin/sh
   1.736 +find $HOME/Library/Mail/IMAP* -name '*.emlx'  -print0 | \
   1.737 +  xargs -0 fgrep -i -l -Z $@ | \
   1.738 +  xargs -0 open</code></pre>
   1.739 +<p>The first cut of this dodged <code>xargs</code> and used an
   1.740 +incredibly-inefficient and slow chain of <code>-exec</code> arguments to open
   1.741 +the files one at a time with 
   1.742 +<code>view</code> (aka <code>vim</code>), to work around 
   1.743 +a well-known <code>vim</code> misfeature; it complained about the input
   1.744 +not being a terminal and left my Terminal.app keystrokes borked.</p>
   1.745 +<p>But Malcolm, confirming my belief in the broken-ness of <code>vim</code>,
   1.746 +said “Oh, *that* ‘view’.  I thought it was some sexy Mac ‘view my email’ app”.
   1.747 +D’oh, of course; the magic OS X <code>open</code> command does just the right
   1.748 +thing. 
   1.749 +Erm, you might want to run <code>mailgrep</code> before you run
   1.750 +<code>mailview</code>; I’m not sure what would happen if you asked OS X to
   1.751 +open three or four thousand email messages at once.</p>
   1.752 +</div></content></entry>
   1.753 +
   1.754 +<entry xml:base='When/200x/2006/04/21/'>
   1.755 + <title>FSS: Pink Flowers</title>
   1.756 + <link href='Dracon-Help' />
   1.757 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/21/Dracon-Help</id>
   1.758 + <published>2006-04-21T13:00:00-08:00</published>
   1.759 + <updated>2006-04-21T17:19:27-08:00</updated>
   1.760 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Photos' />
   1.761 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
   1.762 + <category scheme='http://www.tbray.org/ongoing/What/' term='Photos' />
   1.763 + <summary type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>Friday Slide Scan #28 is two Eighties florals, one interior, one exterior.  With a confession.</div></summary>
   1.764 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.765 +<p>Friday Slide Scan #28 is two Eighties florals, one interior, one
   1.766 +exterior.  With a confession.</p>
   1.767 +<p>First some spring flowers fallen from a tree, just as now in our front
   1.768 +yard, at dusk.</p>
   1.769 +<img src="0506.png" alt="Fallen pink treeflowers on grass at dusk" />
   1.770 +<p>I’m not sure what these are, but look at the light in the center.  Rewards
   1.771 +enlarging.</p>
   1.772 +<img src="0713.png" alt="Flowers in shadow with light in background" />
   1.773 +<p>Here’s the confession.  Sometimes on Fridays when I’m feeling kinda
   1.774 +burned-out, I knock off work and do these slide scans in the office, because
   1.775 +this is where I have the
   1.776 +<a href="http://www.tbray.org/ongoing/When/200x/2004/04/14/MineIsBigger">big
   1.777 +screen</a>.
   1.778 +Blowing these pictures up to mega-huge, picking away at the old-slide crud and
   1.779 +scanning artifacts, tinkering with the colour balance, and listening; I never
   1.780 +play music while I’m writing or coding seriously, but I play it real loud while
   1.781 +photo-editing.  It’s all pretty well pure pleasure; you just can’t imagine
   1.782 +how good that second one above looks at near-native size.
   1.783 +It reconstitutes the part of my mind that I earn my living with; that’s my
   1.784 +story and I’m sticking to it.</p>
   1.785 +<p>Images in the Friday Slide Scans are from 35mm slides taken between 1953
   1.786 +and 2003 by (in rough chronological order)
   1.787 +<a href="http://www.textuality.com/BillBray/">Bill Bray</a>, 
   1.788 +<a href="/ongoing/When/200x/2004/08/11/MomsGarden">Jean Bray</a>, Tim Bray, Cath
   1.789 +Bray, and
   1.790 +<a href="http://www.laurenwood.org/anyway/">Lauren Wood</a>; when I know
   1.791 +exactly who took one, I’ll say; in this case, at least one is by Cath Bray.
   1.792 +Most but not all of the slides were on Kodachrome; they were digitized using
   1.793 +a Nikon CoolScan 4000 ED scanner and cleaned up by a combination of the Nikon
   1.794 +scanning software and PhotoShop Elements.</p>
   1.795 +</div></content></entry>
   1.796 +
   1.797 +<entry xml:base='When/200x/2006/04/20/'>
   1.798 + <title>Spring Pix</title>
   1.799 + <link href='Spring-Pix' />
   1.800 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/20/Spring-Pix</id>
   1.801 + <published>2006-04-20T13:00:00-08:00</published>
   1.802 + <updated>2006-04-20T23:07:10-08:00</updated>
   1.803 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Places/Vancouver' />
   1.804 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   1.805 + <category scheme='http://www.tbray.org/ongoing/What/' term='Places' />
   1.806 + <category scheme='http://www.tbray.org/ongoing/What/' term='Vancouver' />
   1.807 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Photos' />
   1.808 + <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
   1.809 + <category scheme='http://www.tbray.org/ongoing/What/' term='Photos' />
   1.810 + <summary type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>Three pictures around Vancouver; one of a fresh green springtime tree, two of rotten old buildings being torn down.</div></summary>
   1.811 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.812 +<p>Three pictures around Vancouver; one of a fresh green springtime tree, two
   1.813 +of rotten old buildings being torn down.</p>
   1.814 +<p>There’s nothing quite as fresh as just-sprouted deciduous leaves;
   1.815 +another few weeks and this tree will be just a tree.</p>
   1.816 +<img src="IMG_4656.png" alt="Sunlit fresh young leaves" />
   1.817 +<p>I have a thing about demolition.
   1.818 +The first is a rotten dingy old one-story on Main Street near 23rd, the second
   1.819 +is an unlovely grey mid-rise being torn down to build still more condos at
   1.820 +Homer and Helmcken.</p>
   1.821 +<img src="IMG_4665.png" alt="Demolition site on Main Street, Vancouver" />
   1.822 +<img src="IMG_4671.png" alt="Demolition site at Homer and Helmcken, Vancouver" />
   1.823 +</div></content></entry>
   1.824 +
   1.825 +<entry xml:base='When/200x/2006/04/20/'>
   1.826 + <title>Totten&#x2019;s Trip</title>
   1.827 + <link href='Totten-on-Iraq' />
   1.828 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/20/Totten-on-Iraq</id>
   1.829 + <published>2006-04-20T13:00:00-08:00</published>
   1.830 + <updated>2006-04-20T21:05:22-08:00</updated>
   1.831 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Places/Middle East' />
   1.832 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   1.833 + <category scheme='http://www.tbray.org/ongoing/What/' term='Places' />
   1.834 + <category scheme='http://www.tbray.org/ongoing/What/' term='Middle East' />
   1.835 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.836 +<p><a href="http://www.michaeltotten.com/">Michael J. Totten</a> is a
   1.837 +journalist and blogger who’s back and forth to the 
   1.838 +Middle East and writes about it, quite well in my opinion; he supports this by
   1.839 +freelancing and with his blog’s tip jar.  He gets lots of
   1.840 +link love from the right-wing blogosphere, which is puzzling because Totten is
   1.841 +balanced and clear-eyed and doesn’t seem to have any particular axe to grind.
   1.842 +Recently, he and a friend were 
   1.843 +<a href="http://www.michaeltotten.com/archives/001117.html">having fun in
   1.844 +Istanbul</a> and, on a random drive out into the country, decided on impulse to
   1.845 +keep going, all the way across Turkey and into Iraq; into the Kurdish
   1.846 +mini-state in Iraq’s north, to 
   1.847 +be precise.  It makes a heck of a story, with lots of pictures, in six parts:
   1.848 +<a href="http://www.michaeltotten.com/archives/001119.html">I</a>,
   1.849 +<a href="http://www.michaeltotten.com/archives/001120.html">II</a>,
   1.850 +<a href="http://www.michaeltotten.com/archives/001121.html">III</a>,
   1.851 +<a href="http://www.michaeltotten.com/archives/001124.html">IV</a>,
   1.852 +<a href="http://www.michaeltotten.com/archives/001126.html">V</a>, and
   1.853 +<a href="http://www.michaeltotten.com/archives/001127.html">VI</a>.
   1.854 +</p>
   1.855 +</div></content></entry>
   1.856 +
   1.857 +<entry xml:base='When/200x/2006/04/19/'>
   1.858 + <title>The Cost of AJAX</title>
   1.859 + <link href='The-Cost-of-AJAX' />
   1.860 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/19/The-Cost-of-AJAX</id>
   1.861 + <published>2006-04-19T13:00:00-08:00</published>
   1.862 + <updated>2006-04-20T00:37:46-08:00</updated>
   1.863 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Web' />
   1.864 + <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   1.865 + <category scheme='http://www.tbray.org/ongoing/What/' term='Web' />
   1.866 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.867 +<p>James Governor
   1.868 +<a href="http://www.redmonk.com/jgovernor/archives/001526.html">relays a
   1.869 +question</a> that sounds important
   1.870 +but I think is actively dangerous: do AJAX apps present more of
   1.871 +a server-side load?  The question is dangerous because it’s meaningless and
   1.872 +unanswerable.  Your typical Web page will, in the process of
   1.873 +loading, call back to the server for a bunch of stylesheets and graphics and
   1.874 +scripts and so on: for example, this <span class='o'>ongoing</span> page calls
   1.875 +out to three different graphics, one stylesheet, and one JavaScript file.
   1.876 +It also has one “AJAXy” XMLHttpRequest call.
   1.877 +From the server’s point of view, those are all just requests to dereference
   1.878 +one URI or another.  In the case
   1.879 +of <span class='o'>ongoing</span>, the AJAX request is for a static file less
   1.880 +than 200 bytes in size (i.e. cheap).
   1.881 +On the other hand, it could have been for something that required a
   1.882 +complex outer join on two ten-million-row tables (i.e. <em>very</em>
   1.883 +expensive).  And one of the virtues of 
   1.884 +the Web Architecture is that it hides those differences, the “U” in URI stands
   1.885 +for “Uniform”, it’s a Uniform interface to a resource on the Web that could
   1.886 +be, well, anything.
   1.887 +So saying “AJAX is expensive” (or that it’s cheap) is like saying “A mountain
   1.888 +bike is slower than a battle tank” (or that it’s faster).  
   1.889 +The truth depends on what you’re doing with it. 
   1.890 +In the case of web sites, it depends on how many fetches you do and
   1.891 +where you have to go to get the data to satisfy them.
   1.892 +<span class='o'>ongoing</span> is a pretty quick web site, even though it runs
   1.893 +on a fairly modest server, but
   1.894 +that has nothing to do with AJAX-or-not; it’s because of the particular way
   1.895 +I’ve set up the Web resources that make the pages here.
   1.896 +I’ve
   1.897 +<a href="/ongoing/When/200x/2006/02/14/AJAX-Performance">argued elsewhere</a>
   1.898 +that AJAX can be a performance win, system-wide; but that argument too is
   1.899 +contingent on context, lots of context.</p>
   1.900 +</div></content></entry>
   1.901 +
   1.902 +<entry xml:base='When/200x/2006/04/18/'>
   1.903 + <title>Hao Wu and Graham McMynn</title>
   1.904 + <link href='Hao-Wu' />
   1.905 + <id>http://www.tbray.org/ongoing/When/200x/2006/04/18/Hao-Wu</id>
   1.906 + <published>2006-04-18T13:00:00-08:00</published>
   1.907 + <updated>2006-04-18T22:00:40-08:00</updated>
   1.908 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Places/China' />
   1.909 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   1.910 + <category scheme='http://www.tbray.org/ongoing/What/' term='Places' />
   1.911 + <category scheme='http://www.tbray.org/ongoing/What/' term='China' />
   1.912 + <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Politics' />
   1.913 + <category scheme='http://www.tbray.org/ongoing/What/' term='Politics' />
   1.914 +<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   1.915 +<p>Graham McMynn is a teenager who was kidnapped in Vancouver on April 4th and
   1.916 +freed, in a large, noisy, and
   1.917 +<a href="http://www.cbc.ca/story/news/national/2006/04/12/bcabduction060412.html">newsworthy</a>
   1.918 +police operation, on April 12th.
   1.919 +<a href="http://en.wikipedia.org/wiki/Hao_Wu">Hao Wu</a> is a Chinese
   1.920 +film-maker and
   1.921 +<a href="http://beijingorbust.blogspot.com/">blogger</a> who was kidnapped in
   1.922 +Beijing on February 22nd in a 
   1.923 +small, quiet police operation not intended to be newsworthy, and who has not
   1.924 +been freed.
   1.925 +Read about it
   1.926 +<a href="http://spaces.msn.com/wuhaofamily/">here</a>,
   1.927 +<a href="http://ethanzuckerman.com/haowu/">here</a>, and
   1.928 +<a href="http://rconversation.blogs.com/rconversation/freehaowu/index.html">here</a>.
   1.929 +Making noise about it <em>might</em> influence the government of China to
   1.930 +moderate its actions against Mr. Wu, and can’t do any harm.
   1.931 +Mr. McMynn’s kidnappers were a gaggle of small-time hoodlums, one of whom was
   1.932 +out on bail while awaiting trial for another kidnapping (!).
   1.933 +Mr. Wu’s were police.
   1.934 +In a civilized country, the function of the police force is to deter such
   1.935 +people and arrest them.  A nation where they are the same people?   Nobody
   1.936 +could call it “civilized”.</p> 
   1.937 +</div></content></entry>
   1.938 +
   1.939 +</feed>

mercurial