Tuesday, November 23, 2004

Hill of beans

This is a good time of year for lentils. They're tasty, they're warm, and they're cheap. And you can go from dry lentils to something edible in about 20-25 minutes (less if you don't mind a little crunch), which is more than you can say for most beans.

Spiced red lentils (masala dhal)

Cook a pot of red lentils (a couple cups) with a can of tomatoes. Season with cumin, turmeric, paprika, black pepper, cinnamon, and salt. A little garlic and some brown mustard seeds makes a nice touch -- you can pop the mustard seeds in a little hot oil in a pan (just cook the garlic and re-use the oil). If you don't think you have these spices, check the ingredients on any curry powder or masala mix you might have about. The lentils will turn to a wonderful salty, warmly-spiced sort of mush. About the only ways I've found to make it taste less than wonderful is to add too much turmeric or too little salt.

I learned this recipe -- or something like it -- from my friend Anant. He used a pressure cooker, but it doesn't seem to make that much difference: red lentils will turn into mush almost any way you cook them.

Brown lentil soup

Dice onions, bell peppers, and celery, and sautee them in a pan. Then add brown lentils and an appropriate amount of water -- the more water, the soupier the soup -- and (if you have them) carrots and potatoes. Add salt close to the end. I usually don't use other seasonings with this recipe, since the onion, peppers, and celery do the trick.

Lentil cabbage

Take a half-head of red cabbage. Steam cook it with soy sauce, and perhaps a little vinegar. Add a handful -- or maybe a cup -- of brown lentils about five minutes before you're done. They should still be a little crunchy still when you finish, with a sort of nutty taste.

  • Currently eating: Spiced red lentils
  • Currently drinking: Gen mai cha (green tea with toasted rice)

In a name

Between killing off wives, Henry VIII decreed that all his subjects should take surnames. Francis of France made a similar decree. Surnames became a necessity for 16th century rulers in order to keep track of their increasingly-mobile subjects; and since then, of course, we've become ever more numerous and mobile, and our governments still figure it's best to keep track of who is who. Even first and last names together are sometimes ambiguous now -- I know of at least two other people with whom I share first and last names, though I don't think I share a middle initial with either of them. Still, in most circumstances giving a full name is sufficient to establish oneself unambiguously.

In elementary and middle school, I usually went by Dave (or Dave B. in the case when my first name alone was ambiguous -- as it usually was). Around the end of middle school or the beginning of high school, I began to be called by my last name. My martial arts instructor called me Mr. Bindel, partly because he was particular about etiquette, and partly because there were several of us named Dave. When my brother Scott joined the class, he added big and little to Mr. Bindel; I've forgotten how he handled the few times when he saw us with our father. By the end of high school, I was Dave or Bindel or (in martial arts class) Mr. Bindel; and more rarely I was David. But I would answer to any of those names.

A curious thing happened while I was an undergraduate. I started meeting or interacting with people through e-mail and electronic newsgroups -- mostly those for my computer science coursework -- before I'd had much (if any) face-to-face interaction. I sign my name David, and so that's how I came to be addressed by those people, even when we actually met. By the end of college, I was David or Bindel, except for a few friends and acquaintances, mostly people I'd known from high school or the first two years as an undergraduate, who called me Dave.

