DHO is Mostly Confused

Rants from Devon H. O'Dell

Discovering Undefined Behavior

The C language is infamous for undefined behavior. Fantastic, multi-part articles by Chris Lattner and John Regehr have made their rounds over the years, describing several instances of undefined behavior. In particular, they describe how compilers are allowed to assume it does not occur in correct C programs, and therefore make optimizations that seem to remove correctness from programs. The intent of these posts seems to be to educate people that they should be aware of what consitutes undefined behavior.

Read On →

Help Vampires Aren't

Help vampires. It’s an idea apparently coined by Amy Hoy in an article she wrote over ten years ago. The “vampires” described are common in open source communities. They’re also prevalent in online chat communities like IRC, especially in channels ostensibly for help purposes. The blog post describes a real problem that people experience. Some people in these communities (usually neophytes) engage in maladaptive learning behaviors that drain the energy out of those who might be able to help them (hence the term “help vampire”).

Read On →

Pointers on Pointers

I’ve been hanging around in the ##c channel on Freenode (a channel for discussions about the C programming language) off-and-on for something like ten or fifteen years. One constant over that time (whatever my skill level) has been questions about pointers. They seem a topic that’s thoroughly confusing to many, especially neophyte hobbyists and autodidacts. Recently, I witnessed an explanation of pointers that involved people in small rooms, a man with a sign that points, and a magical great uncle named Merlin.

Read On →

CasTTY: Screencast your Terminal

An internet-friend has been encouraging me to put together some material to help teach people stuff about software engineering in C and POSIX environments. I’ve been wanting to do this sort of thing for some time, but the tools are always really obtuse. You have some application that captures a window and makes a video, but then nobody can really interact with the text. But then I remembered that ttyrec was a thing.

Read On →

Some Updates

I’ve been avoiding updating this site for some time because I really wanted to use Tufte CSS for this site. I switched my theme to the Hugo-Tufte theme for numerous reasons. For one, I really like they layout and readability. But I’m also finding that I really want to use things like sidenotes. I’m not super happy with how those are exposed in Hugo-Tufte, but I will grin and bear it until I spend some more time formalizing a Markdown-derivative that supports such things.

Read On →