Saturday, October 30, 2004

Procrastination

In addition to making chili, last night I spent some time reading my book and editing my web pages. What I probably should have been doing was editing my upcoming not-really-an-interview talk, but I didn't have the heart for it. I think the evening was well-spent, since the reformatting exercise forced me to re-read Sandy's sermons, which contain some useful reminders for crunch times.

I also wrote an autobiographical sketch of the sort that I find most exasperating: in truth, I've done some things right and some things wrong, managed to get to where I am now, and will probably go next wherever fate and fortune drag me. If you read, like tea, and know what an eigenvalue is, then you probably know as much about me already as you'd really reasonably wish to know. Alas, this is not the right attitude to take when promoting oneself and one's work to potential employers and funding agencies.

  • Currently drinking: Hot water (I forgot the tea until too late)

Rice and X

During my first year of graduate school, I often made a dish that I called rice and X. Rice and X is characterized mainly by the simplicity of X: more often than not, X is beans, but it can also be broccolli, tomatoes, peppers, corn, or -- in rare moments of extravagent indulgence -- tuna fish. When I didn't make rice and X, I often made chili, or just had bread and fruit; anything, so long as it was simple, didn't require too many ingredients (the upstairs refrigerator was shared six ways, and cabinet space was similarly limited), and could either be eaten at once or made into decent leftovers.

For a couple years after that, I regularly shared meals with a friend who was a better cook than I was. I cooked about half the time, but I rarely made Rice and X, since (a) I had much more flexibility in cooking for two, and (b) not everybody likes beans so well as I do. Besides, I was learning other interesting dishes. Even after that came to an end, I was in situations where I could often convince other people to share food. At the apartment in El Cerrito, I often shared food with my flatmate and his girlfriend, and the next door neighbors, and a few other mutual friends; we were all pleased to have the variety, and I think everyone else was pleased to have a forgiving eater for the days when culinary catastrophes struck. And I learned to make a variety of interesting dishes, and I was pleased.

Now I live in Berkeley again. The grocery store is again a bit out of my way, and so I go there less often than I did when I lived in El Cerrito. My flatmate and I have schedules which are fundamentally out of phase with each other, and have different tastes in food anyhow. My workload, which has the same peaks and troughs as anyone else's, is at a local peak, so for a little while, at least, I have not taken more than an hour and a half off in the evening to prepare food, eat, clean up, and do whatever other non-academic tasks seem most urgent. And so I have reverted to form, and am again cooking rice and X.

But rice and X is pretty good. Last night, X was black-and-pinto bean chili, and I thought it was wonderful.

Thursday, October 28, 2004

Rabbit ears

You probably think I'm odd for always wearing this hooded sweatshirt, I said this morning. But it's because I have big radiator ears, and they get cold! I grunted and shook my head for emphasis. Jim grunted and shook his head in reply, then dissolved into laughter. I poured my coffee and let my hands warm up, pausing now and then to put my steam-warmed hands up to my ears inside the hood.

I actually wasn't joking, at least not on purpose. We haven't yet fired up the heater, so the temperature inside the apartment at 7:30 am is about the same as the outside temperature at 6:30 am -- which is to say, it's colder in the apartment than it is outside. But I was pleased that Jim was entertained, even if my ears really were cold. I usually find that my deliberate efforts to be funny fall flat -- if the world wants to laugh at me, it needs to find its own humor in my actions. Fortunately for me, I tend to have friends and family who are easily entertained.

For the moment, I am very entertained by myself. Things are working! The predictions of my computations match experiments! That would be enough to make me happy on its own: add into the mix that I'm getting more users for one of my prouder software accomplishments (FEAPMEX), and that people are asking me interesting questions about eigenvalues that they can actually use for something -- and I'm dancing in the streets. Or in the office, as the case may be. And I'm getting the must-be-done tasks done in time enough, too, even if there isn't much time to spare.

I love days like this. It even makes up for a late night fighting with PowerPoint on Sunday.

  • Currently drinking: Some sort of tea. I've misplaced the box, but it smells good.

Monday, October 25, 2004

Murphy was...

Anything that can go wrong, will go wrong.
-- Murphy the Magnificent

Sometimes Murphy's Law gives a pessimistic prediction. Sometimes it gives a realistic prediction. But Murphy was an optimist seems an awfully bleak statement, doesn't it?

