Opkg is not limited to using packages from files; it is also capable of using apt-get style repositories, vastly simplifying the job of fetching dependencies and updating packages. I already have a repository set up, and it could be added as such

echo "src/gz inportb-android-froyo http://repo.inportb.com/android/froyo" > /cache/etc/opkg/inportb.conf

After doing that, we could refresh the package list

opkg update

Installing a package then becomes as easy as

opkg install name-of-package

And we could keep all our packages up-to-date using

opkg update; opkg upgrade

It’s also quite simple to set up a repository for distributing packages.

Read on »

Now that we have Opkg for Android, we could use it to install packages from local files or off Web servers. Installing a package is as simple as

opkg install path/to/package.opk

or, if it’s on the Web

opkg install http://host/path/to/package.opk

And to remove the package, we would go

opkg remove name-of-package

But what if we wanted to share our own software with others? In this case, we would create our own packages. An Opkg package is essentially a Debian package with fewer control fields. If you know how to make a Debian package, you should be well on your way. In general, a package is an ar archive containing a control tarball, a data tarball, and a debian-binary file. For example let’s have a look at the opkg-hello package:

Read on »

Well, almost. While one could theoretically install Debian packages on Android phones, it is generally a bad idea to install software designed for one system onto a different system. However, the Debian package manager is excellent for keeping track of software, and it would be nice if it could be used on Android as well. iPhone users already have access to this mechanism in the form of Cydia, so why not put it on Android too?

Read on »

I noticed someone staring really hard at me halfway through anatomy lab, so I asked if she needed help. “No, no, just stay where you are,” she protested.

Classmate: Sometimes when I look at you, I undress you in my mind.
Me: Oh alright, I’ll just sit around and look pretty.
Classmate: And then I’d peel off your skin, scrape off the fat, and reflect all the muscles layer by layer until I see your skeleton.

A couple of nights ago, I chanced upon a particularly interesting image. The character appears to be from the Japanese TV anime series Gakuen Utopia Manabi Straight!, though for some reason she’s in a box labeled #inportb. So… not to be outdone, I kicked it up a notch.

Erm... yeah.

Free email providers of old appended advertisements to messages to subsidize their service. Thanks to Google’s email service, these footer ads had largely disappeared. More recently, however, there has been a resurgence of such useless footer messages corresponding to usage of mobile devices. It used to be just Apple fans letting the world know that their messages were sent using their iPod Touches or iPads or Macbook Wheels. Now we have more elaborate footers on not only emails but forum posts as well, “Sent from my Droid using Tapatalk” or even “Sent from my HTC Touch Pro2 on the Now Network from Sprint.”

Signatures were once used to express something personal about the sender or convey a useful notice. Today, abuse seems to be the norm. It’s just an observation. If you actually like these messages, just go right on sending them…

I wanted to install Windows 7 on my netbook, but I didn’t have access to a Windows environment from which I could run bootsect.exe or install Grub4Dos; so I figured I’d install Grub2 on my USB disk using Ubuntu, have Grub2 chainload Grub4Dos, and finally let Grub4Dos chainload the Windows installer. This worked for me:

  1. Prepare a fresh NTFS partition on the USB disk /dev/sdX and mount it at /mntX1, then copy all files from the Windows installer disc or image into /mntX1
  2. Install Grub2:
    cd /mntX1; sudo grub-install --no-floppy --root-directory=/mntX1 /dev/sdX; sync
  3. Download the latest Grub4Dos, and unpack grub.exe into /mntX1
  4. Create /mntX1/boot/grub/grub.cfg:
    set timeout=0
    set default=0
    menuentry “Install Windows” {
         linux16 /grub.exe --config-file=”root (hd0,0); chainloader (hd0,0)/bootmgr”
    }

I was surprised that such a complicated setup actually worked. Be sure to substitute your own values for /mntX1 and /dev/sdX. In the Grub4Dos config, (hd0,0) refers to the first partition on the boot disk; you’d need to change that if you want to boot the installer from a different partition.

So you want to experiment with the Chameleon boot manager, but you don’t have a Mac or Windows environment handy? Here’s how you could prepare a Chameleon-bootable USB key (or any other kind of disk, for that matter). Be warned that the following procedure would overwrite the target disk’s MBR, effectively wiping all data on said disk. Make sure that you do not target the wrong disk. Naturally, what you do with this information is your responsibility ;)

  1. Install hfsprogs (available in the Ubuntu repositories, if you use Ubuntu).
  2. Get the Chameleon binary package from <http://chameleon.osx86.hu/> and untar it, then navigate to the i386 directory in your terminal.
  3. Type `sudo dd if=boot0 of=/dev/sdX`, where /dev/sdX is the target disk; this is the step that cleans up the disk and loads a fresh MBR containing the stage-0 boot code.
  4. Make a new HFS+ partition (type AF) using fdisk. Let me know if you need help with this.
  5. Format the partition by doing `sudo mkfs.hfsplus /dev/sdX1`.
  6. Type `sudo dd if=boot1h of=/dev/sdX1` to install the stage-1 boot code to the bootsector of the new HFS+ partition.
  7. Now, type `sudo mount /dev/sdX1 /mnt` to mount the partition, where /mnt is your mount point of choice.
  8. Type `sudo cp boot /mnt/` to copy the final piece of Chameleon over.
  9. Unmount the partition using `sudo umount /dev/sdX1`.

Now you should have a shiny new Chameleon boot disk. I hope this helps.

A bunch of people and I were filing into an elevator at the end of the day when I heard one of them ask, “Have you seen True Blood?” “No,” said his companion.

Dude: Well in True Blood there’s this girl who has to cut up a body and get rid of it.
Companion: Okay.
Dude: Last night I dreamed that I had a backpack full of body parts.
Companion: It happens. Last night I dreamed that I killed someone.
Dude: I was all like, “ugh, all these legs and stuff, what do I do with them before someone catches me?”

While we were eying them in silence, somebody said, “Last night I made a baby.” “Why, congratulations!” was the consensus. He clarified, “No, I mean I got someone pregnant and then two hours later I had a baby. I thought, ‘whoa, what an improvement!’”

I hope it was just a case of pre-thesis-defense jitters.

I installed an early development release of Ubuntu Netbook Edition 10.10 on my new Lenovo IdeaPad S10-3t. While the interface is rather smooth, and more usable than Windows, I found the Ubuntu One feature slow and wasteful. I don’t use Ubuntu One because of its lack of cross-platform compatibility options, and it takes up a nice chunk of screen real-estate in Nautilus just to remind me that “Ubuntu One [is] disabled.” It also tends to slow down the file manager.

To remove it, I simply issued

sudo apt-get autoremove ubuntuone* python-ubuntuone* --purge

… and it stopped bothering me after I logged out and logged back in. Launchpad has a page on this as well.