what i’ve been reading: december+january 2021 edition
This blog post is a continuation of my ongoing experiment with collecting and summing up the best technical (with a bit of non-technical) stuff I’ve read and watched recently.
Happy reading!
1. Painting a Selfie Girl, with Maths (YouTube Video):
Inigo Quilez is a master computer graphics artist, and in this video he paints a picture of a girl taking a selfie, using only code. Even cooler, the code is available on the Shadertoy website, where you can play with it in real-time, in your browser!
2. LiFi (Product):
Is the future of wireless networking the use of light? pureLiFi is proposing the use of light modulation (aka blinking lights so fast that the human eye can’t spot them) as a solution to some of our wifi woes.
The idea seems interesting, and I really got a laugh out of their FAQ:
Q: Will LiFi work in my pocket?
A: No LiFi does not work in your pocket, unless you have a transparent suit.
3. Nonlinear increases in complexity make unification excruciating (Blog Post):
Jessica Kerr makes a really good case for not allowing the allure of the "magical all-encompassing unified platform" to limit innovation and raise maintenance costs.
A key observation is that the cost of changes to a system grows non-linearly; complexity grows way faster than value.
4. On the Metal: Kenneth Finnegan (Podcast Episode):
The On the Metal podcast has quite entertaining guests talking about their background on hardware and software design, usually with a good amount of discussion of how computing has evolved and what we can learn from it.
On this episode, Kenneth Finnegan and a few friends decided to start running their own internet service provider for the lulz, and things went really deep from there. If you’ve ever wondered how some of the elders of the internet keep the lights on, this episode is for you.
5. Java Flight Recorder will support event throttling (Erm… JIRA ticket):
This new feature will enable low-overhead always-on memory allocation tracking for Java. Previously, trying to get this information out of the JVM could lead to a lot of overhead.
(Compared to the other items, this is a bit specific, but hey, it’s pretty cool that this feature was contributed by my colleague Jaroslav Bachorík!)
6. Napkin Math (Blog Posts):
Simon Hørup Eskildsen explores how with a bit of math that fits on a napkin, one can explore problem spaces and estimate rough system performance.
It’s quite insightful to follow along, and even more interesting to try to solve the problems as well.
7. No cookie for you (Blog Post):
GitHub solved the problem of the annoying "allow cookie banners" that try to tackle us on every website.
Their great solution: They removed all tracking cookies. For all customers. Even outside the EU. That’s it. No more list of 2000+ advertisers.
Not a solution for every business, but something that should really be applauded. I’ve removed google tracking and disqus comments from the blog recently as well; good riddance.
8. Ditherpunk — The article I wish I had about monochrome image dithering (Blog Post):
Dithering is a technique for choosing and placing colors from a limited palette in such a way that our brain "sees" more colors than really are there.
For instance, there are a lot less colors being used in this screenshot of Monkey Island than may appear at first sight:
This amazing blog post introduces and explores how dithering works, going from the simplest algorithm to nicer implementations that produce better results.
9. Towards Continuous Performance Regression Testing (Blog Post):
This blog post introduces JfrUnit, a Java tool that enables unit tests to integrate with the Java Flight Recorder.
Using JfrUnit, a developer can augment tests with checks that validate how much memory was allocated, how much I/O was performed, etc.
Although I expect that too strict usage of such a toolkit can lead to a somewhat brittle test suite that can break with JDK and OS, the concept does seem quite powerful when used correctly.
10. Performance Summit London Edition II (Online Event):
This free online event gathers engineers that are working on tackling performance challenges — from building tooling to making massive systems scale.
11. Programming-Idioms Cheatsheets (Website):
This website allows you to pick one or more programming languages, and to get a cheat sheet of now to perform many common operations in those languages.
For instance — here’s a pair that I quite like: Ruby and Kotlin.
More soon! I gathered quite a few links these past couple of months :)