the thought process

Some of my friends, notably the close ones who are brazen enough to try and figure out what is going on inside my head (heaven help them), often ask me what in the world my thought process is.  I can only assume that listening to me talk is like trying to watch someone on crack play a pinball game.

I got an idea for another new Gentoo website this morning, and instead of summarizing what it is, I think it’d be more fun to kind of show what my thought process is when coming up for the idea.

The catalyst for all of it was that I got to work this morning, and I wanted to find a backup solution for a few case scenarios.  This is basically how it rolled.

  • Run eix -S backup on my desktop, pipe it through less, start looking at them
  • Open up the website of every single one I find that looks like it might fit my needs
  • Realize that there’s an app-backup portage category, which I could have browsed on my own website (oops).
  • Start realizing that trying to find my own is tedious, how I’d really want is just to see ratings on which ones are best.
  • Get ideas for a new Gentoo website.
  • I really need to build a new Gentoo packages website, one that track’s users ratings on packages, can have comments, reviews, all that crap.
  • While I’m at it, I need to do something to get a universal login across all the Gentoo projects (Znurt, Planet, new unnamed package one).
  • I should probably get a new domain for it.  Or bump Planet somewhere else.
  • I don’t wanna bump Planet somewhere else.  What’s a good domain name.
  • I’m almost out of cookies.
  • I’ve got a good domain name, is it available?
  • Crap, the .com is gone, but .org is available, I’ll get that.  Click, click, click, spendy, spendy.
  • Hmm, I wonder if my brother-in-law can help me design it for me.
  • Chat with him on IM for a few minutes, tell him I need it in about 3 to 4 months, he says no problem.  Awesome. :)
  • And it’s gotta login through OpenID, because I hate doing user management.
  • I’ll integrate Planet in there so users can modify their own stuff
  • And this’ll go great with all the user preference stuff I’m gonna have on Znurt soon, just track it through preferences.
  • It’d be cool if the packages one also tracked features, or did comparision, or did recommendations, like Netflix
  • Ooh, and you can see what friends are using
  • And at the same time, reserve all usernames for current Gentoo devs.  That’d be fun.
  • And it needs LOLcats. (I just came up with that one)
  • I gotta think of a new design.
  • Ooh, look a cool backup program.
  • I like the website, what are they using?  Ooh, Redmine.  I remember liking this thing.
  • I wanna try setting up Redmine again.
  • Ooh, someone put an ebuild in the tree.  I don’t have to use my crapalicious one I wrote.
  • Sweet, I can use SQLite.  Setting up a database on MySQL / Postgres is a pain if I just wanna test it out.
  • The –config isn’t working.  Crapsticks.  Well, I’ll just re-emerge every Ruby package installed and maybe that’ll fix it.
  • That didn’t fix it.  Maybe I’ll see the exact command that it’s running and debug it from there.
  • The deps are bad, I have to use an earlier version of rake.
  • All fixed
  • Ooh, I can run it as a standalone app!
  • I might need mod_ruby sometime, someday, even though I can’t find any mention of it on the website.  I’ll just install it anyway.
  • Ooh, shiny interface!
  • I like.
  • I think I can use this to replace trac.
  • Ooh, it supports git.
  • How the heck do you change the Issue fields?  I don’t like the defaults.
  • I think I’m going to go buy a subwoofer today.
  • I should put my local stuff in a Subversion repo for now.  I gotta learn me some git.
  • What’s a good subwoofer?
  • *ping Jason on IM and ask about subwoofer specs*
  • *go buy a subwoofer*
  • *watch Harry Potter trailer*
  • *eat lunch and head back to work*
  • What was I working on?  Oh, yah, backups.
  • This one looks cool too.  Ooh, shiny interface.
  • Woah, it integrates automatically with cron.  Nice.
  • There really should be a website to make finding this stuff easier.  I should write one.
  • And it should have screenshots!
  • How do you deal with the spam?   Hmm.
  • It’s been kind of a crazy day today.
  • I think I’ll blog about it.

And so it goes. :)

general skill set

