|
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> |
|
20 |
|
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’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> |
|
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> |
|
52 |
|
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> |
|
83 |
|
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 & 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½ 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> |
|
116 |
|
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> |
|
158 |
|
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> |
|
196 |
|
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> |
|
212 |
|
213 <entry xml:base='When/200x/2006/04/24/'> |
|
214 <title>5✭♫: 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’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> |
|
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> |
|
282 |
|
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> |
|
323 |
|
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> |
|
369 |
|
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> |
|
388 |
|
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’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> |
|
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 #&*!$ 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> |
|
464 |
|
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’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> |
|
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><</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><!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> |
|
639 |
|
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> |
|
665 |
|
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> |
|
695 |
|
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’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> |
|
750 |
|
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> |
|
793 |
|
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> |
|
821 |
|
822 <entry xml:base='When/200x/2006/04/20/'> |
|
823 <title>Totten’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> |
|
853 |
|
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> |
|
898 |
|
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> |
|
935 |
|
936 </feed> |