All posts by Michael

Fix your unreliable headphone jack with a toothpick

A few years ago, the headphone jack on my iPod Touch became unreliable. The sound was often muffled or distorted, and twisting the plug would sometimes restore it. I contacted Apple about it and after asking some standard troubleshooting questions, they replaced the iPod. A while later the same problem happened with the new iPod – now out of warranty. Luckily I found a fix, and it seems that Apple could have saved themselves some money if they’d known to suggest I try this before replacing my original iPod.

The problem was simply lint from my pockets that gradually accumulated inside the headphone jack.

The solution was simply to reach in with a wooden toothpick and fish out the lint. Since first doing this, I’ve done it several times. (A plastic toothpick should work find too. However, I would NOT poke anything metal, such as an unbent paperclip, into an electronic device, since it might cause a short circuit.)

Open Enrollment: Choosing a Health Insurance Plan?

I’ve added a new Health Insurance Plan Comparison Tool to Psyct.com.

Late autumn is when many people have an “open enrollment” period in which they can choose whether to stick with their current health insurance plan or switch to another one for the following year.

Last year, as my wife and I were comparing options, we found it frustratingly difficult to compare plans on even a simple key question: What would we pay, in total premiums and out of pocket costs, across the full range of healthcare cost possibilities?

I created a visual tool that we found very helpful in thinking through our options. I hope you will find it helpful too.

Check it out: Health Insurance Plan Comparison Tool

Microwave oven wattage conversion sticker

Photo of microwave oven wattage conversion stickerIf your microwave oven isn’t an 1,100 watt one, most instructions for how long to cook foods are wrong for your oven. A simple solution to this is to print a sticker that converts a range of times you most often use.

Here’s a handy spreadsheet to create a sticker like mine:

I printed mine using a Brother P-Touch PT-1230PC label printer, which makes a nice neat shiny plastic label.  However, you can make a decent looking label by printing onto regular paper, cutting to size, then sticking it onto your microwave with scotch tape.

In the example shown here, the conversion is for an 800 watt oven, so for example “1.5” on the left (one and a half minutes) converts to 90 sec x (1100/800) = 124 sec = 2 min 04 sec.

How to use LinkedIn advanced search filters within a specific person’s contacts

It’s not very obvious in LinkedIn how to search within a particular person’s connections, and particularly how to use advanced search features there, but it’s possible. I had to figure out a URL “hack” to do advanced search within all contacts without narrowing by keywords. Here’s how:

  1. Go to the person’s profile.
  2. Click on their number of connections (e.g. “500+”).
  3. In the top right of the “Connections” panel, click the gray magnifier.
  4. Type “a” (or anything that gets you at least one result) into the search field.
  5. Click the “advanced search” link to the right of the number of results, below the “Connections” panel heading.
  6. In your browser URL bar, delete the search keyword (e.g., “a”) between “?keywords=” and “&pivotType”.

Here’s an example of an initial page URL with “a” as the search keyword. (If you want it to actaully work, replace 1234567 with the profile ID of one of your LinkedIn connections):

https://www.linkedin.com/vsearch/p?keywords=a&pivotType=cofc&pid=1234567&trk=prof-connections-search-advanced

If you edit out the “a” after “?keywords=” you can then use the advanced filters (e.g. location, company, industry) within all of the person’s connections:

https://www.linkedin.com/vsearch/p?keywords=&pivotType=cofc&pid=1234567&trk=prof-connections-search-advanced

To search using keywords and advanced search filters, just redo step 4 with the keyword(s) you want.

The Easy No-bag Leaf Pickup Solution

Summary: Use a piece of landscape fabric to lift and dump leaves into a container, then use a tamper to compact them, fitting in far more than you’d thought possible!


Whether your home has curbside compost collection available, or a community leaf dropoff site for composting autumn/fall leaves, there’s a much easier and more environmentally responsible way to clear your lawn of fallen leaves than to put them in plastic bags.

The trick is to efficiently transfer the leaves from your lawn into a large container and compact them. Here’s how:

Tools:

  1. Landscape fabric: An approximately 4ft x 8 ft piece of it. (Example of landscape fabric.)
  2. A tamper tool. Ours is 10″ x 10″ but 8″ x 8″ should work too. (Example of a tamper.)
  3. Either the largest curbside compost bin available to you OR any comparably large and sturdy bin that you can fit in the back of your car or truck to take it to the leaf dropoff site.  (If you don’t need the biggest curbside composting bin the rest of the year, switch to the biggest one for the fall and then switch back to a smaller size after you’re done with raking leaves.)

