Programming Leftovers
-
University of Toronto ☛ In Go, constant variables are not used for optimization
Recently I wrote about partially emulating #ifdef with build tags and consts, exploiting Go's support for dead code elimination, and I said that this technique didn't work with variables. That's actually a somewhat interesting result. To see how it is, let's start with a simple Go program, where the following code is the entire program: [...]
-
MaskRay ☛ Exploring the section layout in linker output
This article describes section layout and its interaction with dynamic loaders and huge pages.
Let's begin with a Linux x86-64 example involving global variables exhibiting various properties such as read-only versus writable, zero-initialized versus non-zero, and more.
-
Nicholas Tietz-Sokolsky ☛ Three days of Advent of Code in Hurl
These three days of it were very useful in getting comfortable with Hurl and they were also critical in developing Hurl's built-ins and standard library to a reasonable point. I'm pretty confident now that you could do all of Advent of Code in it. And I'm also now free from Hurl, and so are you: this is the last either of us need to think about it.
-
Nelson Elhage ☛ Performance engineering, profilers, and seeing the invisible
I was recently introduced to the paper “Seeing the Invisible: Perceptual-Cognitive Aspects of Expertise” by Gary Klein and Robert Hoffman. It’s excellent and I recommend you read it when you have a chance.
Klein and Hoffman discuss the ability of experts to “see what is not there”: in addition to observing data and cues that are present in the environment, experts perceive implications of these cues, such as the absence of expected or “typical” information, the typicality or atypicality of observed data, and likely/possible past and future time trajectories of a system based on a point-in-time snapshot or limited duration of observation.
I want to talk about some of the ideas of that piece in the specific context of performance engineering, and what profilers can and cannot do for you. In particular, I think this piece makes a great lens for discussing why profilers are both invaluable tools and yet also not the be-all and end-all of performance engineering.
-
Austin Gil ☛ AI for Web Devs: AI Image Generation
In this post, we are going to use AI to generate images. Before we get to that, there’s another components I want to add to our existing application.
-
David Buchanan ☛ Colliding Secure Hashes
At this point, it's well known that hash functions like MD5 and SHA1 have cryptographic weaknesses, allowing collisions (a pair of distinct inputs that produce identical outputs) to be engineered using much less computation than the designers intended.
But what if we take a nominally secure hash like SHA-256? Can we attack that, without exploiting any structural weaknesses in the hash function itself?
The short and boring answer is "no, SHA-256 is secure." But what if we consider a weakened version? How much weaker do we have to make it before we can generate collisions? There's more than one way to weaken a hash, but in this article we'll consider truncation: throwing away some portion of the hash digits.
-
Rachel ☛ Smashing the stack for pain and misery
I need to remind people how easy it is to forget just one of the many gotchas of working on this ridiculous computer stuff. One missed nugget of data at a critical moment can leave you scratching your head and going "WTF" for longer than would otherwise seem reasonable.
-
Godot Engine ☛ Prepare to hear a lot more from us!
The Godot Foundation is onboarding a person in charge of Community & Communications, and there is a feedback form for you to fill out.
-
Education
-
Frank Delporte ☛ Interviews at the J-Fall 2023 Conference
I had a lot of interesting talks with Java experts since I started producing the Foojay Podcast. But when I asked the organizers of the J-Fall conference, if I could do some kind of live broadcast at their event, I hadn’t imagined it would be such an amazing experience! During the day I had 29 interviews, which I all broadcasted live on multiple websites (YouTube, LinkedIn, and Twitter) with the amazing restream system.
-
-
Qt
-
Qt ☛ Qt Journey–Creating Great Customer-Facing Software
In this series, we share various career stories from people working with Qt. Today, I am interviewing Øyvind Bakken, a tech lead at reMarkable, based in Oslo, Norway.
-
-
Rust
-
Rust Blog ☛ The Rust Programming Language Blog: Launching the 2023 State of Rust Survey
It’s time for the 2023 State of Rust Survey!
Since 2016, the Rust Project has collected valuable information and feedback from the Rust programming language community through our annual State of Rust Survey. This tool allows us to more deeply understand how the Rust Project is performing, how we can better serve the global Rust community, and who our community is composed of.
-