Here are a couple of useful Bash resources that came upon my radar recently.
First one is Julia Evans’ blog post “Bash scripting quirks & safety tips“. It’s quite introductory, but is has a few useful tips. The one in particular I
either didn’t know about or completely forgot mentioned recently is on how to make Bash scripts safer by using “set -e“, “set -u“, and “set -o pipefail“. These go well with another post of mine not so long ago.
The second is Sam Rowe’s blog post “Advancing in the Bash Shell“, which I found useful for all kinds of navigation and variable expansion in Bash command line. Especially the bits on searching and reusing the history.
One of the recent Julia’s Drawings exposes how fast computers really are. See this page for more examples of how much a computer can do in just one second.
I came across this handy Amazon AWS manual for the maximum transfer unit (MTU) configuration for EC2 instances. This is not something one needs every day, but, I’m sure, when I need it, I’ll otherwise be spending hours trying to find it.
The maximum transmission unit (MTU) of a network connection is the size, in bytes, of the largest permissible packet that can be passed over the connection. The larger the MTU of a connection, the more data that can be passed in a single packet. Ethernet packets consist of the frame, or the actual data you are sending, and the network overhead information that surrounds it.
Ethernet frames can come in different formats, and the most common format is the standard Ethernet v2 frame format. It supports 1500 MTU, which is the largest Ethernet packet size supported over most of the Internet. The maximum supported MTU for an instance depends on its instance type. All Amazon EC2 instance types support 1500 MTU, and many current instance sizes support 9001 MTU, or jumbo frames.
The document goes into the detail of how to set, check and troubleshoot MTU on the EC2 instances, which instance types support jumbo frames, when you should and shouldn’t change the MTU, etc.
The following instances support jumbo frames:
- Compute optimized: C3, C4, CC2
- General purpose: M3, M4, T2
- Accelerated computing: CG1, G2, P2
- Memory optimized: CR1, R3, R4, X1
- Storage optimized: D2, HI1, HS1, I2
As always, Julia Evans has got you covered on the basics of networking and the MTU.
Julia Evans does it again. If you ever wanted to understand SSL certificates, her post “Dissecting an SSL certificate” is for you. This part made me smile:
Picking the right settings for your SSL certificates and SSL configuration on your webserver is confusing. As far as I understand it there are about 3 billion settings. Here is an example of an SSL Labs result for mail.google.com. There is all this stuff like
OLD_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 on that page (for real, that is a real thing.). I’m happy there are tools like SSL Labs that help mortals make sense of all of it.
Julia Evans has a nice blog post about choosing the “best software”. Here is my favorite part:
So, let’s talk about another way to think about making decisions than “what is the Best Thing in this situation”.
I run an event series called “lightning talks and pie”. At the most recent one, Ines Sombra gave a talk about capacity planning. In it, she said that there are 3 reasons you might want to change something about your system:
- It’s too expensive
- It’s too difficult to operate (humans spend a ton of time worrying about it)
- It’s not doing the job it’s supposed to
I find these 3 criteria a lot easier to reason about than the “Choose The Best Thing” framework.
She provides some examples on how to apply this thinking, as well as how to deal with tradeoffs and limitations.
Julia Evans has this amazing list of things to learn about Linux. I think, it doesn’t matter how new or experienced you are with the operating system, you’ll find a few points in this list that you either know nothing about or know very little.
Personally, I’ve been using and administrating Linux systems for almost two decades now, and my own knowledge of the things on that list is either very limited or not existing. Sure, I know about pipes and signals, but even with basic things like permissions there are some tricky questions that I’m not sure I can get right on the first go.
Some of the topics mentioned are simple and straight-forward and will only need a few minutes or a couple of hours to get up to speed with. Others – are huge areas which might take years, if not decades (like networking, for example).
I look forward to Julia’s drawings covering some of these.
Julia Evans, who blogs about her programming endeavors, now also draws simple, note-like sketches on a variety of the computer and programming related subjects. Those are great as kick memory refreshers or reminders for “I wanted to learn more about that” kind of things. Here’s her take on pipes, for example:
Worth an RSS subscription!