Awesome Conferences

September 2014 Archives

Hi Philly folks!

I will be speaking at the Philadelphia area Linux Users' Group (PLUG) meeting on Wednesday night (Oct 1st). They meet at the University of the Sciences in Philadelphia (USP). My topic will be "Highlights from The Practice of Cloud System Administration" and I'll have a few copies of the book to give away.

For more info, visit their website:

Hope to see you there!

Someone recently asked me how the rise of the Internet has affected what books get published, specifically related to books about operating systems and other open source projects.

This is based on what I've been told by various publishers and is "conventional wisdom". Of course, an actual publisher may disagree or explain it differently, or have counterexamples.

This is the email I sent in reply:

One way that the internet has changed the book industry that is not well-known outside of publishing circles is that it has lead to the death of the reference book.

It used to be for every language or system, someone would make easy money printing a book that lists all the system calls, library calls, or configuration fields in a system. Each would be listed along with a definition, and sometimes a longer explanation or example. These reference books (and the easy profits from them) have disappeared because that's all on the web for free. For example, the entire standard Python library is documented on and is updated constantly. Why publish it in a book?

Another tier of books that have disappeared are the "getting started" books for open source projects. In an effort to better market themselves, open source projects have excellent tutorials online for free. Often they are interactive. (Check out the interactive Docker Tutorial and the Go Playground to see what I mean).

Part of what has caused this is the commercialization of open source projects. If you are selling support, your easiest sales are to people that already use the product and now need support. Therefore anything you do to expand the number of people using the product expands the number of potential customers for the support services. Therefore, a greedy company gives away any documentation related to how to get started as it increases their base of potential customers. This is quite radical if you think about it... when you sell commercial software you hide this information so you can sell "professional services" that help people get started. For them, the potential market is all the people that don't use the product already. (Footnote Simon Philips's keynote at LCA 2009 )

As a result, the books that can be printed and sold profitably now need to have have some kind of "culture" component (i.e. what we used to call "soft skills"), or are general education to bring people up to speed so they can understand what's already out there, or the "cookbook" style books that list situation after situation. Actually, I love the cookbook-style books because it is more likely that I'll serendipitously come across something new by reading all the examples in a row. If I don't understand the example at least I know where to turn if I ever find myself in that situation. If I do decypher the example enough to understand why it works, I've learned a lot about the system.

What should an OS vendor do? I think they should be the ones producing cookbooks and also facilitating user-generated cookbooks. The official cookbook is a good way to proscribe marketing-endorsed methods. However there is a much bigger need for user-generated cookbooks full of the niche situations that only users can come across. Vendors should facilitate, wiki-style, this kind of thing. They may fear that it is a tacit endorsement of methods they don't approve of, but they need to recognize that a user getting their needs fulfilled is higher priority than perfection.


P.S. I just realized that my employer's website, [ is just that kind of fulfillment. One of our sub-sites provides exactly that kind of "user-generated cookbook" with the ability to gently push people in the right direction. (Plug: other vendors could choose to partner with us rather than create a site from scratch.)

Posted by Tom Limoncelli

In NYC for Velocity?

If you are in NYC for Velocity, please check out my tutorial on Monday, "Office Hours" on Tuesday, book signing on Wednesday, or come to my book party on Wednesday night!

...or just stop me randomly in the hallway and say "hi!" I love meeting new people!

Posted by Tom Limoncelli

Previously Safari Books Online (the O'Reilly thing... not the Apple thing) had a rough draft of The Practice of Cloud System Administration. Now it has the final version:


Sunday's "Brewster Rockit" comic strip explained bandwidth vs. latency better than I've ever seen is some text books:

When I interview anyone for a technical position I always ask them to explain the difference between bandwidth and latency. It is an important concept, especially in today's networked world. Years ago most candidates didn't know the difference. Lately most candidates I interview know the difference, but have a difficult time putting it into words. Fewer can explain it in a mathematical or scientific way.

Latency is how long information takes to get from one place to another. Bandwidth is how much data per second is sent. Suppose you are querying a database that is very far away. The time it takes the query to go to the server and for the reply to come back could be very long (say, 1 second). If you do 1,000 database queries and each time wait for the query to complete before moving on to the next one, the task will take 1,000 seconds. If you increase the bandwidth between the two points the speed improvement will be nil or next to nil because the time it takes for the information to travel outweighs the transmission time. However if you send all your queries one after the next, without waiting for the replies, then wait and catch all the replies as they arrive, the entire list of 1,000 queries might happen in a matter of seconds. However, if you can't do the second query until you have information from the first query (say, the first query looks up a person's ID number and the second query uses the ID number as part of the query) you have to find some other optimization or you will simply have to wait 1,000 seconds for the entire process to run.