And now? I answer to my first name, my last name, my nickname, or any reasonable superposition of the three, but I seem to be called Dave a lot less than I once was. It's interesting, though, to note who calls me by which name. I wonder, sometimes, whether the people who say different names would have different averaged perceptions of me -- though putting meaningful numbers to perceptions is beyond me, and taking statistics of such numbers is perhaps better left to pollsters, cognitive psychologists, astrologists, or people who fall into some combination of those categories. It's all the same person, but the different names do go with different activities. It was Mr. Bindel who stood on one good ankle and wondered why he was letting someone attack him with a knife; it was Bindel who caused much hilarity by explaining the idea of a differentiable manifold to his flatmate (So I asked Bindel what a manifold was yesterday... / And I'll bet he told you!); and the guy who walked a mile (more?) with a red office chair on his head was definitely just Dave.

If I have other nicknames, it's probably just as well that I don't know them.

  • Currently drinking: Hot water, lime, and honey

Weasel words

The article: When words hide the truth.

Sunday, November 21, 2004

Library

I'm getting more technical books! It may be strange that I got fed up with shopping and fled the store today rather than buy an extra package of socks, but still have the wherewithal to pitch in to a mass book-order that my office is making to SIAM; but so it goes.

  • Mechanics:
  • Iterative methods
    • Iterative methods for solving linear and nonlinear equations -- I want this book for the treatment of Newton-Krylov methods and analysis of inexact Newton methods, mostly. I have a bunch of papers that talk about results in this area, but no unified treatments. Newton-Krylov methods are particularly useful when taking analytical Jacobians becomes painful -- which happens a lot for interesting problems (including problems involving electrostatic-mechanical coupling that I find interesting).
    • Iterative methods for solving linear systems -- All sorts of useful analysis that's hard to find elsewhere. I've checked out this book before, too.
  • Structured methods
    • Spectral methods in MATLAB -- There are three main methods for discretization of partial differential equations: finite elements, finite differences, and spectral elements. Well, okay, there are finite volume methods, too. Still, I know a lot more about the first two than about the third. Considering how much I prefer to get compact models that fit onto a single machine, it sould behoove me to learn more about spectral methods, I think. Besides, Trefethen is an outstanding writer.
    • Fast reliable algorithms for matrices with structure -- This deals more with linear systems than with eigensystems (where I've done work on similar methods). Still, I don't have any books on this topic, and the methods are still sufficiently poorly unified that the talks tend to either be high-level or incomprehensible, and the papers all use different notations. Having one book reference on the topic, at least, will be a nice change.
  • Other

Time to stop gloating and go get food.

Saturday, November 20, 2004

Big Read

Today is the annual Cal-Stanford Big Game, which means there is more than the usual traffic, both pedestrian and motor. In honor of this game, I have printed a bunch of technical papers, which I intend to take with me to a cafe on Solano Avenue for an hour or two of reading before dinner.

You may think this has nothing to do with football. You would be right.

Double take

The article title was: Effects of alcoholic moderators on anisotropic etching of silicon in aqueous potassium hydroxide solutions.
What I saw was: Effects of alcoholic moderators.

Friday, November 19, 2004

Riddle

Q: What do you get if you cross Willie Nelson with a squirrel?

A: I'm not sure, but it has magnitude |Willie|*|squirrel|*sin(angle(Willie,squirrel)).

Mascot

Its cousins guard the rest of emperors.
It guards our spice rack.

They wear armor and bear arms.
It wears feathers and bears a beak.

They draw scholars and tourists from the world over.
It may draw my attention when I'm looking for cumin.

They are the Chinese terra cotta warriors.
It is a terra cotta chicken, and I'm told it's our new mascot.

Wednesday, November 17, 2004

Tuesday, November 16, 2004

Recent Happenings

I've done better at writing letters this semester than I sometimes do, but recently I've neither written many letters nor much e-mail about day-to-day life here. If you would normally be a recipient of such an e-mail or letter, read on. If not -- well, the beauty of the written word is that you can ignore it without being impolite, so you can read or not as is your preference, right?

A bit over two weeks ago, I went to Davis with some posters from the SUGAR group, including one new one on my recent research, for a CITRIS event (the Center for Information Technology Research in the Interest of Society is a multi-university research initiative in which my advisor is heavily involved). There were relatively few students there compared to the last time I went, which is odd since I remember reading at some point that they intended to have increased student interaction. I did cartwheels to get a poster ready in time, mostly because I decided to use PowerPoint (since I had an existing template and since I roughly knew how to print PowerPoint to a plotter). I'm not very good with PowerPoint -- I usually do all my presentations using a LaTeX package called Prosper -- but I was managing okay until the program crashed. Then it asked me if I wanted to save my presentation before exiting, and I foolishly said I did. I think the reason for the crash in the first place might have been that the file system flaked out, since it was spotty for most of the day; but in any event, the saved file was corrupted, and I had to restart. Fortunately, one of the other people in the SUGAR group had access to a plotter (a blessing on her head), and the Inkstone, a little store south of campus, had poster boards.

I got another pen while I was at the Inkstone, too. I've filled it with blue ink (in the other fountain pen I use black ink). I've been using it in my letter writing since then. It doesn't seem like I've written that much with it, but it's enough that I ran out of ink while I was on my trip to New York, and so switched back to the black pen for at least one letter. I still haven't finished cackling over the pen -- I can be worse than a hen with an egg, at least when it comes to socks, books, tea, and office supplies. By the way, you should look up the story of George Parker and the history of the Parker pens some time -- it's fascinating. One of my buddies from Soda got an impromptu lecture on George Parker's story after I'd finished reading about it (fortunately, I have some friends who find these things as fascinating as I do -- beats seeing eyes glaze over or hearing What I just heard was 'blah, blah, blah' any day), and he subsequently forwarded a pointer to a page on the best disposable pen there is, which also pleased me.

My flatmate asked at the very end of October whether it would be okay with me if his girlfriend moved into the apartment. I said that was fine with me if it was fine with them, and so it looks like there will be a third person living here starting in December. There will also be a Siamese cat, which means I won't have to be jealous of Vince's guinea pig any more. I'm looking forward to that immensely; I miss our cats when I'm away from home, but finding places that will accept pets here is tough. Given how hard I am on the plants, maybe that's just as well, particularly since I don't have any friends who would be willing to cat-sit when I travel.

I can already see the changes taking place in the apartment with Elena moving in. Jim (current flatmate) is not as tidy as Patxi was, and while we keep things organized enough, and I vacuum and pick up at least weekly, there are certainly aspects of this place that practically cry out bachelor pad. Or perhaps they cry out place where two somewhat absent-minded guys with no particular taste live, if they're inclined to be verbose. Maybe the stuff that I have more to do with uses longer phrases? Anyhow, there is a nightlight in the bathroom now, and a new shower curtain; there is a woven basket for magazines; and there probably are or will be a lot of things that I won't notice for some time to come, but are naetheless there. Or maybe they'll be pointed out to me with sparkling eyes; some people get as excited about getting decorative materials from Target as I get about getting new pens, and the world's the richer for it.

The start of November was hectic. One of my colleagues got measurements from a bunch of devices that I had simulated, and they matched the predictions that my code gave -- including one phenomenon that we hadn't expected before doing the simulation (which has a huge impact, but which is sort of hard to explain in one or two nontechnical sentences; if you're curious, I've linked the paper from my web page). I was ecstatic. This is, of course, the idea of what computational science is supposed to do, but it hardly ever works out so nicely with so little effort. Yes, I realize that so little effort is the culmination of several years of pondering on my thought and an even longer period of pondering on the part of other people, but still -- I'm very happy about it.

So there was data to match to my simulations, and then a paper to write on the topic, and all that was due on November 1. There was also an abstract deadline on Nov 1 for a linear algebra meeting to take place next summer; I wish I had more time to spend on the abstract, but we'll see what happens -- it's good work, so if I'm invited, I expect the talk to be stronger than the abstract was. On Nov 2, I gave a practice version of the talk that I gave on Nov 5 at NYU. I was on a plane Nov 3 and Nov 6.

The trip to NYU went well. I think my talk went well, and I certainly had a lot of interesting conversations. Also, this was my first trip into NY city, and it was fun to go exploring, even if the group was just me, myself, and I. I went to hear jazz at the Village Vanguard, I enjoyed a beautiful day in Central Park, and I got to take a couple long walks. I went into the original Barnes and Noble, and passed by the Strand bookstore (I would have gone into the latter, but it was late enough that it was closed). And it was nice to be out and about in the fall on the East Coast. I'm not sure whether it's the weather or the trees that make the difference, but fall in Berkeley doesn't feel the same as fall in the Midwest or the East. Fall is still one of my favorite seasons even here, but I think I prefer the East Coast variety.

It seems like I spent most of last week catching up, at least for the start of the week. It's amazing how much stuff can pile up. I took Friday off and went to the South Bay and helped to troubleshoot Linux problems. Also, someone apparently got hold of my credit card number who shouldn't have, and billed a bit over five hundred dollars for management consulting services to my account. Fortunately, Citibank figured out that this was fishy within 24 hours of the transaction -- long before I would have discovered it on my monthly statement -- and so they called me to tell me that I might have been defrauded. We cancelled one card, and I just got a new card in the mail yesterday; and, according to the representative I spoke with, an affadavit and some instructions should follow shortly. It's worked out with remarkably little hassle, though. I'm always shocked when I deal with a beauracracy and it doesn't turn into a dreadful mess; in a way, I'm more shocked that Citibank dealt with the situation so gracefully than I am that someone decided I was a good target for fraud.

I also seem to have lost my student ID, and with it my phone list. I'm not sure if it fell out of my pocket somewhere when I took out my wallet, or if I just misplaced it, but the fact remains that I'm now missing most of my phone numbers. This would probably cause me more concern if I spoke to more than two people on the phone with any regularity. As it is, I figure it will probably show up eventually, and it's not worth worrying about in the mean time.

And that's the news from Lake Woebegone. I should get going now -- I've finished my morning coffee, there's a meeting in half an hour, and I wanted to get one more task done before then.

  • Currently drinking: One last sip of coffee

Jasmine Tea

The apartment next door is lit with in that clear late afternoon light that only comes on a slightly overcast day. It makes all the edges and corners of things look a little sharper than they usually do.

The radio is on. Not headphones, but speakers and subwoofer.

This is why I work from home some days.

I have a tin of Jasmine Downy Pearls from Peet's which is among my favorite teas (do I have any teas that aren't favorites?). The pearls are tightly-curled whole tea leaves; put a few in the bottom of a glass, and you can watch them unfurl in the hot water. Because the leaves are whole, there's no need to use a teaball or filter to keep from swallowing bits of leaf. The leaves are good for several brewings -- I'm on number five with this batch -- and the taste changes with each successive cup.

The floating leaves are wonderful to watch, too. It's amazing how a small amount of dried tea unfurls to fill such a large volume: it makes the cup look like it's full of seaweed. Perhaps it's a Sargasso tea? Except with no eels.

(If you didn't catch that last reference, go find a reference that describes what we know about the life cycle of the eels. I recommend the description in the section titled Slippery Maketos at the beginning of part 3 of The Basque History of the World by Mark Kurlansky; if you follow this recommendation, don't stop with the description of the life cycle and culinary history of the eel -- the rest of the book is fascinating, too. If you did catch the last reference, I still recommend the book.)

  • Currently drinking: Jasmine Downy Pearls green tea

Monday, November 15, 2004

Dimensions of Character

A while ago, a friend of mine sent me a parody of Neil Stephenson's writing. You were thinking about the part of Cryptonomicon where he pouts his cereal? I asked. And he agreed that I'd got it in one. Later that week, while we were talking about books over cups of green tea, I observed that it seemed like many of my favorite authors could probably be parodied, but for different things: writing, character, place, pace, or plot shape. Kim Stanley Robinson writes wonderfully long sentences; Garrison Keillor writes much as he speaks; and Sir Arthur Conan Doyle is best known for the shape of his plots and for one or two characters.

I was reminded of that conversation today while I sipped spiced tea and ate chaat with a different group of friends. One of them commented on the Victorian habit of inventing fanciful names for groups of different animals: a murder of crows, a crash of rhinos, or a pride of lions. He suggested that perhaps we should to the same thing to distinguish groups of friends: a snark of Bens, a spaz of Jens, a bewilderment of Kens, a grunt of Lens, or a startle of Svens. You could do the same with book characters, I'm sure, particularly for authors who seem to write characters so narrow as to be unintentional caricatures.

Of course, real people are not caricatures, but there's certainly an element of caricature in the ways we identify and describe each other. It must be that way: most of us only see one or two facets of those around us, and it takes some time to even get a feel for those facets. At the same time, it's interesting to listen to people describing their friends, enemies, and colleagues (friends, Romans, countrymen?). A few words can tell a lot, particularly in a face-to-face conversation in which the words are accompanied by facial expressions and changes of voice tone. Of course, it's hard to tell the few words that someone would use to describe -- or perhaps to caricature -- oneself. Would my acquaintances describe me as a crotchety young man, easily exasperated? As a singer of silly songs? Would the characteristic picture be me absent-mindedly sipping tea, answering a question with a lecture that made the asker regret the asking, or perhaps loping along with a giant green backpack? I'm not sure whether I would be easy or hard to caricature, or how much variation there would be between people who have only interacted with me electronically, or only in an academic setting, or only in a social setting.

Various groups working on facial recognition write about eigenfaces: the idea is that it's possible to come up with prototypical faces, and that real faces tend to look like linear combinations of those prototypical faces. It has never been clear to me how one imposes a vector space structure onto faces -- what would twice a Bush face minus a Charlie Chaplin face look like? -- but the idea is entertaining. So what about eigenpersonalities? I suppose that's really the idea behind the Myers-Briggs personality inventory, or behind newspaper horoscopes, but surely we can make the idea sound more respectable by wrapping it in technical jargon. Or perhaps it would sound as ridiculous as I'm sure it would be in fact; but the idea of a vector space of personalities could certainly be entertaining.

I'm totally normal, but I wonder what you would get if you took my projection in the direction of Dumbledore?

  • Currently drinking: Jasmine tea
  • Currently waiting for: Psychology textbooks from John Frum

Perturbations, Parallelism, Performance

How can you improve the speed of a numerical calculation?

Ask many computer scientists this question, and they'll start thinking about ways to improve the code that does the calculating. If they're well educated, the first question they'll ask is Does it really need to be optimized? Then they'll ask where the time is being spent, and what available high-performance tools can be brought to bear. Would a faster processor or more memory help? If they're sufficiently over-educated, or simply sufficiently brave, they might suggest running the computation in parallel.

Alas, even among those who should know better -- anyone with an undergrad education in computer science should know better, and probably people with undergrad degrees in a variety of other disciplines should, too -- the first question often doesn't get enough attention. Does it really need to be optimized? It's a vague question, and not at all as obvious as it might first appear.

Numerical calculations are not done in a vacuum; as Hamming once said, The purpose of computation is not numbers, but insight (to which some later wit replied that the purpose of computation is not yet in sight). Somebody wants to better understand some phenomenon, perhaps physical. The phenomenon is described by a mathematical model, usually simplified; the mathematical model is discretized; and a computer code is employed to solve the resulting problem. If the question does this really need to be optimized? is first asked after the computer code is in place, is is asked too late.

Consider the physical problem. Is doing a computation the fastest way to understanding? If a five minute experiment can supplant five hours of setting up a model and computing with it, then the five minute experiment is probably worth doing. At least do a thought experiment first to ensure that you're asking a reasonable question.

Consider the construction of the mathematical model. How complex must the model be to accurately predict the behavior of interest? Can the real problem be viewed as a simple problem for which the answer is known? Or as a perturbation from such a simple problem? Is there a simple approximation which can be used as a starting point for more refined estimates (or even as an ending point, if not much accuracy is needed)? Ideally, the person setting up the model should ask these questions. Certainly the computer will not ask them.

Consider the construction of a discretized model for use on a computer. How faithful must the computer model be to the original mathematical model? This question works even if the original model is discrete; sometimes, it's possible to approximate one discrete problem by another discrete problem to very high accuracy. Can prior knowledge of how the system should behave be used to get the solution more easily? Is there one model or the other that provides particularly nice properties, in terms of error analysis or performance or both?

And now consider the construction of a computer program to solve the problem. Can someone else's code be of use? If the code available is too slow, is the right thing to do to speed the code up, or to reconsider the problem? If it's necessary to speed the code up, where is the critical bottleneck, the place in the computation where most of the time is going? And now it is time to use the computer scientist's bag of tricks to make things faster.

I've helped a colleague do a probability calculation which he thought would require extended precision by doing a back-of-the-envelope Taylor expansion. The expansion method not only required no coding, but it was more accurate than the method he had in mind. I've taken calculations of my own which originally took two hours to run and re-run them in milliseconds by replacing a generic finite element model with a semi-analytical formula based on finding singularities in a certain matrix whose entries were Bessel functions. I've used nondimensionalization arguments to reduce problems in two or three dimensions to problems in one dimension. I've used special structures in my problems, and in my models, and sometimes in my formulations to help me or help other people untangle problems that initially seemed difficult. I've taken a code that I thought I would have to run in parallel, profiled it, and discovered that all the time was going into file management and text processing tasks which weren't really needed, and replaced that slow bottleneck to get something which suddenly seemed blazingly fast on an ordinary desktop machine.

And some days -- many days -- I've been able to use existing software that gave me the answers I wanted sufficiently fast that it would have been inefficient, in terms of total time to solution, for me to spend any more thought on using a smarter solver or a more clever problem formulation.

How can you improve the speed of a numerical calculation? You can improve it by realizing that speed often means time to get useful numbers and not megaflops (millions of floating-point operations per second).

Overengineered

A pessimist sees a glass half empty.
An optimist sees a glass half full.
A realist drinks the rest of the water.
An engineer figures that, even accounting for a generous factor of safety, that container uses way too much glass.

Saturday, November 13, 2004

Linux

I first installed Linux on my machine in my freshman year as an undergraduate in 1995 -- a Slackware release, I forget what version. I dual-booted my system with Windows 3.1. One of the women who lived on the same floor as me in the dorms helped me set it up; I think she assumed I knew more about UNIX and such than I really did at the time, probably because my main means of meeting people in those first few weeks was to help them fix their computer problems and set up their network connections -- that and helping to move furniture. She didn't need the network help, though I might have helped her move furniture at some point; I'm sure I've forgotten things after nearly a decade. Naetheless, we became acquainted, and got along with each other reasonably well, and I wanted to give Linux a try.

I spent a very frustrating time trying to get things to work before I gave up, reformatted, and spent some time with a pure Windows-based system again. That summer, I gave it another try. One Friday evening, I sat down with my machine and a set of RedHat CDs, and set to work. By midnight, I had managed to spectacularly botch the drive set up -- the partition table was corrupt, the master boot record was no better, and any data my filesystems might once have contained was hopelessly lost. I also had neglected to eat dinner -- I did that a lot, to no lasting harm but to the dismay of my friends -- and the combination of tiredness and low blood sugar left me even more disgruntled than I might otherwise have been. But I perservered, and after spending most of the next day reinstalling and figuring out how to get the OS to play nicely with my network hardware and how to get X11 to play nicely with my graphics card, I was very happy to once again have a working system. At that point, I'd also had to use the Alpha clusters for a year for all my computing assignments, and so knew enough about manuevering in a UNIX environment that I had a starting point for learning more.

I've used Linux as my primary operating system since that time, though I did -- and still do -- use Windows some of the time, for games, or for viewing Office documents that people sent me, or for programs I wrote for my job. Both operating systems have come a long way. Plug-and-Play support has become ubiquitous, which has made life easier in most respects (remember diagnosing interrupt conflicts?); there are no longer so many network cards built with conflicting and backward interfaces; and driver support for new and old hardware is better in both systems. Windows 95 was tremendously more stable than Windows 3.1 -- it's remarkable what cooperative multitasking will do -- and, despite some... um... quirks when it first came out, Windows 2000 and the other successors have become still more stable. On the Linux side, stability was never such a concern. But for a long time, configuring a Linux system was a chore, and though my primary tasks were editing, compiling code, preparing mathematical documents, and web-surfing -- tasks for which the application base in even the early distributions did well enough -- there were lots of areas in which the application base was primitive or non-existent.

Despite getting to be quite comfortable with Linux and spending lots of time on systems programming tasks, I never quite got around to meddling with the Linux kernel. I wrote a kernel for my undergraduate operating systems class, of course, and there's nothing quite like spending hours debugging a kernel-space locking error to leave you impressed by how tedious kernel code can be. I've written code on platforms that were arguably even more obtuse -- a little embedded system called the HandyBoard in my robotics class, and an early tablet computer called the DataBoard for a job at the end of high school -- but somehow they didn't leave me with the same sense of disgruntlement as that one locking error (probably because it didn't take very long to reboot those machines). My later experience with parallel computers has had much the same feel: I can write code at this level, and I know how to diagnose and fix locking errors, but I also know it to be a pain that I'd rather not deal with. In the cases where I've written system-level code for Linux -- as in a cryptographic file system with metadata signatures that I co-wrote in my first year of graduate school -- I've been fortunate enough to push most of the work into user-space daemons which don't take down the entire system when they crash during debugging.

