Saturday, July 13, 2013

Time-money convertiblity


While reading Robin Hanson's recent post on why bets aren't used more often to back up people's beliefs, I was struck by one of his followup comments, the gist of which is that people shouldn't waste their time arguing because they could be using that time to earn more money. Leaving aside the argument that dialog, discourse, and argument are at the very least methods of refining ideas and beliefs and therefor have value, this argument about time and money has always struck me as a bad model.

There is a large class of people for whom time cannot generally be converted to money. For some people like me, their terms of employment forbid outside work. These salaried people are paid not by the hour but a fixed sum to do their work no matter how long it takes. For me that generally means that I'm working more than 40 hours a week as well. So not only do I not have the time and energy for more work, but I can't do it anyway.

Many (most?) hourly employees also cannot work more hours to get more pay either. Full-time workers are generally forbidden overtime without explicit approval. They are required to get their work done in the allotted time and either do not work overtime or are (illegally) forbidden to report it. Either way, without a second job, they cannot supplement their incomes by working an extra hour.

Given that, we're left with a group of people that are able to choose between a second job and an hour of fighting over ideas. The cost of finding a second job for an additional hour of pay seems to be much higher than foregoing that pay in order to have an argument. Perhaps Mechanical Turk has a lower barrier to getting started, but the pay doesn't really seem worth it for many workers.

I see this argument pretty frequently, but I don't really think it holds water. For most workers the value of an additional hour of work falls off a cliff around 40 hours per week and for most job types so does the worker's productivity. Modeling pay as a linear function of hours work just doesn't cut it.

Also, spend your out of work time how you want.

Saturday, June 15, 2013

Leipzig, day 1

My hotel is directly across from the Universitat Leipzig. Down the road  a a short walk across Augustus Platz and through a shopping disict is the Auerbachs Keller where Goethe staged his famous debate. I'm sitting there now. I was expecting more beer hall than big dining room, but I think I'll be OK. They have a few beers on tap, and I'm trying what I think is going to be wild boar sausage with sides. Specifically: Wildschweinbraten MIT Pilzfrikassee, Rotkohl, rohen Kartoffelklossen, und Kroketten. I'm having the Ur-Krostitzer dark to drink. 

The travel getting here was a little convoluted. Flights into Leipzig were completely full, Frankfurt, too, so some of my colleagues and I flew into Dusseldorf and took some trains. The fast train from Dusseldorf to Hanover was excellent. We changed inHanover to a regular intercity train headed for Leipzing, but learned that we'd have to change in Magdeberg to a local train to go around the flooding further down the line. The Hanover train was old and hot, but the local was brand new and appropriately cooled. 

The beer, having arrived, is smooth and dark brown with a fine foam and thickish mouthfeel. Vey malty and a little sour. Very tasty. 

Of course, braten means braised, and so I have a braised saddle of wild boar with mushrooms which is fantastic. The red cabbage and beet sauerkraut is a great accompaniment, the croquettes are tasty, and there's a spongy sphere of I know not what (it's dumpling). 


Tuesday, May 28, 2013

New House Notes

We're in the new house now. There's a few things in the old house still to be gotten rid of and the repairs to do before we can sell, but we're out!

Many thanks to R.D. (son of a Master Electrician) for help rewiring the dryer from 3-prong to 4-prong. The electrical work was straightforward, but he was watching and giving good, sound advice the whole time, especially about flipping the outlet over when the cord wouldn't reach. Also, moving a stacked washer and dryer is much easier (read possible) with two people.

I've got to learn a new way to get to work. We only moved a dozen blocks, but finding an optimal way in is going to be tricky. If I hit the northbound train at Lamar and Airport, I'm guaranteed to hit it again at 183 just before Burnet. Going over to Burnet first would save that hassle, but I think it's far enough out of the way that going up Lamar is a better choice. I'll have to do some more experimentation and research. Google definitely thinks I should take Burnet, but what do they know?

Speaking of efficiency, and first world problems, I've got to learn to move around my new kitchen efficiently. I don't always know where everything is, and things are much further apart now. It's going to require some route planning to efficiently use.

Sunday, April 28, 2013

Today I drew.

To follow up on last Thursday's post, today I drew an electronic version of the picture I'd been drawing on whiteboards around the office at the end of the week. I suspect this will appear in a talk about MICs some time soon.




Thursday, April 25, 2013

Today I Learned.

And, I actually prefer it that way.

I relearned the lesson of Amdahl's Law, and I learned a new word, "bathetic". No, I didn't spell that wrong. Bathetic, with a 'B'. Which, in a similar but not exactly the same vein as 'pathetic', draws on the Greek word 'bathos' meaning depth. But what it really means is an abrupt, absurd fall into mediocrity or chaos.

The basic lesson of Amdahl's Law is that parallel computing is hard. The slightly more than basic lesson is that adding additional simultaneous processing to a problem only helps in so far as there is simultaneity to be had.  Which is to say that if half of your work is completely serial and half is completely parallelizable, you can only expect to halve your run time with all the additional processors in the universe.

