Computer science recommendations

Lockdown Apps

Found via Hacker News – free and open source tracker and ad blocker, works on-device using VPN hooks. That means that it’ll block in apps as well as Safari. I’m trying it now.
Note – they pay their bills with the subscription-billed VPN but you can decline that and just use the blocker. That’s what I’m trying.

For iOS devices and Mac only.

Computer science recommendations

Auto build your code on save with entr

So I’m working on a project at work where I want to rebuild my code whenever I save a source code file. Today I found the tool ‘entr’ and it’s a great thing to learn about. (I should totally send this to Julia Evans!)

All I needed to do is run

ls *.src | entr make

And that’s it. It’ll re-run make every time I save from the editor. Simple, helpful, open source.

Computer science Random

Ten gigabit home networking

This will be a series of posts. I upgraded my NAS to a model with dual 10G ports, and the compute server already had 10G so I had an excuse.

Old setup – 4-bay Synology DS416play and a USB3 drive caddy for a temporary backup solution. TP-Link 16 port switch, all ports in use.

After some searching, I found this Mikrotik switch for $142 on Amazon. 28 ports of 1G plus two 10G ports. Most switches with 10g are either $100 per port or have fans – this one is 19 watts, no fans, and cheap. Note the “sfp+” notation – it means you need more pricy bits to finish the job, but you can use other media like fiber optic links. So total cost of almost 2x.

Switch in and waiting for NAS backup to complete:

Power usage went down by 20 or 30 watts. Always something I pay close attention to. Here’s semi-final:

Next week I get the SFP+ transceivers and rewire a bit. Trunked dual 1G links for now. Power usage is back to where it was, maybe down a watt or two. The new switch is only 19W (the old was around 30) but the larger NAS uses more power, so even under heavy load with 5 disks going.

Computer science Uncategorized

Lying with averages


We can do better than percentile latencies |, this amazing animation:


Every one of those has the same mean and standard deviation in both X and Y!

Read the linked paper for details, but this is by far the best visual education I’ve ever seen for why you absolutely cannot trust summary statistics.

Computer science Uncategorized

Events versus logs for serverless

Found via Four short links (side note: this feed should be on your must-read list. Consistently superb.), a fascinating Twitter thread from Charity Majors:

In distributed systems, the hardest part is often not finding the bug in your code, but tracking down which component is actually the source of the problem so you know what code to look at. Or finding the requests that exhibit the bug, and deducing what they all have in common.

The most effective way to structure your instrumentation, so you get the maximum bang for your buck, is to emit a single arbitrarily wide event per request per service hop. We’re talking wiiiide. We usually see 200-500 dimensions in a mature app. But just one write.

🎀 Any and all unique identifying bits you can get your paws on: UUID, request ID, shopping cart ID, any other ID <<- HIGHEST VALUE DETAILS

🎀 Any other useful application context, starting with service name

🎀 Possibly system resource state at point in time e.g. /proc/net/ipv4

The entire thread is worth at least two read-throughs. I’m still pondering.

For me, the current team is more about structured logs into Splunk and extracting metrics and call geometry from UUID and spans, so the idea of a 200-500 element event per call is new, compelling and … feels correct. Like, I need to figure out how to start doing this awesome new thing here too. Especially for serverless, where you can’t log into the server and poke around; all you have are logs and/or events.

Computer science Uncategorized

Select Star SQL

This is an interactive book which aims to be the best place on the internet for learning SQL. It is free of charge, free of ads and doesn’t require registration or downloads. It helps you learn by running queries against a real-world dataset to complete projects of consequence. It is not a mere reference page — it conveys a mental model for writing SQL.

I expect little to no coding knowledge. Each chapter is designed to take about 30 minutes. As more of the world’s data is stored in databases, I expect that this time will pay rich dividends!

Found this on Hacker News yesterday, a beautiful, interactive and free SQL course. Send this to your junior engineers! I’m passable at SQL, and I had a good time working through some of the problems. It’s well structured and uses a very … unusual… data set.

via Select Star SQL

Computer science

New details released on Huawei’s intent-based network

Intent-Driven Network software. CampusInsight 2.0 is an upgrade to Huawei’s network insight engine and should be considered the intelligence that powers the intent. Network and application data is collected and turned into telemetry information in real time. Machine learning is then applied to monitor the network and predict problems. The network insight engine uses a digital twin of the network, so analysis can be applied and changes tested without affecting the production network. A digital twin is a virtual copy of the original item and allows companies to conduct real-time simulations

Fascinating. I usually see ‘intent’ used to describe ‘extracting meaning from customer input’, so this is a new usage. I’m used to deterministic networking protocols like BGP, so the idea of ML analytics and prediction makes me both interested and wary.

Make that ‘very interested and very wary.’ The prediction system seems like a way to address the worries though.

via New details released on Huawei’s intent-based network

Computer science

Peeking Behind the Curtains of Serverless Platforms

As baselines, the median warmstart latency in AWS, Google, and Azure were about 25, 79 and 320 ms (respectively) across all invocations.

If, like me, you are using AWS Lambda or its competitors, this paper by Liang Wang et al is worth a careful read. Lots of well-done measurements of performance, isolation, instance lifetimes and more.

Functions as a service behave differently than the servers we’re used to, so be sure and understand your platform and how it behaves!

via (PDF)