Komiser – AWS Environment Inspector

Komiser is a really nice tool that provides an overview of your Amazon AWS setup. After a super simple install, you’ll have a web console which visualizes your AWS regions and the resources you run in them. It’s great for getting a quick overview, as well as for some analyses of billing, security and utilization issues.

Ansible + AWS + GraphViz = aws-securitygroup-grapher


aws-securitygroup-grapher is a handy tool that can generate a variety of graphs visualizing Amazon Security Groups. It is implemented as an Ansible role and uses GraphViz to produce the results.

This is particularly useful when you need to get familiar with a complex VPC setup by someone else, or when you want to review the results of an automated setup.

Packets-per-second limits in EC2

Packets-per-second limits in EC2” is an interesting dive into network limits on the Amazon EC2. Even if you aren’t hitting any limits yet, this article provides plenty of useful information, including benchmarking tools and quick reference links for Enhanced Networking.

The conclusion of the article is:

By running these experiments, we determined that each EC2 instance type has a packet-per-second budget. Surprisingly, this budget goes toward the total of incoming and outgoing packets. Even more surprisingly, the same budget gets split between multiple network interfaces, with some additional performance penalty. This last result informs against using multiple network interfaces when tuning the system for higher networking performance.
The maximum budget for m5.metal and m5.24xlarge is 2.2M packets per second. Given that each HTTP transaction takes at least four packets, we can translate this to a maximum of 550k requests per second on the largest m5 instance with Enhanced Networking enabled.

Why software projects take longer than you think – a statistical model

Why software projects take longer than you think – a statistical model” is an interesting take on the problem of bad estimations in software projects. I’m not that great with math, but even then the article is very interesting. And there is a lot that I agree with.

Here’s a quote for those of you who couldn’t make it through:

Why software tasks always take longer than you think

Assuming this dataset is representative of software development (questionable!), we can infer some more numbers. We have the parameters for the t-distribution, so we can compute the mean time it takes to complete a task, without knowing the σ for that task is.


While the median blowup factor imputed from this fit is 1x (as before), the 99% percentile blowup factor is 32x, but if you go to 99.99% percentile, it’s a whopping 55 million! One (hand wavy) interpretation is that some tasks end up being essentially impossible to do. In fact, these extreme edge cases have such an outsize impact on the mean, that the mean blowup factor of any task ends up being infinite. This is pretty bad news for people trying to hit deadlines!

Intermediate Vim

Intermediate Vim is a nice collection of Vim tips and tricks, which are aimed at somebody who is already familiar with Vim. (There is of course no single definition of what’s advanced, intermediate or introductory, so we’ll leave that argument out.) But the article is well worth the read, even if you already know all of the mentioned commands. A refresher is always welcome.

Fedora 30

Fedora 30 has been released a few days ago. In the long list of changes, the most interesting to me are:

I’ve already upgraded my laptop to this version and everything seems to work as expected. The upgrade from Fedora 29 to Fedora 30 is easy:

# Install all the latest updates
dnf upgrade --refresh

# Install DNF plugin for system upgrades
dnf install dnf-plugin-system-upgrade

# Download all the necessary packages for Fedora 30
dnf system-upgrade download --releasever=30

# Reboot and start the upgrade of packages
dnf system-upgrade reboot

# Cleanup after successful upgrade
dnf system-upgrade clean

If this is not your first upgrade on the machine, it might also be a good idea to cleanup some of the installed packages BEFORE the upgrade, so that the process goes faster, skipping unnecessary downloads and upgrades. Here are a few suggestions:

# List all installed RPMs by size
rpm -qa --queryformat '%{size} %{name}\n' | sort -rn | less

# List all packages from earlier Fedora releases
rpm -qa | grep -i fc28

996.ICU

There has been some noise in the mass media about the 996.ICU (official website) recently. That’s good, but I think we can do better. So, spread the word!

Here are a few bits to get you started:

The name 996.ICU refers to “Work by ‘996’, sick in ICU”, an ironic saying among Chinese developers, which means that by following the “996” work schedule, you are risking yourself getting into the ICU (Intensive Care Unit).

What is 996?
A “996” work schedule refers to an unofficial work schedule (9 a.m.–9 p.m., 6 days per week) that has been gaining popularity. Serving a company that encourages the “996” work schedule usually means working for at least 60 hours per week. Visit 996 working hour system on Wikipedia for more details.

GitHub and Microsoft works support the 996.ICU initiative, as well as many other companies and teams.

BitBucket: 10 million users

BitBucket is celebrating an important milestone – 10 million registered users. With 28 million repositories and 3.5 million build minutes every week, BitBucket is a vital tool for many teams.

I am (and have been) a member of several teams and projects, which heavily rely on BitBucket (and BitBucket pipelines) for their day-to-day operation.

Happy 10 million milestone, BitBucket! Keep it the great work!