The Rants, Raves, Gripes, and Prophecies of Paul R. Potts

Contents by Category

Contents by Date

Favorite Links

My Wiki: main entrance
Slashdot
Boing Boing
Truthout
Gwydion Dylan
Paul Graham
Richard P. Gabriel

Tue, 16 Dec 2003 WebDAV to the rescue?

So I'm trying to use WebDAV to publish blog entries more easily. I can mount the WebDAV-ified directory on my MacOS X 10.3 desktop and read and write to it. This should be a natural for letting me save blog entries directly to the server, right?

Except that when my ISP's server "WebDAV-ifies" a directory, it gets chown'ed and chgrp'ed to a special Apache user. Permissions are drastically reduced, and I no longer have the ability to change anything from the command line. If I put a symbolic link from my weblog data directory to a "WebDAV-ified" directory, blosxom doesn't have permission to follow the link, because as a CGI it is run by suexec as if it were "thepotts," that is, my login, which doesn't have any privileges on the "WebDAV-ified" directory.

Gag. If anyone knows of a way around this, please drop me a note. I'm also asking my ISP. Why can't we all just get along? Panther will mount the appropriate volume on my desktop as an FTP server, and that's wonderful, but the Finder won't write to FTP servers. I'm fed up with crappy, slow FTP client applications with poor user interfaces and strange bugs and freeze-ups.. I could do it all with command-line tools, and maybe automate it, but it just seems to me that there must be better ways to spend my time!

[/root/geeky/blogging] permanent link

State of the Blog

I've finally been able to do a little cleanup on the weblog. The situation was this: after a bunch of edits, a large number of individual files now had the same modification date; they all appeared as brand new. This is Blosxom's default behavior. I have now installed a plug-in which will allow me to edit files after posting them without changing the display order. It will work, of course, but like most tools of this type it is a hack upon a hack upon a hack, all to make up for the lack of true metadata. I've forced the modification dates on various files using touch -t. I don't know the exact creation dates of many of these files; it came as a bit of a shock to me that UNIX variants do not preserve a separate timestamp for the creation date. I guess I've never noticed that before, and never had need for a separate creation date when working on a generic Linux or Solaris box, while MacOS systems and Windows systems preseve that extra bit of metadata.

Anyway, the upshot is that the mess is mostly cleaned up. I'm a bit frustrated that I can't reconstruct the original dates (and thus the order) of a number of my posts. From now on I will try to remember to include the date in the file. There is a plug-in that will read the date from the entry metadata, if I supply it, but that requires a number of Perl modules which I'm not sure I can install given that I'm running hosted... and I just don't want to wrestle with debugging the whole mess via web server logs at the moment.

A bigger question is "How can I make it easier to write entries?" I was using a demo license for TextWrangler, and liked it for the nice built-in FTP support, but I don't have the extra cash to purchase a copy. I also hate having to write pseudo-HTML, writing tags even to force a paragraph break. There should be automatic capture of metadata; there should be automatic archiving and aging of posts. Versioning would be lovely; Twiki uses RCS files quite transparently; something like that is in order. I grew to like the Twiki inline formatting, and there is a Wiki formatting plug-in for Blosxom, but all Wikis are different. I used to enjoy messing with all this, but for once I would just like to use the tools, not configure and hack them. By the time I get everything formatted, links fixed, tags corrected, saved, FTP'ed, and checked, I've used up my free time and lost interest in what I was writing anyway. Maybe after Christmas vacation (which will be all too brief and not very relaxing, as usual) I'll see if I can make use of WebDAV to simplify the posting process and get the weblog back on track. My devoted readers (both of them) can't wait, I'm sure!

[/root/geeky/blogging] permanent link

Tue, 11 Nov 2003 Borders Employees Strike

I've spent a few hours tonight and last night on the picket line in front of Borders Bookstore #1 in downtown Ann Arbor. Of course, longtime residents know that Borders #1 was on State Street. But this is the relocated mother ship.

Borders employees are on strike, and as longtime fan of Borders I have chosen to show solidarity by picketing with them. It is well past midnight and time for me to go to bed, so I will not be able to write anything more detailed, but here is the note I sent to family and friends today:

When I first visited Ann Arbor in 1988 or thereabouts, one of the things I enjoyed most about the town was Borders: an independent bookstore on State Street with a cool escalator, a really knowledgeable staff, and an amazing selection.

The staff was so good that it was common to joke about them. They really knew their subject areas. A columnist in the Ann Arbor News wrote about trying to get decent help in another bookstore: "I began to suspect he didn't even have a Ph.D."

I moved to Ann Arbor in 1990 and can't even begin to estimate the time and money I've spent in Borders. A lot has changed: it is now a big chain. But Borders #1 is still in downtown Ann Arbor and it still has the Borders name on it, and it is still trading on that good name.

The corporation does not deserve to use that good name any more. It is just another massive chain, and like a lot of massive chain stores it is mistreating its employees. The employees at store #1 are on strike. Details may be found here:

http://www.bordersreadersunited.blogspot.com/

Now, I myself am not always an unqualified supporter of all union activities; I think unions can be abusive. But I believe this is just about as clear an example as possible of employees striking for their livelihood. As one former employee puts it:

In 1994, the starting wage at Borders was $6.10 an hour.

In 2000, when I left, it was $6.50 an hour.

And it STILL is $6.50.

As goes Borders, so goes Ann Arbor and the rest of the world. As retail and service sector employees become an increasingly massive part of the economy, the treatment of retail workers is going to be the biggest labor issue of the '00s.

So please, consider boycotting Borders, Waldenbooks, and Amazon.com. If you live in or near Ann Arbor, and you love what Borders once was, please also consider joining the picket line. I'll be on the line evenings this week from 8 to 11 as I can. My wife Grace and son Isaac will also be there as they are able to be. If you live near another Borders store, consider picketing them. Tell Borders management what you think.

Addendum 23 Mar 2004: the strike has been settled. Thanks for all your support.

[/root/society] permanent link

Wed, 05 Nov 2003 Three Books about Ruby

Reviewed in this article:

  1. Yukihiro Matsumoto: Ruby in a Nutshell (O'Reilly, 2002: 204 pages)

  2. Hal Fulton: The Ruby Way (Sams, 2002: 579 pages)

  3. Dave Thomas and Andrew Hunt: Programming Ruby: The Pragmatic Programmer's Guide (Addison-Wesley, 2001: 564 pages)

First she tried Papa Bear's porridge, but it was too hot. Then she tried Mama Bear's porridge, but it was too cold. Then she tried Baby Bear's porridge, and it was just right, so she ate it all up. -- Goldilocks and the Three Bears

Let's suppose that you're an experienced programmer who wants to learn Ruby, or a Ruby programmer who needs a reference. Which of these three books is "just right?"

Ruby in a Nutshell

Let's begin by looking at Ruby in A Nutshell. O'Reilly books tend to have a good reputation, and I've been quite pleased with a number of them, including several other books in the Nutshell line such as Java in a Nutshell. Therefore, it is with considerable disappointment that I'm forced to report that Ruby in a Nutshell is not only the poorest book I've seen in the Nutshell line, but also the poorest O'Reilly book I've ever examined. Obviously, as Goldilocks would say, this one is "too cold!"

To find out why, let's begin with the code sample on page 2:

ary = [1,2,3,4,5]
ary.each do |i|
   puts 1*2
end   # prints 2,3,4,8,10 for each line

Not only is the comment wrong (this example should print 2, 4, 6, 8, and 10, once each), but the code has a bug: the puts statement contains a "1" instead of an "i." That's not inspiring: I'm not sure who to blame, but clearly the editors or technical reviewers did not try the code samples as printed. Let's go on to the next example:

ary = [1,2,3,4,5]
ary = ary.select do |i|
   i %2 == 0
end   # returns array of even numbers

This example also fails! Why? Because Ruby is sensitive to whitespace in certain constructs: the lack of a space between the "%" and the "2" causes trouble. That's two critical typos in two brief examples: not a promising start! Let's move on to the next example:

begin
   f = open(path)
rescue
   puts "#{path} does not exist."
   exit 1
end

This example does not execute, because "path" is undefined. That's a trivial omission, obviously, but again it indicates that no one bothered to make these short examples runnable. That's disappointing.

The next example shows how to use a network socket to retrieve the time:

require "socket"
print TCPSocket.open("localhost", "daytime").gets

This also does not work on my system (running MacOS X). The reason is because my system is not running an appropriate server; I know that, but if I was more of a novice, I might have given up Ruby in disgust by this point (on page 3), mistakenly blaming the language or library implementation. Given that Yukihiro Matsumoto is the author of Ruby, that's obviously not a desirable outcome.

Keep in mind that we are on page 3 of this book, in the introduction, under a heading entitled "Ruby's Elegance." This Nutshell book is clearly not intended as a beginner's tutorial, but does this principle make it acceptable that four of the five code samples in this section do not run as presented? I don't think it does. I think this is just the first warning indication of the disastrous lack of quality in this book. The introduction trails off with a few additional examples, including a minor variation on the socket example already presented and a redundant example of exception handling, but with no further commentary. This entire introductory chapter seems not to whet the appetite to learn Ruby as much as ruin it. However, let's press on and see if it gets better.

The book is quite short (with 204 numbered pages), and that's good. I like short books; as the introduction to Kerninghan and Ritchie's widely-known book The C Programming Language says, a small language "is not well served by a big book." The second chapter, "Language Basics," weighs in at just 30 pages. But it turns out that it isn't the length, it is the organization and presentation of the content. The other Nutshell books do it well; Kerninghan and Ritchie's book does it well. Ruby in a Nutshell does not.

The chapter begins with a description of the command-line options to the Ruby executable and a list of the environment variables that Ruby recognizes. These things would be more properly placed in an appendix devoted to the implementation. We are now left with just 27 to pages to cover the core language. Let me point out a few specific examples that show how the text veers off track.

Under the heading "Literals" and sub-heading "Numbers," we are shown the examples "123," a decimal number, "0377," an octal number, and "0xff," a hexadecimal number. So far, so good. But included in the list is "1_234," listed as "decimal with underline." What does this mean? What is the purpose of writing a decimal number with an embedded underline? (No mention is made of "underline" or "underscore" in the index, and the text offers no clue). That's a very minor example, but it is telling. Update: it turns out this is a feature borrowed from Perl, but I'm not really a Perl expert, and the text should not assume the reader is).

Under "Strings," we're shown the difference between double-quoted and single-quoted strings. On the very next page, though, we see an example of a string in backquotes. No mention is made of backquotes in the index, and backquoted strings are never explained.

I've programmed in Scheme and other languages that support a symbol type; I thought I knew what a symbol was. Under "Symbols," we read that "A symbol is an object corresponding to an identifier or variable." In fact, that's false. A symbol never corresponds to a variable. A symbol is generally made of a string, hashed to a unique object, and usable as a distinguished value. We are shown two examples: ":foo" is described as "symbol for 'foo'." ":" is described as "symbol for variable ''." What this really means is that the first symbol is constructed out of a plain identifier, and the second out of a variable name. Any string can be used to generate a symbol using the Intern method; including a mention of that method here would reassure the user that symbols in Ruby work pretty much like symbols in other languages that support them. Instead, the book is riddled with bizarre and confusing terminology. Matsumoto may not be a native speaker, but he credits editors and reviewers; were they asleep on the job?

On page 16 under "Assigment," we read "The following elements may assign targets." What does that phrase mean? What is an "element?" Why was this text not turned into something more clear, using standard terminology? Under "Operators," we read "most operators are in fact method calls." Then, three lines later, we read "Most operators are actually method calls." Why was this redundancy left in place? Copy-editing should have caught this; this book is very, very poorly edited.

On the next page, under "Range operators," the description of the form "expr1 ... expr2" is "Evaluates expr2 on the iteration after expr1 turns true." Range operators are incredible useful and clever; it is a shame that anyone reading this description will be unlikely to gain any insight into how to use them. In a sidebar on special versions of methods that have "!" or "?" appended (in the Lisp world, methods ending in "!" are generally known as destructive, and methods ending in "?" are generally known as predicates), we read "A question mark ? is appended to a method that determines the state of a Boolean value, true or false." Why wasn't this convoluted sentence edited to say "method that returns a Boolean value?" In the next sentence, we learn that "Attempting to call a method without specifying either its arguments or parentheses in a context in which a local variable of the same name exists results in the method call being interpreted as a reference to the local variable, not a call to the method." This sentence needs at least six prepositional phrases to tell us that a local variable with the same name as a method can shadow the method, if the method call is ambiguous; an brief example here would be worth far more than this convoluted description.

As a further case study, let's take a look at the presentation of one more language construct: Ruby's version of C's switch, in Ruby called case. There are a few key points to keep in mind about the way Ruby implements this construct. The first is that there is no default fall-through, as in C and C++, and hence no need for break statements -- in fact, break may not be used here. The second is that the clauses are evaluated in the order given: this can be important, since clauses may overlap (for example, if they use ranges). The third is that to determine if a clause matches, the "===" operator is used, in a less-than-obvious way (briefly, if a and b are not the same type, then "a === b" does not necessarily imply "b === a." I'll show an example of this later).

Any Ruby reference worth the name should mention these three key points. In Ruby in a Nutshell, we are given a BNF skeleton (it is not quite real BNF, though) and a few lines of description. The lack of default fall-through is not mentioned. The use of "===" is mentioned, but without any detail. The fact that Ruby always evaluates the cases in the listed order is not mentioned. As far as I'm concerned, this presentation of the case statement is close to useless; it could serve to remind someone who already knows Ruby of the syntactical form, like a pocket reference card, but gives almost nothing of the distinguishing semantics for a programmer coming from another language.

I want to look at one more example: the use of while and until as statement modifiers. This is a clever little language feature that lets you write code like this:

greeting = true
print "Hello\n" while greeting

The above code will say "Hello" forever, while this version:

greeting = false
print "Hello\n" while greeting

never says "Hello." It is a somewhat non-obvious detail that when you use while as a modifier at the end a single statement, the condition is evaluated first. This runs contrary to C's do loop form. You can also use while at the end of a block of code:

greeting = false
begin
   print "Hello\n"
end while greeting

but in this case, "Hello" will be printed once; the block is executed once before the condition is evaluated, just like C's do loop.

It is important to me that a book on Ruby should make a clear distinction between these two modes of behavior; Ruby in a Nutshell fails to clearly differentiate the behavior of the single-statement form. Instead we get the terse description "executes code while condition is true" for the single-statement form, and this awful sentence for the second: "If a while modifier follows a begin statement with no rescue or ensure clauses, code is executed once before conditional is evaluated." It is probably technically correct, but at this point in the exposition, it does not clarify anything to bring in rescue and ensure without further elaboration. I should point out that the other two books I'll discuss do explicitly mention this behavior, albeit not necessarily in a prominent way.

Although not billed as a tutorial, by comparison, Python in a Nutshell devotes 39 pages to the Python language, and the chapter is immeasurably more readable and more complete. It is also possible to divine all the tricky parts of Java from Java in a Nutshell; I refer to this book frequently when I've forgotten a detail about, say, inner classes. That just doesn't seem possible with this book. Is this because Ruby is so irregular, with an enormous number of special "quirks?" I don't believe so; Python and Java are certainly "quirky" in places as well (just look at the semantics of bindings from within nested scopes in Python, or the syntax of anonymous inner classes in Java). In a language guide, though, it is essential that any irregular semantics be clearly pointed out, and Ruby in a Nutshell doesn't do this well.

The remainder of the book covers the built-in library (built-in to the interpreter), and the standard library (defined in separately importable modules). This material looks concise (in fact, too concise). For example, suppose I wanted to fix the example given above:

require "socket"
print TCPSocket.open("localhost", "daytime").gets

