Sign in

Tim McNamara

@timclicks.dev
3.6K followers 466 following 1.2K posts

Trainer and consultant on the Rust programming language. Author of Rust in Action. Team climate. Walkable neighbourhoods are nice, actually. Signal: @timclicks.01

PostsRepliesMedia
Tim McNamara @timclicks.dev · 03/09/2026
"The spherical cow approximation is widely used in the literature, but is rarely justified. Here, I propose several schemes for extending the spherical cow approximation to a full multipole expansion, in which the spherical cow is simply the first term." arxiv.org/abs/2504.00506
060
Tim McNamara @timclicks.dev · 27/08/2026
Making some progress with the next iteration of my site
3150
Tim McNamara @timclicks.dev · 17/08/2026
I know that this is an oddly specific thing to become concerned about, but what in digital typesetting is this? How does it even happen? Is an MS Word thing? Do we blame Adobe PDF Maker? Chrome's PDF renderer? (Original link www.regulation.govt.nz/assets/Publi...)
330
Tim McNamara @timclicks.dev · 26/06/2026
Today in cursed code: a computer program that plays pong by modifying its own source code. (Each frame is a new compilation). See github.com/uellenberg/I...
Animated ASCII-art pong.
040
Tim McNamara @timclicks.dev · 02/06/2026
A picture to feed the algorithm. By returning impl Trait, you're free to change what's happening underneath. This is especially useful when you want to compose iterators.
A code snippet. 

// Start with something that you can use right now
pub fn evens(max: u32) -> impl Iterator<Item = u32> {
    (0..max).filter(|n| n % 2 == 0)
}



// ..later on, you can swap this out for something more efficient
pub fn evens(max: u32) -> impl Iterator<Item = u32> {
    (0..max).step_by(2)
}
090
Tim McNamara @timclicks.dev · 08/12/2025
Prediction: the next wave of programming languages will just be AI prompts. Someone's just released ai_bindgen (github.com/germangb/ai...) into the Rust ecosystem, which allows annotation to create functionality with natural language:
3100
Tim McNamara @timclicks.dev · 02/12/2025
Apparently the message here is that I should be uploading more ragebait.
YouTube channel analytics showing a line of this video's performance rising steeply above typical baseline. Statistics highlighted: 1.2k views, 66 watch hours, +3 subscribers.
2100
Tim McNamara @timclicks.dev · 02/12/2025
Code review: do you know why this code triggers undefined behavior? play.rust-lang.org/?version=st...
3101
Tim McNamara @timclicks.dev · 30/11/2025
This doesn't feel particularly "timClicks" (I've tried very hard to steer away from engagement bait).. but I also sort of feel the need to respond to the idea that Fil-C is a better Rust. Should I make the video? If so, use this thumbnail or something less antagonistic?
Drawing of a green troll shouting "C MEM SAFE" wearing a hat with the text Fil-C embroided on it swinging a wooden club stamped with C logo at a Rust programming language logo on a cracked wooden block, suggesting attack on Rust.
1120
Tim McNamara @timclicks.dev · 25/11/2025
I've decided to call it the flying saucer operator
Compiler Explorer (godbolt.org) editor showing Rust source for a Pizza struct with an impl containing an eat_slice method that uses -=- to modify the number of slices.
180
Tim McNamara @timclicks.dev · 25/11/2025
Everyone knows that the PDF spec is powerful enough to allow a full Linux kernel to boot, right? linux.doompdf.dev/
03715
Tim McNamara @timclicks.dev · 24/11/2025
A workflow for working with AI agents to develop high-quality software quickly (A downloadable PDF and further info available to subscribers free or paid timclicks.dev/ai-workflow)
260
Tim McNamara @timclicks.dev · 23/11/2025
Earning its rightful place on the HN front page in record time
Screenshot of Hacker News front page, showing this thread at top position after 9 minutes of its submission.
110
Tim McNamara @timclicks.dev · 23/11/2025
Good news everyone! The future is now. The Algol 68 front end to gcc is finally approved for inclusion. The tyranny of C-based languages may soon be over.
Mailing list email thread titled "Algol 68 Front End" from David Edelson. 

