Reading List (2021-04-13)


⭐⭐⭐ Hotlinking and Cool Exploits (Apr 2021)

Last month I mentioned that I had a spammer who was hotlinking his spam’s pictures to my FotoForensics service. As a result, I ended up implementing a way to detect hotlinking. This allows me to prevent the pictures from appearing in their spam emails.

I started automating the detection of hotlinked images and immediately caught nearly a dozen people who were using my service as a generic image hosting site.

It’s easy enough to say that hotlinking is bad due to bandwidth theft. However, it’s also very bad from a security view; hotlinking from an application … can potentially compromise your company’s internal network.

⭐⭐⭐ Nobody Cares About the Operating System Anymore (April 2021)

We’re officially in a post-OS world. Thanks to the cloud, customers are past a point of caring what operating system their workloads run on.

⭐⭐⭐ OpenTTD Went to Steam to Solve a Hard Problem (Apr 2021)

OpenTTD, the free and open-source software recreation of Transport Tycoon Deluxe, has been a popular game for a long time, but recently something unusual happened. The team behind the project decided to release the game on Steam (still free as always) and this has changed everything. Let me explain why this matters.

⭐⭐⭐ Rust vs. Go: Why They’re Better Together (Mar 2021)

For most companies and users, Go is the right default option. Its performance is strong, Go is easy to adopt, and Go’s highly modular nature makes it particularly good for situations where requirements are changing or evolving. As your product matures, and requirements stabilize, there may be opportunities to have large wins from marginal increases in performance. In these cases, using Rust to maximize performance may well be worth the initial investment.

⭐⭐⭐ Fearless concurrency: how Clojure, Rust, Pony, Erlang and Dart let you achieve that. (Feb 2021)

Anyone who has written any concurrent code … knows that it’s really hard to get it right using the low-level tools like locks and semaphores.

I don’t intend to give an extensive analysis of each solution, or make a formal comparison between them. My intention is to simply explain the basics of each solution and how they can be used in practice so that other developers may have an easier time understanding them and deciding which solution, or language, might be better applicable to their particular problems.


⭐⭐⭐⭐ How farming plants that contain metal could help power the future (Apr 2021)

These plants suck metals from the soil at amazing rates. Scientists hope farming the plants could provide an environmentally-friendly alternative to mining. 


⭐⭐⭐⭐ The Ponzi Career (Apr 2021)

The future of work is a pyramid scheme, where every person sells his favorite person to the next person.

⭐⭐⭐ The Healing Power of JavaScript (Apr 2021)

For some of us—isolates, happy in the dark—code is therapy, an escape and a path to hope in a troubled world.

⭐⭐⭐ How to Live with Chronic Imposter Syndrome (Apr 2021)

More education, achievements, and awards don’t shoo away imposter syndrome. Here’s what might help.

⭐⭐ How I started my programming journey (April 2021)

I always had a thing for computers now that I think about it. I was maybe 5 years old when my dad bought a 386 computer with MS-DOS on it and I was blown away by it. I used to have two “games” in MS-DOS that I could play: a starship shooting bullets and floating…


⭐⭐⭐⭐ The Cicada’s Love Affair With Prime Numbers (May 2013)

cicadas with a prime-numbered life cycle had the most successful evolutionary strategy. If we discount those cicadas with life cycles of ten years or fewer (as being too close to predator life cycles), we find that the most successful emergence rates for cyber cicadas are thirteen and seventeen years—precisely what we find in the wild.

⭐⭐⭐ The Red Faced Cube

Tour the board, resting once only on every cell and ending with the cube red side up in the northeast corner.

⭐⭐ VirtOcean: Sea and ocean sounds noise generator - Nice and relaxing. Put it on a big screen somewhere.