Home > Authors

David Chisnall

David Chisnall arrived at the Swansea University in 2000, looked at the sun and sea, and decided to stay there. Three years and one degree later, he was no longer under the illusion that the sun was a regular feature, but was persuaded to remain for another degree by the promise of a desk with a view of the sea. During his time as a PhD student, he worked hard at the best known of postgraduate activities: procrastination. This involved writing portions of A Practical Guide to RedHat Linux, Second Edition and regular articles for InformIT and a local tech news startup (which, as these are prone to do, has since gone bust).

David is an active member of the open source community. He is a founding member and core developer of the Étoilé project, which aims to build an open source user environment based for desktop and mobile computing systems on top of GNUstep. He also contributes to GNUstep and is the author of the GNUstep Objective-C runtime and maintains Objective-C support for open source operating systems in LLVM/Clang. In 2012 he was elected to the FreeBSD Core Team. His contributions to FreeBSD include improvements to locale support in libc, the port of libc++, and a replacement C++ runtime library: libcxxrt.

In 2007, David's first book, The Definitive Guide to the Xen Hypervisor, was published. This was begun as a procrastination activity, to distract himself from his looming PhD thesis deadline, and was successful: the book and the thesis were both completed within a fortnight of each other. He spent the next few years working freelance and writing three more books, two about Objective-C and one about Go, before returning to academia. He is now part of the Security Group at the University of Cambridge Computer Laboratory where he works on language and hardware co-design and continues to consult on compiler and language-related topics.

