Main > Free Download Search >

Free person software for linux

person

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 293
Persistent::LDAP 0.50

Persistent::LDAP 0.50


Persistent::LDAP is a persistent class implemented using a LDAP directory. more>>
Persistent::LDAP is a persistent class implemented using a LDAP directory.

SYNOPSIS

use Persistent::LDAP;
use English; # import readable variable names like $EVAL_ERROR

eval { ### in case an exception is thrown ###

### allocate a persistent object ###
my $person =
new Persistent::LDAP(localhost, 389,
cn=Directory Manager, test1234,
ou=Engineering,o=Big Snow Org,c=US);

### declare attributes of the object ###
$person->add_attribute(uid, ID, String);
$person->add_attribute(userpassword, Persistent, String);
$person->add_attribute(objectclass, Persistent, String);
$person->add_attribute(givenname, Persistent, String);
$person->add_attribute(sn, Persistent, String);
$person->add_attribute(cn, Persistent, String);
$person->add_attribute(mail, Persistent, String);
$person->add_attribute(telephonenumber, Persistent, String);

### query the datastore for some objects ###
$person->restore_where(& (objectclass=person)(mail=*bigsnow.org),
sn, givenname);
while ($person->restore_next()) {
printf("name = %s, email = %sn",
$person->givenname . . $person->sn,
$person->mail);
}
};

if ($EVAL_ERROR) { ### catch those exceptions! ###
print "An error occurred: $EVAL_ERRORn";
}

ABSTRACT

This is a Persistent class that uses a LDAP directory to store and retrieve objects. This class can be instantiated directly or subclassed. The methods described below are unique to this class, and all other methods that are provided by this class are documented in the Persistent documentation. The Persistent documentation has a very thorough introduction to using the Persistent framework of classes.

<<less
Download (0.015MB)
Added: 2007-05-19 License: Perl Artistic License Price:
889 downloads
Persistent::Base 0.52

Persistent::Base 0.52


Persistent::Base is an Abstract Persistent Base Class. more>>
Persistent::Base is an Abstract Persistent Base Class.

SYNOPSIS

### we are a subclass of ... ###
use Persistent::Base;
@ISA = qw(Persistent::Base);

ABSTRACT

This is an abstract class used by the Persistent framework of classes to implement persistence with various types of data stores. This class provides the methods and interface for implementing Persistent classes. Refer to the Persistent documentation for a very thorough introduction to using the Persistent framework of classes.

This class is part of the Persistent base package which is available from:

http://www.bigsnow.org/persistent
ftp://ftp.bigsnow.org/pub/persistent

Before we get started describing the methods in detail, it should be noted that all error handling in this class is done with exceptions. So you should wrap an eval block around all of your code. Please see the Persistent documentation for more information on exception handling in Perl.

ABSTRACT METHODS THAT NEED TO BE OVERRIDDEN IN THE SUBCLASS

datastore -- Sets/Returns the Data Store Parameters

eval {
### set the data store ###
$person->datastore(@args);

### get the data store ###
$href = $person->datastore();
};
croak "Exception caught: $@" if $@;

Returns (and optionally sets) the data store of the object. This method throws Perl execeptions so use it with an eval block.

Setting the data store can involve anything from initializing a connection to opening a file. Getting a data store usually means returning information pertaining to the data store in a useful form, such as a connection to a database or a location of a file.

<<less
Download (0.038MB)
Added: 2007-05-18 License: Perl Artistic License Price:
889 downloads
PEditor 0.3

PEditor 0.3


PEditor is an experimental programmers editor. more>>
PEditor is an experimental programmers editor. The goal is to create an editor that could be used by a person (most likely a student) with no a priori knowledge of programming. This aims to be a classic "write code, click run" IDE.
Main features:
- tabs
- syntax highlighting
- some form of auto-complete
- ability to compile/run simple programmes
- a code snippets library
PEditor project is aimed at the C/C++ programmer, though support for other languages may be added.
<<less
Download (0.52MB)
Added: 2007-07-07 License: GPL (GNU General Public License) Price:
842 downloads
eGWSync 0.1

