# Safe Migrations with Redshift

This post originally appeared on the Simple Engineering Blog.

Simple has adopted Amazon Redshift as a data warehouse. It’s used not just by our data analysts, but by teams throughout the company to answer questions about fraud, customer behavior, and more.

# Band-Aids

Most of the sections in this site’s sidebar stopped functioning at some point in the past two years, and I’m just now getting around to making updates. Security needs are ever-changing, so two years is far too long to expect a web API to remain functional. I’m applying some Band-Aids to get things functional again, and also edited some outdated content.

I actually have some writing momentum building right now as I’m starting to author engineering posts for Simple. I have a first article on schema migrations in Amazon Redshift that’s currently under review and will hopefully get published next week.

# Starting at Simple

I started a new job this past Monday at Simple (simple.com) and I’m getting myself situated there. They have a strong culture of open source and information sharing, so I’m hoping that translates into me being more diligent about blogging. So far, so good.

There are lots of animated GIFs flying around at Simple, both in email and on IRC. In that spirit, I leave with the Dude:

# New Year’s Resolution: Read man Pages

I’ve become addicted to tmux, the terminal multiplexer. It lets me turn one terminal window into a multi-tabbed, multi-paned hub for all my terminal-based exploits.

I’ve been mulling for a while if there is a way to emulate Cluster SSH using tmux, being able to type a command once and have it be executed in multiple sessions on different servers. I spent a few hours today Googling for ideas on how to do such a thing, stumbling across a gist that seemed to do something close to what I want, then sinking some more effort into adapting it to my needs. The result worked, but was a bit messy.

While trying to clean up my solution, I did some searching in the tmux man page. In order to understand what I was reading, I had to page back to review the section header and stumbled upon the synchronize-panes window option. It was exactly the functionality I was looking for, already baked into tmux.

So my New Year’s resolution is to spend less time Googling and more time reading the official documentation. Instead of waiting until I need some specific feature, I’m going to set aside a little time every day to get a broader view on the tools I rely on to be productive.

# Making a Title Column in CSS

So, if I were to actually recode my blog, I’d need to decide on a layout that’s actually manageable. The current design is a modification on top of the default Octopress theme which involves much CSS and Javascript wizardry beyond my comprehension.

One possible direction is to go for vast simplification and build the styling from scratch. I styled my own CV with inspiration from the CV of Kieran Healy and have liked the idea of pushing titles into the left column. I’d actually like to push other content like photos into the left column as well so that it’s kind of an alternate universe for items other than body text. Here’s the working mock-up I’ve put together for the web:

It keeps things in sync with the text. I’m working to keep the vertical spacing in rhythm, so that the items in the left column fall on the same line boundaries as the main text. The line height for the title is 1.5 times that for the body text, so the two lines of the title equal three lines of text. I’m not sure I’ve got the image positioned correctly yet.

Is this a reasonable concept to start from?

# I Fought the Octopus and the Octopus Won

My blogging frequency has been embarrassingly low, confirming my suspicion that my interest lies more in the technical aspects of setting up a site than in populating it with stunningly brilliant content. Part of the problem is that Octopress, my chosen blogging framework, has turned out to be more cumbersome than originally anticipated. I was lured in by the idea that my whole blog would just be text files – no database, nothing hidden, I would be able to control and understand everything. While I’ve certainly learned a lot by using Octopress, posting new content involves having a properly setup development environment on whatever machine you’re using. By the time a month has gone by and I finally get around to thinking of something new to add to the blog, I’ve completely forgotten how things work and I’m confronted with some new hurdle that stops me from pushing my new post to the site.

That said, Octopress is a pretty cool concept with some beautiful results. My experience would probably be a bit smoother if I were better acquainted with Ruby syntax and culture. Tools like rake and rvm are still black boxes to me and I’ve been burned by not understanding them enough to fix problems. And I need to get a lot more familiar with git. Octopress has actually been a pretty fun way to get introduced to the Ruby ecosystem.

I now understand just how nice it is to be able to post to write a blog post through a web interface, from whatever machine you happen to come across. So I’m ready to admit it might be worth using a database. Recently, I’ve gotten fairly heavily involved in development for an internal Q&A site at Epic based on the open source Django app OSQA, which has gotten me interested in trying out a Django-based blog. Writing in python puts me on home turf and it’s a good chance to get to know the process of developing an MVC app from scratch.

If I make posting easier on myself, there’s some chance this site will become something a bit more interesting than just another blog about putting together a blog.

# Gap Time

Starting a new job with Epic on Monday, working with their Server Systems team to provide configuration, deployment, and monitoring of high-performance databases for large healthcare systems. The past few weeks have given me some rare downtime, though, to throw effort at a few projects that had been on my mind. A few of the things I’ve accomplished during my gap time:

• Made \$300 in one morning by doing some hacking in response to a tweet.
• Rebuilt ac-aa.org in Wordpress so that minor changes can be handled directly by members of the ACAA community rather than having to go through me.
• Learned the basics of MVC web apps and Ruby on Rails, inspired by the prodding of some of the good folks at Bendyworks.
• Attended some Madison-area software meetups to get better acquainted with the local tech ecosystem.
• Cleaned up the source code for my thesis and published a LaTeX style configuration on Github that I hope other UW dissertators will use to make their lives easier.
• Updated the look of this site to be more stable and to better accomodate those nifty high-res displays. I’m using FontAwesome for icons in the sidebar and updated some images for double resolution.

# A Search for Exotic Particles

My Ph.D. dissertation, performed at the University of Wisconsin-Madison.

Abstract: A search for exotic particles decaying via WZ to final states with electrons and muons is performed using a data sample of pp collisions collected at 7 TeV center-of-mass energy by the CMS experiment at the LHC, corresponding to an integrated luminosity of 4.98 inverse femtobarns. A cross section measurement for the production of WZ is also performed on a subset of the collision data. No significant excess is observed over the Standard Model background, so lower bounds at the 95% confidence level are set on the production cross sections of hypothetical particles decaying to WZ in several theoretical scenarios. Assuming the Sequential Standard Model, W’ bosons with masses below 1143 GeV are excluded. New limits are also set for several configurations of Low-Scale Technicolor.

I have put the LaTeX source on GitHub, along with a style file that should be reuasable for others preparing a UW-Madison dissertation. I hope others find it helpful as a jumping-off point.

The official version is available as a record on the CERN Document Server. I also produced a single-spaced two-column version suitable for printing and a trade size for ordering a few bound copies on lulu.com.

# RootPlot

ROOT is a powerful data analysis tool within the particle physics community, and the primary lens through which we see our data. The framework includes quite a bit of graphical capability, but this has understandably not been the first priority in designing its capabilities or its interface. By exploiting the pyROOT interface to the Python interpreter, I created the RootPlot package to provide scripts and libraries to make working with the graphical side of ROOT easier.

Of particular note, it easily allows the user to output images through matplotlib, a more full-featured plotting package, to achieve results more attractive than possible with ROOT alone.

# ac-aa.org

Snapshot of ac-aa.org

I maintain the web prescence of Agricultural Communities for Adults with Autism, a consortium of organizations focused on sharing best practices for holistic, agricultural based employment and housing modles for adults with autism.