Professional Linux programming / Neil Matthew ... [et al.].

Title
  1. Professional Linux programming / Neil Matthew ... [et al.].
Published by
  1. Birmingham [England] : Wrox Press, c2000.

Items in the library and off-site

Filter by

Displaying 1 item

StatusFormatAccessCall numberItem location
StatusFormatBook/TextAccessRequest in advanceCall numberQA76.76.O63 P754 2000Item locationOff-site

Details

Additional authors
  1. Matthew, Neil
  2. Stones, Richard
  3. Browne, Christopher (Writer on computer programming)
Description
  1. xviii, 1155 p. : ill.; 24 cm.
Series statement
  1. Linux programming series
Uniform title
  1. Linux programming series
Alternative title
  1. Linux programming
Subject
  1. Linux
  2. Systems programming (Computer science)
  3. Operating systems (Computers)
Contents
  1. Chapter 1. Application Design -- Requirements Capture -- Development Models -- 'Fast Track' Development -- Test Early, Test Often -- DVD Store -- Initial Requirements -- Analyzing the User Requirements -- Statement of Requirements -- Use Cases -- Application Architecture -- Detailed Design -- Data Access Functions -- Member Functions -- Title Functions -- Disk Functions -- Rental Functions -- Reference Implementation -- Chapter 2. CVS -- Tools for Linux -- Repository -- Single User CVS Projects -- CVS Command Format -- Environment Variables -- Importing a New Project -- Starting Work on Our Project -- Checking Our Changes Against the Repository -- Updating the Repository with Our Changes -- Releasing the Project -- Reviewing Changes -- Adding and Removing Files from a Project -- Keyword Substitution -- Revisions, Tags and Branches -- Revisions -- Tags -- Branches -- Multi-user CVS --
  2. Working Collaboratively -- Working with Watches -- More Fun with CVS -- Binary Files -- Correcting Bad Annotations -- Accessing CVS Across a Network -- GUI CVS Clients -- Chapter 3. Databases -- Choosing a Database -- mSQL -- MySQL -- PostgreSQL -- Which is Right for Me? -- PostgreSQL -- Installation and Commissioning -- Database Fundamentals -- First Normal Form -- Second Normal Form -- Third Normal Form -- De-normalization -- Simple Database -- Using psql -- Commands to psql -- Data Definition Commands -- Data Manipulation Commands -- Transactions -- Database Design Tips -- Chapter 4. PostgreSQL Interfacing -- Accessing PostgreSQL from Code -- Libpq -- ECPG -- Which Method to Use? -- Application -- Chapter 5. MySQL -- Installation and Commissioning -- Pre-compiled Packages -- Building from Source -- Post-install Configuration -- MySQL Administration -- Commands --
  3. Creating Users, and Giving Them Permissions -- Passwords -- Creating a Database -- SQL Support in PostgreSQL and MySQL -- Accessing MySQL Data from C -- Connection Routines -- Error Handling -- Executing SQL Statements -- Miscellaneous Functions -- Chapter 6. Tackling Bugs -- Error Classes -- Reporting Errors -- Detecting Software Errors -- Types of Software Error -- Debug Statements -- Assertions -- Where Are You? -- Backtrace -- Preparing to Debug -- Using the Debugger -- Simple GDB Commands -- Other GDB Features -- Chapter 7. LDAP Directory Services -- What is a Directory Service? -- X.500 and LDAP -- Structure of a Directory Server -- Naming of Parts -- dn Naming -- Object Components -- LDAP Directory Tree -- LDIF Files -- Installing and Configuring an LDAP Server -- Steps in Installing OpenLDAP -- Configuring OpenLDAP -- Running the Server -- Accessing LDAP from C -- Initialize the LDAP Library --
  4. Bind to the LDAP Server -- LDAP Error Handling -- First LDAP Client Program -- Searching -- Changing the Data -- Adding a New Entry -- Modifying an Entry -- Deleting an Entry -- Application -- Chapter 8. GUI Programming with GTK+/GNOME -- GTK+/GNOME libraries -- glib -- Types -- Macros -- String functions -- Memory Allocation -- Lists -- GTK+ -- Widgets -- gtki̲nit and gtkm̲ain -- Example GTK+ Application -- GNOME Basics -- Menus and Toolbars -- Dialogs -- Example GNOME Application -- GNOME Source Tree -- Configuration Saving -- Session Management -- Command Line Parsing Using popt -- GNOME/GTK+ Resources -- Chapter 9. GUI Building with Glade and GTK+/GNOME -- Overview of Glade -- Word on GUI Design -- Glade Tutorial -- Main Window -- Palette -- Properties Window -- Glade-built Source Tree -- lookupw̲idget -- Adding Code -- Libglade -- DVD Store GNOME GUI -- Design --
  5. Compiling and Running dvdstore -- Structure -- Code -- Chapter 10. Flex and Bison -- Input Structure -- Scanners and Parsers -- How Generators Work -- Scanners -- Simple Scanner -- Scanner Specifications -- Longest Match Principle -- Regular Expressions -- Actions -- Redirecting Scanner Input and Output -- Returning Tokens -- Context Sensitive Scanners -- Options to flex -- Parsers -- Generating Parsers -- Creating a Syntax Tester -- Token Types -- Actions in Rules -- Options to bison -- Conflicts in Grammars -- Arithmetic Expressions -- Chapter 11. Testing Tools -- Testing Requirements Types -- Application Architecture -- Steps -- General Testing -- Regression Testing -- Test Program -- Testing the dvdstore Program -- Scripting Tests -- Expect -- Memory Problems -- Installing mpatrol -- Using mpatrol -- Testing Coverage -- Performance Testing -- Chapter 12. Secure Programming --
  6. What is Secure Programming? -- Why Secure Programming is Hard -- Filesystem Security -- Authenticating Users -- Using Cryptography Securely -- Secure Network Programming -- Writing Protocols -- Standard Network Cryptography Tools -- Problems with the Environment -- Python -- PHP -- Chapter 13. GUI Programming with KDE/Qt -- About Qt -- About KDE -- Installing Qt -- Installing KDE -- Libraries -- Programming Applications Using Qt -- Getting Started: Hello World -- Simplifying Makefile Management with tmake -- Signals and Slots -- 'Hello World' Revisited -- Deriving From Base Classes -- Widgets -- Layouts -- Programming Applications Using KDE -- Simple Text Editor -- Chapter 14. Writing the DVD Store GUI Using KDE/Qt -- Application Design -- Main Window -- Member Dialog -- Rent Dialog -- Rental Report Dialog -- Search Window -- Settings Manager -- Adjusting the Code to KDE -- KConfig and SettingsManager --
  7. Chapter 15. Python -- Python: The Right Tool for the Job -- ...But Not Every Job! -- Installing Python -- Running Python -- Interactive Interpreter -- Command Argument -- Script Argument -- 'Standalone' Executable -- Details -- Interpreter and Byte-compilation -- Comment Syntax -- Case Sensitivity -- Built-in Data Types and Operators -- Variables -- Block Structure Syntax -- Statement Syntax -- Functions -- Built-in Functions -- Namespaces -- Modules and Packages -- Some Modules from the Standard Distribution -- Classes and Objects -- Extending Python -- Example Program: Penny Pinching -- Chapter 16. Creating Web Interfaces with PHP -- PHP and Server-side Scripting -- Server-side Scripting -- PHP Capabilities -- Installing and Configuring PHP -- Introducing PHP Syntax -- Variables, Constants and Data Types -- Operators in PHP -- Statements -- Functions -- Arrays -- Using PHP with the DVD Project --
  8. HTTP, HTML and PHP -- Application -- Login -- Reservation Status -- Search for Titles -- Reserve Titles -- Cancellation -- dvdstorefunctions.php -- dvdstorecommon.php -- dvdstorelogin.php -- dvdstoresearch.php -- dvdstorestatus.php -- dvdstorecancel.php -- dvdstorereserve.php -- Chapter 17. Embedding and Extending Python with C/C++ -- Extending Python with a C/C++ Extension Module -- Embedding Python in a Host Program -- Developing Extension Modules in C/C++ -- Required Software Tools -- Extending Python Using SWIG -- Extending Python Using the C API -- Python Object Types -- Reference Counting and Ownership -- Overview of Developing C Extension Modules -- Simple Functions -- Slightly More Complex Function -- Global Interpreter Lock -- Creating New Python Object Types -- Encapsulating C++ Objects Using the C API -- Embedding Python in C/C++ Programs -- Embedding Development Environment --
  9. Embedding Python Using High-level Functions -- Statically Linking a Host Program to an Extension Module -- Embedding Python Using Lower-level Calls -- Chapter 18. Remote Procedure Calls -- Simple Networked DVD Store Database -- BSD Sockets -- Coding Issues Using the BSD Socket Interface -- ONC RPC Architecture and Concepts
  10. Why Use RPC in the DVD Store Application? -- RPC Tools and Utilities -- rpcgen -- the RPC Protocol Compiler -- Applying RPCs to the DVD Store -- Functions Without Arguments or Return Types -- Functions With Simple Arguments and Simple Return Types -- More Complex Examples -- Returning Arrays -- Client Timeouts -- Authentication -- AUTHṈONE -- AUTH̲UNIX -- Client Side Authentication Support -- Server Side Authentication Support -- Using RPC Servers with /etc/inetd.conf -- Other Methods to Simplify Network Programming -- Chapter 19. Multimedia and Linux -- Current State of Affairs -- Program Integration -- Sound -- Devices -- Handling Standard Audio Formats -- Do It Yourself -- Moving Pictures -- Software Players -- Hardware Players -- Hybrids -- Political and Legal Issues -- Chapter 20. CORBA -- Interface Definition Language (IDL) -- Object Request Broker (ORB) -- Interoperable Object Reference (IOR) --
  11. Object Adapter -- Servers -- Naming and Trading Services -- Evaluating CORBA -- CORBA and RPC -- CORBA and Sockets -- Systems Similar to CORBA -- DCOM or COM+ -- Java Remote Method Invocation (RMI) -- Enterprise JavaBeans -- IBM MQSeries -- SOAP -- IDL: Defining Interfaces -- Modules -- Interfaces -- Basic Data Types -- Template Types -- Example DVD Application -- Language Mappings -- Language Mapping Components -- C Mappings -- Introductory Example: A Simple Messaging System -- Simple Messaging -- Using ORBit with the IDL -- Message Client -- Message Server -- Compiling the ORBit Application -- Running The Message Application -- Chapter 21. Implementing CORBA with ORBit -- Using CORBA for the DVD Store Application -- DVD Client -- DVD Server -- Logging Server -- Validation Server -- Client Code -- Log Server -- DVD Server -- Using libgnorba -- Configuring ORBit for Multi Host Use --
  12. GOAD -- GNOME Object Activation Directory -- Use of CORBA in GNOME -- Advanced CORBA Functionality -- Dynamic Interface Invocation -- CORBAServices -- CORBAFacilities -- Designing and Running Scalable CORBA Services -- Chapter 22. Diskless Systems -- Little History -- What, No Disk? -- Why Go Diskless? -- How Does It Work? -- Starting a Diskless System -- Network Identification for Diskless Systems -- Running an Operating System -- Server Configuration -- Boot Image Creation -- Diskless Linux Kernel -- Root File Systems -- Client Applications -- Chapter 23. XML and libxml -- XML Document Structure -- XML Syntax -- Well-formed XML -- Valid XML -- XML Parsing -- DOM -- SAX -- libXML a.k.a. gnome-xml -- Complete Parser -- Chapter 24. Beowulf Clusters -- Hardware Setup -- Software Configuration -- Programming a Beowulf Cluster -- Programming Using MPI -- Basic Functionality of an MPI Program --
  13. Compiling and Executing a Simple MPI Program -- Distributed MP3 Encoder -- Communication Performance of a Beowulf Cluster -- Review of Advanced Features of MPI -- Some MPI Programming Examples -- Programming with PVM -- Comparison with MPI -- Obtaining and Installing PVM -- Review of PVM Library Routines -- Sample PVM Program -- Chapter 25. Documentation -- Defining the Audience -- End User Documentation: GUIs -- Documenting GUIs Running on the Local Machine -- Documenting Web GUIs -- Power User/System Administrator Documentation -- Command-line Options: Providing-help -- Manual Pages -- Keeping Things Manageable -- Fonts -- Paragraphs -- Writing Manual Pages for APIs -- Next Generation Manpages -- info Files -- It's All About Structure: From Single Program to Distributed Systems -- Documentation Tools -- Old, But Still Going Strong: TeX, LaTeX -- New Breed: HTML, XML, and DocBook --
  14. Painting the Big Picture: HOWTO and FAQ Files -- Developer Documentation -- Perl's 'pod' Method -- Literary Programming -- Lightweight Literary Programming -- Document Interchange -- PDF Files -- Chapter 26. Device Drivers -- Execution Context -- Module and Initialization Code -- Linker Sections -- Example Module Code -- PCI Devices and Drivers -- struct pciḏev -- Finding PCI Devices -- PCI Drivers -- PCI Access Functions -- Resource Allocation -- Interrupt Handlers -- Access to User Space Memory -- kiobuf Architecture -- Locking Primitives -- Scheduling and Wait Queues -- Module Use Counts -- Making It Build -- What to Do with Your New Driver -- Submitting a New Driver -- Chapter 27. Distributing the Application -- RPM Packages -- RPM User -- What Do I Have Installed? -- RPM Database -- Anatomy of an RPM Package -- Source Packages -- configure, autoconf and automake -- Source RPM Packages --
  15. Building an RPM Package -- Patches -- Making a Patch -- Applying a Patch -- GNATS -- Chapter 28. Internationalization -- I18N Terminology -- Isn't Unicode the Answer? -- Unicode -- Character Encoding Problem -- ISO 2022: Extension Techniques for Coded Character Sets -- Programming with Unicode -- I18N Models and the System Environment -- POSIX Locale Model -- X/Open Portability Guide (XPG) -- Output Formatting and Input Processing -- X Window System -- Practical Considerations of I18N Programming -- I18N and Internal Text Processing -- Programming with Locales -- I18N and Xlib Programming -- I18N and Linux GUIs -- Status of I18N for Linux Software Development -- I18N in Real Software Development Projects -- Object Oriented Programming and I18N -- Application Builders and I18N -- Where Next for Linux I18N? -- Appendix A. GTK+/GNOME Object Reference -- GTK+ Widgets and Functions -- GtkButton -- GtkCheckButton --
  16. GtkCList -- GtkCombo -- GtkEntry -- GtkFrame -- GtkHBox -- GtkHButtonBox -- GtkHSeparator -- GtkLabel -- GtkMenu -- GtkMenuBar -- GtkMenultem -- GtkNotebook -- GtkOptionMenu -- GtkPixmapMenultem -- GtkScrolledWindow -- GtkSpinButton -- GtkTable -- GtkText -- GtkVBox -- GtkWindow -- GNOME Widgets and Functions -- GnomeAbout -- GnomeApp -- GnomeAppBar -- GnomeDateEdit -- GnomeDialog -- GnomeDock -- GnomeDockItem -- GnomeEntry -- GnomePropertyBox -- Appendix B. DVD Store RPC Protocol Definition -- Appendix C. Open Source Licenses -- Appendix D. Support, Errata, and P2P.Wrox.Com.
Owning institution
  1. Harvard Library
Note
  1. Includes index
  2. "Programmer to programmer"--Cover.
Processing action (note)
  1. committed to retain