• Archives

  • Categories

  • Other profiles

  • wallaceadngromit.net

  • Partimus

  • Xubuntu

  • DC/OS

DC/OS Meetups and Cal Academy

Last week we welcomed Matt Jarvis on to our community team at Mesosphere, which I’m pretty excited about. Not just because I have too much work and I’m thrilled to have someone else on board, but because he’s a great guy who I already enjoy working with. For his first week we had the whole team (three developer advocates and our community manager) meet in San Francisco to give him the crash course in what we do. The evenings were also sprinkled with activities, starting with a meetup on Tuesday evening with the folks from Redis.

The meetup was planned before we knew about his on-boarding, but having us all there gave me the opportunity to co-present with our other developer advocate and throw Matt right into the thick of things by making him MC the event (OK, he’s run Meetups before so it was no big deal). The talk that Joerg and I did covered the various mechanisms for service discovery in DC/OS, which the Redis package benefits from. After a quick install demo, we then welcomed Tague Griffith, head of Developer Advocacy at Redis Labs, who talked about the value of microservices, where Redis fits in, and how it’s easy to deploy it on DC/OS.

Slides from the Service Discovery on DC/OS segment of the presentation are up here (PDF) and the video of the meetup is on YouTube.

On Thursday night we wanted to do a social gathering together, along with our current boss. We met up at Joerg’s apartment and made dinner together (I washed and cut some things!) and had a couple beers. Then we set out walk through Golden Gate Park for NightLife at the California Academy of Sciences. A lot of museums in the city are either open late or have special events on Thursday nights, so it was good timing for us and I’d wanted to check out NightLife for some time. By the time we got there, around 7:30, the planetarium tickets were gone and the last entrance to the rain forest dome had just been called, both things I’ll keep in mind for next time, but there was plenty else to do. Having just been there a couple weeks before, I played tour guide as we went into the earthquake house, saw the penguins, explored the aquarium, saw the Pterosaurs exhibit and visited the living roof, where we got a group photo!

Ben Hindman, myself, Joerg Schad, Judith Malnick and Matt Jarvis

Keeping busy with Meetups, this week I popped down to Irvine in southern California on Wednesday. I was able to meet up with a freelancer I know down there for lunch and have some great chats about our shared Ubuntu background (that’s how we met) and the state of the container space (like where DC/OS and Apache Mesos fit in!). He’s also going back in time with some repairs on really old systems that he has, so it was fun to learn about his experience with how difficult and inconsistent personal computer networking was in the 80s, and how interesting it has been replicating it today.

In the evening I met up with our Mesosphere representative at the SoCal DevOps meeting. I was there to give a talk on “Containerized, Cloud-Native Operations for Big Data Analytics” (slides). After pizza and drinks, the meetup organizer had attendees do quick introductions. It had been a while since I’d been to a meetup that did that, and aside from being good for attendees to get to know each other (especially when you’re shy like me!), it’s incredibly helpful to the speaker. Knowing some of the background of attendees helped me adjust my talk quite a bit to tell the right stories and touch upon pain points I knew they’d be familiar with in the operations work they were doing.

Thanks to Steve Wong over at Dell EMC for taking this photo during my talk! (source)

The talk itself centered around maintaining a generic container-based cloud-native infrastructure, but during the Q&A the audience was eager to learn more about DC/OS specifically, so I was happy to oblige! I also did the Bus Tracking SMACK Stack to show them DC/OS in action and answer some more of their questions about usage around the GUI and CLI.

Even better, this demo uses data from the Los Angles Metro, so I finally got to give this demo near Los Angeles! Unfortunately the LA Metro buses don’t come as far southeast as Irvine, so it wasn’t quite a local demo, but it was pretty close. I also enjoyed the subsequent jokes about LA traffic, and buses getting stuck in it, when they asked specifics about how the demo worked.

Getting to meet some folks down there was also valuable as we have MesosCon North America down in Los Angeles in September. For folks eager to learn more about DC/OS and Apache Mesos, it’s an amazing opportunity to do both, and it’s right in their back yard this year.

Cloud+Data NEXT Silicon Valley 2017

Several months ago Bill Liu reached out to me about an opportunity to speak at the Cloud+Data Next conference that was held on Sunday. After some discussion, we settled on me giving a talk on “Day 2 Operations Of Cloud-Native Systems” in the DevOps/SRE track, but there were many opportunities here based on the work we do. Tracks at this event covered containers, machine learning, data infrastructure and analytics and more, all of which we put strategic effort into supporting on the DC/OS platform.

The conference was held at the Santa Clara Convention Center. It may come as a surprise, but in spite of working in tech, attending a lot of conferences AND having lived here for over seven years, it was my first time at that convention center. I’ve worked so long from home so I shy away from long commutes, and for me it’s generally easier to attend a conference in somewhere like Seattle where I have a hotel instead of commuting down into the valley. Sunday made this an easier prospect, since I wouldn’t have to deal with rush hour traffic. A stroke of luck also meant that MJ was traveling for work this weekend, so I didn’t need to take the train (a 2+ hour ordeal) or leave him without a car as I took the only one we have out here for the day.

The conference format consisted of a series of keynotes in the morning, with tracks in the afternoon. The first keynote of the day was from Craig McLuckie, the CEO of Heptio and one of the founders of the Kubernetes project. His talk was titled “Architecting for sustainability: micro-services and the path to cloud native operations” and he began by talking about the balance between fast development and innovation and having a perfectly stable system. His talk also covered the shift to more specialized operations roles, with staff covering infrastructure, cluster, common services and specific application operations. He argued that with specialization comes more automation, as you end up with a shift from generalists who are doing various tasks rarely, to specialists who will quickly tire of doing the same tasks over and over again, and thus automate them. It also leads to better monitoring and more as you have people who really understand the systems that they’re working with.

I also enjoyed that he talked about the importance of Mean Time To Recovery (MTTR), rather than attempting to build a system that never fails. Systems will fail, people will make mistakes. It’s our job to make sure that when things fail and people make mistakes, we can recover from them and move forward. Containers were a key part of his message here, with immutable images being created in development, tested and deployed. When your development and testing environments look similar to production, a lot of problems go away.

With my own talk later in the day about what to look for when finally going to operate that cloud-native system driven by microservices, it was really nice to have this talk ahead of mine to provide such a great place for the audience to start with. “Remember that keynote this morning? Here’s what you need to consider when you’re finally running it: metrics, logging, debugging, recovery and backup tools…”

The next keynote was from Jeff Feng on “How Airbnb Does Data Science” where he talked about the value of experiments in development of their product. Using examples from changes that Airbnb had made to the website UI, he walked us through how data was used when doing UI change experiments. How will a change in wording on a button impact bookings? What types of customers respond better to what types of photos in advertising their offerings? I learned that in order to most effectively use and learn from these experiments, they have a data scientist embedded on every team who can help them isolate, review and analyze data from experiments to make sure changes don’t have negative or unintended consequences. He concluded his talk by talking about their internal Data University where employees can learn how to data can impact their own work and be introduced to the tooling to make that happen. During his talk he mentioned a TechCrunch article about it, which I dug up after his talk, Airbnb is running its own internal university to teach data science, as well as a Medium.com post that he co-authored which dives into it a bit more deeply, How Airbnb Democratizes Data Science With Data University

My talk took place after one from Todd Palino who talked about “Holistic Reliability: SRE at LinkedIn” which covered their approach to SRE. I’m very familiar with the role of SRE, so the general concepts around it weren’t new to me. However, it was nice to learn about their practices around common operations repositories so others can pitch in and “help themselves” much like I was familiar with in the OpenStack project. It was also nice to learn how their company mindset was open source first. I’ve known for some time that Apache Kafka (which he happens to work on) came out of LinkedIn, but I learned that this was by no means an anomaly. He talked about how there is often a push for open sourcing when a valuable new tool has been developed internally.

