I have written or contributed to the following books.
Seven More Languages in Seven Weeks by Bruce A. Tate, Fred Daoud, Ian Dees, and Jack Moffitt. Buy now from Pragmatic Programmers or Amazon.
Seven More Languages in Seven Weeks
Great programmers aren’t born—they’re made. The industry is moving from object-oriented languages to functional languages, and you need to commit to radical improvement. New programming languages arm you with the tools and idioms you need to refine your craft. While other language primers take you through basic installation and “Hello, World,” we aim higher. Each language in Seven More Languages in Seven Weeks will take you on a step-by-step journey through the most important paradigms of our time. You’ll learn seven exciting languages: Lua, Factor, Elixir, Elm, Julia, MiniKanren, and Idris.
I wrote two chapters of the book—one on Julia and one on MiniKanren. Having done lots of numerical analysis in school and on several professional projects, I found Julia to be an elegant take in a field of messy competitors. In particular its use of many ideas from functional programming appealed to me.
MiniKanren is the only language I’ve yet used where after writing a program to give you an answer, you can run the program in reverse from an answer to derive possible questions. Logic programming is a unique tool, and while I don’t expect to use it every day, its key concepts—such as unification—are important in many applications.
Seven Web Frameworks in Seven Weeks by Jack Moffitt and Fred Daoud. Buy now from Pragmatic Programmers or Amazon.
Seven Web Frameworks in Seven Weeks
I have spent much of my career in building web applications on both the frontend and backend. In this book, Fred and I examine a range of web frameworks in a number of languages. I wrote the chapters on Webmachine, Yesod, Ring, and Immutant. All the frameworks in the book have unique ideas on how to solve problems. I am particular fond of Webmachine and Immutant—Webmachine for its HTTP flowchart in code and Immutant for its taking a verbose and complicated system and making it simple and elegant.
XMPP is a versatile protocol which I have used in a variety of applications at different companies. It is an open standard, extensible, and useful for much more than the instant messaging traffic it was originally designed for.
The book covers XMPP development in the context of web applications and uses the Strophe.js library which I created. However, it also teaches the fundamentals of the protocol and how to extend it, and it should be useful for any developer thinking of using or beginning to learn XMPP.
Game Programming Gems 3 edited by Dante Treglia. Buy now from Amazon.
Best of Game Programming Gems edited by Mark DeLoura. Buy now from Amazon.
Game Programming Gems 3 and Best of Game Programming Gems
I contributed the chapter “Compressing Audio with Vector Quantization” to help game programmers make use of the Ogg Vorbis audio codec in their games. This chapter proved to be popular enough to warrant inclusion in the “best of” collection drawing from all the books in the series.