Xaero.org Tech news, reviews, and whatever else I wanna put here!

5Dec/101

The perfect Open Source laptop

I'm a huge fan of FreeBSD. So much so that all my systems are running the latest version (8.1 as of this writing). Many of my blog posts are about FreeBSD or mention it in some way. So maybe that's why it bothers me to say this:  FreeBSD just isn't well suited for a portable computer. I've fought it for some time and come to the conclusion that Linux just works better on laptops. A few of my gripes:

  • Non-journaled filesystems suck. Using UFS + soft-updates helps but can be tedious on large drives. I think journaling + soft-updates is coming in 9.0 so maybe the level of suck will be less. Nonetheless, having to fsck a drive is an idea whose time has passed.
  • ZFS kicks major butt but really needs a 64-bit CPU plus several gigs of memory, which leaves older laptops like mine out to dry. I can't get it to work as a root filesystem on any of my portable systems. I get a kernel panic on my i386 machines and the boot loader doesn't properly recognize my drives on my lone amd64 laptop.
  • There's no good wireless manager for any of the BSDs. Linux has one called Wicd. It works with anything you throw at it, including WAPs that require an SSL certificate. You can do most of that in FreeBSD but it requires you to edit several config files. Try changing between locations that use different SSIDs or different encryption. Wicd continues to just work without needing to change any configs, even with the built in ncurses interface. Wicd is heavily tied to Linux (it makes use of the Linux proc filesystem) so porting it would basically require a rewrite.
  • For some reason, Xorg seems to be hit or miss, driver-wise. It frequently hard locks on one of my systems with a Radeon but not another with a newer Radeon. I've never seen a lock up using the proprietary Nvidia drivers but the Nouveou drivers don't support 3D acceleration on all cards. I realize that most of the Xorg stuff is the same between BSD and Linux so that begs the question of why I see this on BSD but not Linux?

FreeBSD is rock solid on my desktop machines and ZFS on the root file system is a dream, so it's a bit disheartening that that experience didn't carry over to laptop-land. So, after dealing with the above annoyances I decided to throw my favorite Linux distribution on my laptops: Gentoo.

I wrote about Gentoo some time ago, ironically because I was critical of some things I needed in FreeBSD before I made the switch. Gentoo is unlike every Linux distribution out there (except the Linux From Scratch project) in that you have to build it in order to use it. This can be a serious turn off for folks that just want to install and get on with life, but I find it very intriguing and a great way to understand Linux at a much deeper level. The same idea holds when you want to install software; instead of prepackaged archives, you build it from source. This process is made easier with the Portage software management system, but you can tweak a near limitless amount of things to get exactly the kind of system you want. No bloat, no muss, no fuss.

With Gentoo installed, your next step to laptop bliss is to install Wicd to manage both your wired and your wireless interface (assuming you have one). Wicd is in the base Portage system, and assuming you chose the "desktop" Portage profile, installing Wicd should install a bunch of stuff. If you followed the Gentoo installation documentation, you probably added one or more of your Ethernet interfaces to your init scripts. Delete the net.eth scripts, but leave the net.lo script for the loopback interface. Add wicd to your init scripts by using 'rc-update add wicd default'. This ensures the wicd daemon starts so you can connect to networks.  Since you don't have Xorg installed, you can use the ncurses interface by typing wicd-curses. Check out the man page for wicd for more details.

Next up is getting Xorg installed. This can take a while, but it basically involves specifying your video card type and input method (typically evdev on modern versions of the Linux kernel) in the /etc/make.conf file. Building Xorg will likely take quite a while so now might be a good time to catch up on your bash.org quotes. Make sure you get hald and dbus started and added to your init scripts when the build completes.

