Why Powered USB Is Needed, Part 2: The Future of USB

This article describes a version of USB that is not related to the new USB 3 spec that Intel has released for 2010 products

The Universal Serial Bus, or USB, is right now the most common serial peripheral bus in existence. Allowing all the most common devices to connect to your computer, to each other, through hubs, and now even wireless USB has become the dominant method of low bandwidth communications between devices and their peripherals.

However, USB is not without flaws, in fact, it has tons of issues that other less accepted standards have already solved, and USB has either not solved them or solved them only recently. One of those problems is that, although USB does provide electrical power to peripherals, it is rarely enough to run devices that suck juice like no tomorrow. Powered USB exists to solve this problem.

I will tell you why Powered USB will never be widely accepted, and also why we need it. However, to do so, this article is split into two three parts: the first part discusses the history of USB and previous peripheral ports, and why it it became widely accepted, the second part contains the meat of my argument on why Powered USB is both needed, yet failing to be accepted, and the third part describes a possible future USB 3 specification in detail.

This is part 2. Part 1 is available here, and part 3 is available here.

Read the rest of this entry »

Why Powered USB Is Needed, Part 1: The Short History of USB

This article describes a version of USB that is not related to the new USB 3 spec that Intel has released for 2010 products

The Universal Serial Bus, or USB, is right now the most common serial peripheral bus in existence. Allowing all the most common devices to connect to your computer, to each other, through hubs, and now even wireless USB has become the dominant method of low bandwidth communications between devices and their peripherals.

However, USB is not without flaws, in fact, it has tons of issues that other less accepted standards have already solved, and USB has either not solved them or solved them only recently. One of those problems is that, although USB does provide electrical power to peripherals, it is rarely enough to run devices that suck juice like no tomorrow. Powered USB exists to solve this problem.

I will tell you why Powered USB will never be widely accepted, and also why we need it. However, to do so, this article is split into two three parts: the first part discusses the history of USB and previous peripheral ports, and why it it became widely accepted, the second part contains the meat of my argument on why Powered USB is both needed, yet failing to be accepted, and the third part describes a possible future USB 3 specification in detail.

This is part 1. Part 2 is available here, and part 3 is available here.

Read the rest of this entry »

How to make a UML image on Debian

Out there, on the Internet, there is a lot of conflicting information on how to properly build a UML image on Debian. These instructions are for Debian Sid, but should work on Etch and Sarge as well. The instructions are partially based on the ones available here.

First, you want to apt-get install user-mode-linux uml-utilities bridge-utils debootstrap realpath. Then, become root either by su or sudo bash. Make an empty directory (such as ~/uml) and cd into it. Now, follow this psudeo script:


# setup environment, feel free to change DEBIAN_MIRROR to your closest mirrror, IP to an IP not already being used on your network, and GATEWAY to your LAN's gateway (not your host machine)
export TMPDIR=`pwd`"/tmp"
export IMAGE="root_fs"
export DEBIAN_MIRROR="ftp://ftp.debian.org/debian/"
export HOSTNAME="NameThisMachine"
export IP="a.ip.to.use"
export GATEWAY="ip.to.talk.to"
mkdir $TMPDIR

# produce a 1GB image, fudge with seek to change size
dd if=/dev/zero of=$IMAGE bs=1 count=1 seek=1G

# make partition, and mount it; Debian Sid kernels can only mount ext2, ext3, cramfs, iso9660, and reiserfs, ext3 is the only one worth using
mkfs.ext3 $IMAGE
mount -o loop $IMAGE $TMPDIR

# download and install Debian into your image: change arch to the arch you're using, and change sid to sid, etch, or sarge; this step takes awhile
debootstrap --arch i386 sid $TMPDIR $DEBIAN_MIRROR

# install a correct fstab, proc and sys are automatically loaded on boot
echo "/dev/ubd0 / ext3 defaults 0 0" > $TMPDIR/etc/fstab
echo $HOSTNAME > $TMPDIR/etc/hostname

# tweak inittab
cp $TMPDIR/etc/inittab $TMPDIR/etc/inittab.save
grep -v "getty" $TMPDIR/etc/inittab.save > $TMPDIR/etc/inittab
echo "# We launch just one console for UML:" >> $TMPDIR/etc/inittab
echo "c0:1235:respawn:/sbin/getty 38400 tty0 linux" >> $TMPDIR/etc/inittab
echo "# UML modification: use tty0 or vc/0" >> $TMPDIR/etc/securetty
echo "tty0" >> $TMPDIR/etc/securetty
echo "vc/0" >> $TMPDIR/etc/securetty

# add networking stuff
echo "auto lo" >> $TMPDIR/etc/network/interfaces
echo "iface lo inet loopback" >> $TMPDIR/etc/network/interfaces
echo "" >> $TMPDIR/etc/network/interfaces
echo "auto eth0" >> $TMPDIR/etc/network/interfaces
echo "iface eth0 inet static" >> $TMPDIR/etc/network/interfaces
echo "address $IP" >> $TMPDIR/etc/network/interfaces
echo "netmask 255.255.255.0" >> $TMPDIR/etc/network/interfaces
echo "gateway $GATEWAY" >> $TMPDIR/etc/network/interfaces

