Anatiferous blog | Move every zig.

Meta-Site

Welcome to Anatiferous: Using barnacles to make geese since 1689!

Howdy! This is my (William Reading's) webpage. At the moment, I only have this blog script and my gallery up, but I hope to get more stuff on this page at some point, or so I thought when I created this site years ago. Updates and shiny new copy to eventually go here. If you'd like to contact me to point out that I've done something to break XHTML/CSS standards or heaven forbid--look at my Vita--drop me a line at my e-mail address bill +spam @ [ELEPHANT] aggienerds.org. Simply remove "+spam", the spaces and the pachyderm along with its brackets and that address will reach me. I'm also available on Jabber/GChat/AIM/MSN with the same address above.

2/5/2010

Get an AIM Pro Account

Filed under: — bill @ 1:02 pm

AIM Pro lets you get user@domain.com AIM addresses. Since I hate installing the webex client just to register one, the link is here: AIM Pro get screenname

1/31/2010

Growl GNTP Plugin for Windows Media Player

Filed under: — bill @ 2:27 am

I’ve put together a little plugin for Growl GNTP for Windows Media Player. The installer is here: http://aitne.com/downloads/WMP-GNTP-Installer-1.0.3.msi.

To set it up, simply download the .msi and run it. If you’re on a particularly old version of windows, you might need to install the Windows Installer redistributable.

If you’ve tried some of the older builds, you might notice that this build correctly installs on Windows XP, eliminates the double notification when you first start playback, and also adds an icon. Features that are planned include the ability to notify remotely, preferences to configure the plugin from within windows media player, and the display of album art in the notification.

1/19/2010

Getting IOS ezvpn to work with TAMU VPN

Filed under: — bill @ 12:46 am

I decided that it would be nice if my local network was automagically VPN’d to campus, so I worked out a configuration for the TAMU VPN server using IOS ezvpn (This is on a Cisco 1721 with hardware acceleration module, which has the ADSL WIC). The relevant bits looks something like this on my router:

crypto ipsec client ezvpn tamuvpn
connect auto
group tamu key tamuvpn
local-address BVI1
mode client
peer 165.91.140.250
virtual-interface 1
username your_netid password your_netid_password
xauth userid mode local
!
interface Virtual-Template1 type tunnel
no ip address
ip virtual-reassembly
!
interface BVI1
–snip–
crypto ipsec client ezvpn tamuvpn
!
interface FastEthernet0
–snip–
crypto ipsec client ezvpn tamuvpn inside

For the paranoid, the tunnel may be configured to only come up when you type in your username and password and save nothing. BVI1 is the bridge interface corresponding with the DSL WIC. If you’re doing this purely with ethernet, substitute BVI1 for your nat outside or the like, e.g. FastEthernet1.

10/13/2009

Playing Video on the XBox 360 Over the Network

Filed under: — bill @ 4:38 am

In my last post, I talked about how I’d converted an AppleTV into a Linux server. Once I packed up the server with media, the next thing that I wanted to do was deliver it to the living room via my XBox 360. There’s a few problems with getting this to work:

  • The XBox 360 only recognizes shares as a Windows Media Center Extender, from the Zune software and via UPnP Shares
  • The XBox 360 is picky about the codecs that it plays in what container: December 2007 Video Playback FAQ
  • Getting my share exposed via UPnP is straightforward enough, I can use UShare to share it out. Astute readers will observe that while UShare supports both UPnP and DLNA, we only need UPnP for use with the XBox, so we eliminate a lot of the headache of compiling it under Debian by supplying “–disable-dlna” as an argument to the configuration script. Also of note, “libupnp3-dev” is used in Lenny to satisfy the libixml requirement, as unintuitive as that may seem. As an aside, if we use libupnp4-dev, it fails to compile. The remainder of the configuration is left as an exercise to the reader, but “ushare -x” is a reasonable way to get started.

    The second problem involves the codecs supported by the 360. We’d really like to minimize transcoding wherever possible because it is computationally expensive, and typically means a loss of quality. However, we see that only the most common codec pairings are supported by the XBox. For the special cases, we can still play them on the XBox by using ffmpeg to do a stream copy and then transcode the audio.

    The wrinkle to doing that on Debian revolves around codecs. If we’re say, given an h.264 file with an mp3 audio track, we find that we cannot play it because h.264 with mp3 is not a supported configuration. We must pair AAC with h.264, but ffmpeg on Debian doesn’t ship with an AAC codec by default. The solution is to use the Debian Multimedia repositories. Once we’ve installed an ffmpeg from that, it becomes far easier.

    Now we can pull the trick to fix the above file up for playback using AAC:

    ffmpeg -i input-h264-mp3.avi -vcodec copy -acodec libfaac -ab 128kb -f mp4 output-h264-aac.m4v

    Update: I spoke too soon above. AVI and MP4 containers use different conventions for how to store certain things, and simply copying the stream like above seems to work until you play the video. For now, we follow the process (slightly tweaked) described in Using MEncoder to create QuickTime-compatible Files:

    mplayer video.avi -dumpaudio -dumpfile video.mp3
    mplayer video.avi -dumpvideo -dumpfile video.h264
    ffmpeg -i video.mp3 -acodec libfaac -ab 128k video.aac
    mp4creator -create=video.aac video.mp4
    mp4creator -create=video.h264 -rate=29.97 video.mp4
    rm -f video.{mp3,h264,aac}

    In the above example, I use 128kbit audio, but you can adapt it to whatever is suitable based on the input file. Note that I used .m4v in the above example. If you’re using UShare, you’ll find that the mime types defined only consider mp4 to be an audio file. You can change this by patching up mime.c, but I decided that it wasn’t worth the effort to change and test it if I can just use a different extension.

10/11/2009

Debian on the AppleTV

Filed under: — bill @ 3:52 pm

This weekend I decided to set up Debian on my AppleTV because the experience for most things relating to video is far better on the XBox 360 (e.g. Netflix versus rental, loading indicators, only low-grade HD performance, etc.), for a lower price ($199 vs. $229)

Getting Debian on there was a little bit tricky, so I’m going to document a few of the things I learned to make this easier on myself, or maybe other people trying to get it to work. I found that I needed several things to get it to work:

  • A 512MB (minimum) usb drive for backing up the partitions on the box
  • A separate usb drive for installing Linux on the box / going in via recovery mode (~$9 for 2GB at Walmart)
  • An existing Linux machine for setting up partitions, etc. on the memory card
  • ATV Bootloader
  • A usb hub / one built into your keyboard
  • USB Keyboard
  • A bit of patience

The first thing that you need to do is back up the device, which requires a specially created USB drive that can be toggled into recovery mode using “menu” and “-” on the apple remote. The ATV-bootloader guys have taken care of making a tool to generate that drive called ATV USB Creator. The only tricky part here is that if a bootloader drive is made on the mac, both partitions are HFS+. The second one can be reformatted to whatever, such as ext3 for backup. The details of backing up the ATV and restoring it are on the ATV Wiki.

The ATV wiki also talks about how to prepare the partitions on the device, which really consists of putting their bootloader on the regular and recovery partitions, set to certain spots on the disk. The bootloader does a variety of things to try to start the device, including looking for menu.lst in different ext3 partitions and then using kexec to pop over to the right kernel and initrd.

The way to install Debian is a variant of Gutsy, with a few notable differences. For one, you don’t need the funky vesafb arguments. In fact, I had problems when these arguments were present. Two, when you’re preparing installation media on a USB drive, such as described in the ATV Wiki, you really only need to the second partition that you get out of the USB creator above for three files: initrd.gz, vmlinuz, and some debian installation iso. Remember that the hd-media finds and installs from iso media, but wont netinstall by itself.

Thus, the commands to kick off kexec look something like this:

mkdir debian
mount /dev/sdb2 debian
kexec –load debian/vmlinuz –initrd="debian/initrd.gz” –command-line="initrd=/initrd.gz”
kexec -e

After that, I just used the keyboard that the USB drive was plugged through to configure and install a minimal standard system, since I was planning on using it as a server anyway. I noticed that GRUB didn’t get installed correctly, so I made my own menu.lst file for the ATV bootloader to find, whose important bits looked like this:


title Debian GNU/Linux, kernel 2.6.26-2-686
root (hd0,3)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda4 ro quiet
initrd /boot/initrd.img-2.6.26-2-686

With all of that, the device finally booted into Debian. However, there was a second problem–flaky network performance. As it turns out, when the CPU moves between certain speedsteps, some network traffic gets lost. The trick is to get cpufreq with the performance governor set to performance to avoid stepping. This can be changed at any time, e.g. via cron to use less power when the system isn’t in use, but the ATV doesn’t really suck much power anyway.

We use cpufreq to modify the speedstep parameters. It doesn’t look like the cpufreq stuff is loaded by default, but that’s easy enough to fix.


modprobe acpi-cpufreq
apt-get install cpufrequtils

We edit /etc/modules to add acpi-cpufreq, and change the governor to “performance” in /etc/init.d/cpufrequtils.

Okay, all done for now. Other side notes: If you’re setting up this machine with AFP to do time machine backups, ala this tutorial: Ubuntu as Mac File Server and Time Machine Volume, you can make the AFP icon an AppleTV with the model string of “AppleTV". Also, for Snow Leopard, you need to create a sparse filesystem on the local mac with “$MACHINENAME_$EN0MAC.sparseimage” for Time Machine to detect it. The same caveats about using defaults to enable unsupported time machine volumes and touching a file called “.com.apple.timemachine.supported” on the volume apply. This is discussed on the Mac OS X Hints page for this as well.

12/23/2008

Hyper-V on the Cheap

Filed under: — bill @ 9:16 pm

After setting up my dad’s office with a HP DL370G5 with Windows 2008 Server and Hyper-V, I was thinking that it would be helpful to have a system around the house for my own purposes. I have an MSDN subscription, but Andy pointed out that there’s the free Microsoft Hyper-V Server SKU for people that don’t or want a minimalist setup.

Given that I’m not exactly an enterprise, I wanted to keep the cost of the project pretty low, and even HP business refurbished hardware isn’t cheap. My next thought was to put together my own system from parts on NewEgg, but didn’t have much success. The tricky part about getting hardware that isn’t certified for use with Hyper-V is that most, nay all, OEMs shy away from actually telling you if their particular motherboards support the AMD or Intel virtualization extensions. While I could try out different boards, I disliked the idea of spending weeks shipping stuff back and forth for testing if hardware virtualization was supported. It didn’t help that I wanted a solution that I could use immediately.

I decided that getting the hardware I wanted at a local store would be the best approach, despite the fact that I might incur the wrath of a restocking fee. I brought along my Acer Aspire one to write down possible candidates, which didn’t draw too many strange looks, surprisingly enough. First up was Office Depot, which only had five desktops, total. Even worse, none of the CPUs in those devices were capable of hardware virtualization. Best Buy was a bit better, but the prices there started at $400 and quickly went up from there. As well, while the sales associate at Best Buy didn’t seem to mind letting me peruse the BIOS settings on floor models, I couldn’t find any systems whose BIOSes claimed to support hardware virtualization. Granted, I didn’t really want to check the more expensive systems.

I went home for dinner and looked around NewEgg some more. At this point, I thought that I’d just bite the bullet and get the right cpu with a motherboard whose chipset should support it. I ended up making one more trip out to see what Walmart had around. I wrote down the different model numbers and retreated to the car to Google bits about the hardware. As it turns out, one of the models, the Compaq Presario SR5413WM ($400 at my local Walmart, $358 online at time of writing) contained an ASUS Motherboard. Since Walmart has a generous return policy, and both the CPU and Chipset on that board seemed to support hardware virtualization, I decided to take a chance and try it out.

As it turns out, that wasn’t too bad of an idea. It works with Windows Server 2008 out of the box and I only needed to enable virtualization in the BIOS under the advanced options to get the extensions and no-execute bits enabled. While the box comes with a single-core processor and 2GB of RAM, there’s a bit of room to grow, since the motherboard supports 4GB of RAM as well as a number of dual-core AMD X2 processors.

10/1/2008

Woo, Get Your FICO score for Free

Filed under: — bill @ 4:21 pm

So I noticed on the interblag that Equifax is currently running a free FICO Score report here: http://www.equifax.com/freeficoscore/. Since the credit bureaus aren’t required by law to make this free, they typically don’t, so now’s a good time to find out for free before they cut it off at 10,000 reports . Link via My Money Blog.

7/30/2008

Shameless Promotion Post

Filed under: — bill @ 8:07 pm

I was reading the Microsoft Jobsblog and ran across a link to this other Microsoft site called Microspotting. While Microspotting seems to be oriented towards recruiting, there’s actually a a lot of nice photography on there, and interesting articles about stuff going on at Microsoft, such as some stuff about the Product Fair.

I also like the fun random articles, like the one about the guy on the Segway that I was wondering about: Meet The Golden Helmet

Anyhow, I’m not just writing this because the site is awesome, but because I really want one of the awesome I am the empire shirts before I’m gone for the summer. Hopefully I’ll get one :-)

