Randomness…

Misc ramblings, just have to get them out there.

  • KDE4 – Not Ready
    KDE4 is so not ready for prime time. Or maybe it’s whatever version is currently bundled with Hardy. Ick ick ick. Not stable, unuseable, bleah.

  • Struts2 – So far so good
    I’m getting into the proper mindset to go “Make that, wire it up, go.” in S2. I’m missing a good powerful JPA layer though – too late to roll Hibernate into v2.0, but I so see it in the future.

  • Laptop battery, not so good
    clipper has a dying battery. After 3.5 years, I’m not surprised, but it is sad. I’m only getting 15-20 minutes out of it now, the question is replace the battery or the laptop and the battery. Decisions decisions.

  • Scratch is still cool
    Zach is still totally emfatuated with Scratch. I watched him ‘program’ for a bit today, and he clicks and moves components around with the best of them. He even figured out how to get it to generate an error and pop up a diagnostic window (“Cool, huh? What is that?” “That’s smalltalk.” “Neat!”), etc. Ahh, my little hacker.

  • Work kicks my ass
    Tech Barbie says “Work is hard!”. It is – it’s taking up a huge portion of my brain and focus, which is something I’m not used to. I finish the day drained and wrung out, but still force myself to get code done for Congo before falling over for the night.

  • Hudson is cool
    We have a hudson install going on one our servers. It’s doing continuous integration builds and deployments. FAR better than the hacked up scripts of yor. Need a new build? *click* Build in progress!

  • Perl made tolerable
    I’m still stuck with working on perl sometimes. But if I have to go total immersion, I’ll likely use EPIC. It’s a Perl IDE plugin for Eclipse, and actually seems to work. Very tasty.

Nuff rambling. Back to the grindstone.

Jay Walker’s Library

I’m certainly a collector. Scouring eBay looking for another odd component to add to my esoteric toy collection is an age old pasttime.
But Jay Walker, the founder of Priceline.com and entrepreneur extraordinaire, has taken it to the ultimate.
Wired.com has an article and pictorial about his private library, containing centuries old books, originals of the milestones in technical and intellectual history (one of the spare Sputnik satellites, Enigma machines, an Edison kinetiscope, a 1960-era vacuum tube processor from IBM), all housed in a custom built 35,000 sq foot room.
Magnificent.

The Weekend, Redux

A couple quick notes from this past weekend.
First, Rock Band 2. ZOMG. I absolutely understand that the PS2 version of Rock Band vastly outsells the Xbox version, but going from our PS2 setup at home (which, admittedly, is pretty good), to a full Rock Band 2 setup on an XBox 360 with about 100 downloaded tracks added to the mix? No comparison, whatsoever. Thanks Doug, I think. 🙂
This may break my self-imposed ban on buying an Xbox. I understand the money situation, but I still don’t like having to buy a Microsoft product just to use one of the best console titles I’ve ever seen. Grump.
Second, thank you blk for a great weekend of hiking, socializing, and hanging out. And for anyone else who ever has the opportunity to visit Pittsburgh, don’t miss the pancakes.
On geeky personal news, I made a bunch of progress on CONGO, as well as thinking about project planning and deliverables. I managed to get Browse working properly while on the plane (why do I do my best coding while jammed into a plane seat? It’s weird), just before my battery died 🙁 I’m on track for my self-imposed schedule of having an FC release by December 1st. I just have to give up sleep. *nod*
Continuing the mental rambling, I was disappointed to note that an idea I had while watching the hustle and bustle of a large airport has already been patented. At least it’s a fairly recent patent, so it’s not like I came up with something and discovered it was considered and discarded a few decades ago.
Last but not least, I continue to love my iPhone. This was my first real trip with it, and having full time access to my email, as well as some intarweb and a few games was awesome. I’m disappointed in the battery life (it requires a complete, full topping up charge -every- night, no cheating), and a couple hours of serious use can deplete it, but it’s a solvable problem. I just have to train myself to charge it regularly.
I have, however, managed to lose my headphones. (The iPhone has a modified set if iPod headphones, adding a microphone dongle). Since I haven’t been a big fan of the iPod style ear buds, I’ll be hunting around for a set of mic-enabled travel headphones now. Any recommendations would be appreciated. They have to fold up nicely. I think I’d like to try a set of on-the-ear headphones again (I’ve been using a variety of in-ear phones for a while), but I’m not interested in the “hang the headphone on the earlobe” style. I don’t mind the bracket-style, as long as it folds up.
Enough rambling for this morning, off to code…