On this, though, Winnie is braver than I am -- perhaps because she already spends a fair amount of time working with embedded systems code. So when I went to visit her and to give a hand with the system she was using for a three-week intensive course on Linux device driver programming, I didn't really expect to be able to provide much more than encouragement. But while the standard Linux distributions have come a long way, they have not come so far that it's entirely trivial to get a working system which can boot with either a 2.4 or 2.6 kernel, which works with a very recent-model webcam, which is entirely unphased by the presence of two network cards (well, 1.5 -- one is on the motherboard and isn't a separate card), and which will gracefully start the X windows graphical interface system despite a somewhat quirky graphics card. Now multiply the difficulty by two machines (when you're debugging kernel modules, this is very useful -- one machine runs the kernel, and the other machine runs the debugger).

And so I spent yesterday doing something it seems I hardly ever do any more: helping a friend work through the quirks in a non-standard installation. And by evening, we had things worked out. Both systems worked fine, one with both a 2.6 kernel and a 2.4 kernel. All the bits of hardware were recognized, even to the web cam. And so, even though I wasn't very helpful when it came to the kernel module that Winnie had to write for the homework assignment -- the most I did was point out a place where something needed to be statically allocated rather than stack allocated -- I was very satisfied by what I'd done with the day. Even if what I'd done had nothing to do with the sort of modeling tasks and numerical computations on which I usually spend my days.

