Show HN: Wealthfolio 2.0- Open source investment tracker. Now Mobile and Docker
wealthfolio.app
You can make PS2 games in JavaScript
jslegenddev.substack.com
Arduino published updated terms and conditions: no longer an open commons
molecularist.com
Helping Valve to Power Up Steam Devices
igalia.com
We should all be using dependency cooldowns
blog.yossarian.net
Solving Fizz Buzz with Cosines
susam.net
Building a Durable Execution Engine with SQLite
morling.dev
Shop Sans is a typeface for curved text paths
futurefonts.com
More tales about outages and numeric limits
rachelbythebay.com
FAWK: LLMs can write a language interpreter
martin.janiczek.cz
Olmo 3: Charting a path through the model flow to lead open-source AI
allenai.org
Pivot Robotics (YC W24) Is Hiring for an Industrial Automation Hardware Engineer
ycombinator.com
How/why to sweep async tasks under a Postgres table
taylor.town
It's hard to build an oscillator
lcamtuf.substack.com
EXIF orientation info in PNGs isn't used for image-orientation: from-image
bugzilla.mozilla.org
Prozac 'no better than placebo' for treating children with depression, experts
theguardian.com
Scientists now know that bees can process time, a first in insects
cnn.com
Homeschooling hits record numbers
reason.com
Brazil charges 31 people in major carbon credit fraud investigation
news.mongabay.com
The New AI Consciousness Paper
astralcodexten.com
Solving the Whole Year Puzzle with Z3
jcrowell.net
I converted a rotary phone into a meeting handset
stavros.io
The article says:
> Never Handroll Your Own Two-Phase Commit
And then buried at the end:
> A few notable features of this snippet:
> Limiting number of retries makes the code more complicated, but definitely worth it for user-facing side-effects like emails.
This isn't two-phase commit. This is lock the DB indefinitely while remote system is processing and pray we don't crash saving the transaction after it completes. That locked also eats up a database connection so your concurrency is limited by the size of your DB pool.
More importantly, if the email sends but the transaction to update the task status fails, it will try again. And again. Forever. If you're going to track retries it would have to be before you start the attempt. Otherwise the "update the attempts count" logic itself could fail and lead to more retries.
The real answer to all this is to use a provider that supports idempotency keys. Then when you can retry the action repeatedly without it actually happening again. My favorite article on this subject: https://brandur.org/idempotency-keys