--- /dev/null
+
+====
+
+Quick Start for the Feisty Meow Codebase:
+
+ Getting the Codebase:
+
+ Retrieve a clone of the feisty meow codebase.
+
+ git clone git://feistymeow.org:feisty_meow
+
+ The rest of these notes assume that you stored the codebase in:
+ ~/feisty_meow (aka $HOME/feisty_meow).
+
+ Building the Codebase:
+
+ Run the following command to build the Feisty Meow libraries and
+ applications.
+ Note that you may need to install some dependencies first (see below
+ for installation instructions).
+
+ bash ~/feisty_meow/scripts/generator/bootstrap_build.sh
+
+ All the applications can be found in ~/feisty_meow/production/binaries
+ after the build is complete.
+
+ Cleaning the Codebase:
+
+ Once you've got a bootstrapped build, you can clean out all the generated
+ files with this command:
+
+ bash ~/feisty_meow/scripts/generator/whack_build.sh clean
+
+ Loading the Feisty Meow scripting environment:
+
+ Set up the feisty_meow scripts the first time; this is only needed once,
+ unless you want to regenerate the scripts from the latest version.
+
+ bash ~/feisty_meow/scripts/core/bootstrap_shells.sh
+
+ Load the script environment into the current shell.
+
+ source ~/feisty_meow/scripts/core/launch_feisty_meow.sh
+
+ Loading the feisty meow script environment with the above command allows
+ you to build specific projects in feisty meow by changing into the
+ project's directory and running 'make'.
+ Some example start-up files for loading feisty meow can be found in
+ ~/feisty_meow/feisty_inits.
+
+====
+
+Feisty Meow Dependencies:
+
+The feisty meow scripts depend on these scripting languages and tools:
+ bash
+ perl
+ Text::Diff
+ File::Which
+ python
+ gnumake
+
+The feisty meow libraries and applications depend on these tools (see below
+for installation steps):
+ Gnu C++
+ RTMP streams
+ Curl
+ Open SSL
+
+====
+
+How to install the most frequently needed compiler and library dependencies:
+
+ Ubuntu / Debian:
+ sudo apt-get install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev
+
+ Centos / Redhat / Fedora:
+ yum install gcc gcc-c++ openssl-devel.x86_64
+#hmmm: there may be missing items for centos.
+
+====
+
+How to install the Feisty Meow script dependencies:
+
+ cpan install Text::Diff File::Which
+
+ These perl modules are required for a few of the feisty meow scripts to
+ work properly. The differ utility and the feisty meow customization system
+ will be affected without these modules installed.
+
+====
+
+More information is available at the official site http://feistymeow.org
+
+====
+
+++ /dev/null
-
-Feisty Meow Concerns Ltd. is a small software shop that concentrates on
-building high quality, portable, open source projects in a variety of
-languages (primarily bash, perl, python, C++, and Java). Here are some
-highlights of our main products:
-
- Bookmark Processing Tools - can take a mozilla bookmark file or arbitrary
- web page and extract all the links out of it, building a csv database of
- web links. Using that database, a variety of output formats are
- provided, including one that outputs a mozilla bookmark file again.
- The most useful feature is probably the marks checker that operates on
- our csv format and that locates all unreachable links in the file and
- separates them out.
-
- CROMP protocol - supports transmission of objects across the network and
- provides a platform independent method for RPC and other types of
- communication.
-
- Octopus design pattern - the underpinning of the CROMP protocol. An octopus
- has an arbitrary number of tentacles (no, not just eight) which are each
- responsible for consuming a different type of object (or datum).
-
- Fast Templates and Portable Abstractions - the class libraries of Feisty Meow
- provide numerous different data structures and programming language
- abstractions (like threads and state machines). There are also some
- fairly ancient templates (in use since late 80s) which in many cases
- perform faster than their STL analogues.
-
- CLAM System - Feisty Meow is the home site of the CLAM makefile system. The
- CLAM system is a flexible and extensible method for building C++ and
- C# files using makefiles.
-
-Prerequisites:
-
- Software required to compile under Linux:
- curl-devel
- openmotif-devel
- openssl-devel
- wxGTK-devel
-
- Software required to compiler under MS-windows:
- The free Microsoft compiler should build Feisty Meow but it is untested.
- The full version of MS Visual Studio 2010 (version 10) is supported.
- Gnu C++ should compile Feisty Meow but it is also untested recently.
-
-Quick Start:
-
- Run the following commands to bootstrap the Feisty Meow libraries, once you
- have downloaded the archive or retrieved them via CVS (assuming that you
- have stored the files in ~/feisty_meow):
-
- bash ~/feisty_meow/scripts/generator/bootstrap_build.sh
-
- This should create the 'makedep' dependency checking tool and the version
- tagging tool and then go through the rest of the build.
-
- Once you've got a bootstrapped build, you can clean out all the files with:
-
- bash ~/feisty_meow/scripts/generator/whack_build.sh clean
-
- And if you want to load the build environment for doing makes inside the
- feisty_meow hierarchies, you can either run a sub-shell with the environment:
-
- bash ~/feisty_meow/scripts/generator/build_variables.sh
-
- or you can load them into the current shell:
-
- bv=~/feisty_meow/scripts/generator/build_variables.sh; source $bv $bv
-
- (The double reference is required since a sourced script does not get any of
- the command-line parameters from the parent script.)
-
- More information is available at the official site http://feistymeow.org
-
-
--- /dev/null
+\r
+What are Octopi...\r
+\r
+\r
+\r
+CROMP protocol\r
+\r
+CROMP stands for Compact Remote Object Model Platform. CROMP is a communication protocol implemented in C++. Its goal is to provide a comfortable object model for shipping data structures as requests over the network and receiving replies back. While we use CROMP to implement a Remote Procedure Call (RPC) interface, it is also suited to asynchronous data exchanges driven by client or server.\r
+\r
+The basic unit of data in CROMP is an infoton. This is a C++ object that serves as a base class for all packets of data sent over the network. It's a term that bundles together the concepts of information and photons to get a smallest information unit in CROMP.\r
+\r
+There is also a coordinating object called the Octopus that processes infotons and can produce infotons as results. This object is the core service provider for any CROMP based system, but it mainly handles routing infotons to the proper servicing object.\r
+\r
+In CROMP, the objects that actually do the work are called tentacles. Each tentacle forms one arm of the octopus in a metaphorical sense; the tentacle is reponsible for handling one particular type of infoton and also may need to generate reply infotons to requests that have been made. An octopus can have an arbitrary number of tentacles attached to it for handling data (not just eight).\r
+\r
+The CROMP subsystem wraps an octopus object and gives it a network presence. The CROMP layer defines network packing rules that make up the protocol. It also provides a transport mechanism based on sockets for infotons to be sent and received. This supports a CROMP service residing at a particular port on a particular host and processing infotons sent to it over the network.\r
+\r
+\r
This is the "feisty meow® concerns" codebase top folder.
+####
+
+Feisty Meow Concerns Ltd. is a small software shop that concentrates on
+building high quality, portable, open source projects in a variety of
+languages (primarily bash, perl, python, C++, and Java). Here are some
+highlights of our main products:
+
+ Bookmark Processing Tools - can take a mozilla bookmark file or arbitrary
+ web page and extract all the links out of it, building a csv database of
+ web links. Using that database, a variety of output formats are
+ provided, including one that outputs a mozilla bookmark file again.
+ The most useful feature is probably the marks checker that operates on
+ our csv format and that locates all unreachable links in the file and
+ separates them out.
+
+ CROMP protocol - supports transmission of objects across the network and
+ provides a platform independent method for RPC and other types of
+ communication.
+
+ Octopus design pattern - the underpinning of the CROMP protocol. An octopus
+ has an arbitrary number of tentacles (no, not just eight) which are each
+ responsible for consuming a different type of object (or datum).
+
+ Fast Templates and Portable Abstractions - the class libraries of Feisty Meow
+ provide numerous different data structures and programming language
+ abstractions (like threads and state machines). There are also some
+ fairly ancient templates (in use since late 80s) which in many cases
+ perform faster than their STL analogues.
+
+ CLAM System - Feisty Meow is the home site of the CLAM makefile system. The
+ CLAM system is a flexible and extensible method for building C++ and
+ C# files using makefiles.
+
+####
+
+Historical note:
Feisty Meow® Concerns codebase comprises some but probably not all of several projects that
have come before. These include the Twain.COM library scripts, the Yeti / YetiCode library
scripts, the HOOPLE 1 and HOOPLE 2 C++ Codebases, the Fred Huffhines open source LSL scripts,
the CLAM build system, and a variety of other efforts.
+####
+
Directories and files of interest here...
scripts/
Source code specifically for web programming and building sites. Mainly a few javascript
files we keep around.
+####
+
+Notable Prerequisites for Using the Feisty Meow® codebase:
+
+ Software required to compile under Linux:
+ Gnu C++
+ A few free source libraries (see "building.txt" for more information).
+
+ Software required to compiler under MS-windows:
+ The free Microsoft compiler should build the codebase but it is untested.
+ The full version of MS Visual Studio 2010 (version 10) is supported.
+ --but this has fallen into disrepair.
+ Gnu C++ should compile the codebase but it is also untested recently.
+
+####
+
+More information is available at the official site http://feistymeow.org
+
+####
+