On page 113, we can find the entry for TCPSocket. It is less than a page in length, and most of the entry is taken up by a longish piece of sample code, and most of that sample is scaffolding. (Again, it isn't the space used, but how it is used). The sample code uses the spelling TCPsocket (note the altered capitalization: another typographical error, but fortunately names in Ruby are not case-sensitive). The example also uses ARGV and thus, as far as I can tell, can't be executed using irb (the command-line Ruby interactor). It uses two additional methods on TCPsocket: addr and peeraddr, but these are not listed in the class methods. It turns out the methods are part of IPSocket, which is the superclass of TCPSocket, so I turned to the entry on IPSocket. The example given for IPSocket is actually an example of how to use TCPSocket (this time with the expected capitalization). This example succeeds in opening an HTTP connection to www.ruby-lang.org. It works, and that's a start, but it's too late to do much to enhance my opinion of Ruby in a Nutshell. It doesn't have to be this way; as I'll show, other authors manage to convey far more useful information in even less space.

For comparison, let's now examine Hal Fulton's book.

The Ruby Way

Fulton's book is much wordier; his text is full of digression, but, more importantly, his text is full of working examples. Confusingly, when he is giving an abstract example to show a form, rather than a piece of executable Ruby code, such as:

case expression
   when value
      some_action
end

This abstract example is not set off in italics or boldface or BNF. In practice, it is usually clear when he is showing an abstract example, but this could be improved. On the bright side, every concrete code example I tried worked perfectly. When Fulton describes Ruby's case statement (p. 55), he provides an example of how the definition of the "===" method on the string class can confuse you.

case /Hell/
   when "Hello"
      print "We matched.\n"
   else
      print "We didn't match.\n"
end

As you might expect after that build-up, the code fragment above prints "We didn't match." Fulton also spends some time explaining the absence of the break statement and lack of default fall-through, and mentions not only that the case "limbs" are evaluated in sequence, but also how the expressions in limbs that are not reached are never evaluated. The key concepts are included, but the result of this wordiness is that Fulton takes nearly 3 pages to explain the case statement.

Would you like to see cookbook examples of using Ruby with strings and queues? Fulton's got them. Did you want to know how to use Ruby to check whether a graph is fully connected? How about whether that graph has a Euler circuit? Fulton's got an example. Sometimes his book veers towards a cookbook, but depending on your needs and skill level, these worked-out examples may be just what you need. While I can live without information on Ruby/Tk and Ruby/GTK, I find the material on threads to be very useful. Ruby has very powerful and concise support for threads, but threads can be hard to understand in any language, and clear examples of how to use them are most welcome. Chater 8, on scripting, is not currently of much interest to me, but another reader might find a great deal of value in using Ruby to write scripts for system administration tasks.

Continuing our example, let's see how Fulton does with his coverage of TCPSocket. First of all, TCPSocket is not in the index. That's a bad sign. TCPServer is, though, and his server example also includes a client that uses uses TCPSocket. Let's see if his example works (from page 420):

require "socket"

PORT = 12321
HOST = ARGV[0] || 'localhost'

server = UDPSocket.open   # Using UDP here...
server.bind(nil, PORT)

loop do
   text, sender = server.recvfrom(1)
   server.send(Time.new.to_s + "\n", 0, sender[3], sender[1])
end

And now Fulton's client code, which I will execute in a different terminal window using another instance of irb:

require "socket"
require "timeout"

PORT = 12321
HOST = ARGV[0] || 'localhost'

socket = UDPSocket.new
socket.connect(HOST, PORT)

socket.send("", 0)
timeout(10) do
   time = socket.gets
   puts time
end

And, in fact, it worked perfectly on the first try. There is something in the level of detail in Fulton's writing that inspires confidence that he has tested his code. From there on, Fulton illustrates a threaded server, and then provides a larger example: a chess server. I have not tested it yet, but so far I have reason to believe that his examples and explanation are both top-notch.

The book does have its weaknesses: the index, as I've mentioned, is not comprehensive, and the typography is also somewhat bland. There are no diagrams to be found, even when one would be useful (for example, in explaining what an Euler circuit is). This book fits my tastes well, but some may consider it "too hot," though: too wordy, and too example-heavy to be the reference I discussed earlier. I think it is great material for any Ruby developer, but is it the best book learning and reference use? To answer that, let's take a look at one more.

Programming Ruby: The Pragmatic Programmer's Guide

If you are interested in reading this book on-line (I usually prefer a paper copy), you can actually find the complete text located here and all the sample code is available here.

The book starts out well: we've got notation conventions! A roadmap! This book has something resembling a recursive structure: different aspects of Ruby are discussed (briefly), then discussed later in much more depth, and sometimes again in close-up. I like that approach. It means we can get into examples quickly. By page ten we're into arrays and hashes, and then on to a brief survey of control structures. Let's take a look at an example (page 11):

if counts > 10
   puts "Try again"
elsif tries == 3
   puts "You lose"
else
   puts "Enter a number"
end

Once again, we've been given a non-working example: the variables "counts" and "tries" are not defined. In case it isn't clear yet, I really don't like non-working examples in programming books. If an example is abstract, use BNF or italicized words; if it is concrete, put in the extra effort into testing and make a usable example. Your opinion on this matter may not be the same, and to the author's credit, it does appear that most later examples in the text are runnable; indeed, they are presented as brief interactive sessions.

Also, if look at the online version of the book's code, you'll find that the code for page 11 has a link called "See hidden code." This link will show the extra lines that make the sample runnable. This seems a bit silly, especially since most of the samples are quite short and including the extra lines in the print version would not have added significantly to the page count. But if you are like me and want to try out the samples as you read them, you might want to follow along on the web site as you read.

After the brief overview chapter, we're right into classes, objects and variables. We work through an extended, semi-real-world example that shows the definition of a toy class and how to play with it. (I don't use the term "toy" here in a disparaging way; tutorial material usually benefits from somewhat scaled-down examples so that the reader can focus on the mechanics, and not the problem domain).

The typography is excellent in this book, yielding a very clean look; arrows in the code samples indicate the results that are returned from various expressions. Diagrams are occasionally used, for example to show how references may be reassigned and objects aliased. This dynamism may be unfamiliar to programmers from coming to Ruby from, for example, C or Pascal (although Java programmers will be familiar with this mode of programming).

Another aspect of this book that I like is the occasional interjection of comparisons with other languages. It is particularly illuminating to discuss Ruby's code blocks this way. A bit like Scheme's closures, code blocks can be difficult for static-language programmers to understand. Programmers coming from languages that don't support higher-order functions may find themselves dismissive of such features. Of course, just about any language feature can be considered "irrelevant" -- why use classes, when we can simulate them with structures? Closures can be used to implement "lightweight" callbacks and maintain state without the need to define extra classes and implement them; they provide a different, highly useful abstraction. To use Ruby to its full potential, you should understand closures, and thus code blocks; this book can help. (Just don't ask me to explain my other favorite programming technique, borrowed from Dylan and Lisp-family languages: currying).

So what about that example given in Ruby in a Nutshell showing an integer containing underscores? In this book, there's an example, and the comment says "underscore ignored." Of course, there is still no "underscore" entry in the index, but at least I got my answer, and it is the answer I expected.

Now, how about that case statement again? This book covers it initially in just over a page; it shows several different (again, unfortunately, non-working) examples illustrating syntactic variations. It points out the use of the "===" operator, but it does not describe the order of evaluation, short-circuiting, the lack of default fall-through, or the specific issue likely to arise when using regular expressions as the the target of the comparison expressions. This makes the explanation a little bit weak; you'd better hope to follow the examples here, because the text will not help you much. But wait! Chapter 18 covers the language again, in yet more depth. This is almost a complete formal treatment, and it is most welcome. Here we learn that case evaluates expressions in order, that it does short-circuiting, how the else clause works, and the additional tidbit that if no case "limb" is chosen, and no else clause is present, the whole expression will silently return nil. And, especially in comparison to Ruby in a Nutshell, he exposition here is crystalline. So we do get just about everything that we need.