Besides, I got to share some egg nuggets (a type of Chinese sweet, perhaps distantly related to waffles), and I had milk tea with tapioca balls. And I finished reading Royal Assassin on the train ride home. And now I've had a break to think about something completely different for a while, and I have a couple days in front of me which I can spend thinking about -- really intently thinking about -- some of the mathematical ideas that I've meant to flesh out for a while. Is it any wonder I'm in such a good mood?

Thursday, November 11, 2004

Blinded by Science

Read the article.

  • Currently drinking: Black coffee

Wednesday, November 10, 2004

Cow-tipping

In a brief interlude around 5:00, when some folks were leaving the office and others were visiting, the conversation turned to cable television.

CNN has changed a lot. I remember realizing that fully when I saw a segment on a farmer who lost two cows. Isn't there something in Europe, perhaps, that might be more newsworthy than that?
Maybe the cows were kidnapped by terrorists? I asked.
And they'll soon be beheaded, right.
If we dressed up in turbans and took movies of ourselves going cow-tipping, I wondered, how long would it take before they were all over the Internet?

Let me be clear here: I think that a video of men in tuxedos or Mandarin jackets would be equally ludicrous, and would spread across the net nearly as fast. I can't help but think that if I had a handheld video recorder and access to a field full of cows (or, to be more safe and more humane, a field and a pile of sawhorses, pillows, and other items from which I could build fake cows), that this would be a wonderful experimental waste of an evening. Tape three videos: one of people in fake turbans tipping fake cows; one of people in fake tuxedos tipping fake cows; and one of people in Mandarin jackets tipping fake cows. Place all three videos on the network, and write a mail to a few friends saying that it's there. Wait one month and observe how far the video has spread.

