Logical Informalism
PresidentBarackObama@pdrap.org
Monday, 28 February, 2005. 11:07:16 PM

I just checked the position of the Global Flyer, and it just passed over Lansing Michigan.

Monday, 28 February, 2005. 02:55:20 PM

The Virgin Atlantic Global Flyer will make a non-stop solo around-the-world flight attempt today. The aircraft is all composite construction, with a single turbofan engine. Steve Fossett is the pilot. Takeoff is just over two hours away.

Thursday, 24 February, 2005. 12:42:20 PM

Onward Christian Soldiers, Marching as to War. If this event had better attendance, they'd have to rent the stadium in Nuremburg.

Saturday, 19 February, 2005. 10:01:35 PM

Finally, last night, the Gannon story finally broke out in a big way in the mainstream news. Better late than never.

Friday, 18 February, 2005. 12:43:07 PM

Friday update on the Gannon story. He had access to information about the start of the Iraq war before any other media outlet. He also had information about the Dan Rather scandal before anyone else. This suggests that the entire scandal was directed from the White House. Can't trust the news anymore, since it all seems to be written by Karl Rove.

Thursday, 17 February, 2005. 10:04:20 PM

Bash does some very tricky things. The lexical analyzer contains an internal state that it sets when it reads a list terminator token. Only after it has read that token will it recognize the 'do' keyword and return a DO token. Because of that, if the list terminator is missing from a compound_command, it will eventually result in a parse error when the DONE token is returned.

Thursday, 17 February, 2005. 09:18:37 PM



Thursday, 17 February, 2005. 12:00:14 PM

I was dreaming about the bash grammar last night.

Thursday, 17 February, 2005. 01:23:35 AM

While I'm in St. Louis, I have been spending my spare time working on a full-blown parser for both bash and Korn shell scripts. The goal is to use this parser to support future projects that I have in mind. My model for the parser is the bash grammar that is included in the source code, but I am completely re-writing it using the lemon parser generator. I'm also using flex as a lexical analyzer. GNU bash uses a custom lexical analyzer that is built into the bison parser source.

I found something very puzzling in the grammar for bash. It involves the rules surrounding a shell command such as:

while true; do
	echo foo;
done

The parts of that script fragment that are lists are defined in the grammar as a compound_list. The way the grammar is written, a compound_list does not require a terminating semicolon or newline. A list does require those things. What is funny is that despite the fact that the grammar specifies a compound_list, it does require the list terminator symbols. Bash 2.05b and Bash 3 both emit an error on this script without the terminators:

while true do
	echo foo;
done

According to the grammar, and I have tested it, it's completely legal to omit the semicolon after the compound_list 'true'. So why does bash (and Korn shell) emit an error on this? When I modify my own grammar to use a list rather than a compound_list, my own parser accepts and rejects the test programs in the same way that bash does.

Found this in a search. This new grammar was introduced in bash version 2, which I already knew because I had also looked at some bash version 1 grammars.

"e. Some problems with the grammar have been fixed. (It used `list' in a few
   productions where `compound_list' was needed.  A `list' must be terminated
   with a newline or semicolon; a `compound_list' need not be.)"

That would seem to indicate that I'm right, and there's something strange going on with the bash parser that I haven't figured out.

It's getting stranger: A Google search turned up this quote from Chet Ramey in the gnu.bash.bug newsgroup, way back in 2000:

"I don't agree. The grammar in POSIX.2 says a `brace group' consists of a `{' a compound_list, and a `}'. The way I read that grammar, a compound_list must end with a `&', a `;', or a newline."

That quote contradicts the note from the release notes from one of the bash version 2 alphas, and also with my direct testing of the behavior of the grammar. It's the exact opposite: a list requires the ampersand, semicolon, or newline; and a compound_list does not require any of those things. I'd hesitate to say that he's wrong though, since he wrote the thing!

Looks like it's time to break out the debugger and see why bash is behaving this way.

Wednesday, 16 February, 2005. 02:38:25 PM

