Perfect Forward Secrecy

Published 2014-04-20

The Heartbleed vulnerability was a bit of a wake-up call for me. I'd been planning to enable SSL on this domain for some time, but never really got around to it. After updating OpenSSL to patch CVE-2014-0160, I finally bought a certificate and enabled SSL. You can now access

But that wasn't enough. I also took the time to enable Perfect Forward Secrecy. In theory, the use of perfect forward secrecy means that if my SSL private key is compromised, no historical traffic can be decrypted. Forward secrecy would not have closed the Heartbleed bug for me; but it would have reduced the scope of the exposure a little bit.

It was easy enough to enable Perfect Forward Secrecy for nginx. After making the necessary changes, the Qualsys SSL Labs seems to verify that my site is properly secured.

It's true that I'm not currently providing a service that really demands forward secrecy; but I've long held the opinion that decent encryption is sufficiently easy to use that there's little reason not to use it. At such time as I need it, I'll have experience using it.

In a similar vein, I've started using Keybase a bit more, lately. I created my first GnuPG keypair a decade ago, and had little reason to use it. Late last year I generated a new, stronger keypair. I used this public key when joining Keybase, and have enjoyed a modest uptick in encrypted communications with peers.

I'm pleased to see an increase in the casual use of strong cryptography; and glad to see it becoming easier and easier to use.


Published 2014-04-05

I lost my friend of sixteen years today.

I got Echo and Xanth shortly after I moved to Lima, OH. They were loving friends through several moves, and a failed marriage. Echo passed just after I started dating Angela. Xanth remained strong and vibrant, and joined me when I moved in with my soon-to-be-wife. He was a trooper when he met Angela's dog, and quickly asserted himself as the dominant pet in the house.

When he was younger, he used to play a game with me which I called "put things inside other things." I would find all manner of small objects inside my shoes in the morning. I felt like an adventurer every morning, dumping scorpions out of my boots; except instead of scorpions it was pen caps, or twist ties, or other small bits of debris that Xanth managed to pick up. He's also drop things into the toilet as part of this game, which quickly taught me to put the toilet lid down every time I used it. Any time I forgot to close the lid, I'd find something new at the bottom of the bowl.

Several months ago we made a concerted effort to reduce allergens in the house, in an effort to reduce the frequency of Angela's debilitating headaches. My dad graciously offered to take Xanth to his house, to help us identify if his dander was exacerbating Angela's situation. Dad and Xanth quickly became close friends, and developed a number of their own rituals. Dad would send long emails to us detailing the cat's activities, and the love and warmth that man and cat felt for one another could not be missed.

A couple weeks ago dad told me Xanth hadn't been eating well, and had taken him to the vet. Nothing alarming was identified at the time. The situation repeated again this week, but the symptoms were much more severe. Xanth had lost a significant amount of weight, and was acting lethargic. Fluids and antibiotics were administered, and a broken tooth was extracted. It was hoped that the latter was the cause of the problems. Several days passed with no improvements. Last night, Dad told me that the cat had labored breathing, and was shaky on his feet.

I met Dad at the vet's office this morning to get an analysis of the situation, and the options. I arrived steeled for what I knew was going to happen.

The vet was very kind. After a brief discussion Dad and I decided that it was time to let Xanth go. Dad left, unable to participate in what came next. I held my dear friend in my arms, stroked his emaciated body, and talked to him about all the great things we'd experienced together.

Then it was just me crying alone in a sterile room for a long time.

I'll miss you, Xanth.

Trapped in a room with a zombie

Published 2014-03-30

Julie informed us last week that she and Adam were planning to enjoy the Room Escape Adventures latest production, "Trapped in a room with a zombie," and she invited us to join them. Angela and I quickly agreed, and at the last minute today Jonah opted to join us.

We arrived at a run-down industrial facility near downtown Columbus, and opened the door marked "Warning: Zombies Inside". We entered what appeared to be an abandoned warehouse, with a hastily constructed room standing to one side. This room was clearly the object of our event. Aside from this room, there was also a bathroom in a serious state of disrepair. The toilet kept running, and the sink leaked terribly. I don't know if any of this was by design, but it certainly did add to the ambiance of the experience.