I'll link anyone who wants to try it?

The Great Unraveling

On the plane, I read Eric by Terry Pratchett, and Assassin's Apprentice by Robin Hobb. Both were good reading, and I think I'll probably pick up the sequel to Hobb's book soon. For the moment, though, I think I've switched gears -- in reading if not in music -- and after I came home this evening I spent some time listening to the local jazz station and reading The Great Unraveling by Paul Krugman, a collection of editorial essays taken from Krugman's regular New York Times column.

In the preface, Krugman states his background clearly:

Why did I see what others failed to see? One reason is that as a trained economist I wasn't even for a minute tempted to fall into the he-said-she-said style of reporting, under which opposing claims by politicians are given equal credence regardless of the facts. I did my own arithmetic -- or, where necessary, fot hold of real economists who could educate me on the subject I wrote about -- and quickly realized that we were dealing with world-class mendacity, right here in the USA.

Whether or not you agree with Krugman's conclusions -- I find his arguments compeling -- I find this paragraph very interesting. The first point he makes is that, in many areas, not all perspectives are equally valid. Certainly neither science nor mathematics are democratic endeavours. We don't legislate the value of pi, and we usually accept that someone who has spent years thinking about a technical topic might have some intuition that we lack. But a scientist or mathematician is only credible insofar as he can demonstrate his conclusions based on available data -- which should, ideally, be something that a non-expert could follow (though in some cases you might reasonably need to be a tenacious non-expert with a long attention span, and by the end of your endeavour you might no longer qualify as a non-expert). And this is the second point: opposing claims that can be judged on a factual basis should be judged on a factual basis. If fair and balanced coverage means that I say pi is about 3.14 and you say pi is about 2.86, so really we should weight both perspectives equally to guess that pi is 3 -- well, I suppose that means that life isn't fair by all lights. But then, who said it was?

As for the specific conclusions that Krugman draws -- well, I'll quote again:

But have I been right? Read the book and decide for yourself.

  • Currently drinking: Black coffee

Monday, November 08, 2004

All that jazz

I never went back to Georgia...
-- D. Gillespie, Manteca

The trip to NY was excellent: the talk went well, and I had an attentive audience; I had lots of good conversations, some technical and some not; I met some very sharp people; and I was able to get some new ideas and to share some new ideas. I was impressed; I hope they were; and beyond that, I'm still sorting out my impressions and may or may not share them further on another day.

I also had the opportunity to get out and explore a little in my first trip to New York.

Sometime near my arrival at JFK, I got Manteca stuck in my head. It was there while I walked through Penn Station; and I'm sure I was humming to myself while I took a walk in the area around NYU. The song played intermittently in my head from Wednesday night until Friday afternoon. And then I went out on Friday evening.

I walked along Broadway to Union Square where -- perhaps unsurprisingly -- I ducked into a Barnes and Noble to find a quiet corner and record some of the day's conversations before they vanished from my head. The sound system was playing a fiery, bluesy sort of jazz, and the trumpets in my mental soundtrack were replaced by harmonicas. Then I went to see a group play at the Village Vanguard. Sax, drums, guitar, and bass fiddle supplanted the mental harmonicas, though now only the fiddle remains. Slap that bass, slap it 'til it's silly...

When I went back to my host's apartment, his CD player cycled through Dave Brubeck's Take 5, and when I left the next morning, Take 5 and blues and the bass fiddle lines from the previous night cycled through the back of my head, with Sinatra bubbling up in the in between moments. I walked down 5th Ave toward Central Park, passing by all manner of grand buildings and land marks on the way, pausing to admire the New York Public Library and to duck into the main Barnes and Noble store on 18th Street. My previous impressions of New York City were shaped half by The Muppets Take Manhattan and half by an architecture professor at Maryland who spent two weeks in a seminar course talking about Frederick Law Olmstead and the design of Central Park -- or at least, that's what I thought. But as I walked along the way, it was remarkable how familiar things seemed. New York City permeates so many images, through books and radio and television, that it hardly seemed such a strange place after all.

I walked to the lake in Central Park, and there I enjoyed the sun and watched a small child feed bread crumbs to a swan. The kid was young enough that the swan was much larger than he was. But when the kid threw his bread crumbs, the swan curved it's neck down to gobble up the morsels, and the kid was suddenly taller; whether it was this change in stature or the greedy behavior of the swan, quite out of keeping with its normal dignity, the kid was enchanted by the sight. He laughed, and did a little dance, and people all around him grinned a little. The squirrels and the pigeons and the ducks, though, steered clear of the whole scene -- I suspect none of them wanted to rile the swan.