The talk I gave on “Day 2 Operations Of Cloud-Native Systems” (slides here) was an evolution of a talk I gave at Seattle DevOps Days back in April. The talk now includes a more formalized checklist of things you need to build into your evaluation and building of your cloud-native system. After talking with folks in Seattle, one of the most important takeaways that I stressed with the talk this time was that everything I talked about (monitoring, logging, backups and debugging) are the things that are taken for granted and it’s rare that there is enough time spent on making sure they are of high enough quality to serve the operations team when an outage eventually occurs. My hope is that the checklist I added will help give some direction around these “unwritten” necessities as they shift into a world that, even in it’s simplest form, has load-balanced applications, running on containers, on clusters, on some underlying hardware or cloud. That’s a lot of layers to keep track of when something goes wrong.

After my talk I attended one from Nell Shamrell-Harrington of Chef. I happened to run into her earlier in the day and realized at lunch that she was also a speaker at Seattle DevOps Days this year! There she was talking about DevOps in Politics, but at this conference she was giving a talk on “Platform Agnostic and Self Organizing Software Packages” where she talked about the project she’s working on at Chef, Habitat. The promise of Habitat is the ability to build and deploy applications across many platforms consistently. It’s interesting to have a look at so I suggest you do, but what impressed me the most about her presentation was that her demos actually walked the walk. Her first demo showed configuration and installation an app in Ubuntu on Azure, and the second an app on Red Hat on AWS. This may seem like a small detail, but platform agnosticism is hard to do right, and when a project is as young as Habitat is you often see only a single type of demo that has been fine-tuned to work perfectly in one place. Kudos to the team for casting a wider net to impress us early on!

In all, I enjoyed the event. The ticket price was lower than some others covering these topics, so it felt like there was an opportunity for a more diverse audience of people skill-wise to attend. I met a student who was looking into getting into data analytics, a systems administrator who was seeking to move more of his skill set, and eventually work, into the area of data. Several other people I spoke with were working in software development, but curious about where the latest data-drive technology was going and were willing to give up a Sunday to learn more. I may keep an eye out for future events in the area since it may be a nice opportunity.

More photos from the event can be found here: https://www.flickr.com/photos/pleia2/albums/72157683129676822

My magical smartpen is for conferences

Back in May I wrote about my Neo smartpen N2. As I mentioned in that post, I have a single pen and two notebooks, one that I use to take notes at conferences and one that I keep in my purse for taking random notes where ever I am.

First up, I’ve decided to only use the pen for conferences. I bought that second notebook for my purse but it didn’t work out. I don’t want to have to depend upon having a specific pen with me whenever I need to jot down a note. I’d also need to make sure it was always charged, nothing would be more annoying than realizing I have the pad and the pen, but that it wasn’t charged. I do also always carry my phone with me, so I could take notes on that, the reason I carry a pen and paper is that it’s simple. Finally, while the pen is not huge or awkward to write with, it is big, and expensive, so I needed a spot in my purse that was big enough for it and would keep it pretty safe. My purse is a giant mess, so that was tricky. The ephemeral nature of much of what I write in these notebooks also means I don’t really need them synced and stored forever, so going to all this trouble doesn’t benefit me much.

I also mentioned in my first post about this pen that I get cute little notebooks for free at conferences frequently, and it would be a shame not to use them. And pens, so many pens! Seems to me that I should just stick with using my lovely pile of free notebooks and pens to jot down grocery lists, reminders of things I need to do and other notes.

Tech companies are my source of little notebooks and pens

Now, use for conferences. I have enjoyed having an online backup of all the notes I take at conferences up in Evernote. Once the notes are synced to the app, if it takes me a few days to write up a blog post following an event I don’t have to worry about having the physical notebook with me. Having digital access to the notes long-term will be nice too. There are few things I have learned in these past few months though.

1. The “open app and see writing in real time” works and is fun for them to show off in the store, but it is a gimmick. It’s not actually useful and it kills the battery life.

2. I was at a conference recently where I kept syncing data to the app (it’s fun to see words show up, and maybe I was bored). That wasn’t gentle with the battery life either. I still don’t know exactly what the battery life is, so I just got into the habit of making sure it’s charged before I go to an event.

3. At least with the app on Android, you actually have to open up app to get the pen to sync data. Not pro-actively syncing is probably helpful for battery life, but I have to make sure I do this before I head into the office and realize I don’t have notes synced.

4. The pen once got into a state where it stopped recording. I don’t know what happened, but the only symptom I noticed was I couldn’t shut the pen off. I ignored this and just used it the rest of the day. I shouldn’t have done that. In order to try and prevent this in the future, I’ve started being diligent about shutting the pen off between talks so I know it’s turning on and off properly. Hopefully this at least reduces how many pages I lose if it happens again. Oh, and I did end up getting it all digitized, by spending a 40 minute ferry ride tracing the words. Ugh.

5. I am 40 pages into my notebook and I’ve already replaced the ink in the pen. I spent $8.70 on Amazon for 10pcs Zebra 4C-0.7 0.7mm Refill (Box Set) – Black Ink. Works great and it’s easy to replace.

With that, I’m ready to embark on my next conference with my fancy pen! And happily back to using regular pens and notebooks in my purse.

A Tale of Two Cell Phones

“It was the best of times, it was the worst of times.”

I love my work, but that’s not always a good thing. I’ve been conscious of the risk of burnout for some time now. I take on a lot of work (paid and unpaid), struggle to maintain close personal relationships, and last year I had so much on my plate that I came closer to the edge than I ever had before. I had to make some changes.

The first was re-affirming my commitment to taking a day off per week. In 2013 I started taking Saturdays off. I sometimes say that the internet is “write-only” on these days, I may tweet about what I’m doing because I often do fun things, but I don’t read/respond anything until the day concludes. I will always have improvements to make here, but I am mindful of how important taking this day is, and how my well-being suffers when I don’t do it, or if am less diligent about my rules surrounding the day off.

The second was diving into a hobby that, while it will likely leverage countless tech skills eventually, is very different from anything I’ve worked on in the past and lets me build things: model trains! I’ve also started writing more on paper, both in the form of letters to a handful of pen pals (with varying frequency) and by starting to get into calligraphy.

The third was continuing to establish clear boundaries between paid work and everything else. Just like my interest in OpenStack propelled my work at HP, my belief in the success of Apache Mesos and fondness for DC/OS means that I enjoy and believe in my work at Mesosphere. There’s always more to learn, more to get excited about and share with the world. My queue of demos, blog posts, tutorials, talks and other things I want to do at work extends far beyond what I’ll ever have time for. To make sure I don’t risk trying, I strive to work no more than 45 hours each week at my day job, and aim for closer to 40. Travel always complicates things, but if I spend a Sunday speaking at a conference, I will often take a day off during the week to balance things out. In fact, I’m doing that today! There is a lot I can write about time management around travel, but that’s for another blog post. In this post I’m going to talk about cell phones!

Having a work phone is a popular thing, but it’s something I’ve resisted for a long time because it was hard to make it work in a practical sense. I almost exclusively use my personal email address for correspondence in my open source work because that community identity transcends employers, and is something that will follow me around in my career. That means I get GitHub emails for DC/OS work commits in my personal account right along with Launchpad notifications for Ubuntu. I do use my Mesosphere and DC/OS email accounts when I’m acting in a specific capacity, but just like my use of my Ubuntu email address, it’s done with intent. While working on OpenStack the communication method was IRC, which I also use for other open source work and I also hang out on a couple scifi IRC networks. For me, it all made untangling these things for the purpose of working on separate devices more challenging than it’s worth.