My big thing of late has been analytics.  I’m finding that when I’m a bit confused as to how to proceed, that gathering and categorizing my available data helps give me a good roadmap.  I am, by nature, a really visual learner, so getting things in that type of hiearchy really is effective for me.

Tonight, I was bored, and was thinking how stretched thin I am right now (I essentially have three jobs at the moment, eek), and I started wondering about my skill set in general, so I wrote it all down.  You can see the lovely unordered list here.

I compiled it out of curiosity more than anything else.  I’m not interested in comparing my skill set to anyone else, or anything like that, and I’m certainly not trying to toot my own horn .. I’m certainly not into that.  But I did find it interesting.  I know I’ve always been a hybrid between web developer and systems admin, and then throw in some multimedia stuff on the side.  It’s really odd.  I realize that.  I like, though, that I pursue everything that interests me, even if it does totally wear me out.  I like knowing what I’m into and what doesn’t appeal to me.

So, yah.  That was fun.  It was hard getting them all down, and I’m sure I probably missed a few.  I don’t think I could really categorize Gentoo too well, as it’s taken up a lot of room in my life over the years, and really helped push me in a lot of directions.  I’m really grateful for that.  I love learning new stuff.

And, for the record, I really did write a CLI frontend to rip TV shows off your Tivo.  I’ve never released the code into the wild.  That’s on another huge list .. of projects to eventually accomplish.

Edit: for the record this is one of those posts I was debating publishing or not.

learning javascript

At work, I’m starting on a new Intranet site for the company, and one thing I am really wanting to do is ramp up my JavaScript skills in the process so I can make a large part of it AJAX driven.  I’ve played with it a bit in the past, and with the awesome Prototype class as well, but up until now it hasn’t been anything more glamorous than hiding and displaying pockets of information.

I’ve been doing some reading up the past few days, and stumbled upon some great resources.  One really cool thing I found, that I’ll write about later since I’ve got some ebuilds in the works, is GNOME Seed.  Seed is, basically, JavaScript bindings for GTK+.  In other words, you can build GUI applications in JavaScript.  How freaking cool is that?  (For the curious, read this, this and this.)

Anyway, one part of doing my research about JavaScript is building a little toolkit of common functions that I can use as a fallback when I need to understand what’s going on.  I’m really familiar with PHP, so I’ve been using that as  a sort of inspiration.

I’ve got a little function I wrote, called var_dump(), which basically does the same thing as the PHP function, and with similar syntax output.  The code is here.  If any JavaScript gurus wants to look at it and give me some pointers, let me know.  I’d appreciate it. :)  Mine is making a call to Seed, but obviously it’d be easy enough to put into a browser.

using gentoo

There was an interesting thread I read in the forums this morning that was talking about the general process of stabling software, and while I found the original poster’s statement very interesting, I posted my own thoughts in response in a few posts in return that I considered shed light on how the scenario really is in developing for Gentoo.  Writing about it really got me thinking about the distribution as a whole, and why I like it, and why I keep coming back to it.  In short, why I freaking love Gentoo.

I’m going on my eighth year or so of using it.  I don’t know the exact timeline, but I’m pretty sure I’ve used it since around April of 2002 or so.  I’m also coming up on my fourth year of being a Gentoo developer.  That just blows me away.  I’ve also started recently getting a resurgence of interest in working on the development side again, something I’m really glad to see, since I have been progressively phasing myself out over the past few months.  Quite recently, though, I’ve managed to get myself much more organized and that has given me a much bigger picture of areas where I want to focus (and ones I want to drop interest), and so that has made it working on Gentoo fun again. :)  For the record, that’s how it should always be.

There is one argument in particular I wanted to rehash here, and that is the one about stability as a distro.

I’ve often heard the argument, when debating Linux distributions, someone say something like, “Why would anyone run Gentoo .. it’s not stable!”  I never have a really good retort to that answer when people bring it up, other than something simple like “Well, the obvious reason would be that I’ve used it for years and if I manage it, you won’t have any problems.”  Not to say that I don’t have problems with my Gentoo installs, but these days they are usually stupid things … like forgetting my root password or accidentally firewalling myself out of the box.