Update: I have been shirted! :-)

7/16/2008

Offline NT Password Editor (chntpw) For Cygwin

Filed under: — bill @ 11:15 pm

I was looking around online and couldn’t find anyone that had build a recent version of this for Windows, so I bit the bullet and compiled it for Cygwin. Package is here: chntpw-080526-bin.zip

4/8/2008

Open Letter to Marty Holmes Regarding Texas A&M Credit Card Offers

Filed under: — bill @ 3:30 pm

Marty,

Today I received the third unsolicited credit card request from you asking that I sign up for a Texas A&M University MasterCard. To be quite honest, I do not want to receive any more of these advertisements, and contacting your name on the letter seems to be the most direct way to get off the list.

Aside from the pushiness implied by the number of times I have received these offers, my personal opinion on this matter is that sending credit card offers to students is really fairly disingenuous (at best) for a organization that claims to serve the student body at Texas A&M.

People graduating from any college, including Texas A&M, are typically in enough debt already without a card that has 15.99% variable APR and a variant of universal default sitting around to be used. Did you know that students using this card may have to pay additional fees if they are late on a different card from a completely different bank?

To add insult to injury, I know that 15.99% is by far not the best rate that could have been offered to students, since similar branded Bank of America cards have significantly lower rates. Take for example the 9.9% APR offered to users of The Motley Fool: http://www.applyonlinenow.com/us/tmf5/

Is promoting a card with unfriendly terms how the AFS is trying to take care of Aggies these days? I can certainly appreciate that the Association for Former Students is always looking for new revenue streams, but this is really over the top.

I hope to hear soon that I have been removed from this list and an explanation of why the AFS is doing more than making a money grab with this credit card offer. Is something like this credit card really worth alienating a generation of potential donors?

Thanks and Gig ‘Em,
William Reading

10/13/2007

Netatalk and Debian

Filed under: — bill @ 3:26 pm

Since the FSF has decided that the OpenSSL license is incompatible with the GPL, a whole bunch of packages on Debian that use it have been a bit crippled, including netatalk. Fortunately, you can fix this by rebuilding those packages yourself. If you’ve having trouble with encrypted passwords, then you’ll need to do this on a relatively fresh Debian system:

$ sudo apt-get install build-essential openssl cracklib2 libpam-cracklib cracklib2-dev libssl-dev
$ sudo apt-get install build-dep netatalk
$ apt-get source netatalk
$ cd netatalk-*
$ DEB_BUILD_OPTIONS="ssl debuild” dpkg-buildpackage -rfakeroot
$ dpkg -i netatalk_*.deb

Thanks to Hatena::Diary and Our-files.com for documenting this little quirk in a conveniently Googlable way.

10/2/2007

Shining! Mr. Sunshine on the Zune

Filed under: — bill @ 1:17 am

(Warning: This post is slightly rambly)

This summer, I got a nice intern gift from Microsoft: A custom Zune with the Geniusaurus holding the ever-so-slightly creepy (and perhaps slightly infamous among MSFT Interns) brain balloons on the back. To be honest, I probably wouldn’t have bought the Zune on my own given that I like my hardware to work on Mac OS X and Linux in addition to Windows. As has been discussed ad nauseam elsewhere, the closed extensions to de facto MTP standard don’t play well with the open-source implementations that let you use it on non-Windows operating systems with LibMTP. To boot, it doesn’t work with Microsoft’s own “PlaysForSure” DRM standard (which, incidentally, is just a flag judging by the fact that FairUse4WM can remove both).

While those two things were immediately obvious to me (and have decent workarounds, such as sync’ing music over the network and not using DRM’d music), the lack of support for Asian fonts took me by surprise. I understand that the Zune is a US-only product. I know that it came to market from inception to being on store shelves in less than nine months. I realize that adding in international fonts adds to the testing workload. But even so, I’ve been spoiled by having an iPod with proper internationalization for years and a sizable portion of my music has Japanese and Chinese metadata. Since sync’ing music is something that I only do on occasion, the Windows-only support hasn’t been as much of a pain point for me as the lack of internationalization.

As it turns out, Windows CE on the Zune already has international font support, so all that one needs to do is get the appropriate fonts onto the system partition: Asian Fonts on the Zune. Although it’s really easy to pop it out and plug in the drive using a ZIF connector, you can avoid that warranty-voiding fun by tricking the Zune software into thinking that there’s an update and dropping a few extra files onto the drive with a faux 1.5 update (actually 1.2 with extra stuff) and updating to 1.4.

The result? Mr. Sunshine is shining again.

9/15/2007

Win32 Socat

Filed under: — bill @ 3:58 pm

I needed a copy of socat the other day for Windows and couldn’t find it, so I built a quick package with cygwin: Socat 1.6.0.0 for Cygwin.

I’m putting it up for later retrieval / people who don’t want to go through the trouble.

9/13/2007

Conversations with half-drunken people on Northgate

Filed under: — bill @ 10:24 pm

(Adapted from an AIM log)

So gabe and I took the golf cart over to the gas station on northgate to get milk.

Gabe’s buying the milk and a couple of sorority girls come out and tell him, “Wow, how does your hair get so spiky!?”
His reply: “It’s naturally that way and I use hair gel”
Girls: “No way, that’s bullshit, I don’t believe it”
Girls: “Why are you buying milk?”
Me: “Because we don’t have any”
Gabe: “Yeah, cereal”
Girls: “You should like mix that with vodka”
Me: “I think it’s better with liquid nitrogen”
Girls: “You have liquid nitrogen in your apartment?”
Me: “Yeah, of course. It’s great for making ice cream”
Some Other Girl: “Ooh, liquid nitrogen ice cream, that’s fun!”
Girls: “We never did that. We made it with salt in our camp!”
Me: “Well, maybe they were cheap, I dunno.”
Girls: Why can’t you make it the normal way?
Me: Well, liquid nitrogen flash freezes it and results in better quality
[Gabe goes to get some stuff to charge it on the credit card]
Me: Hey gabe, get some mexican coke
Girls: Hey! That’s a racial slur!
Other Girl: No it’s not, it’s literally from mexico
So then we got into the HFCS / glucose / fructose / sucrose discussion with the other girl that’s apparently a chemistry / nutrition major.

Then we drove the golf cart back. It was priceless

Tristan’s reply: yeah.. well… I peeled an orange. And now I’m eating it.

8/11/2007

Charging Suunto n3 on Mac OS X

Filed under: — bill @ 5:22 pm

As some of you already know, I have a first generation MSN Direct watch, the Suunto N3. Unlike some of the newer generation smart watches made, this one requires a driver to charge via USB.

On Windows this wasn’t an issue, since I could just grab the drivers from Suunto’s web site and get it charging. That is, until about a week ago. Some update got installed that caused Windows Vista to blue screen whenever the watch was plugged in. Not wanting to have to carry the charging brick between work and home, I did a little poking around and discovered that the charge cable uses a usbserial chip made by FTDI. By changing the strings in the driver’s .inf file, I was able to get the watch to charge without BSODs, though I had to purge the original driver first.

This got me thinking that I could do the same thing on the Mac. I grabbed the driver here: FTDI Virtual COM Port Drivers, rebooted and was good to go. Apparently FTDI decided to include the correct PID and VID in their Mac driver such that it just works.

6/17/2007

Using CitiMobile with T-Mobile

Filed under: — bill @ 6:59 pm

I’m an early-adopter nut for different things and one thing that I think is cool is being able to do banking type things from my phone. I heard about CitiMobile a while ago, but it wasn’t actually available for anyone to use until recently. When I went to the web site to sign up, I was disappointed to see that T-Mobile isn’t actually supported.

This is kind of lame because while the lower tier T-Mobile data plans don’t let you do things like CitiMobile or Opera Mini, the T-Mobile Total Data plan does. I really wanted to use this service, and have it not possibly send stuff to someone else’s number (registering a phone number and getting the link does actually work on other phones, as long as you put in the number for the phone).

So here were the steps I took to get the servie registered with the right phone number on an unsupported carrier and handset:

1) Find a trustworthy friend with a supported handset (you need a pin number to login anyway, so it’s less bad than it sounds)
2) Have the service send that handset a message
3) Send a message to the handset whose number you want on any carrier
4) Add a second handset as soon as possible
5) Retrieve the URL from the first handset. In my case it looked something like this: http://citimobile.da-us.citibank.com/svctl/Provisioning?rt=3&at=99&uid=12345.
6) Go to the target handset and keep incrementing the number on the url and installing the application until it lets you use that number to login.
7) Remove the dummy handset with the friend’s number.

Voila, CitiMobile on a T-Mobile V360.

Note: Since this technique relies upon the fact that they use predictible URLs, it helps if you do it at a time when they aren’t likely to get a lot of requests to minimize the possibility of trying to use someone else’s URL for your phone.

6/2/2007

Hippie Picture

Filed under: — bill @ 2:37 pm

So here’s a picture of how I looked a year ago. It’s scary.

Update: If you’re reading via facebook, you’ll need to click on “view original post".

Me with long hair.

5/17/2007

