How (not) to pack smart

The media center in transit

As those who know me are probably aware, in July, we left Beirut, Lebanon and moved to Skibbereen, Ireland, my wife’s hometown. We’ve spent the last couple of months settling in, and I’ve been looking for a position that will be a good fit.

One item in the “settling in” checklist is the joyful process of setting up my home network. I was able to bring all of my data with me, but, with my background in system administration, making sure that data is safe is very important to me. I’ve set up RAID1 on my media center that doubles as a datastore, and I’ve just finished assembling a Raspberry Pi with an external hard drive as my backup. Once we have decent internet (dependent on us knowing where we’ll live for the next while which is dependent on me knowing where I’ll be working), I’ll also be setting up something on the cloud, most likely with Amazon Glacier.

But the story of bringing the media center computer to Ireland is the one that I would like to share, especially as it wasn’t as straightforward as you might think.

How (not) to pack smart

In Lebanon, I had a media center in the living room, connected to a TV and a nice 5.1 surround sound system. We didn’t watch much TV, but we did like listening to music and having our photos on a random slideshow was a great way of keeping our kids aware of distant family.

When it came time to leave Lebanon, I had originally planned to just bring the hard drives and buy a new desktop. But when it came time to pack, we had extra luggage space, so I changed my mind and decided to bring the motherboard, RAM, graphics card, etc. The question was, how am I going to keep all that safe? If only there was some box designed to protect a computer’s internals! I decided to just bring the computer case. Granted, it was old, large and heavy, but Qatar airways was giving us 30 kg (66 lbs) per bag, so we had the space.

This is the point where I had my epiphany. I consider myself an expert on packing. I’ve spent all of my adult life traveling between Lebanon, the US and Ireland, and I have become quite skilled at getting our belongings from one place to the other without damage.

So, as I was looking at the computer case, it hit me that it’s made out of metal and would be able to withstand the attention of the most careless baggage handler. Why not put all of our fragile goods in it? If I padded it with enough clothing, everything would be snug as a bug! I gave myself a pat on the back for such a brilliant idea and proceeded to fill the case with ceramic bowls, a Starbucks gift mug, my Wii remotes, and various other technology, with plenty of socks and underwear to keep things from rattling around. Then, not wanting anything to fall out the side, I screwed the side cover on. With both screws. And tossed the screwdriver in a different bag.

I showed off my ingenious packing job to my wife, expounding on the fact that her precious bowls were safe in the bowels of the computer case. She rolled her eyes at me (a common occurrence when I share my brilliant ideas with her), and I went off to wrap the case in a blanket and put it in our lightest piece of luggage, a large duffel bag filled with lots of clothing.

Now one or two readers may be leaning back in their chairs, astounded at my brilliance, but I suspect that the majority will have spotted the teensy-weensy little flaw in my cunning plan. I am ashamed to admit that I didn’t spot it until we were actually in the airport.

Beirut’s Rafic Hariri International Airport differs from most in that you clear your first security check before checking in. It was only as we were in the queue that it suddenly occurred to me that airport security might be somewhat unimpressed with my irregular packing scheme.

As I watched the duffel bag go through the scanner, the guy at the machine sat up and looked at me. “What do you have in the bag?” he asked.

“It’s just my computer.”

“Can you please take it out of the bag and run it through the scanner again?” So I opened the duffel bag, dumped half the clothes on the floor, pulled out the computer, unwrapped it from the blanket, and sent it through the x-ray machine again. The guy pointed at a big dark blob on the screen, and asked, “What’s this?”

“I think it’s one of my wife’s ceramic bowls,” I answered.

“Can you please open the computer up and show me?”

“Uh, no, I don’t know where my screwdriver is.”

The security guy at the front of the x-ray machine walked around to look at the screen, and there was an animated discussion as both pointed and debated what they should do. One was of the opinion that only an idiot would try to smuggle something out of the country in a computer case, while the other pointed out (quite rightly) that only an idiot would pack a ceramic bowl in a computer case.

