GNOME/GTK+ Programming Bible
Author: Arthur Griffith
Publisher: IDG Books Worldwide
Price: $39.99 US
Reviewer: Ben Crowder
It all began with the GIMP. Years back, the developers of the famous image processing program realized that Motif (a toolkit for X Windows) wasn't as good as they had thought, but there wasn't much else out there to choose from. So they wrote their own widget set, GTK+. Then, later on, came GNOME, which wrapped around GTK+ and provided higher-level widgets (like the calendar and the calculator). It can all get rather confusing at times, which is where The GNOME/GTK+ Programming Bible comes in.
The book is a solid introduction and reference to both GTK+ and GNOME programming. It is liberally scattered with code (roughly a third of the book consists of examples and sample code, all of which is on the accompanying CD-ROM), and includes line-by-line explanations for most of the samples.
Chapter One introduces GTK+ and GNOME, explaining how GTK+ is object-oriented although it's written in C, as well as sketching out what signals and callbacks are. The second chapter is a tutorial on a very basic GTK+ program, a window with a button. It also covers how to create a basic GNOME window. In Chapter Three, you learn how GTK+ and GNOME pop-ups and dialogs work. The GTK+ method of packing widgets is, admittedly, different from most other windowing systems, and the fourth chapter covers just that by explaining packing boxes and tables. Virtually infinite flexibility comes with the ability to pack widgets inside of other widgets (i.e., tables within boxes within notebooks within scrolled windows within tables, ad infinitum). Chapter Five explains how this works, showing you the way to endless hours of packing pleasure. The glues that hold GTK+ together—events, signals and callbacks—are described in Chapter Six.One main point of GUIs is the ability to have graphical representations on the screen, <\#225> la icons and other pictures. Chapter Seven explains the XBM and XPM formats and how to use them in your programs. Finally, the eighth chapter covers menus and toolbars—stock menus, disabling/enabling menu items, and radio/toggle buttons in toolbars and menus.
Part II contains step-by-step instructions on a variety of GTK+/GNOME subjects. Chapter 9 covers the GnomeCanvas widget, Chapter Ten describes the GTKDrawingArea widget, and Chapter 11 explains how to use graphic contexts. Input devices are important in any type of interface, so Chapter 12 is devoted entirely to the mouse and the keyboard. Chapter 13 provides some basic instruction on using fonts, and Chapter 14 shares some tricks for working with widgets. GNOME applets are covered in the fifteenth chapter, and drag-and-drop is described in the sixteenth. MDI (Multiple Document Interface, used for having more than one document open at a time) is explained in Chapter 17. From time to time, you'll realize the widget you need doesn't exist. There may be something similar, but it doesn't quite do what you want. Chapter 18 shows you how to create your own widget, either from scratch or based on another one. Chapter 19 explores configuration (manipulating the config files found in your ~/.gnome directory) and internationalization.
The third part of the book is primarily a reference; and a very useful one at that. I would recommend this book for the third part and the appendices alone. For those who would rather compile it themselves instead of downloading a prepackaged version, chapter 20 explains how to install and build the GNOME source code. Chapter 21 is a list of GTK+ widgets, from GtkAccelLabel to GtkWindow, with information on each (such as inheritance, function lists and example code). Chapter 22 does the same for GNOME widgets. While GNOME is multi-platform, it is primarily used under Linux; thus, there are some Linux-specific issues which are covered in Chapter 23. Finally, for those programmers migrating over from Windows, Chapter 24 provides a comparative, point-by-point study of how Win32 and GNOME programming differ.
The appendices are quite useful as well, and they are where much of the meat in the reference section is located. The first appendix simply describes the contents of the CD-ROM, while the second explains how to set up your machine for software development with GNOME. The third appendix lays out the inheritance for each widget in GTK+ and GNOME, the fifth explains how to set and get arguments, and the fourth covers enumerated types used in GTK+ and GNOME (such as GTK_ACCEL_SIGNAL_VISIBLE). The sixth appendix lists all the signals, and the final appendix provides a useful list of functions, sorted by return type.
Is it worth the money? If you're interested in programming with GTK+ and/or GNOME, then the answer is a resounding yes. And even if you're not, it's a cool-looking Linux book that can sit on your desk and make you look smarter.
Practical Task Scheduling Deployment
July 20, 2016 12:00 pm CDT
One of the best things about the UNIX environment (aside from being stable and efficient) is the vast array of software tools available to help you do your job. Traditionally, a UNIX tool does only one thing, but does that one thing very well. For example, grep is very easy to use and can search vast amounts of data quickly. The find tool can find a particular file or files based on all kinds of criteria. It's pretty easy to string these tools together to build even more powerful tools, such as a tool that finds all of the .log files in the /home directory and searches each one for a particular entry. This erector-set mentality allows UNIX system administrators to seem to always have the right tool for the job.
Cron traditionally has been considered another such a tool for job scheduling, but is it enough? This webinar considers that very question. The first part builds on a previous Geek Guide, Beyond Cron, and briefly describes how to know when it might be time to consider upgrading your job scheduling infrastructure. The second part presents an actual planning and implementation framework.
Join Linux Journal's Mike Diehl and Pat Cameron of Help Systems.
Free to Linux Journal readers.Register Now!
- SUSE LLC's SUSE Manager
- My +1 Sword of Productivity
- Murat Yener and Onur Dundar's Expert Android Studio (Wrox)
- Managing Linux Using Puppet
- Non-Linux FOSS: Caffeine!
- SuperTuxKart 0.9.2 Released
- Doing for User Space What We Did for Kernel Space
- Parsing an RSS News Feed with a Bash Script
- Google's SwiftShader Released
- Rogue Wave Software's Zend Server
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide