Relayd and the Next Tech Book

Relayd and Httpd Mastery is off to Reyk for his comments and abuse. Once he gets it back to me I’ll solicit further tech reviewers. I want to have it out in ebook by the end of April, for Penguicon. (I’ve missed the window for print for Penguicon, sadly.)

This means I’ll be shutting down the ebook and print sponsorships opportunities this weekend. Move now if you want your name in the book.

What’s next? The agreement is in place, and everything else is out of the way, so I can say: I’m starting on a third edition of Absolute FreeBSD with No Starch Press. If you want details on how that’s going, I’ll be posting updates on Twitter with the #af3e hashtag. There’s already a few updates on that tag, but they’re all from other people who are being hopeful.

So, to all of you folks having a blast at AsiaBSDCon this weekend: sorry, I’m stuck at home, busily working to support FreeBSD while you’re having sushi and jet lag.

“Hi, I’m jkh and I’m a d**k”

I don’t do guest posts here. This blog is my private soapbox. You want to scream into the void? Go get your own soapbox.

Yesterday, I was privy to a private email message discussing a topic I care deeply about. I contacted the author and said “You really need to make this public and give this a wider audience.” His response boiled down to “if I wanted it to get a wider audience, I was welcome to do so myself.” So here’s my first ever guest post, from Jordan K Hubbard, one of the founders of the FreeBSD Project. While this discussion focuses on FreeBSD, it’s applicable to any large open source project.

The email discussion was about the FreeBSD Project recently giving someone the boot. I’m not linking to who it was; you can dig up the controversy elsewhere.

I did my first install of FreeBSD, version 2.0.5, in late 1995. I started reading FreeBSD mailing lists shortly afterwards. Allow me to provide some context to say that when jkh says he was a dick: yes. He was.

Like any good member of the press, I’ll give my anchor commentary after the footage. Again, it’s my soapbox.


My, what an interesting thread this has been, as well as an interesting (and probably controversial) recent talk by Benno on much the same topic.

I’m known for my long and overly verbose PhD thesis style postings, so I’ll try to make this one short(er) with a few pithy points:

1. Some of the FreeBSD project’s most energetic, motivated, and capable people have also, when viewed through the long lens of history, been total dicks, at least in electronic form. They just can’t seem to help themselves from coming off that way, one person’s “passionate concern for topic X” being another person’s “totally over-the-top behavior concerning topic X”, with neither side usually having the benefit of all the information while they form conclusions about which of the two it is.

2. The project needs driven individuals capable of achieving “10X productivity” (a software industry term, not mine) in driving various agendas, inspiring others by their progress and allowing important opportunities for project growth to be seized rather than squandered, just as it needs nice, cooperative, team-players who go out of their way to avoid stepping on toes or driving more junior, perhaps easily intimidated, volunteers away from the project. It would also be awesome to find both attributes in the same people, obviously, but that goal is usually more aspirational than one immediately (if ever) achieved.

So, how to reconcile these two seemingly fundamentally opposed goals in project membership management? “What is core going to do about it?”*

First, let me be very honest: I can only speak to you from the perspective of someone who has committed many of the sins in paragraph 1.

I have said many things I subsequently regretted. I have engaged in furious, pitched battles over topics that subsequently proved to be almost nonsensically trivial. I have definitely alienated people. The fact that I have Asperger’s syndrome also made it easy for me to be both highly driven and insensitive to other people’s feelings at the same time (it helps when you don’t even notice them) but that’s certainly no excuse because I have also learned, along the way, to grasp intellectually what I did not always grasp instinctively: Just don’t be a dick. Take a deep breath, swallow the irritation that is often my first response, and try to figure out another way of expressing myself that will lead to a better long-term outcome with less friction with my colleagues / bosses / end-users.

Does that work 100%? Heck no, I’m still a work in progress, but I’m definitely better than I was 22 years ago, and pretty much the only reason that I’m better is that people took the time to talk to me about being a dick. They sent me (oh so many) private emails saying, in effect, “Dude! Really??” They called me on the phone when it was clear I really needed a Healthy Dose of Perspective and email just wasn’t doing the job. All of my fellow developers and colleagues (and yes, occasionally HR departments) have collectively conspired to slap me across the face with the Trout of Truth when it was clear I was going, or had gone, off the rails where interpersonal communications and decision making skills were concerned. I have, in short, learned some hard lessons about being more responsible for my actions on a number of levels and I’m glad I managed to stick around long enough to learn them. I am, as I said, a work in progress.