The second half of the book is a major reference section, and it is excellent. The layout is very usable, and very short interactive examples are embedded in most of the entries to show how they work. This is an extremely helpful approach. In format, this section is a bit like The Java Almanac. The authors provide an example (I can't quite reproduce their typography, but here is the code):

require "socket"
t = TCPSocket.new('localhost', 'ftp')
t.gets
t.close

This example did not work, at first, because I'm not running an FTP server; enabling the built-in FTP server fixed the problem.

So, is this book "just right?" It seems to be pretty close. If you buy just one of these Ruby books, this one should be it, because it is concise and contains both good tutorial and reference material; in fact, it is pretty much everything that Ruby in a Nutshell should have been, in a slightly wordier form. Sadly, Ruby does not yet have a book that is as concise and elegant as the language itself.

On the other hand, if you can buy two books, and really want to get into what Fulton calls "the Ruby way," and see lots of idiomatic Ruby code, and you don't mind extended cookbook examples and a more expository writing style, I would highly recommend that you buy this book together with Fulton's book. Between the two of them, you should be off and running. As for Ruby in a Nutshell: it seems to be a terrible anomaly in what are generally good O'Reilly books. I only wish I had saved my receipt, and not scribbled corrections and annotations all over the pages in frustration, so that I could get my money back. I also hope O'Reilly will redeem themselves as a publisher with an improved second edition.

Reviewed by Paul R. Potts, paul at the potts house dot org.

[/root/books/nonfiction] permanent link

Mon, 13 Oct 2003 Life During Wartime

Lots of fun today.

Now that Israel's following the Bush doctrine of preemptive strikes, we've apparently got no good reason not to emulate Israel and engage in "collective punishment," bulldozing orchards of date palms and citrus trees.

The Carnegie Foundation has a good analysis of the Kay report. Its most important conclusions are that the "lead" -- the most important conclusion -- is buried in the middle of the report:

In the middle of a paragraph halfway through his testimony, Kay presents what should have been his lead finding: "Information found to date suggests that Iraq's large-scale capability to develop, produce, and fill new CW munitions was reduced - if not entirely destroyed - during Operations Desert Storm and Desert Fox, 13 years of UN sanctions and UN inspections." Similarly, three paragraphs into Kay's description of Saddam's intention to develop nuclear weapons, he says: "to date we have not uncovered evidence that Iraq undertook significant post-1998 steps to actually build nuclear weapons or produce fissile material.

Joseph Cirincione also points out that UNMOVIC had a budget of only $60 million and was funded by the U.N., while Kay is requesting $600 million to continue the search for WMD in Iraq. Personally, I have a lot more confidence in Hans Blix and UNMOVIC.

Does this look like a successfully concluded war to you?

Identical letters from Iraq are being sent to hometown newspaters in soldiers' names. They've been published by 11 newspapers. The Olympian received two identical letters over different signatures. The newspaper declined to publish them because it has a policy of not publishing form letters.

Sgt. Christopher Shelton, who signed a letter that ran in the Snohomish Herald, said Friday that his platoon sergeant had distributed the letter and asked soldiers for the names of their hometown newspapers. Soldiers were asked to sign the letter if they agreed with it, said Shelton, whose shoulder was wounded during an ambush earlier this year.

...

Sgt. Shawn Grueser of Poca, W.Va., said he spoke to a military public affairs officer whose name he couldn't remember about his accomplishments in Iraq for what he thought was a news release to be sent to his hometown paper in Charleston, W.Va. But the 2nd Battalion soldier said he did not sign any letter.

Although Grueser said he agrees with the letter's sentiments, he was uncomfortable that a letter with his signature did not contain his own words or spell out his own accomplishments.

I'm not exactly comfortable with this either.

Bill O'Reilly threw a tantrum on "Fresh Air." I didn't hear it but I'll have to download the program from Audible. Terry Gross is not a hard-hitting interviewer; she rarely challenges or pushes back at her guests, with a few exceptions. (Her best shows, in my opinion, are interviews of musicians, where her love of all different styles of music shows through). I've heard her interview with Al Franken and read his book. She was attempting to give him equal time, but he didn't seem to want it, even facing such a softball interview. He'd rather be able to claim that he attempted to present his views but the interview was far too mired in liberal bias to give him a chance to represent his views accurately. At least, it's a lot easier than actually explaining or recanting the various blatant untruths he's being called on.

[/root/iraq] permanent link

Spinning the War

You know, some days I wake up and think that maybe everything I know is wrong. I mean, our leaders must have our best interests at heart, right? Their policies must make sense. They're going to leave our country in better shape than they found it, and make the world a safer and saner place. Maybe it's just that I'm confused, or flooded with too much propaganda from the left-wing media.

Then something makes me shake it off. Today it was Andrew Sullivan, and the realization that the Bush administration doesn't even need to make sense or show any consistency. They've got plenty of people who are trying to make sense out of their policies: literally, trying to spin them into something that seems rational and reasonable, even though they aren't. Andrew is one of them. He'll defend the war in Iraq, even to the point of coming up with justifications for it that were never made, and denying that the justifications the administration did give us for the war really happened. It's this kind of spinning that makes my head spin and makes me wonder if I'm losing my memory. But I'm not.

Did you hear the one about how the war was not about Iraq posing an imminent threat to the U.S. and to the world?

Andrew is still harping on that theme. But he's making a mistake. He's claiming that "imminent threat" is a meme, but then what he points out is the literal use of the term "imminent" by the critics of the war, and that administration officials didn't use that specific term. This leads to nonsense like:

"So we get the baldfaced untruth that the war was because Iraq posed an "imminent" threat. It wasn't..."

That's news to me. It doesn't seem to jibe with Bush's State of the Union address, either, in which he made the case for the war as follows:

Today, the gravest danger in the war on terror, the gravest danger facing America and the world, is outlaw regimes that seek and possess nuclear, chemical, and biological weapons. These regimes could use such weapons for blackmail, terror, and mass murder. They could also give or sell those weapons to terrorist allies, who would use them without the least hesitation.

(And then he gave us the laundry list... 500 tons of sarin, mustard, and VX... 29,984 unaccounted-for munitions capable of delivering chemical agents... mobile biological weapons labs).

Evidence from intelligence sources, secret communications, and statements by people now in custody reveal that Saddam Hussein aids and protects terrorists, including members of al Qaeda. Secretly, and without fingerprints, he could provide one of his hidden weapons to terrorists, or help them develop their own.

The "money quote," to use Sullivan's term:

The world has waited 12 years for Iraq to disarm. America will not accept a serious and mounting threat to our country, and our friends and our allies. The United States will ask the U.N. Security Council to convene on February the 5th to consider the facts of Iraq's ongoing defiance of the world. Secretary of State Powell will present information and intelligence about Iraqi's legal -- Iraq's illegal weapons programs, its attempt to hide those weapons from inspectors, and its links to terrorist groups.

We will consult. But let there be no misunderstanding: If Saddam Hussein does not fully disarm, for the safety of our people and for the peace of the world, we will lead a coalition to disarm him. (Applause.)

There is just no denying that the war was sold to the American public exactly on the basis of "imminent threat." Just look at the words: "gravest danger," "gravest danger facing America and the world," "blackmail, terror, and mass murder," and "for the safety of our people and for the peace of the world."

Sulivan goes on:

The casus belli was not proof of Saddam's existing weapons, but proof of his refusal to cooperate fully with U.N. inspectors or account fully for his WMD research...

Bush didn't use the term "casus belli," but that doesn't mean there wasn't one; he didn't use it because his audience wouldn't have understood it and would have perceived, rightly, that Bush was putting on a pompous pose (casus belli, An act or event that provokes or is used to justify war.)

Does anyone but me remember Colin Powell holding up that vial, used to represent the threat of Iraqui anthrax, before the U.N.? They were trying to scare us. Remember Blair's sexed-up "45-minute" claim? Is 45 minutes "imminent" if you don't use the word "imminent?" Are 29,984 unaccounted-for munitions capable of delivering chemical agents "imminent?" What about if they don't exist? (Perhaps the debate should really be over the threat that was "immanent" - that is, existing in the material universe or human consciousness).

"Imminent" to me means "we don't have time to wait around debating this." And that is exactly the case Bush himself and his administration made, as Sullivan himself quotes:

Some have said we must not act until the threat is imminent. Since when have terrorists and tyrants announced their intentions, politely putting us on notice before they strike? If this threat is permitted to fully and suddenly emerge, all actions, all words, and all recriminations would come too late. Trusting in the sanity and restraint of Saddam Hussein is not a strategy, and it is not an option.

Of course, Saddam was not cooperative. One just has to read Scott Ritter's account in his book Endgame to be convinced of this. I'm not defending Saddam, and I'm not trying to convince anyone that he was cooperating with the U.N. Inspections regime as fully as he was required to. But we must ask ourselves: who do we trust more? I was very impressed with Hans Blix's work. I believe that the Iraqui regime was beginning to show cooperation. This was what truly scared the Bush administration: if Saddam was cooperating, there was no good case for invasion. There was also a lot of evidence of American involvement in Saddam's weapons programs to hide. We apparently had to censor Iraq's weapons declaration so that we could continue to declare Saddam an uncooperative madman and America blameless. See [Project Censored){http://www.projectcensored.org/publications/2004/3.html), The Baltimore Chronicle, and The Sunday Herald.

According to Project Censored:

Throughout the winter of 2002, the Bush administration publicly accused Iraqi weapons declarations of being incomplete. The almost unbelievable reality of this situation is that it was the United States itself that had removed over 8,000 pages of the 11,800 page original report.

And from The Sunday Herald:

The full extent of Washington's complete control over who sees what in the crucial Iraqi dossier calls into question the allegations made by US Secretary of State Colin Powell that 'omissions' in the document constituted a 'material breach' of the latest UN resolution on Iraq.

Well, yeah.

Sullivan also writes:

The anti-war left sees a real advantage in stripping down the claims in people's receding memories to ones that were not made but which can now be debunked... It's propaganda, to which the media in particular seems alarmingly prone to parroting. We have to resist it at every stop - because this war has not yet been won, and the really crucial battle, now as before, is at home.

And I couldn't agree more. We have to resist the use of propaganda and remember how the war was sold. And we have to be aware of the sea of propaganda we swim in daily, and keep in mind that retroactive justification for some good that may come from Saddam Hussein's removal from power cannot justify one sovereign nation invading and occupying another that did not pose a credible threat. Not "imminent," credible. And no amount of nitpicking can make that that justification true.

[/root/iraq] permanent link

Syria

So the third battle in the "War on Terrorism" has begun. (The first was Afghanistan, lest we forget).

A great piece from Gary Leupp in Counterpunch here:

Colin Powell (not a neocon, but their sometimes reluctant spokesman) told Syria's President Assad in May that Syria would be "on the wrong side of history" unless he took action against Palestinian militant groups in Syria, and prevented volunteers from crossing the 400 mile-long Syria-Iraq border to assist the Iraqi resistance to occupation. Being "on the right side of history," you see, means being on the side of those whose roadmap for peace simply requires Arab governments, like the one in Damascus, to ally with the U.S., recognize Israel, collaborate in the suppression of Palestinian militancy, close down Palestinian news media, accept a noncontiguous Palestinian Bantustan state, acknowledge the demographic inconvenience to Israel of the Palestinian right to return, absorb the Palestinian refugee population at their own expense, eliminate any weapons of mass destruction which might threaten nuclear Israel, actively suppress elements of Islam objectionable to Israel and the U.S., and accept the U.S. occupation of Iraq. It would be helpful, too, if they fully open their markets, place their banks, industries and utilities under foreign control, and host U.S. military bases. That's how to board the historical bandwagon and help implement inevitability.

[/root/iraq] permanent link

Fri, 19 Sep 2003 Windows Eats the Internet

I came into work today and started checking my e-mail. The MacOS X Mail client began downloading messages. It is still doing so. I had almost 200 new messages (on a typical day, including mailing list traffic, I might normally have 50 brief text-only messages which download quite rapidly). My mailer has been synchronizing for over an hour, and more mail seems to be pouring in, almost faster than it can be downloaded.

But the big fun is that most of them are garbage generated by worms and viruses running on Windows systems. The messages are coming in bursts, but during some of the bursts I'm getting one or more message per minute. And it has been going on around the clock. So far, I've received almost 170 copies of Microsoft worms.

I'm glad to see that Microsoft's Secure Computing Initiative is showing positive results.

This is having real consequences: I've got real content I've got to get at in my mail: some code built by a contractor I'm supervising, messages from another development team which I can't get to, and messages on developer mailing lists that may have solutions to some of the latest difficulties I'm encountering in my coding. I can only imagine how much worse this would be if my machine was a Windows box actually executing the worm while I was trying to get things done.

Now my mail server is being choked alive, and Most of these messages are allegedly from "Security Division," "Inet Email Service," "Net Service," "MS Technical Bulletin," "MS Net Mail Service," "Microsoft Corporation Technical Services," "MS Network Security Section," "Admin," "postmaster," "Security Center," "Microsoft Inet Message Storage System," "Microsoft Corporation Technical Support," "MS Corporation Network Security Division," "Inet Service," "Microsoft," "MS Technical Assistance," "Storage System," "email storage system," "Network Email Storage Service," et cetera.

Subjects include "Current Network Update," "Last Net Security Upgrade," "Failure Notice," "Abort Letter," "Notice," "Critical Pack," "Network Upgrade," "Undelivered Mail," "error letter," "Bug Message," "New Microsoft Critical Patch," and "Report." Some have a blank subject. There are two general themes: fake patches, and fake bounce messages.

They all have attachments. Of course, I'm receiving them on a system with a completely different processor, so they won't run on my machine. My disk usage for e-mail on DreamHost has gone from about ten megabytes to about seventy. The server is wallowing like a water buffalo under the weight of all this spam. (It is not technically spam, given that it is not exactly unsolicited commercial email; it's also harder to figure out who to blame for it, since most messages are likely coming from infected machines whose owners do not realize that they are infected).

I've also got one message that includes at least 300 email addresses and appears to be an advertisement for an anti-virus service written in Italian. A nice effort from a member of the Coalition of the Bullied, but better luck next time, guys.

Anyway, what can we deduce from the attachment? First of all, if you're running on machine and seeing similar mail: DO NOT EXECUTE THESE ATTACHMENTS. If the message contains web page links, DO NOT CLICK ON THEM. Don't try to analyze the attachment like I'm about to; you're likely to wind up installing the worm on your computer. I'm an expert. This is a Mac. Don't try this at home.

So what is this crap?

Running "strings" over the binary executable yields some interesting results: it was written with Microsoft Visual C++. It contains the names of a lot of executables: "anti-trojan," "bootwarn," "findviru," "lockdown2000," "safeweb," and "regedit." It also contains the following:

    HEAD %s
    RCPT TO: <%s>
    QUIT
    DATA
    MAIL FROM: <%s>
    HELO %s

These are the phrases used to communicate with an SMTP mail server. So, this executable is designed to send mail. It also contains a template e-mail message:

    Content-Transfer-Encoding: base64
    Content-Disposition: attachment
    Content-Type: text/html
    Content-Transfer-Encoding: quoted-printable
    Copyright %i Microsoft Corporation.

(Hint: the mail does not come from Microsoft), and a whole bunch of stock phrases presumably assembled at random to generate subjects and "From" lines:

    Microsoft
    Support
    Assistance
    Services
    Bulletin
    Customer 
    Public 
    Technical 
    Center
    Department
    Section
    Division
    Security 
    Network 
    Internet 
    Program 
    Corporation 
    Microsoft

And here are the strings which will generate some of the "Subject" lines:

    Notice
    Report
    Announcement
    Advice
    Letter
    Failure 
    Abort 
    Error 
    Bug 
    User unknown
    Mailer
    Sender
    Returned To 
    Message
    Mail
    Undelivered 
    Undeliverable 
    Returned 
    System
    Service
    Delivery 
    Storage 
    Mail 
    Message 
    Email 
    Inet 
    Postmaster
    Administrator
    Admin

Then there are these strings:

    Virus Generator
    Magic Mushrooms Growing
    Cooking with Cannabis
    Hallucinogenic Screensaver
    My naked sister
    XXX Pictures
    Sick Joke
    XXX Video
    XP update
    Emulator PS2
    XboX Emulator
    HardPorn
    Jenna Jameson
    10.000 Serials
    Hotmail hacker
    Yahoo hacker
    AOL hacker

(Who is Jenna Jameson? I feel I should know.) It turns out these are used to give filenames to the trojan when it is propagated by file-sharing. There's a lot more in here, but you get the idea.

CERT says:

W32/Swen.A Worm added September 19

The CERT/CC has received reports of a new mass-emailing worm, referred to as "W32/Swen.A" or "W32/Gibe.F". This worm is similar to W32/Gibe.B in function. The worm has been reported to propagate through email, network shares, and file-sharing networks such as KaZaA and IRC. It arrives as an attachment.
The subject, body, and From: address vary, but often claim to be a Microsoft Internet Explorer Update or a delivery failure notice from qmail. Upon opening the attachment, the worm attempts to mail itself to all e-mail addresses it finds on the system. Additionally, this worm attempts to terminate numerous security product processes on the system.

So, what is this all about? It's about poor propagation of security patches, poor code, and what is largely a sotware monoculture. It's about a software monopoly which is complacent even in the face of the beginnings of public outrage over its insecurity.

There are people out there who would like you to believe that all operating systems are created equal and, thus, equally insecure. Vance Gloster on the Stickwire mailing list wrote recently:

In the bad old days, about 4 years ago, Microsoft was very irresponsible about security. While the folks at Sun who created Java were thinking hard about security with Java applets, the folks at Microsoft ignored security concerns in creating the ActiveX infrastructure. As they had been trained to evaluate issues, the Microsoft folks said, "security does not increase revenue", and they dismissed it as irrelevant to what they were doing.

Bill Gates, though, saw that poor security could erode their user base like nothing else, and in January of 2002 he sent a memo to all of Microsoft telling them security had become their highest priority. You can read his memo at:

http://news.com.com/2009-1001-817210.html

Since then they have done a much better job at plugging security holes. Virtually every big hacker invasion (that did not depend on email attachments) exploited a hole that Microsoft had already fixed. Microsoft's Windows Update system makes it easy to update your machine.

Let's look at this claim: I have a clean XP Home box from Dell here that had never been patched since purchased (perhaps a year go). I went to patch it. I found that Microsoft's site identified over SEVENTY patches!

Needless to say, it took the better part of a work day to decide which ones to install, download them, install, and reboot three or four times, then navigate back to the site each time. Microsoft throws everything into the "patch" system: documentation updates, adware, spyware, "security" in the form of added DRM.

Vance goes on:

So does Microsoft really just write terrible code, and that is the problem? Maybe, but so does everyone else.

To which I replied:

Well, yes, all code must be assumed to be buggy and security-hole-ridden until proven otherwise. And unfortunately there is no way to "prove" otherwise except to gradually gain confidence in a code base that has been tested "the hard way" over the years. But Microsoft does seem to have an amazing culture of prima donna hacking and premature optimization. Read the war strories of some of Microsoft's programming management (Steve McConnell writes quite openly about Microsoft's programming culture).

Vance continued:

In reality, even very smart programmers make errors that can be exploited. Until we get better at testing for these things, software, whether on a Mac or on Linux or on Windows (or even on your souped-up Commodore 64), will have vulnerabilities. About all you can ask for is for the authors to be responsive in creating updates. The open source community, with a few exceptions, has been very responsive, as has Microsoft over the last year or so. Apple has not been as aggressive about doing updates, but they argue that their users have had few problems. This is what Microsoft was saying several years ago. If you are interested in Apple security updates you can find them at the address below. There is a new one as of about a week ago for OSX.

But this is misleading. Apple has not been "aggressive" about releasing updates, but this is because they have not had as many security holes to fix. As security holes are uncovered in the underlying Darwin OS components, many of which are quite arcane and have never led to exploits, Apple has been quite decent about releasing patches. In my reply I wrote:

Yes, MacOS X is based on BSD UNIX, but this is really a blessing in disguise: BSD has been around a lot longer than Windows 3.X/9X/200X/XX and, being open-source, has had the benefit of decades of hackers competing with each other to find security holes and bugs. When security holes are found in the BSD layer Apple is aggressive about patching them.

...

Apple's culture is not Microsoft's. Apple, being the one with the small market share who must prove themselves and can't resort to monopolistic practices, simply can't afford Microsoft's arrogance and carelessness with its customers. Apple doesn't "argue" that their users have had few security problems. MacOS X, formerly OpenSTEP, formerly NEXTStep, aka BSD UNIX, with a dash of Mach, has a reliability record that no commercial OS except perhaps Solaris (System V) can aspire to.

Apple's core OS is open source; I have the source on my machine. Most of it is BSD (with a 20-year-plus pedigree).

I've seen Windows boxes compromised at every place I've worked; in practice, having a Windows server on a network is generally a security disaster. I've had Linux boxes rooted as well.

Having an OSX box rooted is astonishingly rare. It's like a Sun vulnerability. It happens, but not often. BSD servers have a record for reliability that even Linux boxes can't match. MacOS X comes set up with reasonable security out of the box: no FTP, no Telnet (something Linux distributions are only recently beginning to try). By contrast, an XP box on the network is a promiscuous whore begging to be hacked: services running all over the place, ports open left and right, many which can't even be turned off. (And Lord knows, we're trying; 99% of the disturbing activity we track on our network is coming from our XP boxes. I know this because we've got a consulting investigating strange activities on our network, reading TCP/IP dump files and trying to figure out why our network constantly behaves as if under a denial-of-service attack. What he's found is that it correlates very well with spyware, file-sharing trojans, and Windows XP shenanigans).

Apple's built-in software update also works much better in practice. It notifies you of patches, and there are a small number of them (less than one a month). It's much less onerous. And they don't try to blame all the security flaws in the OS on the end-user's failure to spend half his or her working day trying to keep up with a bewildering array of patches.

It's doubly ironic today that I'm being inundated with fake security patches. Apple has heard and taken to heart the story of the OS Vendor Who Cried Wolf, while Microsoft blames the customer and inundates us with irrelevant patches.

To be fair, there isn't much that Microsoft can do if users download and install trojan horses, or happily bypass warnings to run executables they received in incoming email messages.

Now the worm writers are exploiting the very lassitude, hopelessness, and blind trust that this approach has engendered in its users, and it isn't a pretty picture.

So. Want to fix the security holes in your Microsoft system? Unplug it. Want to make the internet a healthier place? Run another operating system. It doesn't have to be MacOS X, but that would be a good choice. A recent BSD release would do you just fine, or Linux if you wish. And you might find that you learn something and save money at the same time.

UPDATE: The Register has a great piece here that talks about the meme that "if Linux or MacOS was as widely used as Windows, there would be just as many viruses written for those platforms." It just isn't true; Windows has unique qualities that make it inherently insecure, and this isn't just anti-Microsoft propaganda; the design and default configuration of the Windows OS make it so. See http://www.theregister.co.uk/content/56/33226.html.

[/root/geeky/life] permanent link

Mon, 01 Sep 2003 Apple LCD Monitor Prices

Let's imagine for a moment that I had the money to order a brand-spanking-new G5 system from Apple and assume that I wanted to get some Apple LCD screens. (Yes, I know 3rd-party LCD screens are much cheaper, but I also notice that the cheap ones don't have digital video input, which somewhat reduces the actual image quality I get out of them). Today the prices on the Apple displays are as follows, at least when I spec them together with a computer:

17" screen: $699

20" screen: $1299

23" screen: $1999

Now, the Apple 23" screen is certainly beautiful. It gives you a lot more real estate. Let's assume for a moment that screen real estate is fungible: that is, that I don't care about the exact dot pitch, that I want as many pixels as possible, and that it does not matter to me if they are all on one screen, or two... or even three. In this scenario, does it make any sense to buy the 23" screen? Or even the 20" screen?

The answer is no. The 17" has a native resolution of 1280 by 1024; the 20", 1680 by 1050; the 23", 1920 by 1200. We can calculate a cost-per-pixel ratio. Rounding the prices to the nearest dollar, the cost per pixel is about 0.053 cents for the 17" screen. It goes up to about 0.087 cents per pixel for the 23" screen. (When you consider that the 23" screen has about 2.3 million pixels, the cost doesn't seem quite so ridiculous).

