Awesome
August 27th, 2009
Not fully sure why they say MythTV is needed since it’s just using basic commands (unless I’m missing something here), but I’m totally going to do this for the next baby.
Artifacts
August 23rd, 2009
I had all summer to gradually start cleaning and packing to move in November. Naturally, I did nothing. I finally started to feel a sense of urgency when my wife threw down a to-do list on my desk. While I’d normally blow it off, she titled it “Phase 1″, which to be honest, scares the hell out of me for what’s in store in later phases.
So, I started in the depths of my office closet where I knew I’d come across some relics of computing past. What I hadn’t realized was just how much I’d find and how far back they go. Below are just a few of the ancient, dust-covered computing artifacts I came across:
- Two copies of Windows 98.
- One copy of Microsoft Works Suite 2001. Unopened; I think it was part of a restore package for an old laptop.
- A copy of Red Hat Enterprise Linux 7.3. At least I wasn’t a complete Windows whore back in the day.
- Four “spare” keyboards (so far) not counting the one I already use to bait my daughter away from my real keyboards.
- An external Iomega Zip Drive and a few disks. For those of you who don’t know what that is, it sports a cool 100MB disk size at a time when floppies and modems ruled the day.
- A 500W ATX power supply. This is actually pretty new. It came with a case I bought but I needed something more powerful. The real question is why I kept it around.
- A Palm V. Amazingly, the screen isn’t shattered.
- A SCSI hard drive of unmarked size that I haven’t got a clue what it may contain.
- At least 25 ethernet cables of assorted sizes. I have no idea how the hell I came to own so many, it’s like the reproduce or something.
- Five laptop bags. I think every time I quit a job, I’ve take the laptop bag as a trophy.
- A 12 foot keyboard extension cable. No idea where it came from, but one has to question the practicality of a keyboard extension so long that you couldn’t possibly see what you were doing on the screen.
- Assembly instructions for a desk I got rid of three years ago.
And the worst of all?
- One copy of Windows Me.
This is all just in the office closet. I have yet to venture into the attic. If I find an external modem up there I’m gonna lose my mind. I really should save some of this stuff and set up a small monument to computing history in my new office.
Amazon MP3 Downloader on Fedora 11
July 3rd, 2009
I’ll cut to the chase: it doesn’t work. But have no fear, there’s an OSS solution.
I recently got into using Amazon for buying MP3s. It’s DRM-free and has a great integration with pandora.com, which lets me hear a new song and click directly in pandora’s interface to buy it. It’s technology at its finest, if not its most dangerous (to my credit card).
Amazon is annoying in the sense that you can download single MP3s as an MP3 file, but to buy a full album you have to use their proprietary downloader. This was bearable until a recent change where all MP3s now have to be downloaded using their downloader.
The problem? The most recent build of their client is for Fedora 9 (or Ubuntu 8.10 if you go that route). So their software is, um, I’ll just say “not up to date”. I was able to hack around to get it to run under Fedora 10, but it’s flat out busted in Fedora 11.
As I said at the outset, there is hope. Clamz is a command line app to download MP3s using Amazon’s .amz formatted files. It’s exactly what you think it is. You download the .amz file from Amazon (at the point in Amazon’s workflow where you should be just downloading the MP3 itself) and run the clamz executable passing in the .amz file. Poof, it just works.
I’m disappointed it has to come to this. I know Fedora 11 is still new, but that doesn’t change the fact that there was never a Fedora 10 build (and still is no Ubuntu 9.4 build) of the Amazon downloader. Serious good karma to the Clamz project for stepping up and filling this need (at least until I find a new outlet for buying MP3s; if Amazon doesn’t want to let me buy from them then I’m not gonna go nuts trying to).
Command Line Fu
July 3rd, 2009
This link seems to be being passed around the blogs, but I first saw it at pjp news.
It’s a collection of user uploaded and ranked useful commands. The idea is similar to the two entries I wrote on shell tricks but on a much bigger and cooler level. Just quickly poking around the first page of the site has already shown a number of things that are going to come in really handy. They also support all the usual useful channels like RSS and twitter, both of which you can use with a filtered threshold for user votes to limit the incoming commands to the truly awesome. There is some serious black magic to be learned on this site.
Reinstalling Grub from a Live CD
June 19th, 2009
Repost: This happened back in Feburary 2009 and was posted as “Disaster Averted” mainly to annoy my students with the fact that class was *almost* cancelled that night. I’m reposting it with a more accurate title for searching purposes (read: I needed to find this again but couldn’t because of my annoying title).
When I got to campus today and turned on my laptop, I was greeted with an all black screen and just the word “GRUB”.
Shit.
Some quick background for my students… GRUB is one of the bootloaders available for Fedora. In short, a bootloader is what takes control from the BIOS at boot time and passes it to the operating system. No bootloader = no operating system. So here I found myself, on campus needing my laptop for class tonight, without anything to help me.
That last part needs some elaboration. Fedora added a really cool feature where the Fedora installation can be installed to a USB drive. While I was at Red Hat Summit last year, I got Fedora 9 installed to the USB drive they gave out as swag. That doesn’t really help much since I kept forgetting to swap out the USB drive on my keys with my newly pimped out Fedora install stick.
My forgetfulness came back to bite me, since when I needed it most, what should have been an extremely conveniently located live Fedora install is sitting in my office at home, a few feet away from half a dozen Live CDs of various Linux distros that also would have been helpful to have around.
That aside, this was actually sort of cool in a way. While studying for my RHCE, I found new and creative ways to destroy a Red Hat installation to practice for the exam. I had managed to run into this exact issue and knew how to fix it, I just needed some form of rescue CD to do it.
The first half of that was easy, I logged into a machine in the lab and downloaded the Fedora 10 ISO from fedoraproject.org (insert generic “Try that with Windows” comment here). Thankfully, the lab machines have CD burners. However, I needed to find a CD first. Having no luck digging around the lab, I went downstairs to the university IT department’s tech helpdesk.
“Are you a student?”
Ok, so it was a fair question to ask me. It’s the last class before Spring Break and I’m not feeling well, so I’m here in a Villanova sweatshirt, jeans, and sneakers.
“No, I’m a professor. I need the CD for class tonight.”
“Really?”
“I assure you, I’m not a student.”
Thankfully, one of my students last semester had introduced me to one of the IT guys in the room who recognized me and vouched for my employment. I can’t really fault them for asking; I’d get annoyed too if a student bust in the helpdesk asking for free stuff.
One burnt CD later and I was into the Live CD. A few commands after that, I rebooted sans CD and was up and running.
Which brings me to the meat of this post, how to reinstall GRUB from a Live CD. It’s actually pretty simple. After booting into rescue mode, run:
grub
That’ll bring you into the interactive GRUB shell (notice the prompt changes to “grub>”).
grub> find /grub/grub.conf (hd0,0) grub> root (hd0,0) grub> setup (hd0)
The find command was just to verify the hard drive where the boot files are located. The setup command completed almost instantly, which actually had me a bit worried that it did nothing. But the output looked pretty convincing:
Checking if "/boot/grub/stage1" exists... no Checking if "/grub/stage1" exists... yes Checking if "/grub/stage2" exists... yes Checking if "/grub/e2fs_stage1_5" exists... yes Running "embed /grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded... succeeded Running "install /grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded Done.
After that, it was as simple as rebooting without the CD. I’ll still need to look around to make sure nothing else is messed up, and even more disconcerting is what caused this in the first place. But for now, at least I’m not stranded on campus with a dead laptop.
In the meantime, hopefully now I’ll remember to put the damn bootable USB stick on my keys… (Update: I put it on my keys that night when I got home from class)
I can’t help but think of this xkcd comic which feels kinda relevant right now.
Western Digital MyBook as a Backup System
June 17th, 2009
I came to the realization that I have too many computers constantly running in my house. It’s not so much a “go green” thing to use less electricity as it is me being cheap and wanting to lower our bill. It’d also be nice to walk in a room and hear silence rather than whirring computer fans or have to clean dead spiders from multiple desktops. After reading an article in Linux Journal about hacking the MyBook (external network drive that runs linux under the covers), it looked like it could serve a lot of uses, starting off with being the house file server and backup system.
So far, I’m off to a good start. To begin with, the Linux Journal article is already somewhat obsolete as there’s no need to hack it anymore. The latest firmware flat out gives you the option to enable SSH on the device; once you’re in you can do pretty much whatever you want. One click in the web UI and one terminal later, I was logged directly into the system.
The MyBook runs BusyBox linux. I’ve never worked on a stripped down linux install like this, but other than missing a few commands I’ve come to love (I continue to type less; my brain just refuses to acknowledge that it’s not there) it’s pretty easy to navigate if you’re comfortable on linux.
Initial Setup
The instructions tell you to install the included software which only runs on Windows, at which point I promptly said f-that and tossed the guides. Once you plug the box into the network, it will use DHCP by default to get an IP. Use your preferred means for figuring out that IP, such as checking your router logs for the lease information. I went a different route and just port scanned my network looking for an IP I didn’t recognize.
-> nmap -sP 192.168.0.1/24 Starting Nmap 4.76 ( http://nmap.org ) at 2009-06-16 17:42 EDT Host 192.168.0.1 appears to be up. ... Host 192.168.0.112 appears to be up. ...
I snipped out the rest the results, but you get the idea. I only have a handful of non-static IPs internally so it wasn’t too hard to figure out which one was new. The box runs lighttpd and has a pretty slick (albeit a bit slow) interface to most of its guts, so after digging the included CD out of the trash to look up the default password, I was able to connect to it and start dorking around.
The MyBook comes with a lot of features, with the small caveat that I don’t actually need most of them. So the first thing I did was run around disabling things. It’s very cool that the device supports Samba and AFP, but frankly, I just don’t need them (I’ve had the wife running linux for years now, she rocks). I also killed FTP and the Mionet software. It wasn’t all slash and burn; I enabled SSH and NFS and made a new user for myself. Ultimately I’ll turn off the daemon that controls the slick white light on the front of it, but the novelty is still there and it looks damn cool at night (and really creeps my wife out since the light pulsates).
At that point, I was able to SSH into the box and (potentially) really get myself in trouble.
Enabling Cron
The file sharing aspect of the box is very handy, but part of wanting a device I could hack away at is to have it do more than just be a dumb file server. To start with, I want it to run out and backup my web sites (this blog included) nightly. I have a series of scripts on the system this is replacing that already do the task, it was just a matter of getting the MyBook to do them.
Cron is on the system, but it doesn’t work out of the box. I had to make one small change: creating the directory in which it’s going to store the schedules.
mkdir /var/spool/cron/crontabs
Here’s where I got lazy. I just set the permissions on the cron and crontabs directories to 777 to make my life easier. It’s far from secure, but I’ll work on that later. For now, I just wanted to get my non-root user to be able to schedule things.
The other change that needed to be made was to start the crond daemon. I didn’t find anything in the web UI to support this, but given the rate at which the firmware is exposing functionality I wouldn’t be surprised to find it there in the near future. I hacked up a pretty rudimentary init.d script so it would auto-start on reboot and was on my way.
SSH
Once I had the ability to schedule tasks, I needed the MyBook to be able to log into my web server. The ssh client is already installed, however it took a bit of hacking to get to a point where I could generate public/private keys to automate the login.
The main issue is that the home directory for all created users is simply defaulted to /shares. That directory serves as the root of all of shared files. Not that I’m expecting to create a ton of users, but I didn’t like the idea of a single .ssh directory for all users. I didn’t find any user mod tools on the install, so I just changed the /etc/passwd file to give my user a different (read: private) home directory. After that, it was as simple as running ssh-keygen like any other linux system (I won’t get into those details here, but it’s pretty easy to google around for generating SSH keys).
After installing the public key on my webserver, I was good to go for automatically logging in.
Rsync
I was happy to find
rsync was installed and working out of box. Between that and scp, I was pretty set for my current backup needs.
Profit
The rest of my backup automation fell into place. I had to edit my scripts a bit since the MyBook doesn’t come with bash, but otherwise the rest of the process was painless. Nightly, my MyBook runs out to my webserver, backups a snapshot of the database, and copies over any changed files. All of this from a 6 inch by 6 inch little box on my desk. The desktop that previously did this has been powered down since the weekend. Awesome.
I’ve also copied over the “family” shared files to the MyBook, such as music and pictures. It was done simply through NFS so I won’t go into details here other than to say that there were no unexpected hiccups in the process.
There’s more I want to tinker with on the box. The web UI is in PHP and after a bit of looking around, I was able to find and start editing the web UI site. I’m thinking of adding my own section that will at very least report on the previous night’s backups. I’ll get to that eventually, for now I’m happy to have replaced one of the desktops in my house.

Mission Control
June 10th, 2009
In case you haven’t noticed, there is a pretty common theme among geeks: “Because I can.”
One of the things I was looking forward to in Fedora 11 is better support for dual monitors. I wasn’t disappointed, the UI is very intuitive and it just worked, allowing me to share my laptop screen onto a spare monitor (seriously, I have too much hardware just lying around). So my home office now looks like:

Something else to realize is that with my synergy setup, a single mouse/keyboard is used to control both systems, meaning I can move the mouse from the leftmost side of the laptop to the rightmost side of the right monitor, an act that currently requires me to pick the mouse up to get more space 6 times (yes, I actually counted).
Not sure how long I’ll try this setup out; I’m guessing I’ll have a wicked headache before lunch. But that doesn’t change the fact that my office looks like a NOC right now.

