Research Catalog
Professional Linux programming / Neil Matthew ... [et al.].
- Title
- Professional Linux programming / Neil Matthew ... [et al.].
- Publication
- Birmingham [England] : Wrox Press, c2000.
Items in the Library & Off-site
Filter by
1 Item
Status | Format | Access | Call Number | Item Location |
---|---|---|---|---|
Text | Request in advance | QA76.76.O63 P754 2000 | Off-site |
Holdings
Details
- Additional Authors
- Description
- xviii, 1155 p. : ill.; 24 cm.
- Series Statement
- Linux programming series
- Uniform Title
- Linux programming series
- Alternative Title
- Linux programming
- Subject
- Note
- Includes index
- "Programmer to programmer"--Cover.
- Processing Action (note)
- committed to retain
- Contents
- 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 --
- 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 --
- 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 --
- 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 --
- 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 --
- 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 --
- 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 --
- 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 --
- 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
- 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) --
- 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 --
- 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 --
- 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 --
- 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 --
- 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 --
- 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.
- ISBN
- 1861003013
- OCLC
- 45259625
- SCSB-10100334
- Owning Institutions
- Harvard Library