Merge branch 'dev' of feistymeow.org:feisty_meow into dev
[feisty_meow.git] / documentation / history_anat.txt
1
2 This is the "feisty meow® concerns" codebase top folder.
3
4 This software is licensed *per* *file* using either the GNU General Public
5 License (GNU GPL) version 3 *or* the Apache Software License version 2.0.
6 If a file does not have a license statement attached and it is part of the
7 feisty meow® codebase (rather than attributed to some other author), then the
8 default license is the GNU GPL.
9
10 For information on building the source code, see the file "building.txt".
11
12 ####
13
14 Feisty Meow Concerns Ltd. is a small software shop that concentrates on
15 building high quality, portable, open source projects in a variety of
16 languages (primarily bash, perl, C++, Java, and python).  Here are some
17 highlights of our main products:
18
19   Bookmark Processing Tools - can take a mozilla bookmark file or arbitrary
20      web page and extract all the links out of it, building a csv database of
21      web links.  Using that database, a variety of output formats are
22      provided, including one that outputs a mozilla bookmark file again.
23      The most useful feature is probably the marks checker that operates on
24      our csv format and that locates all unreachable links in the file and
25      separates them out.
26
27   CROMP protocol - supports transmission of objects across the network and
28      provides a platform independent method for RPC and other types of
29      communication.
30
31   Octopus design pattern - the underpinning of the CROMP protocol.  An octopus
32      has an arbitrary number of tentacles (no, not just eight) which are each
33      responsible for consuming a different type of object (or datum).
34
35   Fast Templates and Portable Abstractions - the class libraries of Feisty Meow
36      provide numerous different data structures and programming language
37      abstractions (like threads and state machines).  There are also some
38      fairly ancient templates (in use since late 80s) which in many cases
39      perform faster than their STL analogues.
40
41   CLAM System - Feisty Meow is the home site of the CLAM makefile system.  The
42      CLAM system is a flexible and extensible method for building C++ and
43      C# files using makefiles.
44
45 ####
46
47 Historical note:
48 Feisty Meow® Concerns codebase comprises some but probably not all of several projects that
49 have come before.  These include the Twain.COM library scripts, the Yeti / YetiCode library
50 scripts, the HOOPLE 1 and HOOPLE 2 C++ Codebases, the Fred Huffhines open source LSL scripts,
51 the CLAM build system, and a variety of other efforts.
52
53 ####
54
55 Directories and files of interest here...
56
57 scripts/
58     Stores the script files that we use a lot.  These are usually written in interpreted
59     languages, such as bash and perl.  These were the core of the YetiCode scripts library.
60
61 nucleus/
62     Source for the basic modules of the Feisty Meow® codebase.  This includes generic
63     data structures, useful utilities, and the like.  This hierarchy, plus octopi and graphiq,
64     formed the major parts of hoople1 and hoople2.
65
66 huffware/
67     The library of LSL scripts for osgrid and Second Life written by the avatar named Fred
68     Huffhines.  Fred Huffhines is a regular contributor and a well-loved member of our
69     development team.  He also happens to be a fictional sock-puppet for adventuring around
70     the grids, but a lot of code has been written in his name.  We are going to release the
71     full corpus of the Huffhines work over time.
72
73 octopi/
74     Octopus design pattern and CROMP protocol reference implementations.  Assorted applications
75     based on these.
76
77 infobase/
78     Some files considered critical to the operations of Feisty Meow Concerns Ltd.  This includes
79     the database of fortunes used by the Nechung Oracle Program.
80
81 infobase/feisty_inits
82     Some example startup files for use with feisty meow.  These are deployed automatically by
83     the "connect_feisty_meow" command.
84
85 infobase/examples/
86     Some files that show how to get work done with Feisty Meow or that show how to do certain
87     tasks in different scripting / programming languages.
88
89 documentation/
90     Helpful guides and information for Feisty Meow.  Also includes a code documentation generator
91     configuration for feisty meow that produces a nice set of web docs, using doxygen.
92
93 kona/
94     Our burgeoning Java libraries.  Not much to see here yet, but there is some code piling
95     up for these that we will try to release soon.
96
97 osgi/
98     Some example bundles for Java OSGi.  These may eventually fill out with real material,
99     but currently they are just tracking the investigation we did into creating bundles and
100     running using them.
101
102 production/
103     Machinery for getting releases out the door, including the generated files such as binaries
104     and build system tools.
105
106 graphiq/
107     GUI tools and components, somewhat busted or just absent right now.
108
109 hypermedia/
110     Code that supports the hypertext and hypermedia ideas implemented on the web.  Mostly just
111     some javascript currently.
112
113 ####
114
115 Notable Prerequisites for Using the Feisty Meow® codebase:
116
117   Software required to compile under Linux:
118     Gnu C++
119     A few free source libraries (see "building.txt" for more information).
120
121   Software required to compiler under MS-windows:
122     The free Microsoft compiler should build the codebase but it is untested.
123     The full version of MS Visual Studio 2010 (version 10) is supported.
124       --but this has fallen into disrepair.
125     Gnu C++ should compile the codebase but it is also untested recently.
126
127 ####
128
129 More information is available at the official site http://feistymeow.org
130
131 ####
132