Things have changed some since then. In the Apache Mesos and DC/OS communities we use Slack to chat. I actually do find myself using work email address a lot more, and that is the address I use to interact with the tools we use to track a lot of our work (like Jira). As a forward-thinking startup, we also use apps for a bunch of stuff like HR tooling and expenses.

While my personal open source identity is still important in these communities, in this new role I’ve been able to draw some clearer lines than I have in the past. As a result, a few months back when my mother in law passed away and we found ourselves with her nearly-new phone, I decided to give the work/personal phone split a try. Here’s how it’s broken down:

Work phone: A Nexus 6 on Project Fi (by Google). I’ll probably upgrade to the new big Pixel when it comes out in October. With Project Fi I get international data coverage for the same rate as domestic, and decent international rates for voice/text, should I need to use them (rare). This phone has all my work apps with alerts turned on, plus all my travel apps. I also do keep personal apps and email accounts on here, because this is the phone I need to use when traveling internationally, but I turn off alerts for those unless I’m actively using the phone in that capacity. I carry this phone with me during weekdays, but usually not on weekends unless I’m traveling for work.

Personal phone: A Moto Z Play on Verizon. I got the Verizon plan a few years ago when I wanted a hot spot with better (and different) domestic coverage than my phone, which was on T-Mobile, then AT&T, then Project Fi. The hot spot was incredibly handy, but I may consider getting rid of it since my phone supports tethering. This has no work apps on it, just personal apps with alerts turned on. I always carry this phone, engagement with the community on social media is part of my job and I do still do that primarily with my personal account.

This experiment began in the beginning of April, and I think I’ll stick to it. Here’s what I’ve learned:

  • I carry a purse, which makes carrying 2 phones easier, but it’s a pain to walk around the office to meetings with a laptop and two phones unless wearing a hoodie or some shirt that has giant pockets
  • Two phones do not, however, fit into the lovely clutch I bought in Paris and bring to fancy events and parties
  • I now have to charge 2 phones at night, and one of them is USB-C, no sharing of chargers
  • Only one phone can pair with my Android watch at a time, I picked my personal phone, but it is a shame that Slack alerts don’t come to my watch
  • I only actively use one phone number, fortunately I don’t do voice calls for work much (we have Slack! Hangouts! Zoom!)
  • The Moto Z Play was a “free” phone on Verizon’s plans around the holidays, picked for my mother in law but it’s actually a decent phone, though with 16G of storage space I’ll soon run out
  • It’s helping, I am appropriately alerted to work stuff on weekdays when I should be, and not tempted to randomly check work email on weekends

Two phones? It barely fits the one!

I also have a more distinct split computer-wise these days. My work laptop is the only one I log into work-only things with, it’s the only place I store my work ssh keys and other credentials. I used my personal desktop a lot more for work on OpenStack, but the setup on my desk at home actually works for this split, and my work laptop is the most powerful system in my fleet these days, so it makes more sense to use that one for all my local DC/OS work and demos anyway.

Through these work/life balance experiments I’ve been learning a lot about myself and how I work. It was easy to believe that being “on” all the time helped me be a better employee and a better community member, but that’s not true for me. It was obvious very quickly that making sure I don’t work too much has increased my creativity and energy at work, and reduced my stress. But I’ve been surprised to learn how much physically splitting my work spaces even just on my phones and computers has done even more to support these improvements. I no longer check work email at 2AM when I can’t sleep and then forget to reply to it the next morning. And even though I write blog posts and event reports both for work and personal projects, splitting up what computer I do that on helps makes them different so I don’t tire of it. You may not be able to reach me at all times these days, and I do still forget things, but I believe I’m starting to do a better job of juggling everything now that I have these boundaries.

Paid and volunteer tech, SF tourist and trains

As June wound down and July rushed in, both MJ and I happened to friends in town the same week leading into the 4th of July weekend. Pile in extra time at work for both of us and we’ve been busy.

At work I have started to be the community team representative for the Bay Area Apache Mesos User Group meetups. Marketing has long handled logistics of these events, so my role has been more along the lines of welcoming attendees and playing MC so that the speakers feel welcome and the event runs smoothly.

On June 28th my first opportunity to speak at one of these events came up as I had to quickly fill in for a colleague who couldn’t make it into town for it. The event was on Microservices and SMACK Stack on Azure (strictly speaking, SMACK is: Apache Spark, Apache Mesos, Akka, Apache Cassandra and Apache Kafka, but like the LAMP stack you can swap out like components). Continuing a partnership that also included some internal collaboration that week, we partnered with several folks from Microsoft for this public event.

Prior to the meetup I worked with Patrick Brennan, who was our on-site Mesosphere liaison working with the team at Microsoft, to discuss preparations for the demo at the meetup. Since he was all set up with Azure already and my own time was limited, he tossed up a cluster I could use for the demos and then we made sure we had all the access controls in place to run the demo. I then collaborated with speakers Rob Bagby and Julien Stroheker who work on the Azure team over at Microsoft to put together an agenda where I’d lay the foundation for their talks by introducing DC/OS and doing a quick demo of the SMACK stack running on Azure. I’m quite happy to say that even with limited time to prepare, and my own lack of experience with Azure, everything came together. The ability to run DC/OS anywhere you want is something that makes me so proud to work on it so I can share the power of that flexibility with others.

Following my 20 minute primer and demo, Rob gave us a live tour of the Azure UI to demonstrate the mechanisms for using DC/OS on it. He including tips from the Learn DC/OS on ACS collection of documentation that he maintains, which I had only recently learned about and is incredibly valuable if you’re looking to run DC/OS with the Azure Container Service (ACS). His talk was followed by one from Julien, who is one of many folks working in the DC/OS community to come up with open source tooling to get DC/OS to do their bidding on specific platforms (cloud, on premises). In his case, he’s built a proof of concept DC/OS autoscaler for clouds, right now supporting Azure. The PoC code can be found on GitHub: julienstroheker/dcos-autoscaler.

Julien Stroheker sharing autoscaling

One of the most rewarding things about my job right now is seeing community-based efforts like this being created and shared. Just last week we held an office hours where we spoke to Flach Jauffrey and Benjamin Vouillaume who have written boot2dcos, which they’re using to turn employee desktops that are unused at night into DC/OS agents to process workloads. When employees leave for the evening, the machines are shut down, PXE booted to load up a Linux image and DC/OS and get to work. Very cool stuff.

But, as much as I enjoy it, enough about work! I took my first formal vacation day since I started in January the day after the meetup to spend the day with David, who was in San Francisco for a few days. His visit was one stop of several during a trip around the country by train that took just over two weeks. I admit that I’m a bit jealous of the ambition of his train trip. My own single cross country train adventure in May was just three and a half days, and went one direction. He did an entire clockwise loop that took him down south, through Texas and the southwest, up through California and then on to the Empire Builder, a route that goes further north than the California Zephyr that I took. Jealousy around his time on trains aside, I was very happy that he included a stop in San Francisco during his journey.

The day we spent together began in Union Square where we got him a transit card so we could get around the city all day. We also got an obligatory photo together next to the Powell Street cable cars. He had been to San Francisco many times, so we forewent the cable car ride and focused on spending the day at places he hadn’t seen yet. First on our list was Japantown! I love sushi and promised I’d give him a tour of my favorites so I could try to convince him to enjoy sushi. Alas, I’m quite sure I failed. He ate it, but even with my expertly crafted varietal mix of sweet, spicy, fishy and less so, it seems my dear friend is just not into sushi. I did enjoy trying though. While we were there we also stopped by Chocolate Chair, which is one of the many liquid nitrogen-driven ice cream shops that have been popping up. Their most recent claim to fame is Dragon’s Breath (SFGATE article here), which are colorful, flavored cereal puff balls that are infused with liquid nitrogen so that when you eat them fog very amusingly comes out your nose and mouth. Dragon! David bravely partook, I helped myself to a few, but mostly enjoyed my own very delicious bowl of strawberry ice cream.