Joe Conason has a great article in the New York Observer about the lack of media attention regarding Jeff Gannon and Talon News. It does a good job of putting to rest the mistaken idea that the media is in any way a liberal lap dog.
Imagine the media explosion if a male escort had been discovered operating as a correspondent in the Clinton White House. Imagine that he was paid by an outfit owned by Arkansas Democrats and had been trained in journalism by James Carville. Imagine that this gentleman had been cultivated and called upon by Mike McCurry or Joe Lockhartor by President Clinton himself. Imagine that this "journalist" had smeared a Republican Presidential candidate and had previously claimed access to classified documents in a national-security scandal.

Then imagine the constant screaming on radio, on television, on Capitol Hill, in the Washington press corps and listen to the placid mumbling of the "liberal" media now.


Monday, 14 February, 2005. 11:30:21 PM

The scandals of the second term of the most corrupt administration have started to pop up. It all started when a reported was called on by GW Bush in a news conference, and the reporter asked this question:
Senate Democratic leaders have painted a very bleak picture of the U.S. economy. Harry Reid was talking about soup lines, and Hillary Clinton was talking about the economy being on the verge of collapse. Yet, in the same breath, they say that Social Security is rock-solid and there's no crisis there. How are you going to work -- you said you're going to reach out to these people -- how are you going to work with people who seem to have divorced themselves from reality?
That bizarre question raised a lot of eyebrows and a lot of questions. That reporter was usually called upon in every press conference, and could be counted on to throw a friendly question out there when GW Bush needed some relief from tough questions. That reporter's name was Jeff Gannon, which has been discovered to be a fake name. His real name is James Guckert, and it seems that he's a gay prostitute.

America Blog has all the gory details on exactly what they've dug up about this guy. Warning: that link contains screenshots of gay sex websites. When they say that he's a gay prostitute, they sure are not kidding! YOU HAVE BEEN WARNED.

Right now on CNN's website, there is no mention of this at all on the front page. But, they somehow found room to put up a link to Michael Jackson's trial, and the possibility that Liz Taylor and Kobe Bryant might be called to testify. CNN isn't any better than People magazine. Fox News' moon-faced commentators are sticking to their insipid stories as well, putting "Jacko" right at the top of the page.

Wednesday, 09 February, 2005. 01:05:45 PM

U.S. Secretary of State Condoleezza Rice said on Wednesday that Iran must live up to its international obligations to halt its nuclear program or "the next steps are in the offing."

"And I think everybody understands what the 'next steps' mean,"

-------
I think it means that we're going to be fighting a war against Iran next.

Friday, 04 February, 2005. 11:46:01 AM

Last night the IBM'ers here in St. Louis got together and went to Zhivago's, a very nice Russian restaurant about 20 miles from our worksite. I had the Moscow Duck, borsch, and too much vodka. The borsch was really good; it was the first time that I had it. It looked pretty easy to make too, just some beef broth with beets, potatoes, onions, and sour cream.

Thursday, 03 February, 2005. 12:20:31 AM

The national debt is a BIRTH TAX of 25 grand on every baby born. Thank GW for being so fiscally irresponsible, squandering the smart money management of the Democrats in the 90's.

Wednesday, 02 February, 2005. 12:37:38 PM

When using cut to snag fields from input that is delimited by spaces, it is useful to use the command tr -s '[:space:]' '[#*]' to squash sequential spaces into a single hash character. The cut command will otherwise see a field between two consecutive space characters, as it does when the delimiter is any other character.

Tuesday, 01 February, 2005. 04:27:00 PM

Something strange is happening. I'm transferring some MP3 files from my server at home to my laptop, so I can listen to something at work. The upload speed that I am getting is approaching 40 KB/s. That's kiloBYTES a second, which translates to 320 kilobits per second. Last time I checked, the upload speed on my DSL line was restricted to 128 megabits per second. It's 2.5 times faster than it should be. I don't have compression on my ssh connection, and it wouldn't help on an MP3 file anyway, so it seems that the speed I'm seeing is real.

Tuesday, 01 February, 2005. 02:21:49 PM

I bought some 1802 microprocessors, and someday when I get some time I will be designing and building a computer with a real front panel and blinking lights. The 1802 makes a good chip for that type of computer because it's got a load mode, eliminating the need to write a machine monitor.

Google
 
Web www.pdrap.org