Debugging Running Processes with GDB

This is a continuation of the exploring C articles I started here. This one will focus less on C and more on some obscure commands in GDB. When compiling a program with gcc or clang, you can pass the -g switch to produce a dsym file along with a debugging version of your program. This allows you to see the »

C Multi-Level Pointers

I feel like I have read a lot of anti-C articles recently. Don't worry, I'm not going to sit here and claim C is the greatest language ever invented. However, at this point, it has taken the unfairly assigned mantel of all the worst things about unprotected programming. I thought it might be fun to take a break from that »

Chrome Extension Store Scam

One nice thing about writing developer-facing applications is I know I'll never get famous. Most of the stuff I publish is generally used by 15-100 people. So imagine my surprise when over the course of ten days in October, one of my extensions jumped from 100 users to over 19,000. The extension in question was jQuery Injector, which is »

Gulp: Splitting JS Compilation Into Sections

While developing Inform Mapper, I ran into a slight problem with gulp and cytoscape. I was running a gulp task to combine and minify all my js, but found that the task was taking 8 seconds, which was far too slow to easily develop in. After trail-and-error, I identified the culprit as cyotscape, which was taking 7.5 seconds to »

Text Encodings

I have been doing a lot of work recently on implementing a Z-Machine disassembler. Half the fun of the project is dealing with the antiquated tech stack of 1979. With memory at that time expressed in kilobytes, a lot of interesting techniques were used to cut down the size of programs. Like, for example, how text is encoded. Let us »