Main image
15th May
2019
written by Chris

I love Terraform but, as we’re fond of saying at work, “it’s a loaded gun pointed at your production environment.” There are ways to minimize the risk but they boil down to writing a bunch of test automation around Terraform so as to be sure that it’s not doing something evil.

That’s a great idea, but no one much wants to pay for it. Toil budgets would be a great way to get buy in on this, but that’s another topic for another day.

This means that while I can easily spin up all kinds of expensive cloud resources just by running a Jenkins job, it’s easy to lose track of them and forget to spin them down. This then leads to an annoying hunt through a bunch of Jenkins console output panes trying to find environments with weird names like “trusting-manatee” and “polite-tick”

So, since I’m not allowed to have a script to clean up environments, I wrote one to find the jobs I need to promote in order to clean up environments. Hooray!

SEARCH_STRING = "lost-environment"  
Jenkins.instance.getAllItems(AbstractItem.class).each {
    if(it instanceof hudson.model.FreeStyleProject) { 
      for (build in it.builds) {
      	def log = build.log 
        if (log.contains(SEARCH_STRING)) {
    		println "${it.getFullName()}: ${build.id}"
        }
      }
    }
}

Is it fast? No. Is it elegant? No. Does it work? You bet.

6th October
2016
written by Chris

There are few indications of how broken an office communications culture is than emails titled “PLEASE STOP AND READ THIS MESSAGE.” There was a time when Email was to office communications as Democracy was to government — “the worst… except for all the others.”

That’s not true anymore. There are better ways to communicate, collaborate, and work together. Choosing good ones and encouraging the adoption of them can really change the character and nature of your work-place. Give it a try.

27th September
2016
written by Chris

Like many Americans, I watched the Presidential Debate last night. I could spend pages on what was said and not said by both candidates but one line from Secretary Clinton really stood out to me as a technology professional in the field of Cyber Security.

“We need to make it very clear — whether it’s Russia, China, Iran or anybody else — the United States has much greater capacity. And we are not going to sit idly by and permit state actors to go after our information, our private-sector information or our public-sector information.” (more…)

28th January
2016
written by Chris

I’ve been doing front-line software development for more than a decade now.  I got my first job in the industry working for this small startup making the digital equivalent of a calendar or a fruit-basket for real estate agents to give out to their clients.  The business side of the enterprise seemed so far away then; the rest of the team and I put our heads down, banged out features, solved problems, and were shocked to find, three years later, that the product we’d so  lovingly crafted wasn’t selling because our target market didn’t have money to buy it.

Since then I’ve worked for the military and done battle with ColdFusion, a contract development shop where I tooled around with mobile before mobile was big, and another small company doing C# web development for the mortgage industry.  As I’ve changed jobs my roles and responsibilities have drifted further and further away from head-down coding and towards more nebulous things like “architecture,” “process,” and “professional development.” (more…)

13th March
2015
written by Chris

This is less of a blog post and more of a brief public service announcement.  If you are using Entity Framework and you change the namespace of your Context file bad things will happen.  Future Add-Migration commands will attempt to re-script your entire database.  Google will be remarkably unhelpful in diagnosing this problem.

“But,” you say, in your best Comic-Book-Guy voice, “changing namespaces is annoying; no one would just change their Context’s namespace.”  To which I reply, “if you’re using ReSharper you might, because it pretty much automates the process and nags you if you move files around.”

Not that solving that problem just consumed an hour of my day or anything.

25th February
2015
written by Chris

One of my goals in spinning up a software development team at Foxguard has been to have a development environment ready to go before the first person comes through the door.  That means a vague skeleton of the application we are developing as well as the apparatus of building, deploying, and testing that application.  Since anything worth doing is worth doing right we’re approaching the latter problem with a Continuous Deployment solution in mind.  That means that every time we commit code it is picked up by a automated script, built, tested, and published — ready to begin evaluation through some as-yet-to-be-determined test suite.

The first part of this is fairly easy.  Jenkins is a great tool and there is no shortage of tutorials out there on how to make it play nicely with GitHub, MSBuild, or any other technologies you might be using.

Deployment, though, is a bit of an more difficult nut to crack. (more…)

22nd February
2015
written by Chris

picard-facepalmThus is the danger of over-automating your life.  I long-ago configured Unroll.me to bundle up messages from my hosting provider as well as several of the services and plugins I use on this site.  I check Unroll.me messages…. occasionally, but not often.  As a result, I missed several notifications: that my account with a spam-comment filter service had lapsed, that my site was being moved into a suspended state by my hosting provider for excessive spam comments, and the replies to my inquiries to that some hosting provider about what happened to my site.

Mea Culpa.

So now we’re back up and running with a new and improved spam filter.

Tags: , ,
17th November
2014
written by Chris

Software development is about process refinement.  Try something, see if it works, revise, adapt, reset, and try again.  If you’re doing the same thing the same way every time you’re not moving forward and, in this field, that means you’re falling behind.  Do that long enough and you start to apply it to other things in your life.  I switched from a QWERTY layout to Dvorak for more or less that reason (working out well, by the way) and I’ve taken up baking and gotten into coffee with much the same approach.   (more…)

Tags:
27th October
2014
written by Chris

After a lot of soul searching on my professional future and the path that I want that future to take I have left VirPack and, today, begin my new adventure at Foxguard.

Here I will have the opportunity to build and likely manage a development team, the freedom to build quality and maintainability into the software process from day-one, and an opportunity to really make a difference in an industry in flux.

On the down side, I no longer have a window in my office.

Deep breath; here we go!

24th January
2014
written by Chris

Back in the 1940s a guy named Dvorak got it into his head that the way we type is wrong. Our fingers transit too far across the keyboard, he argued, and as a result our motions are inefficient and slow. Dvorak rearranged the standard QWERTY keyboard to make typing more efficient, eliminating the design constraints which had originally informed the layout we all learned to type on.

In theory, that should make for a faster typist though it does take some getting used to. For me, this marks the jumping off point and possibly a painful transition. This entire post was touch typed using the Dvorak layout and, despite quite a bit of practice on a very helpful typing tutor, I can’t remember typing this slowly since middleschool.

Previous