Technique:

  1. Photo of raking leaves onto landscape fabricRake leaves into small to medium size piles.
  2. Lay the piece of landscape fabric down next to a pile.
  3. Rake leaves onto the middle of the landscape fabric.
  4. Pick up the fabric by the corners, using it as a kind of temporary bag.
  5. Dump the leaves into the container.
  6. Each time the container fills up, put the piece of landscape fabric on the leaves, then use the tamper to compact them. You may be surprised what  large volume of leaves you can compact into the container!
  7. Photo of tamper on landscape fabric on leaves in containerIf you leaves remain on the ground after you can’t fit any more leaves in, just repeat the process after your next curbside compost collection.

Replicant Android: How to get WiFi and Bluetooth working

Replicant is a version of Android that is fully free-as-in-freedom.  It is currently available for several devices, but does not (as of Jan 7, 2014) include software to make WiFi and Bluetooth work. That software is included in the CyanogenMod version of Android, but is not included in the Replicant version because it is not free .  If you would like to use the freest available version of Android, but you need WiFi and/or Bluetooth to work, it is possible to add back in the non-free WiFi and Bluetooth firmware from CyanogenMod.

Here’s an outline of how to do it, based on my experience getting WiFi and Bluetooth working on my Samsung Galaxy Tab 2 7.0. You might need to make adjustments, but this should make it much easier for you than it was for me.

Part I: Get the non-free firmware files

  1. Install CyanogenMod on your device, using instructions on the CyanogenMod site.
  2. In your computer’s web browser, view the Replicant Status page; then follow the link to your device’s dedicated status page (example); then follow the link (in the technical info section) to a page about firmwares for your device  (example).
  3. On your device, use the Android file manager app included in CyanogenMod to search for each of the firmware files listed on the page about firmwares for my device.  Write down the full path to each one. (You may need to set options to allow the file manager to have superuser or root privileges.)
  4. On your computer, install ADB (Android Debug Bridge, part of the Android SDK).
  5. On your device, enable Android debug mode (ADB).  This setting may be at Settings / Applications / Development or somewhere else in your Android settings, depending on the version of CyanogenMod you installed.
  6. Connect your device to your computer via USB, then open a command prompt window.  Use the ADB “adb pull” command (part of the Android SDK) to copy each of the firmware files you need onto your computer.

Part II: Install Replicant on your device

  1. In your computer’s web browser, view the Replicant Status page; then follow the link to your device’s dedicated status page (example); then follow the link to the installation guide for your device (example); follow those instructions.

Part III: Install the firmware files on your device

  1. Download the Google Apps update package for the version of CyanogenMod you installed in Part I.  (The purpose of this step is NOT to install Google Apps – which is non-free software that you probably don’t want on your device – but to use this package as a template for creating an update package for your firmware files.)
  2. Rename it to update-unsigned.zip.
  3. Read these instructions to help you understand what you’re doing.
  4. Using your favorite .zip file utility, remove everything in update-unsigned.zip except the “META-INF/com/google/android/” folder. In that folder, keep updater-script and update.binary.  You can remove update-script since it is only needed for Android versions before 1.6.
  5. Add the firmware files for your device to update-unsigned.zip, putting them in the folder locations shown on the firmware page that you found earlier (example).
  6. Edit updater-script in update-unsigned.zip so it will install and set permissions for the firmware files your device needs. As an example, here’s what worked for my Samsung Galaxy Tab 2 7.0:
    ui_print("***********************************************");
    ui_print("     WiFi and Bluetooth non-free firmware      ");
    ui_print("***********************************************");
    
    show_progress(1.000000, 0);
    
    ui_print("  Mounting /system");
    mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system");
    set_progress(0.100000);
    
    ui_print("  Extracting files to /system");
    package_extract_dir("system", "/system");
    set_progress(0.400000);
    
    ui_print("  Setting permissions...");
    set_perm_recursive(0,0,0755,0755,"/system/vendor/firmware");
    set_perm(0,0,0644,"/system/vendor/firmware/nvram_net.txt");
    set_perm_recursive(0,0,0755,0755,"/system/etc/wifi");
    set_perm(0,0,0644,"/system/etc/wifi/nvram_net.txt");
    set_perm(0,0,0644,"/system/etc/wifi/nvram_mfg.txt");
    set_perm(0,0,0644,"/system/etc/wifi/wpa_supplicant.conf");
    set_perm_recursive(0,0,0755,0644,"/system/etc/bluetooth");
    
    set_progress(0.500000);
    
    ui_print("  Unmounting /system");
    unmount("/system");
    set_progress(0.900000);
    
    ui_print("Update complete.");
    set_progress(1.000000);
  7. Follow these instructions to generate keys and use them to sign your update package.  Name the signed version update.zip.  (These other instructions might also be helpful.)
  8. Copy the signed update.zip in the root folder of your device’s SD card.
  9. Reboot the device into recovery mode and use the clockworkmod option to install update.zip from the SD card.
  10. Reboot your device and try turning on WiFi and Bluetooth.