GitHub was a source of joy for me since day one: a platform to connect with other nerds, discover new cool projects, read code and learn, which made me better… This was great. But over time, the platform, and the internet, has deeply changed. I don’t follow the current AI trend (and I don’t share the enthusiasm for AI agents), and I no longer learn anything new on this platform. Except that…
The ideas shared here are mine alone and are not endorsed by my past or current employers. I am a senior systems engineer and game engine programmer, living in Grand-Est region (France). Contact # Feel free to send “hi” at dev[at]carette[dot]xyz . My public GPG key to contact me privately is available here . Work experience # My resume, in English . My MobyGames profile . Please take a…
Books and research papers # Books # 2017, Mastering Rust, Vesa Kaihlavirta (PACKT) - official reviewer Research papers # 2016, Investigating the Energy Impact of Android Smells - accepted to SANER 2017 2015, A Learning Algorithm for Change Impact Prediction: Experimentation on 7 Java Applications - RAISE 2016 Blog posts, talks & presentations # Professional blog posts # 2020, Security By Design, A…
The lofi girl was right Sometimes, fighting for a change isn’t worth it . You try. Again and again. And as hard as you can. You see the problems. You feel their weight. And you have solutions to propose: clear, practical, good ones. So you speak up. Naively, you assume others will care. Why? Because you believe in something simple: that people value integrity . That a company thrives when…
Any relation between this tale and modern software engineering is entirely up to your own interpretation. This is the story of a building company CEO named Matthew. Matthew is a simple person: he likes to build buildings, and he likes it when people appreciate his buildings. Compared to other construction companies, Matthew always checks for quality over quantity. He believes that clients are…
I am working on a project that combines Swift, Raylib, and Raygui . I don’t really know what the end-goal is here, but I am having fun. That’s enough for me to work occasionally on that. I like Swift very much, and I have had more fun developing in Swift than in Rust or C++ recently. But, there is a small catch with Swift outside the Apple ecosystem: its adaptability to other platforms…
In my previous article I discussed about the necessary evil to change the coding tests to filter engineers. As LLMs become the ultimate coders (producing boilerplate infinitely, instantly, and without fatigue) the software engineering workflow is rapidly shifting, and day-to-day work is moving heavily toward auditing and reviewing AI-generated code. But because of this shift, a dangerous corporate…
Programming tests used to be our primary filter to separate profiles. In software engineering, they historically differentiated three distinct ones: the engineers , the ones who solve the fundamental problems. the developers , the ones who apply the right patterns and orchestrate the architecture depending on the needs. the coders , the ones who just write code, code, and code. We used to put…
Very recently, I was hunting for a new TV show and clicked on Apple TV, drawn in by the buzz surrounding Margo Has Money Troubles . I launched the first episode and got hooked by the new intro logo. It caught my eye because it felt weirdly alive. There was a specific, imperfect flicker of light across what looked like “organic glass”. It lacked the sterile, mathematically perfect glare…
Silicon Valley executives used to complain about “the Great Resignation” to justify replacing people with machines. Now, they have suddenly changed their tune to sound like generous givers. Figures like Sam Altman and Elon Musk now claim that artificial intelligence will culminate in a liberated society characterized by truncated 32-hour workweeks and Universal Basic Income (UBI) . In…
A few days ago I wrote and published a blog post about how Swift interacts with C projects, using Raylib . Somehow, much to my delight, it has been posted on multiple social networks, like Reddit and Hackernews. Comments were interesting and constructive. Many people praised how Swift manages interactivity with Raylib, but a few expressed their disappointment about the lack of demonstration on how…
Since Ladybird team abandoned their Swift adoption for the browser I heard a lot of criticism about the Swift ecosystem and the interaction between Swift and C/C++ projects. My usage of Swift is mainly for command line tools, recreational programming (like Advent of Code 2023 and previous years) or Metal programming . In my previous experiments I really enjoyed Swift , and actually preferred it to…
Last week, the developer community was busy discussing about a single tweet: I'm not joking and this isn't funny. We have been trying to build distributed agent orchestrators at Google since last year. There are various options, not everyone is aligned... I gave Claude Code a description of the problem, it generated what we built last year in an hour. — Jaana Dogan ヤナ ドガン (@rakyll) January…
We are living through a strange era in tech. Every month, a new headline appears. Another CEO announces a massive round of layoffs of managers, developers, and engineers. They talk about “efficiency” and “streamlining”, which should maintain the same quality while spending less on staff. However the engineers, and the users, on the ground see something else: a decrease in…
With no surprise the end of one year marks the start of the next. And the beginning of a year is always synonymous with… a fresh macOS system! But managing a good working environment on macOS has long been a game of “hope for the best.” We’ve all been there: a curl | sh here, a manual brew install there, and six months later, you’re staring at a broken PATH and a Python…
If you read my previous post about gaming on mac , you know I have a soft spot for running Windows games on Apple Silicon. Early this year I upgraded from a M1 MacBook Air to an M3 Max MacBook Pro. Naturally, I had to test three completely different generations of games at it: ARC Raiders (2025), Routine (2025), Watch Dogs 2 (2016) and Tron 2.0 (2003). I expected the modern game to struggle and…
Disclaimer Article fully writtened by the author, but grammar correction by Gemini. Images generated using Gemini. Every software engineer I know is searching for it. Me included. They don’t always call it the same thing, but the desire is universal. I call it the “holy grail”. That one project, that perfect role, where we get to solve problems that matter. The kind of deep,…
If you frequent Hacker News regurlarly, you have likely noticed the buzz around engineers using AI (specifically Large Language Models, or LLMs) to tackle Computer Science problems. I want to be clear: I’m not against LLMs . LLMs are incredibly powerful tools, and can be a huge boon to engineers. They can automate repetitive tasks, generate code snippets, help with brainstorming, assist in…
A few months ago, a video of a private tech conference leaked online. The speaker was Eric Schmidt, discussing tech entrepreneurship, his past experiences, and how to make money today. The transcript of the video can be found here . Frankly, the conference was painful to watch, not because of technical issues, but because of the terrible advice and ideas Schmidt shared. This isn’t the first…
UPDATE 2TH OF JUNE 2024 Removed typos (thanks Geoffrey! :) ) As a game engine developer, I always ask myself the same question working on new features or bug fixes: “ What are the targets of my game engine? ”. Excluding the consoles, this question mostly implies which operating system - or platform - is targeted: Windows, Linux (or GNU/Linux, but I will keep “Linux” for the…
Last Saturday, after logging on Twitter X, I came across two tweets from two great programmers I follow. *** Deeply Negative Tweet Alert!!!!!! *** My ASUS Rog Strix G16 super hyper gaming laptop has lasted approximately 1 year before destroying itself. For about a month it has been in a mode where it's impossible to sleep it (and there is no Hibernate option in Windows any more,… — Jonathan…
I wanted to write about modern graphics APIs at first, how exclusive they are depending of the platform you are developing on (and for), and how difficult to use they are. However, after (over-)thinking about this blog post, I came to the conclusion that this problem could be generalized to all software. This is a very pessimistic view of some people call “modern software engineering”,…
If you know me since a while you know my love for the macintosh and the Apple Silicon chips. Actually my main daily driver is an Macbook Air M2 and I have a Steam Deck next to me which I bought to play Windows games in an handheld format. But, sometimes, I just want to play “old” games on the mac device, which may not be compatible with macOS x86/64, so no Rosetta 2 translation…
In my last year’s blog post I wrote 2022 was a strange year for everyone I think. I do think, as game developers (or just computer developers), we can agree that 2023 was way worst than 2022, maybe one of the worst year since a long time actually. Despite records sales in the video game industry, and record earnings, the number of layoffs in the field was incredibly high (more than 6000 jobs…
The demoscene # The tunnel effect is a pretty old-school effect in graphics programming, coming directly from the demoscene. If you take a look at pouet.net you may find many (many many) examples of a Tunnel effect for different hardware configurations, like this one using 3D raycasting. In this collection of web demo effects you can find and experiment with this effect:…
Almost one year ago I posted my advances on “ Frame ”, a custom game engine wrote in Swift with SwiftUI, and Metal as a backend. From August 2022 to August 2023, I made a journey into two different graphics libraries: Vulkan , and Metal . The new project # I definitely wanted to take a deep look into Vulkan for multiple different reasons: i) it is cross-platform, and ii) Vulkan begins…
Last week I heard about a weird behaviour of a C++ program on Twitter. The code is: #include <iostream> int main () { while (1); } void unreachable () { std::cout << 'wait... WHAT?!' << std::endl; } copy Pretty simple, right? Two functions, one infinite loop, and the unreachable function that is never called… As you might expect the program will run until the user forces the program to…
2022 was a strange year for everyone I think. To me, it was a year full of reconsideration, of reflection on myself, the World, and my family’s future. People tend to think that 2020 was the worst year to live recently, I don’t agree at all as I think the worst may come “soon”… Anyway. The blog posts statement # I published nine posts this year (10 if you include the…
Whoever worked on system programming know that data alignment is very important to save memory space, or avoid runtime crashes casting from a specific type to another. After some months on porting games to console systems, I noticed how data alignment could be, sometimes, a source of errors and a lack of knowledge. I wanted to discuss about data alignment in this technical article. Note : This is…
Today I wanted to share my advancements on Frame , a game engine I began almost two years ago, for Apple devices only. In December 2020 I played a bit with Swift, SwiftUI, and Metal, on a custom game engine called “ Frame ”. At that time I was not yet a father, and I had a lot of spare time (too much maybe) to spend on this project. I dropped the project a year after, in December 2021,…
[10th of August 2022 - Article Update] A friend of mine told me he would not used the word “instructions” talking about the size of a binary program, as there are not only instructions but the ELF structure, the imports, etc. After its careful review, I removed the word “instructions” for “lines” (even if I don’t really like the word…
Among all the computer subcultures that exist, the demoscene subculture is, without a doubt, the one that impresses me the most. The demoscene is composed by demomakers, a worldwide network of very creative minds involved in the making of (non-commercial) demos , just for fun. But was is a demo ? A demo is a technical and/or aesthetic achievement made by demomakers - most of the time by groups of…
Apple Silicon chips on the mac changed everything … except the gaming industry (yet). Even though M1 chips (M1, , M1 Pro, and M1 Max) have been sold a lot (+25% this January compared to January 2021, which had already broke all the records for mac sales), a very few companies updated their actual games to run on M1 chips. Even if a few solutions exist to run windows games on the M1 mac,…
Since a long time now I was interested in learning computer graphics and “do stuff” with computer graphics APIs. I began to work on a very simple Game engine in Swift / Metal last year but I began to switch to a Windows machine a few months ago, and Swift / Metal is not compatible with Windows (and will never be I think). Here, I wanted to go further in exploring OpenGL and / or…
I just discovered a very good dotfiles that contains a lot of hidden features in macOS, or to manage you system through the console. Please check it out here if you are interested in. Thanks to Mathias Bynens for this!
I am a long time Rust user/fan - since 2014 - and I still have some troubles to follow the community in terms of RFCs, or accepted features to be included in an upcoming version of the language. Most of the time, checking for the new features, I have the feeling that I don’t need to use them for my current & past projects… like a purist C / C++ developer who uses the strict minimum of…
People tend to believe that free and open source softwares ( FOSS ) are way more trustable than proprietary softwares… and I want to believe this idea . Unfortunately, the idea behind this blog post is that it is not because a software has a free or open source licence that someone already checked and validated its full source code (including the dependencies)! As an example, how many times…
This is truly the end of some good indie games… and a security threat. Even with the effort to preserve flash projects, Flash on it's own was a stepping stone for a lot of people, And it paved way for content creation on the internet pre-youtube days. Thanks Flash pic.twitter.com/iBRMvHHAIT — FABINO (@KinoFabino) December 31, 2020
Last week, a very good blog post has been published about how Linux by default is “not a secure operating system”… (kernel actually). I agree with most of the ideas and methods explained in it, but this article has a big issue: the target is absolutely not defined. Unfortunately, this has been posted on hackernews ( oops ) this morning ( iich ) and, as expected ( ouuh ), it has…
The last 30th of November, DeepMind published on their website an article about AlphaFold 2 , an Artificial Intelligence that solves with 92.4 GDT , on simple protein structure, a 50 years old grand challenge: the protein folding problem . DeepMind released the first version of AlphaFold in 2018. This first version achieved a score of 58 in the Global Distance Test ( GDT ) at the Critical…
EDIT (15th of November 2020) I made a mistake in explaining that OCSP send in its request the hash binary, which is not correct, and I am sorry for that. Indeed, OCSP send out the hash of the app developer certificate, as explained in this great blog post . Apple released it’s new mac operating system update - macOS Big Sur - yesterday night, a version that introduces a new design, closer to…
if “macintoshgarden” doesn’t give you a smile on your face, I’m pretty sure you don’t know this site… macintoshgarden is an abandonware archive dedicated to supporting the Macintosh computer platform, from the Symantec THINK C 5.0 compiler, to Quake II and the original Snow Leopard build for PowerPC . This website is organized into different categories,…
In 2019, I read an average of three books a month, including comic books. Unfortunately, during the lockdown since March, it was difficult to read new interesting books, due to several reasons: no new release; physical bookstores close their doors; people ordered a lot of books to avoid boredom, which has sharply reduced stocks (and the choice of books as well); parcel and mail delivery has been…
As Microsoft last year , the Chromium project team, responsible for the Chromium browser (which is the base of many open source and proprietary projects like Chrome, Brave, or Visual Studio Code), released a blog post last week about memory bugs in Chromium . The analysis # The analysis has been based on both past and present 912 high or critical severity security issues, since 2015. Based on…
There is a myth in IT. The myth of the “super code monkey”. The “super code monkey” is an expert in everything, in every situation. The “super code monkey” does not introduce bugs when he writes code. The “super code monkey” sleeps at least eight hours every day. The “super code monkey” is young, has a social life, and practice sport each…
Last week, Ibrahim Dursun published an article about zero-cost abstractions in Rust . Unfortunately, except for a subpart of the article, this article did not reflect, in my own opinion, correctly what are zero-cost abstractions. Indeed, zero-cost abstractions, or “zero-overhead”, can be difficult to understand and to separate from other compiler optimizations, and can be easily…
This is for sure the most intimate blog post I ever made on this website, and this blog post was absolutely necessary. Since I was in middle school, I suffered a few years from anxiety, mental depression, but also impostor syndrome. The path was hard, but thanks to my family and my friends, I am feeling a lot better now. Recently, after talking with people in real life or in the internet, reading…
Thanks to https://github.com/egonelbre/gophers for this sketch Go is known for it’s strong type system, and explicit type conversion. For example, if you have to compare two different values of different types, you will have a compiler error: package main import 'fmt' func main () { var x int = 0 var y int32 = 0 fmt. Printf ( '%+v' , x == y) } copy If you try to compile this code sample, you…
If you work a lot with APIs in Go, it may happen you have to work with complex JSON responses… Ok, let’s talk about that using a simple example. Imagine you have to work with the following data structure, which represents a Person data structure (like a real person, no trap) with the following characteristics: the name of a Person object: a string; the dog’s name of the Person…
I became fed up with my electronic materials. The way we evolve, as city dwellers, implies sometimes to adopt a non-minimalistic approach to live: to have one device to make only one thing, to have different devices that can be used to make the same thing, to buy expensive things based on good ads, to buy expensive things based on what you can do (and finally things you will never do), … In…