Dreaming…

Apparently Zach can walk through walls. Yep, it’s easy for him, he even almost got me to do it, he said it was easy. I kept having him do it over and over again, then went over to the common house, and showed Diana, and she didn’t believe it either, until I finally convinced him to stick his hand through a door. “See?!?!” I said. She was flabbergasted.
Now all I had to do was figure out how to film it so it didn’t look fake, and to convince Zach to keep doing it for people (he was getting bored). Once I had it filmed and the like, that million dollars would be ours, and it would solve a lot of our short term problems.
Then I woke up…

Pandora-related Amusement.

I’m really getting into Pandora lately. One of the channels I’ve set up is stuff I consider ‘Progressive’. I initially seeded it with Spocks Beard and Yes, and Pandora happily ran with it, adding in Alan Parsons, Styx, Steely Dan, Pink Floyd, and Genesis.
It’s also added in groups I hadn’t ever heard of, such as Dream Theater, Marillion, and Flower Kings. Today I was bopping along listening, and a track came on that I really liked – turns out it was “Suite Charlotte Pike” by the band “Transatlantic”.
Huh, sez I. I like these guys. They remind me of Spocks beard and Dream Theater. Off I go to Wikipedia, and, right there at the top of the page about Transatlantic, I see:

Transatlantic was a progressive rock supergroup formed in 1999 by vocalist/keyboardist Neal Morse of Spock’s Beard and drummer Mike Portnoy of Dream Theater.

Guess I was on the right track.

iPhone mobility

I type this sitting in the bay of my local super-quicky-lube place while happy drones in red swaarm around my vehicle. I’m torn between the image of a formula car driver making a pit stop (the minivan sort of clashes here) and some sort of starcraftian crossover – where one of the drones would suddenly stop in their tracks and go ‘Work complete!’
Regardless, I’m able to do all this insightful commentary due to the ‘internet? We got yer internet right here, buddy’ utility of my iPhone.
I love technology.

Grrr. Rarr. Beware. I have tools.

20080906 iphone 023The time is fast approaching where the dreaded “MOVING” word will begin showing up in my “what are you up to?” column. To prepare for that, I really needed to turn the trailer we got from Harbor Freight a few years ago and turn it into a box trailer. Last weekend I built sides for it, and a folding rear gate, and started loading all the garbage we had lying around into it for a run to the dump.
Now, because we’re in the burbs, getting rid of garbage that’s not normal kitchen waste and not recycling can be a pain in the butt. Fortunately, my brother in law pointed out a commercial garbage facility in Westborough called EL Harvey (warning, it has music on the home page) that, wonder of wonders, takes garbage. Any garbage.
So with Zach’s help I finished loading up the trailer, bungied down the tarp (EL Harvey requires all loads to be tarp covered), and headed over. The trailer held a mix of debris including old boxes that had gotten wet, old yard equipment, broken computers, etcetc. Judging by how the van was behaving, I guessed it was about a ton all told.
Once we got to the station, we lined up with all the big heavy duty trucks, weighed the van and the trailer together, and got directed to one of the buildings. We backed up the trailer, handed over our receipt, and started unloading. It was simply a matter of tossing everything over a low wall into the building, where a pair of big front loaders were shifting the junk around into various piles about 10′ below us. Unloading only took 10 minutes, after which we re-weighed the van and trailer, and paid for the dropoff. Because we were below a ton (about 1600lbs total), we still paid the ‘minimum’ amount ($55 for a ton), and headed off.
20080906 iphone 019Zach and I stopped off on the way up to Burlington to visit Cat’s mom, and checked over the trailer to see how it held up to the garbage run. My sides and gate worked as advertised, and the trailer was happily rattling around empty for the drive up.
I still need to have a ratchet strap around the back to keep the sides together, unfortunately. The 1/4″ plywood siding isn’t rigid enough to keep straight up and still keep the rear gate closed. I may add some bracing on the sides, but really, for the first time out, everything worked just as I wanted.
We’ll be doing another garbage haul next weekend, and I’m sure the trailer will get tons of use once we start hauling things over to Mosaic in… amazingly enough… about 7 weeks.

