nrc
banner
ncameron.org
nrc
@ncameron.org
Reposted by nrc
"Memory Safety for Skeptics," where I argue why memory safety is worthwhile to pursue amid competing priorities!

queue.acm.org/detail.cfm?i...

#rustlang
Memory Safety for Skeptics - ACM Queue
queue.acm.org
November 10, 2025 at 6:11 PM
One thing that makes me sad about ai is that although it is incredibly powerful as a dev tool, we could have trad dev tools which could do a lot of what it does, but which have a precise interface, don’t make bugs, and don’t take forever, but we can’t monetise trad dev tools
November 6, 2025 at 7:16 PM
Reposted by nrc
Last week I wrote a section on (non-IO) blocking and async Rust for the async book: rust-lang.github.io/async-book/p.... I talk about 'not blocking the thread', combining CPU-intensive work with async, etc.

#RustLang
IO and issues with blocking - Asynchronous Programming in Rust
rust-lang.github.io
November 3, 2025 at 7:20 PM
Last week I wrote a section on (non-IO) blocking and async Rust for the async book: rust-lang.github.io/async-book/p.... I talk about 'not blocking the thread', combining CPU-intensive work with async, etc.

#RustLang
IO and issues with blocking - Asynchronous Programming in Rust
rust-lang.github.io
November 3, 2025 at 7:20 PM
Reposted by nrc
@ncameron.org has written a couple posts about the work he did with Zoo on KCL, their CAD programming language. This one on how it handles units is *super* interesting and gives a good taste of the neat kinds of not-mainstream(-yet!) problems to solve in their space: www.ncameron.org/blog/kcl-par...
KCL part 1: units
This blog post is about numeric units. Numbers in KCL are not just a number like 42 they always include units, e.g., 42mm. This is not unknown: F# has a famous and well-designed system, and more recen...
www.ncameron.org
November 3, 2025 at 4:10 PM
Reposted by nrc
November 2, 2025 at 2:47 PM
Incredible insight into what is happening in Sudan and, importantly, on the wider world. Depressing but important
For those asking for background - I was in Sudan twice this year and wrote about it
www.theatlantic.com/magazine/arc...
November 2, 2025 at 8:37 PM
Reposted by nrc
The second blog post in my series on KCL: numeric units (aka unit types), or how `fn foo(x: mm)` Just Works, whether you call it with `10mm`, `3in`, or `42`. www.ncameron.org/blog/kcl-par...
KCL part 1: units
This blog post is about numeric units. Numbers in KCL are not just a number like 42 they always include units, e.g., 42mm. This is not unknown: F# has a famous and well-designed system, and more recen...
www.ncameron.org
October 30, 2025 at 7:04 PM
Reposted by nrc
Also, detection of issues at scale with the help of automation is good. It's why at MITRE we built @hipcheck.mitre.org, though there's more work to do for it and it would need to catch on. At the very least, common detection drives up cost / complexity for attackers.
October 30, 2025 at 8:44 PM
I've talked about incentivisation twice - devs are incentivised to make the most use of 3rd party code at the lowest cost - meaning more deps and cursory reviews
The former are useful, but require trusting strangers to do an incredibly difficult job which they are incentivised to do badly. The latter is a partial solution since crate review is still a problem
October 30, 2025 at 8:40 PM
So what should we do? As a developer you only have bad options...
I've done a 180 on supply chain security - I used to think it was mostly a theoretical problem: between communities of mostly good actors, many eyes to review, good policies for announcing vulns and removing crates, and basic due diligence, issues would be found and addressed before doing damage
October 30, 2025 at 8:38 PM
I've done a 180 on supply chain security - I used to think it was mostly a theoretical problem: between communities of mostly good actors, many eyes to review, good policies for announcing vulns and removing crates, and basic due diligence, issues would be found and addressed before doing damage
October 30, 2025 at 8:36 PM
The second blog post in my series on KCL: numeric units (aka unit types), or how `fn foo(x: mm)` Just Works, whether you call it with `10mm`, `3in`, or `42`. www.ncameron.org/blog/kcl-par...
KCL part 1: units
This blog post is about numeric units. Numbers in KCL are not just a number like 42 they always include units, e.g., 42mm. This is not unknown: F# has a famous and well-designed system, and more recen...
www.ncameron.org
October 30, 2025 at 7:04 PM
Writing another chapter on async rust and commenting on performance issues. Wrestling with wanting to add a bunch of parentheticals to every statement with all the exceptions to the rule
October 28, 2025 at 8:23 PM
A blog post on new features in Rust, covering the last year and a half (since the last one): www.ncameron.org/blog/recent-... (spoiler: a lot more new stuff than I realised!)