One situation I give the candidate is that they are dealing with a developer or manager that can't understand why doubling the bandwidth between the NYC office and Australia won't improve performance of a particular technical issue. Whether the candidate is a software developer, operations engineer/sysadmin, or desktop support engineer, there is a good chance they will find themselves in this situation. I roleplay as the person that needs the explanation and ask dumb questions. The candidate should be able to give a reasonable explanation in a couple minutes.

Maybe next time I should just ask them if they read Brewster Rockit.

Posted by Tom Limoncelli

...because we're re-branding The Practice of System and Network Administration as "Volume 1".

  • Vol 1 == enterprise IT
  • Vol 2 == server/service administration


Available as a PDF here.

In Time Management for System Administrators I describe a way to manage your todo lists which I call "The Cycle". The book came out before the existence of smart phones and app stores, so it doesn't include some important info.

The iPhone app (now available for Android) that I use for The Cycle is Appigo Todo Cloud. It can be configured in a way that makes it easy to do The Cycle.

If you recall, in The Cycle you set up a todo list for each day. At the end of the day, you move the remaining items to the next day's list.

Todo Cloud doesn't support this directly, but you can fake it.

  1. First, we will use the "Due Date" field as the date you want to "do" the task. When we sort the todo-items by "Due Date" we'll see what appears to be one list per day.

  2. Second, to "bump" tasks to the next day, we'll configure the "Quick Menu" (press-and-hold on a task) to include the "Postpone" button.

Here are the configuration settings I did to achieve this:

  • Sorting:
    • Due Date, Priority
  • General:
    • Completed Tasks: "on"
  • Show: For one week
    • Display Options: Turn on Overdue Section, Color Overdue Dates
  • Focus List:
    • Show tasks: (enable all + Completed: For one week)
  • Task Creation:
    • Due Date: Today
  • Priority: None
    • Quick Menu:
      • Postpone, Today, Tomorrow
      • Star, Next week, No date
      • Due Date, Start Date, Skip

When you "invest 5 minutes" each morning to plan your day, simply press-and-hold any item you want to move to the next day (postpone). Drag and drop the items around to prioritize them.

That should be all you need to do. However I set up my app a long time ago so I may have left some things out. If you set up Todo from a completely "factory default" state, I'd appreciate knowing if I missed anything.

Note that I am not affiliated with Appigo. They probably don't even know that I recommend it so often or even know that their product works so well with the techniques recommended in Time Management for System Administrators.

Posted by Tom Limoncelli in Time Management

