🇵🇷 Kubernetes Community @ VMware || Serves the Colony || Former Heptio/Canonical/Ubuntu || 11th ACR Army Vet || Red Wings, Beagles, motorsport, and Parasorolophus || Heavy Metal forever
4331 words

Using GitHub Discussions for Meeting Notes

My compatriot Wayne Witzel pointed out to me how his team at Octant publishes their meeting notes and I think it's fantastic. They publish their notes right into GitHub. Here's a specific example, one thread per meeting.

I really like this for a few reasons:

Single source of truth, no need to link gdocs or hackmd.

Clearly you'll want to use hackmd for the notetaking so you can do it as a team and let people contribute and dive in, this seems like a great way to archive notes. Compare this to how Kubernetes archives our community meeting notes.

If someone from the community has a question they can ask right in GitHub

This is nice, having your notes right there and people can just reply with questions, thumbs up, or do whatever. It's unified, I don't have to subscribe to a list, or know anyone's email addresses. "We announced a thing and people responded with heart emojis" is a much better thermometer for what people are into than sending something to a list.

It costs me almost nothing to give Wayne a heart on GitHub, but I would never send a "This looks great!" response to a list because I don't want to waste people's time.

Little things

Notifications! A searchable archive! Also when you do "We fixed issue #1234" it will know what to do and autolink, which you have to do by hand if you're using something else.

Downsides to consider

This is beta still, and while I do love the idea of discussions being baked into GitHub, you don't get the thorough features and tools that you would by using say Discourse.

Also you probably already have a mailing list. On the one hand, having open mailing lists is a traditional open source thing to do. But I couldn't help but raise an eyebrow thinking about how we can effectively do the same things without the email baggage.

I've stopped feeling guilty about blocking ads

You've seen it, the make-you-feel guilty popups and notices on websites asking you to stop blocking ads. I know writers and people who have worked in online media, so I am empathetic towards their cause -- I also wish that the model was more sustainable. But like, I'm done.

What's annoying is the blame in shift from the content producers to the consumers as to why I am blocking ads. Why are you trying to make me feel guilty? You can't preach to me about how you're trying to make a living and then throw megabytes of trash into my browser and shady-at-best privacy (if any). It used to be that the reader and the content producer had a sort of contract. You provide content, and I'll deal with ads so that you can pay people to make a good service. But it's gotten so bad that I refuse to do this anymore.

I'm done feeling guilty, browsing the web (especially on mobile) is awful. I'm tired of chumboxes, unmoderated/spammy comment sections, and most of the default web experience these days.

So what's the solution?

I instead prefer to directly subscribe to content. Technology is great, and has helped me save a ton of money, so I strive to financially support good content. I'm going to use my breakdown as an example, after all, it all depends on what you're into.

Let me break down my web subscriptions:

And then, I have moved to directly paying for software that would usually be ad-driven:

That comes out so far to $43.25. The average cable bill is $217. That's $173.75 you can do anything you want with, throw some at more websites (that would be a lot), invest in some open source subscription services via github/patreon, or just pocket it.

I've also noted how much more video content I can consume on YouTube when there's no ads. A good portion of the shows I follow (especially the tech ones) know how to do a sponsorship ad that takes 20 seconds, might have affiliate links for the items they review, or sell things in their stores. Why else would I buy a modmat if not to support a good content producer directly? (Ok there are lots of other reasons to get a modmat)

Also, can you believe the average cable bill is $217? That's a car payment! To be fair I didn't count my video subscription services in here -- I tried to mostly keep it to web but I left YouTube in because lots of good technical content resides there that has effectively replaced web for me.

What about everyone else?

Into the black hole you go! Obviously there's no problem using websites from things you already pay for (like your bank website for example), but most of it can go into the blackholes, if I see something good I try to pay for it, otherwise:

(Note to readers: Cable was a common service in the 90's/00's)

VMWare container for Folding @ Home

Thanks to Ryan Kelly who has published a container for Folding@home. This is a great way to have a PC helping to solve for COVID-19.

It works on standalone machines and on Kubernetes, and there's a toggle for enabling your GPU as well as supporting the common use flags for the fah client.

Here's a shorthand:

docker run --rm -it -p7396:7396 vmware/folding-at-home:latest --user=myusername --team=52737 --passkey=1385yourpasskeyhere5924 --gpu=false --smp=true --power=full

And here's what I actually use:

docker run --rm -it -p7396:7396 vmware/folding-at-home:latest --user=castrojo --team=52737 --gpu=true --smp=true --power=full

Naturally team 52737 is VMware, so by all means adapt to your team usage. Point your webbrowser to to hit the web ui to make changes, of course substitute with your actual ip. Make sure you check out the full directions in the link above, and happy folding!

