Recent Favourite Reads - Newsletter 11.09.2023-15.10.2023

Main

  1. JEP 457: Class-File API (Preview)

    12 min

    with discussion session

    50 min

    authored by Brian Goetz;

    Finally, a new standard API in the field of class files manipulation. From the JEP, it looks like this will be a full-fledged replacement for ASM in many use cases and outside the JDK internals: it is no less low-level, but at the same time, the API is more functional and developer-friendly. As an additional plus, it seems that after broader adoption, we can expect faster updates to new versions of Java since updating some libraries will no longer be such a complete hell for their maintainers.

  2. Scaling Kafka to Support PayPal’s Data Growth

    12 min

    ;
  3. Zero trust with Kafka

    8 min

    ;
  4. Adding runtime benchmarks to the Rust compiler benchmark suite

    20 min

    ;
  5. Java 21's pattern matching could actually convince me to touch Java again

    25 min

    ;

    I can’t help but recommend this article as a fairly comprehensive overview and application of new features of the latest versions of Java with a light touch on type theory, examples and an explanation of why it is needed. If you only read one article on this topic, it’d be better this one.

  6. JDK 21 Release Notes

    30 min

    ;
  7. GraalVM for JDK 21 is here! 🚀

    7 min

    ;
  8. GitHub Actions could be so much better

    11 min

    ;
  9. Text editing on mobile: the invisible problem

    20 min

    with comments;

    While reading, I felt something akin to learned helplessness: it’s true, I’ve never particularly liked typing on a smartphone, but at the same time, I have not even questioned myself about what exactly is wrong. Thus, this publication provides a walkthrough of why mobile typing has its current form, what problems it creates and how we can address them. The authors are incredibly right that such an overhaul of mobile typing is very unlikely soon. Still, the article itself demonstrates that there are people who are conducting analysis and trying to propose something in this area.

  10. UK air traffic control meltdown

    30 min

    ;
  11. How CPython Implements and Uses Bloom Filters for String Processing

    10 min

    ;
  12. 11 Principles for building and scaling feature flag systems

    8 min

    ;
  13. 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs

    45 min

    ;
  14. Introducing Apache Flink on Confluent Cloud

    8 min

    ;
  15. Load Balancing

    10 min

    ;
  16. Lessons from debugging a tricky direct memory leak

    7 min

    ;
  17. Level-up your Java Debugging Skills with on-demand Debugging

    6 min

    ;
  18. Using JLink to create smaller Docker images for your Spring Boot Java application

    6 min

    ;
  19. The Absolute Minimum Every Software Developer Must Know About Unicode in 2023

    14 min

    ;
  20. Failure Mitigation for Microservices: An Intro to Aperture

    12 min

    ;
  21. Discussion: New Project: Babylon

    3 min

    ;
  22. Problem Details for HTTP APIs - RFC 7807 is dead, long live RFC 9457

    9 min

    ;

    In general, the changes regarding the deprecated RFC 7807 are perceived by me as rather minor, except for introducing the new registry of common problem type URIs. At the time of publication, there are only three entries in this registry, and I'm not sure whether it will remain in limited use, replenishing mainly from other RFCs, or, on the contrary, it may acquire too many common errors, making it difficult to pick the right one for a particular case.

  23. We built the fastest CI in the world. It failed. Here’s what we learned

    18 min

    ;
  24. The joys of maintenance programming

    6 min

    ;
  25. In a git repository, where do your files live?

    7 min

    ;
  26. Draggable objects

    20 min

    ;
  27. Python 3.12.0 Release Notes

    6 min

    ;
  28. Python 3.12.0 from a supply chain security perspective

    5 min

    ;
  29. Simple data pipeline powertools: sqlite, pandas, gnuplot and friends

    6 min

    ;
  30. WASI support in Go

    5 min

    ;
  31. How Agoda manages 1.8 trillion Events per day on Kafka

    10 min

    ;
  32. Unpacking elixir: resilience

    7 min

    ;
  33. Functional Transformation of Immutable Objects

    10 min

    ;
  34. Tracing: structured logging, but better in every way

    10 min

    with comments;
  35. Thoughtworks Technology Radar: Volume 29

    20 min

    ;
  36. Subtraction Is Functionally Complete

    10 min

    ;
  37. Stop Using char in Java. And Code Points

    8 min

    ;
  38. Curved Paths

    15 min

    ;
  39. Your Organization Probably Doesn't Want To Improve Things

    8 min

    with comments;

Misc

  1. Why Characters Write: First-person narrators and the stories they tell

    9 min

    ;
  2. "Computer says guilty" - an introduction to the evidential presumption that computers are operating correctly

    6 min

    ;
  3. The End of the Subscription Era is Coming

    10 min

    ;
  4. The Tyranny of the Marginal User

    5 min

    ;
  5. What the Science Actually Says About Unconscious Decision Making

    22 min

    ;
  6. Flat origami is Turing Complete

    1 hour

    with related blog post

    8 min

    ;
  7. Words that deserve wider use

    1h 30 min

    ;

Interesting projects

  1. Linux kernel map;
  2. Building an economy simulator from scratch;
  3. Typst: A new markup-based typesetting system that is powerful and easy to learn (latex successor);
  4. Amazon Ion Specification;
  5. Paisa – Personal Finance Manager;
  6. JPL Open Source Rover Project;
  7. ClickHouse Keeper: A ZooKeeper alternative written in C++;
  8. java-stacksrc: Decorates stack traces with source code snippets.;
  9. pgroll - Zero-downtime, reversible, schema migrations for Postgres with introduction blog post;
  10. Aperture: an observability-driven load management platform designed for classifying, scheduling, and rate-limiting API traffic in cloud applications;
  11. AlmasB/FXGL: Java / JavaFX / Kotlin Game Library (Engine);
  12. Find my cat: open-source Cat Tracker;
  13. Calculate the difference and intersection of any two regexes;
  14. OpenMoji: Open source emojis for designers, developers and everyone else;
  15. Shrinkflation;
  16. HyperDX: An open source observability platform unifying session replays, logs, metrics, traces and errors;
  17. Typesense: Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch;
  18. Catala is a domain-specific language for deriving faithful-by-construction algorithms from legislative texts;
  19. Dictionary of Algorithms and Data Structures;
  20. Manuals Showcase: A showcase of unusual or interesting manuals;
  21. Whole Earth Index: A nearly-complete archive of Whole Earth publications;
  22. Comcast: Simulating shitty network connections, so you can build better systems;
  23. toxiproxy: A TCP proxy to simulate network and system conditions for chaos and resiliency testing;
  24. scalar: Beautiful API references from Swagger/OpenAPI files;
  25. fury: A blazing fast multi-language serialization framework powered by jit and zero-copy

    There is a benchmark comparison of JVM serialization libraries including fury, protobuf, thrift, kryo and others.

Books