Julien Roncaglia
banner
vbfox.hachyderm.io.ap.brid.gy
Julien Roncaglia
@vbfox.hachyderm.io.ap.brid.gy
Software developer 🇫🇷 🇪🇺

Currently working at Waldo 🦙, previously Zenly 🍦(Snap 👻), Virtu Financial 💵 and Microwave Vision 📶

I like programming (F#, Rust […]

[bridged from https://hachyderm.io/@vbfox on the fediverse by https://fed.brid.gy/ ]
Reposted by Julien Roncaglia
Parsing integers in C
In the standard libc API set there are multiple functions provided that do ASCII numbers to integer conversions. They are handy and easy to use, but also error-prone and quite lenient in what they accept and silently just swallow. ## atoi **atoi()** is perhaps the most common and basic one. It converts from a string to signed integer. There is also the companion **atol()** which instead converts to a long. Some problems these have include that they return 0 instead of an error, that they have no checks for under or overflow and in the atol() case there’s this challenge that _long_ has different sizes on different platforms. So neither of them can reliably be used for 64-bit numbers. They also don’t say where the number ended. Using these functions opens up your parser to not detect and handle errors or weird input. We write better and stricter parser when we avoid these functions. ## strtol This function, along with its siblings **strtoul()** and **strtoll()** etc, is more capable. They have overflow detection and they can detect errors – like if there is no digit at all to parse. However, these functions as well too happily swallow leading whitespace and they allow a + or – in front of the number. The long versions of these functions have the problem that _long_ is not universally 64-bit and the _long long_ version has the problem that it is not universally available. The overflow and underflow detection with these function is quite quirky, involves _errno_ and forces us to spend multiple extra lines of conditions on every invoke just to be sure we catch those. ## curl code I think we in the curl project as well as more or less the entire world has learned through the years that it is usually better to be strict when parsing protocols and data, rather than be lenient and try to accept many things and guess what it otherwise _maybe_ meant. As a direct result of this we make sure that curl parses and interprets data _exactly_ as that data is meant to look and we error out as soon as we detect the data to be wrong. For security and for solid functionality, providing syntactically incorrect data is not accepted. This also implies that all number parsing has to be exact, handle overflows and maximum allowed values correctly and conveniently and errors must be detected. It always supports up to 64-bit numbers. ## strparse I have previously blogged about how we have implemented our own set of parsing function in curl, and these also include number parsing. **curlx_str_number()** is the most commonly used of the ones we have created. It parses a string and stores the value in a 64-bit variable (which in curl code is always present and always 64-bit). It also has a max value argument so that it returns error if too large. And it of course also errors out on overflows etc. This function of ours does not allow any leading whitespace and certainly no prefixing pluses or minuses. If they should be allowed, the surrounding parsing code needs to explicitly allow them. The curlx_str_number function is most probably a little slower that the functions it replaces, but I don’t think the difference is huge and the convenience and the added strictness is much welcomed. We write better code and parsers this way. More secure. (curlx_str number source code) ## History As of yesterday, November 12 2025 all of those weak functions calls have been wiped out from the curl source code. The drop seen in early 2025 was when we got rid of all strtrol() variations. Yesterday we finally got rid of the last atoi() calls. libc number function call density in curl production code (Daily updated version of the graph.) ## curlx The function mentioned above uses a ‘curlx’ prefix. We use this prefix in curl code for functions that exist in libcurl source code but that be used by the curl tool as well – sharing the same code without them being offered by the libcurl API. A thing we do to reduce code duplication and share code between the library and the command line tool.
daniel.haxx.se
November 13, 2025 at 7:37 AM
Reposted by Julien Roncaglia
Today's Valve coverage continues with a new video covering hands-on impressions of Steam Frame. Lots to discuss here: the headset, the technology, the x86 to ARM translation layer and much, much more: youtu.be/TmTvmKxl20U
November 12, 2025 at 9:12 PM
Reposted by Julien Roncaglia
We went hands-on with Valve's Steam Machine and Steam Frame. Two videos in the pipeline, kicking off right now with this detailed discussion on Valve's beautiful PC/console hybrid - and the new Steam Controller: youtu.be/2rv83LgXiN0
November 12, 2025 at 6:07 PM
Steam Harware includign a full PC. Year of the Linux desktop finally ?

https://store.steampowered.com/hardware
Steam Hardware
The Steam Hardware family officially expands in early 2026.
store.steampowered.com
November 12, 2025 at 8:02 PM
Reposted by Julien Roncaglia
November 12, 2025 at 8:04 AM
Reposted by Julien Roncaglia
Je l'avais déjà plus ou moins annoncé il y a quelques semaines : je ne serai pas à Angoulême cette année. Et j'encourage à faire de même, que vous soyez auteur/trice ou si vous comptiez venir en visiteur.

De nombreux médias ont expliqué la situation, je les […]

[Original post on mastodon.social]
November 9, 2025 at 12:49 AM
Reposted by Julien Roncaglia
workin on a web component: `<color-input>`
October 27, 2025 at 6:09 AM
Going to @newcrafts conference today and tomorrow.

Let’s see how it changed as I’ve not been for years. Found my 2014 t-shirt for the occasion.

If anyone wants to meet ping me.
November 6, 2025 at 8:11 AM
Reposted by Julien Roncaglia
On arrive aux 950% et il reste encore 10 jours. Va-t-on arriver à 1000 ?
On a déjà 1800 livres pré-vendus, vous n'imaginez pas le nombre de 🥹, de 🧡 et de 🤯 qu'il y a sur notre group-chat.

https://www.exemplaire-editions.fr/exemplaire/projets/financement/les-nouilles-rampantes
November 5, 2025 at 2:35 PM
Reposted by Julien Roncaglia
You say FIPS, I say that's not my problem.
November 5, 2025 at 2:37 PM
I'm sad that they killed #affinity but their pricing model never looked very sane so 🤷‍♂️ at least the old versions will stay working
November 5, 2025 at 2:43 PM
Reposted by Julien Roncaglia
I wrote up some notes on two new papers on prompt injection: Agents Rule of Two (from Meta AI) and The Attacker Moves Second (from Anthropic + OpenAI = DeepMind + others) https://simonwillison.net/2025/Nov/2/new-prompt-injection-papers/
New prompt injection papers: Agents Rule of Two and The Attacker Moves Second
Two interesting new papers regarding LLM security and prompt injection came to my attention this weekend. Agents Rule of Two: A Practical Approach to AI Agent Security The first is …
simonwillison.net
November 2, 2025 at 11:11 PM
Reposted by Julien Roncaglia
J'avais dit à mes camarades des "Nouilles Rampantes" : "Vous verrez, les 2 premiers jours c'est la folie, après il ne se passe rien pendant 3 semaines, et les indécis se décident les derniers jours". Or là ça fait presque deux semaines, et on continue à monter de 10 à 30% par jour 🤯
October 28, 2025 at 6:35 AM
Reposted by Julien Roncaglia
A dev I very much respect just described vibe coding as "Pair-programming with a goldfish" and I approve and love this message. #hacklu
October 22, 2025 at 6:38 PM
npm/GitHub cross-enshitification moving strong. Now if you're not using GitHub or GitLab your publishing pipeline will be broken every 3 months. Enjoy!

https://github.blog/changelog/2025-09-29-strengthening-npm-security-important-changes-to-authentication-and-token-management/
October 15, 2025 at 9:24 PM
Reposted by Julien Roncaglia
“We’ve solved the hyperspace jump gate congestion problem by linking ships into convoys and installing antimatter energy transfer grids in the gate lanes!”

“Trains. You invented trains. Again.”

#tootfic #microfiction #poweronstorytoot
October 8, 2025 at 9:50 PM
Tried again to switch from prettier to @biomejs on work projects.

Good news is that formatting Typescript formating works well and prettier compatibility is now near perfect.

Bad news are that it doesn't yet format sass or yaml, the VSCode extension is invasive and configuration file is still […]
Original post on hachyderm.io
hachyderm.io
October 8, 2025 at 8:04 AM
Reposted by Julien Roncaglia
I remember when prettier came out and we tried it on a project, I called it "uglier" and removed it almost immediately.

Little did I know that it mostly doesn't matter _how_ you format something - what matters is that everyone uses the same style.

In that sense, prettier is goated 🐐.
Vjeux » Birth of Prettier
blog.vjeux.com
October 6, 2025 at 8:18 AM
French 🇫🇷 government announced late yesterday. Prime minister resigning this morning, so government is out.

Beautiful speedrun but WTF ?
October 6, 2025 at 8:35 AM
Reposted by Julien Roncaglia
🦀 From Rust to Reality: The Hidden Journey of fetch_max

questdb.com/blog/rust-fe...

#rustlang
September 24, 2025 at 5:26 AM
That was a very fun YouTube video about NES #emulation and especially the emulators that Nintendo and others embed in other games or the mini versions

https://youtu.be/oYjYmSniQyM?si=mVzCbZ1fFRWgAaLc
September 23, 2025 at 8:17 PM
Seem like spammers found a way to use #github notifications to #spam :blobfoxsad:

first kamino-fi/kamino-finance
now gitcoindaoor/gg

And while the accounts were removed notifications are now un-removable as there is 1 unread but you can't read it...
September 23, 2025 at 8:14 PM
Reposted by Julien Roncaglia
👋 FEEDBACK WANTED

..on this preliminary #rustlang reflection MVP design by oli: https://github.com/rust-lang/rust/pull/146923

(the PR works, you can compile it and play with it, see https://rustc-dev-guide.rust-lang.org/)
Reflection MVP by oli-obk · Pull Request #146923 · rust-lang/rust
I am opening this PR for discussion about the general design we should start out with, as there are various options (that are not too hard to transition between each other, so we should totally jus...
github.com
September 23, 2025 at 8:26 AM
Reposted by Julien Roncaglia
I know a better world is possible because I‘ve watched a preverbal 1-year-old be captivated by My Neighbour Totoro for the full 90 minutes.

Slow pace, slow scene cuts, barely a soundtrack, no addictiveness hacks. Just art.
September 21, 2025 at 5:24 PM