It was a perfect fall day: the air was clear and a little crisp, the leaves were shades of brown and orange and red, and the sky was that special shade of blue that only seems to come on a few days each fall. But I eventually did walk from the park, since I had to catch a plane a little after 6:00. As I walked out, I passed two musicians. One was a guy with a sax and dark glasses playing what I took to be an unfamiliar jazz tune for a few notes -- before I recognized a tune from Fiddler on the Roof. If I were a rich man, said the sax; I would deedle-die-doh-deedle-idle-dum! I hummed under back under my breath. Not long after the sax had faded into the background, I saw an old Chinese man carefully setting up a pi-pa, a type of Chinese string instrument. I slowed as I passed, wanting to hear what he would play. He played Greensleeves.

  • Currently drinking: Hot water

Tuesday, November 02, 2004

Lights! Camera! Peanut doodles!

I cast my vote this evening during my dinner break. I used one of the Diebold voting machines; and whether or not I think they have enough safeguards engineered into them, I also think they're pretty nifty gadgets. I'm a sucker for touch pads.

And with that profoundly patriotic thought in my head and a rumble in my belly, I went home, listened to the radio while I ate my dinner, and then turned the radio off and walked to the bookstore to buy a book for the flight tomorrow. Or three books, actually, and they'll probably last me longer than the remainder of a busy week.

I'm not a doctor, but I play one on TV. No, not really. People have mistaken me for several flavors of scientist or engineer -- correctly, for the most part, since labeling academics by departments is a medieval notion, however time-honored -- but that's about the extent of it. And I'm not dramatic enough for television, and that's the way I like it. I can only imagine what my response would be to someone crying Lights! Camera! in my direction. I'm a mathematician and a computer scientist, and the television in the living room is broken, and has been for quite some time.

Monday, November 01, 2004

Spare time

You should have a slide at the end which says the things you do in your spare time.
Ah? Like finding roots of polynomials, writing software to infer packet loss rates in computer networks, helping simulate musical instruments, that sort of thing?
Exactly.
Should I mention sometimes sitting in a room and arguing in circles with a committee of floating point arithmetic experts?
Sure. Feel free to joke about it.
Of course.
Yes, I think that list is quite enough.
Really? I was just thinking that I ought to start some more projects...
Some day, you will find yourself in a job that leaves you feeling less ambitious.
Ah?
It's called 'being a professor.'

  • Currently drinking: Rooibos

Halloween

In 2001, one of my office mates dressed as a zombie bin Laden for Halloween. He was most put out when he lost the costume competition to a graduate student dressed entirely in purple with a BART ticket stuck to his forehead. What's purple and commutes? An Abelian grape! Yes, they staff entire departments with people who (like me) think that joke is funny -- or at least, a sufficient majority to clinch a costume competition.

And you do know what you call a baby eigensheep, right? I know I can't hold a candle to the former Iraqi foreign information minister when it comes to entertaining the world at large, but I do amuse myself.

Lots of things are different three years later, but both bin Laden and the Abelian grape joke are still around. And so are we.

I, and many other people my age, grew up half-expecting that nuclear war was inevitable, and that my mark on the world would ultimately be an ashen shadow on a brick wall somewhere. We saw the duck and cover films and laughed, knowing how ineffective that would be. I wonder if Cheney realizes how ludicrous that seemed then, and how equally ludicrous it seems now to make a nuclear scare into a campaign point? Things have changed, and now it seems likely that, for a whiel at least, we'll continue to kill each other more rapidly by accident with our vehicles than on purpose with our weapons. But the box is open, and there's no putting knowledge back into it. If some smart, determined person gets the backing of a large enough other group of people, I'm sure that person can kill a lot of people, or at least make the world a less pleasant place in which to live. Do you suppose we'll wake up some morning to hear that some leader, a person of focus who wishes to destroy his enemies and will not vary from that task, a person who is certain that God is on his side -- do you suppose that some day, such a person could come to command an organization, even a country with nuclear capabilities?

And yet, we're still around.

By flu, by car, by bomb, or by falling airplane parts, whether we're uninsured or have the best coverage in the world, whether Bush wins or Kerry wins or the election is declared a draw and the government is replaced by a military triumvarate -- we all will die eventually. How much land does a man need? Not very much in the end. Sometimes it seems like we're in an awful rush to get to the end, as though this were all some sort of race to be won.

And yet, we're still around.

Happy Halloween. Vote on Tuesday, however your conscience may dictate. And drive safely.

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.

Thursday, September 30, 2004

Special K: Take 2

Upon my arrival home last night:

D: You should help finish the vat o' noodles in the fridge.
J: I'll do that. By the way, what are you going to do about that milk?
D: Milk?
J: Yeah, the bad stuff that's a week past the expiration date. Elena had her coffee before I had cereal yesterday, so I got a heads-up.
D: Oh! I'd never had Special K before, and I just thought that was what tasted terrible.
J: And you bought two boxes!

Around this time, Jim began to laugh, and ceased to communicate effectively for a minute or two. After that, we established that I'd bought the milk at Long's just a day ago; that there was a sale on Special K; and that Jim had bought a replacement gallon which was sitting in the fridge beside the sour milk.

I ate a bowl of Special K this morning. Guess what? It tasted pretty good.

  • Currently drinking: Black coffee

Wednesday, September 29, 2004

Editing fool

I am revising a paper, and I'm in the middle of a particularly thorny section. In an earlier round of editing, I scribbled in the margin that I would like a cleaner presentation of this section; now, I've decided to quit procrastinating and actually clean it. In the process, I've gone from thinking the author is a lot smarter than I am to thinking what was this idiot author thinking? Of course, I'm the author who is the target of this alternate admiration and accusation.

My current method of revising papers involves a fountain pen, a legal pad, and a lot of time writing longhand from a printed page. One advantage of this method is that it's impossible for me to skim, no matter how familiar I am with the contents of the formula; consequently, I catch a lot of punctuation errors, notational inconsistencies, and similar types of mistakes. When I re-write my theorems longhand, I also more easily find places where I've been too loquacious (and my fingers start to ache) or too curt (so that I can hardly decipher what that fool author wrote).

The main disadvantage of this editing method is that I go through ink cartridges quickly. I suppose I'll visit the stationery store when I walk to Soda tomorrow.

Special K

When I went shopping for milk and cereal and machine oil yesterday, I picked up two boxes of Special K. I hadn't had Special K before, but it was on sale, and I'm not a picky eater, so I figured I would give it a try. So this morning, I poured myself a bowl of Special K -- and it was awful.