Stack Exchange, Inc. ( / is hosting the launch party for Tom Limoncelli's newest book, "The Practice of Cloud System Administration." The local DevOps/Sysadmin/Linux user community is invited. Food and beverages will be provided.

  • Date: Wed, Sept. 17, 2014
  • Time: 7 p.m. until 9 p.m.
  • Location: Stack Exchange NYC HQ, 110 William Street, 28th Floor, NY, NY 10038
  • Directions:
  • RSVP: click here

Information about the book:

If you are in town for Velocity NYC, please stop by!

The ebook is shipping!

The Practice of Cloud System Administration is shipping on Kindle and PDF/Mobi versions are shipping on InformIT. Physical book should start shipping today or Monday.

If you get the PDF, I'd love to know the md5 hash of the file. Post in the comments.

I'll be the speaker at the LOPSA-NJ September meeting. I'll be talking about my new book, The Practice of Cloud System Administration.

For more information, visit their web site

The team I'm on at SE is hiring!

In particular, we need a system administrator (either a Linux or Windows) that has Cisco network gear experience. Site Reliability Engineer, Networking

We'll have another listing for a generalist (someone that knows Linux and Windows) in a few days.

We do have opportunities for people that work remotely. For more info about working at Stack Exchange, check out our page:

Oh yeah and...

Stack Exchange, Inc. does not discriminate in employment matters on the basis of race, color, religion, gender, national origin, age, military service eligibility, veteran status, sexual orientation, marital status, disability, or any other protected class. We support workplace diversity. (That said, my teammates have been trying to increase the diversity of the resumes in our pipeline, so... feel free to contact me directly if you have questions related to that [tal at what exit dot org])

Posted by Tom Limoncelli

Good Reads, Aug 2014

(The book tour for The Practice of Cloud System Administration has begun! Book signings planned for NY, NJ, Philly, Austin, Denver, Seattle and The Netherlands. Parties planned for NYC on Sept 17 and at my house in NJ on Sept 20. If you are local, please attend. More info on

A summary of the interesting articles I've found this month.

Mark Burgess on why APIs are bad They aren't idempotent. If you use an API to create an object and crash mid-way through, when you recover from the crash you don't know if the object is in a good state or not. Should you delete it and re-create it? Assume it is good? Who knows? It is like the CAP Principle but worse. APIs also encourage vendor lock-in, which is bad. What should replace APIs? Promise theory. Vendors should provide declarative systems that let people specify what the desired state should be and create that state in an idempotent way. (Note: another "why APIs are bad" article was highlighted in back in May of this year.)

How Microsoft dragged its development practices into the 21st century Probably the best explanation of what "Agile" is that I've seen on the web. The author goes into the right amount of detail to help the reader understand the problems of software development, as they affect the business, and how Agile fixes these problems. This should be required reading for CFOs, CIOs, and VPs of Engineering. By the way... if you aren't sure what DevOps is, the best way to describe it is: Agile applied to system administration.

Elizabeth's Joseph summary of DebConf, with a lot of cool CI stuff Elizabeth's summary highlights many new uses of Continuous Integration that are being employed by the Debian folks. Examples run from better testing to more reliable releases. There are many excellent use-cases here that others should be jealous of. Just kidding, you don't have to be jealous... it is open source! Just set up Jenkins CI and replicate these techniques with your project!

Revisiting How We Put Together Linux Systems Currently Linux distributions are a base image plus many packages. Here's a proposal for building Linux out of overlapping disk images. Sounds crazy, but the people discussing it are in a position to actually do it. The advantages are surprising. If you thought containers were cool, here's a complementary technology idea that would (in combination with containers) fix a lot of problems, including putting an end to "dependency hell."

How the Other Half Works: an Adventure in the Low Status of Software Engineers: What most of us don't realize is that this culture of mandatory "passion" lowers our social status because it encourages us to work unreasonably hard and irrespective of conditions. The fastest way to lose social status is to show acceptance of low social status. From a time-management perspective, the point here is that when you for long hours and weekends for free, it devalues the role of a system administrator.

BlackBox: A system that makes it easy to safely store secrets in Git or Mercurial You shouldn't store secrets like passwords and SSL certs in version control repositories. It isn't secure, and even if you trust the security of your repo, you probably don't (or shouldn't) trust the people that run the server or do backups. Instead you should encrypt those secretes before you put them in the repo. Sadly that's a pain it the butt. ...not any more! I've open sourced a set of shell scripts I wrote that make it easy to do this. I created the system for use with our Puppet repository at Stack, but the scripts work with any Git or Mercurial repository now.

Misc Stuff

  • The new season of Homeland has started. I've started streaming House Of Cards and Defiance; both are awesome. (Trivia: I went to college with Defiance's creator Kevin Murphy).
  • Best movie of the summer: Guardians of the Galaxy. (I've seen it in Imax 3D twice already.)
  • Looking forward to seeing The Giver before it leaves the theater.

I have a new book coming out!

It is called "The Practice of Cloud System Administration" and it ships September 5, 2014. That's less than a week! If you want to be the first to get news and notes about it, click here and tell me your email address.

Posted by Tom Limoncelli in Good Reads

I'm excited to announce my "book tour" to promote The Practice of Cloud System Administration, which starts shipping on Friday, September 5!

I'll be speaking and/or doing book signings at the following events. More dates to be announced soon.

[NOTE: The complete list has been moved to]

This book is the culmination of 2 years of research on the best practices for modern IT / DevOps / cloud / distributed computing. It is all new material. We're very excited by the early reviews and hope you find the book educational as well as fun to read.

I'd be glad to autograph you copy if you bring it to any of these events. (I have something special planned for ebook owners.)

Information about the book is available on Read a rough draft on Safari Books Online. For a limited time, save 35% by using discount code TPOSA35 on

I look forward to seeing you at one or more of these events!