C fgetln and strcpy

This is a continuation of the exploring C articles I started here. This will focus on a quirk that caused me some debugging pain. In fairness, this is documented on the man-page of fgetln: This line is not a C string as it does not end with a terminating NULL character. A simple implementation of fgetln to iterate through every »

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 »