The rest of the afternoon was spent over at the California Academy of Sciences. It’s one of my favorite science museums, and with it right there in Golden Gate Park and proximity to the MUNI Metro line, it’s a convenient and delightfully San Francisco place to visit to get a bunch of experiences at once. We hit the highlights of the museum: the living roof, the huge rain forest domed environment, the planetarium, the penguins, a bit of the aquarium. They also have a great Pterosaurs: Flight in the Age of Dinosaurs exhibit right now that I really enjoyed. When the museum closed at 5 a quick walk took us to the metro line that took us back downtown, where our adventures concluded with a lovely Mexican dinner at Tropisueño, and cupcakes over at the Metreon. Well-fed and a bit tired, his next train awaited him across the bay, so I saw him off on a ferry that would take him to the train station where he’d catch the Coast Starlight north. A sad farewell for me, for sure, but he had another week of train adventures ahead.

More photos from our touristing day in San Francisco here: https://www.flickr.com/photos/pleia2/sets/72157685698889625

As I mentioned, MJ had a friend in town that week too, a childhood friend who comes in a couple times a year and stays with us. When in town she works from an office out here, and then her and MJ do dinners and weekends together. I met up with them for a couple meals (including an evening at Kabul Afghan Cuisine down in Sunnyvale, must go back!), but mostly kept myself busy on my own. MJ and I did get to enjoy a dinner alone together on Friday, going over to my favorite local restaurant, Anchor & Hope, which we hadn’t been to together in some time. The food is great, the beer list is one of my favorites in the city, it’s just a block from home and in general it’s a comfortable place because we’re so familiar with it. A perfect place for a dinner together to reconnect and relax.

On Saturday, July 1st I wandered up to Berkeley to do what ends up being a quarterly trip to pick up the latest pile of comic books for the series I’m reading. As I may have written before, I’ve always enjoyed graphic novels and had an interest in comic books, but cost prevented any serious following as a youth, and it was only since Marvel came out with the Princess Leia series a couple years ago, and several other Star Wars titles, that I really started getting into them as an adult. Today I’m following the Wonder Woman reboot (rebirth), a selection of the Star Wars titles, and then I pick up a few here and there as they come up (a Lost in Space series last year, American Gods this year). A friend of mine also clued me into the six DC/Looney Tunes crossover comics that turned out to be really great. I was able to find a few of them while up there shopping too, and then went to eBay to grab the remaining ones. I drifted from the comic book store in downtown Berkeley over to the one closer to Rockridge, picked up a couple more books, and then I was hungry! That’s how I ended up with my solo lunch at Zachary’s Chicago Pizza in Oakland. It was delicious, and if you’re going to have a lunch by yourself, you might as well make it a giant plate of dough, cheese and tomatoes.

The next day Caligula got his second Golden Gate Park visit! It was fun for the four of us to get out. Plus, with how excited my normally lazy cat gets as soon as he goes to the park, it was nice to have three of us there to take turns walking him around where ever he wanted to go.

Soon, all friends had departed and our city was our own again. I promised MJ some quiet time during the long 4th of July weekend, so we decided not to make plans for the holiday. But we did make plans to go up to Richmond to visit the Golden State Model Railroad Museum. On our way up to Richmond we stopped at our favorite BBQ place, so we were happy and full by the time we saw the trains.

I had just recently learned about the museum from a friend at a Linux meetup and it’s run by the East Bay Model Engineers Society (EBMES). The members of the society maintain all the track layouts and then open the museum to the public on Sundays when they have trains running. It seems like a really interesting way of being a model train hobbiest, the building that houses it is big and I’m sure very few people have the space to make very much in their own homes, especially here in California where basements are rare and houses themselves tend to be smaller than elsewhere in the country.

It was a lot of fun talking to one of the members there. We told him of our recent Amtrak journey and geeked out a bit over the best passenger routes around California, even day trips that can be pretty interesting. He was right in my head when he mentioned you could take Amtrak up to Sacramento for the day and go to the train museum there (I still haven’t been!).

Getting to see all the trains running and people fiddling them got me an even more firm understanding of the scales. I had been considering N scale because I won’t have a lot of space (planning on putting my layout in my office, once I have one), but once I saw people working on them up close I think I’m going to go with HO scale. It’s the most popular (though N has been catching up), and it’s big enough to show nice details and not feel like I’m going to break a tiny delicate thing. It’s also small enough that I think I can enjoy a cute layout without taking up massive amounts of space. It was also interesting to learn how separate-worlds the different scale groups are, these people get super specialized in their scales and don’t really answer questions about the other scales. There also seems to be a friendly rivalry between them all. I also met a little girl who was super excited about all the geek stuff I was wearing, which was super sweet, and I hope convinced her that adults can sport train engine earrings and wear Star Wars t-shirts forever.

The visit was inspiring too. I’m somewhat tempted to buy a couple kits to start playing with things before I have space for it, just because I’m excited. Resisting for now though, I shall have space soon enough (within the year, I hope!) and I have enough other projects for other hobbies to keep me busy in the meantime.

A lot more photos from the museum here: https://www.flickr.com/photos/pleia2/sets/72157683695335350/

While we were up in Richmond we also saw signs for the Rosie the Riveter/WWII Home Front NHP museum. I had no idea it existed, it’s a little warehouse building not too far from the model railway museum. The museum starts with the focus on Rosie the Riveter and the changing roles of women as WWII progressed, but also touched upon general life at home in the US during and just after the war, the internment camps for Japanese-Americans and more. The displays were bright and interesting, and well organized. Unfortunately we got there pretty late in the afternoon so we had to skim through the exhibits pretty quickly. I’d like to go back at some point to view it properly, there’s also a short movie that goes along with the exhibits that plays regularly throughout the day and they do events there, so it might be worth looking at a calendar for when we can make time to go up again.

More photos from our visit to this museum here: https://www.flickr.com/photos/pleia2/sets/72157682967715334

I mentioned in my last general update post that I’d started doing a bit more work with Partimus lately. Last Friday MJ departed on a week and a half long business trip and so on Saturday I made plans to meet up with our executive director at one of the low-income housing facilities in the tenderloin, just beyond Union Square. For the first hour I worked on debugging an issue with guest sessions failing to log in. It was an issue we’d seen across all the locations that we service and ended up being impossible to diagnose remotely with the tools we had. Sitting there digging through logs and doing tests finally led me to figure out what was going on, the details of which I shared here. Essentially the command to remove the temporary guest users was failing due to a stuck lock file so the system was adding a guest user every time someone logged in until it couldn’t make any more (it hit UID 999). I wrote a script to remove the lock file and delete stray users that any of our volunteers can run if this happens again, but I’ll bake a more permanent solution into a custom Lubuntu ISO I hope to help build soon.

However, the main goal of this visit was to take a look at the PXE boot server that one of our volunteers built. It’s been tested and works for installing 32-bit Lubuntu, but we want 64-bit and in general need to do an audit and document what this server does so we can improve it, and replicate it on other sites as needed. This introduced me to the basement of the building, where lots of spiders live. I get along with spiders, but there was also no internet access or cell signal down there, so I brought along my handy portable hard drive (one of my best investments ever!) and cloned the drive so I could work on it at home. I won’t get to it this weekend, but I hope to carve out some time next Sunday to start digging into it.