#rustlang
Recent Rust Changes
In May last year I wrote a blog post on how Rust had evolved from the 1.0 release to 1.78. I found it really interesting to group all the changes together by topic, rather than seeing the language evo...
www.ncameron.org
October 27, 2025 at 8:13 PM
Spending a relaxing Sunday afternoon dealing with printer issues. I want to scream
October 26, 2025 at 2:21 AM
Reposted by nrc
I currently have availability for Rust coaching, adoption, or development; from a single call to ongoing 3 days/week. I can help your team get things done, adopt Rust and use it more effectively, or to accurately evaluate Rust as a new technology.
October 23, 2025 at 7:06 PM
I think it is pretty confusing what constitutes 'long-running CPU work' as a thing which is bad in async Rust (and even when and why it is bad). People often talk about the importance of `await` points (like "code shouldn't run for a long time without and `.await`"), but that is not enough!
October 23, 2025 at 11:51 PM
I currently have availability for Rust coaching, adoption, or development; from a single call to ongoing 3 days/week. I can help your team get things done, adopt Rust and use it more effectively, or to accurately evaluate Rust as a new technology.
October 23, 2025 at 7:06 PM
Reposted by nrc
Amazon MQ is now available in AWS Asia Pacific (New Zealand) Region

AWS brings message queues to New Zealand! Because apparently "SQS" wasn't confusing enough, you can now overpay for ActiveMQ in yet another region. Just don't ask about the pricing - it's more complex than a hobbit's family tree.
October 22, 2025 at 9:09 PM
Reposted by nrc
For the past year-ish I've been working on KCL, a language for CAD. It's an interesting and unique domain-specific language. I'll be writing a series of blog posts about it and my work, the first is an intro to KCL: www.ncameron.org/blog/kcl-par...
KCL part 0
For roughly the past year, I've been working with the good folk at Zoo on their CAD product, the Zoo Modelling Studio (aka ZMS, aka KittyCAD). I've mostly been working on the design and implementation...
www.ncameron.org
October 21, 2025 at 6:53 PM
For the past year-ish I've been working on KCL, a language for CAD. It's an interesting and unique domain-specific language. I'll be writing a series of blog posts about it and my work, the first is an intro to KCL: www.ncameron.org/blog/kcl-par...
KCL part 0
For roughly the past year, I've been working with the good folk at Zoo on their CAD product, the Zoo Modelling Studio (aka ZMS, aka KittyCAD). I've mostly been working on the design and implementation...
www.ncameron.org
October 21, 2025 at 6:53 PM
Reposted by nrc
It's been a while, but I've written another blog post - on panicking and what Rust programmers should do about panicking: www.ncameron.org/blog/to-pani...
To panic or not to panic
From a user's perspective an uncaught panic in a Rust program is a crash. A panic will terminate the thread and unless the developers have taken some care, that leads to the program terminating. This ...
www.ncameron.org
October 14, 2025 at 8:50 PM
One of the big issues with supply chain security is there is no good compromise position: you can be totally paranoid about it and minimise your deps and review every version in detail (which is both a lot of effort and goes against the grain of effective/idiomatic Rust use) or you can YOLO it,
October 14, 2025 at 11:59 PM
It's been a while, but I've written another blog post - on panicking and what Rust programmers should do about panicking: www.ncameron.org/blog/to-pani...
To panic or not to panic
From a user's perspective an uncaught panic in a Rust program is a crash. A panic will terminate the thread and unless the developers have taken some care, that leads to the program terminating. This ...
www.ncameron.org
October 14, 2025 at 8:50 PM