Articles
Automatic Reference Counting on iOS
Automatic reference counting is an innovative way of managing Objective-C objects on MacOS X 10.7 and iOS 5. It does away with explicit retain, release and autorelease messages, and it behaves the same on both platforms - Mobile
We Who Value Simplicity Have Built Incomprehensible Machines
How creeping feature additions turn good ideas into morasses of incomprehensible options. - Design
Developer's Reading List
The most interesting books of the last month, selected and reviewed by Dr. Dobb's editors. - Tools
Extracting Function Parameter and Return Types in C++
Using the metaprogramming capabilities of C++ and generic programming, it's possible to create an elegant parser of parameter types. Command-line interpreters, parsers, and syntax checkers are among the many applications. - C/C++
Software Engineers All!
Faking a CS degree will get you fired. Falsely claiming to be a software engineer will get you wait, is that even possible? - Design
Interview With Ward Cunningham
The creator of the Wiki dishes on the Wiki, Wikipedia's policies, OO design, technical debt, CoffeeScript and Perl, how to survive as a veteran programmer, and doing the simplest thing that could possibly work. - Design
Testing OO Systems, Part 1
OO tests stimulate an object and observe that object's behavior. The tests do not look at the object's state to judge whether or not the test succeeds, they just look at the object's behavior. When I call dog.expressHappiness(), my test succeeds when I observe that wagTail() is called. I would never look inside the dog at the isHappy field. - Testing
The New C Standard Explored
C11 specifies many security features that require minimal changes to existing code. They greatly reduce unexpected behavior and prevent many kinds of common attacks. - C/C++
The New Native Languages
D and Go are at the forefront of a new generation of native languages emerging in the space between C and C++. - Design
Kernels, Contexts, Threads, and Extensible Database Architecture
If you are building a new database management system or simply want to write better database applications, you should be aware of the extensible architecture of operating systems and database managers. - Database
Best of the Web
What the New iPad and iOS 5.1 Mean for Developers
The new display is gorgeous. But local storage for HMTL5 is currently broken on the new iPad and performance of some apps is slower. Here's a deep dive into the issues, including benchmarks and analysis.
Triple Buffering as A Concurrency Mechanism
Triple Buffering is a way of passing data between a producer and a consumer running at different rates. It ensures that the consumer sees only complete data with minimal lag.
Embedding GDB Breakpoints in C Source Code
Have you ever wanted to embed GDB breakpoints in C source code? Something like this:
printf("Hello,\n");
EMBED_BREAKPOINT;
printf("world!\n");
Writing Kernel Exploits
Why attack the kernel? Because it has a huge attack surface with potential for very interesting bugs. This presentation (pdf) takes a code-level dive into recently reported Linux-kernel exploits.