The problem, though, is sometimes it's much better when things go wrong early. It's like losing your keys and avoiding a car accident. As a refinement of Murphy's Law, then, for the truly morose, I offer the following Postulate of Pessimism -- which I don't buy, but which nevertheless amuses me at the moment:

Any sequence of events which can go wrong or right will occur so as to reach the most catastrophic ultimate outcome.

In truth, the universe is probably gentler than the Postulate of Pessimism would allow (since the duration of the sequence of events is unspecified, though, said postulate would be difficult to disprove). Which reminds me of what Pete Stewart wrote in his Afternotes on Numerical Analysis regarding the convergence of Newton's method:

In the long run, the iterates will arrive near a zero, after which quadratic convergence will set in. But, as we have had occasion to observe, in the long run we are all dead.

Sunday, October 24, 2004

Ludicrous

I'm working on a poster for a session on Tuesday. I need to finish it tonight so that I have time to get it printed tomorrow. I wanted to finish by 9:00 and to spend the remainder of the evening reading a Patrick O'Brian novel -- I've been working late most nights for the past month, and I've fallen behind on my leisure reading.

Remarkably, I was well on my way, despite my lack of PowerPoint expertise. That's when PowerPoint crashed. The diagnostic screen asked me if I wanted to save what I had before exiting PowerPoint. I thought that would be a good idea -- until I saw that what it wrote out was a 37 KB file which bore precious little resemblance to my poster.

I have to laugh when things like this happen. It really is ludicrous, and laughing is less costly than grinding my teeth and then paying the dentist to fix the damage.

  • Currently drinking: Russian Caravan

Friday, October 22, 2004

By the way

I'll be in NYC on Nov 5 to give a talk. I'll probably stay through Saturday, at least. If you'll be around NY at the same time and are interested in wandering about with me, let me know.

Doc Elmer

We implemented that element already, and it was pretty awful. Nobody should have to do it again. Why not just use our code?
Isn't that a FEAP element, though?
Get Dave to help wrap it into your code -- that's his main area of expertise these days. When he graduates, we're going to have to call him Dr. Elmer's.
Hey!
Actually, he compared himself to a software Dr. Frankenstein once. I like that comparison better.
Yes, yes. Can we change topics now?
To be fair, HiQLab is original.
Ha! No, there are under seven thousand lines of really original code there. Most of the work is pushed off onto other packages or automatically generated code.

Tuesday, October 19, 2004

Rain and green beans

What is the most remarkable thing about the rain? It's not that it is wet. I have gone all over the world to ask this question, and always that answer. No, the most remarkable thing about the rain is that it stops. And that makes all the difference.
-- B. Kedem

