NGender Technology
Open Source Free Software
The OSFS movement now has more top-level programming talent
working on useful software than is available to any commercial
software house. It is particularly fertile because designers may
freely build upon any work already done. NGender Consulting
Group is committed to bringing the best of these programs,
libraries & frameworks to solve the practical needs of
NGender's clients.
We evaluate OSFS software according to a number of criteria, including:
- Stability & robustness
- Standards compliance & interoperability
- Required features
- Extensibility, customizability, overall power
- Ease of use
- Performance & efficiency
- Security
There is a trade-off between always using the simplest tool to
do the job & having to know lots of programs & control
languages. A good collection of software tools contains a
mixture of tools for addressing important application areas at
different levels of complexity. It is not necessary &
generally undesirable to provide all possible tools. One
should particularly avoid tools whose complexity outweighs
their functionality. We'll list a few important tools we use
here.
Web Technology
Apache 2.0
Apache is the most popular web server today & is
particularly powerful & efficient for building advanced
web sites. Apache exploits multi-tasking, Multi-threading
& data compression. Apache is highly extensible though a
modules system.
ModTcl – a Tcl module for Apache
Allows efficient use of Tcl for web-site business logic.
The Tcl interpreter & framework code need only be loaded
when the web server is started.
NGender Web Framework
An advanced web-site framework which leverages Apache,
ModTcl, postgresql & JavaScript to allow quick
construction of high-end dynamic web-sites.
Command & Control
ksh – the Korn Shell
Command Shells are programs for controlling other programs.
They can be used interactively or with scripts. ksh is the
most efficient & powerful command shell for writing shell
scripts. ksh is part of the Unix standard. ksh is
compatible with (it was the inspiration for) the popular
Gnu shell bash which is friendlier for interactive use.
tcl – the Tool Command Language
A remarkably clean & simple language for writing simple
programs, it can be embedded in other programs to make them
customizable, extensible, programmable & remote
controllable. Tcl is great for web-site business logic.
Tcl competes with other scripting languages such as Perl
& Python. We believe that Tcl is easier to learn, more
flexible & overall more productive than other scripting
languages.
expect – controlling interactive programs
An extension of Tcl designed to automate interactive
programs with scripts.
System Administration & Network Security
ssh & webmin – Secure Remote Access & Control
ssh allows secure remote interactive & scripting access
to server & client systems. webmin allows secure
interactive remote system monitoring & administration from
any web browser.
OpenSwan – Virtual Private Networking
Allows remote client machines to become part of an
organization's network from the outside, without
compromising security. Particularly useful for employees
who work from home or employees using notebook computers
while traveling. All data transmitted or received is
encrypted.
nmap – network mapping
Essential for auditing an organization's networks &
checking for potential security vulnerabilities.
Programming & Software Development
The Gnu Compiler Collective
Translates code written in popular languages such as C,
C++, Java, Ada, Fortran & Pascal into optimized
machine language. Works with most popular kinds of
computers, e.g. Intel Pentiums & compatible
microprocessors, Power PCs (used by Apple & IBM), SPARC's
(used by Sun Microsystems) & many more. Works on all
OSFS OSs as well as Microsoft Windows & other proprietary
platforms.
gvim & x/emacs – extensible programmer's editors
Multi-buffer multi-window syntax-aware editors which
understand nearly every language & many important text
file formats to optimize editing. Can work with or without
a GUI, with or without a mouse, over high or low speed
remote connections & can be extended or automated with a
built-in scripting language.
Gnu Make – dependency management
A tool for automatically managing dependencies among files
& running appropriate commands to bring files up to date
when the files they depend upon change. Highly extensible.
RCS & CVS – revision management
Manage changes & revisions among individual files or
collections. Manages integrity when multiple authors check
files in & out. Preserves history of each file with
author, time-stamp & date information. Provides many more
features – very advanced.
Manipulating Text
sed/ed/ex – Automate editing of text streams & files
Particularly useful for xml/xhtml & system administration
configuration files.
m4 – A general purpose macro processor.
Great for centralizing & factoring out common complex text
structures. Particularly helpful for
constructions.
awk – A text-oriented programming language.
Any text file can be viewed as a database. awk can
arbitrarily transform that data by simple pattern/action
rules.