There were twelve us in all for our session of this experience. The folks who arrived first opted for everyone to take a nickname based on "meat". There was "Ham Hock" and "Beefsteak" and "Kielbasa." Adam decided to use "Spam" as his nickname, and Julie selected "Tofurkey." Jonah took "Venison", Angela took "Duck", and I decided to use "Human."

Aside from us participants, there was a friendly young woman waiting for us. She explained the rules, and oversaw our entry into the room. She answered a few general questions about the setup, and was very pleasant. She pointed out that the success rate at our location was a dismal 31%.

The rules were simple. Solve puzzles; don't mess with the zombie; and don't mess with the furniture. If the zombie touched you, you were out, and had to stand at the back of the room. Such players could no longer physically interact with the game environment. They could still talk, and strategize with their teammates, but they couldn't manipulate items within the room.

None of us really knew what to expect. We knew that there would be puzzle solving. And we knew that the zombie would get greater access throughout the room as time went on. We didn't know what the room layout would be, or what kind of puzzles we'd face, or how scary the zombie would be. We all felt pretty confident in our abilities: many of us enjoy puzzle solving, and we felt that we had a pretty strong plan of attack for coordinating our efforts.

Then we entered the room.

Sixty minutes later, the timer ran out and the zombie devoured us.

I won't say more about this, because I don't want to spoil the experience for anyone. I will heartily recommend this experience to anyone with an interest in puzzles and zombies. It was a very engaging experience, and we all had an awful lot of fun. It was mentally and physically taxing. And even though we lost, we all left with huge smiles on our faces.

Robotics Competition, Wrap Up

Published 2014-03-30

As expected, the Bexley robot was not selected to join a team for the elimination rounds, so we were done competing when the qualification rounds ended. The kids all seemed to take this fairly well.

I'm really glad I attended the event, and wandered around the pits, because it let me see a lot of things that aren't obvious about this competition. First, the word "competition" is something of a misnomer. Sure, each team is vying for a top spot, but the teams were genuinely working together in their alliances, and were genuinely happy for (and with) one another after each victory. I didn't see any gloating; nor did I see any trash talk. The level of sportsmanship seemed very high to me.

Indeed, one team had a banner that read "coopertition", which pretty adequately summarizes this event. Many of the teams had buttons and stickers to share. I saw more than a few kids walking around adorned in every single button they could find. Whether there was some higher purpose to collecting all the available swag or not, it was nice enough to see folks interacting and visiting other team's pits.

I was quite surprised by the quantity of big-name sponsors. NASA, Boeing, General Motors, various industrial manufacturers, software companies, and more. It's not clear to me how "sponsorship" relates to "mentorship", because some of these teams had very sophisticated setups, beyond what I'd expect from a group of high school students. But I suppose if your parents, and your friends' parents, all work at NASA and GM and Boeing, you're all likely to pick up a lot more from your everyday home life than if your parents work at, say, a bank.

Some things I saw were of the "Oh, why didn't we think of that!" variety, like the team that had a pit crew check list for all the things to check before and after every match: check for loose wheel bolts, grease third stage gear, battery charged, etc. Other things were of the "Hmmm... did students really do that on their own?" One team had animated CAD models demonstrating the function of various parts of their robot. I didn't get a chance to ask these guys if they did this before, during, or after the construction of their robot.

One of the most refreshing things I saw in the pits was the diversity of participants. It wasn't just boys building robots. There were two all-girl teams: the Girls of Steel, with their Rosie the Riveter motif, and the SWAT Girl With Wrench team. I think I only saw one team comprised of only boys, and if I remember correctly this team was from an all-boys school. All of the other teams had a healthy mix of male and female participants; and most teams clearly had girls involved in the construction of the robot.

On the drive home my brain was full of ideas on how to improve the Bexley team's effort for next year. I don't want to subvert the students' initiative in this, but I would like to encourage a more continuous effort throughout the year, rather than just a six week sprint during the competition period. I'd also like to see the incorporation of lessons learned from this event, and the traits of successful robots. Those that don't learn from the past, and all that...