* That’s where all of you come in. You can’t just say “What is Core Doing About It?” when it comes to addressing problems like this, because by the time Core gets involved, it’s already too late. The damage is done and probably irrevocably so because it’s been done over a long period of time. People complained and complained and finally core wearily stepped in and pulled the trigger. Bang. Too late for anything else.

If you want better outcomes than this, then you simply need to start mentoring one another. You need to take extra time to call your fellow developers on the phone / Skype / WhatsApp / whatever works when it’s clear one of them is having a bad day, or escalating a situation that doesn’t warrant escalation, or simply being a dick when they don’t need to be (and probably don’t even realize they’re being). We had that kind of close and frequent communication a lot in the early days of the project, and I absolutely know that it held things together through some rather tempestuous times. It’s also no excuse to say that the project is bigger and has outgrown this now, either, because it only takes one person to call one other person at the right time for ad-hoc mentorship to work. Don’t just wait until you see someone at the next conference when it’s clear they are struggling to interact successfully with others in the here-and-now, reach out, just as so many reached out to me!

Please also take my word for it when I say that a truly successful FreeBSD project will continue to need driven people, people who are often tempted to drive right over others who won’t get out of their way or otherwise tend to show “less than perfect patience”, just as it will continue to need quieter folks who are content to follow someone else’s vision, assuming that there is one to follow, and instinctively do a better job of getting along with others. Each “type” can benefit and learn from the example the other provides, assuming there is a real commitment to doing so.

I’ll leave you with an analogy: This is like a marriage. If both in the couple are very passive, then that will probably be a long-lived but rather boring relationship where both ultimately wind up just counting the days until death comes for them. If both are fiery and impetuous, the relationship will probably be exciting but equally short-lived. The most successful marriages are usually some combination of the two extremes, the worst impulses of one being kept reasonably in check while the other gets to experience new and exciting things they just wouldn’t have thought to do (or had the will to do) on their own. Assuming that both also commit to communicating on a frequent basis and don’t just assume Everything Is Fine, it works.

What kind of marriage do you folks want?


Jordan is absolutely right here.

The open source community has some incredibly smart people in it. You folks are brilliant.

When Jordan says that he’s a “work in progress,” though, that’s applicable to every one of us. Including myself.

I won’t say that the open source community is full of people with problems like ADD, Aspergers, and so on. I will say that of the adults I know that I happen to have these conditions, I met every single one of them through the open source community. I strongly suspect they gravitate there because computers are comparatively easy compared to people.

Other groups have their own issues. The writers I know run really heavy into depression and social anxiety. (I’m a writer and a techie. Thanks to my writing career and Amazon Prime’s free two-day shipping, I almost never leave the house. That’s just best.)

Brilliance is great. I admire really really smart people.

But to belong to a community, a person must be able to work with that community. I’m using “must” in the RFC sense here. It’s an absolute, non-negotiable requirement.

BSD, and open source in general, is full of brilliant but incomplete people. Everyone is incomplete. In open source, the incompleteness is often in social skills and the understanding of how to behave.

Social correction, and the establishment of social norms, comes only from the community. It’s entirely bottom-up. One on one.

While you can go to a counselor to help develop those skills, the best advice comes from peers who have been in your exact situation, who have faced those problems, and who have developed those skills.

Are you good at communicating in your open source community? You have another contributor you like, but who has social problems? Unofficially mentor them.

Are you an open source contributor who keeps getting messages from people saying something like “Dude, that’s really messed up,” or “You were really inappropriate here, stop it,” or similar? One message might not be a big deal. But if you keep getting them, it’s a sign that you’re missing a skill. A skill that can be learned. If someone you get along with offers to help: listen.

And it’s far better done via voice than electronic text. Text communication strips vital context, and it’s much much slower than voice. If a person has problems communicating via email, more email isn’t going to solve it.