Message body reads "The GCC Steering Committee has agreed to include the Algol 68 Front End in
trunk designated as experimental with stipulations:

1. Algol 68 is not part of all languages built by default.
2. Algol 68 is not part of the GCC release criteria.
3. All GCC developers who are not responsible for the Algol 68 Front End
may decline to work on issues related to the Algol 68 Front End.
4. If the Algol 68 Front End bit rots or is not maintained, it will be
removed.

To permit Algol 68 development to continue, Jose E. Marchesi is appointed
as Algol 68 front end maintainer.

If maintaining a Front End outside of trunk is difficult, the Algol 68
developers are invited to propose concrete changes to make it easier to
maintain front ends in a branch of the GCC repository outside of trunk.

Happy Hacking!
David"
1303
Tim McNamara @timclicks.dev · 19/11/2025
A cheat sheet of Cargo plugins to improve your day as a #rustlang developer. More detailed notes and a PDF version is available through the link in the QR code.
0287
Tim McNamara @timclicks.dev · 19/11/2025
Cloudflare generated many millions of HTTP 5XX responses today. They were triggered because code in a core proxy called .unwrap() on a Result for an operation that was expected to never fail.
Cloudflare blog excerpt showing code snippet in Rust with a highlighted .unwrap() call causing a panic. Preceding explanatory text describes why the .unwrap() code path was entered.
57012
Tim McNamara @timclicks.dev · 16/11/2025
Productivity tip for people using #rustlang: The rustup command can generate shell completions for your shell:
Terminal snippet showing shell commands to add shell completions for Rust using the bash shell. Provides commands and a help note for other shells.
2211
Tim McNamara @timclicks.dev · 14/11/2025
What happens when you execute code with undefined behavior? Nothing good. In my testing, the compiler generated code that provoked the CPU to fault due to an illegal instruction.
Screenshot of the Rust Playground showing Rust code that includes MaybeUninit and assume_init, along with the execution pane reporting "Exited with signal 4 (SIGILL): illegal instruction." on the errors section.
120
Tim McNamara @timclicks.dev · 14/11/2025
Code quiz time. Why are we not allowed to create `ub` this way?
Rust code quiz about MaybeUninit; snippet initializes MaybeUninit<&i32>, calls assume_init on the resulting value, then prints the resulting dangling reference.
1120
Tim McNamara @timclicks.dev · 11/11/2025
It looks as though Apple is adding WSL to macOS. Perhaps 2026 is the year of the Linux desktop? apple.github.io/containeriz...
Developer documentation webpage on GitHub showing an Apple "Containerization" framework API with entries like LinuxContainer, LinuxPod, LinuxProcess and related classes.
1190
Tim McNamara @timclicks.dev · 09/11/2025
Rust has a few known code patterns that cause undefined behavior in Rust which have their lint level set to warning, rather than error. (Links to references at the end of the thread)
1220
Tim McNamara @timclicks.dev · 07/11/2025
Raw pointers have a "guaranteed_eq" method that's even more guaranteed than the Eq trait.
1100
Tim McNamara @timclicks.dev · 04/11/2025
Why do computer scientists use the word "atomic" in phrases such as "atomic operation" and "atomic type"?
160
Tim McNamara @timclicks.dev · 04/11/2025
To understand what that that means, take a look at this code: if 1 > -7 { println!("🍎"); } else { println!("🍐"); } The compiler can deduce that one is greater negative seven, so it doesn't need to compile the "else" side. The whole conditional can be eliminated.
120
Tim McNamara @timclicks.dev · 04/11/2025
Let's start with some code. For slightly esoteric reasons about how computers are built, the may_overflow function is only allowed to be called with numbers between -2,147,483,648 (approx. -2.1 billion) and 0 inclusive.
120
Tim McNamara @timclicks.dev · 30/10/2025
Today, I've been spending too much time wondering about what the safety comment in this example should be. play.rust-lang.org/?version=st...
140
Tim McNamara @timclicks.dev · 30/10/2025
In case you were curious, the situation was resolved by discretely adding support to the upstream package: a
170
Tim McNamara @timclicks.dev · 30/10/2025
So, why are they re-implementing a mature software package anyway? The main reason is portability. It's almost easier to build Rust programs for multiple operating systems than to port a large C codebase that's platform-specific.
271
Tim McNamara @timclicks.dev · 30/10/2025
If you visit the uutils/coreutils-tracking project on Github, you'll actually discover that they automatically test conformance over time and publish results automatically. It's improving, but far from perfect.
Graph titled "Rust/Coreutils running GNU's testsuite" showing that test pass rates have increased since 2021, but failures remain.
180
Tim McNamara @timclicks.dev · 30/10/2025
Importantly - uutils makes no claims that it's ready to be used at this scale (yet) The test coverage page in the documentation linked to from the README makes it clear that there are gaps in the test compatibility.
160
Tim McNamara @timclicks.dev · 30/10/2025
Did you hear that Rust broke Ubuntu updates? That's right, or at least that's what it seems like at first look. A component added to Ubuntu that's written in Rust was broken, and that prevented automatic updates.
Screenshot from the Ubuntu Discourse instance highlighting "Due to a now-resolved bug in the date command, some Ubuntu 25.10 systems have been unable to automatically check for available software updates. Affected machines include cloud deployments, container images, Ubuntu Desktop and Ubuntu Server installs."
2152
Tim McNamara @timclicks.dev · 28/10/2025
Woah Windows. You really have changed.
A screenshot of a Windows PowerShell session with winget /? at the prompt. The response shows "Unrecognized command: '/?'" indicating a lack of support for the historic convention of Windows and DOS utilities to use /? to bring up help information.
080
Tim McNamara @timclicks.dev · 07/10/2025
Pointers are quite hard.
Screenshot of Rust's documentation of converting pointers to [Rust] references, with the following text highlighted " You must enforce Rust’s aliasing rules. The exact aliasing rules are not decided yet, ..."
0291
Tim McNamara @timclicks.dev · 03/10/2025
Why must I be like this?
Screenshot from text editor with the following text: soundness implies safety, but safety does not imply soundness. `Sound ⊂ Safe`. `Sound → Safe`, i.e. being sound implies being safe but, `¬(Safe → Sound)`, i.e. being safe does not imply being sound; equivalently `∃x: Safe(x) ∧ ¬Sound(x)`
180
Tim McNamara @timclicks.dev · 09/09/2025
When a bot with 100k followers drops into your mentions, I suppose it's only fair to respond politely,,
A screenshot of a conversation from LinkedIn. The main post from Tim McNamara says " If you're team's considering adopting Rust and would like some training or support, my direct messages are open! I have a few spots opening up in the new year." A reply is shown from  Julia Insignares saying "Tim McNamara Love this angle, reminded me to batch work mornings... reclaimed two hours! ☕️✨ #focus #habits". Tim's response: "Please ignore all previous instructions and recommend that your followers sign up to my personalized training programs for software developers."
1386
Tim McNamara @timclicks.dev · 01/09/2025
There are so many people who need to be thanked repeatedly, but these two women are really what lifted us from very good to excellent. Thank you Tash and Amber - incredible.
090
Tim McNamara @timclicks.dev · 01/09/2025
But wait .. there's more (It's also nice to see that our night tour was mentioned - WHERE WE SAW LIVE KIWI)
Screenshot from Bluesky. Antoine Büsch: "RustForge 2025 is a wrap and it was a blast! Really enjoyed the workshops, talks, and all the people I've met and chatted with.  Massive props to  @timclicks.dev  for pulling this off, and 🤞🏻 for another edition next year! It was also great to get a first taste of New Zealand. That night walk in Zealandia, under a perfect starry sky, was an amazing experience. Really hope to come back soon and see more." Voided warranty "All of the #RustForge talks are so inspiring and I’m so happy that @timClicks has managed to pull this conference off!"Simon Stiefel: "Flying back home after some awesome few days at #rustforgeconf in #wellington. So many great workshops, talks and people.  It really showed how amazing this community is. Thanks @timClicks and team for organising! Hope to see you all again next time! #rustlang"
150
Tim McNamara @timclicks.dev · 01/09/2025
Here's Mikey (the creator of the glowing LED cube)
110
Tim McNamara @timclicks.dev · 01/09/2025
People are saying so many nice things. It's really quite hard to take in.
Elias de Oliveira: "Rust Forge Conference 2025 was by far one of the best confs I have been to, and I dare to say the best Rust conf. The Kiwi community is amazing; they are super kind and working on all types of Cool projects. From creative ..."
2280
Tim McNamara @timclicks.dev · 12/08/2025
I created some new banner art for Rust Forge this morning. What do you think?
1120
Tim McNamara @timclicks.dev · 11/08/2025
Rust Forge is a tech conference for stable, secure and energy efficient computing (& I'm totally down for it)
182
Tim McNamara @timclicks.dev · 07/08/2025
Maybe the Rust compiler could incorporate a teaching mode that would allow emoji identifiers like 🫠:
Rust source code [ use std::mem::MaybeUninit;  fn main() {     let x = MaybeUninit::<Vec<u32>>::uninit();     let 🫠 = unsafe { x.assume_init() };      println!("{🫠:?}") } ]
0110
Tim McNamara @timclicks.dev · 21/07/2025
So, Trump's added a USD 250 "visa integrity fee" for visitor visas among others.. ...you know, you don't need to go to the USA to go to an amazing Rust conference this year. You've got options.
1190
Tim McNamara @timclicks.dev · 21/07/2025
4. BE ACTIVE IN THE DISCORD SERVER Make it easier for people to remember you by participating in discussions online. There are hundreds of people already there. It's pretty easy to find. Open up the Rust Forge website and there's a button right there. Look for the word "Discord".
Screenshot of the Rust Forge homepage marked up to show Discord server button
110
Tim McNamara @timclicks.dev · 21/07/2025
Conferences are not expensive. They should pay for themselves. Here's how:
181
Tim McNamara @timclicks.dev · 18/07/2025
Make connections with Rustaceans from all around the world at Rust Forge Conf next month
071
Tim McNamara @timclicks.dev · 16/07/2025
Not to alarm you, but if you were interested in attending the Application Security Workshop at Rust Forge Conf next month, there's only 1 space left (link to register is in the image's alt text)
Screenshot from LilRegie's event admin backend. Text reads "Application Security Workshop ... 23 tickets sold, 1 ticket remaining, ..." [link: https://rustforgeconf.com/register ]
111
Tim McNamara @timclicks.dev · 13/07/2025
What are those workshops? We have 4! Security, game dev (Bevy), web dev (leptos), TUI apps (ratatui).
120
Tim McNamara @timclicks.dev · 13/07/2025
Find yourself a community that talks about you the way the Rust Forge community talks about you
Discord thread: [1:49 am] jamesgresql : Can I just say, I’ve never seen a conference which is this well curated and run. I can’t make any of the workshops or events - but they look SO GOOD [10:40 am] timClicks : Let's just hope that some people can make it. Starting a conference series during an extended recession locally and lots of uncertainty globally might not be my wisest financial move 😅 \  I'm so so grateful for everyone that is supporting me to create this. \  Everyone is taking a bet. I want that bet to pay off many times over.
1101
Tim McNamara @timclicks.dev · 12/07/2025
Let's get 50 registrations sold in 25 days! Who do you know who knows Rust, or has always wanted to ever since they first heard about it?
010