SAL
From GTALUG
Sitemap > Culture > Psema4 > SAL
Contents |
SAL
What is it and what are its goals?
SAL, or Sub Application Layer, is a library of data-access and -visualization objects. It is not an application framework, but rather some gears that one might use to build a framework.
It's primary goal is to aid in the rapid development of reporting tools, but as with Perl, SAL is extremely flexible. It can be used for any number of purposes. As development progresses, the distributions' samples directory will contain examples of various uses for SAL.
The project has two major milestones that I'd like to hit within the next 12-24 months: the inclusion of a multi-platform widget set (wxWidgets most likely), and the inclusion of SAL. Still working on the details, but in both cases, the additions will simply subclass other Perl modules to provide a consistant and clean API for the SAL programmer.
Quick History
- Version 3.01
- CPAN release
- Version 3.0
- First public release
- Cleaned up copy of version 2
- Version 2.0
- Renamed modules and reorganized
- Added SQLite
- Graph3D
- Version 1.0
- Initial modules (QObject, Auth, Widget)
Installation
New: SAL is currently being uploaded to CPAN which should clean up the installation woes for SAL. New installation instructions, and a general clean-up of this section will be coming shortly. -- dl33t::talk 22:57, 27 Jun 2005 (EDT)
- A skeletal package containing the modules and samples (May 03, 2005 12:00a manual snapshot) can now be found here:
From the INSTALL:
Quick(hopefully)start
=====================
1. Download and install libgd (v2.01 or better) if necessary. http://www.boutell.com/gd/
2. Using CPAN, install GD::Graph3d if necessary. Let CPAN handle the dependancies. :-)
3. Using CPAN, install one (or more) of DBD::mysql, DBD::ODBC, or DBD::SQLite
4. Move the SAL directory onto perl's search path. (run 'perl -V' for @INC paths)
eg: mv ./SAL /usr/lib/perl5/site_perl/
5. If all goes well, you should be able to run the example shell with ./samples/lsql
6. If that works, any you've got apache install, try moving ./samples/web to your cgi-bin
eg: mv ./samples/web /var/www/cgi-bin/sal-samples
Better documentation should be coming soon.
- May 03, 2005
- dl33t
Dependancies
- Libraries
- libgd 2.01+
- libgd 2.01+
- Modules
- GD.pm
- GD::Graph
- GD::Graph3D
- DBD::Mysql (for mysql)
- DBD::ODBC (for odbc)
- DBD::SQLite (for sqlite)
Documentation
~Do: Todo: SAL module documentation
Modules
These modules have been in development (on and off) for about the last 18 months. They represent a decent portion of what I've learned about perl so far... As a result, these modules may not be (and currently are not) properly documented or optimized. Comments are also inconsistant. (sorry) If you feel an urge to modify the code here... go ahead. :-)
SAL Module List
- Boilerplate for new modules: SAL-Base
- Database Abstraction: SAL-DBI (mysql, odbc, sqlite)
- Graph Generator: SAL-Graph
- Logging utility module: SAL-Log (not implemented)
- Application support module: SAL-WebApplication (needs work)
- Data Driven Reporting module: SAL-WebDDR (works, but needs overhaul)
Samples
Console / System administration
- lsql - a mini isql-esque clone written with SAL
- salsquid - sal-powered authenticator for squid (in development and working :)
- salauth - two sal-powered authenticators for apache and mod_auth_external2 (in development :)
Web
- See also: Psema4Topic Web Development
- salsurvey.cgi a simple poll script, any number of 3-choice questions
- SAL Reporting Examples (simple report and graph examples)