One of the hardest things to do is listen when someone calls you a dick. Yes, it’s happened to me. When it comes from people I respect, I listen. It makes me less incomplete.

And if Jordan can learn to not be a dick, anyone can.

So why am I not naming the person who got booted from FreeBSD? Because he, like everyone else, is an incomplete person who lacks a particular skill. I hope he will develop that skill. And I don’t want a blog post from 2017 to hurt his chances of getting a job in 2037, or even 2018, when he’s had an opportunity to add those skills.

You have the power to make that brilliant but poorly socialized contributor a better community member. Even if that brilliant member is you.

Sponsorships on “Httpd and Relayd Mastery” available

By somewhat popular demand (“popular” means “more than one person has asked for it,” right?), I’m now offering sponsorships on the OpenBSD httpd and relayd book.

Print sponsors get their name in the print and ebook versions of the book.

Ebook sponsors get their name in the electronic versions.

Sponsors can access the in-progress manuscript, updated whenever I get around to it. The version there now contains most of the httpd parts, as tech reviewed by Reyk.

I did well enough with the FreeBSD Mastery: Advanced ZFS sponsorships to cover the emergency replacement of a water heater. The PAM book had less interest, but I did okay. As this is a very specific book with a narrow audience, I’m not expecting very many sponsors.

Which means–if you sponsor it, your name will really stand out as an all-around awesome human being. Or corporation. Whichever.

2017 presentation proposals

I have my usual two annual events that I speak at coming up: BSDCan and Penguicon. I have ideas on what to submit, but thought I’d see if anyone had something they’d like me to present. Things that I can present, that is.

For BSDCan, I’m pondering between a talk on OpenBSD’s web stack (httpd, relayd, and CARP) and a 4-hour ZFS tutorial. I’ve been kicking ZFS a lot the last couple years, and figure folks are sick of it. The relayd book should be out before then.

Last year at Penguicon, I ran 10 events. That did me in–mostly because I didn’t know I was ill at the time, but still. Panels are much easier than talks, though. So I’m going to submit fewer this year, and let them throw me on panels as needed.

For the Penguicon tech track, I’m thinking of talks on the OpenBSD web stack and “BSD in 2017.” The “Senior Sysadmin” panel I chaired last year did pretty well, so I was pondering reprising that but with a theme like “storage” or “maintenance.”

I usually throw a couple things into the lit track as well. This year I’m pondering a panel on self-publishing and a panel on promotion for writers. That’ll leave space for me to get added to other lit panels.

Is there something you’d like to see me present at either of these? Leave a comment to say so.

And as someone’s going to ask why I submit more for Penguicon that BSDCan, let me answer that.

BSDCan has a soft “one event per speaker” limit. We get a lot of proposals, and we want to bring as many different BSD folks together as possible. Plus I’m on the BSDCan committee. Having ten events starring me would look bad.

And Penguicon will let me get away with doing ten events. Give me blank time at a con and I’m likely to sneak out to the county library for a couple days of peaceful reading. If the library won’t let me in, I generally hide under the stairwell and start chewing my hair out. I have no hair left on my head and the police tell me I’m out of warnings, so I reduce the odds of that happening by staying busy.

Hey, if I was social, I’d be in sales.

Get your name in the relayd book

(note: comments that are not bids will be deleted. The next post is for meta-comments.)

There’s a long tradition amongst science fiction writers of selling bit parts in books in exchange for charity donations. It’s called tuckerization.

I see no reason why science fiction writers should have all the fun.

I need a sample user for the forthcoming book on OpenBSD’s httpd and relayd. This user gets referred to in the user authentication sections as well as on having users manage web sites. They will also get randomly called out whenever it makes sense to me.

That sample user could be you.

All it would cost is a donation to the OpenBSD Foundation.

The catch is that I only need one sample user.

That should be the user with the biggest Foundation donation. Because I’m from the US, where bigger is clearly better.

It makes sense to auction this off. The person willing to make the highest donation will get their real name and preferred username, or reasonable substitutes, used as the book’s sample users.

They’ll also get their name in the back of the book, in both the electronic and print versions.

