About Building and Extending Gaim
I (Sean) am pleased to announce the publication of my book, Open Source Messaging Application Development: Building and Extending Gaim.
I started working on Gaim as a university freshman five years ago. At the time, I knew nothing about programming graphical user interfaces, or network programming, or internationalization. In fact, I didn't even know C, the language Gaim is written in. I did know, however, that open-source development (and specifically on a popular project like Gaim) was really exciting to me and I wanted to get involved. I started writing numerous small patches I learned C in the process, by example, relying on Gaim's source code. With every small change I made, I learned more and more about open-source development. Now, I maintain the Gaim project, one of the consistently most active open-source projects for years running.
People ask me all the time: "how do I get started with open-source development?" This book is my answer to that question. The book isn't about Gaim, per se, but rather about open-source development with Gaim as the prevailing theme throughout. The book explains how to become an open-source developer the same way I learned it myself: studying actual Gaim source code. It serves as a field guide for novice developers to learn more about open-source development whether they want to work on Gaim or create their own applications with the same open-source tools and techniques.
Major topics discussed in this book include: prevelent open-source development tools, such as GCC, GDB, CVS, Vim, etc; GUI programming with GTK+ (read along as I rennovate the File Transfer dialog as seen at right); networking, network protocol design and implementation, internationalization, and portability. Throughout, I offer my personal insight from my five years of experience with the Gaim project.
The book also makes use of practical Gaim plug-ins developed specifically to highlight certain techniques. These plug-ins introduce new functionalities such as the URL Catcher which captures all incoming hyperlinks from chats to a single window and a web server that allows you to remotely read your new messages from any computer with a web browser.
One of the most important freedoms of free software is the freedom to study how a program works. This freedom has allowed me to build my knowledge upon the efforts of other, more experienced developers before me. After reading this book, I hope you can build your knowledge upon mine.
Please IM me or E-mail me if you have any questions.
-Sean.