Quantcast
David Flanagan

Biography

David Flanagan is a computer programmer who spends most of his time writing about JavaScript and Java. His books with O'Reilly include Java in a Nutshell, Java Examples in a Nutshell, Java Foundation Classes in a Nutshell, JavaScript: The Definitive Guide, and JavaScript Pocket Reference. David has a degree in computer science and engineering from the Massachusetts Institute of Technology. He lives with his wife and children in the U.S. Pacific Northwest bewteen the cities of Seattle, Washington and Vancouver, British Columbia. David has a blog at www.davidflanagan.com.

Books

The Ruby Programming Language The Ruby Programming Language
by David Flanagan , Yukihiro Matsumoto
January 2008
Print: $39.99
Ebook: $31.99

starstarstarstarstar (5)
(Read Reviews)

JavaScript: The Definitive Guide JavaScript: The Definitive Guide
by David Flanagan
Fifth Edition August 2006
Print: $49.99
Ebook: $39.99

starstarstarstarstar (4)
(Read Reviews)

Java in a Nutshell Java in a Nutshell
by David Flanagan
Fifth Edition March 2005
Print: $44.95
Ebook: $35.99

starstarstarstarstar (5)
(Read Reviews)

Java 5.0 Tiger: A Developer's Notebook Java 5.0 Tiger: A Developer's Notebook
by David Flanagan , Brett McLaughlin
June 2004
Print: $34.99
starstarstarstarstar (4)
(Read Reviews)

JavaScript Pocket Reference JavaScript Pocket Reference
by David Flanagan
June 2004
Print: $4.99

Java Examples in a Nutshell Java Examples in a Nutshell
by David Flanagan
Third Edition January 2004
Print: $39.95
Ebook: $39.95

starstarstarstarstar (4)
(Read Reviews)

JavaScript Pocket Reference JavaScript Pocket Reference
by David Flanagan
Second Edition October 2002
Print: $9.95
Ebook: $7.99

starstarstarstarstar (5)
(Read Reviews)

Java Enterprise in a Nutshell Java Enterprise in a Nutshell
by William Crawford , Jim Farley , David Flanagan
Second Edition April 2002
OUT OF PRINT
starstarstarstarstar (3)
(Read Reviews)

Java In a Nutshell Java In a Nutshell
by David Flanagan
Fourth Edition March 2002
OUT OF PRINT
starstarstarstarstar (3)
(Read Reviews)

JavaScript: The Definitive Guide JavaScript: The Definitive Guide
by David Flanagan
Fourth Edition November 2001
OUT OF PRINT
starstarstarstarstar (4)
(Read Reviews)

Java Professional Library Java Professional Library
by Kris Magnusson , David Flanagan , Jim Farley , William Crawford
November 2000
OUT OF PRINT
starstarstarstarstar (2)
(Read Reviews)

Java Examples in a Nutshell Java Examples in a Nutshell
by David Flanagan
Second Edition September 2000
OUT OF PRINT
starstarstarstarstar (4)
(Read Reviews)

Java in a Nutshell Java in a Nutshell
by David Flanagan
Third Edition December 1999
OUT OF PRINT
starstarstarstarstar (4)
(Read Reviews)

Java Foundation Classes in a Nutshell Java Foundation Classes in a Nutshell
by David Flanagan
October 1999
Print: $49.99
starstarstarstarstar (4)
(Read Reviews)

Java Enterprise in a Nutshell Java Enterprise in a Nutshell
by Kris Magnusson , David Flanagan , Jim Farley , William Crawford
September 1999
OUT OF PRINT

(Read Reviews)

Java Power Reference Java Power Reference
by David Flanagan
March 1999
OUT OF PRINT
starstarstarstarstar (5)
(Read Reviews)

JavaScript Pocket Reference JavaScript Pocket Reference
by David Flanagan
October 1998
OUT OF PRINT
starstarstarstarstar (4)
(Read Reviews)

Javascript: The Definitive Guide Javascript: The Definitive Guide
by David Flanagan
Third Edition June 1998
OUT OF PRINT
starstarstarstarstar (5)
(Read Reviews)

Java Examples in a Nutshell Java Examples in a Nutshell
by David Flanagan
September 1997
OUT OF PRINT
starstarstarstarstar (3)
(Read Reviews)

Java Reference Library on the Web Java Reference Library on the Web
by John Zukowski , Josh Peck , Patrick Niemeyer , Mark Grand , David Flanagan
June 1997
OUT OF PRINT

Java in a Nutshell, Deluxe Edition Java in a Nutshell, Deluxe Edition
by David Flanagan
June 1997
OUT OF PRINT

Java in a Nutshell Java in a Nutshell
by David Flanagan
Second Edition May 1997
OUT OF PRINT

(Read Reviews)