I’ve been staying incredibly busy with work this week and would love to write about that now too, but that will have wait until another blog post. It’s 10PM and need to get to bed soon. I need be on the road by 7:45AM tomorrow morning to get down to Santa Clara for the Cloud+Data Next conference. I’ll be giving a Day 2 Operations talk in the early afternoon. It’s a talk that I was uncertain about before I gave it the first time, but it’s really grown on me, and I’m really proud of the improvements I’ve been putting into it. Wish me luck tomorrow!

June in San Francisco

Upon returning from Philadelphia on June 11th, Caligula was pretty upset. MJ got into town a few days earlier, but left for work all day and then spent much of the weekend away. Two weeks is a lot of time to leave him with only the company of a friend dropping by every couple of days to check on him, and he let me know with an afternoon of yowling and snuggling.

He’s been a very different cat since the loss of Simcoe. We always thought that she was the one following him around for snuggles, and I’m sure that was the case, but he’s been spending a lot more time snuggling me, on the couch, under the covers in bed. His unhappiness being left without humans is a big change too, he really doesn’t like being left all alone. We had no idea. Plus, recently we’ve also had to contend with some health uncertainty with him. His calcium levels have been running high, and I had to drop him off at the vet a couple weeks ago for a day of tests to see if we could get to the bottom of it. Alas, we haven’t, but a lot of major things (like leukemia) have been ruled out and so we just have to move on to symptom treatment once he sees a cardiologist about a potentially enlarged heart, which could influence his treatment plan.

I’ve spent a little time since my return on getting up to speed with the latest work Partimus is doing. We’re now in six low-income residences in San Francisco with over a dozen machines, many of which are high end systems donated recently by a local company. We also have a new imaging server created by one of our volunteers, which I hope to find time to have a look at and see about adding the 64-bit Lubuntu image to, as well as documenting the configuration so that it can be replicated at other sites. I spent some time this weekend updating Partimus.org so that the information on the site is more up to date and cleaned out some of the old materials we had floating around. I also did some curious digging into our foundation documents and discovered, as I had suspected, that 2017 marks the 10th anniversary of Partimus being incorporated as a 501(c)(3). I wrote a blog post about it here: Partimus celebrates 10 years.

Last Saturday MJ and I headed up to Napa before he headed off for a work trip on Sunday. The day began with furniture shopping though. Our sofa bed recently broke, and it’s growing increasingly creaky as a couch. It’s unusable as a bed at this point, and for a guest staying with us this week we’ve had to get an air mattress. A new couch is needed! We ended up in Concord at a leather store browsing some potential candidates. I think we found one we want, we just need to figure out what color we’re going to go with. I also got some great ideas for furniture in my future office, there is a really nice Dreamsations chair-and-a-half that lives as a big comfy chair, but folds out into a comfortable twin size bed.

After the furniture shopping it was up to Rutherford Hill Winery to pick up our wine club wines for the quarter. It was hot, possibly the hottest day of the season with the highs brushing up against 100. It was 98 outside as we cooled off in the wine tasting room. I spent a few minutes outside taking pictures of flowers and the view, but even this west coast dry heat is hot when the temperatures soar that high.

It was then off to a late lunch at the Bouchon Bistro just south of Rutherford, in Yountville. We went there during our first trip to Napa last spring, but it was a whirlwind weekend trip where we tried to squeeze the best of the valley in all at once. This time Bouchon was a destination for us. With 3:30PM reservations, we arrived at the tail end of brunch, with staff setting the tables for dinner. Our food selections were very dinner-like though. We kicked off the meal with caviar with some toasted bread, and I had a White Apron beer by Anderson Valley Brewing Company in Boonville. Next up were the entrees, MJ picked the winner with a dish of gnudi with fresh truffles, and I went with what was pretty much a lobster macaroni and cheese, also delicious but not quite as exceptional. By the time desserts rolled around, we were getting full, but desserts of chocolate brownie “bouchons” and fruit with meringue were a bit too amazing to resist. After the meal, our journey home took us over the Golden Gate bridge for a nice evening in before MJ’s trip.

More photos from our jaunt up to Napa here: https://www.flickr.com/photos/pleia2/albums/72157685503327645

While on the topic of food… I made eggs! I’m not much of a cook, I lack the patience and interest required to pull off more than just the basics. As a result, until a few weeks ago all I had ever made egg-wise was scrambled and hard boiled eggs. Unfortunately or me, my favorite eggs are over easy. I finally decided that I should learn how to make them without ruining them, it can’t be that hard, right? I fired up YouTube and piled on the patience. It turns out patience was what I’d been missing in past attempts. I hover over the eggs and then try to flip them much too soon, what I need to do is let them cook a whole lot before flipping is easy, and then I just need to let them cook for a few moments longer to finish cooking the whites. At 35 years old it may seem terribly amusing to onlookers that I just figured this all out, but I really don’t cook. It’s a big deal for me. Over easy eggs forever!

Sadly, after Napa, food was the last thing on my mind. The day MJ left was the day my stomach decided to ruin my week. I went to the gym mid-day, seeking some air conditioning in what had turned into quite the warm weekend in San Francisco too. Unfortunately the gym lacked air conditioning, but the fans did their job and I had a good workout. That afternoon I felt incredibly tired (just the gym, right?) and by Sunday night I was feeling queasy. Monday morning I had a full on stomach bug, complete with a mild fever. The fever went away and I was feeling better by Tuesday evening, I thought maybe the heat wave had just hit me the wrong way and I started rehydrating. Wednesday night I was hit with the second wave of illness which kept me up for much of the night. I went into work Thursday morning, but left mid-day to see a doctor, who gave me a prescription to treat the nausea that wasn’t allowing me to keep any food or liquids. Pile on some over-the-counter meds for other symptoms and gallons of re-hydration liquids, and you have my Thursday afternoon and Friday. Fortunately I was well enough to work from home (bed), though the slight fever did return Friday afternoon (ok, maybe I wasn’t well enough to be working, even from bed). Friday night and into Saturday I continued my attempts to hydrate and eat bland foods, but a massive headache swept in, that I kept in the realm of tolerable only through regular doses of Advil. I spent the day in yesterday, but I managed to go out to dinner last night with MJ and a visiting friend, though I was cautious and didn’t eat very much.

While I thought I was feeling better on Tuesday I snuck downstairs to a Bay Area Linux Users Group meeting just a block from home. I figured if I wasn’t feeling well I could just leave midway through, and I wanted to attend to talk about the latest Debian release (9.0, code name Stretch)! So attend I did, bringing along Debian stickers and my Stretch toy. It was a small dinner, but lots of nice conversations about Debian, recent changes with Ubuntu, and even some model trains after I geeked out about my new interest and subsequently learned about the Golden State Model Railroad Museum, must go!

With MJ back in town, Friday morning we went to the eye doctor to pick up new glasses! I’ve spent the past several years with Flexon frames, they’re super light and resistant to abuse due to their ability to bend. I switched things up this time and went with Airlock frames, which are in the family of rimless glasses. It’s quite the departure for me, and I don’t like change, particularly when it has to do with how I look. But I had also just gotten a whole new haircut that went shorter than I’d previously gone, so apparently I’ve been in a change mood. I think it worked out, I’m happy with both the glasses and the haircut!

Today I’m feeling better. The headache isn’t bad enough to require treatment today, and I’m trying to take it easy. I did spend about 90 minutes getting some fresh air while MJ was out with his friend. I walked a couple blocks up to Market street to check out the Pride parade. Once I grew tired of the crowds I walked up Market to Ferry Building to pick up a small lunch, champiñones (mushroom) empanada and dulce de leche alfajor at El Porteño. From there I took a few pictures of street cars before wandering back home.

