adventures in a new job

You know, there are some really cool blogs out there.  The ones I like the most are the ones that simply tell the stories of life as they happen to them, and document them in a cool way.  This is not one of those blogs.  Unless you’re as obsessed as cartoons as I am, and I doubt it.

Anyway, reading one such blog tonight, it got me thinking that I should loosen up a bit and document more of my generic life stories sometimes.  I’ll think about it.

In the meantime, here’s something that happened at work today.

I’ve still been settling in (I started a week ago yesterday) at the new place, and it’s a little odd for me because I am the only IT guy there.  Everyone else is an engineer with more degrees than I knew existed.  I don’t think I’ve ever worked for a place that either wasn’t an IT shop or didn’t have an IT department before I came on board, so it’s all been just a little bit different. (See, this is why I don’t write general life stories … I’m already boring myself.)

When I first got there, the boss set me up with a laptop, which wasn’t bad, but it had an Intel graphics card on there, which makes me want to install Debian on babies.  He asked me what my ideal hardware was, so I told him, and we’re working on getting that, and using something else in the interim.  Anyway … where was I going with this … I had mentioned in passing that the Broadcom wifi chip on there was crap, and so he went online and got an Intel one instead for like $15 on ebay.  He brought it in today, and I got to pop it open and swap it out.  I had no idea that the onboard wifi cards were just using PCI Express Mini slots.  That is way cool.  So it took about five minutes to get the whole thing swapped out.  Pretty cool experience.

Oh, and for the record, the new Intel one worked out great.  Fired right up without any stupid issues (kernel or otherwise), though I still can’t ever get NetworkManager to even recognize any wifi for some dumb reason.  Oh well, wicd works fine, even though it’s bugly.

See?  This is why I don’t write life posts.  They’re not well formatted.  Meh.  I’m going back to blogging about cartoons.

closed captioning on dvds (and ripping them)

In ripping my DVDs, I try to future-proof it as much as I can, by putting in as many elements as I *think* I might need or want someday down the road.  One of those elements is subtitles.  There are three types of subtitles that can be on DVDs — VobSub, closed captioning and SDH — and the first two can be extracted fairly easily.  I have no idea how to access the SDH ones.  I think you need either a newer DVD player or a Blu-Ray one.

I’ve been ripping my TV shows, and so far I haven’t seen any really hard and fast rules on what to expect with them on DVD.   Part of the reason is that I just haven’t been paying much attention to subtitles until recently.

I was playing with ripping one show last night, and I saw the CC logo on the back of the case, so I went to check the rest of my library to see which other ones had it.  Nearly my entire library of Warner Bros. DVDs displayed the logo — even for much older cartoons (Looney Tunes, Scooby Doo) — once again staying consistent with the fact that the studio puts a lot of effort into the quality of their releases.


I just started playing with extracting CC though, and just barely wrote the code to my DVD ripper to extract them, so I have no idea what the other series are like, if they have subtitles or not — VobSub or CC.  I usually don’t find out until I actually go to rip them.

Extracting the closed captioning subtitles is a lot easier and faster than getting the VobSub streams.  For Linux (and Mac and Windows) there’s a nifty OSS program called ccextractor.  Once you have your VOB video file on your harddrive, just run that on the movie, and it will create an SRT subtitle file of the closed captioning text.  It’s great, and really fast, taking probably under a minute on a 60-minute video on my box.  Comparatively, when ripping a VobSub stream, you need to read the DVD directly which causes its own bottleneck, and then demux the entire stream.  It takes probably around 3 to 5 minutes for an episode of the same length.

Another thing I like about the closed captioning titles is that because they are extracted as SRT, it’s easy to look through them since they are just text files.  If you’re really anal, you can correct typos yourself.  The VobSub subtitles are all bitmaps.  I’ve also noticed that on some DVDs, where there were issues with framerates or something else, that the VobSub timestamps will be off … and sometimes either they will show up clumped together at the beginning of the film or the sync will be way off.  I think that this has to do with the dumping process, somewhere, but I’m not sure.  I’ve never really taken the time to pin down the source.