I don’t really care about the “distro wars” though.  My motto has long been, “to each his own.”  Find what works for *you* and apply it.  I could argue all day to someone about the merits of Gentoo, but really, all that matters is that it fits my needs well and does exactly what I want it to do, and how I want it to do things.  Everyone else can go find their own.  I’ve got mine. :)

But the fallacy in that original argument “Gentoo’s not stable!” is a weak one.  It implies that the distribution should be the one providing all the support for keeping things constantly maintained, running and efficient.  To me, those tasks sounds like the description of a systems administrator job position.

My point is that, it shouldn’t matter what Linux distribution you are going to use — you need someone to keep it up and running.  I think Gentoo is great because it removes the veil from saying, “just run these versions of the software and you’ll be totally fine.”  Bugs creep in all the time.  Binary distributions stick you with a set of packages, that if,  you want to break out of that pigeon hole, it may be completely impossible to do.  With Gentoo, the definition of “stable” is left up to the user, the maintainer, the systems administrator.  I love it. :)

Go Gentoo. :D

I also can’t believe I’m still a fanboi, after all these years.

ripping blu-ray discs on linux … and windows, and ps3

I’ve finally found a way to rip some of my Blu-Ray discs, kinda.  I’ve had to manage a few workarounds because I’m missing a pretty common piece of hardware in the setup: a BD-ROM drive.  I do have a PS3, though, that I’m running Linux on, and I can get to the media just fine that way.  I also have to use shareware, both on Windows and Linux … but, it works, and the files look great. :)

So, the backstory is that the other day I was making a note of all the projects I have to do,  creating what I call my project tree.  It’s basically an ordered list of general projects (Gentoo, home theater system, etc.), and then abstract projects underneath that.  It’s nice because I can get a birds eye view of all the stuff I’m working on without going into specifics about any of them.  One of the home theater ones was to get at least ISO disc rips of the Blu-Ray movies I already have, even if I can’t decrypt them yet, so I can at least play around with my options as they become available.

Well, I had moved my server setup around not too long ago, so I had two 750 GB harddrives just collecting dust.  I put one of them in an external USB drive, and plugged it into my PS3, which was already running Linux (see this pervious post for all the fun details).

I formatted my external USB drive as NTFS, so that I could read/write to it with Windows as well, and then I would insert a disc and just dump it to an ISO file.  That’s easy enough:

$ cat /dev/sr0 > KFP.iso

I grabbed a couple of them (which took awhile, don’t let me kid you on that part) so that I could get a good sampling in case I had more luck with one than another.

Once that was done, I trotted the little drive and plugged it into my netbook, running Windows XP, and installed both Virtual CloneDrive and AnyDVDHD.  The first one lets me mount an ISO as an actual disc drive, and the second actually decrypts the disc for me and dumps the contents back to the harddrive.  So, that’s two passes now on all the data, which is making this take a long time.  But that’s okay, it’s fun.

Now that I have the actual contents, the MPEG2 transport streams, I can play it back with MPlayer, ffplay or whatever.  I’m having limited success with latest MPlayer on the files with VDPAU playback support, but it could just be my video card (GeForce 8600 GTS).  On my HTPC frontend, it works almost perfectly on there, with a nicer video card (GeForce 9300).  My desktop just craps out, though.  I can still watch it with Xv video out, though.

mkvtoolnix doesn’t support m2ts files right now, so I don’t have many options if I wanna change things around.  I’m still in a proof-of-concept stage, so I don’t really care all that much.  Plus, my options are already limited.  AnyDVDHD is shareware that will expire in 21 days, and while it’s amazing and works great, it’s really expensive — something like $200 for a lifetime license.  Eek.  With that, I’ll keep trying my options on Linux.

The second piece of shareware I ran into (which also has a limited evaluation license, though this time for 30 days) is MakeMKV.  The Linux port is always a little more difficult to find, so here’s a direct link to the details on the lastest version.  Boy, I never thought I’d be talking about shareware on my blog.

