Saturday, October 27, 2007

'fsck' Apple, I'll take my freedom!

<rant mode>
The newest version of OS X just came out, and my buddy was telling me about all its great new features. Many of those features have existed in the Linux world for years; some haven't.

He sent me email saying, "There is a big chasm and OS X is driving at 1000 miles an hour to close it on the Unix side. Now if Linux gets it's act together and does all the things OS X does correctly...cool!" Hmm, if "Linux gets its act together..."

Macs are nice. I won't deny that. However, let's face it. A big part of the success of OS X was that they were able to make use of existing software like FreeBSD, KHTML, bash, Python, gcc, etc. OS X can "drive a 1000 miles an hour" because there's so much outstanding open source code to draw on. The reason why the Linux world can't keep up with all the innovation in OS X is because things like Cocoa, Aqua, and Quartz aren't open source. Frankly, I'd love to take someone else's software, tweak it, package it up in a nice shiny box, and sell it for an exorbitant profit! Sure, they open sourced Darwin, but I need another derivation of BSD like I need another Python Web framework!

My response? 'fsck' Apple, I'll take my freedom!

I want the freedom to run my OS on the cheapest hardware I can find (aka my $375 Compaq).

I want to download my software from the Internet instead of wasting trees on packaging and time on a FedEx truck.

I want to share copies of my software with my buddies.

When it doesn't do what I want, I want to fix it myself so that it does.

When I'm trying to debug a problem in my code, I want to look at the source code for the library I'm using.

I want to write software for my phone without feeling like an outlaw, and I don't want to wait a year to do it.

I want to use my phone on whatever carrier is cheapest.

If I do switch carriers, I don't want to end up with a $300 iBrick.

Having been an open source advocate for years, I'm beginning to see that Stallman might be crazy, but he's also right. Open source software isn't always technically better. Sometimes it's a lot worse. Free software is about freedom.

'fsck' Apple, I'll take my freedom!
</rant mode>

Friday, October 26, 2007

Linux: Xubuntu 7.10 on a Compaq Presario C500

I was frustrated with Ubuntu 7.10 on my Compaq Presario C500, so I thought I'd give Xubuntu a try. So far, I really like it. It's crazy fast, and I have almost a gig of RAM free :)

Like Ubuntu, the non-standard display resolution worked correctly out of the box. Sound works, although it was crackly during install. In Ubuntu, suspend crashed my machine, but hibernate worked; I haven't tried it under Xubuntu.

Note that since the wireless card doesn't work by default, it's best to be plugged into a wired network during install. The installer makes use of the Internet connection to download various things.

Since this is a laptop, it's best to turn on sub-pixel hinting in Applications >> User Interface Preferences.

I'm not sure if it's needed for the instructions below, but I always like to enable all repositories:
  Applications >> System >> Synaptic Package Manager:
Settings >> Repositories:
Click on all of them except source code.
Unclick cdrom.
On the updates tab:
gutsy-security
gutsy-updates
I found out last time that you really don't want to rely on the bcm43xx driver for this wireless card. ndiswrapper is really the way to go:
  apt-get update
apt-get install ndiswrapper-utils-1.9
apt-get install build-essential
apt-get install linux-headers-`uname -r`
wget http://ftp.us.dell.com/network/R151517.EXE
rmmod bcm43xx
modprobe ndiswrapper
unzip -a R151517.EXE
cd DRIVER
ndiswrapper -i bcmwl5.inf
ndiswrapper -l
ndiswrapper -m
echo ndiswrapper >> /etc/modules
echo blacklist bcm43xx >> /etc/modprobe.d/blacklist
Reboot.
Due to the location and sensitivity of the touchpad, I find it necessary to turn off tapping and scrolling:
  apt-get install gsynaptics
Added 'Option "SHMConfig" "true"' to the "Synaptics Touchpad" section of
/etc/X11/xorg.conf and logged back in.
apt-get install gsynaptics
gsynaptics: # As a normal user.
Disabled tapping and scrolling.
Adjusted the sensitivity very slightly or else it gets set to zero on the
next login.
Unfortunately, I have to configure gsynaptics everytime I log in. For some reason, it's not remembering my settings. This is currently my biggest complaint.

Simply plugging in my printer was sufficient to configure it. Nice ;)

By default, plugging in your headphones does not disable the external speakers. However, a friendly reader of my blog posted a workaround:
  echo 'options snd-hda-intel model=laptop' >> /etc/modprobe.d/alsa-base
Reboot.

Thursday, October 18, 2007

Linux: Ubuntu 7.10 on a Compaq Presario C500

I just installed Ubuntu 7.10 (Gutsy Gibbon) on my Compaq Presario C500. Things went really well. Have I mentioned how much I love this little $375 laptop?

My laptop has enough room for Windows Vista (which I never use) and two copies of Linux. I like to keep around the old version of Ubuntu while upgrading to the new in case something goes wrong and I need a working system. This time, it recognized the other copy of Linux and migrated the users and their settings. By settings, I mean the settings for Gaim, Mozilla, and Evolution. This seems like a rather odd feature, considering it didn't copy all of the other files. Nonetheless, it didn't hurt anything.

Note, that it's probably better to be plugged into a wired network during the install so that it can setup repositories and download security updates. I wasn't, so I had to setup the repositories later.

Happily, the weird resolution (1280x800) just worked this time. Unfortunately, attempting to suspend crashed my machine, but hibernating still works. Sound works, even though it was crackly during install. Using my headphones still doesn't disable the speakers, which is a known bug in ALSA.

Here are my instructions for getting wireless to work:
  Enable repositories:
System >> Administration >> Synaptic Package Manager:
Settings >> Repositories:
Click on all of them except source code.
Unclick cdrom.
On the updates tab:
gutsy-security
gutsy-updates
System >> Administration >> Restricted Driver Manager:
Click enabled.
Download from Internet.
At this point, my blue wireless light came on.
If it doesn't, try pressing the wireless button.
Click on the correct icon on your panel to pick an access point.
My buddy, Adam Ulvi, has the same laptop, but is having more trouble than I am with his wireless card. However, it was also giving him a hard time in Ubuntu 7.04.

Due to the location and sensitivity of the touchpad, I find it necessary to turn off tapping and scrolling:
  apt-get install gsynaptics
Added 'Option "SHMConfig" "true"' to the "Synaptics Touchpad" section of
/etc/X11/xorg.conf and logged back in.
System >> Preferences >> Touchpad:
Disabled tapping and scrolling.
Adjusted the sensitivity very slightly or else it gets set to zero on the
next login.
Because this is a laptop, the fonts look better if you turn on subpixel smoothing in System >> Preferences >> Appearance. Note that the location of the font preferences has changed. While you're in there, you can click on the "Visual effects" tab if you want to turn on more eye candy.

Anyway, I'm happy. I've been waiting for this release for like a month, so today kind of felt like Christmas ;)

Monday, October 15, 2007

Computer Science: What's Wrong with CS Research

I absolutely love this blog post: What's wrong with CS research.

I'm a wannabe language designer. I've written three articles on Haskell, but I adore Python. I've been thinking of going back to get my Ph.D so that I can try to move the industry forward. I could never figure out why programming language research had to be so dang complex or mathematized.

A lot of his points matched the points I made in one of my articles, Everything Your Professor Failed to Tell You About Functional Programming, especially in the "What's Up with All the Math?" section.

I'm so glad that I read this post! I feel like I've been set straight. Now I know that hanging out with Guido is probably more useful than trying to understand all those crazy research papers ;)