So, with closed captioning being easier and faster to extract, as well as editable and the timestamps haven’t had any issues for me (yet), it’s quickly becoming my preferred subtitle format.

There’s only one small issue with using ccextractor, and that is you won’t know if there are any captions in the VOB until after it’s made its trial run.  The program will create an .srt file regardless when you run it, but the file will be empty if it couldn’t find any.  That’s the only drawback.  With VobSub, you can know if there are subtitles just by probing the DVD using lsdvd or something similar.

Muxing it into matroska is simple, too.  Just pass it as a file argument and you’re done.

As a sidenote, while my bend application that I wrote and use to rip DVDs would be a major pain to setup for someone else, I’ve rewritten it recently so that it uses individual classes to access every object directly: DVD, DVD track, DVD VOB, Matroska file.  They are standalone classes written in PHP if anyone wanted to use them, feel free.  You would also need my tiny class of shell functions as well, since they all make calls to it.

The DVDVOB one makes it simple to extract the subtitle stream.  In fact, all the classes make things relatively simple.  They have made writing my code so much simpler.

firefox "find as you type" steals window focus

I’m posting this one hoping that someone can help me out, because it’s one of the few remaining reasons I don’t use Firefox as my main browser. I still use Seamonkey as my default, but the Javascript parsing is soo much slower than everything else, it’d be nice to switch.

Firefox has this find as you type feature, where if you hit / and then type in some words, it’ll search and highlight it on the page. Great. Lots of browsers have that. Spanky. But, the problem with firefox begins with this little toolbar at the bottom of the browser that pops up as you are typing the text. It has a little dialog box titled Quick Find which fills in with whatever you were searching for. The main issue is that that toolbar will close itself automatically, and when it does, it steals focus from X back to Firefox.

That’s particularly annoying for me because, in many instances, what will happen is I will search for something in Firefox using quick find, get what I’m looking for, and then switch to another program or window before the default timer has expired. If I start typing in that other window, when Firefox’s bar closes, X focuses back on Firefox and part of my text goes in there instead. Kind of frustrating.

I’ve tinkered around with the about:config page and haven’t found anything, and every now and then I check Google to see if I can find anyone else who has discovered a workaround, but I haven’t found anything, so now I’m just trying to see if anyone else knows a solution.

I’d be happy with either disabling the toolbar completely or not having it go away, or whatever. The only part that bothers me is it stealing focus again.

For what it’s worth, I’m on XFCE 4.4. No idea if it’s an issue with other WMs.

gmail smtp + custom from email address

Oh, man, I just solved a problem that has been horribly hounding me *for a year now*, and I just had to write about it.

At work, we use Microsoft Exchange for our email, which doesn’t really bother me that much.  I’m not the calendaring / scheduling / whatever fool that cares about all the advanced crap, I just want to be able to send and receive email.  I don’t get a lot here at work, and I send less, but when I do it’s always a painful experience.  The reason is because I haven’t been able to get anything on my Linux desktop (I’ve been using Gentoo as my workstation OS for about 6 years now, all at different jobs, nyah!) to actually send mail out on the Exchange server, and I’ve tried everything.  I can get mail just fine using POP3 or IMAP, but no SMTP love.

Anyway, I won’t go through what I tried to get working, because it didn’t work, and who cares anyway.  What does work is using GMail to provide an external SMTP service.  Now, the problem I anticipated, and what it does, is it munges the From: email address to force it to your GMail account name.  I wanted it the email to look like though.  What I didn’t know until today is you can set that up.

Just open up the GMail interface, click on the Settings link then the “Accounts and Import” tab.  There’s a section labeled “Send mail as”.  Just take it from there.  Add another account, and it will verify that you have access to the one you are wanting to send it from.  Then, when you setup your email client (Thunderbird, in my case) to send through gmail’s SMTP server (, and you send from, your From address will no longer be munged.  Success!

Oh man, I’m so glad I don’t have to battle with Exchange any more.  Or the web interface.  Or my dedicated Windows box I use mostly for Outlook.  *wave of relief* :)

