Franken-bike: Back Rack, Rain-cover support


I needed a place to mount the back of my rain cover on the bike. I also needed a place to place my electric motor controller bag. I solved both problems with left over bike parts. This “rack” is made out of the top half of an unused fork welded together. I cut a 1 and 1/8″ hole in it to go over the bottom of my seat down tube. I also put a few weld nuts I had laying around on the top of it, just in case I need to mount something else securely to it.


Electrifying Franken-Trike

Franken-Trike is big and heavy. And it’s only going to get bigger and heavier once I finish the rain cover. So I added an electric motor to it… Weight with motor and battery is now 80 pounds.

This is a Chinese generic hub motor, controller, LCD display that includes speedometer and odometer, along with a “water bottle” style 36v 10aH Li-Ion battery pack. The motor claims to be 500 watts, and the battery claims to be able to provide 540 watts (15 amps * 36 volts), but on steep hills I have to petal a bit myself to maintain speed. On level ground it can get the bike up to a scary enough 10 mph by itself, and I expect it will fulfill its purpose of making my commute into less of a taxing workout of lugging the monster bike up the big hill…


Fabricating Gingerbread House Cookie Cutters


One of my relatives makes a large number of gingerbread houses for all the kids (and me!) to decorate for the holidays. They have been cutting the house panels out of rolled gingerbread dough using a knife and paper templates. I volunteered to make them some custom cookie cutters, as the three panels (2x roof, 2x wall, 2x end pieces) are geometrically very simple (two rectangles, and a triangle sitting on top of a rectangle.)

I bought some 1/2″ angle aluminum at the the big box (I would have preferred 3/4″…but they didn’t stock it…), along with some aluminum “welding rod” which is really a Continue reading

Using rsync to selectively restore a backup (with/without dotfiles)

If you have backed up your entire home directory, and are restoring it onto a new computer, sometimes you do not want to copy over all of the .dotfiles (hidden files and directories that start with a period) in your home directory. This can be especially useful if you are upgrading the operating system version and many applications are also upgraded, and you want to re-configure them manually.

To restore everything BUT the .dotfiles in the main root directory you can use the following rsync command (the command must be executed from inside the backed up home directory):

rsync -av - --exclude="/.*" ./ /home/NewHomeDir

Note that this WILL copy all .dotfiles in directories under the main home directory.

I do recommend keeping all of your old home directory dotfiles in a separate “dotfile” directory, because invariably you will need something from in them (such as an SSH private key, GPG key, etc…)

You can copy JUST the .dotfiles from the home directory (including recursing into .dotdirectories) with the following command:

rsync -av /path/to/sourcedir/.??* /path/to/dest

The .??* selects only files/directories in the sourcedir that start with a dot. Note that .* alone would select ALL files and directories in the sourcedir.

HOWTO: Full Disk encryption on Ubuntu 12.04

How to set up an entirely encrypted disk using Ubuntu 12.04 (LTS):

Use the Alternative installer (text based) ISO image so that you have access to the LVM and Encrypted Disk options.

Assuming you want to keep a windows partition or some other pre-existing partitions intact, you will have to manually partition things instead of using the guided partitioner, so select “manual”.

Set up two partitions. One will be your /boot partition and should be around 250MB. This is the only data that will be unencrypted on the disk. The other will be your encrypted volume, that will hold an LVM physical volume that will contain all of your other partitions such as your swap partition, / (root) partition and any /home /var etc partitions that you want to set up. You should select “Use as:” “physical volume for encryption” when setting it up.

Then go back up to the top of the menu to the “Configure encrypted volumes” option (You may have to write changes to the partition table before you can do this.) Use the “Create encrypted volumes” option, and “check” / select the large LVM partition you just created. Then select “Finished” and it will prompt you for a pass-phrase.

Now, go back up to the top of the menu to the “Configure the Logical Volume Manager” option. This will prompt you to write changes to disk, and create an encrypted volume (defaults to using ext4).

Now, go back up to the top of the menu to the “Configure the Logical Volume Manager” option. Create a volume group (vg0 is as good of a name as any) on the /dev/mapper encrypted volume you created above.

Create a logical volume (I named mine “swap”) that will hold your swap partition. It should be at least as large as the maximum amount of RAM you ever intend on installing in your computer if you want to use suspend to disk (hibernate).

Depending upon how many other partitions you want (one big root, or /home and /var, etc…) create other partitions using the rest of the space inside of your LVM volume group, and select Finished.

Once you leave the LVM configuration area, you will see all of the LVM logical partitions that you have created. Select each of them and configure their mount point and file system type. (or use as Swap in the case of your swap partition.)

Write everything to disk (which will also format partitions) and you are ready to continue with the rest of your installation!

Thinkpad X31 – PAE cpu options with newer Linux Kernels

The Pentium M CPU that comes on IBM Thinkpad X31 laptops (circa 1994…) claims to not support PAE (Physical Address Extension ). Luckily however it DOES support PAE if your kernel forces it, which you can do by following the instructions here:

They explain: “A number of older Pentium M processors produced around 2003-4 (the Banias family) do not display the PAE flag, and hence a normal installation fails. However, these processors are in fact able to run the latest (and PAE-demanding) kernels if only the installation process is modified a little. The problem is not missing PAE, it’s about the processor not displaying its full capabilities.”

I can just imagine an IBM or Intel engineering thinking…it’ll be 10 years before operating systems require a PAE extension…none of these chips will still be running then…lets call it a night and not bother displaying the PAE flag…

AT&T U-Verse upstream speed bump in June

I have an AT&T U-Verse “Internet Pro” DSL account. In the middle of June (near the 13th) my latency suddenly improved by 10ms.

Then around the 19th of June (2014) my upstream bandwidth jumped from around 1 Mb/s to around 1.4 Mb/s:

AT&T doesn’t advertise or make any promises about their upstream bandwidth, but these are welcome changes (especially the 40% boost in upstream bandwidth). My downstream bandwidth stayed just above the advertised 3 Mb/s rate.

I don’t know if this was due to a piece of equipment near my home getting upgraded, or the result of a policy change to upgrade the “Internet Pro” account, but I’ll take it!
Anybody else see a similar boost? Or have a negative counter example?

Editing cellphone videos in Ubuntu Linux

If you have a slightly older android cell phone, chances are it records videos using the “3gp” format. When editing 3gp videos in OpenShot on Ubuntu, the audio and video can become unsynced. I have found that using the WinFF application you can convert the 3gp video into “DV – Raw DV for NTSC full screen” format, which will allow OpenShot to edit it correctly without having audio sync problems.

As a side note, sometimes when shooting videos with a cell phone, you may forget to rotate the phone to “landscape” orientation and be left with a vertical video that is rotated 90 degrees when shown on a computer. OpenShot can be used to rotate videos as follows:

  1. right click on the clip
  2. click Properties
  3. Choose the Effect tab (far right)
  4. Hit the “+” sign and then scroll down to “R” for Rotate.
  5. In the effects settings:
    • set the Rotate X, Y and Z to 0.00
    • set the Fixed Rotate X variable to 90.0.
  6. Hit apply