Added By: Feedage Forager Feedage Grade B rated
Language: English
day  great  important  json  ldquo  make  part  people  rdquo  san francisco  swagger json  swagger  time  vision  vox  work   
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics


eating my own dog food


Run code on specific Jenkins slaves

Tue, 20 Jun 2017 00:00:00 -0400

I needed to update some code in a GitHub repo that’s checked out as part of a Jenkins pipeline. I could have just run the job over and over until it had run on all the hosts, but with 15 hosts, that sounded like a pain in the ass.

Turns out you can pass a host name to node so here’s a quick pipeline to run the shell command on all the hosts (ci-slave1 through ci-slave15):

#!/usr/bin/env groovy

for (def i = 1; i <= 15; i++) {
    node("ci-slave${i}") {
        sh '''
            cd /home/jenkins/dev_tools
            git checkout master
            git pull

Worth pointing out I’m using the old school for loop to avoid the CPS isssues Jenkins has with the nicer Groovy loops.

The Wisdom of Richard Hamming

Wed, 07 Jun 2017 00:00:00 -0400

Yesterday Jason Kottke posted a link to a transcript of a talk that Richard Hamming gave at Bellcore in 1986. The talk, titled You and Your Research, is an hour long summary of his philosophy on how to do Nobel-Prize level research. I’d recommend reading the entire thing but I wanted to pull out some longer passages that really resonated with me. Be clear on your goal and how to get there If you want to be a great researcher, you won’t make it being president of the company. If you want to be president of the company, that’s another thing. I’m not against being president of the company. I just don’t want to be. I think Ian Ross does a good job as President of Bell Labs. I’m not against it; but you have to be clear on what you want. Furthermore, when you’re young, you may have picked wanting to be a great scientist, but as you live longer, you may change your mind. For instance, I went to my boss, Bode, one day and said, “Why did you ever become department head? Why didn’t you just be a good scientist?” He said, “Hamming, I had a vision of what mathematics should be in Bell Laboratories. And I saw if that vision was going to be realized, I had to make it happen; I had to be department head.” When your vision of what you want to do is what you can do single-handedly, then you should pursue it. The day your vision, what you think needs to be done, is bigger than what you can do single-handedly, then you have to move toward management. And the bigger the vision is, the farther in management you have to go. If you have a vision of what the whole laboratory should be, or the whole Bell System, you have to get there to make it happen. You can’t make it happen from the bottom very easily. It depends upon what goals and what desires you have. And as they change in life, you have to be prepared to change. I chose to avoid management because I preferred to do what I could do single-handedly. But that’s the choice that I made, and it is biased. Each person is entitled to their choice. Keep an open mind. But when you do choose a path, for heaven’s sake be aware of what you have done and the choice you have made. Don’t try to do both sides. Focus on the important work Since the talk is about how to do Nobel-Prize level research he spends a lot of time talking about being sure you’re focusing on the most important questions in your field. That isn’t my goal but it got me thinking about what I could be working on that would have the biggest impact at work. Rather than being satisfied just doing day-to-day busy work, you need to spend time looking at the bigger picture and then picking the projects that will have multiplier effects: You’ve got to work on important problems. I deny that it is all luck, but I admit there is a fair element of luck. I subscribe to Pasteur’s “Luck favors the prepared mind.” I favor heavily what I did. Friday afternoons for years - great thoughts only - means that I committed 10% of my time trying to understand the bigger problems in the field, i.e. what was and what was not important. I found in the early days I had believed ‘this’ and yet had spent all week marching in 'that’ direction. It was kind of foolish. If I really believe the action is over there, why do I march in this direction? I either had to change my goal or change what I did. So I changed something I did and I marched in the direction I thought was important. It’s that easy. And spend the time, uninterrupted, on the task: If you are deeply immersed and committed to a topic, day after day after day, your subconscious has nothing to do but work on your problem. And so you wake up one morning, or on some afternoon, and there’s the answer. For those who don’t get committed to their current problem, the subconscious goofs off on other things and doesn’t produce the big result. So the way to manage yourself is that when you have a rea[...]

Started a Podcast

Thu, 20 Apr 2017 00:00:00 -0400


Deana and I have started a podcast called Plug In Colorado. We’ve been interview some of the interesting folks we’ve met since moving out to Colorado two years ago.

I hope you’ll check it out. You can find it various spots:

Validate Swagger Docs in Jenkins

Thu, 23 Mar 2017 00:00:00 -0400

Here’s a quick hack I worked out to validate Swagger documentation as part of a Jenkins pull request check. It uses curl to send the JSON off to the Swagger Validator Badge. If there are any validation errors it will display them and then fail the build.

For a pipeline style job:

stage('Swagger') {
  // Generate or update the .json file
  sh 'touch swagger.json'

  // Send off the .json file for validation
  lint = sh returnStdout: true, script: 'curl -X "POST" "" --silent -d @swagger.json'
  if (lint != '{}') {
    error "Invalid Swagger:\n${lint}"

For an old freestyle job:


# Generate or update the .json file
touch swagger.json

# Send off the .json file for validation
SWAGGER_LINT=$(curl -X "POST" "" --silent -d @swagger.json)
if [[ $SWAGGER_LINT != "{}" ]]; then
  echo -e "\nInvalid Swagger:\n$SWAGGER_LINT\n"
  exit 1

Three Years At Recurly

Thu, 07 Jan 2016 00:00:00 -0500

Today marks my third anniversary working at Recurly. It’s been a pretty crazy journey so far. When I started there were only 15 people in the San Francisco office, now there are that many just in the Boulder office and over 100 people world wide.

It’s been really interesting getting to watch the company grow, seeing how number of people allows much more to be accomplished, but also seeing the extra coordination and planning required to keep everyone heading in the same direction. But we’ve risen to the challenge and I’ve learned a lot in the process.

As always: we’re hiring. If you’d like to work with a great group of folks check out our jobs page and drop me a line if you’d like to know more about the company.

Hiring advice for dev bootcamp students

Thu, 13 Aug 2015 00:00:00 -0400

Back in early April Recurly announced that we were opening a new office in Boulder. Since then we’ve hired nine people, five of whom are developers. I’ve gotten hands on experience with many aspects of recruiting: from passing out business cards at meetups, to phone screens, and technical interviews. Quite a few of the folks I’ve met are recent graduates from programs like gSchool and Turing. As I’ve looked through their resumes and projects, I’ve noticed some common shortcomings and wanted to offer a few thoughts on how to address them. Hopefully it can help folks in these programs find their first developer role. Build a portfolio The projects you work on while you’re in the program serve two purposes: To teach you how to build things in a given language and framework. To serve as an example to future employers of the technologies you’re familiar with, your awareness of coding standards, and your appreciation of design and UI. I haven’t been through one of these programs but I’m guessing that it’ll be hard to focus on both at the same time. My suggestion would be to pick a single project and spend extra time polishing it up and use that as a portfolio piece to share with employers. Make it easy to try out – I want to poke around on it and see that your code actually works but I’m lazy, and running random code you find on the internet isn’t a great idea. So if you built a Rails app put it up on Heroku or a similar service. Make it clear what it’s supposed to do – Optimize for the first impression. Often you can provide some sample data to demonstrate how it’s supposed to work. Try and use real, or at least realistic looking, data. Using the same picture of toast 37 times makes me wonder if something is broken. Focus on the user experience – Grab a couple people that haven’t seen your app before and watch them use it. Do they have a clue what it does? If you give them some tasks are they able to complete them? Once you’ve got the feedback you’ll need to figure out what parts you can incorporate. Don’t make me create an account – I’m glad you learned how to add authentication to a site, do your best to expose the functionality without requiring a login. If your app really needs me to log into an account it might be good to have some screen shots and an overview on your front page. Again, give me an idea of why it’s worth the trouble. Let me know what part is your work – If it’s a group project make it clear what part you worked on. If you used an HTML template, make sure to call that out. After reading through these suggestions it probably sounds like a lot of work… because it is. People have limited time and attention and you need to make it as easy as possible for them to understand and appreciate what’s special about your project. But here’s the good news: this is exactly the same challenge that companies face when selling their products to customers. Spending some time working through these problems will give you an appreciation of marketing, UX, design, and product management. Position yourself When you’re writing your resume and cover letter you need to think about how to differentiate yourself from your cohort of graduates. Look back at your previous life of experience and figure out what’s relevant to the company and their problems. If your previous job was in finance it’s much better to be remembered as the bootcamp grad who was an actuary, rather than just another junior dev. Don’t feel like you need to be a generalist. Most likely your program has taken you through a range of technologies. Think about what you enjoyed working with the most and try to focus on that. Did you love writing CSS? Go spend some time learning more about CSS preprocessors. If you loved build[...]

Quick XPath Testing

Thu, 09 Jul 2015 00:00:00 -0400

Yesterday I needed a way to test out some XPath queries against some random XML. When I found out that the major browsers supported it, decided to hack together a simple tool for trying XPath queries it in JavaScript:


I hope it saves someone else some time.

It's my birthday, but I got you some links

Mon, 27 Oct 2014 00:00:00 -0400

The best part of the day was hearing my wife tell Ryland to “go give this to daddy”, then seeing him wandering around the house carrying a birthday card for me. GamerGate Failing to adequately cover this act of spinelessness was the first big fuck-up we at Gawker committed. Intel surrendered to the worst kind of dishonesty, and we allowed it to do so without ever calling it out. So let’s say it now: Intel is run by craven idiots. It employs pusillanimous morons. It lacks integrity. It folded to misogynists and bigots who objected to a woman who had done nothing more than write a piece claiming a place in the world of video games. And even when confronted with its own thoughtlessness and irresponsibility, it could not properly right its wrongs. If GamerGate is about ethics among journalists, why is the female developer receiving 14 times as many outraged tweets as the male journalist? Like they’re all little Anne Franks, hiding in their basements from the PC Nazis and Social Justice Warrior brigades, desperately protecting the last shreds of “core gaming” in their unironically horrible Liveblog journals filled with patently obvious white privilege and poorly disguised misogyny. “First they came for our Halo 2’s, and I said nothing.” US Government The absurdity runs deep: America is using American military equipment to bomb other pieces of American military equipment in Iraq, so that ISIS does not use that American military equipment to bomb Iraqis. It was at this point that I realized Eric Schmidt might not have been an emissary of Google alone. Whether officially or not, he had been keeping some company that placed him very close to Washington, D.C., including a well-documented relationship with President Obama. Not only had Hillary Clinton’s people known that Eric Schmidt’s partner had visited me, but they had also elected to use her as a back channel. Terrorist 2: Your new plan is that we get Ebola, fly to the United States, and lick a bunch of doorknobs? Management Recognize that employees have lives outside of work — cultivate a deep respect for employees’ time. When employees leave because of their boss, it rarely comes from personality mismatches; it stems from a lack of confidence. Counteroffers are (an expensive) band-aid; they won’t fix an employee’s fundamental unhappiness. Building a genuine sense of community is crucial to employee retention. Measure performance on achieving goals, not on heroic work. Police The safest place for an inmate to store anything is in his rectum, and to keep the orifice supple and sized for the (contraband) phone, inmates have been known to whittle their bars of soap and tuck them away as a placeholder while their phones are in use. So a short and stubby bar means a durable old dumbphone; broad and flat means a BlackBerry or an iPhone. Many white Americans, indoctrinated by the ridiculous number of buddy-cop films and police-themed TV shows that Hollywood has cranked out over the decades—almost all of them portraying police as heroes—may be surprised by the continuing outbursts of anger, the protests in t[...]

Short order of links

Sun, 19 Oct 2014 00:00:00 -0400

I haven’t been reading as much stuff over the last week since there’s been a lot going on with the new house. But here’s an unsorted smattering of things I found interesting. Maybe breast is best should renamed. Something a little wordier but closer to the truth. How about: If your body is making milk and you are able to breastfeed, and want to, and it works for you, or it doesn’t at first but for whatever reason you want to put in the time and effort to make it work and have the resources and flexibility to do so, and then you still want to do it and are able to, then GREAT, feel free to do so for as long as you feel you can and want to and it works for your life and particulars. Otherwise, formula is great, too. Many have been in a situation similar to the one web developer and interaction designer Sarah Hallacher found herself in last year: going through a painful breakup and noticing how you and your partner’s lives are tangled up in all sorts of ways you’d never realized. What it was to be uprooted from your life and dragged to this mysterious, secret city on top of a dead volcano, surrounded by barbed wire fences, and not have your partner be able to tell you what it is he’s working on at the end of the day when he comes home. “There’s a Trader Joe’s in Vancouver, now?” “No, there’s a Pirate Joe’s in Vancouver.” If the Wisconsin legislature says witches are a problem, shall Wisconsin courts be permitted to conduct witch trials? The San Francisco Lyon knew in the ’40s and ’50s is, in many ways, gone: Telephone booths and newsboys have vanished, the population has exploded, and the children, whose games he loved to photograph, rarely fill the streets. Asset forfeiture policies mean there are two kinds of crimes: crimes that a police department can make money off of busting, and crimes that it can’t. The first category involves drugs, prostitution, fraud, and organized crime — crimes where there’s likely to be cash or lots of property that was bought with ill-gotten gains. The second category — the kinds of crimes that (for cops) don’t pay — include murder and other violent crime. They said, ‘What’s in the box?’ I said, ‘a large gold medal,’ as one does. So they opened it up and they said, ‘What’s it made out of?’ I said, ‘gold.’ And they’re like, ‘Uhhhh. Who gave this to you?’ ‘The King of Sweden.’ The theory is that, as above, the mechanics of an interstellar drive (the center of the idea) is not important: all that matters is the impact on your characters: they can get to other planets in a few months, and, oh yeah, it gives them hallucinations about past lives. Or, more radically: the physics of TV transmission is the center of an idea; on the edges of it we find people turning into couch potatoes because they no longer have to leave home for entertainment. Or, more bluntly: we don’t need info dump at all. We just need a clear picture of how people’s lives have been affected by their background. ht[...]

Double batch of links

Sat, 11 Oct 2014 00:00:00 -0400

Playing catch up since I didn’t post anything last week. Life has been pretty crazy over the last two weeks. We closed onm and moved into our new house. Now we’re planning on remodeling the kitchen. Justice width="480" height="270" src="" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen> During the intermission of a performance of Brahms Requiem, the 23 protesters sitting in various parts of the auditorium stood up and sang, “Requiem for Mike Brown.” “Justice for Mike Brown is Justice for us All, Which side are you on friend? Which side are you on?” So here’s a story of a cop not being shitty. I came across the story as excerpt and before I clicked through to read the rest my first thought was “I bet this lady isn’t black”: Hall said DeLorenzo told him that her car had been repossessed that day with her daughter’s booster seat in it, and she simply couldn’t afford a replacement booster seat. Instead of writing DeLorenzo a ticket, Hall decided to address the problem with, to his mind, a more productive solution. In Florida, Kentucky, and Virginia — three of the four states whose laws banned anyone with a felony conviction from voting ever again — over 20 percent of all black citizens are legally prohibited from voting because of their involvement with the criminal-justice system. Intel has pulled an advertising campaign from video gaming website Gamasutra after it reportedly received a number of complaints from self-identified gamers upset that the site was championing fair gender representation in video games. That proverbial rising tide is really a giant wave. The wealthy are comfortably riding it on their multi-million dollar yachts while the rest of us are strapped to the keel. Sure, you could say we rise with that wave too but we’re still under the water. Pittsburgh, PA’s Conflict Kitchen restaurant has come under fire by some members of the city’s Jewish community who are upset that the restaurant has chosen to feature Palestinian food. Those people are assholes. Doom “If you look at our current technology level, something strange has to happen to civilisations, and I mean strange in a bad way,” he said. “And it could be that there are a whole lot of dead, one-planet civilisations.” But thanks to global warming, all that Arctic sea ice is dwindling. And so, in recent years, walruses have been seeking refuge on the northern shores of Alaska and Russia. Track down the people who’ve been in contact with a sick patient; measure their temperatures and check on them daily for twenty-one days; if any turn up with a fever or looking sick, put them into isolation. Once you get anywhere upward of seventy per cent of the contacts under such surveillance, the disease stops spreading. Travel When I woke up, I saw the clock and my heart sank. A littl[...]