Mike Bland

Instigator

Most recent posts

142 posts total. See Filtering and Navigation for tips on how to find the bits in which you're interested.

I've released go-script-bash v1.7.0, which contains powerful new test helpers and file system modules, as well as project management improvements.

- Alexandria
Tags: Bash, dev tools, go script, Linux, Mac OS X, programming, technical, testing, Windows
Discuss: Discuss "go-script-bash v1.7.0" on Google+

I’ve just released go-script-bash v1.7.0, which contains a bunch of new test helpers, file system helpers, and improved project management features—including a go-script-bash Windows build on Appveyor.

One particularly crazy new thing is I figured out how to test background processes to an extent; check out the lib/bats/background-process module.

As usual, the release notes have the details, and I’ve set up a v1.8.0 milestone and v1.8.0 project.




I attended my first beCamp in Charlottesville, delivered a few talks, and generally had a wonderful time—with one especially hilarious glitch

- Charlottesville
Tags: documentation, grouplets, presentations, Rainbow of Death
Discuss: Discuss "Making a child, or speaking at beCamp 2017" on Google+

At Isaac Truett’s invitation, I was honored and grateful to attend beCamp 2017 in Charlottesville, hosted at OpenSource Connections. Of course I was curious to get a feel for the town after the horrific events of last month, but as I’d suspected, I found a town in no way fundamentally changed or defeated. It’s just as vibrant and beautiful as I’ve always known it to be. The only change I noticed is a renewed appreciation of the fact that social progress and democracy can never be taken for granted, no matter how far we’ve come. Funny how outrageous events borne of hatred and evil, while bringing out the worst in some, tends to bring out the best in the rest.

What follows is just a few quick personal notes about the proceedings. Suffice it to say I had a great time, and can’t wait to come back!

Making my pitch
Giving and receiving
Making a child (in front of an audience)
Docs as hacking tools
Wrapping up

Making my pitch

Never having attended beCamp before—or any sort of un-conference, really—I didn’t know what I was in for, but really enjoyed the ride. On Friday night, a 120-so of us, I think it was, mingled over pizza and beer. Isaac then introduced the event, and led the room through a round of short introductions—in the form of three words or a haiku—before we started our pitches for presentations, sharing sessions, and learning sessions for the main event on Saturday.

Oh, and my introduction? While I was tempted to say something like “Winter is coming,” I actually went with this:

Right thing not easy—
how can we make it better?
The Rainbow of Death!

Yeah. Anyways…

There were a ton of great pitches, but only twenty-four slots (four parallel sessions across six time slots). I got in line three times to pitch The Rainbow of Death, Automated Testing—Why Bother?, and a new talk on a topic that’d I’d been particularly focused on lately, Documentation as Organization Hacking Tools. Of the three, “The Rainbow of Death” was selected for a 10am time slot, and “Documentation as Organization Hacking Tools” was selected for a 2:15pm slot. Which meant that I had to hurry to slap a new deck together…

Oh, one other thing: I didn’t mention the word “Google” while giving my pitches, and only Isaac and one other person there knew my background. So I was pleased that my talks were selected on the merit of their premises. And while I was a little sad that “Automated Testing—Why Bother?” wasn’t selected, in a way I was relieved, because both halves of that talk are so long and dense. While voting was taking place, I had people chatting with me about it informally anyway. And honestly, it wouldn’t’ve been right to eat up three slots out of twenty-four while there were so many great ideas that didn’t scheduled this time around.

Giving and receiving

The rooms weren’t very big, but I actually loved how small and intimate the sessions were as a result, with so many people shoulder-to-shoulder. Each slot was only forty minutes, so I really had to rush through the end of “The Rainbow of Death”, but the group was really great and seemed to really dig it.

There was one younger fellow who asked something early during the talk along the lines of: “Why wouldn’t people be testing while they code? Why would anybody wait to do testing until the end?” Those of us who were longer in the tooth with a few more scars gleefully opened his eyes to the dark times of ages past. Honestly, as I mentioned to him, I was rather pleased that he was seriously asking the question: I took it as a sign that yes, those of us who care about testing really have begun to win over the world.

I then attended a session on “mindfulness in tech”, by Jessica Glendinning. At some point I noted the challenge I find between what I understand as “mindfulness” in terms of being present and in-tune with life and reality, and the addictive “mindfulness” I experience in the flow state while coding, which I feel leads me to neglect the other kind of mindfulness and leads to further complications. In other words, I crave that “mindful” state, and achiveve it most easily through coding, but it often feels like more of an escape given the extremes to which I tend to indulge.

Through the course of the discussion, a fellow named Noah Healy noted that in aikido, you’re trained to focus less on where your enemy is and more on where you want to be—and then you can bring your enemy along with you. Jessica later mentioned that the problem with constant protesting is focusing on the fight your opposition wants you to have, rather than on the place you want to get to. I pointed out the parallel right away, as for me this was key: When in a state of coding flow, I’m focused on the problems I want to solve, where I want to be at the end of the exercise. If I apply that same vision to other aspects of my life, perhaps that healthy balance I seek will begin to manifest.

Another point raised during this discussion had to do with the challenge of distraction and task-switching, being reactive versus proactive. In addition to being another lens through which to view the earlier insight, I took notes to add to my “Documentation as Organization Hacking Tools” talk:

Task-switching minimization is another value-add of good docs. Proactivity vs. reactivity.