Netscape IFC in a Nutshell Netscape IFC in a Nutshell
by Dean Petrich
January 1997
OUT OF PRINT

JavaScript: The Definitive Guide JavaScript: The Definitive Guide
by David Flanagan
Second Edition January 1997
OUT OF PRINT

(Read Reviews)

JavaScript: The Definitive Guide, Beta Version JavaScript: The Definitive Guide, Beta Version
by David Flanagan
August 1996
OUT OF PRINT

Java in a Nutshell Java in a Nutshell
by David Flanagan
March 1996
OUT OF PRINT

Volume 6C: Motif Tools Volume 6C: Motif Tools
by David Flanagan
August 1994
OUT OF PRINT

X Toolkit Intrinsics Ref Man R5 X Toolkit Intrinsics Ref Man R5
Third Edition August 1992
Print: $44.95

Programmer's Supplement for R5 of the X Window System Programmer's Supplement for R5 of the X Window System
by David Flanagan
November 1991
OUT OF PRINT

Articles

Blog

David's blog posts are hosted at:
http://davidflanagan.com

Google Closure Library and Optimizer

November 06 2009

Google has open-sourced the javascript library and optimizer they use in gmail and other web applications. They call it "Closure" and you can read about it here. While the optimizer looks very cool, I think the library is most... read more

My Ruby Book on your iPhone. Cheap!

August 24 2009

O'Reilly has just released The Ruby Programming Language as a standalone iphone app! Looks like you can get your hands on it for just $5 (The cover price of the print edition is $40.) I don't have an iphone, but... read more

typeof, isFunction vs. isCallable, now and in ECMAScript 5

August 24 2009

Function objects in JavaScript are callable: you can invoke them. Other, non-function objects are allowed to be callable, however. Host objects in IE (things like Window.alert()) are callable, but are not native function objects. (Other browsers implement DOM methods as... read more

Array.some is like forEach() with an early termination option

August 19 2009

I was recently writing some documentation for the Array.forEach() method (part of ES5, but most browsers other than IE support it now) and worrying about the fact that there is no clean way to terminate the iteration prematurely. Nothing like... read more

Good algorithms are better than clever code

August 18 2009

Yesterday, I posted an entry about a clever way to implement string multiplication in JavaScript using Array.prototype.join() In comments, redraiment challenged me, suggesting that an implementation based on string doubling would be more efficient. Sure, I thought, for really large... read more

String Multiplication in JavaScript

August 18 2009

In Ruby, the "*" operator used with a string on the left and a number on the right does string repetition. "Ruby"*2 evaluates to "RubyRuby", for example. This is only occasionally useful (when creating lines of hyphens for ASCII tables,... read more

Proposed coding convention for closures

May 15 2009

By now, many of us have gotten used to using closures in JavaScript to define a scope that holds private variables and utility functions so that we don't have to put these in the global namespace. The idiomatic code... read more

New version of Jude, plus Java 1.5 server JVM bug

April 27 2009

I've just released Jude version 1.07. This is a relatively minor bug-fix release. Thanks to B.L. for reporting the bugs and helping to isolate them. Interestingly, one of the bugs reported against the previous version was an ArrayIndexOutOfBoundsException at a... read more

New ECMAScript version numbering scheme

March 30 2009

Per a post today on the es-discuss mailing list, the next version of the JavaScript standard will be ECMAScript 5. This version was previously called ECMAScript 3.1, and is a relatively small and long-overdue update to the language. Version 4... read more

$SAFE is Proc-local

November 14 2008

While researching Ruby's new-in-1.9 Object methods untrusted?, untrust, and trust, I discovered something I did not know about the $SAFE variable: in addition to being Thread-local, it is also Proc-local. Proc objects (both procs and lambdas) have their own... read more

Bending the Arc of History

November 06 2008

President-elect Obama sure writes and delivers a great speech! My favorite line from his victory speech last night: put their hands on the arc of history and bend it once more toward the hope of a better day. I... read more

comments broken

October 28 2008

I've migrated my site to a new webhost, and am now trying to upgrade my blogging software... Comments are broken, and other stuff is too!... read more

Method Chaining Part 2

October 28 2008

The comments on my last post about method chaining in JavaScript were spectacular, and I want to publicly thank all who took the time to read my code and think about it. The final version of the code (which you... read more

Method chaining in JavaScript inheritance hierarchies

October 28 2008

In the 5th edition of my JavaScript book I made the embarrassing mistake of recommending a constructor and method chaining technique that only works for shallow class hierarchies--it works when class B extends A, for example, but not when... read more

Ruby Review Roundup

October 28 2008

The Ruby Programming Language has been gratifyingly well received by readers and reviewers. In addition to glowing reviews at rubyinside.com and slashdot.org, it has been reviewed ten times at amazon.com and I proud to say that all ten reviews... read more