Who’s Gonna Ride Your Wild Horses

Cowboy coding, I wish I knew how to ⌘Q you

The sun has set on my unbridled "cowboy coding" for the last time. (Geek alert. You've been forewarned.)

Traveling 5+ weeks and not touching Charitocracy the entire time was never my plan. I thought I would have remote access to my home server, but something went wrong. (I still don't know what, but I have some suspicions.) I set up a more reliable VNC connection as an immediate countermeasure when I returned home so this particular obstacle wouldn't repeat itself.

Really, though, I needed to rethink my overdependence on an old Mac Mini (MM). I chose it as my main staging server by virtue of it being the only unutilized Mac in my house, purchased as a home theatre PC before Apple TV made it obsolete. I used dynamic DNS to direct ch-y.org traffic to my home network, then my router port-forwarded to the MM. It just worked... except when it didn't. Namely while on my trip, and about half the times I tried logging into it from neighborhood coffee shops.

Meanwhile, I have a powerful mid-2015 MacBook Pro (MBP) at my fingertips any time I'm working. It runs circles around my circa 2009 MM. I never need to access it remotely over a questionable net connection. So why am I trying to use it as a dumb terminal into an ancient machine across the house, across town, or across the world as the case may be, with mixed success at the best of times?

Last week I declared an end to amateur hour by doing the following:

  1. I installed MAMP on my MBP.
  2. I set up a git source control repository (with origin backed by my iCloud drive) to host Charitocracy web code and database.
  3. I rebuilt the Charitocracy beta site from scratch on my MBP, submitting to git at intervals along the way, using my MM's site as a reference.
  4. I created a pre-commit hook that automatically adds a SQL database snapshot whenever I commit code changes.
  5. I installed and configured PageKite, a pay-what-you-want tunneling service which allows me to receive Charitocracy network traffic (including TLS/SSL) wherever I like, including on my MBP, even if I'm in a random waiting room or coffee shop (as I am right now).
  6. After proving the new beta site worked as well as the MM's, I pulled all the code and data back from git and proved I could easily clone the site on my MM, redirect PageKite to serve it up externally, make changes to the site on MM, and pull the changes (code and DB) back onto my MBP.

So I'm finally baking some real engineering discipline into my coding process. Nothing falls through the cracks. I can go back to previous snapshots of code and data. I can easily view and search through changes, even if they were in the DB or in code I didn't write myself, like plugins. I can travel. And all of this is quick and robust, because 99% of it is happening right on my laptop (credit card processing is one exception, but that traffic works seamlessly through PageKite, too). And if I get hit by a bus stagecoach tomorrow, you'll all be able to pick up where I left off, right?!

I still have plenty of engineering discipline yet to adopt, the sorts of things truly necessary when working in teams with fluid requirements and actual deadlines. So I reckon I'll just ⌘H the cowboy coder until the coast is clear. Yeehaw!

Callin' the VT100 a dumb terminal? You sure you wanna be doin' that, Benj?

Back in the Office

Looks like you've been missing a lot of work lately, Benj.

"I wouldn't say I've been missing it, Bob." I packed 6 months of travel into 6 weeks, but got it out of my system. Let's hope.

You'll recall before I left, the IRS totally punk'd us with a letter saying "We got your application, now sit tight for 6 months while we think about it." Then after I left town, they followed maybe two weeks later with a letter saying, "Just kidding, we love you guys, don't change a thing, you're totally in." I'm paraphrasing, the actual letter of determination is here.

If you want to know what goes into a full-fledged Form 1023 these days (not the shortened -EZ version) you can take a look at that here.

I thought I'd be taking my time getting the web site up, and that the IRS making donations to Charitocracy tax-deductible would be the long pole in the schedule. Suddenly I'm the weakest link! Charitocracy's only obstacle to going live is me. The pressure is back on, friends. Jessica be all like:

Yeah... I'm going to need you to come in on Sunday, too. Usual Time.

Nailed It!

Benj is away so the kids and I eat lots of meat, watch horrible (nay, amazing?) movies, and sleep in the big bed. I have the pleasure of taking out the trash and getting the mail. Glamorous life, I tell ya!

Bison chili? Nailed it. Watching the very 80's and mildly inappropriate for kids Adventures in Babysitting? Oh, we SO nailed that! Middle of the night visits to my bed by each kid? They each nailed it. Recycling? Well, I missed the first week's pickup but I totally nailed it this week!

Getting the mail? Yeah, I'm mostly terrible at stopping by the post office even though I drive by it multiple times a day. I mean, why bother? Christmas card season is over. It's no one's birthday. And I have enough credit cards, thank you very much.

But, OMG, YOU GUYS!!! Look what came in the mail this week!!!

Letter Of Determination

Getting approved for our 501(c)(3) tax-exempt public charity status on the first try?

Yeah. WE NAILED IT!