Today's lesson from Amdahl takes a bit of a jag. If the gods give you a magic computer that does the parallel portion of your calculation infinitely fast, effectively reducing its run time to zero, but it runs the serial portions of your code slower, then you should think carefully before making promises about what that gift can do. Even if this computer instantly returns the result of the parallel part, if it also doubles the run time of the serial part of the code, then the gift is a wash if half the work is serial and half the work is parallel. Fortunately, in the real world, the best scientists build codes where more than 99.999% of the work is parallelizable.

Unfortunately, this is, in some ways, the problem with GPUs, Xeon Phis, FPGAs, and other computing accelerators. They do some things extremely well, and while they don't reduce the parallel run times to zero, they may cut them by significant factors. But to do this, they have to sacrifice performance on serial execution. If you don't watch out for this, you can get killed by it, bathetically.



Wednesday, April 24, 2013



Great video from NASA's SDO satellite. (HT: /.)

Tuesday, April 23, 2013

Sometimes I'm heartened to see a few of the people I read come together for good. Lawrence Lessig and Orin Kerr wrote a great piece for the The Atlantic yesterday that's worth highlighting.

They had a pretty strong disagreement over whether Aaron Swartz violated the CFAA or not, so seeing a former federal prosecutor and an activist for social change come together on this issue made me smile.

Monday, April 22, 2013

Self-Scooping

Based on this post over at the Computational Science StackExchange, I had left myself a note here to write a post on how easy it is to make divergence-free fields for use as manufactured solutions for testing incompressible Navier-Stokes solvers, but since the original poster went ahead and asked the question directly, I answered it.

Some background might be in order. The incompressible Navier-Stokes equations are often written:
$$
\begin{align}
\frac{\partial\boldsymbol{u}}{\partial t} + \boldsymbol{u}\cdot\nabla\boldsymbol{u} &= -\frac{1}{\rho}\nabla p + \nu\nabla^2\boldsymbol{u} + \boldsymbol{f} \\
\nabla \cdot \boldsymbol{u} &= 0
\end{align}
$$
These are the classical equations of fluid mechanics for fluids that don't compress very much (like water). This condition is represented by the second equation above and is the force behind making them somewhat tricky to solve (analytically and numerically). The other thing that makes these equations tricky to solve, is the non-linear term in the first equation: \( \boldsymbol{u}\cdot\nabla\boldsymbol{u} \).

When we computer jocks want test the validity of our programs for approximating these equations, we would really like to have some known correct answers to compare our numerical solutions to. Unfortunately, the non-linearity and incompressibility condition conspire to make it hard to come up with a good set of exact solutions to compare to. It is, in fact, an open problem with a substantial prize behind it to determine whether such solutions even exist, or if they do, under what conditions.

The Method of Manufactured Solutions (PDF) is a technique for generating exact solutions to compare your numerical method results to. With MMS, you pick (virtually) any function you like \(\boldsymbol{u}\), substitute it into the governing equations, and solve for the \(\boldsymbol{f}\) that makes that \(\boldsymbol{u}\) a solution. Since \(\boldsymbol{f}\) was a tunable knob in your code that allowed you to solve different kinds of problems, it's a place for making adjustments for testing it, too.

This method works great when every equation you want to solve has a convenient forcing term like \(\boldsymbol{f}\), but as we can see above, not every equation does. Sometimes you get lucky though, and you can create a solution that satisfies the homogenous equation exactly and can be plugged into the other equation to find the right forcing term.

In this case, the choice is to either pick your favorite (sufficiently differentiable) vector field, and take its curl, or pick your two favorite scalar functions and take the cross product of their gradients. That is, either take
$$
\boldsymbol{u} = \nabla \times \boldsymbol{A}
$$
or$$
\boldsymbol{u} = \nabla g \times \nabla h
$$
and crank it all through.

I highly recommend a symbolic manipulation program for this, though. There's lots of room for mistakes.

Sunday, April 21, 2013



This may be the best talk with the worst ending I've ever seen. After more than thirty-one minutes of inspiring talk on copyright problems (yeah, I know, doesn't really sound inspiring), it ends not with a call to action but a resignation that assumes that kids raised doing remixes will have to change the world. Lame.

If you came of age during the Summer of Love, you'd be in your mid-sixties now. These people have been legislators, judges, and otherwise in power for decades with virtually no changes to our drug laws. It seems to me that the force behind the recent changes in some states aren't the Boomers and Hippies who lived through that decadent time, but the Gen Xers who witnessed the hypocrisy of their failure to legalize their past.

I hope that legalizing remix doesn't follow the same path, with this generation moving from hip, rebellious remixers to stodgy, paranoid primary content producers who are embarrassed by their past and determined to prevent others from building on their present. It would be better for our current crop of legislators to see the change that must happen now rather that waiting for two generations of societal evolution to catch up.

HT: (BoingBoing)