musings from deep within a tiny cloud


I didn't even chop my arm off

How many times have I been hammering on some hobby project only to look across the desk at a computer -- dancing to the percussive beat? How many times have I scrambled to wipe up Rem Oil from our polyurethaned kitchen table? Too many times to count.

I had a real dilemma on my hands. Despite owning a motorcycle, a torque wrench bigger than my arm, and more solvents than you can shake a can of brake cleaner at, I don't have a garage. More projects than I care to recall have ended with me searching for finishing nails in the living room carpet. I'll just admit it: I live in an apartment on the third floor.

This severely limits my options. And let's not get started on space...I've got a large closet full of climbing rope, fishing poles, and backpacking gear threatening to avalanche and silence me at any time. Don't forget to add in thousands of electronics components along with elbow room for a roasting-hot soldering iron.

oh my god this is my actual closet

This madness has to stop! I need...a work area! A workbench! Many years ago I built my own desk out of 3/4" plywood and some old filing cabinets. It's soldiered on for over half a decade and has been one of my most rewarding DIY projects. I was really feeling the itch to do more woodworking...but could I manage it in a suburban apartment?

I spent a day designing (and drinking). I could no longer distinguish between the aroma of budget bourbon and budget lumber. It was possible. And I could do it cheap -- the goal was too keep the entire build under $100, including some necessities such as a new circular saw blade, appropriately sized wood screws, and lumber. Other tools which I already owned, such as a speed square and Dewalt drill, would come in handy. I sharpened my woodworking pencil in my wife's eyeliner pencil sharpener and got to work.

Of course, I had to video the event. And it went pretty well! In about seven hours on a Saturday I had the raw bench built. I thought it could use some finishing, so on the next Saturday I went ahead and sanded and oiled the bench. A bit of pegboard and a nice surge protector finished it off for the time being.

Wax on, wax off...

I chose Danish oil for the finish. It has some nice properties: dead-easy application and touchups, as well as leaving the ~rough surface for working on projects. I'd feel bad tearing up a coat of poly all the time. It also has the interesting property of self-combusting in your soaked rags, so be careful about that.

evil fire girl

I won't go deep into the design (just check out the video) but I'll mention that the desk is 4' long x 26" deep x 38" tall. The 4' dimension was a no-brainer -- it's the standard plywood width in the USA. But I seriously hemmed an hawed about the other two. I chose 26" deep so that it'd be narrow enough to fit through interior doors without deconstruction. Weighing in at about 130 lbs this meant that two or three strong people could carry it down the stairs when I move.

The height was trickier -- a lot of workbench guidelines would have seen me in the 32"-36" range. However, I wanted this desk to be used primarly when standing. I also am more likely to be soldering a radio together on the bench than man-handling large furniture. After obsessing around the house with a tape measure I decided on 38" and I'm glad I did. It's perfect for standing. In fact I've been using it as a standing desk for work with a lot of success. The bonus is that I can also fit a stool underneath the bench for when I do want to change things up and sit.

Overall I've been very happy with the results of my effort. I'm looking forward to using it for projects in the future, free of the guilt of shaken computers and dissolved kitchen tables. I'd recommend to everyone out there who has a DIY spirit and lives in an apartment to not be afraid to tackle this sort of project. With a little respect to your neighbors, don't be afraid to rip through a few 2x4s. Just make sure to clean up your mess!

(903) 733-6636

I recently spoke at PyData Carolinas 2016 -- right here in the Research Triangle Park. What a blast! I was blown away by the quality of talks and speakers. The organizers did an excellent job and I can't thank them enough.

I was also given the chance to talk, as a keynote speaker no less. When the opportunity was presented to me I was quite nervous. This was my largest speaking engagement to date.

This conference is all about data. As I thought about my experiences as both a physicist and software engineer I realized I had an exciting viewpoint -- the intersection of data and devops!

Data is the common fabric linking all our problem spaces; from nuclear physics, to structural engineering, to marketing and yes, devops! In my talk I cover my own engineering journey and how I try to leverage data and devops to take my team further.

I hope you enjoy!


Missing Puzzle Pieces

I know what you're thinking: "alright Kyle, where's the ops?" You've seen lots of my spare-time development but I need to complete the kdevops.com picture. In this blog post we dive into my operations philosophy and advice for operators new and old.

Operations is a critical part of a software team and has completely transformed my own engineering process. Below is a vlog in which I cover:

  • What is ops and what are the responsibilities of operators?
  • Tips and advice for a happy ops team:
    • learning from senior folks
    • being prepared for your shift
    • effective handoffs between shifts
    • the delicate dance of delegation
    • the roundhouse kick of incident escalation
  • How does one manage a serious incident?

Click below to check out the vlog! On YouTube I've included links to jump straight to the tips as well as the serious incident management advice.

$> man truncate

This one came in pretty heavy -- about twenty minutes -- and that's leaving a lot on the cutting room floor. I spent about three hours preparing and rehearsing, about an hour and a half in front of the camera, and three hours editing. I wanted to cut it down even more but I believe the information in this vlog is pretty darn good. Plus I ran out of wine for more editing.

Videography Notes

The setup was the same as my last vlog. The lighting however drove me nuts -- I'll watch out for sunlight overexposure in the future. Since the content was so vast I had to do multiple takes and cut out any speaking stumbles. Getting better though! I realize now that my OpenShot is way behind the latest. OpenShot 2.1 looks really good and I'm going to give it a try next time around.