Gambling: The fun and college studenty way

Filed under: — bill @ 1:59 am

So I’m in the middle of a trip to Seattle and we’ve decided to stop at Las Vegas along the way. We’re staying in the Treasure Island hotel, which apparently gives out these nifty little cards with some amount of stored value for signing up with their club. I had to wait in line to get a card, but it was mostly worth it, since I effectively got paid something to read Slashdot on my phone.

So about 20 minutes of waiting later, I got $5 of “free play” points. That essentially means that you can bet up to $5 for free, all while keeping any earnings from the bet. (The $5 of free play cannot be directly cashed out, it must be betted to get at it.) With my freeplay points in hand, I walked around the casino until I found a one cent machine and played out all the points on it. I ended up having to put a dollar in the machine to activate the card’s points as well, so I decided that I would pull out if I ever got too close to that dollar.

About 15 minutes later, I had 854 credits and no free play points left. I figured that this was a decent stopping point, so I cashed out. The casino just gave me $7.54 for free. I’m more or less happy here, though I am considering dropping in another dollar and fiddling around with the machine some more later. $12.93 an hour for screwing around isn’t too bad.

12/31/2006

Quicktime VR Pictures

Filed under: — bill @ 3:49 pm

I’ve put some Quicktime VR videos with panoramas from my recent vacation online, so here they are:

Port of Spain, Trinidad & Tobago
Hotel Hesperia, Isla Margarita, Venezuela
Playa El Agua, Isla Margarita, Venezuela

12/12/2006

Withdrawing from PayPal (or out of town banks) on the Cheap

Filed under: — bill @ 6:49 am

Because the PayPal Cash Advance trick no longer works, I’ve been looking for ways to quickly pull money from PayPal without having to worry about it being eaten up in fees.

For people in College Station that want to use an ATM machine (though I wouldn’t forget about getting cashback from a debit transaction at a grocery store), there’s always the Aggieland Credit Union, which apparently only charges one dollar to use their ATM with a foreign card. Yes, it’s still $2, but it’s better than paying more fees if you need the money right then.

Update: Apparently the issuer of the card, JPMorgan Chase, permits ATM use for free. Paypal still charges the $1, but there’s no fee from the ATM itself to deal with.

12/11/2006

Amazon Wish List

Filed under: — bill @ 8:13 pm

Someone wanted me to put up a list of items that would make good presents for me. So without further comment, here’s my amazon wish list:

My Amazon.com Wish List

(Yes, the buttons suck. I’m going to make them into properly transparent images when I get a chance.)

8/17/2006

Don’t cut in line at McDonald’s

Filed under: — bill @ 6:14 am

Apparently a student at the University of Georgia decided that she didn’t like people cutting in front of her at McDonald’s. Her response is like the famous scene out of Terminator 1:

http://news.google.com/news?hl=en&ned=us&q=mcdonald%27s+university+of+georgia.

8/6/2006

Fare Compare

Filed under: — bill @ 11:19 am

I was reading through the Upgrade Travel blog and found a mention of this nifty thing called Fare Compare. It’s great because not only does it show really good rates and historical trending information, but it also helps you find discount First Class fares. I wish I’d known about this thing a few weeks ago :-).

Screwy Amtrak / Oakland Station

Filed under: — bill @ 10:29 am

I’m currently in the Bay Area and flew into the Oakland airport with the intent of going to the Coliseum station via Airbart and then going to San José on the Amtrak. I couldn’t find the station. It turns out, they have a really long skywalk over an industrial area:

6/26/2006

Another Reason Why IKEA is Great

Filed under: — bill @ 8:04 pm

Question: “What is the Answer to the Ultimate Question of Life, the Universe, and Everything?”

It’s just like the toaster in the HHGTTG.

UPDATE: This is even better:

6/8/2006

Prozilla on Mac OS X

Filed under: — bill @ 5:46 am

While downloading the Vista Beta 2 iso image today, I found that the servers were amazingly unreliable. I was a bit surprised at this, since Akamai is usually much better about hosting. I set wget to downloading, but still wasn’t getting very far since the connection was getting reset about once a minute. Setting aggressive timeouts also didn’t quite cut it because I still had to wait for it to restart.

Annoyed by this problem, I set out to find something that could download the file with multiple threads so that hopefully at least one thread would be up and downloading at any given time. I found this nifty tool called Prozilla, which lets you download using multiple threads with configurable retries. Unfortunately, it didn’t compile out of the box on Mac OS X, but that wasn’t too hard to fix:


diff -ur prozilla-2.0.4/libprozilla/src/common.h prozilla-macosx/libprozilla/src/common.h
— prozilla-2.0.4/libprozilla/src/common.h 2006-02-08 11:19:54.000000000 -0600
+++ prozilla-macosx/libprozilla/src/common.h 2006-06-08 06:30:28.000000000 -0500
@@ -83,7 +83,7 @@
#include

-#ifdef __FreeBSD__
+#if defined (__FreeBSD__) || defined (__APPLE__)
#include
#include
#else
diff -ur prozilla-2.0.4/src/main.cpp prozilla-macosx/src/main.cpp
— prozilla-2.0.4/src/main.cpp 2006-02-08 11:18:58.000000000 -0600
+++ prozilla-macosx/src/main.cpp 2006-06-08 06:32:09.000000000 -0500
@@ -512,7 +512,7 @@
{
free(url_data);
delete(dl_win);
- shutdown();
+ dl_shutdown();
return -1;
}
delete(dl_win);
@@ -520,11 +520,11 @@
}
}

- shutdown();
+ dl_shutdown();

}