MakeMKV works really nice, too.  It’s supposed to be able to do the same job as AnyDVDHD, I believe, but since I don’t have the actual Blu-Ray drive, everything I’ve tried has never worked when just mounting the ISO direcly and trying to access that.  I believe that part of cracking the key involves having access to the drive.  I’m really not sure.  I’ve read a bit about the whole process, but it’s still really confusing to me still.

Anyway, the software will let you access it directly through the decrypted contents, and that’s what I did.  The interface is actually really simple and nice, and I would actually consider buying this one (it’s much cheaper, at $50 for a lifetime license).  I’m trying to remember the last time I paid for a software license.  One that comes to mind, is that I actually have a valid registration key for Legend of the Red Dragon, the *really* old BBS door game.  Wow.  I think it cost me something like $15.

MakeMKV is pretty nice, though.  It snags the subtitles I select, and already includes the chapters as well as the HD audio formats.

So, that’s it.  The whole process is pretty tedious, but it works, and I’m happy.  I don’t really care about decrypting it *too* much right now, since I don’t wanna go through the pain of trying to play them back over my HTPC just yet.  I’d need to do a lot of tweaks and upgrades to my system, and I really don’t care that much.  It’s not worth the hassle.  Especially, uh, since I just bought a new Blu-Ray player last month. :D

Really, though, I’m just doing this for the exercise since when I get bored, often times I’ll want to play around with media files and formats and see what I can do with them.

Eventually I’ll buy a BD-ROM drive and see what I can do, but for now I’m trying to save some $$$ and the whole point of this was to see if I could rip some discs with just the hardware available, and I could. :)  Woots.

On a sidenote, I posted aacskeys to the portage tree today, which is one of the tools users need to decrypt the keys on their discs.  Hopefully we can get some more hackers interested in poking at it.  That’s always good.

Last but not least, here’s an actual screenshot from the final rip. :)

I love TMNT. :D  Boy that’s a post for another day … which reminds me, I should get a copy of my home-made videos some day, that I made with my action figures.  Oh man, that’d be awesome.

narnia 2: whatever the title is

So, I watched the second Narnia movie tonight (whatever the name is .. I thought the book went by the name the Silver Chair, but maybe that was the third one.  I don’t remember.  Anyway .. ), and it was really good!  I was more than pleasantly surprised.

I had put off watching it for a looong time, pretty much completely until a friend recommended it in passing and I was like “Hmm, it’s on Netflix Watch it Now, meaning it’s probably not that great, so I’ll go watch it.”  Yah.  Don’t ever expect me to explain my logic to you.

I was really excited when the first one came out, and I was sorely disappointed by how much I thought it didn’t live up to the book.  I thought it was good, but I was really bothered by the fact that the “epic” battle scene at the end was seriously less than 5 minutes long, and I don’t think you ever saw *one* person do anything battlerific.

The second one, though, was awesome.  Probably about half the movie was one big battle or another one, and well done for the most part.  I especially liked the duel.  Oh yah, spoiler alerts.  Whoops.

The movie was interesting, though.  I don’t remember the book *at all*, so that could be why I enjoyed it a bit more.  I thought there was a lot of interesting touches.  There was just one thing that kept nagging me a bit, though.  I kept thinking that, no matter how good the movie was, it seems like they focused on making it a spectacle movie more than a really good story.  It wasn’t poorly done, but it wasn’t excellent, either.  I often wonder why movies with really gripping stories and dialogue are so few and far apart.  This one went both ways.  At times it had some class and grit and character all its own, and then at other times it took things a little less seriously.  I suppose that’s not too bad considering it’s a film for kids, and I have to say that, overall, they did a really good job.  I think that the sequel was far better done than the first — although I will admit it’s been a *long* time since I saw the original Narnia, and I should probably give it a nod again.

promises and deliverables

I was thinking about my earlier blog post about my ideas for the new packages site I’m still working on, and I realized that to a lot of people it must seem like I sure promise a lot of stuff, but then never get around to really completing it.  I wanted to address that a bit, since I imagine that at times I’m either confusing or frustrating some people.