Mmm, Qualified job leads.

I am… aquiver with excitement over this position. It’s just what I’ve always wanted to do, particularly at this point in my career!

Date: Fri, 5 Sep 2008 10:17:50 -0400 (EDT)
From: Peter@REDACTED.com
Subject: $15.00/hr - 1 Day (Sept 10th Wed) Worcester PC TECH
Hi Dave,
      My name is Peter REDACTED and I'm a recruiter at REDACTED Computer Corporation.
Our records show that you have expertisereflecting  work that I have available at my direct
client. 
The details are: 
WED SEPT 10TH IN WORCESTER
PC IMAGE DEPLOYMENT (SYMANTEC GHOST)
$15.00/PER HOUR W2
MUST BE ABLE TO PASS A BACKGROUND CHECK.
If you are still available, interested, and/or planning to make a change, or know of a friend who
might have the required qualifications and interest, please PLEASE EMAIL ME YOUR MS
WORD RESUME TO peter@REDACTED.com  even if we have spoken recently about a
different position.
When you respond, please include a daytime phone number so that I can reach you.  In
considering candidates, time is of the essence, so please respond ASAP.  Thank you.
Sincerely yours,
Peter REDACTED
REDACTED Computer Corp, Inc.
Note: Please allow me to reiterate that I chose to contact you either because your resume had
been posted to one of the internet job sites to which we subscribe, or you had previously
submitted your resume to RMS. I assumed that you are either looking for a new employment
opportunity, or you are interested in investigating the current job market.
If you are not currently seeking employment, or if you would prefer I contact you at some later
date, please indicate your date of availability so that I may honor your request. In any event, I
respectfully recommend you continue to avail yourself to the employment options and job
market information we provide with our e-mail notices.
Thanks again.
Peter REDACTED
New York, NY 10036

Vacation, Geeking, Code, and MySQL