eGWSync 0.1


eGWSync allows you to access your eGroupware contacts (which are stored in a MySQL or PostgreSQL database) through LDAP. more>>
eGWSync allows you to access your eGroupware contacts (which are stored in a MySQL or PostgreSQL database) through LDAP.
Youll be able to use Mozilla Thunderbird, Eudora, Outlook to see your contacts through your LDAP server.
Main features:
- Only replicates contacts that have been added or changed
- Does not need additional schema to be loaded into the LDAP server - only person, organizationalPerson and inetorgperson are required.
Benefits
Use the friendly and efficient eGroupware system to manage your contacts
Access the contacts from other applications like Squirrelmail or Mozilla Thunderbird.
<<less
Download (0.008MB)
Added: 2006-09-15 License: GPL (GNU General Public License) Price:
1135 downloads
Adventure Money 1.0

Adventure Money 1.0


Adventure Money project quickly calculate money shared each month between multiple people for multiple bills. more>>
Since I am the person who manages the money for our house, I need an efficient way to keep track of our expenses and an easy way to calculate who owes what to whom at the end of the month. There are lots of good free software utilities for managing money like GnuCash, KMyMoney and the wonderful Gnumeric spreadsheet. I had been using Gnumeric to manage the money for the last 8 months, but now that we have some people staying at the house for just the summer, and other leaving and coming back in September, the spreadsheet was not able to adjust to these irregular circumstances.

The reason I decided to write my own application from scratch instead of using an already existing money management application was because my problem is multi-person orientation and most (if not all) of the money management programs I have tried are single-person oriented. For example GnuCash will let you setup accounts that show you all the money moving to and from a single person. But in my house things like food are paid by any person and shared by every other person. Thus to efficiently and easily calculate who owes how much, it must take into account the fact that one pizza may be paid for by one person, but it was eaten by 4 people. Also I dont want to have to divide up the amounts myself and put it into GnuCash with multiple accounts, because then I might as well be doing it on paper.

I could have spent my time learning to make an already existing application do exactly what I want; and I probably would have found something pretty close. But I decided that it would be faster to just program it from scratch and then I would be sure I would get exactly what I wanted. I think I was right; it took less then 2 weeks to finished writing this program.

The program is currently called Adventure Money, but if anyone can think of a better name for it let me know and Ill gladly change it.

When you first launch the program you will see it has five views, all of which can be seen in the screenshots below.

<<less
Download (0.023MB)
Added: 2007-05-16 License: GPL (GNU General Public License) Price:
900 downloads
Relations 0.95

Relations 0.95


Relations is a Perl module with functions to use with databases and queries. more>>
Relations is a Perl module with functions to use with databases and queries.

SYNOPSIS

use Relations;