The next session was called something like “Teach me what I don’t know” by a relatively-young-yet-wise career-switching web development newbie called Todd Gerdy. (Originally I’d remembered his last name as “Gendry” until I looked it up, which is an approrpriate Freudian slip, as you’ll see right now.) After I jokingly helped kick off the session by exclaiming "You know nothing, Todd Gerdy!" we all had a really great, vibrant discussion full of sage advice—though some of my impostor’s posturing seemed to pass undetected—and great fun. There were too many great ideas to post here with any fidelity; if he ever gets around to posting from his notes, I’ll be sure to add a link.

Making a child (in front of an audience)

Immediately after lunch and before the afternoon sessions commenced, there was a round of lightning talks. Hoping to repeat the success of my go-script-bash lighting talk from Surge 2016, I queued up to give it again. Though for some reason, instead of mirroring my display to the monitor, I set it up as a separate display. While I do this frequently for presentations, I hadn’t realized that I’d not used it for dragging and switching between windows in a long time…

The presentation started off well. I said something like:

“A former colleague once shared a penetrating insight into human nature during a meeting. He noted that ‘People do strange things…especially when they’re alone.’ So let me show you something…”

From there I explained being inspired by Pete Hodgson’s blog posts on the ./go script idea (In Praise of the ./go script – Part I and In Praise of the ./go script – Part II), how a well-used and maintained script is better than a stale README containing broken commands, and then tried to launch into my demo. But when I started to drag my terminal window onto the separate display, it didn’t show up. So I fumbled through keystrokes trying to remember how to take the browser window down from full-screen, and hit CTRL-F in the process…

At this point, while still fumbling, the guy tracking the time noticed that I’d activated the in-page search in the browser that contained the last text I’d apparently searched for. He then asked the observational question that turned the whole thing into a beautiful disaster:

“Does that say ‘make a child’?”

Yes. Yes it did. I just sat and stared, both trying to comprehend what I was last searching for—clearly, as everyone in that room also knew, I was probably looking for some detail about making a child process do something or other—and also for maximum comic effect. After a suitably pregnant pause, I turned to the audience and claimed, “I’m not that ignorant!”

By this point I knew I had practically no time left for my actual demonstration, so I rushed through a couple comments, and mentioned I’d be talking more about it in my 2:15pm session on documentation. It was actually quite fun and hilarious, just going with the disaster and relishing it with everyone else rather than letting it upset me in the slightest. I was both amused and flattered when one guy in a later lightning talk mentioned wanting to get a T-shirt with “Make a child…?” on it as a memento of beCamp 2017.

Docs as hacking tools

Since I’d only conceived the Documentation as Organization Hacking Tools talk during the pitch session the night before, I drew slides and inspiration from “The Rainbow of Death” and Making the Right Thing the Easy Thing (January 2017 Edition) to hastily assemble the deck first in the morning, and this first delivery was also the first run-through. Rough as it was, I feel it did a good job of organizing and expressing my thoughts and experiences regarding documentation culture, and how critically important is to organizational efficiency and change in general. (Though only today have I remembered that I didn’t mention snippets and OKRs…still, not bad for a first draft.)

Thankfully this talk didn’t take up the whole forty minutes, and I got to show off my go-script-bash framework a bit more properly. Then we had a great discussion of how some of these doc tools and concepts, including the grouplet idea, can be brought to bear in others’ organizations.

After this session, I spent the next two sessions out in the hallway having great conversations with Doogie Proffitt and Mike Alexander, amongst others; I was about socialed-out, and I enjoyed the relatively low pressure of in-depth one-on-one conversations. But still, there were some great sessions still going on, and I was sad that physics prevented me from being in more than place at once—a common complaint at conferences, yet still difficult to accept.

Wrapping up

At the end of the day, there was a big group retrospective, everyone was happy, and a bunch of us went to Random Row Brewing Company nextdoor (lit-er-al-ly, as OSC is in the top floor of the building next to it in the picture on the landing page) for a pint afterwards. New friends, great times, etc. etc.

OK, gotta catch a train back home—Charlottesville, I shall return!




I've released go-script-bash v1.6.0, a small release featuring its first user-contributed feature!

- Alexandria
Tags: Bash, dev tools, go script, Linux, Mac OS X, programming, technical, testing, Windows
Discuss: Discuss "go-script-bash v1.6.0" on Google+

I’ve just released go-script-bash v1.6.0, a minor update that includes the first feature contributed by a user! Juan Saavedra contributed an update to go-template to download a release tarball from GitHub rather than using git clone, which he found a little surprising as a user.

Though it’s been a long time since go-script-bash v1.5.0, it’s not like I haven’t been busy thinking about this project, as I’ve been creating features in my custom-links and dev-setup projects that I’d like to import into the framework. I also came up with a few more during the course of merging Juan’s contribution. However, since I left him waiting longer than I should’ve to merge his contribution, and I know how “little” features of this project can end up taking time to polish across multiple operating systems, I’ve decided to release v1.6.0 today and push these other items to the v1.7.0 milestone. All of the other features previously slated for the v1.6.0 milestone have been bumped to the v1.8.0 milestone.

(One of these days, I’ll get back to mbland/certbot-webroot-setup and the "Switching to Let’s Encrypt with HPKP" series as well.)

I’m obviously having a lot of fun with this project and getting a lot of use out of it—but it’s pretty cool to have someone else excited enough to add a feature to it, too!