-void shutdown(void)
+void dl_shutdown(void)
{

cleanuprt ();
diff -ur prozilla-2.0.4/src/main.h prozilla-macosx/src/main.h
— prozilla-2.0.4/src/main.h 2006-02-08 11:18:59.000000000 -0600
+++ prozilla-macosx/src/main.h 2006-06-08 06:32:25.000000000 -0500
@@ -79,6 +79,6 @@

extern struct runtime rt;

-void shutdown(void);
+void dl_shutdown(void);

#endif

4/17/2006

Ubuntu 5.10 NFORCE3 DMA Issue

Filed under: — bill @ 1:08 am

If you’re running NForce3 with Ubuntu 5.10 (or some other distros), find that you can’t get dma to work and have a message with something like “NFORCE3-250: port 0x01f0 already claimed by ide0″, it’s probably because the generic ide driver is getting loaded before the specialized one. Add “amd74xx” to /etc/mkinitramfs/modules and do a dpkg-reconfigure kernel-image-`uname-r` and reboot to fix the issue.

3/30/2006

What’s the chance that you will die in $way?

Filed under: — bill @ 8:08 pm

I happened across this page the other day: Odds of Dying.

Interesting tidbits: The odds of dying in a bathtub at some point in your life are 1:10,582. The odds of dying due to a “foreign body entering through [the] skin or [an] unnatural origin” is 1:161,956. Good to know.

3/19/2006

EV-DO Router

Filed under: — bill @ 5:01 pm

So I’ve finally gone and finished it, my ev-do router. There are still a few rough edges with it, but it works pretty well. The host system being used is a Fujitsu Stylistic 1200, which can be easily found on eBay for between $30 and $130.

The particular model I used has a transflective monochromatic display, which is not only easier on the battery, but better suited for its console-oriented purpose of being a router.

Although it currently has the stock 2.1GB hard disk, I’m considering changing that out for a flash card so that it boots faster and uses less power while idle. In the meantime, I’m setting the hard disk to sleep at a short interval.

I’ve also updated the memory to 80MB total with a 64MB stick of EDO memory that I picked up on eBay. Although the original manual suggests that a maximum of 16MB may be added, there are reports of up to 128MB being added to the system, at least according to posts on the Linux-Hacker Forums.

For networking, I’ve put in an ORiNOCO card in for the access point and a Merlin S620 card in for the 1xEVDO backhaul.

Note: If you’re reading this entry and considering doing this yourself, I suggest buying a pcmcia extender of some sort because the only reason these two cards fit inside the two slots on the Stylistic is because one of the cards was slightly bent when I was going through airport security a few weeks ago. Unless you’re planning on intentionally destroying your hardware, get the extender.

Now although this project seems pretty simple, it was deceptively time consuming to get working. The first problem was related to the fact that it comes standard with Windows 95, came with no external drives (you can purchase a floppy drive on eBay for more than the device itself in some cases!), does not boot from PCMCIA and has no network interfaces. The USB port is accessible with the port extender, which I don’t have for the same reason as the floppy drive.

After some experimentation, I found that I could get data on the device using a PCMCIA to Compact Flash adapter, which I had laying around from my digital camera. The next step was to repartition the drives. Luckily, I also had a copy of Partition Magic lying around, which still supports Windows 95 (pretty scary, I think). After repartitioning the drives, I left a 1.2 GB for Linux, about 300MB for the debian install files and another 250MB or so for windows.

I then put the installation files for Debian on the staging partition and used loadlin to load up linux. This was a bit of a trial and error process because Sarge requires 32MB of ram for the installer and I only had 16MB installed at the time. I finally ended up going with the Woody installer and then got a base install layed down on the partition.

Following a restart, I finally had a native install of linux on the box, but still didn’t have any network connectivity on the machine. I shuttled the wireless-tools .deb for woody via the flash card over to the machine and was shortly online via my current access point (read: Powerbook). After updating to Sarge and replacing the bootloader with grub, I was ready for the next part of the project.

For a wireless access point, you want it to be in BSS Mastering Mode because a client wanting to get on the internet must always talk to the gateway and really doesn’t care about other clients. For Orinoco cards, this requires a so-called “tertiary” firmware to be loaded onto the card in order to enable that mode (as compared to Prism2-based cards, which can be used with hostap). Fortunately, a project called “hermesap” enabled me to put my card into that mode, but required that I patch up my 2.4.27 kernel a bit. Effectively, this did drop back my drivers back a point release from the bundled version of orinoco_cs distributed with the kernel, but allowed me to keep the rest of the functionality, including all the security releases in that kernel.

I also needed a patched usbserial driver to properly accomodate the ev-do card, since the default packet size is 64 bytes and I needed it to be 4096 bytes to keep it from stalling out the connection.

Since the machine is so slow, I ended up installing sarge on yet another machine in order to build the kernel with the appropriate patches. About an hour later, I had a kernel ready for use on the machine.

I used the helpful dnsmasq to provide dns and dhcp on the access point and wrote a few scripts do deal with starting up the access point and configuring ev-do–then success! I was able to get onto the internet over the access point.

Unfortunately, I wasn’t done quite yet. I was getting abysmal throughput and couldn’t figure out quite why. I tweaked the networking by using a “mtu 1500″ in the peers section of my sprint pppd stuff and added this to my syctl.conf:

net.core.rmem_default=224360
net.core.rmem_max=224360
net.ipv4.ip_default_ttl=64
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_sack=1
net.ipv4.tcp_window_scaling=1

That seems to have done the trick, since I can now get up to 170kB/s, which is the fastest I’ve gotten out of the card where my apartment is located. I was just about done, but not quite. I still had to worry about the byteMobile-based optimization that I talked about in another post. I settled for using netcat in conjunction with the so-called “magic bits” for disabling it in a shell script. And voila, a mobile ev-do router.

I’ll post more details and the configuration files at a later point.

2/20/2006

ByteMe Optimizer

Filed under: — bill @ 2:00 am

I recently became a user of Sprint’s new EV-DO service, which I think is great with the exception of a few things. One of my major issues was that they use ByteMobile’s Optimization Services Node by default and don’t provide a Mac OS X client.

Now granted, they don’t even support Mac OS X, so I can hardly expect them to provide a client for disabling the image compression. On the other hand, I want to use Mac OS X and don’t like my images getting compressed. So I did what any red-blooded Mac OS X developer (well, or college student avoiding studying) would do and put on my reverse engineering cap.

After running ethereal on windows to get some idea what’s passing over the wire, I discovered two things:

  1. The way Sprint deals with ByteMobile in their connection client is slightly wrong in that it assumes that if ByteMobile isn’t on, then nothing needs happen for the compression to be off. Since it defaults to on, this behavior is wrong. (I’ve got a support ticket in their queue with my name on it to report this problem)
  2. I don’t have to actually reverse engineer their protocol because all I need to do is replay the magic disable packets from the client

A few hours later, out came ByteMe Optimizer. I’m not sure if it’s quite perfect yet, but it suits my ends pretty well. If you use Vodaphone, China Mobile, T-Mobile, Cingular, NTT DoCoMo, Orange, Sprint, or a mobile provider that for whatever reason seems to mangle your images (hint: bmi.js may be lurking in your downloaded html), give ByteMe Optimizer a try!

2/4/2006

City location information via porn sites

Filed under: — bill @ 6:02 pm

Today, someone sent me a link to a Homemade Datacenter. The pictures are mildly interesting, but what is more so is the banner ad at the bottom. It advertises a popular dating site called “Adult Friend Finder". “So What?", you’re probably asking yourself. Well, what’s interesting is that it seems to be really good at figuring out your location from an IP address.

For example, I’m using Verizon DSL and my IP’s whois information returns Reston, VA. The hostname is “herntx.dsl-w.verizon.net” (probably referring to Hearne, Texas, about 25 miles away). So my guess if I was just trying to figure out where I’m at would be in hearne. The traceroute to home doesn’t reveal anything interesting along the way other than Hearne is probably wired to Dallas. Even so, Adult Friend Finder correctly deduces that I’m in College Station.

Now I have no idea where they get the data, but I figured it would be handy next time I’m travelling. So I wrote a perl scripty to tell me:


#!/bin/perl
use LWP::Simple;
my $locationServer="http://banners.adultfriendfinder.com/piclist";
my $locationData = get($locationServer) or die “Could not retrieve data from server";
$locationData =~ /near (.*?)</

And sure enough, it works:


[bill@ppppowerbook-airport]~$ perl findme.pl
College Station

And for this server:

[bill@aggienerds]~$ perl findme.pl
Dallas

It looks like they also have support for grabbing the state and country, but I’ll need to add another line or two to deal with that. (They display other places with the state and country attached, but not your own.)

Note: You might need to install LWP::Simple with perl -MCPAN -e ‘install LWP::Simple’ using sudo or root to run this:

1/2/2006

My liberation from Apartment laundromats

Filed under: — bill @ 2:59 am

If you’ve ever lived in a college dorm or an apartment on a budget, you’re probably well aware of how much of a fuss dealing with laundry can be. If it’s not collecting change for the machines, it’s walking back and forth or fighting with cut-throat grad students over the two working machines on the other stide of the complex.

A few months ago, I was finally relieved of this problem, for a new Haier XQBM22-C was delivered to my door by the friendly (and relieved that I was home) UPS guy.

I didn’t know at first that it was going to solve my problem. In fact, some of the reviews on Amazon.com let me to believe that it would only be good enough for some of my clothing and very light duty washing, but thankfully they were wrong.

I’ve washed everything from t-shirts to queen size blankets in that little machine (though I’ll admit that the latter was a tight fit) and have been pretty pleased with the results. I obviously need some way to dry everything, so for most purposes the Polder 8310-05 Chrome Clothes Rack works great.

When I run out of space on that rack, I’ve found that hanging up the clothes on hangers well spaced in the closet works great. The pole in the closet is also great for hanging blankets and towels.

Obviously, there are few downsides to doing my laundry this way, but I’m definitely willing to live with them:

  • I have to wait a good while before the washed clothing dry. This isn’t really a problem because I rarely need my clothes immediately and if there is a case where there is a real sense of urgency (one hasn’t presented itself yet) then I can always fallback on the dryers in the laundromat down the street.
  • Dried clothes tend to be stiffer. I’ve found that while clothing doesn’t tend to be any more wrinkled than coming out of a dryer, it is a little bit stiffer. Most of the time, wearing the clothes for a short period of time or otherwise moving the fabric around tends to get rid of the “stiff” feel.
  • Drying tends to consume a fair amount of space. I’ve got a walk-in closet with plenty of room, so it’s usually not an issue.
  • The small tub requires more small loads to complete a wash. Before I had the mini-washing machine, I would tend to let clothing pile up and then do it all at once. I still do that sometimes, but when I do, I have to split the loads into smaller bits. As a result, it tends to take more time overall to wash, but since I’m usually at home it’s less work than going outside to the laundromat and shuffling things around.
  • Lack of care with the drainage tube can be catastrophic. If you’re not careful with the drainage tube, it can come off the side of the sink and make a royal mess. The same applies for adding too much soap.

Even with all of that, I find that I spend less time overall worrying about laundry and more of my time doing other things so it’s worth it to me.

1/1/2006

Boost Mobile i415

Filed under: — bill @ 11:28 pm

This phone from Boost Mobile is pretty nifty. It’s anywhere between $30-$60 (depending on the promotion and store), runs J2ME Midlets, has an embedded GPS and can be used with a dirt-cheap prepaid data plan. Combined with the fact that it’s a fairly ruggedized phone, it’s ideal for all those things that most feature-rich (read: expensive) phones probably shouldn’t go.

So while I’m still on T-Mobile as my primary provider for the time being (T-Mobile’s EDGE at $20 on top of voice is still the best deal for mobile internet access that I could find and I use the voice service more than my inner-geek would like), the hardware and service has some real potential. Although their primary focus is your nearly broke youth/college student who is trying too hard to “be cool” (their slogan is “Where you at?", prominently displayed everywhere from their website to the splash screen on their handsets), their service is great for anyone wanting a service for light voice and moderate data use on the cheap.

There are a myriad of rules governing Boost’s prepaid service, but it essentially comes down to $0.20/min for voice during peak and $0.10/min off-peak. Data is $0.20/day. While you have to pay a minimum of $20 every 90 days to keep the service active, data for that period could be a maximum of $18.60. That also includes 7-14 minutes to go with the data for every three months at $20. (Strangely enough after I put the $10 card on it, I somehow ended up with a $5 credit and then a $25 credit for a total of $35 in credits–I suppose they’re running some kind of promotion right now.)

Boost mobile is remnant of pre-merger Nextel, so it’s based off of Motorola’s iDEN technology. This unfortunately caps data transfers to about 19.2 kbps when in packet mode, but that’s okay for yanking RSS feeds and transmitting telemetry data using the on-board GPS for tracking. It’s also relatively easy to load third party apps on the phone. (Unfortunately, that probably breaks their business model, since nearly all of the apps that they support loading on the handset have daily/monthly usage fees.)

Nevertheless, you can use Mologogo or AccuTracking for tracking a vehicle or what have you with the phone, browse the web with Opera Mini, or use Google Local Mobile to satisfy mobile map urges–nearly any app using J2ME. (Some apps have weird issues with button mappings)

I’m still experimenting with using it as a laptop tether, but when I pass it “S=2″ under windows, my machine gets assigned the same IP address for the host and gateway, one that is allocated to the US Defense Information Network to boot.

I’d try it under Mac OS X, but I’m going to have to fix up the script because it calls for putting “S=2″ in the phone number field and there is apparently some validation on that field in Tiger.

Update:
Despite the fact the phone uses screwy IP addresses to talk to the gateway at Nextel, it does indeed work. I benchmarked it at dslreports.com/mspeed with the 600k file:

20 kbit/sec
1.961s latency
239.196s d/l time

It’s nothing amazing, but not half bad for $6 a month. There’s got to be something cool that I can do with this phone..

11/9/2005

D-Link DVG-1120S

Filed under: — bill @ 6:47 pm

If you just happen to have one of these boxes (DVG-1120S), you can get them to work properly with Asterisk with something like this:


[200]
username=200
type=friend
secret=SECRET
qualify=no
port=5060
nat=never
mailbox=200@default
host=dynamic
dtmfmode=inband
context=internal
canreinvite=no
callerid="Phone 1″<200>

For those of you who don’t know, you can buy a cheap DVG-1120M with the AT&T CallVantage kit and easily convert it to a DVG-1120S with updated firmware here. At the moment, you can buy them from Best Buy for $30 (link).

10/8/2005

Rooster Wine

Filed under: — bill @ 3:43 pm

I saw this at the store the other day and had to pick it up.

I know that I shouldn’t buy wine just on the label alone, but I’ll see tonight whether or not it’s decent.

9/27/2005

Letter to American Airlines

Filed under: — bill @ 10:15 pm

I received a letter from American Airlines today demanding $532.00 for a flight that I never made, so I decided to send them a little letter:

To Whom it May Concern:

I received an invoice from American Airlines today in the amount of $532.00. I have examined the document and following an investigation, have concluded that a mistake by American Airlines has been made.

The originally scheduled flight, which can be identified by record locator number [removed], was changed by American Airlines to a schedule not accommodating to my needs. As a result, the ticket was left unused and measures were taken to recover the amount in question following American Airlines’ refusal to refund the ticket.

I have been advised that pursuant to 49 U.S.C. 41712, it is unlawful for an airline carrier to apply non-refundability provisions to tickets that require the payment of a penalty for a change of flight time or date.

As personal matters made it necessary to change carriers, demanding payment for this flight may be construed as deceptive and an unfair method of competition in air transportation, which is prohibited by 49 U.S.C. 41712.

Therefore, I request that American Airlines remit the charges specified on the invoice, assert that this matter will not be pursued further, and provide written notification that these actions have been performed within 10 business days.

I appreciate your prompt and professional response in this matter. If you have any questions, feel free to contact me.

Regards,
William Reading

Update: I’m pleased to say that I got a prompt reply from American Airlines:

Mr. Reading,

I have taken the unused ticket and closed it.

With that transaction, I have also cleared the credit card chargeback of $532.00.

Regards,
[Removed]

9/26/2005

Reply from TAMU on turnitin.com

Filed under: — bill @ 6:00 pm

After some additional correspondance with the University, I received a reply from the Provost of Information Technology, Dr. Pierce Cantrell

Mr Reading,

William Reading wrote:
>I did raise this concern in another class and was instructed to not use
>turnitin.com in that course. However, I was never informed that the
>University came to this conclusion, which is primarily why I presented
>this issue again. I would very much appreciate it if you wouldn’t mind
>pointing me in the direction of the written documentation for that
>decision, as I was never given a satisfactory reply.

We asked the Office of General Council for the Texas A&M University System about the inclusion of a student’s paper in the Turnitin.com database. While OGC didn’t give us a written response to the attached memo, they verbally told me that we could proceed with the purchase and implementation. The second page of the memo summarizes the intellectual property issues and cites the Turnitin.com legal opinion . We see the inclusion of the student’s paper in the Turnitin.com database as “fair use that does not infringe any copyright.”

In your email to Paul Parrish, you cited concerns relative to the following paragraph about “Communications” using the Turnitin.com Web site:

>You grant iParadigms a non-exclusive, royalty-free, perpetual,
>world-wide, irrevocable license to reproduce, transmit, display,
>disclose, and otherwise use your Communications on the Site or
>elsewhere for our business purposes. We are free to use any ideas,
>concepts, techniques, know-how in your Communications for any purpose,
>including, but not limited to, the development and use of products and
>services based on the Communications.
What is referred to in the above paragraph is “communications” on the Turnitin.com Web site, for example, chat rooms, bulletin boards, and other user forums. It specifically does not refer to the student papers in their database. This is explained in their Usage Policy .

regards,
-pierce cantrell

Although I’m not quite satisfied with the University’s evaluation of turnitin.com on ethical grounds, I can at least attribute them taking some sort of due diligance by bringing up intellectual property issues. The memo attached can be viewed here: Turnitin.com Legal Issues Memo.

Them’s the Brakes

Filed under: — bill @ 11:09 am

I’ve been noticing as of lately that it’s been a bit harder to brake on my bike, but it wasn’t until today that I actually took a look at the pads on my bike. I was surprised at the results:

The front brakes, at least, were apparently worn down enough to where I’d probably be running metal against the rims to stop. The backs were a bit worn down as well, though it appears as if one of them was installed incorrectly. Now it’s granted that I’ve been riding around a lot, I don’t think that’s the kind of damage that you’d expect to see on a bike that’s only a month or so old. I picked up a set of new brakes from the bike shop for $8, so I hope that this is just a fluke.

9/14/2005

Open Letter to the English Department at Texas A&M

Filed under: — bill @ 11:00 am

Dr Parrish,

I was informed today that I that as a requirement for my ENGL 301 technical
writing class, I would be required to use turnitin.com as a requirement for
the course. While I have no qualms against my essays being graded and
checked for plagiarism, I do oppose their incorporation and use in a
commercial database for which a company is to profit from my works. I have
nothing to hide, and invite close inspection of my essays upon submission of
an assignment, but object to what essentially amounts to a company selling
derivations of my work with no monetary compensation for myself.

I have no problems documenting the origins of data that I collect, nor do I
have a problem with sharing my work with other parties. In fact, I generally
put my schoolwork online under a reasonable license, such as the BSD
documentation or creative commons license, complete with revisions of the
every step taken to compile the document. I do this since I am a strong
believer in open documentation practices which I have adopted from the
open-source documentation and software development philosophies. It is my
opinion that this is a better protection against plagiarism than any for-pay
service could offer, since the information is out there and its evolution
free for anyone to review, not just subscribers to an expensive service. The
underlying difference is that the information will always be disseminated
under my terms, not under an ever-changing corporate policy.

I acknowledge the need for ensuring the originality of work, even more-so
for an academic environment, but hope that there are other alternatives for
which I have not been presented with as of yet. If there is no
middle-ground, I will comply with the terms of the course, but plan on
presenting the turnitin.com service with DMCA takedown notices to the site
following the submission and grading of each assignment in order to recover
the rights to my work.

Please note that I have no objection to the retention and automated checking
of my essay against other students’ submissions for the purpose of this
class for this semester, previous semesters or in the future in the proper
context. However, only under the condition that the methodology used for
such checking is made freely available or otherwise open for public audit
and that the entire process is non-profit would I consider this appropriate.
I would even go so far as to offer to help develop such software in my free
time, should an unfulfilled need for it exist in the absence of the
turnitin.com service.

I apologize if I sound a bit rash in this letter, but copyright issues are
very important to me, especially in the field of computer engineering and
software development. I have no delusions that my works will stand at all
outside of the context of this course, but cannot acquiesce to a corporation
profiting from any of my academic work without compensation. I appreciate
the time that you have spent reading through and considering my viewpoint
and hope to hear back from you soon.

Regards,
William Reading

9/1/2005

TAMU ACM ICPC Flyers

Filed under: — bill @ 9:30 pm

I put together a few humorous flyers advertising our meetings. They are available below:

EDIT EDIT:
And another:

EDIT:
I’ve added two more:

8/12/2005

Java on Debian

Filed under: — bill @ 12:17 pm

If you ever need Java on Debian and want to do it The Right Way, take a peek here: http://www.crazysquirrel.com/computing/debian/java.jspx

8/10/2005

SMT5600 EAS Server Changes

Filed under: — bill @ 1:37 am

As a side note, if you ever change your Windows Smartphone EAS Server, you might find that it refuses to accept the change, regardless of the settings you have in there. I needed to reset my smartphone in order to get it to sync properly with a new server.

7/22/2005

Google Ads

Filed under: — bill @ 1:05 am

So I was reading Scoble’s Post on people making buckets of money hosting google ads and my curiosity got the better of me. Thus, at least for the meantime, a little unobtrusive google ads box will be appearing on my blog on the right. We’ll see what happens.

7/19/2005

Meeting “The Man”

Filed under: — bill @ 12:12 am

While this could be an interesting post about a certain barbecue sauce available at the local Seattle Dixie BBQ (which is quite hot, I might add), this is slightly different. Being a Microsoft intern for the summer, I met Bill Gates. He seems like just another regular guy, albeit the head of the world’s largest software company and buckets upon buckets of money. There were a few things that I took away from this occasion:

  • Billg’s house is big. Really big.
  • When asked how he compares himself to heads of other large companies, he responded with, “There aren’t any. IBM’s the only thing close to us and they’re in hardware.”
  • It’s really funny to stand near him and make bunny ears behind his head. I know I did.
  • When asked if he thought that C# should go into the kernel, and when a “better language” would take over, he essentially shot the person asking the question down, telling him that such a thing is silly and that making language comparisions is equally so. Interestingly enough, this isn’t all that far from Bjarne Stroustrup’s view on such things.
  • He considers the difference between software that is free and software that costs $1.00 equivalent to that of “night and day".
  • When asked if he thinks that Microsoft pushes better products out of the market, he denies that this is the case and that the reason that they are popular is because they’re the best. While he admits–perhaps even contends–that the market leader can more easily stay that way, he also says that without innovation, nobody will buy the newer products. Once you’ve bought the old ones, they’re free to use forever and you have to give someone a good reason to buy the new one.
  • His grass is a bit too perfect. At first you might think that it’s fake. I talked to a manager who said that he tasted it to be sure the first time he visited.
  • When asked how he compares himself and Microsoft to smaller software companies, he talked for a moment about Apple and Google. He admits that while Steve Jobs is amazing at interfaces, he also burns people out after a few years. He mockingly states that while people say that “Google Soda is better than Microsoft Soda", he thinks that Microsoft was a lot like them about a decade ago and that they will eventually become more like MS in their “cool” and “High IQ” factor.
  • He thinks that the reason why Microsoft will triumph over free software is because they spend $3 Billion a year on research and do a number of things that Open Source doesn’t really do. He cites OpenOffice, for instance, being a crummy product compared to Office 2003 and that its major strength is that it is free.
  • He’s well read, but doesn’t particularly like Harry Potter. He said that the first two books weren’t all that great, in his opinion, and that he hasn’t yet given the newer ones a chance.
  • When asked if he thinks that Microsoft is too hard on competitors, he says “So you don’t believe in capitalism? Do you just want us to turn over billions of dollars of IP over to our competitors?”
  • Gates apparently puts a lot of money into developing new medicine to cure esoteric diseases and went so far as to compare it to software engineering in that you get a number of smart people, give them a good place to work and see what they can develop. He points out that this kind of medical research doesn’t pay all that well, so that it’s not too hard to recruit some of the best researchers.
  • He says that while genius engineers are rare, even more rare are the engineers who can communicate well with non-technical types and vice-versa.
  • He mentioned that he thinks Google will eventually have to come to grips with the fact that smart people don’t necessarily make great products and that Microsoft ran into this about ten years ago.
  • The man absolutely loves bridge.

Upon leaving, I shook his hand and said something to the effect of “So long, and thanks for Microsoft BASIC".

6/25/2005

GPRS on SMT5600 under Mac OS X

Filed under: — bill @ 9:52 pm

So after a long and lengthly search, I could not find anything that would allow me to use my SMT5600 (Or HTC Typhoon, SPV c500 or C500s, TSM520, i-Mate SP3, or its any other names) Windows Mobile 2003 Smartphone to allow me to connect to the internet from a Powerbook G4 running Mac OS X 10.4 Tiger. After making it work on a windows box and poking around a bit, I pulled a log of the session:


06-25-2005 20:03:42.125 - 115200,8,N,1, ctsfl=0, rtsctl=1
06-25-2005 20:03:42.125 - Initializing modem.
06-25-2005 20:03:42.125 - CD is high while initializing modem.
06-25-2005 20:03:42.140 - Send: AT<cr>
06-25-2005 20:03:42.265 - Recv: <cr><lf>OK<cr><lf>
06-25-2005 20:03:42.265 - Interpreted response: OK
06-25-2005 20:03:42.281 - Send: ATE0V1&D2<cr>
06-25-2005 20:03:42.406 - Recv: <cr><lf>OK<cr><lf>
06-25-2005 20:03:42.406 - Interpreted response: OK
06-25-2005 20:03:42.421 - Send: ATS7=60L1M1X3<cr>
06-25-2005 20:03:42.546 - Recv: <cr><lf>OK<cr><lf>
06-25-2005 20:03:42.546 - Interpreted response: OK
06-25-2005 20:03:42.546 - Waiting for a call.
06-25-2005 20:03:42.562 - Send: ATS0=0<cr>
06-25-2005 20:03:42.687 - Recv: <cr><lf>OK<cr><lf>
06-25-2005 20:03:42.687 - Interpreted response: OK
06-25-2005 20:03:42.687 - 115200,8,N,1, ctsfl=1, rtsctl=2
06-25-2005 20:03:42.687 - Initializing modem.
06-25-2005 20:03:42.687 - CD is high while initializing modem.
06-25-2005 20:03:42.703 - Send: AT<cr>
06-25-2005 20:03:42.828 - Recv: <cr><lf>OK<cr><lf>
06-25-2005 20:03:42.828 - Interpreted response: OK
06-25-2005 20:03:42.843 - Send: ATE0V1&D2<cr>
06-25-2005 20:03:42.968 - Recv: <cr><lf>OK<cr><lf>
06-25-2005 20:03:42.968 - Interpreted response: OK
06-25-2005 20:03:42.984 - Send: ATS7=60L1M1X3<cr>
06-25-2005 20:03:43.109 - Recv: <cr><lf>OK<cr><lf>
06-25-2005 20:03:43.109 - Interpreted response: OK
06-25-2005 20:03:43.109 - Dialing.
06-25-2005 20:03:43.125 - Send: ATDT*###<cr>
06-25-2005 20:03:56.765 - Recv: <cr><lf>CONNECT<cr><lf>
06-25-2005 20:03:56.765 - Interpreted response: Connect
06-25-2005 20:03:56.765 - Connection established at 115200bps.
06-25-2005 20:03:56.765 - Error-control off or unknown.
06-25-2005 20:03:56.765 - Data compression off or unknown.
06-25-2005 20:04:26.765 - Read: Total: 0, Per/Sec: 0, Written: Total: 0, Per/Sec: 0

Happy Day! Now that I know the magic sequences to make the phone purr, I made a handy dandy modem script based on one of Ross Barkman’s Generic Scripts available here: Generic_Bluetooth.dmg. It goes in /Library/Modem Scripts and is used when the bluetooth setup wizard prompts you for a modem script to use, along with some other settings.

For T-Mobile (Not so sure about the other providers), you should have the phone already configured to access GPRS in whatever manner suits you (these settings are floating around the internet for other providers in different places, such as http://taniwha.co.uk), so you would simply put in “*99#” for the phone number and insert a single blank for both username and password and then you’re good to go.

If you’re using T-Mobile and haven’t set the phone up just yet, here are some quick and dirty settings:


Connects to: The Internet
Access Point: internet3.voicestream.com
Primary DNS: 216.155.165.50
Secondary DNS: 216.155.165.50

Note that it’s internet2.voicestream.com if you have a vanilla internet plan and internet3 if you have the “VPN” internet plan.

Update: This script does work with Windows Mobile 2005. However, I’ve noted that the phone has to establish an internet connection or a “No Carrier” message will pop up. To do this, I simply go into internet explorer and go somewhere. There is a “Connecting..", “Locating..” and then data transfer. I then try to connect to it from there. Sometimes it requires two tries for this to work. I’m still investigating an resolution for this problem.

5/17/2005

TomTom Navigator Idiocy

Filed under: — bill @ 2:57 am

If you happen to give TomTom Navigator a try and then discover that after uninstalling it that other applications can’t see a com port, say com5, for instance, take a peek in \HKLM\Drivers\BuiltIn\Serial5 in the PocketPC’s registry. Chances are, the Dll file for it may have been commented out by prepending it with a few dashes. If that is changed back to normal, the serial port will once again be usable in other applications.

4/22/2005

i810 Sound on 3018gz in linux

Filed under: — bill @ 9:01 pm

Apparently someone decided to make it such that if the “external amplifier” is “on", then to mute sound from speakers. This took about three hours to discover.

4/20/2005

Dante on Mac OS X

Filed under: — bill @ 12:42 pm

If you’re you’re compiling dante on Mac OS X, remember to include -lresolv in your LDFLAGS to avoid link errors.

4/10/2005

China Pictures

Filed under: — bill @ 2:21 pm

I’ve now got all of my pictures for China up on my Shanghai Gallery.

4/6/2005

China Unicom’s web site sucks

Filed under: — bill @ 9:42 am

If you happen to travel to Shanghai, China and pick up a China Unicom sim card to use with an unlocked GSM phone, the following might be handy:

- Dialing to the United States is mildly expensive on this service, but is slightly cheaper using the “17911″ service that routes the call using VoIP. Dial with something like this: 17911+001+Area+Number.

- You get a telephone number to go with the card. Dialing this number from the US would be something like:
011-86-13167012345.

- The service number is 1013089 and the handy customer complaint/service number is 10010.

- Wap can be enabled by talking to the customer service people at 1013089.

- The card may be recharged by calling 1013088.

4/3/2005

Wee Hours of Saturday to Sunday Evening

Filed under: — bill @ 9:15 am

Some of you might know that our team at Texas A&M University won the South Central ACM ICPC Regionals late last year. (whew, a mouthful, isn’t it?) The ultimate result of this is that we are now in Shanghai, China for the ACM ICPC World Finals.

At the stroke of midnight on Friday, I began to pack. This, of course, requires that I have clean clothing to put into my luggage. Unfortunately, I had none. Six dollars and two hours later, I can now pack something to take abroad. 3:00 a.m., CST all of my clothes are packed and the majority of the wall warts needed to charge the various electronics that I’ve brought along. 3:30 a.m, CST we have a (albeit rushed) breakfast at IHOP and leave at 4:15 a.m., CST. Following photocopies of various identity documents, we fill out risk management forms and leave at 5:00 a.m., CST. At approximately 7:00 a.m., CST, we arrive at the airport in Austin, Texas and happen to run into the University of Texas team. We leave for Chicago and reach there at approximately 11:00 a.m., CST. In Chicago, after a seemingly endless concourse, we finally reach the end, gate B-17. An hour later, we begin the 14 hour flight to Shanghai. We arrive in Shanghai at 5:00 p.m. on Sunday, localtime. We’ve now checked into the hotel, eaten some food and registered for the contest. I’d post more details, but I’m a bit tired myself. Pictures are available at http://anatifero.us/gallery/shanghai.

3/25/2005

T-Mobile “VPN” GPRS Service

Filed under: — bill @ 4:37 am

I’ve been using T-Mobile for a while, but as of more recently have been trying to get VPN working properly over the their “VPN” GPRS service. The odd part about it is that it’s not actually listed on their web site and nobody seems to know about what it actually does. I attempted to call their customer support to answer this question, but ran into a brick wall. I was told something such as “Only the NOC would have that kind of information.” I thought for a moment and did a whois on an address I’d recently used with T-Mobile:

OrgName: T-Mobile USA
OrgID: TMOBI
Address: 12920 SE 38th Street
City: Bellevue
StateProv: WA
PostalCode: 98027
Country: US

NetRange: 208.54.0.0 - 208.54.159.255
CIDR: 208.54.0.0/17, 208.54.128.0/19
NetName: TMO2
NetHandle: NET-208-54-0-0-1
Parent: NET-208-0-0-0-0
NetType: Direct Allocation
NameServer: WEST1.JMRTECH.NET
NameServer: EAST1.JMRTECH.NET
NameServer: WEST2.JMRTECH.NET
NameServer: EAST2.JMRTECH.NET
Comment:
RegDate:
Updated: 2003-03-23

OrgTechHandle: DNSAD11-ARIN
OrgTechName: DNS Administrators
OrgTechPhone: +1-888-662-4662
OrgTechEmail: tech@tmodns.net

Well then, there’s a handy-dandy 1-800 number to call. So normally I don’t make it a policy of calling random NOC’s, since they actually have better things to do, I went ahead and called them up anyway. After explaining my situation and asking for help, my reply was something similar to “I don’t know where you go this number, but you’re going to have to talk to customer service for that. Have a nice evening.”

This leaves me with about as much information as before, but as they say, there is more than one way to skin a cat. This is my documentation of what I can gleam from their incoming firewall configuration for the service that I’m *paying* for at the moment. I’m essentially putting my machine on the end of the ppp tunnel I’ve made via my phone and then checking it externally.

The first thing I checked out was to see whether or not they appeared to be filtering GRE, which would break the Microsoft PPTP VPN:


(The 255 protocols scanned but not shown below are in state: open|filtered)
PROTOCOL STATE SERVICE
55 filtered mobile

/etc/protocols has this to say about it:

mobile 55 MOBILE # IP Mobility

This seems pretty benign, since that’s normally used for fiddling around with modifying routing for IP datagrams. Protocol 47, or GRE, seems to be accessible incoming. On a side note, this might actually be set up in the Savvis datacenter where I’m running the tests from, but either way, it’s of no real interest to me.

What about a UDP Scan on interesting ports?


All 1478 scanned ports are: open|filtered
Nmap run completed – 1 IP address (1 host up) scanned in 297.953 seconds

Running a simple SYN TCP scan tells us the following:

All 1663 scanned ports are: filtered
Nmap run completed – 1 IP address (1 host up) scanned in 335.872 seconds

Well then. I suppose that answers my question. It’s sad that I have a public IP that I can’t use for TCP Services. On the other hand, 6to4 uses only UDP…

2/23/2005

Phone Olympics

Filed under: — bill @ 3:10 am

The T28 Sony Ericsson service cable for unlocking my eBay’d T68i from AT&T finally arrived today. Given that it didn’t arrive with the rest of my mail lot, I knew that it would be there by the time I checked it in the afternoon, since I’d requested that it be sent Priority Mail. One might think that it’s then a simple matter of running the unlocking software and everything would sort of fall into place for actually making use of said phone, but then that person would be wrong.

Perhaps my Windows ™ operating environment had something to do with the problem. For instance, instead of using it on a IA32 platform like most of the world, I run it inside of Virtual PC on Mac OS X. Apparently, the unlocking software doesn’t support this platform and is nice enough to crash on launch. After much googling and forum digging later, I learned that not only does the software not support VPC, but it also doesn’t support most AMD processors, including their 64 bit line. It also wont launch on a machine with any sort of debugger installed. (I also had one on the VPC image, in the off chance that I might want to try out some Win32 code.)

I thought I was safe on a real windows machine using the Microsoft ™ RDP software to access it from my G4 workstation, but this apparently causes a kernel panic of some sort. Running the software on an Intel machine with the (Visual Basic?) program right in front of me seems to work just fine, so about five minutes after that I was the proud owner of a fully unlocked GSM phone.

Because in a prior life this phone was tied to AT&T, I’ve spent a good deal of time looking up the correct settings for GPRS and wap for the phone and seem to have finally arrived at the settings to make everything work correctly. I’ve now paired the phone with the Powerbook and am now able to connect to GPRS over Bluetooth, in addition to being able to do various things over Bluetooth, such as control iTunes and change out themes.

Good Times.

2/21/2005

RSS Nirvana

Filed under: — bill @ 5:29 pm

Using some magic provided by Perl LWP, HTML::TreeParser and XML::RSS, I’ve written a parser to automatically generate full RSS feeds from TAMU’s newspaper, The Battalion. The main reason for this is the fact that the site is horribly designed and loads extremely slowly. There also wasn’t any way for me to read the articles via an RSS aggregator on my desktop or cell phone. If you’d like to use the feed also, just use the following link: Battalion RSS.

Current Song: Believe -Evidence01 Mix- from the album “Greeting” by Nami Temaki (玉置成実)

2/20/2005

Strippers Near College Station?

Filed under: — bill @ 4:18 am

Google Maps Screencap
As a joke, I searched for “strippers near college station” in the new Google Maps. The results are rather amusing.

2/17/2005

More GSM Unlocking fun

Filed under: — bill @ 4:29 am

Since I’ll likely be in China relatively soon, I’m taking care to make sure that all of my GSM phones are unlocked and ready to use with any carrier. Strangely enough, T-Mobile seems to think that their phone doesn’t exist:

T-Mobile Sim Unlock Request
Sim Unlock Reference: xxxxxxx
IMEI: xxxxxxxxxxxxxxx

Thank you for taking the time to contact T-Mobile. We have received your
SIM Unlock Request. Unfortunately, we are unable to process your request
at this time because the given IMEI is shown as “Unknown” in our SIM
Unlock Database.

To ensure that we have the correct IMEI, please obtain the IMEI directly
from the handset by pressing *#06#. Once this is obtained, please submit
a new request including the information below:

1. T-Mobile account and mobile number (required)
2. IMEI number, press *#06# on handset to get the IMEI (required)
3. Contact number or email address
4. Make and model of the phone
5. Carrier’s name (if the phone came from another carrier)
6. A brief reason for the request
7. Dealer Code (if the request is from a dealer on behalf of a customer)

NOTE: If this is not a T-Mobile handset, we would need to request the
unlock code from the other provider. Since T-Mobile is requesting an
unlock code from another carrier we cannot guarantee the response time
or that a unlock code will be provided.

Thank You,

Sim Unlock Department
T-Mobile USA, Inc.

So while T-Mobile does get props for haaving a Sim Unlocking department, the fact that it’s a T-Mobile branded sidekick makes me wonder about these people.

2/15/2005

eBay T68i Woes

Filed under: — bill @ 10:34 pm

Now that I have a Powerbook, I’ve had bluetooth phone envy as of lately, especially after going to the recently re-organized Mac user’s group meeting and seeing a fellow his one set up for GPRS over bluetooth on Mac OS X. Having alredy spent an exorbitant amount of money already on the laptop, I decided to take the bargain route and pick up a phone on eBay. In fact, I found what seemed to be a pretty good deal: Sony Ericsson T68i (T-Mobile) TRI MODE CELL WORLD CELL, which was only $50 and has bluetooth functionality. So I plunk down the money and the phone finally arrived today. I take the phone out and slap my T-Mobile sim card into it, only to discover that my card is “invalid". “Oh no", I think, “Is the phone broken?", “Did my sim card finally break from changing it out of phones too often?", “Or wait.. is this phone still locked?”

My final thought is soon confirmed as I soon learn that my phone is still locked to AT&T, contrary to what the auction claimed. I’m going to have to get an unlocking kit in order to use it with T-Mobile, so I decided that I’d give the vendor one more chance before filing fraud charges, since the phone isn’t a bad deal for $50. I pointed out to the guy that I’d need an unlock code for the phone (actually, it turns out that I need a cable and some special software to fix the firmware, but that’s another story). Here’s his brief response nested in my reply:

Howdy,

On Feb 15, 2005, at 9:40 PM, tiennguyen@writeme.com wrote:

Unlock that mean you can put Valid Sim card in it working .I don t understand How you understand Unlock mean.(Turn on it display PUK )

Correct. An unlocked phone means that you may put a valid sim card in from any carrier and it will work properly, and that it does not require a password to use it with a valid sim card. However, this is not the case in the phone that you have sent me:

http://www.anatifero.us/t68i-pics/DSC_0003.JPG

If you note the top line:
Network (lock) 1
(This means that the phone is locked to a network still. Unlocked phones have an unlocked symbol in that place.)

This means that the phone is still locked to the AT&T network, which results in the following if you attempt to insert a card from another vendor such as T-Mobile:

http://www.anatifero.us/t68i-pics/DSC_0008.JPG
(The card is not an AT&T sim card and is therefore rejected by the phone)

Your auction (conveniently archived here: http://www.anatifero.us/t68i-pics/DSC_0010.JPG)
specifically states the following:

“This already UNLOCK so just put a valid sim card in ready to USED with T.mobie/ATT ,Cingular…". However, a phone call to AT&T and T-Mobile and my own attempts, as shown in the picture above, along with the phone itself saying that it is still locked proves otherwise.

I do understand that there are other types of locks, such as the SIM card lock and the phone’s pin lock. However, you specifically stated that it is ready to be used with T-Mobile/ATT, so I do not believe there was any ambiguity as to what you were offering.

Now I’m a fairly reasonable person and I don’t want this to be troublesome, so I’ll give you the following options:

1) You may reimburse me for the cost of making it usable on the T-Mobile network, as advertised, by sending me the $25 required to have it unlocked by a technician. I leave you good feedback and everyone is happy.
2) You refuse to make matters right and I file eBay/PayPal fraud charges and have them refund my money and you get negative feedback.

I’ll leave the choice up to you. If I don’t receive a reply within the next 48 hours, I will take the second course of action. I have more than adequate documentation to prove my case.

Regards,
William Reading

Update: Shortly after sending this off, the vendor refunded me $25 to get the phone unlocked. Success!

11/26/2004

Mirror of LISA ‘04 Wiki

Filed under: — bill @ 2:29 am

Since there’s no telling when it may or may not be up, I mirrored the wiki from LISA ‘04 here.

11/22/2004

More Traffic shaping

Filed under: — bill @ 5:58 pm

While the network was out the other day, I decided that it would be a good time to cook up a little summary of what’s going on in the packet shaper configuration file here.

11/2/2004

Streets & Trips 2005 GPS on Mac OS X

Filed under: — bill @ 1:08 pm

A while back, I picked up a copy of Microsoft Streets and Trips with a GPS because that’s the easiest way to get a GPS locally since a store carrying it (Best Buy) is within walking distance of campus. As luck would have it, this GPS is a remarked Pharos GPS-360, which uses a Prolific pl2303 usb to serial converter. This means that the GPS is compatible with the v1.08 driver for Mac OS X. If you happen to have one of these things, just google for a copy of that driver and use this Info.plist in the driver’s extensions folder. Also delete the kextcache file before rebooting.

Update: Someone wrote in asking where to find the driver. It’s available on the prolific web site and a http://tech.prolific.com.tw/visitor/fcabdl.asp?fid=33667101 as long as it stays up. By the way, if you have the money available, I wholeheartedly recommend the GPS-360 bluetooth adapter. It doesn’t require any additional drivers to work with Mac OS X and you can position it anywhere in the vehicle.

Update 2: New link here: http://www.prolific.com.tw/eng/downloads.asp?ID=31

10/30/2004

T-Mobile GPRS on Debian

Filed under: — bill @ 2:22 am

I’ll be attending the acm regional intercollegiate programming contest next weekend and one of the things we have traditionally done on the way up there is to find geeky ways to pass the time in the van. In the past year, I convinced my parents to let me subscribe to the unlimited T-Mobile GPRS plan. This has obvious practical applications, including the ability to have network connectivity even when in a moving vehicle.

One of the past limitations of this was that the cable I purchased occupied the entire slot on the base of the phone due to the fact that the phone needs a resistor across the first and second pins in order to tell that a cable was plugged into it.
But thanks to Tristan’s excellent soldering job, I now have a cable that allow my phone to be plugged in to a car charger and connected to GPRS simultaneously.

A few weeks ago, I picked up an Xbox and installed Xebian/Xbox GNU/Linux onto it. It occured to me that this would be the perfect platform to serve up the network access and perform some additional tasks, such as uploading the coordinates from a GPS unit to a web server tracking our progress. (Alternatives include plugging the device into mine or the other passenger’s laptops the whole time)

So how does one go about setting this up? For starters, I need to be able to have the Xbox establish a GPRS connection on its own. This requires that the Xbox load the usbserial module on boot:

# /etc/modules.xbox: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a “#", and everything on the line after them are ignored.

loop
input
keybdev
mousedev
joydev
sunrpc
lockd
nfs
scsi_mod
sd_mod
lirc_dev
lirc_xir
usbserial

The next step is to set up pppd for the T-Mobile GPRS service. I have the “VPN” service, but most users with unlimited access will have the regular one. The main difference is that the “VPN” service gets you a public IP address and must be specifically requested. In places where internet3.voicestream.com is used, internet2.voicestream.com should be replaced if this is the case. While I was writing it, I used Brad Midgley’s T-Mobile GPRS page and the Eridani Linux pages as references.

The /etc/ppp/peers/tmobile file:

# File: /etc/ppp/peers/tmobile
#
connect “/usr/sbin/chat -v -f /etc/chatscripts/tmobile”
/dev/usb/acm/0 # Motorola Phone Cable
115200 # speed
nodetach # don’t fork
debug # show debugging info
defaultroute # set the default route
replacedefaultroute # yes, override the default route
usepeerdns # get the dns servers from the tunnel
crtscts # do flow control
noauth # no authentication required
deflate 0 # don’t compress
asyncmap 0
mtu 1500
mru 1500
noipdefault
idle 600

The /etc/ppp/chatscripts/tmobile file:

ABORT ERROR
‘’ AT&F
OK AT+CGDCONT=1,"IP","internet3.voicestream.com”
OK ATDT*99#
CONNECT ‘’

The /etc/ppp/pap-secrets file:

(none) * password
‘’ tmobile

With that configured, pon tmobile activates the GPRS connection and poff tmobile deactivates it.

10/13/2004

Packetshaper in the sky

Filed under: — bill @ 7:03 pm

So for anyone interested in the rules of how packetshaping is done and the results of it, I have all of the rules and statistics now online. Interestingly enough, usage is only shaped in dormitories and VPN. The document is rather large (over a thousand pages!), so it might take some time to grok interesting details out of it.

10/8/2004

Linux on the Xbox

Filed under: — bill @ 10:28 pm

So I decided to pick up an Xbox cheap from GameStop this week. (I couldn’t resist, they priced them at $129 and even included the Mechwarrior game with the saved game buffer overflow vulnerability). Having read through quite a few guides that appear to have been written by script kiddies, I decided to document a bit of what I did here to save someone else the trouble, should they run across this guide.

The hard part is really getting the Xbox prepared having nothing else but a Linux desktop and an Xbox. I’d originally intended on soldering a USB extension cable into an Xbox controller, (surprise, surprise, the Xbox controllers use a standard USB 1.1 hub inside them and the memory cards are your standard USB memory sticks with a funny connector). “After I’ve got a regular USB connector, I’d be able to use the handy dandy images designed to be dd’d onto a USB memory stick", I thought. However, after letting magic smoke out of various bits of the controller several hours later, I decided that this was probably a bad idea.

At that stage, it was back to the drawing board, since I’d just bought an Xbox and I really didn’t want to break it nor become unable to get Linux installed onto it. A few details about the Xbox before I talk about what I decided to do: 1) The Xbox uses a regular 8 or 10 GB hard drive with a standard ATA lock enabled. It’s using maximum security, so the vendor’s master password cannot override the password. The Xbox unlocks it by generating a SHA1 hash based upon a value stored in an eeprom, its MAC address, the drive’s model and lastly, the drive’s serial number. Since I have no way of knowing what value is stored in the eeprom (though I could piece together the rest from physical inspection of the unit), I had to figure out some way to get unsigned code to execute on the machine to hand over the value of the eeprom. This, of course, is a catch-22.

The solution to it, while simple, is kind of boneheaded to try. (So I did) This method is what the Xbox kiddies call the “Hard drive hotswap trick". The idea is fairly simple: Plug in the Xbox, let it send the ATA unlock command to the drive and then plug the IDE cable into an already running desktop. There are a couple of caveats to this: the drive cannot be reset and cannot be powered down or it returns to the locked state. It’s easier said than done.

However, I did get it to work by powering on the Xbox, navigating to the saved games screen, unplugging the IDE cable and then plugging it into my desktop by itself on the secondary IDE bus with a Xlinux (a special Xbox distro) disk running off the cdrom. Surprisingly enough, it actually worked! Any linux distro with the xfat patches can be used, but the patch that I pulled off the xbox-linux’s project site refused to compile with gcc 3.3 and gcc 2.95, on my debian machine, so I settled on the livecd.

I was pretty happy at this point, having gotten it to work, but overlooked one detail: The save files needed to start MechInstaller. So I restarted with a hard drive containing the files on the second channel of the primary ide bus. (following all the steps from before, since I didn’t want to reset the drive). After unmounting all the filesystems and starting up the Xbox with the saved files in the proper directory (it’s the UDATA one, IIRC).

With the MechAssault game started up, I hopped over to “Campaigns” and there was the emergency linux boot game, which actually worked as advertised. The rest of the install is an exercise in installing Xebian or gentoo, that of which I probably wont actually do for a little bit since my new project is getting StepMania to run on here :).