$as_clause = as_clause({full_name => "concat(f_name, ,l_name)",
{status => "if(married,Married,Single)"})

$query = "select $as_clause from person";

$avoid = to_hash("virustbug","t");

if ($avoid->{bug}) {

print "Avoiding the bug...";

}

unless ($avoid->{code}) {

print "Not avoiding the code...";

}

<<less
Download (0.018MB)
Added: 2007-05-16 License: Perl Artistic License Price:
891 downloads
Overflow 1.0.1

Overflow 1.0.1


Overflow is a board game about chain reactions. more>>
Overflow project is a board game about chain reactions.
Overflow is a board game for two players or one player against the computer. Put pieces on the board until critical mass is reached, and watch a chain reaction go off.
Although the rules are simple, several different tactical considerations are required in order to play the game well.
The name refers to the key principle in the game that each cell on the board can hold a maximum of three units (pieces), and if you add another unit to a filled up cell, the units will be distributed to the four neighbor cells.
Main features:
- Play against the computer or another person
- Advanced hint feature
- Unlimited take backs and redos
- Ugly but scalable graphics
- Selectable colors
<<less
Download (0.14MB)
Added: 2007-01-12 License: GPL (GNU General Public License) Price:
1052 downloads
Chess::Elo 0.02

Chess::Elo 0.02


Chess::Elo is a Perl module to calculate Chess Elo ratings. more>>
Chess::Elo is a Perl module to calculate Chess "Elo" ratings.

SYNOPSIS

use Chess::Elo qw(:all);

# Alice is going to thump Bob...
my ($alice_elo, $bob_elo) = (2100, 1200);

# Oh no, Alice lost to Bob!
my $result = 0; # 0.5 for draw, 1 for win

my @new_elo_alice_bob = elo ($alice, 0, $bob);
use Data::Dumper; warn Dumper(@new_elo_alice_bob);

[
2068.17894295388, # My, Alice took a hit on her rating :)
1231.82105704612 # Bob is setting pretty
];

This module provides a single function, elo which allows one to calculate individual ratings based on performance. Typically, a player is given an initial provisional rating of 1600 points. In all cases, one gains and loses points as a function of the playing strength of both parties and the result of their encounter.

The formula used is the same one used at magi-nation:

http://www.magi-nation.com/Tournaments/ratingsfaq.htm

Or, quantitatively speaking:

A2 = A1 + 32 ( G - ( 1 / ( 1 + 10 ** ( ( B1 -A1) / 400 ) ) ) )
A2 is Alices post-game rating
A1 is Alice rating before the game against Bob
B1 is Bobs rating before the game against Alice
G is the game result, in this case:

1, if A beats B

0, if A loses to B

0.5, if A draws to B

METHODS

($new_a, $new_b) = elo($elo_a, $result, $elo_b)

This function takes 3 arguments describing the result of a person with rating $elo_a competing with the person with rating $elo_b. The result argument is from the perspective of person A. Thus if A won $result is 1. If A lost, $result is 0. If A drew, $result is 0.5.

EXPORT

None by default, elo upon request.

<<less
Download (0.004MB)
Added: 2007-01-04 License: Perl Artistic License Price:
1025 downloads
XML::Filter::Sort 1.01

XML::Filter::Sort 1.01


XML::Filter::Sort is a SAX filter for sorting elements in XML. more>>
XML::Filter::Sort is a SAX filter for sorting elements in XML.

SYNOPSIS

use XML::Filter::Sort;
use XML::SAX::Machines qw( :all );

my $sorter = XML::Filter::Sort->new(
Record => person,
Keys => [
[ lastname, alpha, asc ],
[ firstname, alpha, asc ],
[ @age, num, desc]
],
);

my $filter = Pipeline( $sorter => *STDOUT );

$filter->parse_file(*STDIN);
Or from the command line:
xmlsort

This module is a SAX filter for sorting records in XML documents (including documents larger than available memory). The xmlsort utility which is included with this distribution can be used to sort an XML file from the command line without writing Perl code (see perldoc xmlsort).

<<less
Download (0.025MB)
Added: 2006-09-06 License: Perl Artistic License Price:
1145 downloads
Loose Cannon 0.5.0

Loose Cannon 0.5.0


Loose Cannon is a 3rd Person Action Game. more>>
Loose Cannon is a 3rd Person Action Game.

Demo campaign that comes with game has couple of monsters and elevator between levels.

<<less
Download (3.4MB)
Added: 2006-07-12 License: GPL (GNU General Public License) Price:
1200 downloads
Accelerator 0.1.1

Accelerator 0.1.1


Fast, first person shoot-em-up. more>>
Accelerator is a 3D shoot-em-up in which you pilot a craft through a tunnel, avoiding or destroying anything that gets in your way, whilst getting steadily faster and faster.

Currently lacking vast amounts of polish - a side effect of having originally been developed in a week, for a programming challenge - but it is playable.



<<less
Download (0.44MB)
Added: 2005-12-26 License: GPL (GNU General Public License) Price:
1403 downloads
SQL::Routine 0.70.3

SQL::Routine 0.70.3


SQL::Routine is a Perl module to specify all database tasks with SQL routines. more>>
SQL::Routine is a Perl module to specify all database tasks with SQL routines.

SYNOPSIS

This executable code example shows how to define some simple database tasks with SQL::Routine; it only shows a tiny fraction of what the module is capable of, since more advanced features are not shown for brevity.

use SQL::Routine;

eval {
# Create a model/container in which all SQL details are to be stored.
# The two boolean options being set true here permit all the subsequent code to be as concise,
# easy to read, and most SQL-string-like as possible, at the cost of being slower to execute.
my $model = SQL::Routine->new_container();
$model->auto_set_node_ids( 1 );
$model->may_match_surrogate_node_ids( 1 );

# This defines 4 scalar/column/field data types (1 number, 2 char strings, 1 enumerated value type)
# and 2 row/table data types; the former are atomic and the latter are composite.
# The former can describe individual columns of a base table (table) or viewed table (view),
# while the latter can describe an entire table or view.
# Any of these can describe a domain schema object or a stored procedures variables data type.
# See also the person and person_with_parents table+view defs further below; these data types help describe them.
$model->build_child_node_trees( [
[ scalar_data_type, { si_name => entity_id , base_type => NUM_INT , num_precision => 9, }, ],
[ scalar_data_type, { si_name => alt_id , base_type => STR_CHAR, max_chars => 20, char_enc => UTF8, }, ],
[ scalar_data_type, { si_name => person_name, base_type => STR_CHAR, max_chars => 100, char_enc => UTF8, }, ],
[ scalar_data_type, { si_name => person_sex , base_type => STR_CHAR, max_chars => 1, char_enc => UTF8, }, [
[ scalar_data_type_opt, M, ],
[ scalar_data_type_opt, F, ],
], ],
[ row_data_type, person, [
[ row_data_type_field, { si_name => person_id , scalar_data_type => entity_id , }, ],
[ row_data_type_field, { si_name => alternate_id, scalar_data_type => alt_id , }, ],
[ row_data_type_field, { si_name => name , scalar_data_type => person_name, }, ],
[ row_data_type_field, { si_name => sex , scalar_data_type => person_sex , }, ],
[ row_data_type_field, { si_name => father_id , scalar_data_type => entity_id , }, ],
[ row_data_type_field, { si_name => mother_id , scalar_data_type => entity_id , }, ],
], ],
[ row_data_type, person_with_parents, [
[ row_data_type_field, { si_name => self_id , scalar_data_type => entity_id , }, ],
[ row_data_type_field, { si_name => self_name , scalar_data_type => person_name, }, ],
[ row_data_type_field, { si_name => father_id , scalar_data_type => entity_id , }, ],
[ row_data_type_field, { si_name => father_name, scalar_data_type => person_name, }, ],
[ row_data_type_field, { si_name => mother_id , scalar_data_type => entity_id , }, ],
[ row_data_type_field, { si_name => mother_name, scalar_data_type => person_name, }, ],
], ],
] );

# This defines the blueprint of a database catalog that contains a single schema and a single virtual user which owns the schema.
my $catalog_bp = $model->build_child_node_tree( catalog, Gene Database, [
[ owner, Lord of the Root, ],
[ schema, { si_name => Gene Schema, owner => Lord of the Root, }, ],
] );
my $schema = $catalog_bp->find_child_node_by_surrogate_id( Gene Schema );

# This defines a base table (table) schema object that lives in the aforementioned database catalog.
# It contains 6 columns, including a not-null primary key (having a trivial sequence generator to give it
# default values), another not-null field, a surrogate key, and 2 self-referencing foreign keys.
# Each row represents a single person, for each storing up to 2 unique identifiers, name, sex, and the parents unique ids.
my $tb_person = $schema->build_child_node_tree( table, { si_name => person, row_data_type => person, }, [
[ table_field, { si_row_field => person_id, mandatory => 1, default_val => 1, auto_inc => 1, }, ],
[ table_field, { si_row_field => name , mandatory => 1, }, ],
[ table_index, { si_name => primary , index_type => UNIQUE, }, [
[ table_index_field, person_id, ],
], ],
[ table_index, { si_name => ak_alternate_id, index_type => UNIQUE, }, [
[ table_index_field, alternate_id, ],
], ],
[ table_index, { si_name => fk_father, index_type => FOREIGN, f_table => person, }, [
[ table_index_field, { si_field => father_id, f_field => person_id } ],
], ],
[ table_index, { si_name => fk_mother, index_type => FOREIGN, f_table => person, }, [
[ table_index_field, { si_field => mother_id, f_field => person_id } ],
], ],
] );

# This defines a viewed table (view) schema object that lives in the aforementioned database catalog.
# It left-outer-joins the person table to itself twice and returns 2 columns from each constituent, for 6 total.
# Each row gives the unique id and name each for 3 people, a given person and that persons 2 parents.
my $vw_pwp = $schema->build_child_node_tree( view, { si_name => person_with_parents,
view_type => JOINED, row_data_type => person_with_parents, }, [
( map { [ view_src, { si_name => $_, match => person, }, [
map { [ view_src_field, $_, ], } ( person_id, name, father_id, mother_id, ),
], ], } (self) ),
( map { [ view_src, { si_name => $_, match => person, }, [
map { [ view_src_field, $_, ], } ( person_id, name, ),
], ], } ( father, mother, ) ),
[ view_field, { si_row_field => self_id , src_field => [person_id,self ], }, ],
[ view_field, { si_row_field => self_name , src_field => [name ,self ], }, ],
[ view_field, { si_row_field => father_id , src_field => [person_id,father], }, ],
[ view_field, { si_row_field => father_name, src_field => [name ,father], }, ],
[ view_field, { si_row_field => mother_id , src_field => [person_id,mother], }, ],
[ view_field, { si_row_field => mother_name, src_field => [name ,mother], }, ],
[ view_join, { lhs_src => self, rhs_src => father, join_op => LEFT, }, [
[ view_join_field, { lhs_src_field => father_id, rhs_src_field => person_id } ],
], ],
[ view_join, { lhs_src => self, rhs_src => mother, join_op => LEFT, }, [
[ view_join_field, { lhs_src_field => mother_id, rhs_src_field => person_id } ],
], ],
] );

# This defines the blueprint of an application that has a single virtual connection descriptor to the above database.
my $application_bp = $model->build_child_node_tree( application, Gene App, [
[ catalog_link, { si_name => editor_link, target => $catalog_bp, }, ],
] );

# This defines another scalar data type, which is used by some routines that follow below.
my $sdt_login_auth = $model->build_child_node( scalar_data_type, { si_name => login_auth,
base_type => STR_CHAR, max_chars => 20, char_enc => UTF8, } );

# This defines an application-side routine/function that connects to the Gene Database, fetches all
# the records from the person_with_parents view, disconnects the database, and returns the fetched records.
# It takes run-time arguments for a user login name and password that are used when connecting.
my $rt_fetch_pwp = $application_bp->build_child_node_tree( routine, { si_name => fetch_pwp,
routine_type => FUNCTION, return_cont_type => RW_ARY, return_row_data_type => person_with_parents, }, [
[ routine_arg, { si_name => login_name, cont_type => SCALAR, scalar_data_type => $sdt_login_auth }, ],
[ routine_arg, { si_name => login_pass, cont_type => SCALAR, scalar_data_type => $sdt_login_auth }, ],
[ routine_var, { si_name => conn_cx, cont_type => CONN, conn_link => editor_link, }, ],
[ routine_stmt, { call_sroutine => CATALOG_OPEN, }, [
[ routine_expr, { call_sroutine_cxt => CONN_CX, cont_type => CONN, valf_p_routine_item => conn_cx, }, ],
[ routine_expr, { call_sroutine_arg => LOGIN_NAME, cont_type => SCALAR, valf_p_routine_item => login_name, }, ],
[ routine_expr, { call_sroutine_arg => LOGIN_PASS, cont_type => SCALAR, valf_p_routine_item => login_pass, }, ],
], ],
[ routine_var, { si_name => pwp_ary, cont_type => RW_ARY, row_data_type => person_with_parents, }, ],
[ routine_stmt, { call_sroutine => SELECT, }, [
[ view, { si_name => query_pwp, view_type => ALIAS, row_data_type => person_with_parents, }, [
[ view_src, { si_name => s, match => $vw_pwp, }, ],
], ],
[ routine_expr, { call_sroutine_cxt => CONN_CX, cont_type => CONN, valf_p_routine_item => conn_cx, }, ],
[ routine_expr, { call_sroutine_arg => SELECT_DEFN, cont_type => SRT_NODE, act_on => query_pwp, }, ],
[ routine_expr, { call_sroutine_arg => INTO, query_dest => pwp_ary, cont_type => RW_ARY, }, ],
], ],
[ routine_stmt, { call_sroutine => CATALOG_CLOSE, }, [
[ routine_expr, { call_sroutine_cxt => CONN_CX, cont_type => CONN, valf_p_routine_item, conn_cx, }, ],
], ],
[ routine_stmt, { call_sroutine => RETURN, }, [
[ routine_expr, { call_sroutine_arg => RETURN_VALUE, cont_type => RW_ARY, valf_p_routine_item => pwp_ary, }, ],
], ],
] );

# This defines an application-side routine/procedure that inserts a set of records, given in an argument,
# into the person table. It takes an already opened db connection handle to operate through as a
# context argument (which would represent the invocant if this routine was wrapped in an object-oriented interface).
my $rt_add_people = $application_bp->build_child_node_tree( routine, { si_name => add_people, routine_type => PROCEDURE, }, [
[ routine_context, { si_name => conn_cx, cont_type => CONN, conn_link => editor_link, }, ],
[ routine_arg, { si_name => person_ary, cont_type => RW_ARY, row_data_type => person, }, ],
[ routine_stmt, { call_sroutine => INSERT, }, [
[ view, { si_name => insert_people, view_type => INSERT, row_data_type => person, ins_p_routine_item => person_ary, }, [
[ view_src, { si_name => s, match => $tb_person, }, ],
], ],
[ routine_expr, { call_sroutine_cxt => CONN_CX, cont_type => CONN, valf_p_routine_item => conn_cx, }, ],
[ routine_expr, { call_sroutine_arg => INSERT_DEFN, cont_type => SRT_NODE, act_on => insert_people, }, ],
], ],
] );

# This defines an application-side routine/function that fetches one record
# from the person table which matches its argument.
my $rt_get_person = $application_bp->build_child_node_tree( routine, { si_name => get_person,
routine_type => FUNCTION, return_cont_type => ROW, return_row_data_type => person, }, [
[ routine_context, { si_name => conn_cx, cont_type => CONN, conn_link => editor_link, }, ],
[ routine_arg, { si_name => arg_person_id, cont_type => SCALAR, scalar_data_type => entity_id, }, ],
[ routine_var, { si_name => person_row, cont_type => ROW, row_data_type => person, }, ],
[ routine_stmt, { call_sroutine => SELECT, }, [
[ view, { si_name => query_person, view_type => JOINED, row_data_type => person, }, [
[ view_src, { si_name => s, match => $tb_person, }, [
[ view_src_field, person_id, ],
], ],
[ view_expr, { view_part => WHERE, cont_type => SCALAR, valf_call_sroutine => EQ, }, [
[ view_expr, { call_sroutine_arg => LHS, cont_type => SCALAR, valf_src_field => person_id, }, ],
[ view_expr, { call_sroutine_arg => RHS, cont_type => SCALAR, valf_p_routine_item => arg_person_id, }, ],
], ],
], ],
[ routine_expr, { call_sroutine_cxt => CONN_CX, cont_type => CONN, valf_p_routine_item => conn_cx, }, ],
[ routine_expr, { call_sroutine_arg => SELECT_DEFN, cont_type => SRT_NODE, act_on => query_person, }, ],
[ routine_expr, { call_sroutine_arg => INTO, query_dest => person_row, cont_type => RW_ARY, }, ],
], ],
[ routine_stmt, { call_sroutine => RETURN, }, [
[ routine_expr, { call_sroutine_arg => RETURN_VALUE, cont_type => ROW, valf_p_routine_item => person_row, }, ],
], ],
] );

# This defines 6 database engine descriptors and 2 database bridge descriptors that we may be using.
# These details can help external code determine such things as what string-SQL flavors should be
# generated from the model, as well as which database features can be used natively or have to be emulated.
# The si_name has no meaning to code and is for users; the other attribute values should have meaning to said external code.
$model->build_child_node_trees( [
[ data_storage_product, { si_name => SQLite v3.2 , product_code => SQLite_3_2 , is_file_based => 1, }, ],
[ data_storage_product, { si_name => MySQL v5.0 , product_code => MySQL_5_0 , is_network_svc => 1, }, ],
[ data_storage_product, { si_name => PostgreSQL v8, product_code => PostgreSQL_8, is_network_svc => 1, }, ],
[ data_storage_product, { si_name => Oracle v10g , product_code => Oracle_10_g , is_network_svc => 1, }, ],
[ data_storage_product, { si_name => Sybase , product_code => Sybase , is_network_svc => 1, }, ],
[ data_storage_product, { si_name => CSV , product_code => CSV , is_file_based => 1, }, ],
[ data_link_product, { si_name => Microsoft ODBC v3, product_code => ODBC_3, }, ],
[ data_link_product, { si_name => Oracle OCI*8, product_code => OCI_8, }, ],
[ data_link_product, { si_name => Generic Rosetta Engine, product_code => Rosetta::Engine::Generic, }, ],
] );

# This defines one concrete instance each of the database catalog and an application using it.
# This concrete database instance includes two concrete user definitions, one that can owns
# the schema and one that can only edit data. The concrete application instance includes
# a concrete connection descriptor going to this concrete database instance.
# Note that user descriptions are only stored in a SQL::Routine model when that model is being used to create
# database catalogs and/or create or modify database users; otherwise user should not be kept for security sake.
$model->build_child_node_trees( [
[ catalog_instance, { si_name => test, blueprint => $catalog_bp, product => PostgreSQL v8, }, [
[ user, { si_name => ronsealy, user_type => SCHEMA_OWNER, match_owner => Lord of the Root, password => K34dsD, }, ],
[ user, { si_name => joesmith, user_type => DATA_EDITOR, password => fdsKJ4, }, ],
], ],
[ application_instance, { si_name => test app, blueprint => $application_bp, }, [
[ catalog_link_instance, { blueprint => editor_link, product => Microsoft ODBC v3, target => test, local_dsn => keep_it, }, ],
], ],
] );

# This defines another concrete instance each of the database catalog and an application using it.
$model->build_child_node_trees( [
[ catalog_instance, { si_name => production, blueprint => $catalog_bp, product => Oracle v10g, }, [
[ user, { si_name => florence, user_type => SCHEMA_OWNER, match_owner => Lord of the Root, password => 0sfs8G, }, ],
[ user, { si_name => thainuff, user_type => DATA_EDITOR, password => 9340sd, }, ],
], ],
[ application_instance, { si_name => production app, blueprint => $application_bp, }, [
[ catalog_link_instance, { blueprint => editor_link, product => Oracle OCI*8, target => production, local_dsn => ship_it, }, ],
], ],
] );

# This defines a third concrete instance each of the database catalog and an application using it.
$model->build_child_node_trees( [
[ catalog_instance, { si_name => laptop demo, blueprint => $catalog_bp, product => SQLite v3.2, file_path => Move It, }, ],
[ application_instance, { si_name => laptop demo app, blueprint => $application_bp, }, [
[ catalog_link_instance, { blueprint => editor_link, product => Generic Rosetta Engine, target => laptop demo, }, ],
], ],
] );

# This line will run some correctness tests on the model that were not done
# when the model was being populated for execution speed efficiency.
$model->assert_deferrable_constraints();

# This line will dump the contents of the model in pretty-printed XML format.
# It can be helpful when debugging your programs that use SQL::Routine.
print $model->get_all_properties_as_xml_str( 1 );
};
$@ and print error_to_string($@);

# SQL::Routine throws object exceptions when it encounters bad input; this function
# will convert those into human readable text for display by the try/catch block.
sub error_to_string {
my ($message) = @_;
if (ref $message and UNIVERSAL::isa( $message, Locale::KeyedText::Message )) {
my $translator = Locale::KeyedText->new_translator( [SQL::Routine::L::], [en] );
my $user_text = $translator->translate_message( $message );
return q{internal error: cant find user text for a message: }
. $message->as_string() . . $translator->as_string();
if !$user_text;
return $user_text;
}
return $message; # if this isnt the right kind of object
}

Note that one key feature of SQL::Routine is that all of a models pieces are linked by references rather than by name as in SQL itself. For example, the name of the person table is only stored once internally; if, after executing all of the above code, you were to run "$tb_person->set_attribute( si_name, The Huddled Masses );", then all of the other parts of the model that referred to the table would not break, and an XML dump would show that all the references now say The Huddled Masses.

For some more (older) examples of SQL::Routine in use, see its test suite code.

<<less
Download (0.17MB)
Added: 2006-09-12 License: Perl Artistic License Price:
1137 downloads
User::Identity 0.91

User::Identity 0.91


User::Identity is a Perl module that maintains info about a physical person. more>>
User::Identity is a Perl module that maintains info about a physical person.

INHERITANCE

User::Identity
is an User::Identity::Item

SYNOPSIS

use User::Identity;
my $me = User::Identity->new
( john
, firstname => John
, surname => Doe
);
print $me->fullName # prints "John Doe"
print $me; # same

The User::Identity object is created to maintain a set of informational objects which are related to one user. The User::Identity module tries to be smart providing defaults, conversions and often required combinations.

The identities are not implementing any kind of storage, and can therefore be created by any simple or complex Perl program. This way, it is more flexible than an XML file to store the data. For instance, you can decide to store the data with Data::Dumper, Storable, DBI, AddressBook or whatever. Extension to simplify this task are still to be developed.

If you need more kinds of user information, then please contact the module author.

<<less
Download (0.025MB)
Added: 2007-04-11 License: Perl Artistic License Price:
926 downloads
Virtual Universe Client 0.72

Virtual Universe Client 0.72


Virtual Universe is a 3D cyberspace which offers more possibilities than just chat. more>>
The "Virtual Universe" is a 3D cyberspace which offers more possibilities than just chat: it is a combination of the Web, chat, and instant messaging within a realistic, three-dimensional cyberspace.
The "Virtual Universe" is a virtual reality environment which runs on top of the Internet.
Main features:
- chat with each other
- see the chat-partner as a virtual, three-dimensional person
- interact and communicate
- be creative in many ways
- create own worlds for any desired subject
Enhancements:
- A lighting bug in .COB/.SCN loader has been fixed.
<<less
Download (16.8MB)
Added: 2007-01-08 License: Freeware Price:
1020 downloads
Genecys 0.2

Genecys 0.2


Genecys is a 3D multiplayer online RPG. more>>
Genecys is a 3D multiplayer online RPG. It is designed to be a purely dynamic, large open environment for players to explore and play out a life however they wish.

The environment will evolve through interactions between the NPC AI, and the players over time. The primary goal of the game is to provide an open-ended play experience for all involved, with no set goals or jobs that must be completed.

If the player wishes to be a simple farmer, he should be free to do so. The game is a third-person perspective 3D game written in C. The Genecys MMORPG is released under an open source GNU/GPL license.

<<less
Download (31.2MB)
Added: 2005-09-08 License: GPL (GNU General Public License) Price:
1507 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5