Running Server-Side Javascript (SSJS) on Ubuntu

October 25th, 2008

Using JSEXT, I can now run javascript as a server-side scripting language on my Ubuntu box!

The main awesome thing about JSEXT is that a javascript file can be run either client- or server-side. This means that much your data validation code and some of your business logic can be kept in the same language, instead of splitting it into (for example) PHP + javascript. Furthermore, there's only one file to maintain for any given bit of logic.

Here's a quickstart guide to get JSEXT up and running with Apache 2 on Ubuntu 8.04 Hardy Heron:

Read full entry »

IE 7 on Linux

October 28th, 2006

When I'm making a web page at home on my laptop (a Linux machine), I test it on Firefox and IE 7. (I only test on IE7 now, because it will be distributed to Windows users as a high-priority update.) Unfortunately, IE 7 will not install under Wine, which is annoying because that's how I run Windows programs on my Linux machine. However, there is a way to get the layout engine of IE 7 working under Wine -- and that's all I need.

Read full entry »

Getting a software modem to work under Ubuntu Linux on an Acer Aspire 3500

May 17th, 2006
I have an Acer Aspire 3500 running Ubuntu Linux, and I occasionally need to use the modem. Unfortunately, the Acer uses a winmodem (softmodem), which is not well supported by linux (because it isn't a true modem).
  1. To locate the appropriate software, I needed to know what chipset my modem used. I used's scanModem utility.
    1. Download scanModem.gz to a working directory.
    2. Extract the gzipped file.
    3. On the command line, change the permissions to allow execution of the script: chmod +x scanModem
    4. I don't know what this does, but you have to do it: sudo modprobe snd-intel8x0m
    5. Run the script: ./scanModem
    6. Don't worry about all the output, just go to the newly created Modem folder. Open ModemData.txt, and scan through for information like "Your modem supports the _____ codec" or "Use a _____ driver". In my case, some text halfway through the ModemData.txt file instructed me to get the hsfmodem driver from There was also an additional file called Conexant.txt detailing HSF modems. If you can't figure it out, subscribe to the linmodems discussion list and send them ModemData.txt and a very nice request for help.
  2. If, like myself, you have a Conexant chipset modem, the following instructions may be of some use.

    Conexant is a manufacturer of softmodems. Linuxant has a contract allowing them access to Conexant's source code and technical information, so they can write software to support the modems under Linux.

    If you have a working ethernet or wireless connection on the machine that needs the modem drivers, use Conexant's online installer. Otherwise, you'll need to download and install the drivers manually.

    • If you are using the online installation:
      1. If you agree to the terms of the license, download the HSF softmodem driver.
      2. Run the file and follow the instructions.
    • If you are installing manually:
      1. Don't bother with the version-specific downloads -- get the generic package with source from the Linuxant HSF downloads page. I use Debian, so I picked the DPKG version.
      2. Download and extract the zip file.
      3. Go to the command line and navigate to the extracted folder.
      4. Before you can install the package, you need to have installed linux-headers-386: sudo apt-get install linux-headers-386
      5. Install the package: sudo dpkg -i hsfmodem_7.47.00.01full_i386.deb
      6. You will be prompted for some configuration information. I just hit enter at each prompt to accpet the default, except for the email address prompt, where I entered my actual email address. They won't spam you.

Download a torrent from behind a firewall

April 17th, 2006
Is your ISP practicing traffic shaping so restrictively that you can't use torrents?
Use an encryption-enabled torrent client, such as Azureus.
  1. Get Azureus from (You need to have Java installed on your machine first.)
  2. Run and configure Azureus:
    • Skip any updates, because they rely on torrents.
    • Set your proficiency level to Intermediate, so you can change the encryption settings later.
  3. Go to Tools -> Options -> Connections -> Transport Encryption, and require encryption.
  4. Under Mode, set your proficiency to Beginner. (Beginner has all the options you'll ever need as a downloader.)
  5. Restart Azureus, and let it do any updates it deems necessary.
Encrypting the transport layer prevents your ISP from determining what kind of traffic is passing through. If it can't tell it's a torrent, it can't slow or restrict it.
If you are only trying to avoid traffic shapers, set the minimum encryption level to Plain, which only obfuscates the packet headers. If plain encryption fails, Azureus will automatically escalate to RC4, which encrypts the entire packet. If you are also trying to avoid being caught downloading commercial music or software, you should probably use RC4 as the minimum. Actually, the best way to avoid being caught pirating is to use an extension like SafePeer. Encryption won't do anything, because your IP address is still visible.