Robotics Competition, Day 1

Published 2014-03-28

Today was a full day of qualifying rounds for the 2014 US FIRST regional competition in California, PA.

I didn't investigate the arrangement, or the rules, too closely, but picked up a few things throughout the day. Each team alternates between the "Blue Alliance" and the "Red Alliance", and each round has these alliances comprised of different team members. In this way, each team gets to work with and compete against various permutations of all the other teams. This arrangement provided for some very interesting matches, as some robots complimented others extremely well. Similarly, some robots provided better defense against others.

As I understand it, all of the teams on the winning alliance earn points. This allows strong teams to carry weaker ones. I like this, because it avoids penalizing a weaker (or perhaps junior) team, while still allowing for competition and the element of surprise. The top eight teams at the end of all of the qualification rounds then get to pick teammates for the final rounds. This is where the "all teams play with and against each other" format pays off: a team might not have scored consistently well, but they may compliment a high-scoring team's tactics and thus be selected to join them.

Without a doubt most of the teams played strong offense today. As the day progressed, the skill of the robot drivers improved, and the quality (and quantity) of shots taken also improved. Most of the teams avoided any kind of aggressive defense until the afternoon rounds. Whether this was a function of learning the other teams playing styles (and strengths), or gaining a better understanding of what the referees would count as a foul, the end results were much more interesting afternoon matches.

The Bexley team made a conscious decision to make a defensive robot. Their thinking was that they could block opponents shots, and provide a valuable service to the other teams who had focused on offensive robots. This approach actually would have served them quite well, except for three major problems.

First, the Bexley robot was tall and thin, leading to some balance issues. During one match, the robot zoomed forward and toppled over onto its face, rendering it completely inoperative. The entire auditorium let out a gasp of surprise and shared frustration as the robot fell over.

Second, the Bexley robot wasn't a very effective blocker. The goal was to quickly hoist a pole into the air to block the upper goals. The competition rules placed firm limits on a robot's height, but permitted a telescoping arm of some sort to be extended for short periods. For several reasons the Bexley robot simply couldn't hoist the arm high enough to effectively block shots.

Third, the Bexley robot was pretty flimsy. Furious repair work was performed after almost every round. The other robots were almost all short and squat, which yields a number of competitive advantages. Those robots that weren't short or squat had superior design and construction.

Each match is played in two phases: a 30 second autonomous phase in which the robot does it own (pre-programmed) thing, and a teleoperated phase, in which a human driver controls the functions of the robot. Some of the autonomous sequences were nothing short of amazing. One team managed to score two aerial goals in that 30 seconds, all under the robot's own control. Other autonomous phases were absolutely comical, as a robot would spin in circles and lob a playing piece out into the audience.

During one of the later matches, the Bexley team placed their robot into position at the start of the match, and then stood back for the autonomous round. Their robot quickly extended its blocking arm, and managed to successfully block a shot from an opposing robot. It was actually quite a treat to see the robot perform as desired, and there was an awful lot of cheering (and laughter) from our section.

I'm impressed with the organization of this event. The FIRST people have been doing this for two decades or more, and it shows. Teams are queued up well before their match. The matches are executed in quick succession. And there's little wasted time after a match: the teams that just played haul their robots off the playing field as the next contestants are hauling their robots on.

The pit areas are a flurry of activity. There's a strong focus on safety, and pit access requires safety glasses. Simple prescription spectacles are not sufficient.

I've learned an awful lot about what makes a successful robot, as well as some of the traits of a successful team. I'm more energized than ever before to volunteer to help Bexley with next year's competition.

There are more qualifying rounds tomorrow morning. Then lunch, and then the real competition starts. I doubt anyone will pick the Bexley robot as a teammate, but we may be surprised tomorrow! I'm really looking forward to seeing how this concludes.

← Older Posts Newer Posts →

home / contact / flickr / github / keybase / linkedin / twitter

The contents of skippy are licensed under a Creative Commons Attribution 4.0 International License.