More photos from my brief glimpse of the pride parade here: https://www.flickr.com/photos/pleia2/albums/72157683422410420

The month winds down this week. I’m helping to host a Meetup at work on Wednesday and taking Thursday off to spend with a friend who’s in town visiting, we shall do all the San Francisco things! Then we have a much-needed a four day weekend for the 4th of July.

Scanned 1915 Panama-Pacific International Exposition booklets

Back in 2015 I became a little obsessed with the Panama-Pacific International Exposition centennial events and exhibits in San Francisco and wrote about it here. As I wrote then, I’d been fascinated with the World’s Fair since I was a kid. I didn’t mention it then, but I also think part of what I loved about the historic World’s Fairs was that it brought the world to your doorstep. My family was not wealthy and my eclectic interests as a youth didn’t seem like they’d raise me up at all, so travel seemed beyond my reach.

Now that I’ve joined the ranks of nerds taking over the world, and have traveled a respectable chunk of it, I found myself in a position in 2015 to visit these exhibits, and even invest in some real pieces of them. In January of 2016 I purchased a trio of 100 year old books from the PPIE off of eBay for about $20 each.

They’re all in remarkable condition for being 100 years old. No doubt they’ve been carefully tucked away for much of their lifespan. It’s now 2017, they’ve been sitting on my shelf, kept out of the light, in their archival plastic bags. Last week I needed something to do that would make me feel accomplished but wouldn’t be intellectually draining, I should finally scan them all and share them!

So I did. It probably took me about 6 hours to scan, crop, and create the web pages where the 164 images now reside, but it has been completed. You can view, and download, regular and high resolution scans of all three of the books here: http://princessleia.com/ppie/

Some of my favorites from the collection are either beautiful, bring up memories or are simply amusing to me.

From the Official Miniature View Book I was amused by the Detail Figures of Fountain of Energy. In particular, the men riding a walrus and an elephant seal. I’ve since picked up post cards of these two and will be getting them framed for my office.

Also from this view booklet was a reminder of how much we accomplished in the 20th century, Art Smith’s Aviation Flights. In 1915 flight was a brand new technology, and only an exceptional breed of risk-takers were flying planes, some for the entertainment of the public. Indeed, Art Smith took the place as the official stunt flyer at the PPIE when the previous one, Lincoln J. Beachey, tragically died at the fair after losing control of his monoplane and plunging into the bay. Smith himself died when his plane crashed in 1926 while in the service of the US Post Office doing overnight mail service between New York City and Chicago. It continues to be astonishing to me that today flying by air is not only routine (particularly for me!), it’s the safest way to travel.

From the PPIE: Beautiful booklet, my favorite image lived up to the title. The showcase building of the event was the 433 foot Tower of Jewels, and helped give the fair the nickname of “Jewel City.”

The last photo in that booklet also holds a special place in my heart, The Liberty Bell. From my adopted hometown of Philadelphia, this was the first time the Liberty Bell came to San Francisco. I recently hit eBay again to snag a well-worn souvenir plate from the PPIE with the Liberty Bell on it.

From the Colortypes booklet we again have colored images, this time including one from the Tower of Jewels Illuminated at night. They’d did a light show in the evenings, which showed off the array of glass jewels that covered the tower and I hear played very well with the bay fog.

Finally, a colortype of the Palace of Fine Arts. This is the building that was preserved when the rest of the fair was torn down, though it was completely re-created in 1964-65 when the original, meant-to-be-temporary structure was demolished and replaced with an identical one made of poured concrete.

It’s so close to the original so the view from today (or, 2015 when I took this photo) is very similar to what they would have seen in 1915.

It was nice to finally get these all digitized so I can now tuck the originals back in a safe place, where they can hopefully remain intact for another 100 years.

A couple weeks in Philadelphia

The end of our adventure across the country on a train last month, landed us at our townhouse in Philadelphia on Monday evening, Memorial Day.

Our week was pretty busy. MJ had plans to stay through Sunday and I was staying another week beyond that. I work remotely much of the time, and so a full time remote schedule when I’m back east isn’t disruptive to my routine, and I end up getting a lot of work done before my west coast colleagues wake up. Work-wise I had a very productive couple of weeks!

We did have a revolving door of contractors visit us throughout the week though. The townhouse is new, but there are a number improvements we wanted to make that weren’t offered when we bought and a few closing items that needed to be completed by the builders. The first was getting some electrical work done, including some lights above the shower stalls upstairs, and a few more outlets put in key places, like directly behind the TV and in the utility closet. Later in the week we had a tankless water heater installed (and the nearly-new tank heater we replaced successfully sold on Craigslist!) and a whole house humidifier that my sinuses will be grateful for come winter. There’s still work to be done on the place, and things to figure out but I am very happy with how much was completed.

We had a few lovely dinners with friends and family. I was able to make time over the weekend to clean up the little garden out front, though I expect when we return it’ll be overgrown with weeds again, one of those things we haven’t quite figured out yet. I met the neighbors and had a great chat about involvement in the HOA and issues concerning the neighborhood.

When we were planning this trip, we happened to look at the schedule for Citizen’s Bank Park and learned that our SF Giants would be playing the Phillies while we were in town! We snagged some great Diamond Club seat tickets for Saturday and went with our friend Danita.

Now, it would have been better Giants-fans-wise if we had gone to a game the night before, when we watched the Giants shut out the Phillies 10-0 while having dinner with MJ’s sister and her husband at a local restaurant. Alas, we went on a day that the Phillies won 5-3. It was a fun game though, no clear winner as you got to the later innings, with the Phillies getting 4 runs in the bottom of the 7th and the Giants trying to come back with 2 runs at the top of the 9th. It was a gorgeous day to be at the park for a 4PM game, warm, but not too humid, and the sun was out. On the way home we stopped for some Rita’s water ice.

More photos from the game here: https://www.flickr.com/photos/pleia2/albums/72157684649648515

Come Sunday MJ was on his way back west, but first we snagged some east coast Chinese food before getting him packed and on the way to the airport.

The week that followed for me was also pretty busy. On Monday I saw Wonder Woman with my best friend, and it was awesome! On Tuesday I hopped on an Amtrak up to New York City to meet my boss for a meetup at the WeWork space near Union Square on “Managing Microservices & Fast Data w/ Apache Mesos & DC/OS.” The weather was nice, so I walked from Penn Station to Union Square, grabbed a coffee as I got some work done, and then met up for the meetup.

Flatiron Building in NYC, during my walk to Union Square

I was in charge of a section of the presentation but primarily, the live demo, which went quite smoothly. Slides from the presentation are up here (PDF).

