Tuesday, 26 February, 2013 —
devops
Asking “What is DevOps?” is a question I’ve heard some variation on frequently over the last couple of years as it’s blown-up as a career niche. There’s been a counter-movement. DevOps as a term is about as well-defined as Agile is for software development, which brings me directly to my point.
There’s what engineers I work with call “Capital A Agile.” Think dogmatic practice of Scrum, where absolutely everything has been processed out to the hilt:
- Sprints are always n weeks
- Releases are always n sprints
- Sprint teams always have n Engineers and int(n/2) QA Analysts
- The retrospective is always at 3 pm on the Monday after the sprint finished
Process isn’t bad. Defining process is great and on the whole, having guidelines similar to the four above is healthy. What’s less healthy is the word always in each of these. Capital A Agile is a process smell, particularly when additional rules get layered on regarding grooming sessions, and so on.
Conversely, “little a agile,” will probably have less strict process definition:
- Sprints last two weeks
- Releases are two sprints
- We aim to have teams of four to six engineers and two to three QA analysts
- Our standing meetings are …
- All points are renegotiable when the need to be
Keeping with the sprit of the Agile Manifesto, process is important, but not as important as healthy interactions within the team.
To that end, think of Scrum and Kanban as process and planning design patterns. Just as it isn’t smart to force an inappropriate design pattern where it shouldn’t be in software, it’s not smart to force more process than the team requires to deliver what the business needs.
How does this relate to DevOps? Just as Agile practices within a company can ossify, so too can DevOps. Think instead of little d devops, loosely-coupled and evolving best practices for getting developers to think of software all the way through production, indeed of deploying to production as a beginning and systems administrators and infrastructure engineers facilitating an entire team to be able to own what ships, how it ships and how it lives once shipped.
Sunday, 21 October, 2012 —
civics
With the November election in just another couple of weeks, it’s past time for me to get ready for early voting. In my last post, I pointed out info regarding early voting and registration info. Hopefully you’re already registered. If not, you can register and vote at one stop voting in North Carolina until Nov. 3.
What about selecting candidates? On my ballot, I have 32 offices and one bond referendum to vote for. Twenty one of those offices are contested and of those, only three have a third-party (Libertarian) or unaffiliated candidate. Several judicial races are uncontested. The race for North Carolina attorney general is also uncontested. That’s a pretty sad state of affairs, partly related to North Carolina’s ballot access policies.
Outside of the presidential races, I have a fair amount of research to do. I use a mix of candidate websites and voting guides.
Checking around today, here’s what I found that covers North Carolina broadly, the Triangle or Raleigh:
My own approach is going to be breaking up my sample ballot into chunks and researching three or four races a day, instead of trying to get through everything at once.
Tuesday, 9 October, 2012 —
civics
On November 6, 2012, you need to vote. Not just for president, either.
In North Carolina, there are races for governor, lieutenant governor and other Council of State offices, state legislature, congress, judgeships, county commissioner, etc. The down ballot races get far less attention, but it’s more likely that your vote will matter more. Please take the time to get ready.
First, If you’re in North Carolina and you have not already registered, you can do so until Oct. 12. Starting Oct. 18, you can vote early. If you haven’t already registered, you can register and vote the same day. See the NC Board of Elections site for more. In Wake County, visit the county Board of Elections early voting site for more info.
Second, know how you’re going to vote before you go. Research. In the Triangle, the N&O has a voting guide prepared by the NC Center for Voter Education.
Third, know when and where you’re going to vote Nov. 6 or through early voting.
No excuses, check your schedule, make sure you can vote, then make sure you’re prepared to vote. It matters.
Sunday, 9 September, 2012 —
photography
travel

I’ve finally started editing photos from our June trip to Montréal. The photo above is along waterfront, south of the old port, looking across a quay to Habitat 67, a housing complex built as part of Expo 67.
Our friend and host for the week, Igor, showed us around different parts of the city our second night in town, and we drove by Habitat 67. It was rather striking.
Later in the week, photo walking the Pointe du Moulin site, we were given a hint to walk around Silo No. 5 by a couple of guys walking a dog and, through a bit of a fence, and we’re at the end of the pier Silo No. 5 sits on and Habitat 67 is right across the water. In a nice coincidence after we got back from Montréal, Stars announced The North the album cover for which features Habitat 67. It’s well worth a listen.
I have a small, but growing, set of Montréal photos over on Flickr. Check it out.
Saturday, 8 September, 2012 —
development
utilities
I occasionally have a metric mumbleton of browser windows and tabs open, particularly if I’m digging into a research topic. In the past, if I’ve needed to close out windows or tabs, but have wanted to keep the context, I’ve gone to each tab individually and saved the URL to a file.
In the last week, I found myself with about five windows and 45 tabs, so my typical approach strikes me as insufficiently lazy. So, I was going to find or write something to handle the task for me. My initial Google research didn’t turn up the sort of AppleScripts I fully expected to exist. So, it looked like I was going to be writing AppleScript myself.
I found some code in a similar area and I reached my typical wall with AppleScript. At some point, I should actually solve a problem with AppleScript, but instead, I used the rb-appscript gem and wrote a Ruby script that interacted with the Safari AppleScript dictionary, based on a concept I saw in a StackOverflow post.
Here it is:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #!/usr/bin/env ruby
require 'appscript'
require 'yaml'
include Appscript
safari = app 'Safari'
url_list = safari.windows.tabs.URL.get
url_list.flatten!
dt = DateTime.now
date_format = dt.strftime("%F_%H%M")
list_path = "#{ENV['HOME']}/saved_urls_#{date_format}.yml"
File.open(list_path, "w") do |f|
f.puts(url_list.to_yaml)
end
|
This is also available as a syntax-highlighted GitHub Gist.
It’s nothing magic, but just the sort of simple utility that solves a small problem for me.