OSCON08 Day 0

I gave myself plenty of time to get to the ATL airport and I’m very glad I did. It ended up taking around 3 hours just for the drive. Once I got there, all of the airport parking-lots were full. I eventually found a place to park in Park & Ride, got on the bus and headed to the airport. Once I got inside and tried to get my flight coupon I noticed that I didn’t have my wallet.

I ran, ok walked quickly, to the bus that I’d just gotten off of and it wasn’t there so the kind bus driving folks quickly got me back to my car where I found my wallet. Got back to the airport and because my ticket had been purchased the day before I got to get the pat-down. I wonder how long the silliness that is the current airport security will continue. It seems like everyone knows how dumb it is, but we all keep doing it.

Sat around the airport for a few hours and then got on the plane. Where I sat on the runway for three and a half hours. Once we finally took off, I counted 39 planes behind ours waiting to take off.

One thing I’ve learned over and over in my life is that you can never go home. When I was in college, I used to love to go to Denny’s for cheese fries. Nothing was open when I arrived in Portland three hours late, so I thought I’d go to Denny’s for cheese fries! Yea, no. They were terrible. Nothing like I’d remembered.

My hotel is a disaster zone and my room is right by the hallway door, so I got to hear the whine of the staircase and the whump of the door all night!

Despite all of this, spirits are high! I’m at OSCON after all. Keynotes just completed and I’ll do a Day 1 post this evening after I have dinner with my old pal Michael Hall.

WTB free good project software

In my old blog I hinted about a project that I’d been working on and was hoping to release. It’s getting closer to release, so Happy and I spent part of the day looking at “project” software. That’s some crappy nomenclature, but I lack a better term. I’m referring to software like Trac, Redmine, Jira, etc. Something that does issue tracking, maybe a wiki, maybe some forums and maybe some VCS integration.

Trac is out because it’s just awful. Puppet used to use it and I hated every second of it. It was hard to use, but moreover it was hard to read. Issues/Tickets/Bugs/Whatever looked terrible. Oh and the wiki syntax sucked too.

We tried Redmine today and being the ruby noobs that we are, it wasn’t exactly easy to get going. There’s a bug in the release version when using the version of ruby we had and coupled with a few other things that made me feel like it’d be fragile (which is another way of saying I wasn’t sure I was qualified to run it in production.)

Then in the last 10 minutes of the day we tried Jira and holy smokes! For a project our size this thing is enormous overkill. It’s also payware. They have an “open source” license, but the main qualifier to get said license seems to be “being cool enough.” Plus, I fucking despise java. That said, it’s quite a polished package and was amazingly easy to set up. It’s certainly far better than then issue tracking system my work is about to deploy.

So at this point I’m looking over wikipedia’s big comparison chart, but I’ve lost hope and am starting to think that we’ll just end up using smaller pieces rather than an all-in-one solution. For the first time in my approximately ten years of blogging I’m allowing people to comment on my blog! Why not make a suggestion of the kickass project software you use/wrote/love?

So yea… new blog

I finally switched away from my home-grown blog software. It lived for over 5 years, I’m proud to say. Nothing about it was failing, I just got tired of extending it and if you’re not growing you’re dying.

My plan is to migrate the old stuff that wasn’t just crap filler over to this blog if I can pre-date entries. I guess I should have tested that before I went “production.” Being the curmudgeon that I am, I have plenty to complain about in the WordPress department, but I’ll spare you. I’m trying new things and I guess that’s what matters.

Speaking of new things, I’ve started using Ubuntu on my new work machine and my new personal laptop. It’s a painful switch away from Debian and I’m not sure how long it’ll last. Quite sadly my main reason for switching is font rendering quality. That’s right. I have two machines that actually have stuff like Evolution installed because I like how fonts look in Ubuntu and I can’t get them to look that nice in Debian.

While I’m going crazy with new things, I’m also trying new window managers. I tried E17 the other day and remembered why I quit using E back in the E14 days. Just not for me. I also tried KDE4 which is very very much not for me.