Have you ever had a multivitamin that makes you feel sick? I have a bottle of them at home, which I bought some time ago with good intentions of taking one a day. It's probably just the brand, but on no fewer than four occasions, I've tried taking them, only to discover that if I have a vitamin pill with my breakfast bowl, the back of my mouth fills with an awful metallic taste and neither vitamin nor cereal will stay down. Special K delivers that same special taste at the back of my tongue, the sort of flavor you might expect to get if you took light corn syrup and dissolved a lot of copper and sulfur and iron into it. It doesn't make me very nauseous, though, so I'll probably finish the box and rinse with mouthwash after each bowl, and never buy Special K again.

Well-intentioned advice can leave an awful taste in the throat, too. I got a dose of Special K advice today (mixed with some pretty good advice). Afterward, I spent a few hours wanting to avoid the world, and so I took my work home. Actually, that's overly dramatic -- I went home because my lunch was there, and because I wanted to sit away from my books and computer resources while I worked on a writing task. But I did leave the office in a markedly anti-social mood, which has fortunately now passed.

  • Currently drinking: Rooibos

Free food

Last night when I left Soda, I took with me a tray of fried noodles with chicken and shrimp that was left over from an IBM recruiting event. Huzzah for free food! Several meals worth of free food, actually.

I think I should go home and eat some of that food now.

Tuesday, September 28, 2004

Mental models

I spent an hour or two yesterday evening correcting a problem in the error-handling code for one of the finite element programs I develop. Today, I spent some hours tracking down a problem in the eigs routine in MATLAB R14. There were two issues, one of them subtle and the other obvious but hard to locate (it resulted in a negative value which would be theoretically impossible -- even in floating point -- if things were working right). This evening, I walked to Long's to buy machine oil so that I could fix the office door lock, which had become nearly impossible to open.

In total, I've spent about half the productive hours since this time yesterday working on fixing problems with one thing or the other. But it's easy to see how those few hours could have become an entire week. So why didn't they?

The reason I'm spending this evening trying to clarify several pages of tedious algebra that I wrote a year ago rather than trying to diagnose problems with eigs and locks and sealing wax is that I have a set of mental models -- of all sorts of things -- that I can employ to find likely problem causes and solutions. My mental model of a lock is pretty crude -- you push in the key and it lifts the pins -- but it's sufficient to tell me that a little oil will probably help things along. My mental model of what goes on inside of eigs is a good bit more sophisticated, and includes a general mathematical component (which is what told me something was very wrong when I got negative numbers for this particular problem), a software architecture component (which told me where to start looking in a thousand line mass of MATLAB code), and a numerical analysis component (which told me why one of the bugs has probably remained undiagnosed for the past several years, and has made little difference to many users). My mental model of my own code is even more sophisticated, since I wrote the thing, and since I've been writing similar codes -- and thinking about how they should be written -- for a few years now.

Now, this collection of mental models is pretty handy for me. Some of those models contain a lot of details that few other people know about, which is probably why people knock on my office doors and ask me questions and then get excited by the simple (sometimes) answers and go off to do cool things (this is how most of my current collaborations got started). But I have not yet figured out how to do a telepathic brain dump to instantly teach another person everything I know about computer arithmetic or real analysis or mixed-language software engineering. I've been tuning some of those skills for over a decade, and while it takes me less time to teach them than it did for me to learn them, it's not an instantaneous thing. But I have more ideas than time, and I would dearly love to give someone enough of my mental models to make some headway on the ideas I end up neglecting.

I suppose I ought to finish being a graduate student before I start aspiring to take on students of my own.

  • Currently drinking: Jasmine tea

Monday, September 27, 2004

Microsoft

Bill Gates is coming to speak at the Berkeley campus this Friday, and the CS graduate student mailing list is full of chatter. There have been several announcements for tickets; and a few mailings about organizing a possible protest, mostly from people who think it is a good idea, but also from at least one person who thinks a protest would be disrespectful to a guest. I have enough on my plate that I don't plan to go to either talk -- I'll go to talks with more information density if I go to any this week -- but all the sound and fury has set me to thinking: why do so many people hate Microsoft?

I do most of my work on Linux boxes, and split the remainder of the time using either Windows or some other UNIX variant (usually Solaris, sometimes HPUX). The tools I use -- LaTeX, gcc (and g77 and g++), emacs, Matlab, and a host of numerical libraries -- play reasonably nicely together under Linux, and I know how to fix things when they don't. My desktop environment is sufficiently transparent by now that I can concentrate on doing work rather than on working around glitches. And I'm happy to be in a situation where I'm encouraged to distribute my software freely, since academic CS departments produce ideas as their primary artifact, and code is just one means of distribution.

Now, suppose I were to change any of the variables involved. What if I hadn't learned a lot about UNIX and related systems through exposure as an undergraduate and through long-time use? What if I didn't spend so much time working with numerical software where the ability to mix languages is so critical? What if I spent less time writing mathematics and wanted to spend more time writing leaflets? What if my presentations included fewer equations and more media clips? What if I was trying to write programs for a mass market? Or -- heavens help me -- what if my favorite game were something other than Tetris?

For me, it takes very little time using a Windows system -- even if something like Cygwin is installed -- before I realize that it doesn't have all the facilities of a well-configured Linux box. I remember this every time I try to recompile and debug my numerical codes for Windows, and find myself missing some favorite tool. There is no valgrind for Windows, and compiling MEX files that combine Fortran and C++ is a lot harder there. On the other hand, if I want to play video games with snazzy graphics, I'm going to use Windows. And as frustrated as I can get during those rare times when I have to use Word or PowerPoint, trying to use OpenOffice is still worse.

Linux is not worse than Windows. Windows is not worse than Linux. If I had to choose, I would probably rather have Linux, since it personally supports more of the tools I use (at least, tools that I use now -- I wrote closed-source Windows code part-time as a high school student and an undergrad, and tools like Borland C++ and Delphi were awesome for the type of work that I did then). I'm also a graduate student in computer science, which means both that I like to read source code sometimes and that I'm fully aware when I pay for software that I might rather be buying food or books or burlap sacks full of Lithuanian gerbil food. Okay, perhaps not the gerbil food, but you get the point. In my present circumstances, using Linux makes a lot of sense. But in other circumstances, it doesn't make so much sense, and I'm not so biased that I'm going to shun all Micro$oft software to make some sort of statement.