If pixels cost the same on all three screens, the 20" screen would cost about $940 and the 23" would cost about $1230. If the high-end screen prices come down to or below these points, it would make sense to buy them. (Of course, by the time this happens, one might assume the 17" screen will cost less as well). And of course there is some fixed overhead per unit: the power supply, the backlight, the casing, the cost of packaging and manufacturing.

For now, for my needs, it would make better sense to buy two 17" screens. That would give me about 2.6 million pixels, more than the number of pixels available on the 23" screen, at a cost of $1400, or 70% of the cost of the 23" screen. I don't truly have a need to view large layouts on a single monitor the way a graphic designer or digital photographer might, but as a developer, I like to have multiple source files open at once, along with, perhaps, several terminal windows, a project view, and a source-level debugger. Sticking two monitors next to each other is good enough.

Of course, this does not take into account the minor thrill of watching a DVD on a 23" flat panel. Were money no object, I'd consider two 23" screens. But this is all pretty much a speculative exercise to begin with, and if I speculate more realistically, I'll be a bit less disappointed!

[/root/geeky/life] permanent link

Second-guessing the Compiler

So, did you hear the one about the programmer who decided to rewrite all the logical tests of the form

if ((x) || (y))

as

if !(!(x)) && (!(y))

On the grounds that the PowerPC uses "NAND gates," where the Pentium used "AND gates," so the second expression would run faster on PowerPC hardware?

When I heard this, it caused me to utter some kind of sound... I don't remember the details, but I think it involved spraying coffee all over my monitor.

Of course, the two are logically equivalent (work out the truth table for yourself, if you don't believe me). I don't have any idea whether there really is a difference in the performance of OR logical operators on the PowerPC. I sincerely doubt it, keeping in mind that even the assembly instructions are abstract, as far as the hardware is concerned, and I don't have any way of knowing what is really happening in the hardware when a simple OR test is executed. If the hardware chose to execute the OR comparison using NOT and AND, I'd never know, and wouldn't care. But the second one certainly looks a lot more obscure, and that was the programmer's real point. (The "baffle 'em with bullshit" defense; if it looks complex, it must be complex; it will be harder for someone else to maintain; perhaps it will ensure job security.) (Don't bet on it; if anyone who worked under my supervision wrote this without a very good reason, he or she would be out on his or her ass).

It gets better. CodeWarrior is pretty good compiler. It looked at this code, and determined, pretty much as a human could with a little thought, that it made more sense to reduce the code to a simple logical OR. So that's what it did. So even if the original programmer had been right, the processor wasn't executing the logic he wrote. He hadn't looked at the resulting code. So there was, for yet another reason, no reason to write it that way.

Now, the people who wrote CodeWarrior's optimizer aren't dumb. It has undergone years of tweaking by very smart people. If there was some great optimization to be gained by rewriting logical operations to support the PowerPC's "NAND gates" more efficiently, they would have implemented it; it would be described in the PowerPC documentation, to guide compiler writers; and programmers would be griping about it. IBM and Motorola have a vested information in getting optimization advice out there, to make their chips appear more competitive. There isn't a reason to rewrite the logic like this, so they didn't.

If you've been living under a rock and haven't heard: optimize after you get it working. Optimize what you can measure. But the best initial optimization you can do on your code is to design it well and express it clearly. After you've tested it, crank up the compiler optimizations and test it some more. Measure its performance. Profile the hot spots. Optimize those parts. It doesn't make sense to waste effort optimizing instructions that are only executed once, during the startup of the program, which is not noticeably slow. If your program is slow on a modern CPU, it is far more likely that you are doing something wrong algorithmically: looking up some information by traversing a long linked list every time a function is called, for example, instead of using a more efficient structure such as a tree or hash.

Don't get me wrong: there's a place for serious hand-optimization. I've worked hard to hand-optimize DSP assembly code in order to reduce the number of cycles necessary to restart a disconnected data transfer across a PCI bus. I've tweaked interrupt routines to block for as few instructions as possible. I've also worked to determine why a program that draws animated meters is using thousands of times more CPU time than I expected. (Because it was drawing far too much, far too often, due to a bug that was easy to find by single-stepping the code with a source-level debugger). But in these cases I had some way, even if it was an imperfect way, of measuring the results. And you can bet your ass I was carefully commenting the code to explain why the implementation no longer appeared to be as simple and straightforward as possible. Not just to benefit some abstract future maintenance programmer; that maintenance programmer could be someone I know and love - myself.

[/root/geeky/programming] permanent link

Wed, 13 Aug 2003 Fraudulent eBay Mail

I've been receiving mail allegedly from eBay containing HTML and a form requesting my user ID and password, with the following text:

Dear eBay User,

During our regular update and verification of the accounts, we could not verify your current information. Either your information has changed or it is incomplete. As a result, your access to bid or buy on eBay has been restricted. According to our site policy you will have to confirm that you are the real owner of the eBay account by log in and complete the form that will pop up or else your account will be suspended without the right to register again with eBay.

I've been using the Internet since before it was the Internet, and so this immediately said "a cheesy fraudulent attempt to harvest passwords." I reported it to spoof@ebay.com along with full headers. This is just a reminder to my loyal reader that reputable companies will never attempt to harvest information in this way.

The headers are suspicious, to begin with:

    Received: from smtp016.mail.yahoo.com 
    (smtp016.mail.yahoo.com [216.136.174.113])
        by ludo.dreamhost.com (Postfix) with SMTP id 710D928062
        for <paul@thepottshouse.org>; Wed, 13 Aug 2003 05:43:24 -0700 (PDT)
    Received: from unknown (HELO 211.60.92.186) (unrinocer@211.60.92.186 with login)
        by smtp.mail.vip.sc5.yahoo.com with SMTP; 13 Aug 2003 12:43:18 -0000
    From: "aw-confirm@ebay.com" <aw-confirm@ebay.com>
    To: "Paul" <paul@thepottshouse.org>
    Subject: eBay Verification Request

Note the "received from unknown" with a raw IP address rather than a verifiable hostname. It looks like it may be going through an open mail relay at Yahoo, which is very strange and suspicious, so I have also reported this to abuse@yahoo.com.

The page contains a lot of JavaScript, and pulls graphics directly from eBay's site, but look here:

    action=3Dhttp://scgi.ebay.com.sawcgi.eBayISAPI.dll.
    RegisterEnterInfo.RegisterConfirmInformation.dll.
    eBayISAPI.dll@64.70.156.84/
    eBayISAPidlldasSKJEDFKJSdsalkepoamncjfdsjKKdsjdxcmnzkjsjeLKKLKdsjnxs/
    ksjdeISJJSjjISSdlldkDKJlLXcdcawerfDEurERRudsksalfkmcxXXlkdmfldll/
    LKJDjedssjheflkcgieBaysadkKJEDjdfklluseridLKSKdskdmxskjdeEEdkjas7837sdkjd/
    a.php

Note the super-long URL, with a bunch of fake ".dll" script names given, and then a bunch of crap designed to fill up the address line in your browser, so that the end of it is hidden. It looks like this is actually running a PHP script (a.php) on a server with a given IP address (64.70.156.84); the garbage is just to "decorate" the URL sufficiently so that it looks like an eBay URL, and so that you'll be unlikely to notice that the address isn't a real eBay address. If you hit this address with the "decorated" URL, it redirects you to eBay after processing. The raw IP address seems to belong to "ValueWeb: An Affinity Company" which seems to be an ISP, but who knows who it really is. Let's be careful out there.

[/root/geeky/life] permanent link

Thu, 07 Aug 2003 Impeachment's Too Good for Them

So, to politics and the "war." It is hard to describe my level of anger these days: every day, the situation becomes more unbelievable. It is very hard to just lapse into utter cynicism. I've been giving more thought to emigration. What the hell has become of this country's leadership? More importantly, what has become of this country's "followership" that we are not rioting?

The president has now claimed "personal responsibility" for everything he said and did. That's great. So when will the trials begin? Impeachment is too good for this crew. An international war crimes tribunal along the lines of the Nuremburg trials is in order. That may seem like an outrageous statement, but let's review:

First, we are not "at war." No one has declared war on us; we have not declared war on anyone. The power to declare a state of war resides in Congress. They have not done so; instead, they gave the president authorization to use force to conduct the "war on terror." Please remember that every time an administration official uses the excuse that "this is a war," or "we are at war," this is inflated rhetoric and not literal truth. The Pearl Harbor attack had a sovereign nation behind it; the September 11th, 2001 attacks had a shadowy, stateless cabal.

Second, we were not at risk from Iraq. Every element of the administration's case that Iraq represented an imminent threat to the security of the United States has been shown to be false or grossly exaggerated. The case the administration made regarding the danger of Weapons of Mass Destruction, far from being just sixteen words in the State of the Union address, was hammered home consistently and repeatedly on many occasions. Make no mistake, this was a big, big lie, not just an exaggeration on an occasion or two. The case for links between Iraq and al-Quaeda was also a lie.

It was on these grounds that that administration led us, not "to war" exactly, but to the violent invasion, occupation, and demolition of a sovereign nation. This is a war crime on a scale virtually without precedent, known in international law as aggression.

Based on these lies, the United States did this to a nation with which we were not at war. We did not just "liberate the Iraqui people." We:

What did we achieve? What do we expect to achieve? Is this the way to do it? If our case was to end the suffering of the Iraqui people under Saddam Hussein's administration, was this the way to do it? If this was our real agenda, we've done a shockingly poor job of it. If it wasn't our real agenda, what was? Can this really be all about control of oil? If so, we've done a pretty piss-poor job of that, too. Support for Israel?

One thing should be glaringly obvious: a tissue of lies cannot justify this naked aggression. To go to war, declared or not, to invade a sovereign nation and kill its people -- this is pretty much the gravest act a nation can undertake. A decision to do what we have done should never be taken lightly. I believe it is possible for military action to be justifiable, but if ever there was a case in which it was not, this is it.

Liberia has been begging for American intervention. We ignored them for months. A humanitarian disaster zone demanding "regime change," we've said "we're going to let the U.N. handle this one." (Apparently, we've now got a few advisors on the ground). Is this the same U.N. that we declared "irrelevant" because it would not rubber-stamp our rush to invade Iraq?

This appears to me to be the most openly and blatantly corrupt and corporatist administration America has ever seen. We've got Richard Perle, the unelected antichrist, threatening to sue people for telling the truth about his profiteering. We've got Paul Wolfowitz, who has suggested that liberating the Iraqui people was "not a reason to put American kids' lives at risk, certainly not on the scale we did," but that allowing the U.S. to withdraw troops from Saudi Arabia was a "huge" factor and that WMD was chosen for "bureaucratic" reasons. But does this make any sense? Most of the 9-11 hijackers were Saudi, and the administration has been hiding intelligence regarding Saudi Arabia's role in 9-11 -- even over Saudi Arabia's strenuous objections.

We've got secret blacklists of American dissidents. We've got fiscal policy that seems to involve playing chicken with bankruptcy. Radio and television stations that run anti-Bush ads are being threatened with revocation of their FCC licensing. Free speech and civil liberties are becoming increasingly things that exist only for the right kind of people.

We've got the most blatant and openly corrupt and criminal administration in American history lying, manipulating, cheating, and profiting. If this is not a case for impeachment, then no such case can ever be made; if it is not a case of criminal wrongdoing, then no act by a government official could ever be criminal. Is this what it has come down to?

[/root/iraq] permanent link

Tue, 05 Aug 2003 Dylan

So, it has been a while since my last entry... please bear with me. I've been putting in evenings and weekends trying to build a large proof-of-concept in code, using the Dylan language. Aside from politics, it has been uppermost on my mind, so here are some words on Dylan.

Although the language has yet to prove itself commercially viable (Apple pulled the plug on its Dylan implementation and closed the Cambridge R&D lab which developed it; the Gwydion project is now open-source, and Functional Objects, which spun off the Functional Developer IDE from Harlequin has announced its intent to open-source the rest). Although the various implementations have flaws, Dylan remains my personal favorite language and should be, I believe, considered the worthy heir apparent to Common Lisp.

Its most obvious difference from Scheme and CL is a Pascal-like infix syntax, rather than the familiar prefix, parenthesized notation. One could argue that it is the Lisp syntax, or lack thereof, that makes code-as-data S-expressions and language extension via macros possible. It certainly makes it simple to implement, but Dylan has proved that it can be done without the Lisp syntax. Hardcore Lispers will argue that the syntax is "just syntax" and therefore irrelevant, but Apple calculated, quite rightly I believe, that to improve the acceptability and promote the language beyond the existing Lisp community, a more familiar syntax would be necessary. I think this is true, but of course this has been "necessary but not sufficient" to promote widespread acceptance; many other factors, obviously, are involved in language acceptance.

Like many things Apple developed during the 1990s (QuickDraw GX typography, OpenDoc, system-wide encryption, and a long list of others), the implementation could not keep up with the concept. Apple's Dylan IDE, implemented in Macintosh Common Lisp, ran painfully slowly on a Quadra 800 with 40 megabytes of RAM (this machine sported a 68040 at 33 MHz). I've never had a complete explanation of why this implementation ran so slowly, but it has something to do with an inefficient implementation of an object database for all source records and compiled code objects. Apple's IDE was far ahead of its time; ten years later, IDEs have not yet caught up, although I have had the pleasure of using systems such as IBM's VisualAge for Java which have gotten part of the way there. To see my notes and screenshots of Apple Dylan, take a look at these pages on the Dylan Wiki.

Both the two major current implementations, Gwydion Dylan and Functional Developer, are a little bit rough around the edges, especially in error-reporting and ease of configuring projects. Dylan has an extremely sophisticated module system that gives you fine-grained control over how bindings are imported and exported; it is much more advanced and flexible than C++ namespaces, but it extracts a certain penalty in overhead when building a complex, multi-module project out of text files. Refactoring code under the Gwydion system becomes somewhat painful when I must adjust "use" declarations, "export" declarations, .lid files, and module headers at the beginning of source files. Not to mention the makefiles. Failure to get it right results in somewhat opaque, and sometimes downright childish, errors ("puked when trying to load module..."), ("can't handle hairy classes yet,") and claims that I'm trying to define a class in a circular manner. Clearly it is still a bit of a hackers' tool, and user-friendly error messages are not its strong point, but it does the job. And unlike some scripting languages, generating efficient code, and providing a clean interface to C, are design goals that have been achieved. d2c generates C code, essentially creating a virtual stack and named locals for temporaries, as if C were its machine language, and executing very low-level C constructs. It is a case study in optimization. Providing type specifiers allows the compiler to generate very optimized code; leaving everything open provides maximum flexibility for the developer. (In the Lisp tradition, variables don't have types, but values do; Dylan allows you to give your variables types, and the compiler will enforce them).

Although Dylan's module and type system should enable exact tracking of dependent changes and thus minimal recompilation, the d2c compiler seems to always recompile each file in the project, and as the maintainers note, "d2c generates fast code slowly." I've been trying to ameliorate this situation by building libraries, but library support is off-the-bat slightly broken under MacOS X; the Carbon library is slightly broken as well. I've found a few bugs, and already received one patch from the maintainers. I've had to work around some strange behavior. I've had to revise some of the distributed libraries. I've managed to patch these things up, but communication with the maintainers via the mailing list has been flakey as well. I can't exactly complain; It is an open-source project; I can contribute fixes to the maintainers. But contributing patches to an extremely sophisticated compiler requires a pretty deep understanding of the compiler internals, and despite its failure to be user-friendly to questionable code, this is a very advanced optimizing compiler.

As open-source projects go, no one would claim this is a good starter project. Most of my working time is committed to paid work, but I am still going to do what I can to contribute. I've wanted to see Dylan succeed for almost ten years now. Even if it succeeds for no one but me, that's a strategic advantage and an opportunity to write code at a higher level.

Functional Developer is a more polished implementation, although it is still capable of bringing my Windows ME machine to its knees after a bit of use. (This is probably more a comment on Windows ME than on FD). Its error messages are also sometimes a bit confusing, and there are some slight differences between what d2c finds acceptable and what FD does. The interactive debugger is a bit baroque. But it works; I was able to port a lot of code, checking it into CVS from a Gwydion Dylan project and checking it out on the PC.

There's a great potential for someone to coordinate a serious development effort here. Dylan is languishing, and it doesn't deserve to. It already provides, in a formal and sophisticated way, what scripting-language writers are struggling to provide. It has higher-level functions; it has multi-methods; it has advanced capabilities for optimization. It has a macro system. What it lacks is a user base and a supported commercial implementation worthy of the language design itself. That sophisticated module and export system? It cries out for a graphical tool. (That's how I keep track of my exports and imports: I draw them with OmniGraffle, a great graphing tool for MacOS X, and let it lay out the graph for me). The error handling? It cries out to be polished up, not abandoned. Did you know that four books on Dylan have been published? Probably not. They are all out of print, although you can still get copies of two of them. But they aren't the last word. The language cries out for an O'Reilly book. Maybe I'll be the one to write it.

[/root/geeky/programming/dylan] permanent link

Wed, 23 Apr 2003 Something Besides Iraq

I'm not going to talk about Iraq today; opinions are long-hardened, and I need to think about something more bearable. I've been raiding the Ann Arbor Public Library. Here's what Paul has been reading, in approximate reverse chronological order, with some brief reviews.

Connie Willis: The Doomsday Book

A beautiful book, but very grim. It uses time travel without resorting to techno-babble or paradox; it portrays the middle ages without resorting to crude stereotyping. It is a bit hard to call it "uplifting," but it does express dramatically the notion that we are all called to be saints to one another, and that ordinary people can come close to that ideal. The story is moving. It gets hold of the reader's feelings but the manipulation is deft. I'm looking forward to reading more of Willis's books.

I generally like harder science fiction, but this was a nice break from that, and reminded me that a lot of my favorite "hard" science-fiction writers are really not very good with the "writer" part.

I'm looking over the reviews on Amazon to see what others thought. A reviewer called it "fun." It seems to me that this is like calling Gorecki's Second Symphony "fun." It is a mournful, but ultimately hopeful, book.

The complaint that the book is a bit long is valid. It is almost six hundred pages; a number of the scenes and conversations that take place in the book's "present" are a bit redundant and some could be combined or trimmed. Amusingly, some Amazon readers think just the opposite; they'd like to see the account of Kirvin's time in the Middle Ages trimmed. But it does not need to be savaged, just pruned, perhaps by a hundred pages; an awful lot of books could benefit from a similar treatment.

Personally I'm a fan of many longer works and like to see what can be achieved by a long work. But I'm a fast reader; it seems to me that the complainers might weighed the book beforehand, skimmed a few pages to get the style, and then decided that they were not likely to have the stamina to make it to the end. (Then again, perhaps that what they did before giving this excellent novel a one-star revew).

Some of the minor characters are a bit flat -- but some people are a bit flat. The characterizations of the household children are amazingly real and unsentimental (her children can be obnoxious, and frequently understand more than the adults think they do). I think being slightly confused by the British English is charming rather than off-putting. The idea that historian studying Middle English today would have difficulty understanding a native of the 1300s seems not only plausible, but likely. Some readers complain that the story moves back and forth between a present- day epidemic and the time of the Black Plague: but it seems to me that this juxtaposition is precisely what makes the book's point.

Robert L. Forward: Rocheworld

This is the author's longer, preferred version of what was originally a short story, later lengthened into a somewhat longer novel. It is a bit patchy: it seems to me that the more-recently revised portions are better, and the overall result flows a little awkwardly, but I have not read the original versions to compare. I'd rate this as somewhat second-rate Forward, but this is still better-than-average hard SF.

The genre is science fiction in the tradition of Dragon's Egg, but this is not quite up to the standard of that classic novel. Forward's human characters are quite weird. They veer wildly between John Glenn test-pilot stereotypes and all-too-human lonely geeks in fuzzy pajamas. I'm not sure I would call them realistic, but they are at least entertaining.

As usual for Forward, the aliens are more interesting. In this case they are mathematical brilliant, brightly-colored underwater clouds who don't have technology, create no artifacts, and spend most of their time surfing. If you don't think too hard about the evolutionary biology (why develop great intelligence if there are no predators and you are virtually immortal?) they are great fun.

Forward is a very sharp physicist and speculates brilliantly about Rocheworld, a binary planet composed of two small planetary bodies in an extremely tight orbit, one covered with water, one dry. He's a firm proponent of the axiom that the universe is not only stranger than we imagine, but stranger than we can imagine. The humans are never quite prepared for what they find around Barnard's Star, just as I doubt we would be. His sail-based propulsion is convincingly drawn; as in Dragon's Egg, the physics are described in more detail in an appendix.

Less convincing is his solution to the problem of keeping humans alive for decades on interstellar journeys: rather than the undergoing the usual cryogenic "cold sleep" to slow the metabolism and prevent boredom and psychosis, his humans take a drug called "No-Die," which prevents them from aging, but has the unfortunate side effect of reducing them, mentally, to first-graders. This is mostly annoying, although mercifully we are not forced to endure very many scenes with of the adult crew reduced to children. There are also some minor subplots that could have been left out without harm. One of the more interesting is the ethical furor over the fact that the journey is one-way. This is of slightly more than academic interest: it may be, for example, quite feasible with existing technology to send humans to Mars. Sending them enough fuel to manage the return trip is, given the cold equations of entirely another order of difficulty. Would you volunteer for that one-way mission?

Some of Forward's predictions seem laughably out-of-date already: he's got great mobile and highly intelligent robots that assist the crew and even "live" on their shoulders or in their hair, but the equipment needed by a character to edit images and video is a bulky console that can't be moved from room to room. This is particularly funny given that I'm writing this on a five-pound portable equipped with iPhoto and iMovie. It's just more proof that science-fiction writers can't necessarily predict the real future any better than the rest of us, but it can still be a lot of fun to watch them in the attempt.

Robert L. Forward: Starquake

A somewhat less-than-stellar sequel to the wonderful and highly influential Dragon's Egg. If you've read Dragon's Egg and liked it a great deal, you will find this worth reading; if you only slightly enjoyed the first book, don't bother. Foreward doesn't come up with anything truly innovative for the sequel, and it has not aged as well as the first book.

(To come: Joe Haldeman's Forever Peace, Terry Pratchett's Moving Pictures, more...)

[/root/books/fiction] permanent link

Wed, 16 Apr 2003 U.S. Arrogance on Weapons Inspection May Cost Soldiers, Civilians Dearly

So, what's the best way to guarantee that Iraqui uranium goes missing: continue a U.N.-backed inspection regime, or bring war and anarchy to the region with un-briefed, un-trained military personnel?

It's not a trick question. On his Thursday, April 10th weblog entry, Andrew Sullivan posted this brief and provocative bit:

IS THIS IT? Fox News reports on a labyrinth of tunnels and labs in Southern Iraq, where buildings are testing positive for radiation. This may not turn out to be a nuclear research facility. But it strikes me as a sign of what we might soon find.

Sullivan linked to Fox News, where an article here with the headline "Weapons Grade Plutonium Possibly Found at Iraqui Nuke Complex" in which they state:

While officials aren't prepared to call the discovery a "smoking gun," two preliminary tests conducted on the material have indicated that it may be weapons-grade plutonium.

Is this the same kind of "preliminary test" which found sarin and other chemical agents in containers of pesticides? Note the rather provocative wording: "weapons grade plutonium" and "nuke." Wow, this is big news, right? Iraq actually had nukes? Damn, we were right! Hold that thought.

The Fox News story goes on (Good Lord, does it ever):

The discovery of the underground labyrinth of labs and warehouses was unexpected, Fox News has confirmed...

Is this credible? Did American ground troops find something new and threatening that the weapons inspectors were unaware of? Fox News quotes a Capt. John Seegar:

"I've never seen anything like it, ever," he told the Tribune-Review. "How did the world miss all of this? Why couldn't they see what was happening here?"

Then they quote "Former Iraqui Scientist" Gazi George:

"The high levels of radiation suggest it's a high-level nuclear waste that was stored underground, trying to hide it for the process of repurposing it for the future... or just to make dirty bombs out of the material that's down there," George said.

"If the material has not been disclosed by Iraqis to the United Nations... [then] definitely this material was hidden there to use it as a source for extracting plutonium chemically and using it in dirty bombs."

"Saddam always tried to hide... uranium or other nuclear fuels so we could use them in the future for weapons of mass destruction."

George said it's important the coalition find Iraqi scientists who know about these weapons so they can hunt down the harmful material and destroy it.

"I think this demonstrates the failure of the U.N. weapons inspections and demonstrates that our guys are going to find the weapons of mass destruction."

Wow, an insider who knows all about this stuff. This is hot news, right? Those moronic inspectors; that useless U.N. Right?

It took me barely ten seconds of googling to determine that, in reality, yes, this was a "nuclear research facility." But it is far from a revelation.

Gazi George has been in exile from Iraq for twenty years. He lives in the Detroit area now. See this link. Twenty years is a long time. Now, I'm not claiming he doesn't know a lot about what was going on in Iraq twenty years ago; I'm sure he does. And quite likely, the statements he gave Fox News were measured and reasonable, especially given his personal experience. But note his phrasing: "If the material has not been disclosed..." The material has been disclosed. And inspected. Many times.

In fact, this facility is the Tuwaitha nuclear complex: see this page from http://globalsecurity.org, and also this page, which contains the following text taken from an UNSCOM report in 1997:

Tuwaitha Nuclear Research Center: Main site for Iraqi nuclear program. Activities included: several research reactors, plutonium separation and waste processing, uranium metallurgy, neutron initiator development and work on number of methods of uranium enrichment. Tuwaitha also is the location of the Osiraq reactor bombed by Israel in 1981. All nuclear fuel at this site was removed under IAEA monitoring. Equipment directly tied to the nuclear weapons program was destroyed in place.

And according to Haaretz,

...the Vienna-based IAEA [International Atomic Energy Commission] - which has inspected Tuwaitha at least two dozen times and maintains a thick dossier on the site - said Iraq was allowed to keep several tons of low-grade uranium and other nuclear material there under IAEA seal because the material could not be used directly for weapons.

Later in the same article:

Tuwaitha contains 1.8 tons of low-grade enriched uranium and several tons of natural and depleted uranium. The uranium was inspected by the UN nuclear agency twice a year.

IAEA inspectors visited Tuwaitha about a dozen times since December and most recently on Feb. 6. It was among the first sites that IAEA inspectors sought out after the resumption of inspections on Nov. 27 after a nearly four-year break.

It may have been inspected even more recently: see this report which indicates that at least a cursory inspection was performed on March 10th of this year. So what do we have here? This was a place where a lot of material from Iraq's nuclear program was found, but left in place, because it was easier and safer to leave in place and inspect it, than to attempt to remove tons of uranium from a presumably highly contaminated site. Material suitable for weapons-building was removed.

Does Fox News do any research whatsoever? Or is that just a dumb question? Geez, there are even some primary source documents (a declassified, edited CIA report) out there for the plucking. There are frickin' PowerPoint slides of a visual walkthough of the place. Ten seconds of Googling.

It gets worse: Fox News doesn't even search its own archived stories. This Fox News story here, dated December 9, 2002, describes an inspection at the site. I guess Fox News has a short memory:

Inspection teams scoured the three nuclear sites near the town of al-Tuwaitha, 15 miles southeast of Baghdad, picking up from where U.N. nuclear agency inspectors left off in 1998, when they left Iraq amid disputes between Baghdad and the United Nations.

Many buildings at the three sites -- including the giant al-Tuwaitha nuclear complex -- were destroyed in heavy U.S. bombing in the 1991 Gulf War. Through the 1990s, al-Tuwaitha was scrutinized by U.N. nuclear agency inspectors under a postwar U.N. monitoring regime to ensure Iraq did not develop weapons of mass destruction."

But their journalism of late 2002 is not inflammatory enough to use in 2003. And Fox News knows it is preferable to whip up hysteria than it is to offer information. And, apparently, so does Andrew Sullivan. He suggests this may be a "smoking gun." He links to the Fox News story that claims possible plutonium when none is likely to be present, and which implies that the world did not know what was going on at Tuwaitha, until the brave American soldiers uncovered this horror. And this "money quote," to use a term Sullivan likes to use, will be the one that people remember. Fox would love to leave us with the impression that the inspections were a farce. Certainly, Iraq was deceptive; certainly, Iraq was uncooperative. But the inspectors did know a thing or two.

Now, the thing is, this is a scary news story. But not because of plutonium, and not because of "nukes." There are parts of the story that we should consider to be the scary parts, if we think straight and don't resort to hysteria. There's some talk about a hidden underground complex that one source claimed the inspectors may have been unaware of. That's interesting and possibly frightening, but I'm waiting to form an opionion on it, as any reasonable person should do, until I see corroborative evidence. (Recall that the inspectors had ground-penetrating radar, and certainly had the detectors necessary to find radioactive materials, but if they were unaware or kept out of certain hidden parts of the complex, that's news). There are reports of recent construction at the Tuwaitha complex. That's interesting. There's also a report of a Finnish "centrifugal pump," which may be a revelation that some parts necessary for enrichment were not destroyed (but enrichment requires a large- scale operation). These don't rise to the level of "scary" yet. But there are two parts that do scare me.

The first part is that marines, apparently completely uninformed about Iraq's nuclear program, were entering the facility. Throwing open doors and examining drums of highly radioactive material, watching their radiation detectors go "off the scale." That's crazy. The Tuwaitha complex was known by the inspectors to be highly radioactive! The apparent ignorance may have put these soldiers at grave risk and just underscores our lack of planning, organization, and willful refusal to even use information provided by the inspections process. But perhaps we shouldn't be surprised at this, given our willingness to expose our own troops to depleted uranium on the battlefield.

The second part is that there is a possibility that the seals have been broken on this material and that some may have been removed. This was not the case at the time of the last inspection on February 6th, and may not have even been the case as of March 10th. But that's what the latest reports are saying.

The power is out at the site. Looters are cutting through the electrified fences and entering the buildings. One possible conclusion is that in the "fog of war," with the demolition of the ongoing inspections regime, we've created conditions for an undetected "smash and grab" of radioactive material, not highly enriched uranium, not plutonium, but still dangerous, and suitable for creation of a dirty bomb to be used within Iraq, against our own troops (as if the battlefield depleted uranium was not enough), or against America on our own soil.

In fact, this isn't the first time we've increased, rather than decreased, the risk. Take a look at this story from Gulf War I. We bombed the Tuwaitha complex. And we wonder now if it might be leaking. During the bombing, Iraq refused to report on the whereabouts of 20 kg. of "highly enriched" (suitable for making a real weapon) that had gone missing.

It is war that leads to the chaos in which this kind of thing can happen, and peace and the cooperative application of international law that prevent it. And those are the part of the story that scares me. Can I get an "amen?"

P.S.: I've written Andrew Sullivan a note informing him that citing such a distorted and inflammatory story from Fox News just makes him look uninformed, and advised him to distance himself from the story's implication that U.S. ground forces "discovered" the activities at the Tuwaitha complex, with a followup post on his site. No response yet.

P.P.S.: This piece has been edited: I removed references to nuclear power in Iraq. It isn't clear to me from the record whether Iraq's reactor(s) were ever used for power generation; although Iraq claimed to be working on reactors for civilian (power-generation) use, it appears they may have been used for "research" (that is, the weapons program) only. Scott Ritter's book "Endgame" talks about Iraq's efforts at building a nuclear weapon and their failure to achieve it.

[/root/iraq] permanent link

Sat, 12 Apr 2003 So, They Can Hear Me!

It turns out that Audible.com is listening after all. While they still have not responded to their e-mail, I was able to get into a live chat with a live person in response to another issue. An episode of Fresh Air I purchased turned out to be a repeat broadcast of an earlier program. This is usually indicated in the program description, but it was not this time. This is not Audible's fault; presumably they use the program description WHYY provides.

Upon request they were willing to credit the purchase back to my credit card and remove the duplicate show (actually the same show apparently digitized earlier, in a lower-bitrate format, but with the same filename.

This was quite confusing, and not well-handled by the interface available on their web site. The library pages are not really well-suited for handling things like Fresh Air programs, that may have recurring guests; for example, once you've checked out, you can't get back from the program's filename listed in your library to the program description that contains the air date and program summary; this may be necessary to distinguish two programs with identical names in the library.

I also figured out, with no help from Audible, why my PowerBook could not burn Audible files to CD-R, while my office G4 desktop machine could; iTunes on my PowerBook was set to burn an MP3 CD, not an audio CD. Audible apparently disallows this, although the error message only says "none of the items can be burned to CD." I'm still annoyed at having to drag all the Audible files into my office to burn the audio CDs at work, and at Audible's unresponsiveness to tech-support requests via e-mail. But I'm less annoyed, and getting help from a real person goes a long way towards making me feel better about using the service.

[/root/geeky/life] permanent link

Mon, 07 Apr 2003 Audible.com: Can You Hear Me Now?

I've been trying out Audible.com, a business whose model is digital delivery of audio content. It all began with an attempt to gain access to content from the NPR show Fresh Air. Fresh Air's web site explicitly states:

We do not object to the educational and non-profit use of Fresh Air program audio. We do not provide research or other special services for listeners. Individuals or not-for-profit institutions which intend to make limited, non-profit, educational use of Fresh Air programs may record the programs off the air or purchase tapes from Burrelle's. Please credit, " Fresh Air with Terry Gross, produced in Philadelphia by WHYY" in your use.

Therefore, I have never felt reluctance to record the program on casette tape and share it with family members of friends. But the show comes on at noon: this isn't convenient for me. Being unable to start the tape at the right time or flip it, I usually wind up with an incomplete recording. I could order a tape: they cost $23.70. That's quite a bit. Instead I decided to try Audible, where the individual programs cost $1.95 or less, depending on special promotions or subscription purchases. My first Fresh Air download cost only $1.56. Clearly a bargain. But even something that is free may not be worth it, if it costs me time, additional money, or aggravation. By that standard, is Audible worth it?

Although Fresh Air is legally distributable as described above, Audible's file format is not; it is a presumably DMCA-compliant format, and your use of the content is enforced by code. You may allegedly download the file in one of several different bit rates, download it to an iPod (I don't have one; the lowest-end iPod still costs $300), or burn a CD. After you've purchased it and downloaded it, the first time you play the file, you'll have to provide your Audible username and password. After that, it seems to be possible to play the program an indefinite number of times, but I can't vouch for that with any certainty. How long will I be allowed to use the content? Will I need to re-authorize this file at some point in the future, if I move it to a new hard drive, a new computer, or put it on a (digital) CD-ROM? Programs you've purchased stay in your on-line library; I was able to download the file both at home and at work. I guess this is my backup, but what limitations exist on when and how I can download it again? What if Audible goes tits-up? The file is not a standard MP3 file. Do I "own" it? Am I "renting" this file? Taken this way, making a casette off the air does indeed seem far less troublesome!

There is a "back door" -- iTunes can burn a copy of the content to a plain old audio CD-R. Just what I want: now I can listen to it in the car, or on my (plain old) CD player. But when I tried this on my G4 PowerBook with an external Yamaha FireWire CD-RW drive, it did not work: iTunes consistently reports that "none of the items in the playlist can be burned to CD." I've now tried it with a different program: it still doesn't work.

It apparently isn't the case that I'm doing something wrong: the mirrored-drive-door (or "wind tunnel") G4 dual-processor 867-MHz desktop machine at my office will download and burn the same file to CD-R, using the exact same versions of MacOS X and iTunes, and the same procedure. So I've got a workaround. This flaw is probably a result of excessive paranoia in Audible's protection code, but why does this code care that the CD-RW drive is not built-in? The drive has always performed flawlessly with other file formats, and in this case, the content provider itself has given me permission to make any "limited non-profit, educational use of Fresh Air programs." Since this is the case, why doesn't Audible provide the content in a standard MP3 file?

I've attempted to contact Audible tech support about this issue; I've received, so far, only automated replies that referred me to the same FAQs available on the web site; they don't address this problem. It isn't encouraging. Also not encouraging is Audible's web site; it arbitrarly lost the stored expiration date of my stored credit card information, giving the impression that my card had stopped working. Sometimes links don't work; sometimes buttons don't work; reloading the page makes them work again. I don't think it is worthwile to write these issues up for reporting to tech support; I'm not interested in more automated replies.

So, so far I've found workarounds to all the problems I've encountered using Audible. But the phrase "not ready for prime time" springs to mind; and Audible has been in business long enough that these issues should have been worked out by now. For a handful of the low-cost, high-value (to me) programs, it has probably been worthwhile, despite all the twiddling and workarounds. For real, full-price content or daily use? Call my skeptical; traditional tape or CD media seems to be far more flexible, and I don't have to argue with someone's code or an unresponsive tech-support staff over what rights I have to use the content.

[/root/geeky/life] permanent link

Tue, 01 Apr 2003 People of Iraq: Please Give Up

I just heard a commentator on the BBC speaking about how he believed the Iraqui perception that the war is going badly here in the U.S. may be giving them the impression that it will be possible to force the U.S. to abandon the war prior to fulfilling its objectives, and thus fighting with greater ferocity and dying in greater numbers.

They probably think that America lives in a democracy and that anti-war voices will sway the administration in the short run, and that if the war goes badly for us and appears to drag on, resulting in a lot of American troops dead, we'll lose our stomach for it and end this tragedy.

Unfortunately, nothing could be further from the truth, at least until the next American election in 2004. That is far too long and far too many Iraquis could die. Therefore, I feel compelled to make the following statement, addressed to the people of Iraq:

People of Iraq,

Please, surrender. Show no signs of resistance; welcome the coalition forces, even if they commit atrocities against your people and your families; do not attack them, even if they have destroyed your homes and brought you starvation and terror; even if they have used weapons of mass destruction against you on the field of battle; don't fight; don't throw away your lives in suicide bombings; don't attack. Our forces are strong; there are more where they came from. They will kill without mercy; more will come. They are frightened; fear will make them lash out in violence. Act calmly around our soldiers. Move slowly. In this situation of anger and fear, many of you have already died, and more could die, due to a misunderstood gesture or action. We want as many of you as possible to continue to live. DO NOT FIGHT BECAUSE YOU BELIEVE THE AMERICAN PEACE MOVEMENT MAY BRING AN END TO THE WAR. This may happen, but it will not happen soon. We were not able to stop the war from happening. We will continue to try and bring an end to this madness, but we are not confident. Why?

We are rational, sensible American people who are opposed to killing for economic reasons and opposed to our own government's terrorist atrocities, and don't believe we should be fighting this war. But we have lost all control of our government. Let me repeat that: WE HAVE LOST ALL CONTROL OF OUR OWN GOVERNMENT, AND OUR MILITARY. Our President, whom we did not elect, is not acting in accordance with our wishes, and our elected representatives are doing nothing to respond to the voices of sanity here in America. The terrorists who attacked America on September 11th, 2001, have won; they've gotten their way; they innoculated America with terror, and that terror has spread and infected and metastatized like a cancer, and burst forth, and we are now spreading that terror elsewhere. America is a rogue state and a terrorist; possibly the biggest and most dangerous that world has ever known. It did not need to happen this way, but it has happened this way.

Our own Congress, the body that the wise men who wrote our constitution invested with the exclusive power to declare war, has executed its own "preemptive strike" and handed the president the authority to do anything he pleases with our military, all in the name of "the war on terror", and all out of fear. The administration has lied to us and convinced many of us that Iraq is an immediate danger to the security of the United States: so great a threat that the regime of a sovereign nation halfway around the world, who has not attacked us, is now an issue of the utmost importance. Never mind that most of the evidence to support the war is completely false; the lies have been told, and Americans have chosen to believe them. These are not the real reasons, but the coalition will still fight just as viciously. America is promoting a whole new military strategy, the pre-emptive, "preventive" war, as if using violence could prevent violence. We are in gross breach of international law, but America has no more respect for international law. Our contempt for the world will haunt us for decades to come, and it is hard to believe, but the war-mongering rhetoric of the first President Bush about "the rule of law" and "naked aggression will not stand" and "a new world order" now seems like a distant memory of a happier and saner time in comparison to these dark and vicious days. We are the naked aggressors; we follow no laws; our new world is disordered.

Rational debate has all but evaporated now in the frenzy of television coverage for the war. American public opinion actually seems to support the war now, although I believe that much of this support is "soft" and will dry up as the war progresses and people come to the realization that a war, especially an illegal war, cannot be won without horrific bloodshed. But please make no mistake: THIS WILL NOT STOP OUR ADMINISTRATION. They are far beyond the reach of such moral appeals. They are committing war crimes, but there is no court that will ever try them. People of conscience and compassion are marching in our cities to protest this heartbreaking war, but they are called "sympathizers" with your tyrant, Saddam Hussein. Many more feel in their hearts that what America is doing is not right. Let me make that point again: WHAT AMERICA IS DOING IS NOT RIGHT, IT IS NOT MORAL, AND IT IS NOT LEGAL. But America will continue doing it for the forseeable future; for your own safety, please get out of the way. Let them do what they have come to do; they will tire of it; they have short attention spans. We can't even remember to rebuild Afghanistan after destroying it yet again; we can't remember to provide the humanitarian aid that we promised, and as our own administration has said, we have no real interest in "nation-building." We are on a mission of destruction, not reconstruction. It will not last forever.

American intellectuals are, for the most part, going unheard. We're talking, but mostly to each other. No one else will listen to us. Please listen: our president is out of control. He has been badly duped and deceived by cynical pro-war hawks who have been planning a kind of coup since the Reagan adminstration; they actually believe that America single-handedly destroyed the former Soviet Union and that after this success it is our duty to use our military might to do whatever we please, anywhere in the world. We did not elect these people. They have views that are strange to us; they bring together the worst parts of unquestioned support for the Israeli regime, support for the merchants of international arms that profit from suffering, and support for the companies that paid to bring George W. Bush, their puppet and pawn, into office. They may even believe that it is their task to help bring about the end of the world. They speak with the language of religion, but they are godless and lawless. These rogues are the power behind the throne. They answer to no one. Their delusions regarding the power of military intervention to bring about peace and justice are clearly nonsensical, but they know no bounds, as if a lie grown monstrous could someday aspire to truth. President Bush is a fool who does not understand history or politics, but yet he is in charge of nuclear weapons, depleted uranium, fuel-air explosives, cluster bombs, chemical agents, and other weapons of mass destruction. He believes that the tyrant Saddam Hussein is a kind of Hitler, but he is too stupid to understand that he himself has become an agent of all that is darkest and cynical and violent.

If this was not bad enough, he himself actually believes that God has chosen him to be his agent on earth, and that God is on the side of the aggressor. This has never been true, but he believes it is true, and that is all that counts. His language is the language of Jihad. He believes that to invade Iraq at this historical moment and express America's vengeance will be his glorious legacy. To do so he is sacrificing money for schools, for veterans, for the poor. What little is left has been promised to cut our taxes, but these cuts will mostly help the very rich. He does not know what it is that he is doing. America is not asking for this. America is exploding with impotent rage and fear and our government has bottled up that fear, and poured it back down our throats, until we have come to believe that revenge is the path of righteousness, even revenge against the wrong people. And at the same time that we lash out at the world, as we realize that we cannot dominate, terrorize, and control the entire world, our fear is turning inward. Americans are losing many of the glorious freedoms that we cherish in a free and open society. We are beginning to live in fear of what our own government is going to do next; we wake up every day in fear of our own newscasts, because we know that this is not the nation that we loved and we can no longer trust our leaders to do anything but hasten the rot and profit from the suffering.

Our only hope is that intellectuals, rational people, and peace-loving people will be able to get rid of our president and his mercenary crew of thieves at the next election, at the end of 2004. We have less than two years left. I hope that our victory will be decisive, and I hope that America will have a better leader to offer the world. I hope that God will see fit to forgive our president for what he has done and what he has allowed to happen in his name. I hope that George W. Bush will get down on his knees and beg the forgiveness of the God in whose name he has brought about this horror. I hope that we can undo the damage that this adminstration has done and continues to do to the name and reputation of the United States of America in the world. Today, I am ashamed to be a patriotic American. I hope that one day soon I will no longer be ashamed of America's actions. But until then, despite our street protests, our marches, our letters, our rage and sadness and disgust and nausea at what is being done in our name, there is not much we can achieve in the face of a country gone mad with blood lust and greed. Please save yourselves and pray with us for a better and saner time.

Lay down your weapons; help us to end this insane war as we are, by showing no support for it, and by refusing to participate in it. My heart fills with profound feelings of solidarity for all who would chose the path of peace.

[/root/iraq] permanent link

Sun, 30 Mar 2003 America Using WMD, Violating Geneva Convention, No Film at 11

According to the Sunday Herald, the U.S. is again using depleted uranium weaponry. I quote:

According to a August 2002 report by the UN subcommission, laws which are breached by the use of DU shells include: the Universal Declaration of Human Rights; the Charter of the United Nations; the Genocide Convention; the Convention Against Torture; the four Geneva Conventions of 1949; the Conventional Weapons Convention of 1980; and the Hague Conventions of 1899 and 1907, which expressly forbid employing 'poison or poisoned weapons' and 'arms, projectiles or materials calculated to cause unnecessary suffering'.

And then there's this little tidbit:

The use of DU has also led to birth defects in the children of Allied veterans and is believed to be the cause of the 'worrying number of anophthalmos cases -- babies born without eyes' in Iraq. Only one in 50 million births should be anophthalmic, yet one Baghdad hospital had eight cases in just two years. Seven of the fathers had been exposed to American DU anti-tank rounds in 1991.

Sometimes, I just don't have anything to add.

[/root/iraq] permanent link

Mon, 24 Mar 2003 Shock, Awe... Horror, Disgust... Business as Usual... and Deja Vu

It's a Monday. It hasn't been a good day in battle, say the headlines. Wall Street has started to lose its enthusiasm, realizing, to their apparent surprise, that you can't conquer a sovereign nation the size of California -- even an impoverished, desperate sovereign nation -- over a three-day weekend, so the lucrative rebuilding contracts aren't quite ready to hand out.

Maybe as we listen to the endless echoes that whisper "support our troops," we could take a moment to consider how the Bush administration is supporting them: by slashing veteran's benefits. Yes, they really are pushing this through right now, and the vote has split along party lines. Just astounding. See also this article and this one. In case you missed it, veterans themselves are starting to speak out against the Bush administration, too.

It should not be a surprise, but we're starting to see losses. A British jet was brought down, somewhat predictably, by an American Patriot missile. We've killed a journalist with "friendly fire." The Patriots didn't perform flawlessly in Desert Storm and missed a few Scuds, including one notable case where a Patriot failed to prevent the deaths of 28 Americans in an Army barracks (see the GAO's story on the software problem that supposedly led to this failure here. There are always a few bugs to work out. This should come as no shock... unless you believe in Star Wars.

We've now had some personnel losses on the ground. Al-Jazeera broadcast footage of American POWs, and some killed in battle. I've seen the stills, even though Al-Jazeera's web site was pretty well hammered (apparently, it runs Microsoft SQL Server; relatively easy to crash). They're gruesome, of course. This is not surprising. But the big controversy today: not "how did this happen?" or even "is this justified by our goals?" but "should Americans be able to see those pictures, those scenes?" And then, the outrage: goodness, "Iraq has violated the Geneva Convention!"

In case you missed it, we haven't done such a great job taking care of our prisoners of the "war on terror." (According to Rumsfeld, they aren't POWs, and so aren't entitled to Geneva Convention treatment, but the press can't take pictures of their living conditions... because that would violate the Geneva Convention. WTF And, of course, there's the Iraqui soldiers we plowed under in their trenches, or bombed as they retreated (see the essay here. We even claimed that it was legal. And that's just some very recent examples. Please keep these things in mind when you hear American officials expressing righteous indignation about Iraq's atrocities towards our POWs; you'd come away thinking that we have some measure of respect for International Law. We don't.

This is going to take longer than "predicted." Predicted by whom? Did someone forget to tell the pundits exactly what going to war would involve? That people were going to be killed? Did people simply forget to take some time to think, prior to jumping in and throwing their support behind this endeavor?

The Guardian writes here:

...for the first few days of the Iraq invasion, British and American opinion has been in danger of slipping into a fool's paradise. Buoyed by our sense of technological, political and moral superiority towards Iraq, and precipitated by our culture's preference for short, sharp, scheduled outcomes, we have risked falling prey to a delusion that modern war is easy, cost-free and entertaining, when it is none of these things.

Did someone forget that in Desert Storm, the Iraqui army was in Kuwait, far from home, with the problem of supply lines, of escape routes. Attacking the Iraqui army in Baghdad has never looked to me like a Desert Storm situation. It has looked to me like... a Vietnam. Another country the size of California, where it was difficult to distinguish combatants from noncombatants, and where our frustration and fear led us to commit atrocities. And then there were the fraggings

Meanwhile, on the peace front, the opposition to this misbegotten war is growing and seems to be gaining legitimacy. It isn't just students out to cut class who are stating their opposition. And it isn't just about this war: it's also about the new National Security Strategy: the so-called Bush doctrine. This document is what is going to determine our next war, when we've abandoned Iraq to its wreckage and left the cleaning up to various humanitarian organizations that we won't bother to fund.

During the first Gulf War, I told everyone I knew to please, have their second thoughts first. Killing is killing. After the first Gulf War, Bush Senior crowed that "the specter of Vietnam has been buried forever in the desert sands of the Arabian Peninsula." It looks like this time there will be plenty of time for people to carefully consider their views... while we dig it up.

[/root/iraq] permanent link

Fri, 21 Mar 2003 Drums of Peace, Voices of Sanity

I attended a peace rally in downtown Ann Arbor last night. It's very difficult to estimate the size of the crowd from within the midst of it, but my wife guessed that about two thousand turned out. It was a noisy, but from what I saw, completely benign and non-combative crowd. I saw no incidents or arguments and no clashes with police (although of course I could have missed something). There were news helicopters overhead and reporters and camera crews on the street (although without a TV, I didn't get the chance to see how the protest was covered). There was a wide range of ages, classes, and nationalities. I saw many friends I haven't seen for a long time. I want to say publicly that was proud to pound a drum for peace, proud to march with my wife and eight-year-old son, and proud to be one of them.

As we start to shock and awe, or at least to terrorize and horrify, it's worth noting that a few of our pussilanimous elected representatives are saying brave and truthful things: see Rep. Pete Stark here. Most, though, are still dragging out the tired party line that once the troops are on the ground, it's time to abandon protest and throw our full support behind whatever our administration chooses to do with them.

It's an argument I find strange in many ways, a knot of tightly conflated issues. To me, it ignores notions about expression of dissent that this country were allegedly founded on, the Christian notion of separation of the sinner from the sin, and a fundamental concern for the welfare of human beings. Rep. George Miller says "It's our young people who will be in jeopardy. They are the ones who are on the firing line. Now that the decision has been made to go to war, they are entitled to our full support."

But by this argument, in my view, we should reserve our greatest contempt for those who made the decision to put them in harm's way to fight an unjustifiable and illegal war. Does the president "support our troops?"

Natasha Walter writes here "this pragmatic desire for a quick victory rather than a bloody, drawn-out struggle doesn't mean that it is necessary to idealise these men who are fighting this unjust war. In fact, it is vital that we do not now start to blur reality by idealising them." Although we should always endeavor to love the sinner and hate the sin, I have little doubt that many are drawn to participate in the military for less than benign reasons. There are those in the military who look forward to a chance to inflict violence. Those who have been through the experience, however, are not so quick to recommend it. Even those "just following orders" must ultimately justify and reconcile themselves to what they do in wartime. Frequently, the long-term result is a profound disillusionment. Stephen Banko III writes about his wartime experience here and David Boe takes on Charlie Daniels here.

Let's also remember that the notion of a "coalition of the willing" is rather less than one might hope. In fact, it is a fabrication, nearly entirely spin. Even the New York Times wrote "the administration released a list of 43 nations it said were willing to be identified publicly as coalition members. Many of them had little to offer the war effort but moral support. While the list included Afghanistan, Eritrea, the Marshall Islands, Micronesia, Rwanda and Uganda, only Britain and Australia have contributed sizable forces." The Marshall Islands? Even Canada does not necessarily support our actions. In Montreal, sports fans booed the playing of the national anthem!

And, apparently, the Dow has been increasing for the eighth day running. Nothing like a way to get the economy moving.

[/root/iraq] permanent link

Thu, 20 Mar 2003 The Rhetoric Is Flying

The missiles are flying. This is, of course, anti-climactic; no one has seriously doubted that our administration was going to get its war on. Frustrated by our inability to exact concrete revenge on the person of Osama bin Laden, we've apparently completed an amazing act of psychological transference that would make Freud blush: who was it that was national enemy number one again? Saddam bin Laden? Osama Hussein?

And what is our motive again, exactly? In Bush's statements, in Rumsfeld's statements, in Fleischer's conferences, I keep hearing differing statements of just what we are doing: are we there to enact "regime change?" Are we there to "disarm Iraq?" Are we there for "the liberation of the Iraqui people?" Or are we there to "bring democracy to the Middle East?" Perhaps I'm just dense, but it seems to me that these objectives, if not just muddled, may actually be contradictory.

Our cowardly elected representatives have now felt which way the hot air is blowing and are dropping any pretense of dissatsifaction with the administration's actions. We're told that "now is not the time to protest," that "we need to come together and support our troops." In case it is not blindingly obvious, let me state it clearly:

Those opposing the war on moral, religious, political, humanitarian, or other grounds all have the greatest sympathy and concern for those in harm's way.

Now, here is the part that those who mistake metahpor for reality will probably great have difficulty understanding:

We believe that the people of Iraq are people just as we are: we do not place the value American lives above the lives of Iraquis. (I guess this is what really exercises the hawks and gets those opposed to war blamed for treason, providing aid and comfort to the enemy, and all kinds of other atrocities).

As my wife likes to point out, God is never on the side of the bully. God always sides with the meek, the inconsequential, the victim, collaterally damaged. He never takes the sides of those commiting atrocities because they were "just following orders." To say otherwise is to wilfully misunderstand the fundamental messages of Biblical history.

Insisting that "supporting U.S. troops" means turning our back on the fate of the rest of the human beings caught up in this madness is a rhetorical act of dehumanization that no principled person could support. It seems to obvious to need stating, but let me state it anyway:

The way to reduce the danger to the lives of both American troops and soldiers of other nationalities, as well as Iraquis and other persons of other nationalities within Iraq, is to lay down weapons and end hostilities as quickly as possible.

As I write this, I can hear the loudest protest march yet outside my office window. This gives me hope. I will be joining them later today. This is not the time for those who oppose this war to drop their principles, bend over, and accept the inevitable. If this war was a misguided, opportunistic, divisive, and immoral act before the hostilities got fully underway, and I believe it was, how could it not be now?

As the weapons go on-line, and the rhetoric ramps up, keep your vision clear, remember to carefully separate metaphor from the reality, and get out there and be heard, both now and at election time.

[/root/iraq] permanent link

Tue, 18 Mar 2003 Sleepless in Ann Arbor

Well, it appears that the clock is ticking... President Bush has given Saddam Hussein 48 hours to leave the country. I had to stop by the bank this morning and unfortunately caught a glimpse of CNN; the brief glimpse almost burned out my retinas. I want to rinse my eyeballs in bactine or something. Bouncing, animated "terror alerts" ratcheting up to orange! Lions, and tigers, and bears, oh my! It makes me glad that I haven't been following this on television (we don't have cable, and so can't tune in anything). Re my comments previously about hot and cold media: CNN must be the "Elmo's World" of war coverage.

It would be interesting to see just how and if the population's support for unilateral military action against Iraq correlates with how we get our news. My hypothesis is that talking heads with earnest, earnest faces, together with biased, distorted, and edited coverage and flashy, hypnotic graphics, produce a much more uncritical attitude of support towards American policy.

Grace and I sat across from each other at the dining table last night and sighed. However this plays out, whatever happens, it ain't gonna be good. There's the retaliatory terrorism scenario; I think it's likely, and to be blunt, we're fucking asking for it. Talk about the terrorists winning: what better evidence that they have already won, than by seeing the outcome of the process by which the U.S. becomes one of them? A rogue state that defies the will of the international community and attacks another? Bombing and invading a sovereign nation who has, literally, not threatened or attacked us -- based on sketchy evidence of possible threat mixed in with a heavy dose of religiously-tinged ideology -- what do you call that again? Can you say "terrorism?" I knew you could!

Now, we may not use what we classify as Weapons of Mass Destruction (d'ya notice how this has become a new vocabulary word -- as if it truly represented a clear-cut category, now universally abbreviated as WMD) -- but do you think that massive aerial bombardment is somehow not massively destructive? Does anyone remember the televised demos of the "fuel-air explosives" from Gulf War I, designed to rupture the lungs and other organs, burst the eardrums, and suffocate and burn the victims? (See Human Rights Watch). That's a conventional weapon. So is the new MOAB (Mother of All Bombs). I suppose we've decided that depleted uranium does not constitute a WMD, but do we feel good about maintaining the moral high ground in not using WMD, but instead Massively Destructive Conventional Weapons (MDCW)?

I hope President Bush is sleeping well, because I'm sure not. Besides the massive casualties, the massive expense, we've got the massive violations of international law -- and, now, disgustingly, apparently just about every other nation in the world is prepared to look the other way, given sufficient bribes, or threats when bribes won't work. We're likely to see environmental damage that makes Gulf War I's flaming oil wells look insignificant by comparison. And we'll have the burden of responsibility for masses of refugees -- which we will conveniently blame on Saddam Hussein, and conveniently fail to provide for, leaving the rest of our strained "international community" to try to take care of the human cost of our attack. We'll have "regime change."

And perhaps most ominously, we'll have set a brave new precedent and turned into reality the police-state, world-policeman fantasies of the new U. S. Security Strategy. Welcome to the future of international relations. Can anyone believe that this is going to make the world a safer place?

One more thing we can be reasonably sure of: we'll find the evidence to justify the war. The U. S. will uncover a secret cache of... something nasty... that the inspectors obviously overlooked, illustrating their clear incompentence. Something that will make the hairs on the back of your neck stand on end, unless you realize that it is fraudulent, planted evidence. The press will be allowed to file in and photograph the evidence, then filed out quickly, before they notice that we've covered up the "Made in U.S.A." labels with ones that say... "Fabrique en France." The administration's done this kind of thing before, and they'll do it again. Keep an eye out. And watch for that "plausible deniability" thing in action; if it is exposed, it'll be blamed on an overzealous, low-ranking official of some kind.

And remember -- we still have the power to enact regime change here. Let's make it decisive. Let Bush be remembered as the the president who was voted out after one term by the biggest margin in history. And pray that there's a genuine leader to vote for who can help clean up this mess, or at least fail to make it worse. After all, any fool can start a war, and we're seeing proof.

A few more links: see Robin Cook's resignation speech here.

The resignation letter of diplomat John Brady Kiesling.

The resignation letter of Foreign Service Officer John H. Brown.

The Australian intelligence official Andrew Wilkie.

And the Onion was, distressingly, eerily prophetic.

[/root/iraq] permanent link

Ramping Up the Rhetoric

There's a very wise, insightful piece on Alternet by George Lakoff, a Professor of Linguistics at the University of California at Berkeley, about the language of war and the metaphors that we use to make the notion of killing large numbers of people morally acceptable. Please go read it! The essay is here.

[/root/iraq] permanent link

Sat, 15 Mar 2003 Mister Rogers: Stranger in a Strange Land -- Thank God

Rather than rant about Gulf War II: Electric Boogaloo tonight, I want to write down some ideas that struck me when thinking about the life and work of Fred Rogers; some ideas that I haven't seen mentioned in any of the writing either eulogizing or kind-heartedly (or sometimes, not so kind-heartedly) mocking him. His television show shares, among the tragically hip, an stereotype one might associate with the "special" individuals consigned to ride the short bus to school every day: "kind-heareted," hopelessly slow, doomed never to grow up, and therefore mired in an irrelevant past that has nothing to do with the world of arms inspections, Sept. 11th, Grand Theft Auto, botox, dot-bombs, and Internet-mediated one-night-stands.

But the real gift of Fred Rogers was that he had, in fact, a profound understanding about the medium of television and how to use it to convey his dead-serious messages to children. Marshall McLuhan spoke of hot and cool media; Fred Rogers realized that to use television, it was not necessary to introduce jump cuts and brightly colored fuzzy characters: instead, it was necessary to cool down the medium, to slow down the message, not to wind up children with candy and junk breakfast cereal and toy advertisements, but to speak slowly and directly, to introduce minimal props and a homey, comforting, and most importantly, consistent, environment.

Mister Rogers could have modernized; he could have introduced flashy animation and dancing bears; King Friday the Thirteenth, Daniel Striped Tiger, and Esmerelda could have become anime characters or green-furred muppets with tentacles or little Elmos or Pikachus, endearing, but ultimately vacuous. Instead he focused tirelessly on some very simple messages: sometimes the world is a frightening place; everyone gets frightened. It's OK. You can never go down the drain. You are special. (Not merely, ironically "special.")

Do a quick comparison between Mister Rogers' living room here, a suburban living room that is positively boring, but a calm and collected place to interact, and Elmo's living room, a technological marvel full of hyperactive objects, puppeteered in real-time by an entire team of human puppeteers driving computer-generated objects, that won't give Elmo a moment's peace. Which is going to give kids the time to reflect and understand that is necessary for developing a sense of self-worth and self-efficacy?

Exercise for the reader: why does Sesame Street, designed for children older than Mister Rogers' Neighborhood is designed for, assume that the older children need such intense stimulation? Could it be that it is really the adults running the show who crave the stimulation they are putting on the screen? And which approach to educational television for young, vulnerable, easily confused, and easily over-stimulated children is actually deserving of your mockery? Discuss.

Fred Rogers wrote:

Whatever we do to show our children we love them, nothing can replace times when we give them our complete attention. I believe that the children who have learned that there will be such times for them are the ones who are at least likely to demand it and to compete for it.

If only you could sense how important you are to the lives of those you meet; how important you can be to people you may never even dream of. There is something of yourself that you leave at every meeting with another person.

We'd all like to feel self-reliant and capable of coping with whatever adversity comes our way, but that's not how most human beings are made. It's my belief that the capacity to accept help is inseparable from the capacity to give help when our turn comes to be strong.

As human beings, our job in life is to help people realize how rare and valuable each one of us really is, that each of us has something that no one else has -- or ever will have -- something inside that is unique to all time. It's our job to encourage each other to discover that uniqueness and to provide ways of developing its expression.

Fred Rogers was not a doddering, dull man, although it saddened me to see age dig its claws into his body. He was a rare man who was lucky enough to discover what he wanted to do -- what gave him joy and what use the world had for him -- and he did it. How many of us have what he had, and give the world something that it truly needs?

Addendum 23 Mar 2004: The Children's Television Workshop broke the link for Elmo's World; it attempts to forward, but to a bad URL. Elmo's World seems to be here now: http://www.sesameworkshop.org/sesamestreet/elmosworld/ but I was unable to find the "Elmo's Living Room" interface; it seems to have been replaced with a new interface to choose mini-games.

[/root/society] permanent link

Wed, 12 Mar 2003 Et Tu, Daddy?

I'm having a bad day: not enough sleep, a cranky son who didn't want to get up to go to school. So you may notice that I'm giving up my pretense of civility today. It seems to me that politeness isn't working; it's time to get cranky. Howard Zinn writes of "the emergence of new voices, unheard before, speaking "inappropriately" outside their professional boundaries... 1500 historians have signed an anti-war petition. Businessmen, clergy, have put full page ads in newspapers. All refusing to stick to their "profession" and instead professing that they are human beings first." It gives me some hope. Something else that will give me hope: major demonstrations in every city. Walkouts. A national strike. Anything but business as usual, because this isn't.

One thing is making me feel a little better: I'm not alone. George W. Bush is probably having a pretty bad day too. His own father is warning him against the danger of completely alienating the international community: Times Online story Bush Senior said "The Madrid conference would never have happened if the international coalition that fought together in Desert Storm had exceeded the UN mandate and gone on its own into Baghdad after Saddam and his forces." And in 1996 he told the BBC "to occupy Iraq would instantly shatter our coalition, turning the whole Arab world against us, and make a broken tyrant into a latter-day Arab hero." (See the Counterpunch essay.) Will Bush Jr. listen to his father and ease up on the cowboy rhetoric?

Maybe if we gave him a certificate signed by the world's leaders acknowledging that yes, he's the man with the biggest dick, and the French can't take that away from him, he would breathe a sigh of relief and settle down to the business of running the country. He wouldn't feel threatened by the existence of "french fries" and "french toast" (renamed at the House office building cafeterias by Republican lawmakers; see the CNN story here. But I'm not very hopeful: according to a Reuters story the U.S. is already lining up contractors to reconstruct "health services, ports and airports, and schools and other educational institutions." And, of course, how could these companies, which include a subsidiary of Cheney's former company Haliburton, get on with the business of earning $900 million dollars for rebuilding, unless we get on with the business of demolition? And they've got just the thing to do the demolition: this 21,000 pound bomb, billed as "the mother of all bombs," to be employed for "psychological operations." Maybe this will change some minds in Iraq... or at least puree them. Of course, $900 million could do a lot of good here, repairing "schools and educational institutions," such as... say... this one.

If you're wondering whether I can possibly be cynical enough to suggest that the U.S. would deliberately spend hundreds of billions of dollars, and put Iraqui and American lives at risk, in order to provide a few hundred millions of dollars for its favored friends, let me be clear: yes, I am just that cynical, and sick at heart. These organizations probably did not even ask for this largesse. According to Reuters, "Sources at the companies said the invitation was unusual in that USAID did not ask them to set a price for defined services but rather asked them to say what they could do for $900 million." Of course, this is a drop in the bucket, or rather the barrel, compared to the economic factor staring us in the face: the assurance of continued access to cheap oil. Is it so obvious we can't believe it could be that simple?

Is there any limit to our duplicity? The Observer reports a leaked American plan to conduct "aggressive surveillance operation, which involves interception of the home and office telephones and the emails of UN delegates in New York." See the article here. Haliburton already has the contract to put out the burning oil fields we set on fire. And there's more forged and planted evidence of Iraq's supposed attempts to acquire nuclear weapons.

What is the goal, again, exactly? In other words, just what can Saddam do to avoid bombing, invasion, and massive casualties? Fred Kaplan in Slate points out that there are no clear steps Saddam can take; our American policy doesn't even give him a standard to comply with. Lots of people are spouting off about how Iraq could have avoided all this and gotten out of the sanctions doghouse -- but, in fact, this [was never the plan]([http://www.commondreams.org/views03/0309-09.htm]. The U.S. had no intentions of lifting sanctions; Madeline Albright in 1997 said "We do not agree with the nations who argue that if Iraq complies with its obligations concerning weapons of mass destruction, sanctions should be lifted." So we've never, in fact, given Saddam Hussein any real incentive to work hard to comply with U. N. resolutions. And now we're giving him a serious incentive -- the massive buildup to invasion and bombing -- to comply -- and we've raised the bar. Ari Fleischer said "To avoid war... Saddam must not only disarm totally but step down from power." What kind of U.N. resolution mandated that?

What kind of a precedent does it set for one sovereign nation to demand that the leader of another, operating within its own borders, and arguably complying (albeit barely) with U.N. resolutions, must "step down?" Even Tony Blair believes that's not something we can reasonably ask. See the Boston Globe's Editorial:

Bush's inconsistency on this point -- disarmament or regime change? -- undermined the early case for war. That it reappears now, obliterating Powell's argument of a month ago, is fatal to the moral integrity of the prowar position.

It's not surprise that our own allies are ready to veto us.

Of course, there are some credible threats out there: Iran is apparently close to nuclear capability. Then there's the minor matter of North Korea, with whom we're apparently not speaking. Perhaps we could just demand disarmament and regime change all over the goddamned place. Of course, we could consider getting our own house in order.

And happy fucking Easter.

[/root/iraq] permanent link

Sun, 02 Mar 2003 What Would Jesus Eat?

A report on what the diet of Jesus would look like... in the unlikely event that Christians could ever actually agree on anything about the life of Christ.

[/root/society] permanent link

Wed, 26 Feb 2003 Channeling Tolkien

A few weekends ago at our monthly potluck my friend John and I did an impromptu performance of a little-known work by J.R.R. Tolkien: a read-through of his short drama in verse "The Homecoming of Beorhtnoth Beorhthelm's Son." In his essays accompanying the text, in a footnote, Tolkien mentions that the work has never been performed. Well, now it has, in a rather unrehearsed read-through, for a small audience. (I have a feeling it is not likely to be the first performance; the work was supposedly published in 1953; surely, a group of drunken Oxford students has performed it in a darkened dormitory lounge by now?)*

John and I sat in our darkened living room, with our guests. On the coffee table was a single candle. We read through the text by the light of a flashlight, covering and uncovering it to simulate the cloaking of a lantern, and making the occasional silly rocking motion and sound effects to indicate that the characters were riding in a horse-drawn cart. The verses end with the chanting a portion of a Latin mass, spoken for dead Beorhtnoth.

Our guests told us that the simple read-through, two voices in the dark discussing stumbling over the dead, headless body of their slain leader, was highly effective. My son, Isaac, eight years old, was quite freaked out; it is a highly effective ghost-story. The verses are quite evocative:

    TOR.                          To the left yonder.
            There's a shade creeping, a shadow darker
            than the western sky, there walking crouched!
            Two now together! Troll-shapes, I guess,
            or hell-walkers. The've a halting gait,
            groping groundwards with grisly arms.

Nameless hell beasts, or wounded men shuffling along in the dark in pain, looting the corpses? We don't know, and now can't know; this world is a thousand years gone.

The play itself has quite a sense of strangeness about it: it is part ghost story, part gruesome and comic meditation on the nature of death (like Hamlet's chat with the undertaker and the discovery of Yorick's skull), and possibly even a Christian resurrection story. (Tolkien was notoriously opposed to "allegory," but it seems to me that Beorhtnoth's homecoming is at least symbolic, and there is at the least an interesting juxtaposition of the pre-Christian and Christian cultures. In The Lord of the Rings, when Boromir is slain, his companions take valuable minutes away from their pursuit of the Orcs carrying Merry and Pippin to give him a boat-burial, and more importantly, to compose a traditional lay remembering his valiant life (although he struggled at the last against the unbearable temptation to seize the one ring and use it himself). Why do they do this? It is a pre-Christian world, and Middle Earth's notions of life after death are vague; in a profound sense, the lay of Boromir is Boromir's immortality. Torhthelm seems to be in two worlds: Beorhtnoth is being taken to a Christian burial, but for good measure, he chants a eulogy along the way. His eulogy, though, has a surprisingly Christian echo to it:

    His head was higher than the helm of kinds
    with heathen crowns, his heart keener
    and his soul clearer than swords of heroes
    polished and proven: than plated gold
    his worth was greater. From the world has
    passed a prince peerless in peace and war,
    just in judgment, generous-handed
    as the golden lords of long ago.
    He has gone to God glory seeking,
    Beorhtnoth beloved.

But, above all, it is a grim, dark, and doubtful world that Torhthelm and Tídwald inhabit; perhaps there was beauty in it, but beauty is not there now, in the aftermath of a grisly battle:

    There are candles in the dark and cold voices.
    I hear mass chanted for master's soul
    in Ely isle. Thus ages pass,
    and men after men. Mourning voices
    of women weeping. So the world passes;
    day follows day, and the dust gathers,
    his tomb crumbles, as time gnaws it,
    and his kith and kindred out of ken dwindle.
    So men flicker and in the mirk go out.
    The world withers and the wind rises;
    the candles are quenched. Cold falls the night.

I'd like the chance to perform this again. It's a short piece, and should not be difficult to memorize; staging requirements would be absolutely minimal. The reading took only fifteen or twenty minutes. It would make an excellent brief radio drama: a project to be explored when I am able to put my home studio back together. John has a talent for breathing life into a text and coming up with characterizations on the fly. Thanks to everyone who helped and listened and expressed their enjoyment.

Follow-up note: I found a reference to a performance: at the Maldon Millennium Celebration here. Oh, well; we weren't the first. I wonder what their performances were like? It isn't likely I'll be able to attend the 2,000th anniversary of the Battle of Maldon to find out. Apparently there is also a recording available of Tolkien himself reading the play, and it has been re-issued in a transcription from vinyl record to CD, as part of the Spitter Spatter Sounds collection available here.

[/root/geeky/tolkien] permanent link

Tue, 25 Feb 2003 Got Shoe?

Nike basketball shoes are washing up along the northwest coast of North America, the result of a sunken cargo container. Allegedly, they are in wearable condition. The drawback? The shoes weren't tied together in pairs; there is nothing to guarantee that one shoe of a pair won't wind up on a beach in California and the other in Alaska. The solution would seem obvious: an online shoe-trading registry to match up the singles!

Addendum 23 Mar 2004: dead link, sorry.

[/root/society] permanent link

Mon, 24 Feb 2003 A Festival of Gulf War-Related Links

Here's a small plethora of interesting links on the topic of Iraq.

Right after Colin Powell's speech before the U.N. Security Council, I found two links: this one, from Slate, called "Smoking Gun - Colin Powell delivers the goods on Saddam," and this one, from The Nation, entitled "Powell Fails to Make the Case." I listened to Powell's speech live, and felt that he failed to announce anything truly damning; most of what he said was highly speculative (the nature of the truck on the grounds of a former chemical facility; drawings based on an eyewitness account of a mobile bioweapon lab; arguments regarding the exact nature and purpose of those aluminum tubes). His rhetoric was strong but his "smoking gun" -- clear evidence that Iraq has undisclosed weapons of mass destruction ready to throw at us or a regional target -- was, as Powell himself acknowledged before his talk, not there.

For some alternate takes on Powell's evidence, check out The Democratic Underground which discusses how the alleged mobile bioweapons labs are not backed up by much in the way of compelling evidence, along with other cases of Bush himself presenting lies regarding Iraq. In a page from the Traprock Peace Center Glen Rangwala dissects many of Powell's claims and states convincingly that "In general, Powell makes some plausible claims that Iraq has not stood by the letter of the law in all respects. However, he does not show that Iraq has developed weapons on any scale, or that it has the potential to threaten Iraq's own people or its neighbors, much less the U.S. Nor does he show that Iraq may be able to develop its non-conventional capacity if weapons inspectors continue their work in Iraq." And if you can't sleep out of concern that Iraq may have nukes, this article from Alternet may help to calm you.

It should be obvious that Iraq can only prove that it has destroyed particular weapons or provided access to particular sites; Iraq cannot prove that it has no banned weapons. Can you prove there is no anthrax stockpiled in Texas? Georl Parrish writes in this essay that "The onus is not on Iraq to prove a negative... it is instead Washington's responsibility to prove a positive: not only does a threat exist, but it is so grave and so immediate that it endangers the security of the United States, and that no other options exist but to invade." In his discussion on The Connection (see my previous weblog entries) Noam Chomsky argued that the case against war should, of course, be automatic; the case for war must be strong enough to overwhelm the normal moral objections that should automatically arise when contemplating the use of force. We seem to have that backwards, at least in our president's rhetoric: he wants what can't be given, and when he doesn't get it, he'll start bombing.

Indeed, Iraq has improved its level of cooperation and is now allowing flyovers and other improved intelligence-gathering, but you wouldn't necessarily know about the extent of Iraq's cooperation, if you got your news from cnn.com. This article shows how CNN removed 750 words from the transcript of Hans Blix's speech before the U.N. Fortunately, I also listened to that talk live, and so heard the entire thing; this illustrates the importance of using primary sources wherever possible!

For some background material on the Iraqui regime and how to counter some of the persistent misconceptions out there, see "Counterspin: Pro-war mythology" here and for a pair of articles about the war from Alternet, see what Nobel laureate Jimmy Carter has to say about the necessity of a war in Iraq, and what Wendell Berry has to say about the New New World Order (the White House's National Security Strategy, published, as they say, "in the wake of September 11th.")

I'm proud to say that I have exposed myself to exactly ZERO minutes of network or cable television news coverage about this issue, and I think everyone could benefit from doing the same. Do a little independent reading and thinking and you will quickly conclude that there is far from a consensus for a repeat of Gulf War I or the need for such an action. And don't forget to remember to take a look at what your government is busy doing while your attention is directed from national events to this international "crisis."

Meanwhile, if you've found yourself receiving an e-mail petition to forward to the United Nations, please don't forward it; it's a hoax. A well-meaning hoax no doubt, but the U.N. has no means of validating, receiving, and processing an enormous number of "e-petitions," and nothing in particular to do with them once they are received. See snopes.com.

For a reminder of why all this matters, read Sen. Robert Byrd's speech "War: The Most Horrible Human Experience."

[/root/iraq] permanent link

Fri, 21 Feb 2003 iTunes MP3 Encoder Doesn't Handle Poor CDs Well?

I'm a fan of the Lord of the Rings film soundtracks; I've purchased both the Fellowship and Towers soundtrack. A couple of days ago I was attempting to use TTT on a new dual-processor 867 Mhz G4 Mac running MacOS X 10.2.4. The first thing I noticed was that trying to open the MacOS volume containing the CD "extras" would kill my finder, kill iTunes, and eventually lock up the machine to the point where a hard reboot was necessary.

I've seen this before; the MacOS CD-ROM drivers don't respond very well to flakey discs, and a reboot is often the only answer. For comparison, I tried mounting the same disc in an older 400 MHz G4, and it mounted fine. Ditto with my personal older 400 MHz TiBook. But, on all machines, listening to the CD resulted in a lot of skips and dropouts. There were only a few minor scratches visible, but the audio was terrible. This was not the case with the Fellowship CD, which was actually much more scratched. Unfortunately I have long since lost the receipt for TTT disc and cannot return it.

To try to salvage the situation, I attempted to encode the disc on my TiBook, whose internal drive seemed to have the best luck at reading the disc. I was disappointed to find that the MP3 encoding failed badly, although it worked a little better than it had on the new G4. Hoping to get a clean listenable copy of "Gollum's Song," given that I had paid for the disc, I tried again using the AIFF encoder.

To my surprise the AIFF encoder chugged away and seemed to produce a much better rip, with no pops, skips, or dropouts. It tortured the drive: I could hear the drive scrambling back and forth, perhaps re-reading bad data in an attempt to correct errors. It seems to be the case that the AIFF encoder does its best to re-read the disc when it encounters errors, but the MP3 encoder does not. Could this be the case? Or does the AIFF encoder just do better interpolation to hide errors?

In any case, I found that the path to get a listenable MP3 encoding was to encode the whole disc to AIFF at native quality, then write an audio CD from the AIFF rip, then re-MP3-encode the resulting audio CD. This long and stupid procedure seems to have completely salvaged the situation and I have a listenable copy of the Two Towers soundtrack now. The audio quality emerging from the Mac headphone jack is not sufficient for me to hear whether this has truly repaired the situation; there seems to be some distortion on parts of Gollum's song, but it is bearable. I should try listening to the CD burned from AIFFs on a conventional CD player to determine what kind of job it did.

No profound lesson here, except I'm left wondering if the MP3 encoder could be improved with the addition of some better error-handling code, and also left musing on how if I was not able to so easily attempt various methods of encoding and burning this music I'd be left holding an unusable copy of a CD I paid good money for. One could speculate about this quality control, although I have not heard reports of a high defect rate. It brings home to me again just how fragile CDs are and the need for a more robust medium.

Followup 23 Mar 2004: It appears that more recent versions of iTunes have an option to use error correction when importing audio CDs. The preferences dialog notes that this may reduce the speed of importing. That's far preferable (to me, at least) than ignoring bad audio data.

[/root/geeky/life] permanent link

Sat, 01 Feb 2003 Hi, My Name is FAT

OK. Let's face it. I'm fat.

Not "mature." I'm fat.

Not "muscular." Not "beefy." I'm fat.

How many of ideas do you believe in?

The above are all, basically, lies. We as Americans are, truly, the fattest people in the world. We're seeing something quite new and disturbing: not just fat adults, but grossly obese children; rap stars dying of obesity at a young age, carrying hundreds of extra pounds; two- and three-hundred pound sixteen-year-old children who can't walk without canes. We can pretend that the problem is scrawny supermodels and their negative effect on our self-esteem, but the truth has more to do with the 90% of American children who eat at McDonald's at least once a week, the servings of fries that have gone from 200 calories to over 600 calories, and people who have time to watch four hours of television a day but apparently no time for exercise. I know the reason I don't exercise; these days I don't even walk to work. It has nothing to do with negative role models or low self-esteem; I'm lazy. I wasn't quite this lazy a few years ago, but paradoxically, when I was working out four days a week at a gym and biking, I weighed more. The body is a confusing thing, and getting it to do what we want is difficult.

Anyway, what brought on this rant? I've just been reading the book Fat Land: How Americans Became the Fattest People in the World, by Greg Critser. Think of it as a companion volume to Fast Food Nation by Eric Schlosser, which I read last week. Whereas FFN focused specifically on the history and consequences of the fast food industry, Fat Land covers, literally, what its subtitle indicates, in a series of chapters on where the calories came from, how we came to eat them, why they stayed with us. The book is short and sweet; obviously a highly biased and antagonistic treatment of the subject, and Critser is not quite the investigative reporter that Schlosser is. But we don't necessarily need every detail of his argument to be correct; we need to get off our asses and stop believing that it is OK to be obese.

Critser is not quite a scientist, and this shows; some of what he says about saturated fats and carbohydrates will be disputed and is still controversial. Sometimes he is glib; it's a short book, and he breezes by his discussion of (for example) the Atkins diet. He can be taken to task for some of his elisions and omissions. A reviewer on Amazon, Joel M. Kauffman, notes, in a comment about glycemic index, "One of the things that creates high (bad) insulin levels is high blood glucose levels. Since all the common complex carbohydrates (starches) in foods are polymers of glucose, and some of them are metabolized very rapidly, and we eat more of them by weight, the contribution of wheat, corn, potato and other forms of high-GI starches to poor health is greater than that of the simple sugars."

It's true; Critser's brief analysis focuses primarily on high-fructose corn syrup as a factor in causing the development of Type II diabetes. Perhaps in looking for a smoking gun here he should have been focusing a bit more on the french fries as well. But to Critser's credit, the pronouncements made by health "authorities" can be endlessly confusing; researchers with advanced degrees do not necessarily agree, and apparently we are still discovering fundamental issues in the way humans metabolize fats and sugars. The general public hears that that best way to lose weight is by following the Atkins diet, eating minimal carbohydrate, and all the protein and fat we want, without reducing our overall calorie intake. Or they hear that we should follow the Ornish model, a very low-fat vegetarian diet with lots of carbs. My doctor told me my LDL was a bit high. Is it all about the carbs? The protein? Or all about the fats? How many servings of whole grains are we supposed to eat? Is pasta bad for you? Over the course of my lifetime I've heard that the best fat is polyunsaturated, unsaturated, monosaturated, or just plain saturated. Is saturated fat the antichrist, or is hydrogenated fat the great Satan? Weren't trans-fatty acids the problem? What about non-hydrogenated saturated fats like coconut oil? Should you ban butter from your diet? Can you eat avocado? Should you cook with olive oil, safflower oil, peanut oil, rapeseed oil, grapeseed oil, or bacon grease?

I grew up eating skim milk and skinless chicken breasts; my wife was raised on greens, heavy cream and bacon fat. She was an athlete in college; I was a sedentary computer geek, for the most part. I believe our diet is generally pretty good these days, and I've been losing weight, but she's continued to gain weight while eating considerably less than I do. Should my diet be very different from my wife's diet?

It's all very confusing: but to debate endlessly the metabolic pathway taken by high-fructose corn syrup, the glycemic index of french fries, our fat-gram count, our resting heart rate, our VO2 max, or the merits of eliminating carbohydrates is, quite possibly, to miss the forest for the trees: we're eating too damned much, given our level of physical activity. One side, or preferably, both sides, of the equation desperately need to change. And yes, it is hard. Especially hard for people who have grown up thinking life should be quick, clean, and convenient, but above all, that we should be able to have it all, our way, and quickly. Hard enough that we start to believe our bodies are not on our side -- and they may not be, given our various genetic predispositions to store calories rather than burn them, and after the various ways we've damaged ourselves with gluttony and sloth -- or that there is a magic bullet that represents "the secret" of why we got this way and how to fix it. There isn't. There are a number of key insights, but we ate all those fries, and no one else can sweat for us to burn them off.

Particularly disturbing is the chapter on what obesity does to the body; the relationship between class and obesity is the fascinating subtext here, especially when it comes to the vast differential in the deployment of medical intervention. It used to be that the rich were fat; now the poor whites, but especially Blacks and Latinos, are the fat ones, and they aren't being helped. It doesn't take a Faith Popcorn to predict that as the costs of health care and the increasing lack of access to involved and concerned physicians hits people in the upper classes, rich white males like me also won't be hearing much in the way of useful health information over the din of food advertising and the self-serving infomercial telling us how we can eat all we want as long as we also purchase product X.

Of great interest to me was the history of how American guidelines and standards for physical fitness have been eased, and eased, and eased, and eased again. I grew up with the dreaded President's Council of Physical Fitness tests, and flunked the pull-up in grade school; I was the kid, not fat but weak, who couldn't climb the rope. (These days I could probably do the pull-up, but the rope climb will likely forever elude me). Yes, PhysEd class did turn me off exercise for many years, and I was humiliated at dodge ball; but in no sense can this be a justification for throwing the fat baby out with the bathwater; children must be encouraged to earn their self-esteem by gaining strength and endurance. Myself, I learned later in life the fitness activities I enjoy: weightlifting, biking, and hiking, instead of competitive team sports. These are things I can do my whole life, but (thank god) the dodge ball days are long-gone.

[/root/society] permanent link

Creative Commons License

Viewable With Any Browser