I think I just made up for my lack of productivity toward the end of last week.
Database Fixes
I had been totally stymied by a problem in the CONGO rewrite – how to handle state of a registrant in a way that didn’t involve scanning history logs and essentially replaying an audit each time. The real stumbling block was defining exactly what states a registrant could be in.
Going by a recent event, it appears there really is a situation where someone may have signed up to work up to attending an event, but hadn’t actually completed the registration yet. In early version of CONGO, we called this ‘subscribed’. It caused all sorts of havoc in the larger events, because there should never have been a situation where someone was subscribed, but not registered.
Cept, it kept happening. The counts of people subscribed compared to the counts of people registered would drift, but in weird ways, and also in ways that were hard to source, due to the funky way CONGO v1 was calculating state of the registrant.
All of this is going away now, with a directly updated and maintained reg_state table that underwent some major surgery tonight. I introduced reg_state to help with this ‘what is the current situation of this person’ question that arises constantly. Apparently, though, I never quite completed tuning it. To wit:
o The table was a MyISAM table, rather than InnoDB
o It had no foreign key indexes at all
o It was not tracking subscription status at all (the logic was ‘if they were in the table, they were subscribed’
Etc etc. That’s all fixed now, and logic was introduced to automatically toss the registrant into the reg_state table whenever they were looked up in the current event. So they’re added, but NOT subscribed, that can be done later, but their state is no longer non-deterministic.
Layout Schmayout. Just show it
Well, not so much. The ShowRegistrants.jsp file may be my number-one edited file in the whole project. It’s the one that determines what the ‘registrant zoom’ screen looks like – probably the most viewed page in CONGO. And I keep fiddling with it. I’m currently trying to cut down the number of pushbuttons on it, and organize them in a useful way. It’s frustrating work, because I’m not really a UI designer. I’m sure I’ll good solid feedback from the CONGO power users out there. I hope ya’ll like it. *worry*.
The next step is attaching the reworked status display with functions (like ‘subscribe’ ‘register’ and ‘print badge’). These new hooks really change the workflow of the application, but I think it’ll be for the better.
Unfortunately, I’ve just gotten a poke that the next major event to use CONGO may be going live in about 10 weeks with pre-registration, so I have a hard deadline now for when v2 really needs to at least be in basic useful form. I really don’t want to deploy the old version again, so maybe this is a good kick in the pants to work toward a functional version in a reasonable timeframe.
Yeah, but… Vacation?
So, I did mention vacation up there. This weekend I’ve been up at the house in Maine with the family and the water and the woods. I suppose it helped to get away from the code for a few days, because sitting down tonight definitely got things rolling again. It’s the last ‘official’ day of the summer-vacation-house season, so we did things like pull the sailboat and power boat out of the water, put the docks away for the winter, and cleaned out the freezer. There’s always some meloncholy associated with labor day because of this. The weekends spent up here during the summer are great, and we had a wonderful time this summer. On the flipside, we’ll start having weekends back at home, which will primarily be taken up with packing for the move to Mosaic in a month or two, but I’ll still miss the mornings waking up to loons calling and the calm still lake out our windows.

Weekblog: Day 2 – or ‘That didn’t go as planned’

As the title says, yesterday hardly went as planned, as evidenced by me just getting around to posting at 9:30 this morning.

The Geekery. It is everywhere!
First, the day was full of IT-related geekiness, trying to get SASL authentication working on the the mail gateway for the Greater Homeport Server Cluster. What should have been an hour long setup and fiddling turned into a 6 hour “Learn what SASL is, learn what TLS is, learn how Postfix manages it, learn how Cyrus implements SASL, learn how to set up standard authentication, and learn how to do this all on an extremely busy mail gateway without killing all inbound mail” process.

In the end, we were only partially successful. The main impetus for this setup was making it so Cat and I could send mail from our iPhones without using Googles SMTP gateway (if you have a gmail account, you can use SASL authentication and send mail from anywhere via smtp.google.com. The drawback? Any mail going through that gateway gets it’s From: line rewritten to the gmail account ID.)

We got most bits working, except for finding out at the end that v2.0.2 firmware on the iPhone has a problem with self-signed certificates on TLS-enabled mail servers (but this is only for SMTP connections – Safari et al has no problem with self signed certs. Annoying). One assumes Apple will be fixing this soon, but it means we can’t have encrypted inbound mail connections from the iPhone. Adam has suggested there is a list of certs that free and Apple certified, I may end up going that route.

Oh yeah, and about the project I’m supposed to be working on…
But that’s not what I came here to talk about.

The point of this week’s blogging was to get focused on CONGO v2 and make some progress on getting toward an Alpha release. To accomplish this, I need to get 2 hours or so a night of fairly focused work time.

Last night I failed.

The main culprit? Lack of sleep. I went out to dinner with my mom last night (mm, steak!), and ended up getting home around 8:30. Not too bad, thought I, I still have a couple hours before bed. Flopped down on the couch, had the laptop out, tossed a movie in, and started work and… fell asleep right on the couch. An hour and a half later, I woke up (now about 10;30), was immensely groggy, and decided “Right, that’s it. Bed.” and flopped right into bed, sleeping like the dead til 8am this morning. Total sleep time? About 10.5 hrs. How I feel today? Stiff, but caught up.

Unfortunately, this meant I got only a minimal amount of work done on CONGO last night. I fixed some of the Notes DAO setups, and started work on modifying the ShowRegistrant functions to enable the notes browsing. I’m trying to decide if the Notes listing should be attached directly to an instance of a Registrant, which means it gets populated whenever a Registrant is instantiated. This really only happens on single views (ala, getting a list of Registrants from a search query doesn’t load the entire Registrant, just an index), so it shouldn’t make things too burdensome. It has the advantage of making everything easily accessible if you have the Registrant at hand. Right now a registrant’s attendance history is attached on instantiation (for Arisia, this is perhaps 20 rows, but that’s somewhat unusual). If I don’t embed the list in the Registrant object, I’ll need a second set of lookups and queries when viewing a registrant, which is a little cumbersome.

For now I think I’ll embed it, and hook up the DAO’s appropriately. It’ll make the display logic a lot easier (data is at hand), and if we end up beating the bejeezus out of the database for largish events, I’ll look at optimizing it.

Conclusion
Onward and forward. Today I need to focus on the paying job and finish up an annoying script, hoping to get it audited and approved by the other engineer. Have I mentioned that Perl is not my favorite language? Oh there is a rant pending…

Orson Scott Card – Totally Nucking Futs.

I usually give authors some leeway in their personal lives and opinions. I mean, particularly SF authors are an odd lot, and entitled to their quirks.
I had heard that OSC had some pretty off the wall opinions regarding gay marriage and the like, but this latest rant, published in the July 24th, 2008 “Mormon Times” as an op-ed piece, takes the ‘batshit crazy’ to a new level.
I suggest you sit down and steady yourself with something soothing before reading that piece. There’s hardly a paragraph that doesn’t elicit a “WHAT?!??!” and “That’s a blatant lie” and “You have GOT to be kidding me”, but here’s a taste if you don’t feel like wading through the vitriol. The first paragraph pretty much sets the tone;

The first and greatest threat from court decisions in California and Massachusetts, giving legal recognition to “gay marriage,” is that it marks the end of democracy in America.

Got that? Democracy’s over, kids! Lets head for the caves!
How bout a few more tidbits:

Remember how rapidly gay marriage has become a requirement. When gay rights were being enforced by the courts back in the ’70s and ’80s, we were repeatedly told by all the proponents of gay rights that they would never attempt to legalize gay marriage. It took about 15 minutes for that promise to be broken.

Wait, who? what? Who promised what where? And I hardly remember laws being passed where it was stipulated “We shall not pursue gay marriage!”
It just goes on. Enjoy the humor value of his ravings, and know that in fact there are many people in the world who think this way. Mores the pity.
Thanks to laist.com and Digg for the pointers.

It’s Sysadmin Appreciation Day!

boomer!Hey kids, it’s Sysadmin Appreciation Day! Go out and give your admin a hug, a smooch, and buy ’em lunch!
I have mad appreciation to all my co-administrators working on the Greater Homeport Server Cluster. We have a lot of users, a lot of sites, and do a lot of good stuff. Because of the purely volunteer hard work done by these people, we have happy users, stable hosting, and very very few outages.
Super-duper mad props to…
Dwight Ernest – owner of ‘msb’ and ‘msb2’ – he helps keep our network glowing.
Mort – he of the ever-patient Movable Type hackery and general “No problem, I’ll take care of that” approach to stuff.
Tim Pierce – a former demigod of Usenet, now good friend and one of the first in the line of fire when Stuff Breaks. I, sir, salute you.
The Greater Homeport Servers can’t function without help from all the community members. I want to also send thanks to others who have done a ton of help with technical and content related stuff…
Lisa Holsberg – while not technically a sysadmin, Lisa is our primary Movable Type geek, and we wouldn’t be able to run our blogs without her help.
Catya Belfer-Shevett – When I first set up Drupal for Arisia, Cat jumped in and is now a Mad Drupal Goddess.
Luwenth – Luw owns the machine(s) that function as Homeport’s secondary DNS servers out in California, and has jumped in and helped several times when we’ve had Issues. Thank you!
Nathan Mehl – I’ve known Nathan for many years, and have an enormous amount of respect for him. Right now, Nathan runs a machine that helps keep our IRC network stable. Thank you!