1.
How to Contribute to Open Source Projects
Dec 11, 2012
2.
seL4: A Security-Focused Microkernel
Dec 3, 2012
3.
The BBC Micro: Why It Mattered
Nov 22, 2012
4.
XHTML 2 vs. HTML5: A Tale of Two World Wide Webs
Nov 20, 2012
5.
"The Best Programming Advice I Ever Got" with David Chisnall
Oct 10, 2012
6.
An Overview of CoffeeScript
Aug 14, 2012
7.
An Overview of Dart, Part 2
Aug 6, 2012
8.
An Overview of Dart, Part 1
Jul 30, 2012
9.
Capsicum: Lightweight Isolation for FreeBSD Processes
Jul 9, 2012
10.
New Objective-C Features in LLVM 3.1
Jun 4, 2012
11.
A Go Primer
May 31, 2012
12.
A Whirlwind Tour of Haskell
May 22, 2012
13.
JavaScript: The Web Assembly Language?
Apr 16, 2012
14.
Functional Programming: Why Should You Care?
Mar 27, 2012
15.
A Light Introduction to ARM Assembly
Mar 20, 2012
16.
The New Features of C11
Mar 13, 2012
17.
New Objective-C Runtime Features in OS X 10.7 and iOS 5
Mar 6, 2012
18.
A Look at the 64-Bit ARMv8 Architecture
Feb 28, 2012
19.
Understanding C11 and C++11 Atomics
Feb 2, 2012
20.
Objective-C Memory Management
Jan 19, 2012
21.
David Chisnall Presents a Developer's Reading List
Jan 4, 2012
22.
Common Go Patterns
Dec 26, 2011
23.
Go for Objective-C Programmers, Part 3
Dec 20, 2011
24.
Go for Objective-C Programmers, Part 2
Dec 13, 2011
25.
Go for Objective-C Programmers, Part 1
Dec 8, 2011
26.
PKI: Broken, But Fixable
Nov 30, 2011
27.
NSOperation: Simple, Parallel, Cocoa
Nov 22, 2011
28.
A Tale of Two Concurrency Models: Comparing the Go and Erlang Programming Languages
Nov 14, 2011
29.
The Vision of Steve Jobs
Oct 25, 2011
30.
Open Standards for Social Networks
Oct 18, 2011
31.
Supporting Solid State Disks
Oct 10, 2011
32.
Solid State Disks: Now and In the Future
Oct 5, 2011
33.
Garbage Collection: Why, When, and How?
Sep 6, 2011
34.
Prototypes and Object Orientation
Aug 27, 2011
35.
Prototypes in JavaScript
Aug 22, 2011
36.
Automatic Reference Counting in Objective-C, Part 2: The Details
Aug 17, 2011
37.
Automatic Reference Counting in Objective-C, Part 1
Aug 15, 2011
38.
Implementing Feature X in C++, Part 2
Aug 8, 2011
39.
Implementing Feature X in C++, Part 1
Aug 1, 2011
40.
IPv6: What's the Problem?
Apr 27, 2011
41.
IPv6: Are We Nearly There Yet?
Apr 22, 2011
42.
Windows on ARM: The Challenges
Mar 30, 2011
43.
Cargo Cult Programming
Mar 24, 2011
44.
Text Processing with Objective-C, Part 2
Mar 8, 2011
45.
Text Processing with Objective-C, Part 1
Mar 1, 2011
46.
Objective-C Phrasebook: Numbers
Feb 25, 2011
47.
Optimizing Objective-C
Feb 7, 2011
48.
The Bright Parts of x86
Jan 31, 2011
49.
Giving Closure to C
Jan 24, 2011
50.
Fun with Attributed Strings
Jan 17, 2011
51.
Influential Programming Languages, Part 4: Lisp
Jan 12, 2011
52.
Influential Programming Languages, Part 3: Smalltalk
Jan 5, 2011
53.
Influential Programming Languages, Part 2: Simula
Dec 29, 2010
54.
Influential Programming Languages, Part 1: ALGOL
Dec 23, 2010
55.
Optimizing Code for Power Consumption
Nov 18, 2010
56.
Designing Mobile Interfaces
Nov 10, 2010
57.
How Hardware Will Shape Languages
Oct 13, 2010
58.
Writing Concurrent Systems, Part 3: Specialized Systems
Sep 27, 2010
59.
Writing Concurrent Systems, Part 2: Lockless Data Structures
Sep 20, 2010
60.
Writing Concurrent Systems, Part 1: Locking
Sep 13, 2010
61.
Understanding ARM Architectures
Aug 23, 2010
62.
Writing Portable C
Aug 17, 2010
63.
Engaging Open Source Communities
Aug 9, 2010
64.
Designing Abstractions
Aug 2, 2010
65.
Web Graphics, Part 3: WebGL
Jul 26, 2010
66.
Web Graphics, Part 2: Scalable Vector Graphics
Jul 19, 2010
67.
Web Graphics, Part 1: The Canvas
Jul 12, 2010
68.
Introducing OpenCL
Jul 6, 2010
69.
Understanding the Cocoa Text System
Jun 28, 2010
70.
Replacing Flash with Cocoa
Jun 23, 2010
71.
Cocoa Programming Fundamentals: UNIX Tools in Cocoa
May 27, 2010
72.
Inside the Symbian Kernel
Apr 26, 2010
73.
IPv6: Why Bother?
Apr 16, 2010
74.
Writing a Good Set of Coding Conventions
Apr 12, 2010
75.
SCTP: Reinventing Internet Communication
Apr 5, 2010
76.
Objective-C for Java Programmers, Part 2
Mar 29, 2010
77.
Objective-C for Java Programmers, Part 1
Mar 12, 2010
78.
Exploring HTML 5
Mar 8, 2010
79.
How to Make Money with Free Software
Mar 8, 2010
80.
Objective-C Design Patterns
Mar 5, 2010
81.
Grand Central Dispatch: Exciting or Overhyped?
Mar 2, 2010
82.
Introducing HTML 5
Feb 15, 2010
83.
The State of Open Source 3D
Feb 9, 2010
84.
What Is Mac OS X?
Feb 5, 2010
85.
Snow Leopard: The Underhyped APIs
Jan 29, 2010
86.
Foundation: The Objective-C Standard Library
Jan 26, 2010
87.
Cocoa Tips: Exposing System Services
Jan 22, 2010
88.
Cocoa Tips: Don't Reimplement Standard Functionality
Jan 15, 2010
89.
Localizing Cocoa
Jan 8, 2010
90.
How Core Animation Changed Cocoa Drawing
Jan 4, 2010
91.
Using Distributed Objects in Cocoa
Jan 1, 2010
92.
Inside Modern X11 Programming
Sep 18, 2009
93.
Making JavaScript Fast, Part 2
Sep 15, 2009
94.
Security in Your Pocket: OpenBSD on ARM
Sep 11, 2009
95.
Making JavaScript Fast, Part 1
Sep 8, 2009
96.
The Failure of the GPL
Aug 31, 2009
97.
How Not To Optimize
Aug 21, 2009
98.
A Half-Way Step to Apple’s Source Code: An Interview with David Chisnall
Jun 5, 2009
99.
Advanced Flow Control for Objective-C
Jun 5, 2009
100.
Erica Sadun on the iPhone SDK, OS X, and the Computing Landscape
Jun 5, 2009
101.
From NeXTSTEP to Cocoa: Erik Buck on the Development of Cocoa and Objective-C
Jun 5, 2009
102.
Fun with the Objective-C Runtime
Jun 5, 2009
103.
Marcus Zarra and Matt Long on Core Animation
Jun 5, 2009
104.
Steve Kochan on the Evolution of Objective-C
Jun 5, 2009
105.
The Technology NeXT Gave the World
Jun 5, 2009
106.
Where the Web and the Desktop Meet: An Interview with Lee Barney
Jun 5, 2009
107.
Pandora: An Open Console
Jun 2, 2009
108.
The Future of Wireless Networking
May 15, 2009
109.
GNU or Linux?
May 11, 2009
110.
Debugging C-Family Languages
Mar 27, 2009
111.
How Small Is Your PC? The Rise of Netbooks and Other Small Form-Factor PCs
Mar 23, 2009
112.
David Chisnall's CPU Feature Wishlist
Mar 13, 2009
113.
The Dynamic Languages Renaissance
Jan 30, 2009
114.
Robert Seacord on the CERT C Secure Coding Standard
Dec 15, 2008
115.
Objective-C for C++ Programmers, Part 3
Nov 21, 2008
116.
Objective-C for C++ Programmers, Part 2
Nov 14, 2008
117.
Objective-C for C++ Programmers, Part 1
Nov 7, 2008
118.
Writing Insecure C, Part 3
Oct 24, 2008
119.
Writing Insecure C, Part 2
Oct 17, 2008
120.
Writing Insecure C, Part 1
Oct 10, 2008
121.
iRex iLiad e-Reader: Linux's Answer to the Kindle?
Aug 29, 2008
122.
How It Works: Filesystems
Jun 13, 2008
123.
How the LLVM Compiler Infrastructure Works
May 23, 2008
124.
How It Works: Virtual Memory
May 21, 2008
125.
What Is C For?
May 16, 2008
126.
The Future of eBooks
Apr 25, 2008
127.
Imagining an Open Network
Apr 18, 2008
128.
Examining the Legendary HURD Kernel
Mar 14, 2008
129.
Competition Among Open Source Compilers
Feb 1, 2008
130.
Inside Your OS: What is a Process Scheduler, and How Does it Work?
Jan 25, 2008
131.
Bad UI of the Week: Read This (OK/Cancel)
Jan 18, 2008
132.
The End of the Desktop Era
Jan 11, 2008
133.
The What and Why of Open IM
Dec 28, 2007
134.
A Look at the Modern X Server
Dec 21, 2007
135.
The Future of Digital Media
Dec 14, 2007
136.
The Future of Identity
Dec 7, 2007
137.
Bad UI of the Week: Ask Forgiveness, Not Permission
Nov 21, 2007
138.
Copyright Versus Free Software
Nov 16, 2007
139.
Is Computer Science Dying?
Nov 9, 2007
140.
A Brief History of Programming, Part 2
Nov 2, 2007
141.
A Brief History of Programming, Part 1
Oct 26, 2007
142.
The 700MHz Question: Will the Wireless Spectrum Auction Lead to Innovation or More of the Same?
Sep 28, 2007
143.
Bad UI of the Week: The Menu Bar
Aug 24, 2007
144.
The Dark Corners of x86
Aug 17, 2007
145.
Bad UI of the Week: The Cross-Platform User Interface
Aug 17, 2007
146.
Bad UI of the Week: The Mythical "is Like" Operator
Aug 10, 2007
147.
Bad UI of the Week: Don't Make Me Tell You Twice...
Aug 3, 2007
148.
Bad UI of the Week: Kettles and Washing Machines
Jul 27, 2007
149.
The BBC iPlayer Controversy Explained
Jul 20, 2007
150.
Bad UI of the Week: The Mitten Mouse
Jul 20, 2007

RSS Feed Subscribe  RSS details

Cocoa Tip of the Day, 1/29/10
January 29, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/28/10
January 28, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/27/10
January 27, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/26/10
January 26, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/25/10
January 25, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/22/10
January 22, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/21/10
January 21, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/20/10
January 20, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/19/10
January 19, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/18/10
January 18, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/15/10
January 15, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/14/10
January 14, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/13/10
January 13, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/12/10
January 12, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/11/10
January 11, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/8/10
January 8, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/7/10
January 7, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/6/10
January 6, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/5/10
January 5, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/4/10
January 4, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server
Cocoa Tip of the Day, 1/1/10
January 1, 2010   Comments
Topics: Programming, MAC OS X/Other, Operating Systems, Server

David Chisnall