Matt Hackmann

MattHackmann

The thoughts and goings-on of some programmer dad.

Too Much Time on My Hands

Cherry (off brand) Pop Tarts - $1.50 Three packages of Skittles - $3 Bag of white chocolate chips - $2 Canon Vixia HV30 - $600 Blowing a Sunday evening making a dumb ass video? Expensive

youtube video

jsLive Updates - Now With Less Crappy

I haven't actually worked on jsLive since moving, though that's not to say no work has been done since my last update. In fact, I made some great strides in the graphics department as you can see below.

youtube video

Not perfect, of course, but much, much better. So much better, in fact, that YouTube flagged this video as having copyrighted material from VisualArts whereas it didn't in the last one.

Sadly, all that graphics code is getting scrapped as I move everything over to HTML5 canvas, so really I'm back at square one.

Celebrating 30 Days of Blogging!

Somehow, against insurmountable odds, I have managed to achieve that which I laid out for myself so long ago. To celebrate this monumental event, I have channeled my inner Abrams just for you. Enjoy!

youtube video

How Far Does One go for Fandom?

Over the last three weeks, I was finally able to experience the entire Lord of the Rings trilogy in theaters. And not only that, but these were the extended versions. To say that I finally feel fulfilled as a human being would be outrageous - but it was enjoyable all the same.

However, last night's watching of the Return of the King was a hardship on par with the journey to Mordor to destroy the ring of evil. First of all, despite having arrived an hour early, all the good seats were already taken, so myself and the good folks whom I watched the film with were forced onto aisle seats. But this was only a mild nuisance. No, the real fun was about to begin.

Before each screening, Mr. Peter Jackson was there thanking me for taking advantage of this rare opportunity to watch the "remastered" version of the trilogy as it was meant to be seen - on the silver screen. All well and good, but a dark cloud loomed into the room when the video began stuttering. And so it began.

At various points through out the film this occurred, sometimes only briefly, sometimes for extended periods of ten to twenty seconds, all the while being traumatized by the audio buffer looping on itself. Due to conflicting reports, I could not decide if the movie was being microwaved in or was on a hard drive (I heard reports of both). After two hours of this agony, the movie finally gave up the ghost at the beginning of the battle of Minas Tirith. And we waited...

We waited a good half hour or more, with all sorts of people getting pissed off around us and not a single word from the theater themselves. Finally, a theater manager (I'm assuming) waltezed in and proclaimed that they were having technical issues and we'd be moved to another theater where we could finish watching the film - pending a delay to get everything set up.

So, we moved to a new theater (apparently usurping a showing of X-Men: First Class) which, at the very least, was far and away more comfortable than the last. Like, I could've taken a nap in those chairs with little effort. Which was good, because that "delay" turned out to be an hour or more. Just as we were approaching the "okay, we give up time" the film finally started up again and played without issue.

Generally, one goes to see adventures in a theater, not have one. Would I go through all that again just for the experience of seeing RotK on a large screen? Yeah, probably, because that's the way I roll.

Oh, they did give me a pass for a free ticket, so there was that. And in total, I spent seven and half hours in that theater. Almost an entire work day...

Calculate Moon Rise and Set in PHP

If you've been paying attention to my Twitter account, you've probably seen a reference or two about how I've been calculating the positions of astronomical bodies. Well, today I release part of that to you.

Download: Source

The above code is pretty much a direct port of Keith Burnett's implementation here. Outside of porting, my only changes were some code clean up and having the timezone be calculated automatically for the longitude given. This means that you will always get back a time stamp that is local to the point of origin.

How to Use Moon::calculateMoonTimes(month, day, year, latitude, longitude);

date_default_timezone_set('America/Chicago');
include('moon.php');
print_r(Moon::calculateMoonTimes(6, 28, 2011, 36.754478, -96.110291));

The above code will output the following result:

stdClass Object ( [moonrise] => 1309246800 [moonset] => 1309300560 )

Moonrise and moonset, as stated previously, are a Unix time stamp local to the latitude and longitude given.