Bill Gates is a businessman whose name lends itself to bad puns (of course, I think it's hilarious that Richard M. Stallman is always referred to as rms -- the same initials used for root mean square -- so perhaps I'm a bad judge of name pun-ability). Microsoft is a business, and while I think some of the strategies they use are questionable, I don't think it's a Blood-Sucking Vampire Company (suck you dry in ten minutes or the next death is free!). If you want to be outraged, be outraged at a tobacco company. If you want to ponder questionable business ethics, look at medical insurance operations. For that matter, look at Haliburton. There are bigger fish to fry than Microsoft.

Besides, oh ye open source advocates, Microsoft is good for Linux. Yes, they break standards, and make interoperation a pain in the ass. They also have user interface people who don't think ps -a | awk '/matlab/ { print $1 }' | kill -9 is an intuitive way to stop an errant process. Most of Linux's office software uses interfaces similar to Office products, and in the areas where the two diverge, it's not always the open source version that's doing it right. And LISP may beat VBA hands-down as a scripting language -- it's certainly more elegant -- but do you really want to have to teach recursive thinking to a business major who dropped an introductory CS class after two weeks out of utter frustration (and out of the clever realization that MIS majors might have more time to pursue members of the opposite sex, get drunk, and scope out the Lithuanian gerbil food black market)?

Write useful software that runs on more than one platform. Analyze Microsoft's flaws and tell the world in a way that forces Microsoft to fix the problem or be punished in the market. And when in Berkeley, perhaps, protest, if only so you can tell your grandchildren about it when they start asking embarrassing questions about your past history dealing Lithuanian gerbil food. But really hating Microsoft is probably a waste of moral outrage, and certainly a waste of time.

  • Currently drinking: More rooibos

Sunday, September 26, 2004

For Dummies

Who first said something or someone was too stupid for words? It's an unfortunate phrase, since as English speakers we have a lot of words at our disposal to say how stupid something might be. Whether it was coined out of a (misplaced) surplus of diplomacy or a deficit of creativity, it is hardly as cutting a comment as it might once have been. That is because we are entering The Age of Aquarius for Dummies!

I did not see The Age of Aquarius for Dummies in Barnes and Noble. I did see Chihuahuas for Dummies, and Hockey for Dummies, and RF Engineering for Dummies. If I spent a little more time browsing in Barnes and Noble and a little less time staring at the shelves in the math library or the shelves in my office, I might start to automatically associate yellow covers with the phrase For Dummies; but I have too many Springer math books with bright yellow covers, and a title like Perturbation Theory of Linear Operators for Dummies seems unlikely to yield much profit. I also flipped through an essay in The Philosophy of the Simpsons about Lisa Simpson and American Anti-Intellectualism (it was after the chapter on Homer and Aristotle).

The For Dummies series doesn't particularly bother me -- no more than the woman with the worn pump sneakers making asthmatic-pug-dog noises who dawdled up the hill in front of me this morning. It's more like mushrooms growing after a rain storm, paper mushrooms with virulent yellow covers which are fascinating to observe and perhaps, with some expert guidance to help avoid unfortunate side effects like hallucination and death, good to eat.

I passed the Dummies books by on general principle, but I did buy something from Barnes and Noble this weekend. Actually, I bought two somethings. First, I got the next book in O'Brian's Aubrey and Maturin series, which I will probably put info my fiction reading queue immediately after Count Zero. Second, I bought Joel on Software, a collection of essays much like those on the web site www.joelonsoftware.com, which is amusing for many of the same reasons most things written by Eric S. Raymond are amusing. The essays are insightful, and possibly relevant to me as a software worker... but who am I kidding? I got it because of lines about carpenters who are only allowed to use nails and they stamp them into the wood with tap-dancing shoes because nobody told them about hammers. The book is funny.

Of course, this may be the same sort of humor that led to Dave, Patxi, and I gasping with laughter over our idea of putting a T-Rex skeleton on a shake table fitting it with sensors, hiring undergrads to wrap wet towels around the joints, and trying to use this to build an experimentally verified single degree-of-freedom model for a running dinosaur. We thought it was hilarious; Winnie and Esther were mildly amused, and most of that amusement probably came from watching us laugh. But while ridiculous jokes, bad puns, and poetry about branch predictors may not be the best way to win friends and influence people, they're still a lot of fun for me and thee (assuming thou hast as quirky a sense of humor as I have).

On an unrelated note: Winnie and I walked to the Pacific East Mall in El Cerrito on Saturday in order to have some pho and look at Chinese language books (I found a book with color pictures of espresso drinks which was pretty, if incomprehensible). There I learned a valuable life lesson: soda drink with preserved plums should properly be translated as carbonated brine with brown lumps. Exploration is good, but perhaps next time we'll stick to lemonade or Thai iced tea.

Thursday, September 23, 2004

Fallacies, fallacies

My office mate sent me this classification of various fallacies from 1962. How many of them have you seen used this week?

Sunday, September 19, 2004

Gardening at night

I'm alone in the office now. Perhaps not so surprising, given that it's 11:30 on a Sunday. I finished what I needed to finish this weekend, if not all that I wanted to finish; and so now I'm taking a few minutes to just enjoy the quiet.

When it's just me here, I can listen to the radio on speakers rather than on earphones (the program right now is World Cafe, a PRI program). I can take breaks to stretch or practice kicks without unnerving anyone. I can pace, or hum absent-mindedly, or gaze into space without unintenionally staring at someone (I'm told this can be unnerving).

I appreciate my time alone, whether it's spent working or playing or just thinking. I think I appreciate it more late in the evening; social graces take some effort for me, and when I start to wind down for the day, I become even more reticent than usual. I'll smile; I'll listen, and even listen actively; but I won't feel like saying anything for myself. So ask early if you want to know what I thought about that REM song, or about the two gentlemen practicing in the park this morning. (A word to the wise: guard your head, particularly if you favor a stance with your weight balanced forward -- and if you're going to use that style of leg block, put some thought into covering your groin, too.)

Mathematical book reviews

In the most recent SIAM News, there is an article on mathematical fiction. I read it and added several more books to my reading list. I was pleased to see that Kasman's list included Clifton Fadiman's Mathematical Magpie, which was one of the books I enjoyed from the Bel Air library when I was in high school.

Actually, most of the SIAM News book reviews make interesting reading. I should add that the books are usually accessible to a non-specialist audience. Quickly browsing through recent issues, I was also reminded of Philip Davis's review of a book of scientist's diaries. And now my reading list is even longer.