The suspicious security guy then came over to me and asked for my passport. He escorted us to the check-in desks, told my wife and kids to wait there, and escorted me and the computer to the other side of the airport where there was another security checkpoint, and, more importantly, his boss.

“Can you please open the case?” the boss asked, in that calm tone that professional soldiers use just before beating you to a pulp and tossing you into deepest corner of Gitmo.

“Um, I don’t have my screwdriver. I’m sorry,” I answered sheepishly.

He looked at me steadily, said “Ok,” and then wandered away, presumably to find a screwdriver. As I waited for him to return, I started fiddling with the screws. I managed to unscrew the first with my fingers, but couldn’t get the second one undone.

One of the security guys saw what I was doing, and, to my lasting astonishment, handed me a sharp-tipped knife. Granted, it was just a dinner knife, but still… I used the knife to unscrew the final screw and handed the knife back to the security guy. He called the boss back over (he still hadn’t found a screwdriver), and I started to open the case for him.

“Stand back! Don’t touch it!” he ordered.

I stepped back as five security guys surrounded my computer and started to pull out and examine each item. The socks and underwear used as padding went flying everywhere. It was obvious that these guys had decided that I was a smuggler and they were going to catch me!

One guy pulled out a ceramic bowl and held it up to the light, checking for who knows what. Another opened up my Wii remotes, pulled the batteries out of them and checked for anything that shouldn’t be there. A third tried to pull the graphics card out of the computer case, and, when it wouldn’t come, used the flashlight on his phone to see if anything was hidden in the GPU fan.

I watched as the fourth pulled out a souvenir Starbucks mug, removed it from the box, examined the box in detail, checked the mug for hidden compartments, and then put the mug back in the box. The fifth guy then picked up the Starbucks mug and repeated the examination, just in case the fourth guy had missed something.

When it became obvious that I wasn’t trying to smuggle anything illegal out of the country, the security guys gradually drifted away in disappointment. I was left with one guy who handed me my passport, told me to pack my computer back up, and then stood back and watched as I tried to fit everything back into the case.

As I used the dinner knife to put the screws back in, he looked at me, and said, “That’s a very… unusual… way to pack. Why did you do it?”

I gave him the only response I could. “It seemed like a good idea at the time.”

I took my computer back to my family at the check-in desk, packed it into the duffel bag, and checked it to Ireland. When we picked it up in Dublin, everything in the case had survived the journey, and the computer worked perfectly. I still don’t know if using a computer case as a suitcase was a very good idea or a very bad one.

Flock 2018

Dresden

Last week, I had the opportunity to be at Flock, Fedora’s contributer conference, in Dresden. As I was preparing to leave for Flock, I seriously wondered whether it was going to be worth it, given that I’ve just moved countries and am still in the process of getting settled in and of job-searching. But as I got on the plane after it was over, I knew that it was definitely worth it! This year was, by far, the best Flock I’ve been too. There were a number of great talks, but the thing I appreciated the most was the sense of community evident at the conference.

Over the last few months, I’ve been working on getting Fedora’s metadata zchunked, so this was a great chance to meet with Igor Gnatenko and Neal Gompa, who have both been helping me. I was also able to talk with some of the DNF and Fedora Infrastructure guys, and got a lot of good feedback. A huge thank you to everyone who listened (sometimes unwillingly, I’m sure) to me talk about zchunk! (And kudos to Randy Barlow and Jeremy Cline who are thinking about doing a zchunk implementation in Rust!)

Talks

I made it to quite a number of talks, but there were three that really stood out to me.

The power of one: For the good of the community - Rebecca Fernandez

This was a great talk, mainly because it focuses on the soft skills that we geeks can sometimes be very weak on. She talked about how important it is to speak up, especially when someone is being offensive in the community and gave great ideas on how to speak up in a way that moves the conversation forward rather than increasing drama. She didn’t give us any magic wands that will supernaturally change people’s behavior, but, as a teacher who’s been stuck mediating many a student dispute, I think her methods are far more effective than most realize.

I’d love to be able to point to a video of her talk, but it doesn’t look like it’s online yet. Here’s the video:

Ansible