With the X server built, we're in the home stretch. The next thing to install is some sort of desktop environment like Gnome or KDE, or my preference, a simple window manager. You are, of course, free to install whatever tickles your fancy but for all my portable systems, nothing, and I mean NOTHING, beats StumpWM for a window manager. StumpWM is a rewrite of the Ratpoison window manager in Common Lisp. Ratpoison is heavily inspired by GNU Screen, so if you're an avid screen user, you'll feel right at home with both Ratpoison and StumpWM. Let me give you a few reasons why I think you should give one of these window managers a try before you go kicking and screaming back to Gnome or KDE.

  • First and foremost, they're keyboard-driven. You're on a laptop, probably with an annoying touch pad or worse, the little pencil eraser pointer-thingy. Why would you inflict that kind of pain on yourself when you'll be far more productive if you could just keep your fingers on the keyboard?
  • Ever fly commercial? Ever get stuck in coach next to someone that doesn't know the meaning of personal space? Good luck using an external mouse when you're crammed in like a sardine at 60,000 feet.
  • If you write code for a living or even just as a hobby (you weirdo :-) ), your brain will appreciate not having to break concentration to reach for a mouse when you need to switch between terminals or editors.
  • They automatically maximize windows for you. You can see everything without needing to get a window sized just right with the mouse. You can, of course resize windows and split them as needed.
  • Pretty much anything you can do on a laptop would be enhanced by a window manager that is keyboard controlled.

With all the above in mind, you'll want to pick either Ratpoison or StumpWM to use. Ratpoison is written in C, uses minuscule amounts of memory, and is easily installed using the 'emerge' command. StumpWM is written in Common Lisp, so you'll need to install that first. If hearing the word Lisp sounds vaguely familiar, it should be. Lots of other open source software is written in Lisp or uses it, such as Emacs and The Gimp. Some closed source software uses Lisp as well.

To get a Lisp interpreter, you'll want to install either the CLISP interpreter or the SBCL interpreter. I highly recommend you install SBCL instead of CLISP. Add the following to your '/etc/portage/package.use' file (you may need to create the /etc/portage directory and the package.use file if they don't exist):

media-libs/gd fontconfig
dev-lisp/sbcl doc

Next, add the following to your '/etc/portage/package.keywords' file:

x11-wm/stumpwm ~x86

Your USE flags in '/etc/make.conf' should look at minimum like the following:

USE="sbcl -qt4 -kde X dbus hal -cups"

This should get you a working install of StumpWM but the version in Portage is pretty old and looks like it hasn't been touched in some time. Plus it doesn't even compile a StumpWM binary for you! Instead, you should use the version in the Git repository. In addition to making the changes above, emerge the following ports like so:

sudo emerge -av cl-clx cl-ppcre autoconf

You may need to install Git in order to grab the StumpWM source. Grab the StumpWM source like so:

git clone git://git.savannah.nongnu.org/stumpwm.git

I generally just keep the StumpWM source in my home directory. It doesn't take much space at all and there are several goodies in there. Go into that directory now and type "autoconf". Once that completes, type "./configure" You should see a lot of messages whizz by. Make sure the output of the configure script shows you're using SBCL. Once that completes, type "make". That should actually compile the StumpWM and Stumpish (Stumpish is a "shell" to StumpWM) binaries for you. Once that completes, you should have a StumpWM binary in your ~/stumpwm folder and a Stumpish binary in your ~/stumpwm/contrib folder. Copy both to /usr/local/bin as root. I tried adding my ~/stumpwm folder to my PATH and running it that way but it just doesn't work right, so installing both to /usr/local/bin is the way to go.

With a fresh copy of StumpWM built, add it to your .xinitrc: "echo 'exec stumpwm' >> ~/.xinitrc" and fire up a startx! You should see a welcome message. If you do, congrats! If not, you may want to try the StumpWM wiki.

Below is my .stumpwmrc file for you to pick apart and customize for your own needs:

;; My key bindings
(in-package stumpwm)
(define-key stumpwm:*top-map* (stumpwm:kbd "F12") "mode-line")
;; switching window
(define-key stumpwm:*top-map* (stumpwm:kbd "M-Up") "pull-hidden-previous")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-Down") "pull-hidden-next")
;; switching frames
(define-key *top-map* (kbd "M-Page_Down") "fnext")
;; switching groups
(define-key stumpwm:*top-map* (stumpwm:kbd "M-Left") "gprev")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-Right") "gnext")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-F1") "gselect 1")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-F2") "gselect 2")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-F3") "gselect 3")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-F4") "gselect 4")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-F5") "gselect 5")
;; splits
(define-key stumpwm:*top-map* (stumpwm:kbd "M-s") "vsplit")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-S") "hsplit")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-q") "only")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-r") "remove")
;; programs
(define-key stumpwm:*top-map* (stumpwm:kbd "M-c") "exec xfce4-terminal")
(define-key stumpwm:*top-map* (stumpwm:kbd "M-F") "exec firefox-2")