# clean up
umount $TMPDIR
rmdir $TMPDIR

You now have an image full of Debian named root_fs. To run, simply execute linux mem=64M ubd0s=root_fs. If you need more memory, increase the mem paramater. By default, there is no password for root, so just use root as your login and press enter when it asks for password.

A little aside on networking:the auto tuntap method (eth0=tuntap,,,the.ip.to.use, which basically does ARP proxying on the host machine) does not work properly as it only allows host->UML traffic. The only way I’ve been able to get UML networking to work properly is to build a full bridge setup. The following commands in /etc/network/interfaces/ sets up the bridge. You probably have something like:

auto eth0
iface eth0 inet dhcp

Comment that out with #s, and change it to:

auto br0
iface br0 inet dhcp
pre-up tunctl -u user-to-run-uml -t tap0
pre-up ifconfig eth0 0.0.0.0 promisc up
pre-up ifconfig tap0 0.0.0.0 promisc up
pre-up brctl addbr br0
pre-up brctl stp br0 off
pre-up brctl setfd br0 1
pre-up brctl sethello br0 1
pre-up brctl addif br0 eth0
pre-up brctl addif br0 tap0
post-down tunctl -d tap0

allow-hotplug eth0
iface eth0 inet manual
pre-up ifconfig eth0 0.0.0.0 promisc up
pre-up brctl addif br0 eth0
pre-down brctl delif br0 eth0
pre-down ifconfig eth0 down

Add the additional parameter to linux‘s command line: eth0=tuntap,tap0. That will make UML connect to tap0, and use the IP set above when you built the image. If you use a firewall, you need to change the interface to firewall from eth0 to br0, and to allow br0->br0 traffic.

Why Americans Can’t Make Anime (Or Can They?)

This rant contains spoilers! This rant may cause cancer in rats as known by the State of California.

Now, before anyone asks, I’m not talking about: “Blah blah freaking blah, Americans can’t make anime because they’re not Japanese!” Nope, I’m talking about the fact everything we’re obsessed with is not the focus of anime. For example:

  • Friendly robotic sidekicks (such as the Tachikoma from GITS)
  • Artifical Intelligence that can both sing and pilot experimental aircraft (such as Sharon from Macross Plus)
  • Breasts (such as… well, almost any anime out there)
  • Unrealistically large weapons that can destroy the planet (Gundam 0083, Eureka Seven, SDF Macross, etc)
  • Messed up concepts from religion taken out of context (Evangelion, and to a lesser degree Eureka Seven)
  • ‘Real’ giant robots (Gundam, Macross, Evangelion, Eureka Seven)
  • Urban combat (Gundam, Macross, Evangelion, Eureka Seven)
  • Shit blowing up (again, almost any anime out there)

Almost every single one of those example animes listed next to each obsessed over thing, each one of them have yet another concept that runs along side that, that Americans totally miss out on:

  • The Tachikoma are weapons of war, and they kill people
  • Sharon fell in love with the main character of Macross Plus and tried to kill everyone over it
  • Breasts are also useful for flotation devices in emergencies!
  • Almost everyone dies because of their use
  • The religion in Evangelion was there to hide the physiological babble behind
  • Those ‘real’ giant robots are also weapons of war, and kill people
  • During urban combat, innocent people die
  • More often than not, someone has died during shit blowing up

There are few cartoons (since we Americans can’t call ours anime) that actually touch on these subjects. The ones that do are quickly shut away as some ‘evil, Satan worshiping creation to corrupt children’, and get a big fat TV-MA or Rated R sticker stuck on it.

I mean, some people say America is desensitized to violence; no, I think America is too afraid to face it and to deal with it. What would happen if we showed children that their favorite cartoon character died painfully because of war or some other battle? They’d never happily march off to war. They’d never pick up a gun and shoot someone over a trivial matter. They’d think twice before ending someone’s life.

In essence, America can’t make anime not because we’re not Japanese, but because we refuse to tell good stories. The one thing missing from most Amercian cartoons is plot and character development; they miss out the most important part of writing a story: you cannot keep your characters safe, bad things always have to happen to them.

How To Choose CD/DVD Archival Media

(Last updated January 11th 2013)

Translations: Serbo-Croatian by Jovana Milutinovich

Ahh, I’ve been planning to write this one for awhile: an entire article on archival quality media. As I do professional software development as well as professional photography (what a weird combination), I need archival quality CD and DVD media to store my data on.

However, one of the hardest things to is actually find good media, or even understand why it is good media. This article focuses on the history of Compact Discs, writable CD/DVD media, and why DVD+R is superior to DVD-R. If you want to just know what media is worth buying, skip to the summary at the bottom.

Read the rest of this entry »