Don't forget to check out our awesome team dashboard

The ability to send a plain text email is not a skill people care about (mostly)

The amount of folks who are up in arms about Sarah Novotny's views on email based workflows in Linux put a smirk on my face today, but I figured I would post my own opinions, having both spent way too many hours with mutt, offlineimap, postfix, and so on. I even wrote an entire article series on this for Ars Technica that is so old I can't even find it on the web any more. And Lee Hutchinson's version is from 2014!

How can someone who is wanting to contribute to the kernel possibly not know how to send a plain text email? If you can't do that then you have no business in the kernel right?

It's not a matter of can't, it's a matter of won't. There's a reason no one writes their resumes in LaTeX either. Sure, I can do it. I figured it out, achievement unlocked.

You would be shocked at the amount of core contributors to Kubernetes that we routinely find aren't subscribed to the main mailing list. Sending git formatted patches over email, are you kidding? Most of my open source collaborators aren't even reading their emails lol.

You don't send a mail to the list to propose something, you write an enhancement proposal and if you're nice, you might mention it on a list, but all that activity happens in GitHub. And if you want a meaty discussion you hop onto Zoom and discuss it high bandwidth style with your SIG before moving on. You're not going to find lengthy discussions about technical features on many of our mailing lists, you'll find them in the GitHub issues, PR comments, and meeting transcripts.

No fair you say! There's a difference between using/consuming technical content and coordinating/running an entire project. That's the point, not any more!

Watch how Martin Wimpress does a live package update in Ubuntu MATE. That level of interaction with the audience isn't just the future of OSS development, it's the present. Our next kernel people, Debian maintainers, library maintainers, and everything inbetween are sitting in places like this and this is how they interact with themselves and their communities. There's just too much awesome shit in the world for people to slow down to figure out emails and mailman. And if you think this is just about email, wait until you see how much coordination and awesome stuff is happening in Discord. Yep, this is about IRC too, all of it.

I hear ya, I wish plaintext wasn't on the way out as a workflow, but at the end of the day, most projects aren't Linux. You can't afford an email mailing list workflow, you need to be where the developers are. New developers coming into the field are as likely to be on AOL than setting up mutt, that's just how it ended up. The distribution developers know how to do this, it's part of their job, but let's not kid ourselves, the eyeballs are not on mailing lists.

Linux is missing an entire generation of new talent due to this. I don't sweat it, Linux is fundamental technology, it'll survive just fine, but it'll continue to be a workflow that won't jive with a number of people coming into the field.

Also it's pretty evident from most Microsoft conspiracy comments that no one bothered to look up Sarah's OSS credentials, but of course, that didn't surprise you either. Her points still stand if you replace GitHub with GitLab, or whatever tool you prefer.

Easy comfort food chicken on the grill

Here's a quick chicken breast recipe I've been carrying around since college(!) It's based on Smothered Chicken from Bennigans. You can find lots of copycat recipes but I'm basing mine off the old recipe from back in the day.

You need:

  • Chicken Breasts (4) - I usually make them 4 at a time, but up to you. If you have time to marinade the day of tossing them in a ziplock and adding your favorite Italian dressing and having them marinate in the fridge isn't a bad idea. My local grocer sells premarinated breasts so I tend to use those to avoid complexity
  • Provolone Cheese (8) - Enough to cover each chicken breast, this usually works out to 2 slices per.
  • Diced Tomatoes
  • Diced chives or green onions - Don't chop them until you're actually cooking the chicken, you don't want to lose that dope fresh onion kick
  • Shredded cheese - Usually a "3 cheese mix" or something works, you want something with a mix of cheddar and mozzarella

  • Set your grill to 400 degrees and let it warm up while you prep. You want to cook the breasts until they hit 165 degrees internal temperature.
  • Once you're close to the chicken being done (I do this at 160 degrees), I add the provolone cheese to each breast, right on the grill.
    • Optionally you can add a small amount of BBQ sauce and then lay down the provo, up to you.

We're using provo to create a melted "skin" around each breast, that's going to be our glue.

  • After the provo has melted slap on the other shredded cheese.
  • Close the lid and let the cheese melt for a minute or so, check your meat probes (or cut into the chicken, no shame in being safe) to ensure you're hitting safe temperatures.
  • Once it's done pull the breasts, remember they'll keep cooking even if off the grill.

Next you want to smother the breasts with diced tomatoes and the diced onions/chives.
Serve with any side and you're good to go!

The Fall of Civilizations and Software

