Wednesday, June 04, 2003

Sosa update
So, apparently, the 76 of Sosa's bats that were confiscated after the game were tested and found to be clean. I find this a tremendous relief, not just because it makes sense (after all, if Sosa had more corked bats, you'd think that one of them would be noticed earlier) but because it raises my hopes that it won't end up tainting his whole legacy. It's possible that Sosa's explanation was legitimate; or perhaps, as I've seen suggested, he was just depressed by his slump and resorted to desperate measures, but either way, I'm hopeful that this was just a short-term thing.
Depressing link of the day
So, apparently, the average Ford of today has a worse fuel economy than the Model T of nearly a hundred years ago. Of course, Ford defends itself by pointing out that they can make more fuel-efficient cars (and some are indeed quite impressive), but the fact that the poor fuel efficiency is driven by marketing, rather than technology, is in itself more than a little bit depressing.
Scandal of the day
So, apparently, Sammy Sosa was caught using a corked bat.

Despite the fact that I've never been the biggest of Sosa fans (still bitter from his 1998 MVP win, I suppose), I really do hope he turns out to be innocent. His explanation is certainly plausible enough (though maybe that's just because I want to believe it), but who really knows? I guess they're going to look at the rest of his bats which they impounded, and hopefully they won't find anything more incriminating.

The question of just how beneficial the cork is is, of course, another matter. The physicists claim that cork provides a negligible benefit to the actual power you can impart to the ball, but it's of course quite difficult to measure the impact of a lighter bat in a game setting. And the sample size for corked bats being used in MLB is quite small (well, at least that we know of -- I have no doubt that it's noticeably higher than has been measured so far). Norm Cash produced arguably the greatest fluke season in baseball history (I'll bet even the most baseball illiterate fan can find it on that page) with what he later admitted was a corked bat; on the other hand, it didn't seem to help Wilton Guerrero much. Albert Belle certainly hit fine after his big corking scandal, though if Omar Vizquel is to be believed that's because all of his bats were corked. The other cases I don't know enough about to say anything useful, but it sure seems like the evidence is inconclusive.

In light of this, I guess I'm just disappointed that a player like Sosa -- who I think everyone can agree doesn't need cork to hit the occasional ball out of the park -- risked tarnishing his reputation (which, sadly, has pretty much irreversibly happened now) by trying this, even if his intentions were the best, as he claims.
Simpsons Quiz of the Day
Simpsons characters sure are a thankful bunch. Identify the source of each of these quotes (speaker and context):
1. "Thank you very much, State Supreme Court."
2. "Thank you very much, Warren Christopher."
3. "You're screwed, thank you, bye."
4. "Ja, thank you, ja, that's nice."
5. "Oh, thank you, kind innkeeper."
6. "Thank you, NASA."
7. "Thank you, door!"
8. "Thanks a lot, Steve!"
9. "Thank you! You have fulfilled our dreams and the dreams of our ancestors!"
10. "Thanks a lot! Now *I* look crazy!"

You can email answers to me, or just post them in the comments. Enjoy! Answers later.
Rant of the day
After working with code on physics projects for three summers now, I've come to a very simple conclusion: 95% of all physicists can't write good code to save their life. This is undoubtedly because they're just unfamiliar with the rules of good programming, so they tend to be extremely overly cautious in some areas and just plain sloppy in others. Physicist coding seems to follow a few simple rules, enumerated below. (All rants apply to C code. I could rant about the Fortran code too, but I think its mere existence is really all I need to say on that front.)

1) The purpose of -Wall is to produce all those pretty warnings. That gives you an impressive feeling of just how long your program is. (Seriously. I don't think I've ever compiled another person's code with -Wall which didn't produce at least two screenfuls of warnings. This is true even when their own makefile included -Wall.)

2) All functions must be declared "int", but if you don't really need to return anything, then don't bother with those pesky return() statements! Conversely, when calling a function that returns a value, you must always carefully save that value, even if you have absolutely no plans to ever do anything with it.