Thanks to Clint for taking a picture during my part of the talk! (source

A local friend, and former co-worker, from Brooklyn also came out to the event. It was really nice to see a familiar face in the crowd, have some time to catch up and to have a local buddy to meetup with for drinks in Brooklyn afterwards before retiring to my hotel for the night. The next morning a subway whisked me back to Manhattan where I had a leisurely breakfast at The Harold before catching a train back to Philly.

A few more photos from the evening can be found here: https://www.flickr.com/photos/pleia2/albums/72157681823948402

Back in Philadelphia, I spent the afternoon working from a library not far from the next meetup on our schedule, the Philadelphia area Linux Users Group (PLUG). But before the meeting, I had dinner with long time friend and open source colleague Nithya Ruff and one of her colleagues from Comcast, Prabha.

Selfie with Nithya and Prabha (source)

With nice, spring weather awaiting us outside, we made our way from Mad Mex to the PLUG meeting. I used to attend a lot of PLUG meetings, and coordinated the group for a while before I moved to California, so I have a lot of good friends and acquaintances who frequently attend. This meeting was no exception, upon arrival there was a flurry of hugs as I greeted familiar faces and met some new folks. My boss arrived soon after I did and we settled in for the meeting.

The talk was very similar to what we had done in NYC the night before, but shifted slightly for a more Linux-focused audience. Unfortunately the demo didn’t go as planned, but as we were running out of time we discovered that it was because of the university WiFi we were on, blocking everything. After the meeting we met for food and drinks nearby and I was able to bring it all up on my laptop, working, hooray! Slides from this meetup are here (PDF).

I had a lot of fun at these events with my boss, we learned a bunch about the fast data demo we presented, I was able to spend some time on Friday at work making some improvements to it.

And with that, the week was winding down! On Friday night I met up with a friend and went to Longwood Gardens out in Kennett Square. I’d only ever been once, back in 2008, when the weather failed to cooperate and the rain made it so we only really saw the greenhouses. This time was different! They were on summer hours, which means we could stroll in at 7:30PM and spend nearly two hours exploring the grounds before it got dark. It’s a beautiful place. There are the gardens of course with lots of flowers, but also an Italian water garden with a series of fountains, three tree houses spread throughout the grounds and some relatively new areas that wind through a large meadow and near some ponds. A quick stroll through the greenhouse brought us to a row of beautiful bonsai trees.

The highlight of these weekend nights during the summer is the array of giant fountains near the entrance, which they light up in various colors and choreograph to music for a half hour show once it get dark, just before closing. It’s spectacular, absolutely worth doing. I held off until after the show to take pictures, getting much better ones as we walked around the lit up fountains as they started corralling everyone out of the gardens.

Piles more photos of the gardens and fountains here: https://www.flickr.com/photos/pleia2/albums/72157681958162333

My trip wound down after that, with Saturday spent at the townhouse closing things up and then grabbing a quick dinner. A flight at 8:30AM on Sunday morning brought me back to San Francisco on Sunday afternoon so I could relax a bit and get some Caligula kitty snuggles before getting back to work on Monday.

DevXCon San Francisco

A few weeks ago I attended DevXCon in San Francisco with a colleague of mine. Since my previous role was as a systems engineer, with community outreach being more of a hobby, I’d never attended an event like this. Since it was local I figured it would be a great opportunity.

The event began with a talk by Donnie Berkholz on “(How much) do developers really influence? Reset/reality check” (slides). Setting the stage for the value of developers and how to reach them, the talk quickly cited the Microsoft Hosting and Cloud Study 2015 where he highlighted page 42 of the report, on Stakeholder Decision Making Authority. The several of the top Influencers and Primary Decision Makers, according to the report, were IT Infrastructure Managers, IT Architects and Software Developers. While CEOs and CIO/CTOs had similar numbers, it was clear that the individual contributor had a say in what software was being used. He then cited 451 Research’s Q1 2014 DevOps Study which showed that the top two ways that developers learned about new tooling were word of mouth and trade and blog articles.

The rest of his talk went over various successful examples of companies meeting developers where they are and systems that worked for engagement including:

  • Rewards to high performing members of their communities
  • Prioritization of high quality documentation so developers could succeed
  • Making changes in the product as you notice your user base moving to a new base technology

He then sketched out a story around the tooling that developers used, stressing that while most open source projects unintentionally silo their tooling, developers use all kinds of programming languages and frameworks, operating systems, automation techniques, and more. As a result, the most effective evangelism and advocacy work tends to be done when you’re going to broad spectrum conferences where you’re meeting with developers working on various technologies.

Grace Francisco then gave a talk titled “Gloriously Global!” where she offered various tips for working with a global team and effectively scaling your team when working with a global community, including:

  • Daily individual stand ups that are shared across the team asynchronously (record, share)
  • Two team-wide syncs scheduled so no one is left out timezone-wise
  • Host team off-sites, actual face time from time to time is essential
  • Having firm, clear rationalization for all travel (your team will be scrutinized more due to the nature of the work)
  • Make sure work you do and share is syndicated across platforms (blog, social media, where ever your community is)
  • Build a program to support external champions which includes swag, training, recognition, tools they need to succeed

She also spoke some about how you go about finding developer advocates and evangelists, explaining that the skill set may be challenging to find (technical, able to work externally and openly, speak, write, and do community relations). She suggested asking internally first to see if there are engineers looking for a career change, and then looking to post-sales engineers who are accustom to public-facing, technical work with customers.

After the keynotes, I went to a couple talks on APIs. The first, by Tristan Sokol, dove into the use of Swagger Codegen to create SDKs against APIs from reference files, after reviewing the challenges of SDK creation by a small team. He admitted the downsides of using an automated tool that, by its nature, can’t do a great job of catering to the specifics of every language it provides an SDK for, but argued that it’s better than nothing. The next talk, by Romain Huet, provided a series of things to consider when building an API for developers to build against, including making sure the business case is clear. He also advised that a quick on-ramp, good documentation, and perhaps even on-site demonstrations of usage were valuable to adoption, and talked about making sure error messages for incorrect use are helpful to getting the developer on the right track. Finally, a status page about your API to keep users informed about outages is important.

Continuing in the API theme, Erin McKean gave the first afternoon keynote, talking about “Supporting new developers and your API” where she drew experience from the successful API that Wordnik provides. She mentioned that early on they learned a lot of students were using the API, many of whom were part of university classes, so they made some decisions based on supporting those students where they were. Other tips for supporting them included providing a simple, documented, sandbox where people could play with the API without doing any damage and reviewing error logs to see where people are struggling so you can make improvements to documentation as needed. Like others at the conference, she talked about champions in your community and suggested seeking them out to write blog posts, share workarounds, and even talk about other products when yours doesn’t have a goal of supporting something that some customers want.

Jono Bacon spoke next on “Measuring the Health of your OSS Community” where he worked to dispel the myths around flashy dashboards that seek to measure communities. He reviewed tangible (easy to track in a dashboard) and intangible types of contributions, noting that intangible things like happiness, personal development, relationships and having a rewarding experience are the things that frequently keep people engaged with a community. He shared some strategies for “measuring” these things, including: engagement in person (how many people have their laptops open? are sitting in front?), engagement on social media, and constructive participation during open Q&A sessions. He also explained that it’s important to track the path of a contributor in your community when looking for general trends, but also making sure it’s always easy for new contributors to gain status and recognition, including reputation “points” decay when involvement decreases so that older community members don’t have an unfair advantage.

He also made several key points:

  • Focus on the outcome rather than the process
  • Review on-boarding complexity
  • Identify, track and try to improve failure states
  • Follow retention of community members
  • Keep an eye out for grown stagnation

This talk led nicely into the next, from Bear Douglas on “Building positive developer support experiences” where she outlined a similar series of things you want to keep an eye on:

  • Adoption of your product/project
  • Success rate of integration
  • Customer Satisfaction (CSAT)
  • Willingness to promote (Net promoter score)
  • Retention over time

She reminded us that when a new person comes to your community, it’s often best to assume something has gone wrong. They are frequently coming to the community to solve a problem or get a question answered, and they may be stumped or frustrated. She stressed the importance of keeping that in mind when working with new community members and to cultivate real empathy on the team supporting them (not just a playbook). Listen to what they’re struggling with, engage in real dialog, and make sure you follow up and follow through so they don’t feel patronized or forgotten. She also stressed the importance of a public road map so community members can understand where a feature they’re eager to see or contribute to is in the priorities of the team and aren’t left frustrated by what they see as lack of, or delayed, progress.

What I really liked about this talk is that she also talked about the energy required to be this supportive. No one is happy, supportive and empathetic all the time. Don’t let your team members feel isolated, make sure there are team stand ups, lunches that remind them they’re not alone. Avoid trash-talk style venting, since it can easily spiral out of control and create a negative atmosphere (in spite of how good it may feel to the frustrated person at the moment!). Conversely, when there is good feedback, make sure that gets back to the product team so they know where they are succeeding. Back to team care, making sure there is a mechanism for handing off support when you’re too spent or upset to handle it, someone with fresh perspective can help and turn things around, turning a bad situation into a celebration-worthy success. She also suggested making sure high points are recognized and highlighted, and goodies are sent out to great community members, which makes everyone feel good.

Some more tips gleaned throughout talks as the day progressed included:

  • Make sure support is as public as possible (private email threads expend time and energy, and are only valuable to the individual you’re working with)
  • Keep an eye on the percentage of questions being answered by the community outside your company vs. inside
  • Make it an on-boarding task for new engineers in your company to introduce themselves to the community, not just the company
  • Encourage employees to be open first, share things externally as much as possible
  • Be pro-active about pairing up community members asking questions with community members who have expertise (question gets answered, experts feel valued, everyone wins!)
  • Define a path for a contributor to become a more serious, recognized contributor (reminded me of the value of Ubuntu Membership) and give them the tools to succeed in that path
  • Uncover obstacles that community members encounter and work specifically to get people unstuck and reward them for success
  • Communicate your work internally, sharing successes and failures so those inside the company feel included in the community
  • If you have a Code of Conduct (and you probably should!), build, use and enforce it properly

I think one of the over-reaching themes of the talks, especially later in the afternoon, was a focus on what to measure and how. While broad ideas like those from Jono and Bear can be a guiding force, there is no blanket solution for everyone to use, and you can’t just copy what others have done. You need to be attentive to your business, community and product to know where it makes sense to focus. The path from new user to paying customer is rarely a straight road, so work through collected data to learn your most successful outlets and make sure the time, money and effort is put in those diverse places (events, blog posts, support engagement), tailored for your particular community.

It was a fun event and I’m glad I went. I hope as I’m moving forward in my relatively new efforts as a formal developer advocate I can continue to learn from the practitioners who have come before me and work to implement them in communities I’m working in. Thanks to the organizers and everyone who came to lend their expertise to this event, and in their communities every day.

More photos from the event can be found here: https://www.flickr.com/photos/pleia2/albums/72157681120795004

Cross country by train: Part 2

Continuing on from my last post, our cross-country journey continued as we entered Iowa on Sunday morning. After a day of no proper meals due to not feeling well, I’m happy to say that I managed to consume about half my breakfast of eggs, potatoes and a biscuit.

As this second bit of the ride on the California Zephyr took us into the midwest the scenery did calm down from the breathtaking views in California and Colorado. Still, it was incredibly green and there were some lovely hills here and there. We also saw a fair number of horses and cows, along with fields that I expect would be growing a whole bunch of our food later in the season.

Leaving Iowa, we crossed the Mississippi River into Illinois. I’d seen the Mississippi River on trips to New Orleans and St. Louis, but this was the first land crossing I’d done, and the furthest north. Even up there it’s quite a river.

The ride through Illinois went smoothly, we saw several wind farms and we had a nice fresh air break in Galesburg. We soon left the countryside farms of western and central Illinois and made our way to the final destination of this train: Chicago.

I’ve been through the Chicago airport several times, and spoke at a conference south of there in Urbana-Champaign, but I’d never properly been to Chicago. In spite of not quite feeling 100%, we did have just over three hours before we had to catch our next train and I made a point to venture outside of Union Station. But first I beheld Union Station itself, it was a nice place and we were able to spend the rest of our time in the Amtrak lounge there.

I took a walk around Union Station and then walked across a small river to get over to wear Willis (formerlly Sears) Tower is for some pictures. The fresh air was nice, but it was getting a bit warm outside on this side of the Mississippi! After all those mountains and glimpses of snow, I was suddenly reminded that it was the end of May.

Our next train boarded just before 7PM and whisked us off to Washington DC. This time we were on the Capitol Limited, and to mix things up we decided to go with a Roomette rather than the Bedroom on this segment. I probably wouldn’t do it again unless traveling solo. The privacy of our own sleeper space was nice, but we’re not small people and it was pretty tight quarters for the two of us. The top bunk, where I slept, was a bit smaller than in the bedroom and I was extra thankful for the don’t-fall-out net at the edge of my bed. It was only for a night and a half day though, and we weren’t tired of each other’s company, so it worked out fine.

We had dinner shortly after boarding, we were a bit disappointed to learn had the same dining car menu as the California Zephyr. Still, the steak was good, even if I could only finish half of it. It was also enjoyable watching the sun set as we rode through South Bend, Indiana.

I didn’t sleep exceptionally well on that leg of the journey. We had a stop in Toledo, Ohio in the middle of the night that I was inexplicably awake for. I then woke up around 6AM in time to wander around the platform for a few minutes during our stop in Pittsburgh. I think this journey was a bit bumpier than much of the journey on the Zephyr and it was delayed by about an hour due to freight congestion in the corridor.

As Monday morning came into focus, I’m delighted to report that I finished my entire breakfast, though I did skip anything resembling cheese or a buttery biscuit, going instead with plain scrambled eggs and potatoes.

We made our way through more of western Pennsylvania, into Maryland and then West Virgina. It was a lot of familiar views, green forests and fields. I’d vacationed in West Virginia before, but we hugged the Maryland border in the flat areas, so there wasn’t much to see until we got to Harpers Ferry, which is incredibly charming.

Our final stop was Washington DC! We had once again taken the entire Amtrak line. The station in DC was probably the most amazing of the trip. It’s huge and beautiful, and included an large food court with beautiful stairways taking you between floors. I was finally feeling well enough to have a more normal meal, so I got a beef salami and cheese crepe in the food court along with a bottle of water. The tucked away Amtrak lounge wasn’t nearly as nice as the new one in Chicago, so I spent most of my time wandering around the station taking pictures, and a few minutes outside to see the Capitol Building and get some pictures of the station from the outside. It was definitely May weather out there, my jacket was too much and I retreated back to the air conditioned station pretty quickly.

The final leg of our Amtrak adventure took us on the Northeast Regional. Sleeper cars behind us, we had regular business class seats on this train for the quick two hour, largely urban trip from Washington DC to Baltimore and Wilmington to finally Philadelphia!

We departed the train at the familiar 30th Street Station in Philadelphia. We had just over an hour there, taking time to relax for a bit before taking one final train, this time on the local Philadelphia transit, SEPTA regional rail. My father in law graciously picked us up at the station in Trevose just after 7PM and deposited us at the townhouse, just over a mile from the station.

And there we were! Coast to coast on trains. Would we do it again? Absolutely. It was expensive and time-consuming, but I love trains and the chance to fully disconnect, catch up on reading, and see the country is worth it from time to time. We weren’t overly social on the train, but chats during meals with fellow travelers were always nice, learning about them and their reasons for taking the train (usually either for the experience like us, or because flying was too stressful or too much of a hassle). Even before we were off the train I was thinking about the next one I want to take. The 46 hour Empire Builder that travels north of our route, from Portland to Chicago? Or perhaps a more southernly route on the 40 hour Southwest Chief between Los Angeles and Chicago, or between the same two cities but taking 65 hours to traverse Texas on Texas Eagle? I’ll definitely be looking for an opportunity to take the Coast Starlight up the California coast. So many great choices.

More photos (almost 450 of them!) from our journey are in an album here: https://www.flickr.com/photos/pleia2/sets/72157684493832435/