I've been spending lots of time sitting outside at night and mostly staring into a firepit while listening to podcasts. This has proven to be relaxing for me since there's not much else to do during the pandemic.

I've really been enjoying the Fall of Civilizations Podcast :


One thing I've been trying to pay attention to is how historical subjects can be applied to modern open source communities. For example a year ago if you would have asked me what caused the Bronze Age collapse I'd have defaulted to "Easy, it was the sea people". Easter Island? Everyone knows they just chopped all their own trees down right?

As I've delved into each of these subjects in more detail it's becoming much more interesting to understand the nuances of why civilizations collapse. Usually there's not one single event that "just ends it", there are a myriad of factors to the fall of each one. Some are common across the board, famine sucks no matter where on when you live on the earth. Some are unique to each of the civilizations. I've tried to apply the main themes of these episodes into something that might apply to what we work on every day.

I'm not going to go over each point since that's an exercise for the listener to make and apply to their own perception of what they're working on, but the main tenet I have learned is that ecosystems are fragile, even when they're robust. Many of these civilizations had problems which were fixable. However a combination of problems with bad timing can lead to utter ruin. Especially so when there's something competing with you waiting to pounce when you're weakest.

This is what I think about when I think about technical debt in our projects.

We can mostly handle our software being complex. We can mostly handle not having enough people. We can mostly handle lack of resources. We can mostly handle our tech debt. And so on. But a combination of challenges has proven to be lethal to communities that in some cases had been successful for hundreds or thousands of years. This is a long about way to say that sustainability of your project is probably the most important investment we can make.

This isn't meant to be doom and gloom, afterall, many of these civilizations were replaced by others over time, and generally speaking we've advanced as a species by building on the past. There's been a lot of pain and suffering along the way, I found that part to be the most interesting. There's always a new ecosystem to fill in the niches of the failures of the past.

You probably thought I was going to make an analogy on how your big huge monolith at work is like having all this effort being put into the Pyramids when you really should be concentrating on the basics. Can't help you with that one, but I think I'm getting there, heh.

Fixing Zoom white balance in Linux

I guess one of the nice benefits of tying my note taking app to my blog is that it makes publishing my little computer snippets much more interesting.

Zoom has a weird thing that happens to me in Linux where the white balance of my camera turns purple. I can usually force it back to default by running these commands in a terminal:

   # v4l2-ctl -c white_balance_temperature_auto=0
   # v4l2-ctl -c white_balance_temperature=4000

Getting back on the long-form horse

I love Standard Notes, and it seems that they've added support to spit out to a hosted blog right from the UI. I came to know standard-notes via @popey and since I'm on lots of platforms having a linux snap + Android + Windows + Web in an OSS app with built-in encryption is just the perfect match for me.

And the pricing to make the project sustainable is interesting. They have the usual monthly and yearly plans, but they give you an option for a 5-year plan that is $149 every five years option.

The 5-year plan is our take on a sustainable, long term plan. It provides you with all of Extended’s benefits for a long time to come, and also helps support Standard Notes in developing a secure application, both technically and financially.

Ok, that sounds good to me, I'm in.

I can just write in native markdown and then not worry about hosting. And to be honest, while I do love hugo for work, I just couldn't be bothered to care enough about my personal blog to set it up and do all that. Shoutout to forestry.io though, you might want to check that out.

So I'm going to give this a shot., a simple small app that holds all my notes anyway so I'm always in here and it's just another tag. The final content is pretty lightweight too, not as lightweight as the penultimate plaintext site but I'm digging the clean default.

Hopefully this will lead to more long form content instead of snarky twitter comments, but I can't promise anything.

How to video conference without people hating you

While video conferencing has been a real boon to productivity there are still lots of things that can go wrong during a conference video call.

There are some things that are just plain out of your control, but there are some things that you can control. So, after doing these for the past 15 years or so, here are some tips if you're just getting into remote work and want to do a better job. Of course I have been guilty of all of these. :D