The auction will take place in the comments section on this web page. Yes, you place your bid here. (edit: a bid is a promise to donate if you win, not a statement that you have donated. You know, like an auction.)

Some questions and answers.

  • Is this a cynical scheme to raise money for further development of assorted OpenBSD-related projects?

    Yes.

  • Any limits on our name and username?

    I reserve the right to reject names or usernames. If your birth certificate really says your name is an obscenity, I’m pretty sure you have a nickname. Similarly, even if your username on all your systems truly is henningsux, or your legitimate full name is Felicia Urban-Channing Kildare and you use your initials: nope.

    I won’t spell out exact rules for names, because you people are clever buggers and would find a way around them. Your name. Your preferred username. Or reasonable substitutes for them.

    This is intended to be fun. Dirty words and insults are not fun. In public.

  • Will you treat me with respect?

    Uh… have you read my work? I can pretty much guarantee condescension and insolence. Perhaps not a huge amount (this isn’t a book on sudo), but some.

    Then again, this book involves openssl(1) commands. You’ll probably catch some of my perfectly understandable emotional reaction to having to type a command like this:

    # openssl ocsp -no_nonce -issuer chain.pem -VAfile chain.pem -header Host ocsp.int-x3.letsencrypt.org -url http://ocsp.int-x3.letsencrypt.org/ -serial 0x0367016F53A2A5425C1E50BB17D2AE63378A -respout ocsp.der

    Not only do I have to write about that string of stupidity, I have to write about it in such a way that you’re happy to read it.

    I’m gonna have a tantrum. It might as well be about you.

  • I’d like you to use my spouse’s/mother’s/soulmate’s/hamster’s name

    First, read the previous question and answer. Once I’m through with the user, this person might no longer be your soulmate… or your mother.

    I will search on your preferred name, to make sure I’m not abusing a social activist or anything like that. But yes, within the same limits. If your hamster is named Dumbass, nope. Same for your soulmate, or your mother.

  • I’d like you to use a historical figure/deceased developer/etc

    No.

    I’m not going to make statements like “I don’t trust George Washington/MLK/creepingfur with shell on my server, so he gets locked in a chroot.” Our dead heroes deserve better than to have me sniping at them. Besides, one person’s hero is another’s monster.

    Yes, creepingfur had a really good sense of humor… but no.

    Could I be nice? I have that ability, but nobody reads my books for kindness.

  • My company name–

    No.

    This is not a way to advertise your firm.

  • Why do this here, instead of an auction site like eBay?

    Partly because authors normally do this sort of thing on their web pages. Partly because it simplifies the running of the auction. And partly because it means I have no financial connection to the results. Touching donated money causes me weird non-financial risks, thanks to how US federal and state law interacts with my family situation. (No, I won’t explain that. It’s personal. Deal.)

  • Why not have the Foundation run this, then?

    They’re busy writing code and arranging hackathons.

  • Why do this now instead of when you started writing the book?

    Because the OpenBSD Foundation exceeded their fundraising goal for 2016. I’d like to see their 2017 start with a boom.

  • When does the auction end?

    5 PM EST Monday, 16 January. Or sometime shortly after that.

  • That’s a stupid time. Where’s my countdown timer?

    It’s convenient for me. It also will discourage last-minute sniping.

    If last minute bids are coming in fast and furious, I’ll let it run until bidding stops for five minutes or so. Fight it out fair and square.

  • When does the auction start?

    When I hit “publish” on this blog post.

  • How do I bid?

    Comment here with your bid amount. Each bid must be a minimum of $5 more than the previous bid.

  • How do I track competing bids?

    Check the “Subscribe to Comments” box when you bid.

  • Where will the winner be announced?

    On a separate blog post the evening of 16 January.

  • How do I claim my prize?

    You have three days to make your donation. Send me your PayPal receipt.

  • What if the winner doesn’t pay?

    The prize falls to the #2 bidder, who I will contact.

  • What exactly will the winner get?

    Your name and username in the body of the book, in places where I need to refer to a person. Some degree of emotional reaction to your name. Probably not a very positive reaction. Your name in the back of the book, described as the “Tuckerization Charity Auction for the OpenBSD Foundation Prize Winner” unless I can come up with a less awful and mutually agreeable way to say that.

    If the auction goes over $100, I’ll ship you a signed copy of the print book when I ship out the print sponsor copies.

  • Will you be offering sponsorships on this book?

    Yes. Once the auction ends.

  • You said this was for SF writers. Don’t you write SF?

    Yes, but nobody cares. For those who want to pretend to care: here’s my latest SF novel, Hydrogen Sleets.

  • I have things to say about this other than bids!

    Comment on the next post, please. Not here. I am easily confused. Comments to this post that are not bids will be deleted.

  • See Me in 2016

    I have two more public appearances in 2016.

    October 7-8, I’ll be at Ohio LinuxFest. They’ve asked me to speak on Introducing ZFS.

    November 8, mug.org has invited me to talk about PAM. This is election day in the United States, so the talk is on how PAM is Un-American.

    Sadly, family commitments prevent me from going to MeetBSD in Berkeley. Plus, there’s the whole “get on a plane” thing, which I try really really hard to avoid. I’d probably do it to see Berkeley, though. I’m pretty sure a pilgrimage to Berkeley is required once during my lifetime.

    Other than that, you can catch me at a Semibug meeting.

    Cover reveal for “PAM Mastery”

    For the first Tilted Windmill Press tech books, I elected to create covers from photographs. Some went over well, some less so.

    For the FreeBSD Mastery books, I persuaded Eddie Sharam to create parodies of classic art. It’s far more expensive than photos, but reaction has been positive.

    PAM Mastery is almost ready to go to copyedit, which means I need a cover for it. I’ve elected to continue the parody art. Without further ado, here’s the cover.

    Sysadmin Gothic
    Sysadmin Gothic

    I’ve gotten some great feedback from DES, author of OpenPAM, and need to incorporate that into the manuscript. Once that’s complete, I can send it to copyedit!

    My BSDCan “OpenPAM & BSD” talk

    My BSDCan 2016 talk on OpenPAM and BSD is now on YouTube.

    The video comes straight from screen capture, which means it’s missing details like the green dot of the laser pointer.

    Also, the audio only covers my voice. You don’t get all the audience interaction. Sadly, I forgot to repeat audience questions at the end, but you can figure most of them out based on my responses.

    Also, I need to stop saying “um.” I really need to stop saying “um.”

    FreeBSD Mastery: Advanced ZFS (Version canadienne)

    I’ve wondered for a while what to do about Allan Jude.

    Allan is my co-author on FreeBSD Mastery: ZFS and FreeBSD Mastery: Advanced ZFS. I could have written those books on my own, but they wouldn’t have been nearly as good.

    We have had one major disagreement, though: is it pronounced zee-F-S or zed-F-S? This has proven an intractable problem.

    I’ve come up with a solution, though.

    FreeBSD Mastery: Advanced ZedFS – Canadian Version.

    fmaz-canadian

    Here’s the front text.

    This book exists because Allan Jude is too generous for his own good.

    Alan has aided my efforts to become a professional writer in ways that can never really be paid back. They can only be paid forward.

    The only real disagreement we had while writing this book was on the pronunciation of ZFS. Is it zeeFS, or zedFS? This special edition of FreeBSD Mastery: Advanced ZedFS exists as a physical token of my appreciation.

    What makes this book different from the regular edition?

    First, the special Canadian cover.

    The text is modified to be more palatable for Canadian readers.

    This edition contains a footnote that does not appear in the standard edition.

    And last, this edition has not been proofread or copyedited.

    Thanks, Alan, for everything.

    Michael W Lucas
    24 May 2016

    The catch is: it’s only available in print.

    Only five of them exist. (The electronic originals have been destroyed, so I couldn’t exactly reproduce this if I wanted to.)

    I have one.

    Allan has three. (There’s a YouTube video of part of the presentation.)

    One, and only one, will be on sale.

    The only place to get it is at the BSDCan charity auction, benefiting the Ottawa Mission.

    BSDCan attendees, this is your one and only one chance to get a copy of this exotic, rare object.

    Ask Alan or myself for a peek at it.