I am using Compiz-fusion on both my laptop and work desktop. I doubt very much it’ll last though because it’s very slow (for some reason it makes Google Reader insanely slow on my work machine which is 4cpu/8G, with a real graphics card: an nVidia Corporation Quadro FX 1700 so no excuses) and doesn’t have my precious ctrl-; which I map to a middle-click style paste.

For you non X11 users out there, prior to stupid window environments like GNOME and KDE, X11 used a simple text-buffer for selections. All you had to do was select text and it was automatically copied into the copy buffer; middle click pastes. No pesky keystrokes just for copy and paste. G&K added their own copy buffer that allows for the more windows/mac style copy and paste (meaning more than just text.) I never ever ever use that though, so it’s just a nuisance for me. It’s especially awful because the paste keyboard shortcut differs from application to application and I spend a ton of time in terminals.

So a long time ago I tricked some lisp-er in #sawfish into writing me a universal paste that the windowmanager itself handled and it worked mostly great. Great enough that I’m going to probably go back to sawfish on both machines because the eye-candy just isn’t worth having to use a mouse.

As if that weren’t enough new, I’ve been writing some comics about work and my life. It’s entirely probable that you had to be there and it’s just not funny to anyone else. I’ve also been co-writing some comics with my friend Ed Kelly. And if you act now, I’ll double your order!

Oh and did I mention that I’ve got a couple of youtube videos up? They aren’t great, so please be kind.

Fallout 3 and Wii News

Fallout 2 was a really really great game. It had it all. Louis Armstrong, Tool references, oh and great gameplay and story too. I’m really looking forward to Fallout 3 and I hope it’s not too FPSy. The video looks pretty kickass.

I also saw, but was confused by the announcement that Nintendo is releasing a new version of the Wiimote that’s more sensitive(?) or something. The video seems fun, especially since they play the Mario theme which I love.

I’m really surprised at how much I like the Wii. The WiiFit is especially nice given that it’s the first time in my life that I haven’t absolutely despised exercise.

Top Ten TED Talks

I realize I’m way late on getting this published, but it’s just so good I don’t mind being late.

I saw this on Boing Boing and I don’t really have time to add a lot to it right now, so this one goes out to the folks who can’t handle the traffic of megablogs like BB. Every one of these is simply great. Well worth your time.

Bash & Screen

You may be familiar with my tutorial on getting your ssh-agent to work inside screen. If not, have a look.

There’s always room for improvements! Here’s an excerpt from my current .bash_profile:

function Attach(){
    grabssh
    if [[ -z "${1}" ]] ; then
        local n=`screen -wipe | egrep -i 'attached|detached' | wc -l`
        if [[ "${n}" -gt 1 ]]; then
            check_screen
            return
        fi
    fi
    echo screen -d -R ${*}
    screen -d -R ${*}
}

check_screen () {
  # Look in the path?
    type screen > /dev/null 2>&1
    if [[ ${?} = 0 ]]; then
        tmp=0
        echo
        for scr in `screen -wipe | egrep -i 'attached|detached' | awk '{print $1"_"$2}'`
        do
            echo "Screen available: ${scr}"
            if [[ ${tmp} -eq 0 ]] ; then
                myscreen=${scr%_*}
            fi
            tmp=$(($tmp+1))
        done
        if [[ -n "${myscreen}" ]] ; then
            echo
            echo "Enter to attach to ${myscreen},"
            echo "'n' to move on,"
            echo "unique bits to attach elsewhere"
            read eon
            if [[ -z "${eon}" ]] ; then
                [[ -z "${myscreen}" ]] && return
                eon=${myscreen}
            fi
            if [[ "${eon}" != 'n' ]] ; then
                Attach ${eon}
            fi
        fi
    fi
}

[[ -n "$PS1" ]] && check_screen

If screen(s) exist, I’m presented with a list of them on login. I’m then able to hit return for a default, or type in which of them I wish to resume.

If I don’t want to resume any screen I can simply hit ‘n’ and go on about my day.

The Attach and check_screen functions are actually in a different file that is sourced by .bashrc and conditionally by .bash_login. This allows the functions to be used in non-login shells (in local terminal windows for example).