That the rain stops is mathematically interesting because it means any reasonable model of rainfall will have to have both a continuous component (the distribution of rainfall rates when it isn't raining) and a discrete component (since there is a finite probability that there is no rain). Depending on your cultural biases, you might describe this mixed distribution by blindly throwing about Dirac delta symbols, or you might proceed with a more careful description in terms of measure theory or the theory of distributions. Or you might never make it past the radio forecaster's discrete summary: 80 percent chance of rain tomorrow.

As I listened to the downpour on the roof this morning, I was not thinking (exclusively) of sigma algebras and the most remarkable thing about the rain. Mostly, I thought about umbrellas and puddles, and contemplated whether the most remarkable thing about the rain would assert itself in time for me to avoid observing the most obvious thing about the rain on my way to a meeting. The rain didn't stop, but it did slow down some, and so I didn't have to pull the Emergency Dry Socks from their usual home behind my file of papers on security in distributed systems.

The rain had stopped by this evening, but I still was happy to accept the ride to the grocery store proferred by one of my buddies from the department. In the interest of getting a little more balance in our respective diets, I invited him to share dinner afterward, and we had miso salmon, stir-fried green beans with garlic and peanuts, French onion soup (or pudding, perhaps -- the bread:broth ratio was high), green tea, and yogurt with fruit and honey. And then I gave him back his copy of Fermat's Enigma, and we went back to the office to return to our respective tasks.

Food does affect my attitudes in the most wonderful ways sometimes. And warm tea is good for turning thoughts on wet socks toward thoughts of napping to the patter of rain on the roof.

  • Currently drinking: Rooibos

Friday, October 15, 2004

Twelve Routes to Useless Computation

  1. Start with nothing in mind

    How very Zen-sounding. How very useless. Even if the goal is only to explore a new tool or a new mathematical idea, there must be some goal to guide a computation.

  2. Solve the wrong problem

    Also known as the build a swimming pool to avoid getting wet approach. This is a popular means for mathematicians to make themselves the butt of jokes ending with lines like consider a spherical cow.

  3. Assume there exists a unique solution

    There is an old joke about a mathematician who wakes to see that his blanket is on fire, sees a bucket of water in the corner, exclaims A solution exists! and goes back to sleep. I know of no comparable joke about an engineer with thirty feet of rope with which to build a bridge across a forty-foot chasm, but there ought to be one.

  4. Put the method before the problem

    You've done some work to reduce your problem to the solution of a large linear system, and you've decided to use dense Gaussian elimination with partial pivoting as your solution method. Your code runs slowly, so you buy a larger computer. After a month of painstaking work, you finally get an answer, which you proudly present to your boss. Your boss points out that while the equation 2x = b can indeed be solved using dense Gaussian elimination, dividing every element by two would have been much more economical, and fires you on the spot for gross incompetence.

  5. Use the wrong level of abstraction

    One-dimensional calculations are often easier than calculations in two and three dimensions. That doesn't keep people from devising elaborate theorems about the behavior of an equation on an n-dimensional manifolds when all anybody really cares about is the behavior on the interval [0,1]. This error is a favorite of novice C++ and Java programmers who supplant a modicum of common sense with a ton of object-oriented jargon.

  6. Avoid useful tools

    I'm not sure why people think it is more rigorous to write a half-assed code to solve a linear system (for example) rather than to use an existing library which is faster, more robust, better documented, and freely available. I'm also not sure why people solve medium-sized systems of linear equations by hand rather than use the computer. But there are people who do such things. May the Lord have mercy on their souls if they ever get between me and food in the process.

  7. Insist on the wrong tools

    If you want to solve a 2-by-2 linear system, do it in MATLAB, or Octave, or on your calculator, or by hand. Do not write a C++ program with a class hierarchy that takes three pages to describe. This is, of course, situational -- a C++ program with a three-page class heirarchy may be the right approach if you're solving a variety of types of linear systems, all with special structure that you can use, and you want to organize your ideas into a coherent library.

  8. Don't consult the literature

    It's good that you're a genius. We're all impressed that you managed to re-invent fire, the wheel, and the Edsel. Please be our competitor instead of our collaborator.

  9. Blindly follow the literature

    The literature on computing contains a lot of very good ideas by very smart people. It also contains some ideas which were obviously written while the author was hallucinating, and subsequently were reviewed by three chimps and a hung-over undergrad. Even if you read with enough criticism to pass over papers in the latter category, you may be reading papers by very smart people who were solving a problem only superficially similar to your own. This error is often coupled with solving the wrong problem, putting the method before the problem, or insisting on useless tools.

  10. Mis-understand the error sources

    If you model the Golden Gate bridge as a single degree of freedom system, fit your parameters very carefully, and use smart methods to figure out the resonant frequency of your model to a gazillion digits, that does not mean you know the resonant frequency of the Golden Gate to a gazillion digits. That doesn't keep people from claiming much higher accuracy than they really have -- and, upon later discovering that their answers don't match experiments, blaming the problem on roundoff error.

  11. Fail to check the results

    You wrote down the equations, you did a lot of algebra, and you got a solution. Did you actually test the solution to see if it satisfied the equations? A computation that fails for want of a sanity check is like the five-thousand dollar computer that sacrifices itself to save a five cent fuse.

UPDATE: As Heidi trenchantly observes, a bout of temporary confusion led me to use base 9 for my title numbering.

Monday, October 11, 2004

A weekend in quotes

Rick and Sarah came to visit on Friday afternoon, and stayed until Saturday morning. We met with Winnie for dinner, and on Saturday morning, we walked her to her class, and then made one last pass about Berkeley before I took them to the BART station.

Jim, this is my brother Rick and his girlfriend Sarah. Rick, Sarah, this is my advisor.
I see the family resemblance. How long are you here?
We just came to vacation this week. We leave tomorrow.
Jim to me: Some day, you'll be able to do such things, too.
And we've been here before.
Dave, you could have made up a completely different story about the gate this time, and we probably would have believed you.
It's milk tea with tapioca balls.
Oh?
I think it's originally Taiwanese.
Huh.
And here's Zachary's Pizza -- right between two of my favorite book stores
Do you want to go in?
No, I'm hungry, let's just get pizza.
You spell out words when you don't understand each other? And give dictionary definitions! Ha!
Yes...
Rick and I usually just exaggerate our pronunciations when we don't understand.
What would you like for breakfast?
Schweze!
Ham? Eggs? Chai? Cocoa?
Just schweze. And some milk.

After Rick and Sarah left, I went to the office until Winnie got out of class. As I walked down the hill to meet her, I ran into my flatmate Jim and one of his buddies.

Anyhow, as I was saying, humor works in threes. You would realize this if you watched as much stand-up comedy as I do.
Wait, let me see if I have this straight. One of us is developing a mathematical theory of humor, and it's not me?
He has you there, Jim. And he only had to say it once to be funny.

Jim was pretty tipsy, and was loudly declaiming his theory of humor to us all, when we ran into a pair of Mormon missionaries walking in the opposite direction. Jim was insulting, the missionaries were earnest and condescending, and the whole situation was amusing.


Winnie took off for dinner with friends in the south bay, and I had dinner with my former neighbors and crazy Basque former roommate. After dinner, we saw Patxi's pictures from his trip, and then watched Real Genius.

One million dollars! Why are you laughing, Dave?
That didn't sound evil. In fact, rather the opposite.
What?
It sounded sultry, really.
No! It was evil! Back me up, Mike.
I think I have to agree with Dave on this one. That did sound sultry.

Sunday, I went to the south bay, and Winnie and I spent the day on pancakes, walking around the lake, tea, miniature golf, air hockey, and sushi. And trying to see what benefits we could get for Winnie's birthday.

It's my birthday!
Happy birthday! I'd have put a candle in your Swedish pancakes, but it would have just fallen over anyhow.
Do you mind if we go ahead? It's his birthday.
That's fine, we're in no rush.
But it's my birthday, too!
We're slow, though. Do you really want those hellions to follow us through every hole in the course?
Okay...
Thank you. You know, he was probably just as rowdy when he was that age.
Not David!
It's my birthday!
Happy birthday! It'll be about twenty minutes.
I guess they don't have birthday specials here.

Hebetudinous

From A.Word.A.Day today:

hebetudinous (heb-i-TOOD-n-uhs) adj: Dull or lethargic, especially relating to the mind.

Saturday, October 09, 2004

Schweze

Rick and Sarah (my younger brother and his girlfriend) came to visit the Bay Area this week. They toured around SF on Monday and Tuesday, camped in the redwoods Wednesday and Thursday, and came to visit me in Berkeley yesterday. It was a good visit, and I may write more later, but first I want to write a recipe that I finally got from Sarah after forgetting several times to ask. This is a Burmese dessert. I've probably bungled the spelling of the name, but however it is spelled, it tastes great.

  1. 1 cup cream of wheat
  2. 1 cup sugar
  3. 1/4 tsp salt
  4. 2 can light coconut milk
  5. 2 tbsp butter
  6. 2 eggs
  7. 3/4 cup raisins
  8. 1/4 cup poppy seeds (or a bit less -- a palmful)

Separate the egg yolks from the whites. Mix together the cream of wheat, sugar, salt, coconut milk, butter, and beaten egg yolks in a sauce pot; stir and allow to cook for 15-20 minutes. Meanwhile, whisk the egg whites until they form peaks. Fold the egg whites, raisins, and poppy seeds into the mixture in the pot. Pour the mix into an 8 in square baking pan and bake at 350-400 Farenheit for 40-60 minutes, until the top is a light golden brown.

Thursday, October 07, 2004

Crossed wires

I decided to have a cup of coffee, sit in the sun, and read another chapter of Rapid Development after lunch. So I walked to the Free Speech Movement Cafe in the center of campus, sat, and spent a pleasant 45 minutes or so sipping and reading and thinking.

As I walked to the cafe, though, the Campanille played one of its usual lunch songs, and something in the back of my head insisted the tune was familiar. It took a minute or two, but as I came near the cafe, I realized that it sounded an awful lot like one of the theme songs from Tetris Attack, a game which was often played in the dorm where I lived for my last two years as an undergraduate. One of my flat mates at the time made up words for the tune, which went something like:

Killer crabs are coming to get you.
They do not like you.
They want to eat you.
They are the killer crabs.

If the words sound inane, consider that at the time, most of the composer's attention was directed toward not getting squashed.

While I stood in line, I thought about how often this type of mental criss-crossing happens to me. The first few times I heard FSM Cafe I thought of Finite State Machines rather than the Free Speech Movement; I still sometimes get confused when someone says NDA and means Non-Disclosure Agreement instead of Non-Deterministic Automata; depending on the conversation, ROM can mean Reduced Order Model or Read-Only Memory; and when looking through the Springer sale books earlier in the week, I confused myself immensely -- not for the first time -- by reading DFT as Discrete Fourier Transform where the author meant Density Functional Theory.

I wonder how confused I'd get if I worked for the government?

Monday, October 04, 2004

The Yellow Catalog

The Springer Yellow Sale on mathematical books is here. I made the mistake of stopping by the book store in the student union (for a completely non-book-related errand), saw the sale signs, and walked away an hour later with Brenner and Scott's The Mathematical Theory of Finite Element Methods and a big smile. I almost got Marsden and Ratiu's book on symmetry in mechanics, too, or Osher and Fedkiw's level set book. But I resisted temptation.

Hooray for books!

The Progress Pen Diary

I love my fountain pen, and I love LaTeX, but I think it's as well that I haven't found a way to combine them...

Day 1:
Just bought a new Progress Pen. Here's what the advertising brochure says:

Congratulations on your purchase of the Millennium Progress Pen. This state-of-the-art fountain pen has a built-in typesetting engine based on the popular and powerful LaTeX program. Bring the typeset beauty of LaTeX to your handwritten documents!

How exciting!

Day 2:
Just booted my new pen. Waited an hour while it dialed up and downloaded all the latest security patches. By that time, I forgot what I was going to write.

Day 3:
I've decided to install Linux on the pen. Hope it goes well.

Day 4:
It didn't go well. Turns out that my pen nib is only supported by an experimental kernel version, and it took some time to cross-compile the kernel on my desktop (I didn't want to install the Pen version of gcc). I'm going to try again this evening.

