Christopher B. Browne's Home Page
cbbrowne@acm.org

Christopher Browne's Web Pages

Christopher Browne


Table of Contents
I. Overview Info
Christopher B. Browne's Home Page
1. Home Page
Legal Notice
1. Legal Notice Stuff
Advocacy Page
II. Personal Stuff
My Family
1. "The Four" - Browne Brothers
2. Parents
3. Non-Relatives with Remarkably Similar Names
Funny Stuff
1. Canadian Humourists
2. General Humour
3. Just Odd Stuff
4. Stupidity and Accidents
5. The 10 Axioms of Stupidity
6. Disclaimer to be used when purchasing software
7. Things that ought to be fortunes...
8. The 21 Worst Things to Say to a Police Officer
9. Responding To Dumb Requests For Help With Homework Assignments
10. The TV Philosophy of Life
11. Best-ever resignation letter(An actual letter sent by a fed up U.S employee)
Personal History
1. Intro
2. Education
3. Since School
Hobby-Type-Stuff
1. Fountain Pens
2. Model Rocketry
Music
1. Choral Music
2. Instrumental Music - French Horn
3. Christian Music
4. Computer Music and MP3-related Links
5. Other Music Links
Spiritual/Church Involvements
1. Church Involvements
2. Apologetics
3. Bible Study Links
4. Other Christian Web Links
5. Bible Codes - Have Appropriate Skepticism
6. More Conspiracies...
7. Prophecy and Apocalyptic Times
8. Spiritual Implications of Year 2000
Valley Ranch Baptist Church
Canada
1. General Canadiana
2. Politics and Economics
3. University of Waterloo
4. National Anthem (in French)
5. Immigration Pages
6. You Know You're Canadian When...
7. Toronto Stuff
Texas
1. What about Texas?
Science Fiction Literature
1. Dune
2. Generic SF Links
3. Heinlein
4. Movies and TV
5. The Prisoner
6. David Brin versus Star Wars
7. Other SF Stuff
Travel Links
1. General Travel Servers
2. GPS
3. The India Trip
III. Professional Involvements
What are my Professional Involvements?
Resume Pointers
Publishing Links
1. My Publications
2. Publishing Links
3. Library Tools
Head Hunter Links
1. Head Hunter Listing...
2. Linux Hunters
3. SAP Hunters
4. Consulting Ideas
5. Career Matters
CORS - Canadian Operational Research Society
Operational Research Bookmark File
1. Operational Research
2. Crossreferences to Major OR Web Pages
3. Linear/Nonlinear Programming
4. Constraint Logic Programming (CLP)
5. Products
6. Software Libraries
7. OR Companies/Organizations
8. Other OR stuff that is not readily classified
9. Techniques
Corporate Takeovers and Merger Mania
What Do I Do for a Living?
IV. General Computing
Computing and Computer Science
1. Data Structures and Algorithms
2. Exception Management Schemes
3. Memory Management Schemes
4. Architecture
5. Just Obscure...
CORBA and Object Technologies
1. CORBA
2. CORBA Implementations
3. CORBA Language Mappings
4. Other CORBA Services
5. CORBA Documentation
6. Other CORBA Samples
7. Alternatives to CORBA
8. Object Oriented and Event Driven Programming
9. UML - Unified Modelling Language
CORBA and Object Technologies
1. SOAP - Simple Object Access Protocol
Computer Languages
1. General Language Links
2. The C Family
3. Algol
4. The PASCAL Family of Languages
5. COBOL
6. Smalltalk
7. Functional Programming Languages
8. Other Families of Languages
9. Dylan
10. Prolog
11. ABAP/4
12. Assembly Language
13. Macro Programming Systems
14. Compiler Construction Tools
15. Programming Tools and IDEs
Lisp
1. Lisp and Its Kin
2. Common Lisp
3. Scheme
4. Other Lisps
5. Miscellaneous Lisp Advocacy
6. Lisp-based OSes
Java
1. Java and Distributed Computing
Bytecode Systems
1. About Bytecode
Scripting Languages
1. Scripting Languages
2. Perl
3. Python
4. TCL and Tk
5. REXX
6. Ruby: A Gem of a Language
7. AWK
8. Lua
9. ECMAScript
10. Other Scripting Languages
11. Miscellaneous Shell Stuff
Mathematical Matters
1. Mathematics and Computing
V. Computing and Political Advocacy
Linux and Decentralized Development
1. Motivation - Why is Centralization an Issue?
2. Organization Models in the Linux Community
3. Mandates and Purposes of a Linux Foundation
4. In the Interim - Your Fair Share
5. Free Software
6. Related Literature
7. Patents: Yet Another Problem
8. Credits
The Economics of Free Software
1. The Crucial Economic Freedom of Free Software: No Licensing Fees
2. Problem - Recovery of Sunk Costs
3. Some Economic Fallacies
4. Associate Charges With Costs
5. Organizational Changes
6. Points of View: Trying to Gain Perspective
7. Other Free Software Economics References
Free Software (Gift) Exchange Registry - FSEx
1. Why the Free Software (Gift) Exchange Registry?
2. Free Software (Gift) Exchange Registry Methodology
3. Questions and Answers
Microsoft... It's a Problem...
1. Would you want to use these tools?
2. Why Microsoft Might Actually "Crash"
3. MS W95 Tuning...
4. Computer Piracy
5. Humor at Microsoft's Expense
6. General Anti-MS Links
VI. Operating System-Centric Computing
The Linux Operating System
1. A Brief History of Linux
2. Linux Information Sources
3. Advanced Linux "Research Areas"
4. My Linux Projects
5. Linux CPU Architecture
6. Linux Networking Links
7. Fannish/Advocacy Linux Stuff
8. Linux Entertainments
9. Linux and Christian Stuff
The Unix Operating System
1. The Unix Philosophy
2. Unix Trademark and Standards
3. Unix FAQs and General Resources
4. Unix Shells - csh, ksh, bash, zsh, ...
5. Screen
6. Unix Hardware Vendors
7. Interoperability Tools
8. Networking Stuff
9. Unix-based Faxing
10. Unix-based Alphanumeric Paging
11. Random Unix Links
12. 4.4 BSD Lite-based Operating Systems
13. init
14. NFS - Network File System
15. Unix Haters
16. List of Unix Variants
Research and Experimental Operating Systems
1. Introduction and Overview
2. Terry Lambert's Top Ten List For A Non-Proprietary OS
3. Microkernel-based OS Efforts
4. GNU Hurd
5. Solaris Relations
6. Not-quite-Unix-Like OSes
7. VMS
8. Novel OS Work
9. Multics
10. Various PC Oses
The Linux Kernel
1. Microkernels - MkLinux
2. File Systems
3. Defragmentation - A Frequently Asked Question
4. Memory Fragmentation
5. SMP and Clustering
A Taxonomy of Linux Distributions
1. Linux Distributions
2. Red Hat Linux
3. Debian
4. Slackware
5. S.u.S.E. Linux
6. Network Device Linux Distributions
7. Embedded/Tiny Linux Distributions
8. End User Linux Distributions
9. Attempts at "Secure" Linux Distributions
10. Linux Distributions for Special Platforms
11. Miscellanea
Linux System Configuration Tools
1. Linux System Configuration Tools
2. Package Management Tools
3. System State Analysis
4. Multiplexing Configuration Managers
5. cfengine
6. Other Configuration Tools
7. Configuration Storage Schemes
8. Autonomic Computing
9. Backup Strategies
Linux and Year 2000
1. Linux and Year 2000 (Y2K)
2. Things to Avoid at the End of 1999
3. The Telephone Problem
4. The 2038 Problem
5. Patents and Y2K
Running Linux on Digital Alpha Systems
1. Digital Alpha Systems
2. Alpha UDB/Multia System Configuration
3. Inadequacies of this Configuration
4. Home Pages of Some People Running UDBs
5. Credits
Linux VARS
1. Linux VARS (Value Added Resellers)
2. Vendor Lists
3. Server Vendors
4. Linux Rack Mounts
5. Vendors of (primarily) Desktop Systems
6. Vendors of "Thin Clients"
7. Vendors of IA-32 Systems
8. Specialists in Linux Systems Based on Non-IA-32 Architectures
9. International Vendors
10. XTerminals/Network Computer Hardware
11. Embedded Systems
12. Other Stuff...
Linux Commercial Endeavors
1. General Vendors
2. Vendors of Linux Distributions
3. System Software
4. Applications
5. Other Software
6. Documentation/Books
7. Games
8. Hardware
9. Consulting Groups/Service Providers
10. Linux Certification Programs
11. Other Linux Commercial Organizations
Printing Under Linux
1. Frequently Asked Printing Questions
2. HP PCL References
3. Miscellaneous Printing Links
4. Printing Frameworks
Hardware I Use with Linux and Other Free Software
1. Hardware Introduction
2. Tucker: IBM x346
3. Bellman: IBM x346
4. Lenovo Thinkpad X60s
5. Kobo eReader
6. hpaq: HP 2000 2b53CA
7. Retired Servers
8. 64 Bit Linux and Merced
9. Other Experimental Platforms for Linux
10. Building a Linux Box
11. Buses
12. Cool Hardware
The X Window System
1. Introduction to X
2. Frequently Asked Questions
3. X Servers
4. Desktop Components
5. Window Managers
6. Program/File Managers
7. GNOME - GNU Network Object Model Environment
8. K Desktop Environment - KDE
9. The KDE/GNOME Controversy
10. KDE and GNOME: Neither Is A Standard
11. X Desktop Configuration
12. X Applications (Clients)
13. X Font Tools
14. X Development Tools
15. GGI - General Graphical Interface
16. On the Thesis that X is Big/Bloated/Obsolete and Should Be Replaced
17. My Overall View Of X
18. Network Computing
19. My Xterm/Network Computing Experiences
20. X11R6.4 Sample Implementation Changes and Concerns
21. XWindows
22. User Interface Discussions
23. RDP - Remote Desktop Protocol
24. CURSES and other Text-based User Interfacing
Linux Myth Dispeller
VII. Security-Oriented Computing
Information Security
1. Intro
2. Unix and Network Security
3. Official Security Sites
4. The Political Side
5. Security Issues Not Yet Well Hierarchicalized
6. A Good News Article Summarizing Linux Security Vulnerabilities
Cryptography for Information Security
1. My PGP Key
2. PGP Web Links
3. Data Security and Cryptography
VIII. Databases
RDBMS - Relational Database Management Systems
1. Other RDBMS Web Resources for Linux
2. Database Classifications
3. SQL Databases
4. SQL Database Tools
5. xBase Databases
6. Other Linux Databases
7. The Third Manifesto
8. Other Database Stuff - Database Design
NonRelational Database Systems
1. Variations on DBM
2. Various Keyed ISAM DBMS Systems
3. Object Oriented Databases
4. Database Systems That Don't Fit Other Classifications
5. NoSQL
PostgreSQL
1. PostgreSQL
2. Backing up PostgreSQL Databases
1. Introduction
2. QuickStart Guide to Tuning PostgreSQL
3. Managing System Resources
4. Memory Usage
5. Disk Usage
6. CPU Usage
7. Network Usage
8. Varying Database Workloads
9. Tuning SQL Queries
10. Creating Indices
11. Using pl/pgsql
12. Other References on Performance Tuning
13. Other Performance Tuning Literature
IX. Slony-I Administration
1. Preface
1.1. Introduction to Slony-I
1.2. System Requirements
1.3. Slony-I Concepts
1.4. Current Limitations
2. Tutorial
2.1. Replicating Your First Database
2.2. Starting & Stopping Replication
3. Administration Tasks
3.1. Modifying Things in a Replication Cluster
3.2. Database Schema Changes (DDL)
3.3. Doing switchover and failover with Slony-I
4. Advanced Topics
4.1. Events & Confirmations
4.2. Slony-I Listen Paths
4.3. Monitoring
4.4. Log Shipping - Slony-I with Files
4.5. Partitioning Support
4.6. Slony-I Upgrade
4.7. Log Analysis
4.8. Performance Considerations
4.9. Slony-I Trigger Handling
4.10. Locking Issues
4.11. Security Considerations
5. Reference
slon --  Slony-I daemon
1. Logging
2. Connection settings
3. Archive Logging Options
4. Event Tuning
slonik --  Slony-I command processor
1. General outline
I. Slonik Meta Commands
SLONIK INCLUDE --  pulling in slonik code from another file
SLONIK DEFINE --  Defining a named symbol
II. Slonik Preamble Commands
SLONIK CLUSTER NAME --  preamble - identifying Slony-I cluster
SLONIK ADMIN CONNINFO --  preamble - identifying PostgreSQL database
III. Configuration and Action commmands
SLONIK ECHO --  Generic output tool
SLONIK EXIT --  Terminate Slonik script with signal
SLONIK INIT CLUSTER -- Initialize Slony-I cluster
SLONIK STORE NODE --  Initialize Slony-I node
SLONIK DROP NODE --  Remove the node from participating in the replication
SLONIK UNINSTALL NODE --  Decommission Slony-I node
SLONIK RESTART NODE --  Restart Slony-I node
SLONIK STORE PATH --  Configure Slony-I node connection
SLONIK DROP PATH --  Delete Slony-I connection information
SLONIK STORE LISTEN --  Configure Slony-I node to indicate where to listen for events
SLONIK DROP LISTEN --  Eliminate configuration indicating how Slony-I node listens for events
SLONIK TABLE ADD KEY --  Add primary key for use by Slony-I for a table with no suitable key
SLONIK TABLE DROP KEY --  Removes a primary key added by TABLE ADD KEY
SLONIK CREATE SET --  Create Slony-I replication set
SLONIK DROP SET --  Discard Slony-I replication set
SLONIK MERGE SET --  Merge Slony-I replication sets together
SLONIK SET ADD TABLE --  Add a table to a Slony-I replication set
SLONIK SET ADD SEQUENCE --  Add a sequence to a Slony-I replication set
SLONIK SET DROP TABLE --  Remove a table from a Slony-I replication set
SLONIK SET DROP SEQUENCE --  Remove a sequence from a Slony-I replication set
SLONIK SET MOVE TABLE --  Move a table from one Slony-I replication set to another
SLONIK SET MOVE SEQUENCE --  Move a sequence from one Slony-I replication set to another
SLONIK STORE TRIGGER --  Indicate that a trigger should not be disabled by Slony-I on a subscriber node
SLONIK DROP TRIGGER --  Return a trigger to default behavior, where it will not fire on subscriber nodes
SLONIK SUBSCRIBE SET --  Start replication of Slony-I set
SLONIK UNSUBSCRIBE SET --  End replication of Slony-I set
SLONIK LOCK SET --  Guard Slony-I replication set to prepare for MOVE SET
SLONIK UNLOCK SET --  Unlock a Slony-I set that was locked
SLONIK MOVE SET --  Change origin of a Slony-I replication set
SLONIK FAILOVER --  Fail a broken replication set over to a backup node
SLONIK EXECUTE SCRIPT --  Execute SQL/DDL script
SLONIK UPDATE FUNCTIONS --  Reload stored functions
SLONIK WAIT FOR EVENT --  Have Slonik script wait for previous event to complete
SLONIK REPAIR CONFIG --  Resets the name-to-oid mapping of tables in a replication set, useful for restoring a node after a pg_dump.
SLONIK SYNC --  Generate an ordinary SYNC event
SLONIK SLEEP --  Sleep using system sleep()
SLONIK CLONE PREPARE --  Prepare for cloning a node.
SLONIK CLONE FINISH --  Complete cloning a node.
6. Things Left Out Of Other Parts
6.1. Slony-I Installation
6.2. Slony-I Maintenance
7. Appendix
7.1. Slony-I Administration Scripts
7.2. Frequently Asked Questions
7.3. Slony-I Supported Platforms
7.4. Release Checklist
7.5. Slony-I Test Bed Framework
7.6. Using Slonik
7.7. Embedding Slonik in Shell Scripts
7.8. Not Using Slonik - Bare Metal Slony-I Functions
7.9. More Slony-I Help
8. Schema schemadoc
8.1. Table: sl_archive_counter
8.2. Table: sl_config_lock
8.3. Table: sl_confirm
8.4. Table: sl_event
8.5. Table: sl_listen
8.6. Table: sl_log_1
8.7. Table: sl_log_2
8.8. Table: sl_node
8.9. Table: sl_nodelock
8.10. Table: sl_path
8.11. Table: sl_registry
8.12. View: sl_seqlastvalue
8.13. Table: sl_seqlog
8.14. Table: sl_sequence
8.15. Table: sl_set
8.16. Table: sl_setsync
8.17. Table: sl_subscribe
8.18. Table: sl_table
8.19. add_empty_table_to_replication(integer, integer, text, text, text, text)
8.20. add_missing_table_field(text, text, text, text)
8.21. addpartiallogindices()
8.22. altertableaddtriggers(integer)
8.23. altertableconfiguretriggers(integer)
8.24. altertabledroptriggers(integer)
8.25. checkmoduleversion()
8.26. cleanupevent(p_interval interval)
8.27. cleanupnodelock()
8.28. clonenodefinish(integer, integer)
8.29. clonenodeprepare(integer, integer, text)
8.30. clonenodeprepare_int(integer, integer, text)
8.31. copyfields(integer)
8.32. createevent(name, text)
8.33. createevent(name, text, text)
8.34. createevent(name, text, text, text)
8.35. createevent(name, text, text, text, text)
8.36. createevent(name, text, text, text, text, text)
8.37. createevent(name, text, text, text, text, text, text)
8.38. createevent(name, text, text, text, text, text, text, text)
8.39. createevent(name, text, text, text, text, text, text, text, text)
8.40. createevent(name, text, text, text, text, text, text, text, text, text)
8.41. ddlscript_complete(integer, text, integer)
8.42. ddlscript_complete_int(integer, integer)
8.43. ddlscript_prepare(integer, integer)
8.44. ddlscript_prepare_int(integer, integer)
8.45. denyaccess()
8.46. determineattkindunique(text, name)
8.47. determineidxnameunique(text, name)
8.48. disable_indexes_on_table(i_oid oid)
8.49. disablenode(integer)
8.50. disablenode_int(integer)
8.51. droplisten(integer, integer, integer)
8.52. droplisten_int(integer, integer, integer)
8.53. dropnode(integer)
8.54. dropnode_int(integer)
8.55. droppath(integer, integer)
8.56. droppath_int(integer, integer)
8.57. dropset(integer)
8.58. dropset_int(integer)
8.59. enable_indexes_on_table(i_oid oid)
8.60. enablenode(integer)
8.61. enablenode_int(integer)
8.62. enablesubscription(integer, integer, integer)
8.63. enablesubscription_int(integer, integer, integer)
8.64. failednode(integer, integer)
8.65. failednode2(integer, integer, integer, bigint, bigint)
8.66. failoverset_int(integer, integer, integer, bigint)
8.67. finishtableaftercopy(integer)
8.68. forwardconfirm(integer, integer, bigint, timestamp without time zone)
8.69. generate_sync_event(interval)
8.70. getlocalnodeid(name)
8.71. getmoduleversion()
8.72. initializelocalnode(integer, text)
8.73. killbackend(integer, text)
8.74. lockedset()
8.75. lockset(integer)
8.76. logswitch_finish()
8.77. logswitch_start()
8.78. logtrigger()
8.79. mergeset(integer, integer)
8.80. mergeset_int(integer, integer)
8.81. moveset(integer, integer)
8.82. moveset_int(integer, integer, integer, bigint)
8.83. preparetableforcopy(integer)
8.84. rebuildlistenentries()
8.85. registernodeconnection(integer)
8.86. registry_get_int4(text, integer)
8.87. registry_get_text(text, text)
8.88. registry_get_timestamp(text, timestamp without time zone)
8.89. registry_set_int4(text, integer)
8.90. registry_set_text(text, text)
8.91. registry_set_timestamp(text, timestamp without time zone)
8.92. replicate_partition(integer, text, text, text, text)
8.93. seqtrack(integer, bigint)
8.94. sequencelastvalue(text)
8.95. sequencesetvalue(integer, integer, bigint, bigint)
8.96. setaddsequence(integer, integer, text, text)
8.97. setaddsequence_int(integer, integer, text, text)
8.98. setaddtable(integer, integer, text, name, text)
8.99. setaddtable_int(integer, integer, text, name, text)
8.100. setdropsequence(integer)
8.101. setdropsequence_int(integer)
8.102. setdroptable(integer)
8.103. setdroptable_int(integer)
8.104. setmovesequence(integer, integer)
8.105. setmovesequence_int(integer, integer)
8.106. setmovetable(integer, integer)
8.107. setmovetable_int(integer, integer)
8.108. slon_quote_brute(text)
8.109. slon_quote_input(text)
8.110. slonyversion()
8.111. slonyversionmajor()
8.112. slonyversionminor()
8.113. slonyversionpatchlevel()
8.114. storelisten(integer, integer, integer)
8.115. storelisten_int(integer, integer, integer)
8.116. storenode(integer, text)
8.117. storenode_int(integer, text)
8.118. storepath(integer, integer, text, integer)
8.119. storepath_int(integer, integer, text, integer)
8.120. storeset(integer, text)
8.121. storeset_int(integer, integer, text)
8.122. subscribeset(integer, integer, integer, boolean, boolean)
8.123. subscribeset_int(integer, integer, integer, boolean, boolean)
8.124. tablestovacuum()
8.125. terminatenodeconnections(integer)
8.126. uninstallnode()
8.127. unlockset(integer)
8.128. unsubscribeset(integer, integer)
8.129. unsubscribeset_int(integer, integer)
8.130. updaterelname(integer, integer)
8.131. updatereloid(integer, integer)
8.132. upgradeschema(text)
X. Business Oriented Computing
Finances, Linux, and Stuff...
1. Personal Financial Background
2. Linux-based Financial Software
3. CBB - Check Book Balancer
4. Other Personal Finance Packages for Linux
5. Free Tax Software
6. Proprietary Business Finance Software For Linux
7. Software for Investment Analysis
8. Free Software for Business Accounting
9. Vaprous Financial Software
10. Miscellaneous Financial Stuff For Linux
11. Other (non-Linux-based) Financial Software
12. Data Formats
13. Taxation
14. Other General Finance Stuff
GnuCash
1. GnuCash
Linux Spreadsheets
1. Historical Background of Spreadsheets
2. Free Spreadsheets running on Linux
3. Commercial Linux Spreadsheets
4. Other Spreadsheet Tools for Linux
5. Spreadsheet Web Applications
SAP R/3 - A 3 Tier Client/Server ERP System
1. SAP-Sponsored Sites
2. SAP "News"
3. R/3 "Resource" Pages
4. Third-Party Products that Link to R/3
5. Consulting Firms that do R/3
6. SAP Support for Linux
7. Some technical stuff...
8. Some critical CTS stuff
Application Frameworks
1. Introduction
2. Wild-Eyed Ideas
3. Query and Reporting Tools
4. "Middleware" - Interfaces to Databases
5. Transaction Processing Monitors
Personal Information Management Systems
1. Android
2. Palm Computing
3. Interoperability of PIMS with Unix/Linux
4. Linux Scheduling Tools and vSchedule
5. Various Conceptual Approaches to Personal Information Management
6. Scheduling and Project Management
7. GTD - Getting Things Done
8. Hipster PDA
9. Moleskine
10. Other Links/Info
Mac Matters
1. MacOS
XI. Internet-Related Computing
The Internet
1. Overview of Internet Standards/Documentation
2. HTTP - The Protocol of the World Wide Web
3. Mail/SMTP
4. Internet: News - NNTP
5. Time Synchronization
6. Other Protocols
7. Internet Service Providers
8. The Information Stuporhighway
9. Filtering
Internet Data Filtering
1. Internet Data Filtering Talk
2. Overview
3. Why Filter?
4. Why is Linux Good for Filtering?
5. How to Filter
6. Mail Filtering
7. News Filtering
8. Web Filtering
Web Agents
1. Web Agents/Robots
XII. Document Oriented Computing
Document Formats
1. Document Presentation Languages
2. LaTeX and TeX
3. Postscript
4. What Does Chris Use?
5. eBooks
Linux Word Processing
1. Linux Development Projects for Free Word Processors
2. DTP - Desktop Publishing
3. Proprietary Word Processors for Linux
4. Running "Foreign" Word Processors on Linux via Emulation
5. An Opinionated Discussion About Word Processors
6. An Alternative Approach: Text Editor/Presentation Language
7. How to Use Inelegant Systems Intelligently
8. Crossreferences
SGML - Standard Generalized Markup Language
1. Introduction to SGML - Standard Generalized Markup Language
2. General Information about SGML and Related Standards/Languages
3. Vendors of SGML Products
4. Other SGML-Related Standards
5. XML
6. Free SGML Tools
7. Some Notable DTDs
8. DocBook
9. Metadata Applications of SGML/XML
HTML - Hyper Text Markup Language
1. Introduction
2. Languages and Standards
3. Cascading Style Sheets
4. HTML Style Issues
5. Web Browsers
6. HTML Tools
7. About Hypertext
Compound Documents
1. OpenDoc
Text/Document Databases
1. Introduction
2. Document Management Projects for Linux
3. Search Tools
4. Text Analysis Tools
5. Web Search Engines
6. Structure Tools
7. EDMS - Electronic Document Management Systems
8. Integrated Text Database Systems - Lotus Notes
Source Code Management
1. Git
Text Editors
1. Text Editors
2. Emacs
3. TECO - The Original "One True Editor"
4. VI Clones
5. Other Editors
XIII. Legacy Computing
Old/Obsolete Computer Stuff
1. Atari Stuff
2. Various Old OSes and Computing Platforms
3. Sun 3 Stuff
4. SGI Stuff
Computer Gaming
1. Computer Games and Entertainment
GnuStep/NeXTstep/OPENSTEP
1. GNUStep - A Route Somewhat More Likely to Succeed
XIV. Ill-Defined, Manifoldly-Connected
Footnotes
1. Linux and Standards Compliance
2. Availability of Source Code
3. OS Jokes
4. The BOGUS Distribution
5. MicroChannel Architecture
6. Slurping news
7. Charismatics
8. Liars, **** Liars, Statisticians, and Benchmarks
9. What is the Moscow of New York?
10. Hosting
11. Belling the Cat
12. Apple: Software or Hardware Vendor?
13. IBM: Don't Cannibalize My Market!
14. WINE Configuration
15. Transmeta
16. Client/Server Computing
17. 32 Bit Computing
18. Software "Piracy": Abuse of a Word
19. Massive Transformations
20. The Holmesian Fallacy
21. Godwin's Law
22. What's GNU?
Internet Commerce
1. Stuff Resembling Food
2. Coffee
3. Miscellaneous Computer Commerce
4. Other Goods
5. Consumer Issues
6. Spam Bait
7. Miscellaneous Commerce
Taiji
1. Taiji / Tai Chi
Colophon
List of Tables
1. Compiling calendrica.lisp
2. Product Dates
3. Kernel Key Sequences
4. Status and Error Codes
4-1. Trigger Behaviour
7-1. Supported Platforms
List of Figures
8-1. Definition of view sl_seqlastvalue
Google

If this was useful, let others know by an Affero rating

Contact me at cbbrowne@acm.org