news
Programming Leftovers
-
Nicolas Fränkel ☛ Transactions and ThreadLocal in Spring
Two years ago, my friend José Paumard held the talk "Concurrent and Asynchronous Programming : Loom" at the Geneva Java User Group. In his talk, he mentioned that the Spring team would need to completely redesign their approach to transaction: his reasoning was that the transactions are implemented on top of ThreadLocal object and Loom’s virtual threads break this approach. I was intrigued because though I used Spring transactions a lot via the @Transactional annotation, I never opened thought about looking at their implementation. It made sense, because how would you propagate the context, but I wanted to make sure. In this post, I’d like to share my findings.
-
Artyom Bologov ☛ Functional Threading “Macros”
I love Common Lisp. But my dayjob is in Clojure (and TypeScript, ugh.) I can’t help but notice the convenience of threading macros.
-
Daniel Lemire ☛ std::ranges may not deliver the performance that you expect
Good engineers seek software code that is ‘simple’ in the sense that we can read and understand it quickly. But they they also look for highly performant code.
For the last 20 years, we have been offering programmers the possibility to replace conventional for loops with a more functional approach. To illustrate, suppose that you want to extract all even integers from a container and create a new container. In conventional C++, you would proceed with a loop, as follows.
-
It's FOSS ☛ How I am Using Git and Obsidian for Note Version Management [Ed: Proprietary in "It's FOSS"]
Integrating Git with Obsidian is a great way of syncing your notes in the clown without additional cost.
-
Python
-
Woongbin Kang ☛ I Just Wanted to Update My Blog to Python 3.13. It Took a Whole Day.
This is just a quick post about what I had to do to update my blog stack (from Python 3.9 to Python 3.13). Hopefully, someone finds it helpful.
Why now: Aside from the obvious (keeping everything up to date for security reasons), this blog runs on AWS Lambda (I explained that setup in this post). Since Lambda requires using a supported runtime, I had to act after getting an email from AWS saying Python 3.9 is reaching end of life soon. Otherwise, I wouldn’t be able to create or update functions next year. It took me almost a full day to get everything working again. I learned a few interesting things along the way, so I figured I’d share them.
-
The New Stack ☛ A Cloud Built for Python Data Scientists, Not Infrastructure Engineers
Python’s decorators have always allowed you to extend a function’s behavior — so these statements extend the VM-defining Coiled function (that’s available after importing the Coiled library). “What we joke about internally is that our core competency is turning VMs on and off,” Rocklin said. “Once you have that technology, writing APIs around it is pretty cheap.”
Rocklin also believes that if you put a Docker push cycle into the data science work cycle, “It gums everything up. People end up not doing it.” So instead of using Docker, Coiled’s VMs copy a user’s environment.
The end result of this demo? A thousand machines that look just like the user’s original machine, “just more numerous or bigger or with GPUs, or whatever you like.”
-