Day 5:
I wrote Hello World! It took me a while to figure out that I had to specify the document class before I could actually start typing, though. Also, my pen kept complaining about a runaway argument the first time I tried to make my document.

Day 6:
Today, I wrote a Makefile for my pen, so that I don't have to remember as long a sequence of Morse code to be tapped into the button at the top of the barrel in order to get the ink to start flowing.

Day 7:
With the help of The LaTeX companion, I figured out how to adjust the margins when I write lists with my pen. I still haven't figured out how to place figures, though.

Day 8:
I wrote a letter to a friend today. Won't she be surprised at how clear my handwriting has become! I can produce neat documents so much more quickly with my Progress Pen!

  • Currently drinking: Coffee

Sunday, October 03, 2004

Yee-haw

Yee-haw is not a foreign policy
-- seen on a Berkeley shop window

Yesterday mid-afternoon, after Winnie finished her class and I finished writing some documentation, we took a walk toward the Berkeley Marina. We did not, however, actually make it to the Berkeley Marina. Instead, we ended up wandering around Fifth Street, which resembles nothing so much as an outdoor mall. There were a variety of shops that sold clothing and furniture -- or perhaps they sold image, since it seemed that the less fabric was involved in a piece of clothing, the higher the price tag was likely to be. Fifth Street is also home to a branch of Cody's Books, and a branch of Peet's Coffee and Tea, too, and I approve of them, whatever I may think of clothing stores.

The Paper that Will Not Die is in the hands of my co-authors. I've written about ten pages of draft documentation for HiQLab (a finite element code I'm developing which I've mentioned before, if not by that name). I finished reading Count Zero (Gibson) and Joel on Software (Spolsky), and I've started reading The Surgeon's Mate (O'Brian) and re-reading Rapid Development (McConnell). I made curry on Friday night, filled up on bread yesterday afternoon, and have no idea what I'll have for dinner tonight -- except that I'll have masala chai with whatever it is. I took lunch breaks longer than ten minutes yesterday and today: yesterday, Christof and I had burritos at a place around the corner, and today we ate at a Japanese place on the south side of campus (I had veggie udon). And so a weekend is spent.