A Practitioner's Guide to Wide Events Nov. 19, 2024, 9:48 a.m.

Adopting Wide Event-style instrumentation has been one of the highest-leverage changes I’ve made in my engineering career. The feedback loop on all my changes tightened and debugging systems became so much easier.

observability

Why TCP needs 3 handshakes Oct. 3, 2024, 9:52 a.m.

Below is the classic TCP state machine diagram, which encompasses all states of a TCP connection from its initial establishment to its final termination throughout its entire lifecycle.

diagram networking

How I Designed a Dieter Rams inspired iPhone Dock Sept. 24, 2024, 9:39 a.m.

I'm still astonished by what you can do with CAD software and a 3D printer at home. Even though I'm a software engineer, it allows me to experiment with other arts and skills in my spare time.

3d

Salary Negotiation: Make More Money, Be More Valued March 4, 2024, 9:02 a.m.

Your salary negotiation — which routinely takes less than 5 minutes to conclude — has an outsized influence on what your compensation is.  Compensation can include money or things which are more-or-less fungible replacements for money, but it can also include interesting things which you value from “more time with your family” to “opportunities to do tasks which you find fulfilling” to “perks which make a meaningful difference in your day-to-day quality of life.”  That makes your negotiation five very important minutes.  You generally can’t do a totally bang up job on any five minutes of work this year and have your boss give you an extra $5,000.  You can trivially pick up $5,000 in salary negotiations just by sucking less.

work

Athena Provisioned Capacity Review Feb. 20, 2024, 12:26 p.m.

Effectively, provisioned capacity turns Athena from a serverless analytics engine to managed infrastructure that you have to plan capacity around. What makes this worse is the lack of visibility when it comes to mapping DPUs to workloads.

athena aws

68K Macintosh software collection Jan. 25, 2024, 1:35 p.m.

Free downloads provided by the preterhuman.net archive.

mac

Hacker News Blogroll Dec. 19, 2023, 11:28 a.m.

This site is a blogroll based on revskill's Ask HN thread "Could you share your personal blog here?"

blogs

How To Debug Distroless And Slim Containers Nov. 22, 2023, 9:32 p.m.

Slim containers are faster (less stuff to move around) and more secure (fewer places for vulnerabilities to sneak in). However, these benefits of slim containers come at a price - such containers lack (the much-needed at times) exploration and debugging tools. It might be quite challenging to tap into a container that was built from a distroless or slim base image or was minified using DockerSlim or alike. Over the years, I've learned a few tricks how to troubleshoot slim containers, and it's time for me to share.

docker

PowerShell: Advanced Function Parameter Attributes Aug. 4, 2023, 5:13 p.m.

Parameter attributes allow you to control the features/function of a parameter such as making a specific parameter mandatory.

powershell

Jenkins Pipelines - Serializing Local Variables June 19, 2023, 9:06 a.m.

Since pipelines must survive Jenkins restarts, the state of the running program is periodically saved to disk so it can be resumed later. The “state” includes the whole control flow including: local variables, positions in loops, and so on. As such: any variable values used in your program should be numbers, strings, or other serializable types. If you must use a nonserializable value temporarily, either:

Discard it before doing anything else:

def matcher = readFile('pom.xml') =~ '<version>(.+)</version>'
if (matcher) {
  echo "Building version ${matcher[0][1]}"
}
matcher = null

Isolate use of nonserializable state inside a method marked with the annotation @NonCPS:

@NonCPS
def version(text) {
  def matcher = text =~ '<version>(.+)</version>'
  matcher ? matcher[0][1] : null
}
jenkins

Create custom macOS menu bar apps using Hammerspoon April 26, 2023, 9:47 a.m.

Hammerspoon of course provides a setIcon method on menubar to help us provide an image icon, so we’ll just grab a Slack icon from the web and—whoa, what’s this???

imageData … can be one of the following …
– A string beginning with ASCII: which signifies that the rest of the string is interpreted as a special form of ASCII diagram, which will be rendered to an image and used as the icon.

Ok, drop everything, we’re doing this. Check out this craziness: With simple ASCII character progression, we can define vector art!

tutorial hammerspoon

Systems design explains the world: volume 1 April 17, 2023, 9:53 a.m.

Back in university, students used to tease the Systems Design Engineers, calling it "boxes and arrows" engineering. Not real engineering, you see, since it didn't touch anything tangible, like buildings, motors, hydrochloric acid, or, uh, electrons.

I don't think any of us really understood what boxes-and-arrows engineering really was back then, but luckily for you, now I'm old. Let me tell you some stories.

reading

Folklore.org: The Original Macintosh April 15, 2023, 3:22 p.m.

Anecdotes about the development of Apple's original Macintosh, and the people who made it.

reading apple mac

Squid Web Cache wiki April 15, 2023, 3:21 p.m.

This wiki is dedicated to hosting Squid Web Cache documentation, including the FAQ, KnowledgeBase articles, ConfigExamples, and the development RoadMap

documentation squid

How Exactly Does ProxySettingsPerUser Work? March 17, 2023, 10:45 a.m.

You may occasionally in your career have had a want or need to set Windows proxy settings for every account on a machine regardless of who is logged in. There are a few common ways to do this.

windows proxy

Paul Ford: What Is Code? March 8, 2023, 1:37 p.m.

We are here because the editor of this magazine asked me, “Can you tell me what code is?”

reading interesting interactive

Shoot The F#cking Deer March 3, 2023, 4:33 p.m.

You’re worried that shooting the deer ends the scene. But it’s actually when you cross that threshold where all the creativity is. So many new options open up.

inspiration

How to recover lost files added to Git but not committed March 3, 2023, 4:32 p.m.

If you lose something [in Git], don't panic. There's a good chance that you can find someone who will be able to hunt it down again.

git

Git from the Bottom Up March 3, 2023, 4:31 p.m.

Welcome to the world of Git. I hope this document will help to advance your understanding of this powerful content tracking system, and reveal a bit of the simplicity underlying it — however dizzying its array of options may seem from the outside.

git

Git from the inside out March 3, 2023, 4:31 p.m.

This essay explains how Git works. It assumes you understand Git well enough to use it to version control your projects.

git