Saturday, November 22, 2008

Bash Tab Completion

For all you Linux users out there, I just discovered something wonderfully useful at the Bash command line: tab completion suggestions. See this pic to get a better idea what I'm talking about:


For the above example, I typed "to", then hit the "tab" key. As expected, my computer beeped, indicating "hey, dummy there are a bunch of matches, how am I supposed to figure out which one you want?". To get a list of the possible matches, hit the "tab" key again. Then it prints out all of the available choices. Why hadn't I discovered this sooner?

Oh, and if you think my custom cursor is nifty, here's the line of code to put in your ~/.bashrc file:

PS1='\n================================\n\[\033[01;32m\]\h\[\033[00m\]:\n \[\033[01;34m\]\w\[\033[00m\]\n > '

I like having a nice separation between command outputs. It also gives me a double-clickable path (for quick copying), I never have to type "pwd" to remind myself where I am, and can quickly see which machine I'm logged into. Uber handy.

Tuesday, November 11, 2008

Election 2008 Probability Analysis

Ok, the results are in. I finally gave up on Missouri, and called it for McCain, since the returns are leaning in that direction. As an interesting little side project, I analyzed the prediction accuracy of www.fivethirtyeight.com vs www.intrade.com by computing the probability of the observed outcome based on the predictions by the two websites. Intrade predicted a 0.19% probability of this election outcome, while 538 predicted a 2.4% probability of this outcome. Note that by "this outcome" I am referring to the state-by-state results. There are a very large number of possible outcomes, and some of them have infinitesimally small probabilities. For instance, all states voting for either candidate would have an extremely low probability. The small probability from Intrade is due to the cascaded probabilities of many estimates which were significantly smaller than 100% (lots of ~90% predictions). Things would look very different if a single one of 538's 100% predictions had gone the other way. The cascaded probabilities would then be 0%, while Intrade's would still be much greater than 0% (Intrade predicted no 0% or 100% outcomes, while 538 predicted many).

Another way to look at the prediction accuracy is simply as a function of the number of correct state outcome predictions. Intrade only missed one (Indiana), while 538 missed two (Indiana and Missouri).

I have not analyzed this from an electoral-vote-weighted perspective. I took the perspective that each state behaves like a weighted coin toss, and each website has its own method for estimating the odds of the result. I simply wanted to understand the accuracy of that prediction, not the accuracy of the composite prediction (the overall winner). The sites themselves gave their predictions for the winner: 538 predicted a 98% probability of an Obama win, while Intrade predicted a 90% probability. If I were to construct a Monte Carlo simulation based on the state-by-state predictions, I'd have very similar results. However, this wouldn't be sufficient to assess the accuracy of the predictions. We'd need many more trials.

In conclusion, although Intrade more accurately predicted the results, it appears that 538 is a more accurate estimator of outcome probabilities.

Tuesday, October 7, 2008

When Bad Things Happen to Good Oranges

Check it out, I dun blowed me up some oranges!

How did I do it? I waited till dusk, wrapped a firecracker in saran wrap, then poked a hole in an orange and inserted the firecracker so just the fuse was sticking out. Then, with my camera on a tripod (bulb mode, F8.0, ISO 100), I lit the fuse, opened the shutter, waited for the bang, then closed the shutter. TADA!... a cool photo, using only the light from the firecracker to expose the photograph. I did it three times, and each came out looking cool, but different:



Saturday, September 27, 2008

The Second Great Depression

To give you an idea of what to look for to know if we have experienced anything similar to the first Great Depression:

August 30, 1929 : Dow @ 382
July 8, 1932 : Dow @ 42

So after ~3 years, the Dow was at ~11% of its peak value.

What would this look like in modern times? The Dow peaked at 14093 on October 12th, 2007. If we experience a similar plummet, then sometime in September of 2010, the Dow would bottom out around 1550.

This gives you an idea of just how bad a "real" depression is. That is an average decline of 6.1% per month. The worst we've seen, since our recent peak of 14093, is about a 3% decline per month, over a 9 month period. Yes, this is quite bad, but it is (so far) only half as bad as the slide experienced during the Great Depression.

It could be worse. A lot worse.

Sunday, September 21, 2008

Clusters are Beautiful

I have a computer cluster living in my living room. Ain't she puurrrrdee?

Saturday, September 13, 2008

MatLab vs Octave Benchmark

I just thought I'd share some informal benchmarking results with the world. This is with Octave 3.0.0 and MatLab 2008a. I'm running on Ubuntu Linux, 8.04, 64-bit, with an AMD Athlon X2, 2.2 GHz processor, and 2 GB of RAM. I wrote a little modulator-demodulator thingy, which is not very fancy at all. Its just a couple of for-loops, some non-vectorized Euclidean-distance calculations, and some comparisons.

Octave : 7.5 Seconds
MatLab : 1.5 Seconds

That's a 5x speed advantage for MatLab. I like open-source stuff, and Octave is lighter-weight, so I'll still use it, but MatLab sure shows off the fact that it has been low-level optimized. When I need a 5x speed boost, I'll certainly power up MatLab, and when I need way more than that, well, then its time to go to C++, and move things over to my cluster :)

Friday, September 12, 2008

Egg Trick

Hate peeling hard-boiled eggs? Try this!

I tried it, and it (pretty much) worked. I think the best part of the advice is to add baking soda to the water before you boil the eggs. Two tablespoons per quart is probably about right. This reduces adhesion, and makes them really easy to peel.