First of all, I get a lot of ideas to do a lot of projects.  There’s lots of cool stuff I want to do, and I have a hard time saying to myself “I have enough projects already in the works to finish, better not start another one,” but I do anyway.  I tend to quickly overload myself sometimes that way, which can be bad for everything.  However, one thing I’m getting more strict on is only picking up projects that I’m sure I want to complete, that I’ll see through until the end.  I very rarely, if ever, completely drop a project that I’ve started.  I will tend to put them on hold for a while — sometimes years — but I’ll eventually revisit the idea (heck, the packages website is a perfect example of that).

I have a ton of projects I’m “working on,” though.  So many, that I’m honestly afraid to write them all down for fear of being totally overwhelmed by the responsibility I put on myself for them.  I do, however, plan on getting them all done, and they circle around in my head on a regular basis, and often times I think of ways to integrate two projects (for example, adding an option to search gentoo planet(s) from the packages site).  I get a lot of interesting ideas all the time, but I really have to be careful not to overextend myself.

One thing I’ve been trying to do recently (as in the past year) is slowly shutter off some of the support I’ve been providing for the Gentoo tree directly, and ebuilds / herds I’ve in the past taken close care of.  It occurred to me way back when that it’d be a more efficient use of my time if I built out some project websites (like the packages one) rather than trawling the tree looking for ebuilds to fix, bump and repair (for example).  Not that I mind doing that, mind you, in fact I find it rather relaxing at times, but what’s happened is that I’ve overextended my responsibilities again, and I’m trying to cut back.  Basically, my thought is that while I want to still work on Gentoo for a while, I don’t want to make a career out of it.

Oddly enough, though, part of the reason I’m doing these community projects is so that I can more efficiently do other ones.  For example, at times I like to go through the multimedia packages and just check them to make sure we aren’t missing version bumps, and go fix small bugs that I can take care of and just little stuff that isn’t really important (in a sense of package popularity) but still relevant to a few users.  Those are fun.  But it’d make my life easier if I could more quickly track what has been neglected, more easily see what available version bumps are available (I still wanna hook into GnomeFiles and track their changes, for example), and stuff like that.  A lot of the tree-fixing stuff in Gentoo development is just monotonous, which is why it’s hard to find volunteers to do it.  There’s a good chunk of it that is just boring work!  And I’d like to help streamline that a bit.  That’s one of my big goals.

With that goal in mind, a huge reason for doing the packages site was just so I can have a simple interface to get all the information I need, and finally a standardized set of data for categories, packages and versions.  That’s mostly done, or at least the framework is, so now I can get going on the *really* cool stuff.  What I’ve done so far is really just the tip of the iceberg.

Anyway, I didn’t wanna talk about just the packages site.  There’s lots of other stuff I have going on.  It’s interesting, even to me, to see which ones I’ll want to juggle at a time.  I switch between them on a regular basis.  Sometimes I’ll be working on the packages site, then my DVD ripper, then my scriptures stuff, then I’ll work on theology ebuilds, then sound ones, then I’ll look after ALSA, then mplayer, then I’ll go back to tweaking MythVideo a bit, and round and round and round it goes.  I’m always working on *some* project, that’s for sure.  It might do me some good to try and get a bit more organized, but I don’t even do a good job of keeping track of bugs in my own projects.  I just track them internally for the most part.

So, I apologize for the epic behind status that I’m always in.  I’m starting to recognize more and more how much I’m holding people up on some projects, so I’m doing my best to gracefully exit those areas so someone else can come in and take over.  I’m still fumbling a bit at the best way to do that, but at this point in my life I have at least recognized the few areas that I’m sure I’m not passionate about anymore, and shouldn’t be lazing around just pretending to commit once in a while — of which, there are actually really few.  In fact, I can only think of one off the top of my head.

One thing that might be cool that I just thought of — have a status indicator on my blog or something that displays the current project I’m working on.  That’d be fun. :)  Sounds like work, though.  I’m gonna go watch a movie.