what i'm working on

I figure it’s time for another post that details just what I’ve been poking at recently.  Work has been really busy for me, and I’ve got a lot going on at home to, so I’ve been bordering on burned out for the last month, but somehow I’m still chugging along.  If anything, that explains the half-coherent posts I’ve been spilling out lately … they are more afterthoughts of notes rather than good posts.  Ah, well.  I figure at times it’s better to just get something documented at all.

So, in no particular order, here’s what I’m poking at:

mplayer-resume v1.8

I just finished coding this yesterday.  I’ve had 1.7 done for a long, long time and meant to push it into the tree, but never got around to it.  This version adds a feature that everyone I’ve heard from complains about — getting it to accept filenames with spaces in them.  I added a –filename option that you can pass to it, so there’s absolutely no confusion or guess work about what it should be.  There’s a few other things in there, but I’ll write that up in the changelog when I’m done.  I just have to rewrite half the documentation and package it and then I’ll be done.


I don’t *think* I’ve made any mention of this yet, which is actually really surprising, because it’s a few tweaks away from being distributable.  trip is basically “tivo ripper” (original, I know), a little shell script that has a CLI frontend that will let you sync your list of files on your Tivo, pick which series and shows to download, then strips the DRM from them using tivodecode and leaves you with a happy MPEG2 video that you can do whatever the heck you want with.

I’m debating putting this one in the tree or not.  I realized that mplayer-resume is just a really tiny shell script, and it probably shouldn’t have gone in the tree to start with … but oh well.  I don’t really think I should pull it out now.

There’s no timeline on pushing this one out, though.  It’s mostly done, but I don’t really feel like packaging it.  If someone wants a copy though, drop me an email and I’ll send you a tarball.


drip is my console interface for ripping all my TV shows, that I’ve been working on and off for years.  This thing is a total mess and a packaged release will probably never see the light of day — not because the code is crappy, but because there are so many complexities to it, way too many options for customizing it that I’d have to support, and such an incredibly small audience of people that would want it either.  As such, it works great for me.  Basically what I do is I first archive my discs.  I’ll grab all the relevant disc info I can just by reading the DVD (disc id, disc title, tracks, chapters and lengths), then I have a web frontend where I specify what I just archived (episode names, which tracks to ignore, which are bad, etc.) and then I use the console app to rip the episodes to the harddrive, and mux them into Matroska with all the relevant metadata stored in the database by the frontend.  It works really great.  Maybe I’ll add some screenshots sometime.

Anyway, I’ve been working on that for a variety of reasons.  The first is that now that I’ve got ffmpeg reading Matroska metadata and hacked mplayer to pull it back out, when I actually mux the episodes, I have drip create the XML file of the global tags.

The other thing is that I’ve started looking more closely at specifying exactly which season an episode is on.  What happens is that DVD sets released as a complete series, it’s pretty common for one disc to have the end of one season and the start of another.  I’ve always had drip setup assuming that one disc would only hold the same season all the way throughout, so I’m having to once again cast aside my old assumptions and fix half the database schema.  That’s a bit of an undertaking, and I’m putting it off right now.

gentoo stuff

Gentoo is keeping me busy as well, though I haven’t been doing as much as I’d like to, mostly because of all my little projects keeping me busy.  In fact, just in writing this, I keep thinking of more I need to add to this list.

I have gotten the bug again to work on finishing the rewrite of importing the portage tree into postgres.  That whole project is unnamed, but it’s basically the backend to my packages website and GPNL.

