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.

some thoughts on php and oop

So, I was working on Znurt this morning (I woke up unusually early, and didn’t wanna go back to sleep).  I’m getting close to opening the codebase, but before doing that, there’s some really obvious glaring deficiencies that I want to clean up first.

The big thing I’ve been working on with the packages site now is making it more efficient.  The first step in that has been gathering some data on how often certain things are being called to see where optimizations are most needed.  So, the other day, I added a counter to the constructor of each class that would just tally each time the class was instantiated, and then I’d dump out the counter at the end of an import run.

One thing that surprised me is how often one particular class was being called — PortageTree.  It’s a really simple class, and all it does is set down some really simple variables that aren’t going to change at all once they are declared, such as the location of the portage tree and it’s metadata cache on the filesystem.  Pretty much used across the board on a lot of other classes that need to know the filesystem location of files (PortageCategory, PortagePackage, etc.).

Well, being still pretty new and fuzzy to the OOP approach, I thought it made sense to just extend the PortageTree class on PortageCategory and call the parent constructor to get the variables set.  That ended up in that class being created a huge magnitude of times,  all for the same pretty much unchanging variables.

So, I switched it this morning to use a singleton instance instead, so the class is only being created once and referenced thousands of times each import.  Much nicer already.

It’s stuff like that that makes me wish I knew more about OOP.  I am studying it on and off, but there’s still some concepts that I just can’t wrap my brain around at times, like exceptions.  In my procedurally-attuned programming frame of mind, every time someone explains them to me, I think … “Well, if something *breaks* why don’t you just work with the return codes and work around that?”  So, yah.  Some stuff is still lost on me.  I’m trying to figure it out though.  Maybe it’s one of those things that doesn’t make sense so much when you apply it to PHP and it’s general usage of websites.  A lot of the stuff I read about, I think how it would make much more sense if it were an actual application running.


On a totally different note, one thing I want to look at getting into the packages website is tracking a changelog of all the package’s keywording history.  Right now, the import process is pretty simple — if the content of the ebuild has changed, then the old one is marked for removal and an entirely new ebuild record is created in the database.  The reason for that is because that is far easier to do than it would be to examine all the myriad of data that is associated with one ebuild, track the changes, and then flag those.  Instead, I just dump the old one and treat the new one as a completely new record.

There’s a tradeoff in the compromise, though, because instead of tracking ebuild modifications, I have to do all this coding to flag packages and ebuilds that things have changed and to treat them as an update instead of a new one.  That was tricky to get setup right, and getting that stuff in there in fact was one of the main things that pushed the initial launch back.  It was just one of those things that I couldn’t run into the bugs until I started actually doing  a sequence of import runs, since they wouldn’t show up until then anyway.

But, I’d like to start at least tracking the ebuild keyword status changes.  The reason is because that is really valuable data that can provide an excellent set of reports.  For instance, we can see which categories / packages / herds are getting ignored historically as far as stabilization.  Plus you can do cool stuff like import results from a statistics tracker as far as what people have installed, and you can start to see where maybe the tree could use a little more love.  And, it would help contributors who want to help out, but are overwhelmed by the enormity of bugs and packages and issues that need to be addressed.  I could see it being helpful saying, “here’s an area that is suffering from neglect *and* is popular.”  That would be cool.  And that’s my goal.  In fact, that’s *been* my goal for years.  I’m just now getting to the point where it’s becoming possible, though.

Fun stuff.  I gotta hone my coding skills as I go, though.

skateboarding in winter … um, again

I must be out of my mind.  I went skating again tonight (the second time in a week), even though its like 30 degrees outside.  It’s freaking cold, man!  I dunno what came over me, though.  I just really wanted to go skating all of a sudden, so I called up Kevin and we went to Liberty Park and screwed around for a bit in the biting cold.  It was really fun, and I totally sucked at landing anything because I haven’t been in at least six months.

Then, tonight, it was equally cold, but I went to Fairmont and was just screwing around.  Good times.  I really wanted to get a picture of the skate park, since it’s half covered with snow, but there’s enough melted that you can actually go around it in places.  Instead of that, here’s a picture of me drawing pictures. :D

I think I learned a good trick though to skating tonight.  Just freaking relax.  I realized the other day that I get totally tense when I’m poised to ollie or shuvit and it’s totally working against me.  So, tonight I tried to just relax and try and pop it a couple dozen times no matter how poised or ready I felt.  It wasn’t very effective practice, but I did *try* a lot more, so that was good.  I landed one ollie, I think.  Barely.  I’m not sure I really went in the air, actually.  But who cares.  I went out, I had fun, it was worth it. :)

znurt hosting, bugs, code

I migrated the packages website to a new server this weekend, and so far I’m really glad with the setup. I originally planned on having the whole thing setup in a short time, but I went with a different web server setup this time around. Instead of using lighttpd for the server, I went back to apache, but this time with mod_fastcgi to run PHP. From what I’ve read, PHP doesn’t like threading too much, so running at as CGI instead should avoid any possible headaches. We’ll see. So far, the site is far more responsive than everything else I’ve tried, so I’m happy.

I feel bad about how things have gone so terrible since the initial launch of the site. I really was not ready for the massive load, and my interim solutions were just slow and clunky. Hopefully things should be much happier now.

There’s still a lot of silly bugs in the code that I need to fix. I just found another one this morning where the caching is breaking if you change your architecture selection around. Oy. I’d like to get to them, but I’ve been pretty swamped for time lately, between starting a new job this month and dividing my remaining time doing consulting work for two other companies.

Having a break from it though has been kind of good. I’ve already thought of a few optimizations that I can throw in there that are kind of like, “well, duh” type stuff I can’t believe I didn’t think of. For example, one way that I check to see if an ebuild is new is to see if the file mtime has changed. I don’t know why it never occurred to me to just read the Manifest file and see if any of the hash sums have changed. That’d save me a lot of time.

I’ve been poked a few times about getting the code in a live repo somewhere, too. I guess that’s coming soon, assuming I can get around to it. Personally, I don’t like the idea of doing it when I *know* my code is in some ugly stages, but whatever. I need to learn how to setup a git repo anyway.

Oh yes, that reminds me. I also moved all the Planet Larry stuff onto the same server. Everytime I poke at the site, all I can think about is how much of an overhaul the whole thing needs. I’m totally embarrassed that I haven’t even switched over to using Gravatar yet.

My goal is to ditch the planet software and write my own software to pull in the feeds, drop them in a database, and have the whole thing searchable. Then build a user admin section as well so users can manage their feeds themselves, and stop waiting on me. I’m planning on making that my next project, once Znurt gets to a better stage of stability.

Right now, though, I just did some minor tweaks. I got rid of the subdomains, and all the other projects on the site that I let atrophy, so planet is just available now at