Archive for the ‘fun’ Category

Linear Addition from the Log Domain

February 24, 2013

Some speech recognizers and machine learning algorithms need to quickly calculate the quantity:


when given only \log(x) and \log(y). The straightforward algorithm first uses the exponential function to convert the log values to the linear domain representation x and y, then performs the sum, and finally uses the log function to convert back to the log domain:

\log(x+y) = \log(\exp(\log(x)) + \exp(\log(y)))

These conversions between log and linear domains are slow and problems arise when x is too large or small for a machine’s floating point representation.

Luckily, there is a clever approximation method that allows quick, accurate calculation with a relatively small precomputed table.


An Epoch Poem

September 21, 2011

A folk explanation of genetic algorithms for my evolutionary computing class, to be recited with creative pronunciation:

A farmer was planting to reap,
Wished to profit the max on the cheap.
Trade-off soil, spacing, and blight,
Planting time, market value, and light,
But: too-complex his goals were to meet.


PowerPoint Projector Attack?

June 23, 2011

Our projector broke during a presentation today, apparently a problem with the bulb. I started to wonder, “why today, why this presentation?”

H0: Random hardware failure.

H1: It so happens that the presentation used all black slides with white text. Perhaps the LCD blocking the projector light got too hot, which got the bulb too hot, which destroyed our super-cheap projector bulb?

That’s my clever hypothesis; something to test if you have to give a presentation that you haven’t had time to finish :)

If you have inherently sequential problems I feel bad for you son…

March 24, 2011

…I’m running 99 jobs and not a glitch in one.  Thanks to HPCC for letting me run many different speech recognition configurations on many different audio files in parallel :)

Situated Language Processing

February 24, 2011

One humanoid robot in a factory is about to be crushed by a falling box; the other is yelling, "Look Out!" (more…)

Soup of the Day Web Caching

December 8, 2010

Soup of the Day (SOTD) is an imaginary web caching strategy whose defining characteristic is to manipulate users  into requesting content from the cache in preference to content not in the cache.


An anagram of “Speech Recognition” is “Incoherence Spigot”

November 27, 2010

That is all.

What is the best sequence to tighten the lug nuts on a wheel with N nuts?

November 10, 2010

Nuts are numbered [0,N) as you travel around the circle, and we’d like to output the list of nut indexes to tighten, in order. For N=4, we’d tighten [0,2,1,4], although there are many equivalent solutions due to the inherent symmetry. For N=5, we have [0,2,4,1,3].

This problem actually came up when I was trying to pick a deterministic “maximally distant sequence” of colors for a visualization that I was doing. There are answers good enough (or better) for my visualization problem, but I feel like the question is an interesting one. One thing that probably needs doing is defining the objective function (i.e., “maximally distant”) in a more formal way.

This post is intended to shame my future self into looking at it again, one day!

Personal Satellite Assistant

March 17, 2010

One of the coolest robot projects I’ve seen: the Personal Satellite Assistant (PSA).  It’s a red plastic sphere about the size of a bowling ball that is planned to fly around the space station on jets of air, acting as a speech-driven measurement and reference device.  They say it was inspired by Star Wars, and I couldn’t help but think of Luke’s training remote and the intelligent Exocomp robots from Star Trek.

The NASA website isn’t that great, but there is a 5 minute educational video and another 4 minute educational video that describe the PSA.

Yahoo! Pipes – Helping Me Travel on the Cheap

October 13, 2009

Yahoo Pipes is something I came across when trying to find a RSS aggregator/keyword spotter/emailer.  It is a really neat web-based graphical scripting tool for manipulating web-accessible data.  It’s got a  regex component to manipulate datasources!

It didn’t take me long to construct a pipe that pulls multiple airline ticket RSS feeds from the STA website containing “Chicago” or “Detroit” and then sorts the aggregated feeds by ascending price.  The result is output to an RSS feed, whose updates can be sent to an email address by Yahoo Alerts.

Yahoo has been aggressively climbing back into the ranks of “cool” for the past few years.  I’ve been impressed with the amount they contribute to the web and open source community and how they seem to be more proactive than Google about sharing their research.  Thanks again, Yahoo!