Jean-Rémy Falleri (@jrfaller) profile picture

➜ 👨🏻‍🏫 Full Professor @ENSEIRBMATMECA ➜ 👨🏻‍🔬 Researcher @labriOfficial (Head of the Systems and Data department) ➜ 🇫🇷 Junior member @InstUnivFr

Bordeaux, France
Joined February 2009
Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)Photo by Jean-Rémy Falleri (@jrfaller)
Jean-Rémy Falleri retweeted
A new journal article: "Lessons for Interactive Theorem Proving Researchers from a Survey of Coq Users" link.springer.com/article/10… with Ana de Almeida Borges, Annalí Casanueva Artís, @jrfaller Emilio Jesús Gallego Arias, Érik Martin-Dorel, @Palmskog, yt & @Zimm_i48
2
4
552
Jean-Rémy Falleri retweeted
ISSTA 2025 is accepting paper submissions until October 31: do not miss the deadline! conf.researchr.org/track/iss… @issta_conf #ISSTA24 #ISSTA25
1
5
21
1,679
Jean-Rémy Falleri retweeted
Computer Scientist vs Computer Engineer 🖥️ smbc-comics.com/comic/2011-0…
2
25
124
7,952
Jean-Rémy Falleri retweeted
Join the #openscience movement in software engineering by reading our paper: "A Conceptual Framework and Recommendations for Open Data and Artifacts in Empirical Software Engineering" Yes, it is #openaccess dl.acm.org/doi/10.1145/36436…
1
2
203
Jean-Rémy Falleri retweeted
Hype-Driven Developers 😂
34
173
27
1,843
180,650
Jean-Rémy Falleri retweeted
To use the Montreal subway, you tap a paper ticket against the turnstile and it opens. But how does it work? And how can the ticket be so cheap that it's disposable? I opened up the tiny NFC chip inside to find out more... 1/15
157
1,407
326
11,242
2,417,726
Jean-Rémy Falleri retweeted
The fast JavaScript runtime Bun is much faster than Node.js 22 at decoding Base64 inputs. By much faster, I mean *several times* faster. But they both rely on the same underlying library (simdutf) for the actual decoding. So what gives? The problem is that Node.js needs to interact with v8, the underlying JavaScript engine (from Google)... and doing so is not trivial. Before we can start decoding the string, we need to grab the string... so, in this instance, we call String::Value... In turns, this allocates an array inside Node.js and asks v8 to copy the content to it... In an ideal world, we would avoid the trouble entirely and just ask v8 to give us direct access to how it stores the string... and we try to do that if we can... but let me come back to it... How bad can this be, right? Just a copy. Well. Let us do some profiling... So you see, the base64 decoding itself is about about 1/5 of the running time, but the copy takes half of it. What is up with this CopyChars function? Well, it is mostly just a wrapper around the standard high level C++ function std::copy_n as far as I can tell. (see v8/src/utils/memcopy.h) But we are copying for an 8-bit input to a 16-bit output... why is that? Base64 is pure ASCII... and v8 can store ASCII using 8-bit per character. We get there before both IsExternalOneByte() and IsOneByte() are false (see node/src/node_buffer.cc)... We have fast paths for these cases. If IsExternalOneByte() is true, we just get the bytes and everything is great. Unfortunately, it does not always work. So we have a v8 string that is really pure ASCII, but, seemingly, we can't tell that it is the case from Node.js, and so we have to convert it to UTF-16 needlessly, using a function that is maybe not very well optimized... and then we do the base64 decoding of an ASCII string from the UTF-16 input. It is not great. To be fair, this is just one string, created as 'Buffer.alloc(size, "latin1").toString("base64")', basically the base64 encoded version of the string "latin1latin1latin1...". In actual applications, we might have better luck. Yet. Yet. I am telling this complicated story for a reason. The story illustrates why our software is slower than it should be. We have layers of abstractions to fight against. Sometimes you win, sometimes you lose. These layers are there for a reason, but they are not free. To make matters worse... these abstraction layers often thicken over time... and the friction goes up. To be clear, I do not claim that the Node.js code is optimal. In fact, I know it can be better. But it is not trivial to make it go fast. I sometimes hear people say... "well, it is C++ and C++ is hard". No. The C++ part is easy relatively speaking. The difficulty is at a higher level. It is not a matter of syntax. It is a matter of architecture.
In the next version of Bun `Buffer.from(str, "base64")` gets 6x - 30x faster on large input, thanks to @lemire's simdutf
32
233
35
1,629
557,118
Jean-Rémy Falleri retweeted
📢#PhD defense from Florent Moriconi: "Improving Software Development Life Cycle using Data Driven Approaches". Goal is to better understand CI/CD logs, predict failures and localize root causes for automatic fix in software development. Joint work with @AmadeusITGroup
1
4
10
752
This is really important... we all know LLMs make mistakes...but when using LLM code completion one needs to be extra careful because they are EXCELLENT stochastic parrots. Even when they are <wrong>, they SOUND <right> and thus can be the source of nasty errors.... 🧵
Beware of ChatGPT answers to programming questions. A new study by @SamiaKabir12 and her colleagues based on StackOverflow Q&A found that 52% of ChatGPT answers contained incorrect information and that developers overlooked it 39% of the time. dl.acm.org/doi/pdf/10.1145/3…
3
4
1
24
3,425
Jean-Rémy Falleri retweeted
In May 1967, two computer scientists presented a paper about Simula 67, the first programming language to include abstract data types and classes: bit.ly/2RqFkGn
6
81
4
325
47,803
Jean-Rémy Falleri retweeted
Version 3.2.0 of Alexandria3k, now available on @pypi, supports running performant and replicable relational queries on all PubMed citations. These can be used for systematic literature reviews, scientometric and bibliometric studies, and meta-analyses. pypi.org/project/alexandria3…
6
17
1,402
Jean-Rémy Falleri retweeted
Replying to @BenevolWorkshop
@BenevolWorkshop is coming to Namur next November (2024) so you can take this photo by yourself! I and @bvdose will take care of submissions, @anthonycleve of food and drinks, Xavier everything else, helped by @tom_mens (everything else but before) and Alix Decrop for the web.
Mark the date: Nov 21-22, 2004 @BenevolWorkshop in Namur benevol2024.github.io/ General chair: Xavier Devroey, PC chairs: Gilles Perrouin and Benoît Vanderose (@UNamurCSFaculty).
1
6
12
752
Annual update of longitudinal data of Software Engineering conferences registration fees: raw.githubusercontent.com/jr…
1
127
Jean-Rémy Falleri retweeted
Goodhart’s Law xkcd.com/2899
31
850
85
8,894
430,189
Un poste de PR27 (bordeaux-inp.fr/sites/defaul…) à dominante réseau / système est disponible à Bordeaux INP n'hésitez pas à prendre contact si vous êtes intéressé!
83
21 nov. à Bordeaux 🇫🇷 je présenterai « Fake science : panorama des méconduites et contre-feux pour déjouer les pièges » dans le cadre de la journée scientifique de @BordeauxINP, grand amphi d'@ENSEIRBMATMECA. Programme complet : bordeaux-inp.fr/fr/journee-s…
2
11
11
1,493