Speaking of which, to run stepmania requires installing a dashboard replacement binary which is fairly trivial to do once you have emergency linux on your hard drive. It’s only necessary to pick up a copy of Bert is cheating on Ernie.rar and do a couple of things. (Yes, it is in fact named that, and it’s with snufflelopagus). I’m not certain about the legality of it, but since it’s my hardware, I don’t see why not.

Open up Rescue Linux and cd into /mnt/C, ftp the xbe file and the ini into the root directory, rename the .xtf files to something as a placeholder name, and move the two files into the fonts directory and bert to “Xbox book.xtf” and snuffle-boy to “Xbox.xtf". Stick the skin.ini file into /mnt/C/Skins and the two jpegs into a subdirectory of that named PheoniX. That should be about it to it, though it needs the version of the dashboard that comes with any live game for it to work. Note that while the link for the network has to be up to upgrade the dashboard, it should not give the machine a route to the internet because the replacement dashboard depends on behavior that is patched in later versions.

10/6/2004

Using gif devices on FreeBSD5

Filed under: — bill @ 3:02 am

This was not obvious for me and didn’t seem to be well documented, so mostly as a note to myself, when creating gif devices on FreeBSD 5, just do something like this:
ifconfig gif create
In previous releases of FreeBSD, it was automatically created for you and sort of sat there doing nothing. Other differences is that when configuring the interface you would do ifconfig gif0 tunnel a.b.c.d e.f.g.h instead of using gifconfig