;; mouse
(setf *mouse-focus-policy* :sloppy)

;; prefix key
(set-prefix-key (kbd "Pause"))

;; wallpaper
;; (stumpwm:run-shell-command "display -window root '/home/<USER>/backgrounds/someimage.jpg'")
(stumpwm:run-shell-command "fbsetbg -l")

;; ff command
(define-stumpwm-command "firefox" ()
  "Run or switch to firefox."
  (run-or-raise "firefox" '(:class "Firefox")))
(define-key *root-map* (kbd "w") "firefox")

;; Multimedia Keys
(load "/home/<USER>/.stumpwm/multimedia-keys.lisp")

; Brightness Adjust (Fn + Up/Down)
(run-shell-command "xmodmap -e \'keycode 212 = XF86LaunchE'")
(run-shell-command "xmodmap -e \'keycode 101 = XF86LaunchD'")
(define-key stumpwm:*top-map* (stumpwm:kbd "XF86LaunchE") "exec brightness +")
(define-key stumpwm:*top-map* (stumpwm:kbd "XF86LaunchD") "exec brightness -")

;; Load Mode line
;; (load "/home/<USER>/.stumpwm/modeline-config.lisp")
(toggle-mode-line (current-screen) (current-head))

;; show the time in the mode-line
(setf *screen-mode-line-format*
        (list '(:eval (run-shell-command "date '+%R, %F %a'|tr -d [:cntrl:]" t)) " | [^B%n^b] %W"))

;; Modeline Group Scrolling
(setf stumpwm:*mode-line-click-hook*
      (list (lambda (&rest args)
(cond ((eq (second args) 5)
(run-commands "gnext"))
((eq (second args) 4)
(run-commands "gprev"))))))

;; Theming
;; (load "/home/<USER>/.stumpwm/effects.lisp")

;; Male's code for key sequence display
(defun key-press-hook (key key-seq cmd)
  (declare (ignore key))
  (unless (eq *top-map* *resize-map*)
    (let ((*message-window-gravity* :bottom-right))
      (message "Keys sequence: ~A" (print-key-seq (reverse key-seq))))
    (when (stringp cmd)
      ;; Give 'em time to read it.
      (sleep 0))))
(defmacro replace-hook (hook fn)
  `(remove-hook ,hook ,fn)
  `(add-hook ,hook ,fn))
(replace-hook *key-press-hook* 'key-press-hook)

Feel free to use what you can and look around for anything I missed. It'll take a bit of getting used to, but once you do, using a keyboard driven, tiling window manager on your laptop becomes second nature and you wonder how you went without it. For a great video introduction to StumpWM, go here. Enjoy!

17Jul/100

Installing the Kismet wireless scanner on Gentoo Linux on a Thinkpad T40

Kismet is a very handy wireless scanning and capture program. Unlike programs such as Netstumbler, Kismet allows you to capture wireless traffic. This could, of course, be used for both good and evil, so I leave it up to you to do what you will.

Kismet is in Portage, but it lags a bit behind the current version (2008.05 is in Portage and 2010.07R1 is the latest as of this writing). You should be able to get the latest version by using an overlay, but I'm not keen on using overlay software unless I really need the bleeding edge. Use portage to install Kismet:

%sudo emerge -av net-wireless/kismet

Once installed, you'll need to modify the config file before you begin scanning. Open /etc/kismet.conf in your favorite text editor and add your login to the 'suidsuser' variable. There are quite a few options to configure, but the one you must configure is a capture source. For our needs, change the 'source=' line to the following:

source=ipw2100,eth1,ipw

I suppose this would work for most of the older IPW2100-based Centrino notebooks since the Centrino chipset is the same. Save the config and exit. You should be able to type 'kismet' at a terminal and have the client and server automatically start. If this doesn't work, you may have to manually change the kismet server to set uid. Do the following:

%sudo chmod +s /usr/bin/kismet_server

Try launching the program again. If you see a text based interface and some SSIDs, you're good to go! If not, you may have to fiddle with your settings a bit more. Either way, happy scanning!

17Oct/090

How to install GNS3 in Gentoo Linux

Now that I've switched to Gentoo Linux, I had to learn a few tricks about getting my favorite software installed. One application I can't live without is GNS3, or the Graphical Network Simulator. It allows you to easily simulate a network of Cisco routers in an easy to use, drag and drop interface. I've used it to study for a number of Cisco certification tests (and pass them too!) and it really helps. If you have access to a few IOS images that Dynamips supports, I encourage you to install GNS3 to simplify your studies.

Getting GNS3 installed under Gentoo Linux takes a little more work since Gentoo is a source distro (you have to compile the software yourself) but is well worth the effort.

Read on and find out how to get GNS3 working in Gentoo Linux!

2Aug/090

Hello Gentoo!

I have to admit, I'm a bit of a glutten for punishment. For some reason, I actually enjoy the challenge of lesser-known distributions. While I've been taking a good hard look at FreeBSD and how it might meet my needs, it is still lacking several key applications I rely on: VirtualBox (yes, it's in ports, but have you actually gotten it to work? I haven't) and the  Adobe Flash player (tried gnash, didn't work. Adobe won't cough up an amd64 FreeBSD player). Granted, these are minor hiccups but other things are also keeping me from using FreeBSD on my main desktop.

To that end, I've been happily using Debian Lenny. It's nice because it generally works on anything you throw at it and the apt utility can't be beat for software management. Apt can also be a royal pain in the ass. I tried for hours to get it to play nicely and install mplayer with the codecs I wanted but there seemed to be a "stuck" package on my system that wouldn't upgrade. My other annoyance with apt is that applications aren't always updated as fast as they should be. The main one that comes to mind is Pidgin, the IM client that connects to all the different messenging networks. Again, I wrestled with apt for weeks, trying to get the latest greatest version of Pidgin without having to move over to Sid. I even tried using the backports repository. Still no dice.

That's when I started thinking about FreeBSD again. I've been using it successfully on a new laptop I've got (article on that to follow at some point) but there my requirements are much less. So then I thought about Gentoo. Gentoo has all the Linux goodness and a system called portage that isn't unlike the FreeBSD ports tree. In fact, portage was inspired by FreeBSD's ports system! So I set out to install Gentoo on my main desktop box.

I've got fairly vanilla hardware so I was sure that it was all supported. (specs: Intel Core2 Quad Q6600, 6 GB PC-8500 RAM, 2x 1 TB hard drives (one for backup), EVGA Geforce 9500 GT, Intel Pro/1000 NIC, Gigabyte EP45-3DSL motherboard, Logitech USB mouse and keyboard) I was happy to see that I was right. I simply burned a CD of the weekly minimal installer CD and booted up. Gentoo is interesting because unlike most other distributions of Linux, you aren't confronted with a happy graphical installer. Nope, you get dropped to a root prompt and have to go from there. Fortunately, the documentation is impeccable and very easy to follow. To take full advantage of my hardware, I followed the AMD64 guide, located here. I was lazy when I installed and opted to use Gentoo's "genkernel" package to build my kernel for me. I may trim down my kernel at a later point and remove all the junk that's not needed. After about 45 minutes, I had a bare system up and running.

The fun part is deciding where to take it from there. Since I'm using this machine as a desktop box, I installed Xorg and my current favorite window manager, XFCE. Like FreeBSD, Gentoo compiles all software from source code so you can really take advantage of your hardware. Unlike FreeBSD, however, Gentoo's portage system is a lot easier to use. Instead of drilling down the ports tree to find what you want, then issuing a "make install clean", you simply use the 'emerge' utility. This is as simple as "emerge --search <someapp>" to search for something and then "emerge <someapp>" to install it. emerge is definitely more powerful than that (I'm using it to update my entire system as I'm writing) so it's well worth either looking at the man page or the online documentation.

I did run into a few kinks along the way. After having a base system installed along with XFCE, I wanted sound so I can listen to some tunes while working. Since genkernel pretty much gives you a kitchen sink kernel, ALSA support was already in the kernel (which by the way, is how it's supposed to be moving forward I'm told). The only thing I had to do was to emerge the alsa-utils port so I'd get the mixer app and startup scripts. Documentation for that is located here.

The other kink I ran into was the need to dual boot that other OS. Yes, I still play the occasional game here and there but by and large, my days are spent in Linux doing stuff. The grub section under the installation guide is helpful, but not in a case where you've got Windows installed on a different drive. The problem is that Windows wants to be on the first drive and can't fathom why you'd want to boot into any other OS. To remedy this, I added the following information to my grub.conf file:

title Windows XP
        rootnoverify (hd2,0)
        map (hd0) (hd2)
        map (hd2) (hd0)
        chainloader +1

In my case, my Windows drive is the third physical hard disk installed (the first being the Linux installation and the second being the backup drive). Remember,  in Grub-land, hard disks start at zero. Since Windows doesn't like not being the first drive, you have to trick its boot loader into thinking it is. This is where the map commands shown above come in handy. The last line just tells grub to seek 1 sector from the start of the partition (usually the boot sector).

So far I'm really impressed with Gentoo. I no longer have to worry about conflicts (emerge takes care of it for you) or outdated packages (emerge builds the latest/greatest depending on your system profile). My system is clean, has only what I actually use, and I have a far more thorough understanding of what's going on. What's not to like??

8Feb/092

Installing Handbrake on Debian GNU/Linux

I don't actually watch that many movies but occasionally I want to back them up or convert them to a more convenient format. To date, I've been using the excellent Handbrake utility on my PowerMac G5 for my video conversion needs. Since I waved goodbye, I now needed at least the same functionality on my Linux machine. Fortunately, Handbrake is open source and under GPL license so it also has a GTK-based Linux equivalent. To get it installed, you'll need to edit your apt sources and add the following:

#Handbrake
deb http://www.debian-multimedia.org sid main

You'll notice I specifically used the "sid" release. There is no "stable" prepackaged binary for Handbrake yet unless you're on Ubuntu, so you have to specify sid. It works regardless so not to worry. With that line added, save the file and install:

$sudo apt-get update
$sudo apt-get install handbrake-gtk

It should install the requisite binaries without a hitch and add Handbrake to your menu under "Multimedia" if you're using Gnome or XFCE (I don't use KDE so I couldn't tell ya). Here's a screenshot from my machine for the ever-curious (click on the image to enlarge it):

Enjoy!

18Jan/090

Installing the official Nvidia drivers on a Debian system

Since I'm doing the Linux thing, I'm going to start writing more informational articles describing handy tips that I feel are useful. If you read my last post, you'd know I'm now using a Debian GNU/Linux system that has an Nvidia video card.

Video has always been a bit of a sore spot in the Linux and Unix world. It wasn't until the late 1980's that Unix systems even had a graphical subsystem (XWindows, as it is still known). Even today, the hardest part of bringing up a useable Unix-based system is getting the video adapter to work with XWindows. Today, most systems use a fork called Xorg.

While it would seem that the only video card you can buy will either contain an Nvidia or ATI chip, that's not entirely true. It is interesting (at least to someone like me) that Nvidia graphics cards are more often seen on Linux-based systems and ATI-based cards are more often seen in the BSD world (Free/Net/Open). Probably just a coincidence, but when I read forum posts, that's what I tend to see. Since we're talking about Linux in this article, let's get down to the business of installing some accelerated drivers for our Nvidia-based card.

One of the first places to look is the Nvidia Driver Debian wiki. Per the wiki, there are two ways to install the driver. The first method is the Debian method, which, while it may be easier, it also may be lagging behind driver versions. I chose the second method, which involves downloading the driver binary from Nvidia's website and manually installing it. There are a few caveats, namely that it's possible to screw up the install, not work, or require a reinstall if you upgrade your kernel since the driver compiles a kernel module. I didn't run into any installation problems but I would imagine that I'd have some difficulties if I upgraded my kernel. Nothing terrible to worry about though.

One thing to note is that driver availability for older Nvidia cards (made before 2005) is probably non-existant. So while you can probably get by using the generic VESA driver, you probably will no longer be able to use the latest Nvidia driver and therefore the 3D acceleration. See this section on the Debian Nvidia wiki for more info.

First, download the driver from here: driver download. Do remember that this driver is a propriatary, closed source driver. If that offends you, you should probably stop here. My understanding is that there is an open source Nvidia driver on the way so if you don't need 3D acceleration (obviously you haven't tried Compiz Fusion), this article isn't for you. I'm willing to bit the bullet and install a non-free driver for the sake of fully utilizing my hardware and will certainly move to the open source version when it shows up.

Next, you'll want to download your kernel source. Actually, I got by just getting the header files. Open your favorite terminal and type 'sudo apt-get install linux-headers-2.6-686'. If you don't have the sudo program installed (and you SHOULD), just su to root and issue the apt-get command again without the sudo part. I'm assuming you're running a 2.6 kernel on 686 hardware. Most people should no longer be running an i386 kernel.

Now for the fun part. You might want to write this down or open this article on another machine. To install the driver, you need to fully exit your X session. No, you can't open a terminal session from GDM. I'm particularly lazy, so I just rebooted into single user mode. Either way, you need to completely get out of X and be at a root prompt. Change to the directory where you downloaded the driver and chmod it to 755 if needed. Now run it, ignoring the runlevel error. Accept the license. You may get an error about the version of GCC installed on your system not matching what was used to compile the kernel. Do NOT just ignore this. Exit the installer. In my case, GCC 4.1 was used to compile my kernel so I just did a '#apt-get install gcc-4.1'. Next, you'll want to export the location, so first do a 'which gcc-4.1'. In my case, I did a 'export CC=/usr/bin/gcc-4.1'. Now rerun the installer. You should be good to go from here. The installer will build a custom kernel module, back up and modify your X config, and tell you if things have completed successfully. If that's the case, exit the installer and reboot!

Once I was back up I did a test by running Doom3 and was happily surprised to see it come right up. I have to admit, it's nice to run a system with no proprietary drivers, but I can't complain that Nvidia is gracious enough to provide a driver. After all, they don't have to since the majority of their customers are on a Windows system and developing and testing a Linux driver takes resources from that. So I say kudos to Nvidia for making a solid driver that installs easily and just works!

16Jan/091

The long goodbye…

As anyone who has known me knows, I'm definitely a Mac user. I've used Apple hardware on and off since the Apple II days. The first Mac I actually bought, however, was a G4 tower. Most of the time before that was spent hating Apple and suffering in a Windows world.

This went on until a good friend took the time to show me what his G3 could actually do. Of course, back then, Mac OS 8 was the de facto OS and Mac OS X was still a research project. I initially resisted but started liking what I saw enough to say "I want one!". It was then that I bought my first Macintosh, a 400 Mhz PowerPC G4 PowerMac. It came with 64 MB of RAM, an 2x AGP ATI video card with 16 MB of RAM and a whopping 20 GB hard drive. It also came with the venerable 400 MHz PowerPC 7400 (G4) processor with the AltiVec "Velocity Engine" vector processing unit and 1 MB of backside cache. This CPU smoked any Intel Pentium 3 at the time and was classified by the U.S. Government as a supercomputer since it was capable of at least a Gigaflop of performance. Another nifty component this machine has is a gigabit Ethernet interface. No other PC I can remember at that time (we're talking late 1999, early 2000) had that and most didn't have an Ethernet interface (56k was still the bomb-diggity). Needless to say, for $1599, this was a very nice Macintosh.

I endured many months of ridicule but really enjoyed my G4. One very interesting point was that the Playstation emulator, Connectix Virtual Game Station, actually ran Playstation games on my G4 faster than a Playstation! I continued to love my G4 until I decided it was time to go back to school.

At that point, I got my first Apple notebook, the Powerbook G4 Titanium 867. It basically had double the specs of the PowerMac. I wound up selling my PowerMac to a friend that needed a new machine which I thoroughly regret to this day. I had been running Mac OS X 10.0, then 10.1 on the PowerMac with Mac OS 9 "Classic" alongside it. The PowerBook came with Mac OS X 10.2 "Jaguar" and it was a rather large bump in speed from earlier releases as well as actually having software to use.

Shortly before graduation in 2004 I bought a shiny new PowerMac G5 (Dual 2.0) as well as a 23" Apple flat panel (graduation present to myself of course!). It had easily six to ten times the speed of my notebook and is what I currently still have. Not planning on selling it and making the same mistake twice!

Since that time, a subtle but continuous shift has been going on with the direction Apple has taken its business. Back when Mac OS X debuted, Apple was very gung-ho about it's core business: selling Macs. It also had a miniscule share of the overall PC market, so it was still playing catch up after the success of the iMac line. Development of new hardware and Mac OS X happened at a frenzied pace, as evidenced by all the announcements of cool new technology. This continued to happen until around 2006, when the iPod really started becoming a large part of Apple's revenue. Then the iPhone debuted in 2007. And there was the Apple TV. Suddenly, Apple is no longer a PC maker and is instead a consumer electronics maker. They even dropped "Computer" from their name.

I started noticing many changes to what were Apple's core business: Macs and Mac OS X. Now there's nothing but tie-ins to the iTunes store or some other non-PC product or service. New notebooks now have HDCP built in to appease Hollywood in its neverending quest to make water not wet. Everything Apple does surrounds the iPod line or the iPhone now. People say it's supposed to be a halo effect to get you to buy a Mac but I call bullshit on this one. If Apple can sell an iPhone to someone who just wants to make phone calls, they will. There's no indication at the AT&T store that you should also own a Macintosh to get the best experience. Apple is now the new Sony: a consumer electronics behemoth that does much, but nothing very well in particular. Their OS is now comparable to Windows: a tiny portion of it is engineered to get stuff done and the rest is engineered to get in your way and wrest control of your computer from you. And resist as I could, I just couldn't stay away. Until now.

For the past several months, I've been evaluating more than one Free/Open source operating system for use as a replacement. After lots of time spent on all three, I wound up settling on Debian GNU/Linux. Why? Because Debian is a very mature and actively developed distribution of Linux. I tried Ubuntu for a month and a half and it just feels like it's got more "stuff" than I need. I presume this is for handholding new Linux users. It would appear that I'm not the only one getting a little more than sick of the way Apple treats its power users. Two "A-list" bloggers (gawd I hate that word), Mark Pilgrim and Cory Doctorow, are also former Mac users and for very much the same reasons I am (only they did it 3 years ago).

I've used Linux plenty in the past, first installing Red Hat 5.1 on an old 486 back in the day and even managing to get X windows to bend to my will. Today's Linux distros are nothing like that. Everything just kind of works and the stuff that doesn't isn't so hard to fix. I would place the hardware support in Linux about where Windows 98 was: if it works, it works, but if not, prepare to get dirty. To that end, I built a pretty nice box:

* Intel Quad Core Q6600 CPU

* 2 GB PC-8500 DDR 2 RAM

* 1 TB Seagate SATA hard disk

* Nvidia GeForce 9500 GT video card with 1GB RAM

* Gigabyte EP45-DS3l motherboard

* Logitech wireless mouse, wired keyboard

* Repurposed LaCie Big Disk Extreme 500GB Firewire 800 drive

* PCI express Firewire 800 card

* Dual layer DVD burner

By today's standards, these specs are probably a mid-range Windows Vista machine. Yet, by running Debian, I get spectacular performance, no annoying product tie-ins, and best of all, my operating system does what I want and nothing more (yes, that's you, DRM). In layman's terms, this means I control my computer at all times instead of being forced to prop up an entire industry dedicated to preventing me from doing what I want with the stuff I've got. For those of you with entirely too much time (hey, you've made it this far), read here about what goes into ensuring you can't "pirate" content on Windows Vista.

As a parting note, it was nice to build a PC again after a 4 year hiatus. I got all that hardware for less than the cost of a Mac mini and it's certainly more capable. I was rather shocked at just how cheap and powerful PC hardware has become as of late. Since I didn't have to buy a PC and pay the Windows tax, I also saved more cash. And in these times, that's certaintly a good thing. Next time I'll post a list of what apps I'm using so any Linux enthusiasts out there can compare and contrast.

So long Apple, it was fun while you were a PC company.

28Oct/080

Mastering IPTables

Two cool articles up on Linuxjournal.com regarding IPTables, the built-in firewall for Linux. I've struggled to learn how IPTables works (especially after using the excellent OpenBSD pf firewall) but these videos really explain IPTables well:

Part 1

Part 2

I would encourage you to watch both videos if you use Linux, especially if your system is exposed to the Internet (not behind a home router).

17Feb/080

Installing Dynamips and Dynagen on Ubuntu 7.10

I've been using Dynamips and Dynagen for a little while to practice for some Cisco tests and have to admit, they really help you get configuring routers in a flash. I decided to write up an article in case you're looking for a quick and easy way to do some Cisco labs.

The only downside is that you don't get exposure to real hardware but considering most network engineers are nowhere close to the equipment they're working most of the time, that isn't necessarily a bad thing. Check out the article here.

16Feb/060

MythTV 0.19 Released!

MythTV 0.19 Released!: "As most of you know, we at 2CPU.com are big fans of the Home Theatre PC. As such, we felt it necessary to let everyone know that MythTV 0.19 has been released! Changes include:"

(Via 2CPU.com.)

Filed under: Linux, Software No Comments