hey wanna see somethng cursed
one part of this NIC is downloading UEFI boot options from another part of this NIC over HTTP. (well, failing to do it for some reason)
you're welcome
Posts by James Logan
A colourful box that says: New blog post! Callgraph Analysis Writing custom lints for fun and profit! Compiler team lead Jynn Nelson dives into the world of static analysis and callgraphs by showing how Ferrocene ensures that only the most strictly tested code is used in safety-critical applications. Thank you for reading and following us on BlueSky.
Some fun compiler-adjacent #RustLang reading: How can you make sure [panic!] is unreachable in part of your program? This write-up goes into how we approached callgraph analysis in #Ferrocene – and how you can try it out for yourself!
👉 ferrous-systems.com/blog/callgra...
a partially finished analytic 2D lighting solution, showing both the angular and radial component with a checkerboard pattern and color coding
I'm almost there it's so pretty!! 😭
this is the first time I've made extensive use of complex numbers in shader code, which has been fun!
it's an analytic 2D lighting system through piecewise conformal maps representing angular light/"sky" exposure, which means you get fully analytic penumbras!
Lol I mean explicitly enforce that a loop is unrolled. But yea
I found out recently that you can unroll loops at compile time, including ones parametrized on const generics. So now I have a space heater,
Picture of a spectrum analyzer and EMC probe set
New gear day!!
A snip of mechanical CAD of a circuit board in an enclosure
Snip of electrical CAD of a circuit board
Deimos DAQ is an interface between hardware and software for industrial and scientific use.
Unlike most DAQs, it comes integrated with precision frontends for common sensors.
The design is near complete. For project updates, check it out on Crowd Supply!
www.crowdsupply.com/deimos-contr...
@jamesjcode.bsky.social @thea.codes This ended up being caused by a broken kicad install, btw - not sure exactly what was broken, but uninstalling and reinstalling kicad 8 fixed the problem. Still nice to have a browser-based option that's immune to my installation mishaps!
Cat points out a real problem. Rather than “everyone builds their own custom app” with all the overhead that entails, my working hypothesis is that we’ll see an explosion of what @inkandswitch.com calls malleable software www.inkandswitch.com/essay/mallea...
A solid core + ability to extend
I whipped up another learning related Skill! Smaller than Learning Opportunities, but very complementary: interactive guidance through a quick research-backed psychological intervention that helps improve learning plans, motivation and commitment
github.com/DrCatHicks/l...
Our CFP is now open! 🦀 Submit your proposal by April 27 and join this year's conference as a speaker. We’re looking forward to seeing you in Barcelona! 🇪🇸
Submit your talk now 👇
sessionize.com/eurorust-2026/
#rustlang #eurorust25
Key to efficient learning is realizing how we ACTUALLY learn, not just what FEELS like learning. I wrote a Claude Skill for some friends to help them think about this and they've liked it -- see Principles for some directions you could explore
github.com/DrCatHicks/l...
Outer Wilds, if you haven't played it yet, is one of the best games of all time. It's a fun space exploration game with a timeloop twist, and 90% of all game progress happens in your head, as you learn things about the universe and your situation.
Absolutely play it if you haven't yet.
Coming soon: Ampisu, a full-featured, programmable lab power supply you can take anywhere 💫 www.crowdsupply.com/nessie-circu...
Yeah, in this case, I think it might be more related to tolerating missing libs or old versions of plugins or something than to the file's kicad version (which is indeed kicad 6). Kicad just closes with no error message
It been 0 days since @thea.codes 's KiCanvas saved my bacon again by opening an old layout file that was crashing KiCad.
If you're using KiCad for PCB design and haven't seen KiCanvas, give it a look! kicanvas.org
Pssssst, psssst...
Hey kids, wanna see the embassy executor running on a GPU?
Terminal with three panels. Top-left shows "zoo kcl analyze" command output, with a table showing mass, density, volume etc. Bottom-left panel shows "zoo kcl view" displaying four different angles of a model rendered as PNG. Right panel shows the KCL code for the model.
I added a new helpful one-stop-shop for all your physical analysis in Zoo's CLI. Find your model's mass, volume, surface area, etc with "zoo kcl analyze".
I just wish more web ui systems were aware of this. Some like Material and whatever github uses only render svg once, and don't re-render when CSS changes for dark/light mode, so even if you put CSS in your SVG to switch between light and dark mode, it won't actually update until refresh
hey uhhh. I got fired yesterday. if anyone has rust positions in the Netherlands let me know!
> dump firmware from a cheap and _very_ cursed handheld "microscope"
>
> look inside
>
> `NES Game`
$ strings plushlogic.bin
...
NES Game
nesGameSubOpenWin
nesGameInnerWinChildClose
nesGameWinChildClose
nesGameSubCloseWin
screenshot from C11 standard, appendix J.2, specifying that "The behavior is undefined in the following circumstances: — A ‘‘shall’’ or ‘‘shall not’’ requirement that appears outside of a constraint is violated (clause 4). — A nonempty source file does not end in a new-line character which is not immediately preceded by a backslash character or ends in a partial preprocessing token or comment (5.1.1.2). ..."
today i learned that if you don't end a C file with a newline, the compiler is free to steal your apes
Yeah, among other things, they set global flags that clip subnormal numbers to zero
Many of the #rust floating-point math functions have a note:
"The precision of this function is non-deterministic. This means it varies by platform, Rust version, and can even differ within the same execution from one invocation to the next."
When would results vary between invocations?
#rustlang
libm implementations are a little slower sometimes, but imo it is well worth the cost to achieve real cross-platform consistency, especially in scientific computing
I recommend using libm for any functions with that label unless you know they'll get compiled to a single instruction on your target platform (like sqrt() for example)
If you load a C module that uses -ffast-math, or if libc gets hooked and modified, it can change floating-point calculation behavior in your otherwise-separate program. I think there are also some function implementations that don't write all the bits of the float in some cases, so you get some junk
> Texas Instruments in advanced talks to buy Silicon Laboratories
We march ever closer to the "silicon vendor singularity"
www.reuters.com/technology/t...
- make the best chips
- every two years get bought by a new big chip or big finance company
- they want to know the secret to making the best chips
- the secret: "get gud"
- get sold again, more like
I can only imagine what silabs would get done without the corporate churn...