I made it to a couple of the ansible talks, and they were quite fascinating. We’ve been using ansible in the school for workstation deployment for a few years now, but the talks quickly made it clear how little I actually know about ansible.

The first revelation was that you can use templates for configuration files, something that I had never caught onto. You can create a template for foo.conf, set a {{ variable }} in the template, and then watch as the the variable is replaced in the deployed file. This is the kind of thing that makes deployment so much easier.

We’ve been using roles for our ansible playbooks since the beginning, but my second revelation was that you could change the default task that runs in a role. When running a role, normally the default task is main.yaml, but, by setting the tasks_from: attribute in include_role, you can change that to any task you want. This allows us to specify different sets of tasks within a role, so we can just run the correct set when including the role.

The final revelation is that ansible allows you to create plugins that run on the controller for various purposes. These plugins can be used for purposes that range from writing a custom connection method for connecting to your hosts, to creating a custom strategy for running ansible on the hosts, to loading external data into your playbooks. This allows you to extend ansible far beyond its normal limitations.

The beauty of ansible is that you don’t have to be an expert to create functional playbooks, but it’s nice to see ways that I could make our playbooks more efficient.

Modularity

My last post deals with my experience building a module for Fedora, so I’m not going to spend much time discussing it, but I do have a lot of hope for where modularity could take us, especially as it relates to server packaging.

For those who want to try my LizardFS development module, on F28 server or Rawhide, run the following:

# dnf --enablerepo=updates-testing-modular module enable lizardfs:devel
# dnf --enablerepo=updates-testing-modular list "lizardfs*"

You’ll see and be able to install the 3.13.0 release candidate packages rather than the default 3.12 packages. To go back to 3.12, just run:

# dnf --enablerepo=updates-testing-modular module disable lizardfs:devel
# dnf --enablerepo=updates-testing-modular distro-sync "lizardfs*"

Once the LizardFS module has been in updates-testing-modular for a week, I’ll push it to stable and you’ll be able to remove “–enablerepo=updates-testing-modular” from your commands.

Lightning talks

I also gave a lightning talk explaining how zchunk works, and got to hear a lot of quick interesting things that people are working on. Luka described a new project called ignition that’s meant to be an interpreter-free replacement for cloud-init, Praveen shared about building a Fedora minishift ISO, Florian made an interesting proposal to remove the changelog from the spec file and automatically generate it from git, and Adam S. spoke about using Fedora containers in MacOS. Adam’s proposal is to try to make Fedora the default choice when a developer wants to use containers on MacOS, which could greatly expand the userbase.

Evening events

There were a few evening events, but the two that stuck out were the Dresden treasure hunt and the Roller Coaster Restaurant. For the treasure hunt, we were placed in teams of seven or eight and sent around the city center, filling in a “treasure” map. I was lucky enough to be on a team that included Matej, who was in charge of AV at Flock and is quite competitive, along with a couple of guys from Dresden. With Matej pushing us forward and the local guys acting as guides, we were the first team finished (though we came in second overall due to missing bonus tasks).

The second memorable event was the dinner organized at the Roller Coaster Restaurant. I was mildly concerned that we would be expected to eat on a roller coaster, but it turns out that the food is sent on a roller coaster to you. My first thought was, “What could possibly go wrong?” The answer, as it turns out, is that a beer bottle might just fall from five meters up, you might have flaming sparklers dropping sparks on your head, and your food might get stuck. Other than that, though… In all seriousness, it was a fun place to hang out at, and I got the opportunity to chat with Igor a bit and then with Zbigniew for quite a while. Definitely made up for the slight risk of having a bottle dropped on your head or being lit on fire.

Summary

I feel like this year’s Flock was the best that I’ve been to yet. I got the opportunity to get to know a number of the people that I normally only see on IRC or the mailing lists. Putting faces to names and getting a feel for personalities is important, so I’m really glad that I was able to make it again this year! I would strongly recommend that anyone who wants to be part of the Fedora community makes a point of being there if at all possible. A huge thank you to everyone involved in putting Flock together!

Updated 2018-09-03 to include YouTube link to Rebecca Fernandez’ talk