Jean-Rémy Falleri

1.3K posts

Jean-Rémy Falleri

Jean-Rémy Falleri

@jrfaller

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

Bordeaux, France เข้าร่วม Şubat 2009
645 กำลังติดตาม331 ผู้ติดตาม
Jean-Rémy Falleri รีทวีตแล้ว
Prof. Per Runeson
Prof. Per Runeson@SoftEngResGrp·
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/36…
English
0
1
2
201
Jean-Rémy Falleri รีทวีตแล้ว
Ryan Els
Ryan Els@ryanels·
Hype-Driven Developers 😂
Ryan Els tweet media
English
34
178
1.9K
180.6K
Jean-Rémy Falleri รีทวีตแล้ว
Ken Shirriff
Ken Shirriff@kenshirriff·
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
Ken Shirriff tweet media
English
164
1.4K
11.4K
2.4M
Jean-Rémy Falleri รีทวีตแล้ว
Daniel Lemire
Daniel Lemire@lemire·
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.
Daniel Lemire tweet mediaDaniel Lemire tweet mediaDaniel Lemire tweet media
Jarred Sumner@jarredsumner

In the next version of Bun `Buffer.from(str, "base64")` gets 6x - 30x faster on large input, thanks to @lemire's simdutf

English
33
235
1.6K
556.6K
Jean-Rémy Falleri รีทวีตแล้ว
Raphaël Troncy
Raphaël Troncy@rtroncy·
📢#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
Raphaël Troncy tweet media
English
1
4
10
750
Jean-Rémy Falleri รีทวีตแล้ว
பேராசிரியர் Prem Devanbu
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.... 🧵
Diomidis Spinellis@CoolSWEng

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.114…

English
3
4
24
3.4K
Jean-Rémy Falleri
Jean-Rémy Falleri@jrfaller·
@JulienGossa Ceci dit, je prendrai plutôt avec des pincettes les résultats de cette "étude" dont je ne trouve la source nulle part et qui redirige le lecteur sur une méthode "miracle" vendue sous forme de livre sur Amazon par son auteur :-)
Français
0
0
0
15
Jean-Rémy Falleri รีทวีตแล้ว
MIT CSAIL
MIT CSAIL@MIT_CSAIL·
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
MIT CSAIL tweet media
English
7
87
334
47.8K
EASE 2026
EASE 2026@ConfEASE·
We are proud to announce the Distinguished Reviewers of #EASE2024 🤩 Lina Maria Ochoa Venegas (Tu/e 🇳🇱) and Samira Silva (GSSI 🇮🇹) 🎉 with our biggest thanks to all the Program Committee members! 🫶 @aserebrenik @JessicaDiazFer
English
2
3
13
886
Jean-Rémy Falleri รีทวีตแล้ว
Diomidis Spinellis
Diomidis Spinellis@CoolSWEng·
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/alexan…
Diomidis Spinellis tweet mediaDiomidis Spinellis tweet media
English
1
6
18
1.4K
Jean-Rémy Falleri รีทวีตแล้ว
Gilles Perrouin
Gilles Perrouin@GPerrouin·
@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.
Alexander Serebrenik@aserebrenik

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).

English
1
6
12
750