3) Code should never actually be deleted. If you need to take out a particular piece of code, always comment it out. After all, even if the old code is flagrantly wrong or outdated, you'll never know when you might need it again!

4) Loop variables should be given descriptive names such as "loopvar", thus freeing up the precious single-letter variable names for more important variables. The capital single-letter variables are used for strings, of course.

5) Comments of the form
i += 2; /* adds 2 to i */
are perfectly reasonable. Under no circumstance should a comment attempt to explain why one might want to add 2 to i, however.

6) Function prototypes should be strewn throughout the source file, preferably right in front of the function that needs to use the prototyped functions. Under no circumstances should they be placed in a header. Similarly, one never needs to include the header files for library functions -- the compiler knows what they are, right?

7) A char array that you're planning to use as a string should be as big as the number of characters in the string. (My favorite!)

8) The word "const" does not exist. (This might seem like a petty gripe. It's just that I always cringe when I see declarations like
char *filename = "some hardcoded filename";
and not just because of what's on the right side of that assignment.)

9) It's perfectly okay to name an ordinary variable LIKE_THIS, as long as you don't really plan on changing it. Similarly, a #define'd value you might want to name like_this, in case you want to change the value later.

10) Indentation, placement of braces, and so forth should be done as inconsistently as possible. To ensure the best possible performance in this area, maximize the number of people, each with their own programming style, working on a single source file.

11) Source code management does not exist. As per (10) above, have as many people as possible working on a single file at once. However, should you need to branch the code, make as many copies of the original source code as you need for each situation you might have to deal with and modify each one independently.

I'm sure I'll think of more items to add to this list as time goes on.
Much ado about QuesTec
For those of you non-baseball-followers reading this, you probably haven't heard much about QuesTec. (Those of you who have can skip this paragraph.) QuesTec is a system introduced by baseball last year, which uses computers to judge balls and strikes. Umpires who don't agree with the computer's calls at least 90% of the time can be disciplined by MLB. Needless to say, the umpires are hopping mad about this; perhaps slightly more surprisingly, the pitchers are equally irate. Curt Schilling, angry after a poor start, destroyed a QuesTec camera (in a karmic retribution thingy, he later broke his hand), and several members of the Braves also expressed unhappiness with the system after blowing a lead.

Perhaps much less surprisingly, the pitchers who were complaining were pitchers who did badly; I certainly haven't heard a pitcher who pitched a good game saying the first thing about QuesTec (nor, for that matters, have I seen any comment from the hitters). And this is pretty much human nature -- after all, a pitcher will naturally look for a scapegoat, and the QuesTec system is an obvious target -- a nice inanimate object to take out your frustrations on. Pitchers destroying hapless water coolers have been a fixture of baseball for years; why shouldn't QuesTec, which in a pitcher's mind can easily be responsible, be any different? And as Schilling himself admitted, his opposing counterpart on his day of destruction was pitching a two-hitter, so it's hard to argue that he was suddenly terribly hurt by QuesTec.

I don't mean to say that QuesTec is perfect, but I have to ultimately side with this quote from Sandy Alderson: "What this is about is Curt Schilling wanting pitches that are balls, called strikes... If that's what he wants, he should go to the rules committee. Otherwise, he should stop whining and go about his business."
Names
I have this weird paranoia about people's names -- I'm always afraid that I'll call someone I don't know all that well by the wrong name, and they'll think I'm a complete flake. This manifests itself especially strongly with my students; I usually pick up most of their names pretty quickly, but I'm extremely hesitant to actually use them. When I hand back labs or quizzes for the first time, I always have this fear that I'll give the wrong one back to somebody and they'll look at me disapprovingly, and even after that goes successfully (as it always has) I still feel wary.

The other day at LBL, I saw one of my former students. I remembered his name immediately (he was one of the more memorable people in the section), but I still didn't actually get around to using it. It's all very silly, I know, but I wish I could break myself of this habit.