I’ve been trying to adapt my coding workflow to LLMs for a while. The way I use LLMs has definitely changed over time and I’ve written about it here and here . In my experience, around late 2025/early 2026, SOTA models crossed some threshold and made a significant leap in coding performance. When Opus 4.5 and then later GPT-5.3-Codex came out, suddenly you could trust the output of…
First things first: Happy Canada Day, everyone! Bonne fête du Canada, tout le monde ! Yes, I know. Starting a post that celebrates Canada Day with a giant title thanking China might feel a bit ironic, if not entirely contradictory. But stick with me for a minute. Because if you are a Canadian working in tech right now, navigating a world where our longest-standing friendship and alliance has…
Back in January I posted about how I view LLMs , which included my workflow of doing LLM-assisted coding. To summarize, my workflow was: Reverse rubber-ducking Planning and writing a spec file Implement each phase of the plan, one by one Validation and commit I can say lots have changed since January. For one, models are significantly better and more reliable. As well, I feel like I’ve got…
I pay for a lot of small apps. One of them was Wispr Flow for dictation. That’s $14 CAD/month that I was paying until I had a few lazy days visiting my mother. And then on the afternoon of New Year’s Day, I vibecoded Jabber . Now, don’t get me wrong, Jabber is not “production quality.” I would never sell it as a product or even recommend it to other people, but it…
A couple of days ago I posted about my workflow and I made light fun of something I do: I also give it context to save time. The agents nowadays are very smart and can find their way, but I can shortcut that by giving it hints “in internal/foo/foo.go there’s a function called DoFoo() and it does this and that and I want it to do that other thing before that” or whatever. Less tokens, faster…
I’m agent-agnostic, in which I don’t use only one. I keep changing from time to time. My earliest forays into agentic programing were with Claude Code , which was then and still is probably the gold standard. But since then I’ve tried quite a few: Codex CLI (good models, barebones agent), Droid (not a fan), OpenCode (big fan!), and Amp . I’ve been using Amp for a while, but…
I’ve been meaning to write this post for a bit, but never found the right time. I guess this is it. Until sometime last year, I was more or less an AI-skeptic. I say more or less because I was always very interested in the technology. I built my own LLM to learn about it and I thought then, as I do now, that the technology is incredible. And yet, I had tried using LLMs to help with coding and my…
A while ago I was a little skeptical of AI-assisted coding. Mostly because my experience had been with CoPilot autocomplete and it was really not good. I still avoid AI autocomplete to this day, even if I can see it got better because I still find it distracting and often still not great. That said, Claude Code shook my world view and I’ve been daily driving it ever since. I need to write a post…
Years ago I posted about getting the c-cedilla (ç) working in Fedora when using the US International keyboard with deadkeys. This has been a struggle for decades now and every time I set up a new Linux installation, I need to look it up. That wouldn’t be such a problem, weren’t for the fact that the way to accomplish this seemingly simple task keeps changing over the years, so most of the…
I’m going to leave this here in case someone out there is looking for the same thing, because this one was hard to figure out for me. I’ve been using vim for a long time. Decades. Although it has never been my main editor (I used to be a proud emacs guy), vim is the editor I always go to when I need to edit something quickly. My main editor these days is Visual Studio Code , with the VsCodeVim…
Since I was a kid, I’ve loved aviation. Being poor and all, I could never dream of pursuing it in real life, so flightsimming has been my “cheap” fix for many years. I put cheap in quotes because this is an expensive hobby, even if you don’t overdo it. Although I spend quite a lot of money on software, I try to keep things in check on the hardware department, as flightsim equipment can be very…
I’ve had a soft spot for mechanical keyboards for a long time. It’s a cliché, I know. I’m not a fan of loud mechanical keyboards, mind you. I’ve had my hands on Cherry MX Blues and found them to be so loud as to be a distraction during calls. And I found the Cherry MX Reds to be, well, too quiet. I found the Goldilocks zone to be in the Gateron MX Browns . I have also come to particularly like the…
I just checked and it’s been exactly 1,594 days since I last posted on this blog. That’s 4 years, 4 months, and 12 days. This was, as is often the case with these, not planned. When I last wrote something here, I was working in a team set up as an R&D lab. Work felt quite fun and exciting and writing about it felt natural. I then changed to jobs to a startup where things felt a tad different. It…
I’ve finished the game last night. I haven’t stopped thinking about it ever since. It was, to be very honest, a transformative experience, as far as videogames go. I understand why some people hate it and I’m sorry because I understand how much it sucks when you want to enjoy something but can’t. Art is subjective and no one is right or wrong. That said, I want to talk about what I’ve experienced.…
The Go proposal committee has declined the try proposal . I am disappointed. I also think this is open source working exactly as it should. The proposal was not dropped because one person with commit access disliked it. A concrete design was published, tools were written to try it on existing code, hundreds of examples and objections were discussed, and the people behind it kept answering…
It has been six days since the try proposal was posted and the issue already has hundreds of comments. Robert Griesemer has posted a useful summary of the discussion . After reading far too much of the thread, I think the arguments are clearer now. They are also better than “I hate typing if err != nil ” versus “real programmers enjoy typing it,” which is where these discussions usually go to die.…
Yesterday Robert Griesemer posted a proposal for a new try built-in in Go. I have read the design document twice now and I think I like it. I am not entirely comfortable saying that. Two years ago I wrote that explicit error handling was exactly one of the things I loved about Go. I still do. The interesting question here is whether returning an error unchanged really counts as handling it. The…
I’m a big fan of the way Go does zero values , meaning it initializes every variable to a default value. This is in contrast with the way other languages such as, say, C behave. For instance, the printed result of the following C program is unpredictable. #include <stdio.h> int main(void) { int i; printf("%d\n", i); return 0; } The value of i will be whatever happens to be at the position in…
(This article has been graciously translated to Russian here . Huge thanks to Akhmad Karimov .) I wrote a brief introduction to Go modules and in it I talked briefly about Go modules proxies and now that Go 1.11 is out , I thought I’d play a bit these proxies to figure our how they’re supposed to work. Why One of the goals of Go modules is to provide reproducible builds and it does a very good job…
This post is also available in other languages: Russian: Введение в модули Go Uzbek: Go modullariga kirish The upcoming version 1.11 of the Go programming language will bring experimental support for modules , a new dependency management system for Go. A few days ago, I wrote a quick post about it . Since that post went live, things changed a bit and as we’re now very close to the new release, I…
Update: the licence plate application has since been refused. The reason given is that they don’t allow offensive messages. All I can think of is that they misread it as being “GOP HER,” which doesn’t mean anything but they may have assumed it was some code, new slang or something. I live in Quebec and only recently the province opened registrations for personalized license plates. At first I…
Update: much of this article has been rendered obsolete by changes made to Go modules since. Check this more recent post that’s up to date . Had some free time in my hands, so I decided to check out the new Go modules. For those unaware, the next Go release (1.11) will include a new functionality that aims at addressing package management called “modules”. It will still be marked as experimental,…
So we created a concurrency-safe LRU in the last post, but it was too slow when used concurrently because of all the locking. Reducing the amount of time spent waiting on locks is actually not trivial, but not undoable. You can use things like the sync/atomic package to cleverly change pointers back and forth with basically no locking needed. However, our situation is more complicated than that:…
In my job, I often catch myself having to implement a way to keep data in memory so I can use them at a later time. Sometimes this is for caching purposes, sometimes it’s to keep track of what I’ve sent some other service earlier so I can create a diff or something. Reasons are plenty. I noticed that I keep writing versions of the same thing over and over and when we’re doing that, maybe it’s time…
I’ve just spent much more time than I ever wanted to get this right, so here’s how I did it for future reference. I have a function that returns an http.Handler , kind of like this: func Handler(prefix string) http.Handler { r := mux.NewRouter().PathPrefix(prefix).Subrouter() r.HandleFunc("/foo/", fooHandler).Methods("GET") r.HandleFunc("/bar/", barHandler).Methods("GET") return r } The prefix…
China wants to be the first country to build a practical space-based solar power station . Space-based solar power would presumably be much more sustainable and clean than fossil fuels and more efficient than the current sustainable energy sources we have on Earth. There are many problems still to be solved before these power plants can exist so China’s expectations are more wishful thinking than…
Rodney Brooks writes about the 7 Deadly Sins of AI Predictions . The text articulates a lot of my personal doubts about much of what I see on the news regarding AI. Some people seemed to read this article as a rebutal of AI itself, which I find puzzling as I did not read that at all. If anything, Brooks seems to believe AI will be much bigger than we can possible imagine. He does talk about…
I haven’t commented on the recent brouhaha caused by Caddy ‘s decision to offer commercial licences , so I’ll do it briefly here before moving to the important part. I am fine with it. I don’t love it, but it’s fine. The Caddy authors have every right to try to profit from their work. Best of luck to them, they deserve it. Do I think they mangled the announcement? Yes. Do I think the amount of…
Whenever someone posts anything related to the Go programming language on Hacker News, it never takes long before someone complains about error handling. I find it interesting because it is exactly one of things I like the most about Go. I don’t want to specifically talk about error handling though. I want to talk about a feature that is intrinsically tied to it in Go: the ability of functions to…
My adopted country is celebrating its 150th anniversary today. I want to say that I feel privileged to be here for it. This is where my family and I decided to make our home. Happy birthday, bonne fête, Canada! Merci de tout! 🇨🇦
The Institute for Energy Economics and Financial Analysis reports that India is cancelling plans for huge coal power stations because solar energy prices are lower , which, if true, represents a huge threshold for sustainable energy productions. If solar energy is cheaper than coal (and other types of energy), that means the market itself will naturally migrate over. A company is suggesting that…
I’m back from a trip to a customer. How was it? Okay. I got more snow that I expected on the way there, so the drive wasn’t much fun. Then again, a part of the trip goes through a beautiful forest that was worth everything else. Cool! Also, while showing the customer a new feature, the app crashed. Typical. Blame it on Murphy! That’s what I did at first. Then I blamed it on the developer. And then…
A few months back I decided to try and burst out of my bubble. I then decided to follow some public figures from all sides on Facebook and Twitter. On Facebook this is particularly weird because you’re forced to like the page. So it tells the world “Roberto likes Mrs. Public-Figure” , which is sometimes undesirable. Still, I wanted to see what both sides of the political spectrum were saying.…
Quem utiliza teclado US Internacional para escrever no Linux já deve ter dado de cara com o fato de que na maioria das distribuições, a combinação ‘+c gera um “ć” em vez de um “ç”. Resolver isso no Fedora 25 é fácil, mas não evidente. tl;dr – eu criei este script que faz todos os passos abaixo automaticamente. Basta rodar isso: curl…
Must-read article on “human computer” Katherine Johnson. Not only was she a key figure in pushing NASA’s efforts forward, but she did it while fighting misogyny and racism: Outside the gates, the caste rules were clear. Blacks and whites lived separately, ate separately, studied separately, socialized separately, worshipped separately, and, for the most part, worked separately. At Langley, the…
Mads Torgersen wrote a blog post highlighting what’s new in C# 7.0 : C# 7.0 adds a number of new features and brings a focus on data consumption, code simplification and performance. The changes all seem to be in line with the recent trends of borrowing syntax sugar from other languages to C#. Nothing wrong with that: copy what’s good and shed what’s bad. One of the changes is related to out…
I’ve been terribly busy with work lately and so I haven’t really had much time for my side projects. I did however managed to get a new version of Millie out of the door. Got get it here. Changes are mostly infrastructural though. User “visible” changes: Add .deb installation files for Linux Add support for electron-builder New settings system Fix missing icon on Win64 installer Split generation…
So this is me today. Years ago, my wife and I had a friends couple we worked with for some years. Someday they stopped talking to us. They refused to answer our calls or answer our emails. They never accepted out friend requests on Facebook. We never knew why. This happened over 10 years ago so naturally life moved on. From time to time, it happens that I see something from them on Facebook seen…
Conscient du fait que mon français n’est pas très bon (j’apprends), je pense cependant qu’il est important de l’écrire dans cette langue, car vous m’avez fait savoir que toute autre langue n’est pas acceptable. Il y a quelques jours, j’étais chez un restaurant Valentine avec ma fille de six ans. Nous y étions allés parce qu’elle adore leur hot-dog et puisqu’elle avait fait un super effort à…
It’s time for me to say goodbye. Tomorrow, the unit on @ESA_Rosetta for communication with me will be switched off forever… — Philae Lander (@Philae2014) July 26, 2016 And so ends one of the most exciting science missions in recent years. The team at ESA managed a remarkable feat while also engaging the rest of us emotionally. Great job to all involved.
Years ago, I was part of a project that went completely off the rails. A little context: we were a services company and we had local offices in cities all over the country. My team provided 2nd-level support which means we often had the PMs call us from those via an annoying Nextel radio. I won’t go through the details but suffice it to say this project envolved one such branch going rogue and…
Hi, I have a question Do you ever not? “Learning never exhausts the mind.” Leonardo DaVinci? I’m proud of you. Go ahead. Thank you. I’ve been reading all these horrific news stories about the Olympic games and Rio… Oh that. Yeah, I’ve been getting asked that question regularly lately. Is it really that bad? Yes and no. There is a lot of sensationalism out there. But it’s bad and, at least to us…
There’s this project I’ve been working on in ReactJS and Chrome and I needed to use a <webview> component. In case you’re not familiar with <webview> , it looks something like this — < webview src = "https://robteix.com" ></ webview > One of the coolest features of <webview> is the ability to isolate scope or partition it. When you use a partition, all cookies, local and session storage, etc, will…
I wrote about how the Go and C# compilers implement interfaces and mentioned how C# deals with clashing method names but I didn’t talk about how Go does it, so here it is. Two interfaces with the same method name that need to behave differently is very likely a sign of bad API design and we should fix it instead. But sometimes we can’t help it (e.g. the interfaces are part of a third-party…
I make no secret of the fact that I love Go. I think it’s a wonderfully designed language and it gave me nothing but pleasure in the years I’ve been working with it full time. Now however I am working on a project that requires the use of C#, which prompted me to realize something. When people ask about Go, most people talk about channels and concurrency but I think one of the most beautiful…
Github has published a Swift Style Guide : When you have to meet certain criteria to continue execution, try to exit early. So, instead of this: if n.isNumber { // Use n here } else { return } use this: guard n.isNumber else { return } // Use n here Feels very Go-like.
Spoilers abound. You’ve been warned. From the very beginning, Robert Kirkman maintained that Invincible was his attempt at doing the whole superhero thing right. There is a running gag in this book that on every cover (at least for a lot time if not since the beginning), they take a little jab at the superhero genre as done by other houses. As news appeared that there would be a reboot, Kirkman…
Go is often described as a simple language. It is not, it just seems that way. Rob explains how Go’s simplicity hides a great deal of complexity, and that both the simplicity and complexity are part of the design. Source: Simplicity is Complicated – The dot Post
I have a friend who is all into the whole evolutionary psychology fad. It’s useful when you want to rationalize bad behaviour. I once told him that evolutionary psychology was pseudoscience to which he replied saying that I was just trying to negate the world as-is. But apparently I’m not alone, as Jonathan Marks writes (emphasis is mine) — I can’t shake the feeling that the methodologies I have…