9/21/2004

Open Records Requests

Filed under: — bill @ 8:42 pm

Ever get a random phone call on campus and can’t identify where it came from? If you think it’s a callbox, you can confirm it against caller ID by looking at this list: Emergency Phones. You’d be surprised how annoying it is to get them (them here being the university) to give you a straight answer when requesting something like this. They gave me a list of locations, but no numbers the first time around. Given that the name of the game here is obviously for them to give you no more than you ask for, and often less than what you want, so you have to be really specific.

9/4/2004

Successful Ruputer/OnHandPC Cross compiler on Mac OS X

Filed under: — bill @ 4:08 am

Tonight I finally managed to get gcc ready to cross compile for my ruputer watch. This combined with my port of fton to Mac OS X (10.3.5) means that I can now do development and testing of OnHandPC/Ruputer programs without the use of Linux or Windows. Here’s the steps necessary to get it to work:

(Note that I’ve built wget and installed it in /usr/local/bin from source, so I’ll use that in the examples. This can be replaced with a curl command or something similar.)

mkdir cross
cd cross
# Binary tools for cross compilation
wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.bz2
# Cross compiler
wget ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz
# Smaller C library designed for cross compiling
wget ftp://sources.redhat.com/pub/newlib/newlib-1.12.0.tar.gz
# GCC patches that make the cross compile work
wget http://www.lucid-cake.net/osx_arm/gcc-patches.tgz
# Tools required to convert the elf files to exf
wget http://www.nisoc.or.jp/~imai/archive/rutools-0.7.3.tar.gz
# A patch for the rutools that fixes a bug
wget http://www.toyoshima-house.net/ruputer/rutools-0.7.3.diff
# OnHandPC SDK
wget http://www.matsucomusa.com/Download/sdk.zip


