My Programming Philosophy: Not the Last X Percent

When you’re a mediocre programmer (read: me), it’s easy to conjure great ideas because you know their solutions to be possible.

It’s slightly more difficult to implement the main constituent concepts of your idea, but only (and hopefully) because there’s some research and learning involved. Recognizing your skills as mediocre, there’s likely a better way to do things than your current level of knowledge permits. A bit of reading and examination of examples set forth by those less-mediocre than you result in slightly-more-elegant code for your idea.

It may be difficult to stitch together all your elegant concepts into the idea, because you want the implementation of your idea to be elegant, as well. Don’t you?

This is the universally-loathed “Last x Percent”.

If you are unfortunate enough to have developed each of the elegant concepts in isolation, your stitching will involve dealing with myopically-complex data structures, and attempts at creating workable interfaces to them. It will be hellish; you’ll wonder why you opted to do things the way you did. But you’ll be too far into the project to go back and change the basics of the concepts to retain their elegance, yet offer graceful interaction.

Or will you?

The majority of the work you should do after dreaming up a great idea is: Work it through completely, or as completely as you can.

Start by thinking of how you would implement the whole shebang with your current (mediocre, remember?) knowledge and skills. Then, make a list of things you wish existed that would make it easier (tools, definitions, whatever). Next, see if those things already exist; do a moderate amount of homework, but don’t kill yourself. If you can’t find them readily, you already have a concept of what you must do to create them. Perhaps you’ll discover new tools, definitions, whatever that will facilitate making those things on your own.

Either way, you’re making progress.

But there has to be a sweet spot.

As you learn more, your functional knowledge will grow, and how you envisage the path to realizing your elegant idea will change. As every programmer’s painful memories can attest: Scope creep is bad. But it’s worse when it’s self-imposed.

You must consciously determine when you’ve learned enough. You have to be able to cut bait on theory and start typing code that works. Otherwise, you’ll never get it done.

Fulfill your personal need to collect fragments of new knowledge. Feel satisfied that you’ve done enough homework to become a better programmer.

Then do your shit. Make it work.

You can always come back later and repeat the process.

My First Official Craving Sortie

Primary Objective: White cake (not of the pound variety) with white icing. Coconut cake from the frozen dessert section will have to do.

Secondary Objective: Fresh strawberries to compliment Primary Objective.

Tertiary Objective: Fresh cantaloupe. A slightly-less-ripened melon will have to do (I never purchased one before).

Results: “This is exactly… exactly what I wanted!”

Mission Accomplished.

Have I mentioned that Erin is pregnant?

Bespectacled

Gregg asked why I hadn’t made a blog post featuring my new glasses.

Why? Fuck you. That’s why.

It’s clicky.

The Spawn is On

Erin had her 8-week sonogram today. As I messaged to The Foof and Gregg afterward:

Operation Nipper: Lima Bean Phase is a GO; I repeat, we are GO!

nipper.jpg

It’s clicky.

If you’re wondering if I’m going to be that insufferable motherfucker who constantly posts shit about his wife’s pregnancy: Yeah, probably.

I’m all up in this shit.

Vacation

Going to Corpus Christi, Texas for the next week.

See also: Flickr.

See also: Tornado

Own Beer Follow-Up

The biggest mistake in the entire process of making our own beer was naming it improperly. We should have named it:

Nappy Time Slumber Brew

Shit makes you sleepy!

Gregg posted 3 new photos taken w/ his godPhone:
Labels, Goodness, Proud

Big Murph Pale Ale

murphale.jpg

We bottled the Murph yesterday. Gregg came with us to check out the joint, and lend a hand on the assembly line (photo). It took us 2 hours to wait, wash and bottle 4 cases of beer. Compared to the other bottlers, I think it’s safe to say we were a model of efficiency.

According to the worksheet supplied by the brewers, the original specific gravity (OG) of our concoction was 1.078, and the final specific gravity (FG) was 1.014. On the sheet, they wrote that it is 6.2% alcohol by weight, and 7.93% alcohol by volume. Following the instructions at howstuffworks.com:

Starting gravity - final gravity = mass of CO2 gone from fermenting

1.078 - 1.014 = 0.064

Multiply by 1.05 (mass ratio of CO2 to ethyl alcohol) = mass of alcohol per liter

0.064 x 1.05 = 0.0672

Mass per liter divided by final specific gravity = % alc. by mass

0.0672 / 1.014 = 0.0663, or 6.63% alc. by mass (misnomered “alcohol by weight” or ABW)

ABW divided by density of ethyl alcohol (which is 0.79 kg/L) = alc. by volume

0.0663 / 0.79 = 0.0839, or 8.4% alc. by volume

I wonder why the discrepancy in the worksheet provided by the brewer exists?

As for the beer itself, it’s kind of sweet, medium hoppiness with only a hint of bitter. I think it’s pretty good, but I’d like to hear what Gregg thinks of the stuff.

Many Thoughts, Mostly Unrelated

… only just compiled after the watershed of “holy fucking shit I’m thrilled, but holy fucking shit now I have to grow up for reals, not to mention holy fucking shit I hope I don’t fuck up this kid’s shit” emotional minefield that every guy must surely navigate after learning his wife is pregnant.

Regardless of what may or may not happen with regard to Erin’s pregnancy, that she is pregnant is an event of note. There was some previous incredulity.

I got my lower 2 wisdom teeth extracted last Friday. The opiate painkiller didn’t really do much for me, so I stopped taking it. Believe it or not… I don’t like being fucked up. Shit didn’t hurt much, but I swelled up like a chipmunk. The worst part is the fucking penicillin; it has been (and still is) destroying my gastrointestinal tract. The pain overwhelmingly eclipses that from the actual surgery. Active-culture yogurt doesn’t help, either.

Fuck Alexander Fleming.

It’s easy to quit smoking if you never leave the house. I can spend 5-6 hours at home and not want a cigarette. Put me at work–even wearing a nic patch? Fuck. That shit’s not easy. It’s the ritual.

I’m still gonna’ buy that Sig P226 9mm (on second thought, maybe I’ll get the .40 S&W?)… but only after I arrange for Erin to take a gun safety course, which was a precondition to the purchase.

Fake beer’s not that bad. The O’Doul’s Amber is actually quite tasty. When I was in college, I asked my O’Doul’s-drinking uncle, “Why even bother?” It’s the ritual.

I don’t blog about hockey much anymore because there are so many others who perform that task better than I. Here’s hoping the Caps can get into the playoffs; they have a great team.

This Changes Everything

holyfuckingshit.jpg

Happy Birthday to My Brother

You may call him Alex, but the family and friends call him something else. *shrug* I guess it depends on the circumstances.

Anyway, today is his 37th birthday, and I called him at home down in Tampa.

He hates it when people make a big deal about his shit. Personally, I don’t think a phone call necessarily equates to a big deal… but…

Here’s the kicker.

My brother was disappointed that I didn’t make a “Clerks” reference.

Y’know.

37

Only after he betrayed his unmet expectation did I realize that this particular birthday of his was ripe.

Opportunity lost!

I give it about… hrm… one year and nine months before I post a blog entry about how my brother burned me on my 37th birthday with a well-placed, gut-shot “Clerks” reference about me sucking dick.

Gregg, you’re on deck a mere 6 months after that, bitch!