$> sudo reboot

I've got some pretty awesome content coming your way. I do get out of the house you know. In fact, I just gave a keynote about data science and devops at (972) 914-4913. Talk about nervous! But it came out pretty well thanks to some hard work and good feedback from the IBM Cloudant team (thanks all). Lots of folks came up to talk afterwards and the data science crowd seemed very excited about devops!

Once the conference organizers transfer the talk videos to YouTube I'll write up a blog post here so you can see me in my full newbie-speaker glory. Thanks again from kdevops.com and I'll see you next time!

Friends don't let friends do crystal math

Nerds in HD

I've been a ham radio operator on and off since 2009. One thing I've always wanted to do was build my own radio for morse code (CW) communication on the HF bands. I've put in some extra hours recently to bring you all just that. This is the start of a radio building project that will probably take me some time. Plus, I've tried something new, the first video blog for kdevops.com! Check out the YouTube video below to see my arduino controlled 20m HF transmitter build.

Circuit Training

Here are a few more details on the circuit. The heart of the transmitter is a crystal oscillator. When powered, the oscillator generates a varying voltage on its output pin. Electrical oscillation is what generates the radiation that we transmit, and the same physics (in reverse) applies for receiving radio signals. By using a system designed for resonance on a particular frequency we can effectively receive or transmit via radio -- a tuned antenna for example. In this circuit I use a small self-contained oscillator that makes the whole project easy. You can also use a simple crystal resonator although you'll need additional components to build a sustaining electrical oscillation -- a positive feedback loop using amplifiers such as transistors or op-amps.

various crystals

Resonators on the left, oscillator on the right.

On the top right of the breadboard you can see a simple voltage regulator circuit. I don't want to use the arduino to power the circuit as I'll probably step up the power demands over time. I've built the circuit based on 5V, so I've chosen a 7805-style regulator. This allows for a stable 5V power supply from various sources, such as batteries that will vary in behavior through the life of their charge. It'll hold the 5V through varying current consumption by the components downstream. The particular construction here isn't anything special -- I've picked a design straight out of the datasheet. The capacitors provide a ground short for AC disturbances and I've added an LED to remind me when the power is on.

radio transmitter breadboard

On the lower left, feeding into the output-enable pin (OE, pin 1) of the oscillator is a P2N2222A transistor switch. I highly recommend an oscillator with an OE pin. You can leave power on the oscillator and it'll only output its signal when the OE pin voltage is brought high. As I don't want to place any demands on the arduino I added the transistor to bring the OE pin high from the supply voltage. I choose the transistor base resistor based on the specs of the P2N2222A and the desire to constrain the arduino's current output to the micro-amp range. The green LED glows dimly when not transmitting and brightly once the OE pin is brought high.

This is a late-night hobby level design, so it may not be perfect. I was happy as this design worked on the first try...something not so common in my own tinkering! There is a ton of information on circuit components and oscillators like these online and I encourage you to investigate design possibilities for yourself. I'm looking forward to building more functionality for this radio, and the challenges of designing an antenna to work within the constraints of apartment life.

Code for the arduino is up on the chainsaw repo.

Videography Notes

I've actually made a lot of video blogs in the past, mostly for motorcycling. I use a GoPro Hero 3+ and an Olympus external stereo mic and have been really impressed by the quality of both. For various reasons, mostly because I didn't have too much to talk about, I've never put them up online.

a good riding day

Maybe some day I'll let you all in on this fun.

I felt I had to give a shout out to the FOSS I've been using to edit images and now video. For images, you can't go wrong with the GIMP. It's definitely a little tricky sometimes, but what advanced image editor isn't? What really surprised me was the video editing software OpenShot. If you are on a linux box and need basic video editing I think you can't go wrong here. It was fairly intuitive to use and I was able to cut my vlog take and make up the intro. The only thing I'm not happy about is it looks like the final frame of my video might have had a fade-out glitch? But that could have been me as well. As I continue to make videos here and there I'll work to make everything excellent.

Thanks again and I'll see you next time for more kdevops fun!


I've been pretty happy with the blog software I've rolled together for kdevops.com. But one thing that's been driving me a bit nuts is that I had no way to easily edit the posts I make. Inevitably I make an error or two, not helped by the fact I often have to write these late at night. I mentioned in a previous post, "CMS: what is dead may never die", that the ability to edit a post was something I desired. Well, it didn't take too much to add the feature in, and I've added the ability to preview a post as well.

swing and a miss

Prior to these features, I've been running things a bit fast and loose. I like to rough out each post locally in vim, since I might take a day or two to tweak things. Next I'd open up kdevops.com or my staging server and edit the HTML in the browser, pasting in my new post to make sure the HTML came out correctly. Then I'd get a nod from a trusted source (aka my wife) and go ahead and create the blog entry.

Typically it's about five minutes later and I'm ssh'd into my production box, attempting to edit the post using ipython and pymongo. Not the way I like to roll. No longer! Check out the screencap below, you can see the interface I use to write up posts with the preview functionality.

can you spot the mistakes?

I've pushed a few other beautifications lately, some new design elements for the main page and a glamor shot of yours truly in the sidebar. I hope it makes the site shine! These small improvements are a bit like keeping up regular car maintenance. They might not be Hollywood, but they'll keep things running smoothly.

Thanks for reading, and look forward to some exciting posts in the future!