# Build and install the binary tools
tar xjvf binutils-2.14.tar.bz2
cd binutils-2.14
./configure –prefix=/usr/local/ruputer –target=mn10200-elf && make
sudo make install
cd ..
export PATH=$PATH:/usr/local/ruputer/bin


tar xzvf gcc-patches.tgz
tar xzvf newlib-1.12.0.tar.gz
cd gcc-2.95.3
ln -s ../newlib-1.12.0/libgloss
ln -s ../newlib-1.12.0/newlib
cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .
# This will produce some errors, ignore them
patch -p1 < ../gcc-patches/gcc-2.95.3.patch
cd ..
mkdir gcc-build
cd gcc-build
../gcc-2.95.3/configure –prefix=/usr/local/ruputer –target=mn10200-elf
make
sudo make install
cd ..


# Now the cross compiler should be built and installed, but the needed libraries and headers to do anything useful aren’t installed yet.


unzip sdk.zip
cd onHand_SDK/RupSDK
sudo cp Inc/* /usr/local/ruputer/mn10200-elf/include
sudo cp Lib/* /usr/local/ruputer/mn10200-elf/lib
sudo find . -name “*.a” -exec cp ‘{}’ /usr/local/ruputer/mn10200-elf/lib ;
# This is a silly case issue
sudo mv /usr/local/ruputer/mn10200-elf/include/Address.def /usr/local/ruputer/mn10200-elf/include/address.def


# Okay, this is all that’s needed to create elf binaries for the watch, but we’re not quite done yet, since we need binaries in the exf format for the watch. Luckily, there’s a nice tool that comes with rutools that can do this for us.


tar xzvf rutools-0.7.3.tar.gz
cd rutools-0.7.3
patch -p1 < ../rutools-0.7.3.diff


# Edit the Makefile with your favorite editor and change the line that says “SUBDIR = rulib rutools ruutils ftr” to “SUBDIR = ruutils”
make
sudo make install
# All Done!

Okay, so those are the steps needed to set up Mac OS X for development on the Ruputer/OnHandPC. Note that I put my files in a slightly different place than is specified in most Makefiles, so they may need some slight tweaking to get to work properly.

8/21/2004

Despair.com “frowny”

Filed under: — bill @ 1:38 pm

If you didn’t already know it, you now have to have a license to use a “frowny” face. I bought one from despair.com. My license and smiley is online here: classicfrowny.txt

8/1/2004

Behold the apple

Filed under: — bill @ 3:35 pm

“Holy Shit this apple is good. It’s reached new levels of apple deliciousness. I for one welcome our new apple overlord”

–As overheard from the kitchen

7/27/2004

Internet Grammar

Filed under: — bill @ 4:28 am

This was just amusing enough to where I have to link to it:

http://www.thecoolkids.org/articles/editorials/onlinelang.php

7/21/2004

Catcher in the Rye + Ghost in the Shell: SAC

Filed under: — bill @ 8:02 pm

I’m about halfway through the first Ghost in the Shell: Standalone comples series and finally became curious enough to look up where “I thought what I’d do was, I’d pretend I was one of those deaf-mutes” came from. Well, it’s a reference to J.D. Salinger’s Catcher in the Rye. It’s a buildingsroman type novel about a kid growing up in New York. Here’s the paragraph that it’s exerpted from:

Anyway, I kept walking and walking up to Fifth Avenue, without any tie on or anything. Then all of a sudden, something very spooky started happening. Every time I came to the end of a block and stepped off the goddam curb, I had this feeling that I’d never get to the other side of the street. I thought I’d just go down, down, down and nobody’d ever see me again. Boy, did it scare me. You can’t imagine. I started sweating like a bastard–my whole shirt and underwear and everything. Then I started doing something else. Every time I’d get to the end of a block I’d make believe I was talking to my brother Allie. I’d say to him, “Allie, don’t let me disappear. Allie, don’t let me disappear. Allie, don’t let me disappear. Please, Allie.” And then I’d reach the other side of the street without disappearing. I’d thank him. Then it would start all over again as soon as I got to the next corner. But I kept going and all. I was sort of afraid to stop, I think–I don’t remember, to tell you the truth. I know I didn’t stop till I was way up in the Sixties, past the zoo and all. Then I sat down on this bench. I could hardly get my breath, and I was still sweating like a bastard. I sat there, I guess, for about an hour. Finally, what I decided I’d do, I decided I’d go away. I decided I’d never go home again and I’d never go away to another school again. I decided I’d just go see old Phoebe and sort of say good-by to her and all, and give her back her Christmas dough, and then I’d start hitchhiking my way out West. What I’d do, I figured, I’d go down to the Holland Tunnel and bum a ride, and then I’d bum another one, and another one, and another one, and in a few days, I’d be somewhere out West where it was very pretty and sunny and where nobody’d know me and I’d get a job. I figured I could get a job at a filling station somewhere, putting gas and oil in people’s cars. I didn’t care what kind of job it was, though. Just so people didn’t know me and I didn’t know anybody. I thought what I’d do was, I’d pretend I was one of those deaf-mutes. That way I wouldn’t have to have any goddamn stupid useless conversations with anybody. If anybody wanted to tell me something, they’d have to write it on a piece of paper and shove it over to me. They’d get bored as hell doing that after a while, and I’d be through with having conversations for the rest of my life. Everybody’d think I was just a poor deaf-mute bastard and they’d leave me alone. They’d let me put gas and oil in their stupid cars, and they’d pay me a salary and all for it, and I’d build me a little cabin somewhere with the dough I made and live there for the rest of my life. I’d build it right near the woods, but not right in them, because I’d want it to be sunny as hell all the time. I’d cook all my own food, and later on, if I wanted to get married or something, I’d meet this beautiful girl that was also a deaf-mute and we’d get married. She’d come and live in my cabin with me, and if she wanted to say anything to me, she’d have to write it on a goddam piece of paper, like everybody else. If we had any children, we’d hide them somewhere. We could buy them a lot of books and teach them how to read and write by ourselves.

(the boldness added is my own)

Seen in the context of the book, I have no idea what in the world this is supposed to mean in the series. I suppose I shall find out :-).

7/8/2004

Genetic Engineering?

Filed under: — bill @ 10:27 am

While I was in California, I visited the Tech museum and did their “genetic engineering” activity where you put proteins from jellyfish that have a luminescent property under UV light and then make modified E. Coli into producers of it. They track who visits it throughout the day with an RFID tag and then let you log into a museum page with the number on the tag. Here’s Mine:

E. Coli with jellyfish proteins

 

Google
 
Web anatifero.us
aggienerds.org

Powered by WordPress