- Dissecting Go Binaries
- Go: Overview of the Compiler
- Go compiler internals: adding a new statement to Go - Part 1
- Go compiler internals: adding a new statement to Go - Part 2
- Reversing GO binaries like a pro
- How a Go Program Compiles down to Machine Code
- Analyzing Golang Executables
- Go Reverse Engineering Tool Kit
- go-internals book
- [Reconstructing Program Semantics from Go Binaries](http://home.in.tum.de/
apiVersion: autoscaling/v2beta1 | |
kind: HorizontalPodAutoscaler | |
metadata: | |
name: my-hpa | |
namespace: sg-prod | |
annotations: | |
metric-config.object.istio-requests-total.prometheus/per-replica: "true" | |
metric-config.object.istio-requests-total.prometheus/query: | | |
sum(rate(istio_requests_total{reporter="destination", destination_workload="<deployment-name-here>"}[2m])) | |
spec: |
Occasionally we will deploy a virtual instance into our KVM infrastructure and realize after the fact that we need more local disk space available. This is the process we use to expand the disk image. This process assumes the following:
- You're using legacy disk partitions. The process for LVM is similar and I will describe that in another post.
- The partition you need to resize is the last partition on the disk.
This process will work with either a qcow2
or raw
disk image. For
Rank | Type | Prefix/Suffix | Length | |
---|---|---|---|---|
1 | Prefix | my+ | 2 | |
2 | Suffix | +online | 6 | |
3 | Prefix | the+ | 3 | |
4 | Suffix | +web | 3 | |
5 | Suffix | +media | 5 | |
6 | Prefix | web+ | 3 | |
7 | Suffix | +world | 5 | |
8 | Suffix | +net | 3 | |
9 | Prefix | go+ | 2 |
⚠️ Note 2023-01-21
Some things have changed since I originally wrote this in 2016. I have updated a few minor details, and the advice is still broadly the same, but there are some new Cloudflare features you can (and should) take advantage of. In particular, pay attention to Trevor Stevens' comment here from 22 January 2022, and Matt Stenson's useful caching advice. In addition, Backblaze, with whom Cloudflare are a Bandwidth Alliance partner, have published their own guide detailing how to use Cloudflare's Web Workers to cache content from B2 private buckets. That is worth reading,
2019 update: this essay has been updated on my personal site, together with a followup on how to get started
2020 update: I'm now writing a book with updated versions of all these essays and 35 other chapters!!!!
If there's a golden rule, it's this one, so I put it first. All the other rules are more or less elaborations of this rule #1.
You already know that you will never be done learning. But most people "learn in private", and lurk. They consume content without creating any themselves. Again, that's fine, but we're here to talk about being in the top quintile. What you do here is to have a habit of creating learning exhaust. Write blogs and tutorials and cheatsheets. Speak at meetups and conferences. Ask and answer things on Stackoverflow or Reddit. (Avoid the walled gardens like Slack and Discourse, they're not public). Make Youtube videos
#!/bin/bash | |
# Taken from https://medium.com/netflix-techblog/linux-performance-analysis-in-60-000-milliseconds-accc10403c55 | |
# initialize array | |
COMMANDS=('uptime') | |
# add systemctl command if it's installed | |
command -v systemctl >/dev/null && COMMANDS+=('systemctl list-units --state=failed') | |
# add more commands | |
COMMANDS+=('dmesg | tail' | |
'vmstat 1' |
<canvas id="myChart" width="400" height="100"></canvas> | |
<script src="/js/Chart.min.js"></script> | |
<script> | |
$(function () { | |
var ctx = document.getElementById("myChart").getContext("2d"); | |
// examine example_data.json for expected response data | |
var json_url = "example_data.json"; | |
// draw empty chart |