Stuff to have

  • Get a Microphone - Other than my desk, chair, and good monitors, this is the number one upgrade you can do. Sound is one of those things that can immediately change the quality of your call. I use a Blue Yeti due to the simplicity of using USB audio, and having a hardware mute button. This way I know for sure I am muted when there's a blinking red light in my face. Learn to use your microphone. On my Yeti you speak across the microphone and it has settings for where to pick up the noise from. Adjust these so it sounds correct. Get a pop filter.

  • A Video Camera - Notice I put this second. I can get over a crappy image if the audio is good. The Logitech C-900 series has been my long go to standard for this. It also has dual noise cancelling microphones, which are great for backup (if you're on a trip), but I will always default to the dedicated microphone.

  • A decent set of headphones - Personal preference. I like open back ones for the home but pack a noise cancelling set for when I am on the road.

What about an integrated headset and microphone? This totally depends on the type. I tend to prefer the full sound of a real microphone but the boom mics on some of these headsets are quite good. If you have awesome heaphones already you can add a modmic to turn them into headsets. I find that even the most budget dedicated headsets sound better than earbud microphones.

Stuff to get rid of

  • Your shitty earbuds - Seriously. If you're going to be a remote worker invest in respecting your coworker's time. A full hour long design session with you holding up a junky earbud microphone up to your face is not awesome for anybody. They're fine if you want to use them for listening, but don't use the mic.

  • "But this iPhone was $1000, my earbud mic is fine." Nope. You sound like crap.

Garbage Habits we all hate

If you're just dialing in to listen then most of these won't apply to you, however ...

  • Always join on muted audio. If the platform you use doesn't do this by default find this setting and enable it.

  • If you don't have anything to say at that moment, MUTE. Even if you are just sitting there you're adding ambient noise to the meeting, and when it gets over 10 people this really, really, sucks. This is why I love having a physical mute button, you can always be sure at a glance without digging into settings. I've also used a USB switch pedal for mute with limited success.

  • Jumping in from a coffee shop, your work's cafeteria, or any other place where there's noise is not cool. And if you work in an open office all you're doing is broadcasting to everyone else in the room that your place of employment doesn't take developer productivity seriously.

  • "Oh I will use my external speakers and built in microphone and adjust the levels and it will sound fine." - No, it won't, you sound like a hot mess, put on your headset and use the microphone.

  • If you use your built-in microphone on your laptop and you start typing while you are talking EVERYBODY WILL HATE YOU.

  • If you're going to dial in from the back on an Uber or from a bus, and you have to talk or present, just don't come. Ask someone to run the meeting for you or reschedule. You're just wasting everyone's time if you think we want to hear you sprinting down a terminal to catch your flight.

  • And if you're that person sitting on the plane in the meeting and people have to hear whatever thing you're working on, they will hate you for the entire flight.

Treat video conferencing like you do everything else at work

We invest in our computers and our developer tools, think seriously about putting your video conferencing footprint in that namespace. There is a good chance no one will notice that you always sound good, but it's one of those background quality things that just makes everyone more productive. Besides, think of the money you've spent on your laptop and everything else to make you better at work, better audio gear is a good investment.

In the real world, sometimes you just have to travel and you find yourself stuck on a laptop on hotel wireless in a corner trying to your job, but I strive to make that situation the exception!

Kubernetes Ask Me Anything on Reddit

A bunch of Kubernetes developers are doing an Ask Me Anything today on Reddit if you're interested in asking any questions, hope to see you there!

Updating your CNCF Developer Affiliation

The Cloud Native Computing Foundation uses gitdm to figue out who is contributing and from where. This is used to generate reports and so forth.

There is a huge text file where they are mapping email addresses used and affiliation. It probably doesn't hurt to check your entry, for example, here's mine:

Jorge O. Castro*: jorge.castro!gmail.com
Lemon Ice
Lemon Location City until 2017-05-01
Lemon Travel Smart Vacation Club until 2015-06-01

Whoa? What? This is what a corrected entry looks like, as you can see it takes into account where you used to work for correctness:

Jorge O. Castro*: jorge!heptio.com, jorge!ubuntu.com, jorge.castro!gmail.com
Canonical until 2017-03-31

As an aside this also really makes a nice rolodex for looking up people. :D

Thoughts on the first Kubernetes Steering Election

The first steering committee election for Kubernetes is now over.  Congratulations to Aaron Crickenberger, Derek Carr, Michelle Noorali, Phillip Wittrock, Quinton Hoole and Timothy St. Clair, who will be joining the newly formed Kubernetes Steering Committe.

If you're unfamiliar with what the SC does, you can check out their charter and backlog. I was fortunate to work alongside Paris Pittman on executing this election, hopefully the first of many "PB&J Productions".

To give you some backstory on this, the Kubernetes community has been bootstrapping it's governance over the past few years, and executing a proper election as stated in the charter was an important first step. Therefore it was critical for us to run an open election correctly.

Thankfully we can stand on the shoulders of giants. OpenStack and Debian are just two examples of projects with well formed processes that have stood the test of time. We then produced a voter's guide to give people a place where they could find all the information they needed and the candidates a spot to fill in their platform statements.

This morning I submitted a pull request with our election notes and steps so that we can start building our institutional knowledge on the process, and of course, to share with whomever is interested.

Also, a big shout out to Cornell University for providing CIVS as a public service.