Every single time I open this thing up and start hacking on it again, I’m totally blown away by how much faster and more efficient it is.  When I first started on the rewrite, I really picked a much cleaner design implementation, for the code and the database, and it is just so much easier to hack on.  The first one was a total stumbling of the dark that I was coding while I was researching what I could do, and it is just a nasty mess.  This one, the format has been specific from day one, and it’s a total breeze working on it.  I can’t wait to get it done.  I know I’ve said this a lot, but once it’s finished, up and running, it will be soooo much more  portable, and able to handle a lot more stuff.  I’ve already got a few ideas planned on what to do with it once it’s ready to go, but I’m keeping them under wraps.  I’m really excited for it though.

mini-itx madness

I haven’t said a peep about the new Zotac I got.  Initial review is very positive, though.  I want to be fair and not write about it right after I got it, instead putting it through the paces for a few weeks, after the novelty has worn off.

It’s working fine though, and one thing I want to do is setup the image on a USB stick.  No more onboard SSD IDE drives.  That would be really nice, since a USB drive would be so much easier to update since I could pull it out easily of the clients.

my qt media gui

Yet another unnamed project … not that I really have anything to show for it anyway.  But basically as I’m learning Qt / C++, I’ve decided to just take the basic elements from MythVideo and write my own frontend to my media library.  That’s coming along.  Still learning a lot.

seekrit projects

I’ve got two things in the works that I’m really excited about, totally unrelated to everything mentioned above, but I don’t wanna say anything about them.  I’ve decided I’m not going to unveil them until they’re done this time.  Yeehaw. :)

Alright, that’s enough for now.  Back to work.

r.i.p., little dell

My monitor died on me this weekend.  I was sitting at the computer using it when it started flickering horribly.  I decided to turn it off before it felt like it should blow up in my face, and as I did I could hear th inside give a final gasp of life and then what sounded like the insides disintegrating.  Something was definitely going on in there.

Anyway, it’s dead.  I can’t believe it lasted this long, really.  It was a 22″ (or so) CRT Dell monitor that I bought used from a surplus sale about five years ago for something like $40.  It always had this little nasty green tint overtone to it that could be mostly fixed by adjusting the other colors.  Aside from that, it worked great.

It was always a little too big for me, though.  Not the display size, but the wide load behind it.  I swear that thing weighs at least 80 pounds.  I hurt my back getting it off my desk this morning.  It certainly kept me from wanting to go to LAN parties.

I guess I’m finally gonna have to bite the bullet and get me a widescreen monitor.  I’ve been holding out on 4:3 displays as long as I could.  I remember when widescreen TVs were first coming out, and I totally scoffed at the idea and how strange it was to see everyone on TV stretched.  I swore I’d never get one (of course, this was many years ago).  I do remember seeing a Sony TV long ago that I wanted to get that wasn’t 16×9 but instead was something like a 2.35 ratio … basically, scope.  It was really awesome and I wanted to get *that* one, since I figured if you were gonna widescreen, go all the way!  I haven’t seen it since, but I still swear I saw it on display at Circuit City a long time ago.

I found a nice Samsung monitor that I wanna get.  It’s also 16×9.  I noticed that they sell monitors now that are 16×10 as well … I found a really nice one in that ratio as well, but I can foresee having three sets of aspect ratios displays in my house would drive me mentally insane.

I still have one 4×3 TV in my house, it’s an old 27″ CRT TV, and it’s awesome.  I fear that I’ll someday replace it and go all widescreen in my house.  Fortunately, I’m already used to seeing stretched faces, and watching stuff in original format actually makes me think it looks wrong.  We’ll see, though, I’m infamous for being stubborn and holding out.  That, or the same thing will probably happen … that TV will die and I’ll  reluctantly buy a replacement that’s 6x the cost and 20x the quality, complaining all the way. :)

psa: utah renaissance fest

If there’s one thing I love more than … well, much almost anything … it’s an olde classic Renaissance Faire!

I totally forgot about it til just now, and this is the last weekend for the one in Utah, so I’m just doing a public service and sending out an announcement. :)

Here’s the website:

If you stop by, you’ll probably see me there. I’ll probably be wearing one of my Georgia Renaissance Festivals t-shirts from oh so many years ago and stuffing my face with as many turkey legs as I can get my hands on. :D