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’s bright and warm most of the time. But for Canadians and others who live where it’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 & 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½ 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✭♫: 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’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’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’t be ignored; wonderful tune, wonderful orchestration, wonderful performance. <i>(“5✭♫” 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’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’ permanent home. I’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 #&*!$ 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’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’d publish it, with some commentary on Lark’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><</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><!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’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’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>