Jay’s list of the Best Android apps

I’ve had my Motorola Backflip for a month and have settled on a set of applications to keep on my phone. All of these applications work with Android version 1.5. My Backflip has a Camera / GPS / Compass and Accelerometers. Where an application makes use any of these hardware components I’ve mentioned it in the description. If you think I’m missing a great one, let me know!
Continue reading

Hidden Roomba Diagnostic checks – Stuck Bumper Sensor

Roomba with stuck bumper sensor
The above video shows a roomba with a stuck front bumper sensor. As you can see, the robot keeps backing up and trying to turn away from
the phantom obstacle it thinks is in front of it. This particular sensor was triggering because lint had gotten into the optical beam path and was blocking light to the photodiode detector even when the bumper was not being hit. I was able to repair it by removing the bumper cover (unscrewing 4 screws) and vacuuming out the hole where the plastic pole from the bumper goes between the IR diode and photo-transistor.
Continue reading

Running Ventrilo under Wine in Ubuntu Linux

Wine will install and run the ventrilo VOIP client very well. To get this working, follow these steps:

apt-get install wine wine-dev msttcorefonts

download ventrilo-3.0.5-Windows-i386.exe

run “wincfg” to prepare things

run “wine ventrilo-3.0.5-Windows-i386.exe”
(go through the install, using all the defaults)

Now, everything works with one quirk.
Push to talk works only when the ventrilo window “has focus”
This is somewhat understandable, but annoying, in that you have
to focus the ventrilo window before you can talk.
The other option is to use voice-detection, but that takes up a bit more cpu-time, and you may accidentally broadcast something you don’t want to.

A program that listens for keypreses and directs them to the ventrilo window fixes this problem:

http://np1.pp.fi/ventriloctrl/
http://np1.pp.fi/ventriloctrl/ventriloctrl-0.3.tar.gz

To compile it, you’ll need xorg headers:
sudo apt-get install xorg-dev

Aiptek HyperPen T-6000U tablet with Ubuntu 9.04

Getting the Aiptek T-6000U tablet working with Ubuntu 9.04 was relatively easy, following the directions here.

Summary:
Install the xserver-xorg-input-aiptek package.
Add a file called 10-aiptek.fdi to the /etc/hal/fdi/policy directory containing:

<?xml version="1.0" encoding="UTF-8"?> 
<deviceinfo version="0.2">
  <device>
    <match key="info.product" contains="Aiptek">

      <merge key="input.x11_driver" type="string">aiptek</merge>
      <merge key="input.x11_options.SendCoreEvents" type="string">true </merge>
      <merge key="input.x11_options.USB" type="string">On</merge>
      <merge key="input.x11_options.Type" type="string">stylus</merge>

      <merge key="input.x11_options.Mode" type="string">absolute</merge>
    </match>
  </device>
</deviceinfo>

Moving NTFS paritions using Ubuntu (Vista, XP)

This guide gives a good step by step procedure for moving a windows partition from one drive to another:
http://ubuntuforums.org/showthread.php?p=7742172

If you get an “autochk.exe not found” error message just after windows XP boots, it probably means that you have the partition type set incorrectly. Using fdisk under linux just use the “T” option to change the partition type to NTFS (hex 0x07 or number 7 in fdisk).

Setting Netflix / Silverlight bandwidth usage

The netflix watch on demand video player uses Microsoft Silverlight. Silverlight has an “adaptive playback” mode which attempts to choose one of multiple bandwidths for your video (and switch on the fly if your internet connection has more ore less bandwidth over time).

To see what it is currently using, press the Control, Alt, Shift and D keys all at the same time.
CTRL-SHIFT-ALT-D gives diagnostic information on-screen.

If you would like to force netflix to use a specific bandwidth (typical sizes are 500, 1000, and 1500 KBps, or 50, 100, 150 kilo-bytes a second), press the Alt, Control, Shift and S key at the same time.

CTRL-SHIFT-ALT-S allows you to manually force silverlight/netflix player to use a specific bandwidth for playback.

This can be useful if you want the absolute best quality (and are willing to pause the movie every so often to let it buffer), or if you are willing to use a lower quality than your full network connection supports so that some extra bandwidth is available for other users or applications.

NOTE: I was unable to get the key-combos above to work in full-screen mode. I had to have the netflix player in a browser window for them to work. In addition, sometimes I had to click within the siliverlight window (for example, by pressing the play/pause button) before the key combination would work.

Global search and replace in multiple files

Searching and replacing a bit of text in a lot of files is a very common problem. Lots of tools exist to get it done. On unix systems, awk is one favorite, and I found this webpage with a simple search and replace example.
Unfortunately, I wanted to search for \prob and replace it with %\prob. The difficulty is that the backslash character is “special”, so you have to escape it with other backslashes.

Here is my updated example command to run in each directory:

awk ‘{gsub(/\\prob/,”%\\prob”, $0); print > FILENAME}’ *.tex

It does a global substitution for the regex \\prob with string %\prob in the
whole input file ($0) for every file that ends in .tex

Passat Clutch Problem – Bleeding the Clutch on a Manual

Friday morning I got into the family car (1998 VW Passat with manual transmission) and, depressing the clutch, started the engine. The car rocked backwards (I normally leave the gearshift in reverse when parked, plus the parking break was on), the engine died, and the clutch petal stayed on the floor (not good!). The clutch petal had lost all resistance, so I couldn’t shift the car. Looking under the hood, I found that a hose leading from the brake fluid reservoir had popped off and sprayed brake fluid around. I connected it back to the reservoir, and started the engine in Neutral, but the clutch didn’t magically start working. (Sigh…I like easy solutions.) Twenty Dollar bike to the rescue!

Continue reading

Compressive Sampling: Beating the Nyquist Limit for certain signals

Compressive Sampling is a new field of sensing theory that sidesteps the traditional Nyquist sampling limit. The Nyquist limit is an information theory result that says to perfectly capture a signal which is bandwidth limited at a certain frequency, X, you must take 2 times X samples per second.  So for example, if you want to perfectly detect a 20Hz sine wave, you must take 40 samples a second. To perfectly represent audio that humans can hear (typically understood to be sounds in the 20-20,000Hz range) we must use 40,000 samples per second (40kHz). CD audio uses 44.1kHz, and professional audio systems typically sample at 48kHz a second.  [Note that the number of samples per second has nothing to do with the quantization, or accuracy of the samples, so audio that is sampled at 20 bits per sample has more information (and less noise) than audio sampled at 16 bits per sample.] Continue reading