A Java Geek weekly 52

Monkey-patching in Java. Sanding UI. Todd’s Guide to Creating Video Tutorials. Tuple shuffling: Postgres CTEs for Moving and Deleting Table Data. Programming Languages that Time Forgot: A Look at Lesser-Known Gems. I’ve been coding in Python for 9 years now. If I were to start over today, here’s a roadmap. 7 New Typing Features in Python 3.13. Python Protocols: Leveraging Structural Subtyping. Tracking supermarket prices with playwright.

Monkey-patching in Java

Monkey patching is a technique used to dynamically update the behavior of a piece of code at run-time. A monkey patch (also spelled monkey-patch, MonkeyPatch) is a way to extend or modify the runtime code of dynamic languages (e.g. Smalltalk, JavaScript, Objective-C, Ruby, Perl, Python, Groovy, etc.) without altering the original source code.

Sanding UI

Interesting that the author mentions that "CSS is awesome" because "there’s probably a million different ways to solve this problem". IMHO, that’s exactly the opposite of awesome.

Todd’s Guide to Creating Video Tutorials

And now, for something completely different! Yet, recording videos is a recurrent activity for Developer Advocates.

Tuple shuffling: Postgres CTEs for Moving and Deleting Table Data

I only recently became aware of CTE. I believe that they unlock a lot of power in your SQL-fu. The post demoes a couple of things that you can achieve with them in a single transaction.

Programming Languages that Time Forgot: A Look at Lesser-Known Gems

Not a very deep article but a nostalgic trip down memory lane. Basic was indeed my first language.

I’ve been coding in Python for 9 years now. If I were to start over today, here’s a roadmap
  1. Free Code Camp
  2. CS50p: Harvard University
  3. Corey Schafer, arguably the best python channel on YouTube
  4. Project based learning
7 New Typing Features in Python 3.13

TL;DR:

  • ReadOnly type to mark a TypedDict item as read-only
  • warnings.deprecated() decorator for marking deprecations
  • TypeIs to instruct a type checker on how to narrow a type
  • Two more Protocol relative methods: get_protocol_members() to return members of a Protocol and is_protocol() to check if an object is a Protocol or not.
  • Default type supports and a NoDefault object
Python Protocols: Leveraging Structural Subtyping

After reading the previous link, I searched what is a Protocol in Python. Now, I know and if you read the post, you will as well.

Tracking supermarket prices with playwright

I’m collecting daily metrics on my different social media accounts, but some don’t have an API for it, e.g., LinkedIn. I should check if I can use playwright to replace manual boring scraping.

The post also mentions tailscale. It can help me with Reddit: Reddit allows me calling its API from my laptop but not from GitHub Actions workers that run (probably) on Azure.

Things I Wished More Developers Knew About Databases

A classic post that deserves regular reading.

A Taxonomy of Tech Debt

I love taxonomy! This one is quite interesting as it comes from the gaming industry.