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

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 <?xml version='1.0' encoding='UTF-8'?>
     2 <!--
     3 Description: Feed title works with full entry
     4 Expect: feed.title.text == 'ongoing'
     5 -->
     6 <feed xmlns='http://www.w3.org/2005/Atom'
     7       xml:base='http://www.tbray.org/ongoing/ongoing.atom'
     8       xml:lang='en-us'>
     9  <title>ongoing</title>
    10  <id>http://www.tbray.org/ongoing/</id>
    11  <link href='./' />
    12  <link rel='self' href='' />
    13  <logo>rsslogo.jpg</logo>
    14  <icon>/favicon.ico</icon>
    15  <updated>2006-04-26T20:10:25-08:00</updated>
    16  <author><name>Tim Bray</name></author>
    17  <subtitle>ongoing fragmented essay by Tim Bray</subtitle>
    18  <rights>All content written by Tim Bray and photos by Tim Bray Copyright Tim Bray, some rights reserved, see /ongoing/misc/Copyright</rights>
    19  <generator uri='/misc/Colophon'>Generated from XML source code using Perl, Expat, XML::Parser, Emacs, Mysql, and ImageMagick.  Industrial strength technology, baby.</generator>
    21 <entry xml:base='When/200x/2006/04/26/'>
    22  <title>Spring in White on White</title>
    23  <link href='Spring-in-White-on-White' />
    24  <id>http://www.tbray.org/ongoing/When/200x/2006/04/26/Spring-in-White-on-White</id>
    25  <published>2006-04-26T13:00:00-08:00</published>
    26  <updated>2006-04-26T20:10:16-08:00</updated>
    27  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Photos' />
    28  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
    29  <category scheme='http://www.tbray.org/ongoing/What/' term='Photos' />
    30  <category scheme='http://www.tbray.org/ongoing/What/' term='Garden' />
    31  <category scheme='http://www.tbray.org/ongoing/What/' term='Garden' />
    32  <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>
    33 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
    34 <p>Most people would generally prefer a climate where it’s bright
    35 and warm most of the time. But for Canadians and others who live where it’s
    36 not, there are compensations, and one is the experience of
    37 spring.  I have a picture.</p>
    38 <img src="IMGP3247.png" alt="Pear blossoms against cherry blossoms" />
    39 <div class="caption"><p>The blossoms are pear in the foreground, cherry behind.</p></div>
    40 <p>After all the months of 50° North Latitude winter—icy-sharp in most
    41 of Canada, wet and dark here in Vancouver—the soul, the spirit, and the
    42 libido all spring to life when the sun comes back.  We’ve had a solid year of
    43 crappy weather, but this last Saturday through Monday were solidly summery,
    44 bright 
    45 and warm; and in this season the days are already long and each gets
    46 longer so fast you can feel it.</p>
    47 <p>On the back porch, our pear tree’s branches were silhouetted against the
    48 neighbors’ big wild old cherry; the cherry yields no edible fruit but who
    49 cares, it’s beautiful
    50 tree any time of year.</p>
    51 </div></content></entry>
    53 <entry xml:base='When/200x/2006/04/26/'>
    54  <title>Scott</title>
    55  <link href='Scott' />
    56  <id>http://www.tbray.org/ongoing/When/200x/2006/04/26/Scott</id>
    57  <published>2006-04-26T13:00:00-08:00</published>
    58  <updated>2006-04-26T20:06:50-08:00</updated>
    59  <category scheme='http://www.tbray.org/ongoing/What/' term='Business/Sun' />
    60  <category scheme='http://www.tbray.org/ongoing/What/' term='Business' />
    61  <category scheme='http://www.tbray.org/ongoing/What/' term='Sun' />
    62 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
    63 <p>I’ve been watching our internal leadership conference and spending quite a
    64 bit of time talking in the virtual hallways, and I’ve been surprised at
    65 the intensity of feeling about Mr. McNealy.  Yes, there are those
    66 here saying “About bloody time, now we can make some progress” but there’s a
    67 much bigger group that is genuinely emotional about this transition.
    68 Maybe it’s a function of seniority: I never met nor corresponded with Scott, and
    69 he hasn’t been
    70 much of a presence in the company’s conversation in the time I’ve been here.
    71 But there are a lot of smart, seasoned, unsentimental people making it clear
    72 that 
    73 he’s been a major force in their lives, at a more personal level than I’m
    74 used to hearing when people speak about executives.  I guess also that to a
    75 lot of people, Sun’s vision, for which Scott gets some of the credit, was a
    76 radical and wonderful thing.   I first used Unix in 1979 and quit a nice
    77 big-company job
    78 to become a VAX-bsd sysadmin in 1983, so I’ve always kind of
    79 lived inside that vision.
    80 But I’ll tell you one thing, what I’ve been hearing the last couple of days
    81 makes me really regret that I didn’t get to know Scott.</p>
    82 </div></content></entry>
    84 <entry xml:base='When/200x/2006/04/26/'>
    85  <title>Jacobs, Pictures, Spartans</title>
    86  <link href='Jane-Jacobs' />
    87  <id>http://www.tbray.org/ongoing/When/200x/2006/04/26/Jane-Jacobs</id>
    88  <published>2006-04-26T13:00:00-08:00</published>
    89  <updated>2006-04-26T17:28:59-08:00</updated>
    90  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
    91  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
    92  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Photos' />
    93  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
    94  <category scheme='http://www.tbray.org/ongoing/What/' term='Photos' />
    95 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
    96 <p><a href="http://en.wikipedia.org/wiki/Jane_Jacobs">Jane Jacobs</a> died;
    97 the city I live in, Vancouver, is pretty solidly Jacobsian both in its current
    98 shape and its planning dogma.  By choosing to live here I’m empirically a
    99 fan.  Oddly, few have remarked how great Jacobs
   100 <em>looked</em>; her face commanded the eye.  Which leads me Alex
   101 Waterhouse-Hayward’s wonderful 
   102 <a href="http://www.alexwaterhousehayward.com/blog/2006/04/jane-jacobs-viveca-lindfors_26.html">Jane Jacobs &amp; Viveca Lindfors</a>;
   103 surprising portraits and thoughts on decoration.  W-H’s blog has become one of
   104 only two or three that I 
   105 stab at excitedly whenever I see something new.  For example, see 
   106 <a href="http://www.alexwaterhousehayward.com/blog/archives/2006_04_01_archive.html#114476408248660848">Sex Crimes, Homicide and Drugs</a>
   107 and yes, that’s what it’s about.
   108 Staying with the death-and-betrayal theme, and apparently (but not really)
   109 shifting back 2&#xbd; millennia, see John Cowan’s
   110 <a href="http://recycledknowledge.blogspot.com/2006/04/war-after-simonides.html">The
   111 War (after Simonides)</a>, being careful to look closely at the links.
   112 I’ve
   113 <a href="http://www.tbray.org/ongoing/When/200x/2003/03/24/Herodotus">written</a>
   114 about those same wars.</p>
   115 </div></content></entry>
   117 <entry xml:base='When/200x/2006/04/25/'>
   118  <title>LAMP and MARS</title>
   119  <link href='Scaling-Rails' />
   120  <id>http://www.tbray.org/ongoing/When/200x/2006/04/25/Scaling-Rails</id>
   121  <published>2006-04-25T13:00:00-08:00</published>
   122  <updated>2006-04-26T07:24:06-08:00</updated>
   123  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Web' />
   124  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   125  <category scheme='http://www.tbray.org/ongoing/What/' term='Web' />
   126  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Sun' />
   127  <category scheme='http://www.tbray.org/ongoing/What/' term='Sun' />
   128 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   129 <p>At
   130 <a href="/ongoing/When/200x/2006/04/13/RoR">that Rails conference</a>, when I
   131 was
   132 <a href="http://blog.garbledygook.com/2006/04/17/ruby-on-rails-podcast-tim-bray-ruby-on-rails-podcast/">talking</a>
   133 to
   134 <a href="http://jroller.com/page/obie">Obie Fernandez</a>, he asked, more or
   135 less “How can Sun love us?  We’re not Java” and I said, more or less, “Hey,
   136 you’re programmers, you write software and there have to be computers to run
   137 it, we sell computers, why wouldn’t we love you?”  Anyhow, we touched on
   138 parallelism a bit and I talked up the
   139 <a href="http://www.sun.com/processors/UltraSPARC-T1/">T1</a>; 
   140 Obie took that ball and 
   141 <a href="http://jroller.com/page/obie?entry=will_ultrasparc_t1_emerge_as">ran with it</a>,
   142 saying all sorts of positive things about synergy between Rails’
   143 shared-nothing architecture and our multicore systems.  Yeah, well, good in
   144 theory, but I’m too old to make that kind of prediction without running some
   145 tests.  Hah, it turns out that
   146 <a href="http://joyent.com/">Joyent</a> has been
   147 <a href="http://scalewithrails.com/">doing that</a>, and have
   148 <a href="http://scalewithrails.com/downloads/ScaleWithRails-April2006.pdf">76
   149 PDF slides</a> on the subject.
   150 If you care about big-system scaling issues, read the whole thing; a little
   151 long, but amusing and with hardly any bullet lists.  If you’re a Sun
   152 shareholder looking for a pick-me up, check out slides 40-41, 49, and 52-74.
   153 Oh, I gather that the T1, Solaris, and ZFS are OK for Java too.
   154 <i>[Update: The title was just “SAMR”, as in LAMP with two new letters.  
   155 Enough people didn’t get it that I was forced to think about it, and MARS
   156 works better anyhow.]</i></p>
   157 </div></content></entry>
   159 <entry xml:base='When/200x/2006/04/25/'>
   160  <title>Real-Time Journalism</title>
   161  <link href='Talk-With-Berlind' />
   162  <id>http://www.tbray.org/ongoing/When/200x/2006/04/25/Talk-With-Berlind</id>
   163  <published>2006-04-25T13:00:00-08:00</published>
   164  <updated>2006-04-26T06:40:19-08:00</updated>
   165  <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Journalism' />
   166  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   167  <category scheme='http://www.tbray.org/ongoing/What/' term='Journalism' />
   168  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Syndication' />
   169  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   170  <category scheme='http://www.tbray.org/ongoing/What/' term='Syndication' />
   171 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   172 <p>I got email late yesterday from
   173 <a href="http://blogs.zdnet.com/bio.php#berlind">David Berlind</a>: “Hey, can
   174 I call you for a minute?”  He wanted commentary on
   175 <a href="http://blogs.zdnet.com/BTL/?p=2906">a story he was writing</a> that I
   176 think is about the potential for intellectual-property lock-ins on RSS and Atom
   177 extensions.  I say “I think is about” because the headline is “Will or could
   178 RSS get forked?”.  After a few minutes’ chat, David asked if he could record
   179 for a podcast, and even though I only had a cellphone, the audio came out OK.
   180 The conversation was rhythmic: David brought up a succession of potential
   181 issues and answered each along the lines of “Yes, it’s reasonable to worry
   182 about that, but in this 
   183 case I don’t see any particular problems.”  
   184 Plus I emitted a mercifully-brief rant on the difference between protocols,
   185 data, and software.
   186 On the one hand, I thought David could have been a 
   187 little clearer that I was pushing back against the thrust of his story, but on
   188 the other hand he included the whole conversation right
   189 there in the piece, so anyone who actually cares can listen and find out what
   190 I actually said, not what I think I said nor what David reported I said.
   191 I find this raw barely-intermediated journalism (we
   192 talk on the phone this afternoon, it’s on the Web in hours) a little
   193 shocking still.
   194 On balance, it’s better than the way we used to do things.</p>
   195 </div></content></entry>
   197 <entry xml:base='When/200x/2006/04/24/'>
   198  <title>The Transition Explained</title>
   199  <link href='CEO-Transition' />
   200  <id>http://www.tbray.org/ongoing/When/200x/2006/04/24/CEO-Transition</id>
   201  <published>2006-04-24T13:00:00-08:00</published>
   202  <updated>2006-04-24T16:49:05-08:00</updated>
   203  <category scheme='http://www.tbray.org/ongoing/What/' term='Business/Sun' />
   204  <category scheme='http://www.tbray.org/ongoing/What/' term='Business' />
   205  <category scheme='http://www.tbray.org/ongoing/What/' term='Sun' />
   206 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   207 <p>It’s not that complicated, really.
   208 Bloggers are
   209 <a href="http://www.sun.com/2006-0418/js/index.jsp">taking over the world</a>.
   210 Resistance is futile; you will be assimilated.</p>
   211 </div></content></entry>
   213 <entry xml:base='When/200x/2006/04/24/'>
   214  <title>5&#x272d;&#x266b;: One More Cup of Coffee</title>
   215  <link href='One-More-Cup-Of-Coffee' />
   216  <id>http://www.tbray.org/ongoing/When/200x/2006/04/24/One-More-Cup-Of-Coffee</id>
   217  <published>2006-04-24T13:00:00-08:00</published>
   218  <updated>2006-04-24T13:00:00-08:00</updated>
   219  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Music/Recordings' />
   220  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
   221  <category scheme='http://www.tbray.org/ongoing/What/' term='Music' />
   222  <category scheme='http://www.tbray.org/ongoing/What/' term='Recordings' />
   223  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Music/5 Stars' />
   224  <category scheme='http://www.tbray.org/ongoing/What/' term='5 Stars' />
   225  <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>
   226 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   227 <p>I’m not really a
   228 <a href="http://en.wikipedia.org/wiki/Bob_Dylan">Bob Dylan</a> fan.  A voice
   229 like that, and a tunesmithing talent like that, come along only a few times
   230 per century, but he’s still kind of irritating.
   231 That aside, the song <cite>One More Cup of Coffee</cite>, from the 1976 album
   232 <a href="http://en.wikipedia.org/wiki/Desire_%28album%29">Desire</a>, can’t be
   233 ignored; wonderful tune, wonderful orchestration, wonderful performance.
   234 <i>(“5✭♫” series introduction <a href="/ongoing/When/200x/2006/01/23/5-Star-Music">here</a>;
   235 with <a href="/ongoing/When/200x/2006/01/23/5-Star-Music#p-1">an
   236 explanation</a> of why the title may look broken.)</i></p>
   237 <img src="Desire.png" class="inline" alt="Desire, by Bob Dylan" />
   238 <h2 id='p-1'>The Context</h2>
   239 <p>Nothing I can possibly write will add any wisdom to the
   240 millions of words, some 90% of them in excess of needs, written on the subject
   241 of this particular person.</p>
   242 <p>A personal statement: Bob Dylan has long irritated me for, during the first
   243 thirty years or 
   244 so of his career, never having given a straight answer to a straight question,
   245 and for writing songs with dozens of boring verses.  But they’ll still be
   246 listening 
   247 to lots of his performances long after I’m dead, and in recent years he’s
   248 become a better, more direct, interview.</p>
   249 <p>My taste in Dylan is a little unusual: once you get past <cite>One More Cup
   250 of Coffee</cite>, my favorites would be <cite>Baby Let Me Follow You
   251 Down</cite> (from the <cite>Last Waltz</cite> soundtrack) and 
   252 <cite>Crash on the Levee (Down in the Flood)</cite> from
   253 <a href="http://en.wikipedia.org/wiki/The_Basement_Tapes">The Basement
   254 Tapes</a>.</p>
   255 <p><cite>Desire</cite>, the record, is hit and miss. <cite>Joey</cite>,
   256 glorification of the life of some mafioso, is flawed in concept
   257 and unlistenable in execution.  <cite>Hurricane</cite>, whatever you think
   258 about
   259 <a href="http://en.wikipedia.org/wiki/Rubin_Carter">Mr. Carter</a>, that song
   260 rocks; and <cite>Isis</cite> hits pretty hard too.</p>
   261 <h2 id='p-2'>The Music</h2>
   262 <p>Is there anything in <cite>One More Cup of Coffee</cite> that’s not
   263 perfect?  Well yes, in the verses, the
   264 lyrics on occasion drag (“He oversees his kingdom / So no stranger does
   265 intrude / His voice it trembles as he calls out / For another plate of food”).
   266 But apart from that, the sentiment is compelling,
   267 <a href="http://en.wikipedia.org/wiki/Scarlet_Rivera">Scarlet Rivera’s</a>
   268 violin is beautifully scored and played, the tune is to die for, and the
   269 backing vocals are by Emmylou Harris, who you can bet is going to be here in
   270 the 5-✭ series one of these days.
   271 And while there’s not much middle ground on the subject of Dylan’s singing, if
   272 you like it, you’ll <em>really</em> like this song.</p>
   273 <p>Listen to the choruses: Bob and Emmylou veer wildly around the rhythm, then
   274 coalesce on the beat when it matters, and they’re making it
   275 up as they go along, they’re wholly inhabiting the moment, and it’s
   276 quite, quite perfect.</p>
   277 <h2 id='p-3'>Sampling It</h2>
   278 <p>Oh yeah, it’s out there.  And there’s a live version too; but the smart
   279 thing  would be to go buy the un-compressed un-DRM’ed shiny round silver
   280 version of <cite>Desire</cite>; it’s a keeper.</p>
   281 </div></content></entry>
   283 <entry xml:base='When/200x/2006/04/24/'>
   284  <title>Atomic Monday</title>
   285  <link href='Atomic-Monday' />
   286  <id>http://www.tbray.org/ongoing/When/200x/2006/04/24/Atomic-Monday</id>
   287  <published>2006-04-24T13:00:00-08:00</published>
   288  <updated>2006-04-24T00:44:06-08:00</updated>
   289  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Syndication' />
   290  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   291  <category scheme='http://www.tbray.org/ongoing/What/' term='Syndication' />
   292  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Atom' />
   293  <category scheme='http://www.tbray.org/ongoing/What/' term='Atom' />
   294 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   295 <p>First of all, implementors of anything Atom-related need to spend some time
   296 <a href="http://golem.ph.utexas.edu/~distler/blog/archives/000793.html">chez
   297 Jacques Distler</a>; in particular, the conversation that plays out in the
   298 comments. Second, there’s this piece of software called
   299 <a href="http://www.planetplanet.org/">Planet Planet</a> that allows you to
   300 make an aggregate web page by reading lots of feeds; for example, see
   301 <a href="http://www.planetapache.org/">Planet Apache</a> or
   302 <a href="http://planetsun.org/">Planet Sun</a>.
   303 Sam Ruby decided that its Atom support needed some work, so
   304 <a href="http://www.intertwingly.net/blog/2006/04/23/Adding-Atom-support-to-PlanetPlanet">he did
   305 it</a>.  Now, here’s the exciting part: he pinged me over the weekend and said
   306 “Hey, look at this” wanting to show me his cleverly-Atomized
   307 Planet Intertwingly feed. 
   308 I looked at it in
   309 <a href="http://ranchero.com/netnewswire/">NetNewsWire</a> and was puzzled for
   310 a moment; some but not all of the 
   311 things in the feed were highlighted as unread, even though this was the first
   312 time I’d seen it.  Then the light went on. 
   313 This
   314 is Atom doing <em>exactly what we went to all that trouble to make it do</em>.
   315 NetNewsWire has good Atom support and, because Atom entries all have unique
   316 IDs and timestamps,  it can
   317 tell that it’s seen lots of those entries before in other feeds that I
   318 subscribe to.  That’s how I found Jacques’ piece.  This is huge; anyone who
   319 uses synthetic or aggregated feeds knows that dupes are a big problem, showing
   320 up all over the place.
   321 No longer, Atom makes that problem go away.</p>
   322 </div></content></entry>
   324 <entry xml:base='When/200x/2006/04/22/'>
   325  <title>Hyatt on the High-Res Web</title>
   326  <link href='High-Res-Web' />
   327  <id>http://www.tbray.org/ongoing/When/200x/2006/04/22/High-Res-Web</id>
   328  <published>2006-04-22T13:00:00-08:00</published>
   329  <updated>2006-04-23T17:12:18-08:00</updated>
   330  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Web' />
   331  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   332  <category scheme='http://www.tbray.org/ongoing/What/' term='Web' />
   333  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Presentation' />
   334  <category scheme='http://www.tbray.org/ongoing/What/' term='Presentation' />
   335 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   336 <p>Check out Dave Hyatt’s
   337 <a href="http://webkit.opendarwin.org/blog/?p=55">excellent write-up</a> on
   338 designing and rendering Web pages so they take advantage of the
   339 higher-resolution screens that <em>may</em> be coming our way. 
   340 I emphasize “may” because I’ve seen how slowly we’ve picked up pixels over
   341 the years. The first really substantial screen I ever worked on was a
   342 1988-vintage Sun workstation with about a million pixels.  The Mac on my
   343 lap right now, which has 125 times as much memory as that workstation, has
   344 only 1.38 million pixels.
   345 Anyhow, Hyatt has some smart things to say on the issues,
   346 which are trickier than you might think.  I suspect that sometime in a couple of
   347 years, if I still care about <span class='o'>ongoing</span>, I’m  going to
   348 have to go back and reprocess all the images so that higher-res versions are
   349 available for those who have the screens and don’t mind downloading bigger
   350 files. 
   351 Anyhow, Dave’s piece may be slightly misleading in that he talks about SVG
   352 as though 
   353 it’s something coming in the future.  Not so, check out
   354 <a href="http://zcorpan.1go.dk/sandbox/svg/atom/.xml">this nifty SVG Atom
   355 logo</a>, which works fine in all the Mozilla browsers I have here.
   356 Load it up, resize the window, and watch what happens.  Then do a “view
   357 source”.
   358 <i>[Update:
   359 <a href="http://blog.codedread.com">Jeff Schiller</a> writes to tell me that
   360 Opera 9 does SVG (and Opera 8 “SVG Tiny”) too.]
   361 [<a href="http://www.freeke.org/ffg">Dave Walker</a> writes: Though the shipping version of Safari doesn’t support SVG,
   362 <a href="http://nightly.webkit.org/builds/Latest-WebKit-SVN.dmg">the
   363 nightlies</a> do.]
   364 [<a href="http://www.davelemen.com/archives/2006/04/is_it_time_for_jpeg_2000_to_go_mainstream.html">Dave Lemen</a>
   365 points to
   366 <a href="http://en.wikipedia.org/wiki/JPEG-2000">JPEG 2000</a> as possibly
   367 useful in a high-res context.]</i></p>
   368 </div></content></entry>
   370 <entry xml:base='When/200x/2006/04/23/'>
   371  <title>Wrong About the Infield Fly Rule</title>
   372  <link href='Wrong-About-the-Infield-Fly-Rule' />
   373  <id>http://www.tbray.org/ongoing/When/200x/2006/04/23/Wrong-About-the-Infield-Fly-Rule</id>
   374  <published>2006-04-23T13:00:00-08:00</published>
   375  <updated>2006-04-23T15:02:41-08:00</updated>
   376  <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Family' />
   377  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   378  <category scheme='http://www.tbray.org/ongoing/What/' term='Family' />
   379 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   380 <p>My brother
   381 <a href="http://takingalongview.blogspot.com/">Rob</a> is really taking to
   382 this blogging medium.  Check out his recent
   383 <a href="http://takingalongview.blogspot.com/2006/04/credo.html">Credo</a>,
   384 and also the only instance I’ve seen of
   385 <a href="http://takingalongview.blogspot.com/2006/04/ode-to-96-chevy-lumina.html">Anglo-Saxon alliterative poetry</a>
   386 applied to a mini-van.</p>
   387 </div></content></entry>
   389 <entry xml:base='When/200x/2004/12/12/'>
   390  <title>Statistics</title>
   391  <link href='BMS' />
   392  <id>http://www.tbray.org/ongoing/When/200x/2004/12/12/BMS</id>
   393  <published>2004-12-12T12:00:00-08:00</published>
   394  <updated>2006-04-23T10:10:02-08:00</updated>
   395  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Publishing' />
   396  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   397  <category scheme='http://www.tbray.org/ongoing/What/' term='Publishing' />
   398  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Web' />
   399  <category scheme='http://www.tbray.org/ongoing/What/' term='Web' />
   400  <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>
   401 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   402 <p>Almost every Sunday I grab the week’s <span class='o'>ongoing</span>
   403 logfiles and update my numbers.
   404 I find it interesting
   405 and maybe others will too, so 
   406 this entry is now the charts’ permanent home. I’ll update it most weeks,
   407 probably.
   408 <i>[Updated: 2006/04/23.]</i></p>
   409 <img src="Browser-Market-Share.png" alt="Browser market shares at ‘ongoing’" />
   410 <div class="caption"><p>Browsers visiting <span class='o'>ongoing</span>,
   411 percent.</p></div>
   412 <img src="Browsers-via-search.png" alt="Browser market shares at ‘ongoing’, visitors via search engines" />
   413 <div class="caption"><p>Browsers visiting <span class='o'>ongoing</span> via
   414 search engines, percent.</p></div>
   415 <img src="Search-Engines.png" alt="Search engine market shares at ‘ongoing’" />
   416 <div class="caption"><p>Search referrals to <span
   417 class='o'>ongoing</span> .</p></div>
   418 <img src="Feeds.png" alt="RSS and Atom feed fetches" />
   419 <div class="caption"><p>Fetches of the RSS 2.0 and Atom 1.0 feeds.</p></div>
   420 <p>The notes on usage and source code will return in coming weeks when I get
   421 the cycles to rewrite this whole article.</p>
   422 <h2 id='p-1'>What a “Hit” Means</h2>
   423 <p>I recently
   424 <a href="/ongoing/When/200x/2006/02/07/Thumbnail">updated</a> the
   425 <a href="/ongoing/misc/Colophon"><span class='o'>ongoing</span> software</a>
   426 (but haven’t updated the Colophon I see, oops).
   427 Anyhow, the <code>XMLHttpRequest</code> now issued by each page seems to be a
   428 pretty reliable counter of the number of actual browsers with humans behind
   429 them reading the pages.  I checked against
   430 <a href="/ongoing/When/200x/2005/12/04/Google-Analytics">Google Analytics</a>
   431 and the numbers agreed to within a dozen or two on days with 5,000 to 10,000
   432 page views; interestingly, Google Analytics was always 10 or 20 views
   433 higher.</p>
   434 <p>Anyhow, do <em>not</em> conclude that now I know how many people are
   435 reading whatever it is I write here; because I publish lots of short pieces
   436 that are all there in my RSS feed, and anyone reading my Atom feed gets the
   437 full content of everything.
   438 I and I have <em>no #&amp;*!$ idea</em> how many people look at my feeds.</p>
   439 <p>By the way, this was the first time in weeks and weeks that I’d looked at the
   440 Analytics numbers, and they showed almost exactly zero change from the report
   441 linked above.  So I’m going to turn them off; they’re a little too intrusive
   442 and I think may be slowing page loads.</p>
   443 <p>Anyhow, I ran some detailed statistics on the traffic for Wednesday,
   444 February 8th, 2006.</p>
   445 <table cellspacing="3" cellpadding="2" class="wltable">
   446 <tr valign="top"><td>Total connections to the server</td><td align="right">180,428</td></tr>
   447 <tr valign="top"><td>Total successful GET transactions</td><td align="right">155,507</td></tr>
   448 <tr valign="top"><td>Total fetches of the RSS and Atom feeds</td><td align="right">88,450</td></tr>
   449 <tr valign="top"><td>Total GET transactions that actually fetched data (i.e. status code
   450 200 as opposed to 304)</td><td align="right">87,271</td></tr>
   451 <tr valign="top"><td>Total GETs of actual ongoing pages (i.e. not CSS, js, or
   452 images)</td><td align="right">18,444</td></tr>
   453 <tr valign="top"><td>Actual human page-views</td><td align="right">6,348</td>
   454 </tr>
   455 </table>
   456 <p>So, there you have it.  Doing a bit of rounding, if you take the 180K
   457 transactions and subtract the 90K feed fetches and the 6000 actual human page
   458 views, you’re left with 84,000 or so “Web overhead” transactions, mostly
   459 stylesheets and graphics and so on.
   460 For every human who viewed a page, it was fetched almost twice again by
   461 various kinds of robots and non-browser automated agents.</p>
   462 <p>It’s amazing that the whole thing works at all.</p>
   463 </div></content></entry>
   465 <entry xml:base='When/200x/2006/04/18/'>
   466  <title>XML Automaton</title>
   467  <link href='XML-Grammar' />
   468  <id>http://www.tbray.org/ongoing/When/200x/2006/04/18/XML-Grammar</id>
   469  <published>2006-04-18T13:00:00-08:00</published>
   470  <updated>2006-04-23T08:25:56-08:00</updated>
   471  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/XML' />
   472  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   473  <category scheme='http://www.tbray.org/ongoing/What/' term='XML' />
   474  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Coding' />
   475  <category scheme='http://www.tbray.org/ongoing/What/' term='Coding' />
   476  <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>
   477 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   478 <p>In December of 1996 I released a piece of software called
   479 <a href="http://www.textuality.com/Lark/">Lark</a>, which was
   480 the world’s first
   481 <a href="http://www.w3.org/TR/REC-xml/#dt-xml-proc">XML Processor</a> (as the
   482 term is defined in the
   483 <a href="http://www.w3.org/TR/REC-xml/">XML Specification</a>).
   484 It was successful, but I stopped maintaining it in 1998 because lots of other
   485 smart people, and some big companies like Microsoft, were shipping perfectly
   486 good processors.  I never <em>quite</em> open-sourced it, holding back one
   487 clever bit in the moronic idea that I could make money out of Lark somehow.
   488 The magic sauce is a finite state machine that can be used to parse XML 1.0.
   489 Recently, someone out there needed one of those, so I thought I’d publish
   490 it, with some commentary on Lark’s construction and an amusing anecdote about
   491 the name.
   492 I doubt there are more than twelve people on the planet who care about
   493 this kind of parsing arcana.
   494 <i>[Rick Jelliffe 
   495 <a href="http://www.oreillynet.com/xml/blog/2006/04/xml_in_xml.html">has
   496 upgraded</a> the machine].</i></p>
   497 <h2 id='p-1'>Why “Lark”?</h2>
   498 <p><a href="http://www.laurenwood.org/anyway/">Lauren</a> and I went to
   499 Australia in late 1996 to visit her mother and to get married, which we
   500 did on November 30th.  Forty-eight hours later, Lauren twisted her knee
   501 badly enough that she was pretty well
   502 confined to a sofa for the rest of our Australian vacation.</p>
   503 <p>So I broke out my computer and finished the work I’d already started on my
   504 XML processor, and decided to call it Lark for <b>La</b>uren’s <b>R</b>ight
   505 <b>K</b>nee.</p>
   506 <h2 id='p-2'>How Lark Worked</h2>
   507 <p>Lark was a pure
   508 <a href="http://en.wikipedia.org/wiki/Deterministic_finite_state_machine">deterministic
   509 finite automaton</a> (DFA)
   510 parser, with a little teeny state stack.
   511 Some of its transitions were labeled with named “events” that would provoke
   512 the parser to do something if, for example, it had just recognized a start tag
   513 or whatever.</p>
   514 <p>DFA-driven parsers are a common enough design pattern, although I think
   515 Lark is the only example in the XML space.
   516 There are well-known parser generators such as
   517 <a href="http://en.wikipedia.org/wiki/Yacc">yacc</a>, 
   518 <a href="http://en.wikipedia.org/wiki/GNU_bison">GNU bison</a>, and
   519 <a href="https://javacc.dev.java.net/">javacc</a>,
   520 usually used in combination with lexical scanners such as
   521 <a href="http://en.wikipedia.org/wiki/Flex_lexical_analyser">flex</a> so that
   522 you can write your grammar in terms of tokens not characters.
   523 Also, they handle LALR langauges, so the parsing technique is quite a bit
   524 richer than a pure state machine.</p>
   525 <p>I thought I had a better idea.  The grammar of XML is simple
   526 enough, and the syntax characters few enough, that I thought I could just
   527 write down the state machine by hand.
   528 So that’s what I did, inventing a special-purpose DFA-description
   529 language for the purpose.</p>
   530 <p>Then I had a file called <code>Lark.jin</code> which was really a Java
   531 program that used the state machine to parse XML.  The transition “events”
   532 in the machine were mapped to <code>case</code> labels in a huge
   533 <code>switch</code> construct.  Then there was a horrible, <em>horrible</em>
   534 Perl program that read the <code>Lark.jin</code> and the automaton,
   535 generated the DFA tables in Java syntax, inserted them into the code and 
   536 produced <code>Lark.java</code>, which you actually compiled
   537 to make the parser.</p>
   538 <p>So while Java doesn’t have a preprocessor, Lark did, which made quite a few
   539 things easier.</p>
   540 <p>There were a lot of tricks; some of the state transitions 
   541 weren’t on characters, they were on XML character classes such as
   542 <code>NameChar</code> and so on.
   543 This made the automaton easier to write, and in fact, to keep the class files
   544 small, the character-class transitions persisted into the Java form, and the
   545 real DFA was built at startup time.
   546 These days, quick startup might be more important than <code>.class</code>
   547 file size.</p>
   548 <h2 id='p-3'>What Was Good</h2>
   549 <p>It was <em>damn</em> fast.  James Clark managed to hand-craft a
   550 Java-language XML parser called
   551 <a href="http://jclark.com/xml/xp/index.html">XP</a> that was a little faster
   552 than Lark, but he did that by clever I/O buffering, and I was determined to
   553 leapfrog him by improving my I/O.</p>
   554 <p>This was before the time of standardized XML APIs, but Lark had a stream API
   555 that influenced SAX, and a DOM-like tree API; both worked just fine.
   556 Lark is one of very few parsers ever to have survived the
   557 <a href="http://www.securityfocus.com/archive/1/303509/2002-12-13/2002-12-19/0">billion
   558 laughs attack</a>.</p>
   559 <p>Lark was put into production in quite a few deployments, and the flow of
   560 bug reports slowed to a trickle.
   561 Then in 1998 I noticed that IBM and Microsoft and BEA and everyone else
   562 were building XML Processors, so I decided that it wasn’t worthwhile 
   563 maintaining mine.</p>
   564 <h2 id='p-4'>What Was Bad</h2>
   565 <p>I never got around to teaching it namespaces, which means it wouldn’t be
   566 real useful today.</p>
   567 <p>It had one serious bug that would have been real work to fix and since
   568 nobody ever encountered it in practice, I kept putting it off and never did.
   569 If you had an internal parsed entity reference in an attribute value and the
   570 replacement text included the attribute delimiter (<code>'</code> or
   571 <code>"</code>), it would scream and claim you had a busted XML document.</p>
   572 <h2 id='p-5'>That Automaton</h2>
   573 <p>What happened was,
   574 <a href="http://www.oreillynet.com/pub/au/1712">Rick Jelliffe</a>, who is a
   575 Good Person, was 
   576 <a href="http://www.stylusstudio.com/xmldev/200604/post30110.html">looking for
   577 a FSM for XML</a> and I eventually noticed, and so I sent him mine.</p>
   578 <p>There’s no reason whatsoever to keep it a secret: 
   579 <a href="/ongoing/code/lark/com/textuality/autom.txt">here it is</a>.
   580 Be warned: it’s ugly.</p>
   581 <p>Fortunately, there were only 227 states and 8732 transitions, so the state
   582 number fit into a 
   583 byte; that and the associated event index pack into a short.
   584 To make things even tighter, the transitions were only keyed by characters up
   585 to 127, as in 7-bit ASCII.
   586 Characters higher than that can’t be XML syntax characters, so we’re only
   587 interested whether they fall into classes like <code>NameChar</code> and
   588 <code>NameStartChar</code> and so on.  A 64K <code>byte[]</code> array takes
   589 care of that, each byte having a class bitmask.</p>
   590 <p>As a result of all this jiggery-pokery, the DFA ends up, believe it
   591 or not, constituting a <code>short[227][128]</code>.</p>
   592 <p>Here’s a typical chunk of the automaton:</p>
   593 <pre><code>1. # in Start tag GI
   594 2. State StagGI BustedMarkup {in element type}
   595 3. T $NameC StagGI
   596 4. T $S InStag !EndGI
   597 5. T > InDoc !EndGI !ReportSTag
   598 6. T / EmptyClose !EndGI</code></pre>
   599 <p>This state, called <code>StagGI</code>, is the state where we’re actually
   600 reading the name of a tag, we got here by seeing a <code>&lt;</code> followed
   601 by a <code>NameStart</code> character.<br/>
   602 Line 1 is a comment.<br/>
   603 In line 2 we name the state, and support error reporting, providing the name
   604 of another state to fall back into in case of error, and in the curly braces,
   605 some text to help build an error message.<br/>
   606 Line 3 says that if we see a valid XML Name character, we just stay in this
   607 state.<br/>
   608 Line 4 says that if we see an XML space character, we move to state
   609 <code>InStag</code> and process an <code>EndGI</code> event, which would stash
   610 the characters in the start tag.<br/>And so on.</p>
   611 <h2 id='p-6'>Other Hackery</h2>
   612 <p>An early cut of Lark used String and StringBuffer objects to hold all the
   613 bits and pieces of the XML.  This might be a viable strategy today, but in
   614 1996’s Java it was painfully slow. 
   615 So the code goes to heroic lengths to live in the land of character arrays at
   616 all times, making Strings only when a client program asks for one through the
   617 API.  The performance difference was mind-boggling.</p>
   618 <h2 id='p-7'>An Evil Idea</h2>
   619 <p>If you look at the automaton, and the Lark code, at least half—I’d bet
   620 three quarters—is there to deal with parsing the DTD and then dealing with
   621 entity wrangling.
   622 A whole bunch more is there to support DOM-building and walking.</p>
   623 <p>I bet if I went through and simply removed support for anything coming out
   624 of the <code>&lt;!DOCTYPE></code>, including all entity processing, 
   625 then discarded
   626 the DOM stuff, then added namespace support and SAX and StAX APIs, it would be
   627 less than half its current size.  
   628 Then if I reworked the I/O, knowing what I know now and stealing some tricks
   629 that James Clark uses in
   630 <a href="http://expat.sourceforge.net/">expat</a>, I bet it would
   631 be the fastest Java XML parser on the planet for XML docs without a
   632 DOCTYPE; by a wide margin.  It’s hard to beat a DFA.</p>
   633 <p>And it would still be fully XML 1.0 compliant.  Because (snicker) this is
   634 Java, and your basic core Java now includes an XML parser, so I could simply
   635 instrument Larkette to buffer the prologue and if it saw a DOCTYPE with an
   636 internal subset, defer to Java’s built-in parser.</p>
   637 <p>I’ll probably never do it.  But the thought brings a smile to my face.</p>
   638 </div></content></entry>
   640 <entry xml:base='When/200x/2006/04/22/'>
   641  <title>Just A Kid</title>
   642  <link href='Just-a-Kid' />
   643  <id>http://www.tbray.org/ongoing/When/200x/2006/04/22/Just-a-Kid</id>
   644  <published>2006-04-22T13:00:00-08:00</published>
   645  <updated>2006-04-22T13:37:58-08:00</updated>
   646  <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Food and Drink' />
   647  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   648  <category scheme='http://www.tbray.org/ongoing/What/' term='Food and Drink' />
   649 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   650 <p>Last weekend, Lauren felt like cooking up home-made Easter eggs, so
   651 the shopping list included “chocolate chips (large bag)”.  I was heading down
   652 the bulk-foods aisle and realized one of the vertical acrylic bins was full of
   653 them.  Someone had been sloppy, and there was a little heap of chocolate chips
   654 on the shelf underneath it.  For a second, I flashed into pure eight-year-old
   655 mode, thinking “Holy cow, there’s a <em>whole bin</em> full of chocolate
   656 chips, and more just lying there!”  I popped a few in my mouth and they were
   657 excellent; semi-sweet, dark, strong, and firm.  I was still in the state that
   658 Buddhists don’t mean when they say “Child’s Mind”, thinking “I
   659 can get as many as I want!”  The list did say “large bag” after all, so I put
   660 a bag under the spout and gleefully jammed the lever <em>all the way
   661 over</em>.  At home, Lauren said “You went overboard, a bit, didn’t you?”
   662 and now we have a plastic canister-full in the pantry which should last us
   663 into 2007.  It’s a good feeling.</p>
   664 </div></content></entry>
   666 <entry xml:base='When/200x/2006/04/22/'>
   667  <title>Goddess</title>
   668  <link href='Goddess' />
   669  <id>http://www.tbray.org/ongoing/When/200x/2006/04/22/Goddess</id>
   670  <published>2006-04-22T13:00:00-08:00</published>
   671  <updated>2006-04-22T12:25:59-08:00</updated>
   672  <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Family' />
   673  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   674  <category scheme='http://www.tbray.org/ongoing/What/' term='Family' />
   675  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Microsoft' />
   676  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   677  <category scheme='http://www.tbray.org/ongoing/What/' term='Microsoft' />
   678 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   679 <p>That would be my wife 
   680 <a href="http://www.laurenwood.org/anyway/">Lauren</a>.  After 
   681 <a href="/ongoing/When/200x/2006/04/16/Mad-at-Microsoft">I b0rked</a> our
   682 Win2K gamebox, I tried re-installing the OS and eventually reduced it to
   683 complete brick-ness, it recognized neither the video adapter nor the network
   684 card.  So Lauren brushed me aside and started wrestling with the problem, and
   685 to make a long story short, it almost completely works again.  At one point
   686 she seemed nearly infinite in her capabilities, sitting in front of the
   687 computer wrangling software updates while knitting baby stuff and looking up
   688 words in a German dictionary for the kid’s homework.  Some of the German nouns
   689 and muttered curses at the Windows install sounded remarkably like each other.
   690 Why would anyone not marry a geek?  The only problem is that Win2K won’t
   691 auto-switch resolutions to play games any more, it gets the frequency wrong
   692 and the LCD goes pear-shaped, you have to hand-select the frequency and
   693 switch into the right resolution first.  LazyWeb?</p>
   694 </div></content></entry>
   696 <entry xml:base='When/200x/2006/04/21/'>
   697  <title>Routing Around Spotlight</title>
   698  <link href='Routing-Around-Spotlight' />
   699  <id>http://www.tbray.org/ongoing/When/200x/2006/04/21/Routing-Around-Spotlight</id>
   700  <published>2006-04-21T13:00:00-08:00</published>
   701  <updated>2006-04-21T23:16:25-08:00</updated>
   702  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Mac OS X/Gripes' />
   703  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   704  <category scheme='http://www.tbray.org/ongoing/What/' term='Mac OS X' />
   705  <category scheme='http://www.tbray.org/ongoing/What/' term='Gripes' />
   706  <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>
   707 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   708 <p>Herewith two hideously ugly little shell scripts for use when Spotlight
   709 refuses to search your mail.
   710 Spotlight is a flawed v1.0 implementation of a really good idea and will, I’m
   711 sure, be debugged in a near-future release.
   712 <i>[Update: The LazyWeb is educating me... these are moving targets.]</i></p>
   713 <p>My problem is that whereas Mail.app will search my To/From/Subject
   714 lines (slowly, and with a
   715 <a href="/ongoing/When/200x/2005/11/20/UnTiger">really irritating GUI</a>),
   716 the “Entire Message” option just doesn’t work, it returns instantly with no
   717 results.  Yes, I’ve read the hints about making Spotlight re-index,
   718 but it just flatly refuses to work for me.  Mind you, I have a lot of
   719 email, but still, it should at least try.</p>
   720 <p>It turns out I had never really figured out the <code>-print0</code> and
   721 <code>-0</code> idioms that a lot of the shell-command stalwarts now have.
   722 Thanks to Malcolm Tredinnick for raising my consciousness.</p>
   723 <p>This lives in <code>$HOME/bin</code> under the name
   724 <code>mailgrep</code>:</p>
   725 <pre><code>#!/bin/sh
   726 find $HOME/Library/Mail/IMAP* -name '*.emlx' -print0 | \
   727   xargs -0 fgrep -i $@</code></pre>
   728 <p>Isn’t <code>xargs</code> a funny command?  I’ve discovered that it’s nearly
   729 impossible to describe what does, and then why what it does is necessary, but
   730 there are just a whole bunch of places where you’d be lost without it.</p>
   731 <p>This lives in <code>$HOME/bin/mailview</code>:</p>
   732 <pre><code>#!/bin/sh
   733 find $HOME/Library/Mail/IMAP* -name '*.emlx'  -print0 | \
   734   xargs -0 fgrep -i -l -Z $@ | \
   735   xargs -0 open</code></pre>
   736 <p>The first cut of this dodged <code>xargs</code> and used an
   737 incredibly-inefficient and slow chain of <code>-exec</code> arguments to open
   738 the files one at a time with 
   739 <code>view</code> (aka <code>vim</code>), to work around 
   740 a well-known <code>vim</code> misfeature; it complained about the input
   741 not being a terminal and left my Terminal.app keystrokes borked.</p>
   742 <p>But Malcolm, confirming my belief in the broken-ness of <code>vim</code>,
   743 said “Oh, *that* ‘view’.  I thought it was some sexy Mac ‘view my email’ app”.
   744 D’oh, of course; the magic OS X <code>open</code> command does just the right
   745 thing. 
   746 Erm, you might want to run <code>mailgrep</code> before you run
   747 <code>mailview</code>; I’m not sure what would happen if you asked OS X to
   748 open three or four thousand email messages at once.</p>
   749 </div></content></entry>
   751 <entry xml:base='When/200x/2006/04/21/'>
   752  <title>FSS: Pink Flowers</title>
   753  <link href='Dracon-Help' />
   754  <id>http://www.tbray.org/ongoing/When/200x/2006/04/21/Dracon-Help</id>
   755  <published>2006-04-21T13:00:00-08:00</published>
   756  <updated>2006-04-21T17:19:27-08:00</updated>
   757  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Photos' />
   758  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
   759  <category scheme='http://www.tbray.org/ongoing/What/' term='Photos' />
   760  <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>
   761 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   762 <p>Friday Slide Scan #28 is two Eighties florals, one interior, one
   763 exterior.  With a confession.</p>
   764 <p>First some spring flowers fallen from a tree, just as now in our front
   765 yard, at dusk.</p>
   766 <img src="0506.png" alt="Fallen pink treeflowers on grass at dusk" />
   767 <p>I’m not sure what these are, but look at the light in the center.  Rewards
   768 enlarging.</p>
   769 <img src="0713.png" alt="Flowers in shadow with light in background" />
   770 <p>Here’s the confession.  Sometimes on Fridays when I’m feeling kinda
   771 burned-out, I knock off work and do these slide scans in the office, because
   772 this is where I have the
   773 <a href="http://www.tbray.org/ongoing/When/200x/2004/04/14/MineIsBigger">big
   774 screen</a>.
   775 Blowing these pictures up to mega-huge, picking away at the old-slide crud and
   776 scanning artifacts, tinkering with the colour balance, and listening; I never
   777 play music while I’m writing or coding seriously, but I play it real loud while
   778 photo-editing.  It’s all pretty well pure pleasure; you just can’t imagine
   779 how good that second one above looks at near-native size.
   780 It reconstitutes the part of my mind that I earn my living with; that’s my
   781 story and I’m sticking to it.</p>
   782 <p>Images in the Friday Slide Scans are from 35mm slides taken between 1953
   783 and 2003 by (in rough chronological order)
   784 <a href="http://www.textuality.com/BillBray/">Bill Bray</a>, 
   785 <a href="/ongoing/When/200x/2004/08/11/MomsGarden">Jean Bray</a>, Tim Bray, Cath
   786 Bray, and
   787 <a href="http://www.laurenwood.org/anyway/">Lauren Wood</a>; when I know
   788 exactly who took one, I’ll say; in this case, at least one is by Cath Bray.
   789 Most but not all of the slides were on Kodachrome; they were digitized using
   790 a Nikon CoolScan 4000 ED scanner and cleaned up by a combination of the Nikon
   791 scanning software and PhotoShop Elements.</p>
   792 </div></content></entry>
   794 <entry xml:base='When/200x/2006/04/20/'>
   795  <title>Spring Pix</title>
   796  <link href='Spring-Pix' />
   797  <id>http://www.tbray.org/ongoing/When/200x/2006/04/20/Spring-Pix</id>
   798  <published>2006-04-20T13:00:00-08:00</published>
   799  <updated>2006-04-20T23:07:10-08:00</updated>
   800  <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Places/Vancouver' />
   801  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   802  <category scheme='http://www.tbray.org/ongoing/What/' term='Places' />
   803  <category scheme='http://www.tbray.org/ongoing/What/' term='Vancouver' />
   804  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts/Photos' />
   805  <category scheme='http://www.tbray.org/ongoing/What/' term='Arts' />
   806  <category scheme='http://www.tbray.org/ongoing/What/' term='Photos' />
   807  <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>
   808 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   809 <p>Three pictures around Vancouver; one of a fresh green springtime tree, two
   810 of rotten old buildings being torn down.</p>
   811 <p>There’s nothing quite as fresh as just-sprouted deciduous leaves;
   812 another few weeks and this tree will be just a tree.</p>
   813 <img src="IMG_4656.png" alt="Sunlit fresh young leaves" />
   814 <p>I have a thing about demolition.
   815 The first is a rotten dingy old one-story on Main Street near 23rd, the second
   816 is an unlovely grey mid-rise being torn down to build still more condos at
   817 Homer and Helmcken.</p>
   818 <img src="IMG_4665.png" alt="Demolition site on Main Street, Vancouver" />
   819 <img src="IMG_4671.png" alt="Demolition site at Homer and Helmcken, Vancouver" />
   820 </div></content></entry>
   822 <entry xml:base='When/200x/2006/04/20/'>
   823  <title>Totten&#x2019;s Trip</title>
   824  <link href='Totten-on-Iraq' />
   825  <id>http://www.tbray.org/ongoing/When/200x/2006/04/20/Totten-on-Iraq</id>
   826  <published>2006-04-20T13:00:00-08:00</published>
   827  <updated>2006-04-20T21:05:22-08:00</updated>
   828  <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Places/Middle East' />
   829  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   830  <category scheme='http://www.tbray.org/ongoing/What/' term='Places' />
   831  <category scheme='http://www.tbray.org/ongoing/What/' term='Middle East' />
   832 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   833 <p><a href="http://www.michaeltotten.com/">Michael J. Totten</a> is a
   834 journalist and blogger who’s back and forth to the 
   835 Middle East and writes about it, quite well in my opinion; he supports this by
   836 freelancing and with his blog’s tip jar.  He gets lots of
   837 link love from the right-wing blogosphere, which is puzzling because Totten is
   838 balanced and clear-eyed and doesn’t seem to have any particular axe to grind.
   839 Recently, he and a friend were 
   840 <a href="http://www.michaeltotten.com/archives/001117.html">having fun in
   841 Istanbul</a> and, on a random drive out into the country, decided on impulse to
   842 keep going, all the way across Turkey and into Iraq; into the Kurdish
   843 mini-state in Iraq’s north, to 
   844 be precise.  It makes a heck of a story, with lots of pictures, in six parts:
   845 <a href="http://www.michaeltotten.com/archives/001119.html">I</a>,
   846 <a href="http://www.michaeltotten.com/archives/001120.html">II</a>,
   847 <a href="http://www.michaeltotten.com/archives/001121.html">III</a>,
   848 <a href="http://www.michaeltotten.com/archives/001124.html">IV</a>,
   849 <a href="http://www.michaeltotten.com/archives/001126.html">V</a>, and
   850 <a href="http://www.michaeltotten.com/archives/001127.html">VI</a>.
   851 </p>
   852 </div></content></entry>
   854 <entry xml:base='When/200x/2006/04/19/'>
   855  <title>The Cost of AJAX</title>
   856  <link href='The-Cost-of-AJAX' />
   857  <id>http://www.tbray.org/ongoing/When/200x/2006/04/19/The-Cost-of-AJAX</id>
   858  <published>2006-04-19T13:00:00-08:00</published>
   859  <updated>2006-04-20T00:37:46-08:00</updated>
   860  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology/Web' />
   861  <category scheme='http://www.tbray.org/ongoing/What/' term='Technology' />
   862  <category scheme='http://www.tbray.org/ongoing/What/' term='Web' />
   863 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   864 <p>James Governor
   865 <a href="http://www.redmonk.com/jgovernor/archives/001526.html">relays a
   866 question</a> that sounds important
   867 but I think is actively dangerous: do AJAX apps present more of
   868 a server-side load?  The question is dangerous because it’s meaningless and
   869 unanswerable.  Your typical Web page will, in the process of
   870 loading, call back to the server for a bunch of stylesheets and graphics and
   871 scripts and so on: for example, this <span class='o'>ongoing</span> page calls
   872 out to three different graphics, one stylesheet, and one JavaScript file.
   873 It also has one “AJAXy” XMLHttpRequest call.
   874 From the server’s point of view, those are all just requests to dereference
   875 one URI or another.  In the case
   876 of <span class='o'>ongoing</span>, the AJAX request is for a static file less
   877 than 200 bytes in size (i.e. cheap).
   878 On the other hand, it could have been for something that required a
   879 complex outer join on two ten-million-row tables (i.e. <em>very</em>
   880 expensive).  And one of the virtues of 
   881 the Web Architecture is that it hides those differences, the “U” in URI stands
   882 for “Uniform”, it’s a Uniform interface to a resource on the Web that could
   883 be, well, anything.
   884 So saying “AJAX is expensive” (or that it’s cheap) is like saying “A mountain
   885 bike is slower than a battle tank” (or that it’s faster).  
   886 The truth depends on what you’re doing with it. 
   887 In the case of web sites, it depends on how many fetches you do and
   888 where you have to go to get the data to satisfy them.
   889 <span class='o'>ongoing</span> is a pretty quick web site, even though it runs
   890 on a fairly modest server, but
   891 that has nothing to do with AJAX-or-not; it’s because of the particular way
   892 I’ve set up the Web resources that make the pages here.
   893 I’ve
   894 <a href="/ongoing/When/200x/2006/02/14/AJAX-Performance">argued elsewhere</a>
   895 that AJAX can be a performance win, system-wide; but that argument too is
   896 contingent on context, lots of context.</p>
   897 </div></content></entry>
   899 <entry xml:base='When/200x/2006/04/18/'>
   900  <title>Hao Wu and Graham McMynn</title>
   901  <link href='Hao-Wu' />
   902  <id>http://www.tbray.org/ongoing/When/200x/2006/04/18/Hao-Wu</id>
   903  <published>2006-04-18T13:00:00-08:00</published>
   904  <updated>2006-04-18T22:00:40-08:00</updated>
   905  <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Places/China' />
   906  <category scheme='http://www.tbray.org/ongoing/What/' term='The World' />
   907  <category scheme='http://www.tbray.org/ongoing/What/' term='Places' />
   908  <category scheme='http://www.tbray.org/ongoing/What/' term='China' />
   909  <category scheme='http://www.tbray.org/ongoing/What/' term='The World/Politics' />
   910  <category scheme='http://www.tbray.org/ongoing/What/' term='Politics' />
   911 <content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>
   912 <p>Graham McMynn is a teenager who was kidnapped in Vancouver on April 4th and
   913 freed, in a large, noisy, and
   914 <a href="http://www.cbc.ca/story/news/national/2006/04/12/bcabduction060412.html">newsworthy</a>
   915 police operation, on April 12th.
   916 <a href="http://en.wikipedia.org/wiki/Hao_Wu">Hao Wu</a> is a Chinese
   917 film-maker and
   918 <a href="http://beijingorbust.blogspot.com/">blogger</a> who was kidnapped in
   919 Beijing on February 22nd in a 
   920 small, quiet police operation not intended to be newsworthy, and who has not
   921 been freed.
   922 Read about it
   923 <a href="http://spaces.msn.com/wuhaofamily/">here</a>,
   924 <a href="http://ethanzuckerman.com/haowu/">here</a>, and
   925 <a href="http://rconversation.blogs.com/rconversation/freehaowu/index.html">here</a>.
   926 Making noise about it <em>might</em> influence the government of China to
   927 moderate its actions against Mr. Wu, and can’t do any harm.
   928 Mr. McMynn’s kidnappers were a gaggle of small-time hoodlums, one of whom was
   929 out on bail while awaiting trial for another kidnapping (!).
   930 Mr. Wu’s were police.
   931 In a civilized country, the function of the police force is to deter such
   932 people and arrest them.  A nation where they are the same people?   Nobody
   933 could call it “civilized”.</p> 
   934 </div></content></entry>
   936 </feed>

mercurial