alphaville ft
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 8
libft 0.2
libft is an open source version of the fischertechnik ROBO Interface Library for Unix like system. more>>
libft is an open source version of the fischertechnik ROBO Interface Library for Unix like system.
The goal is to create a library that is fully compatible with the ftlib by knobloch eletronic.
The latest version is available at http://defiant.homedns.org/~erik/ft/libft/
This library should work on any systems supported by libusb, like Linux, BSD and Mac OS X.
<<lessThe goal is to create a library that is fully compatible with the ftlib by knobloch eletronic.
The latest version is available at http://defiant.homedns.org/~erik/ft/libft/
This library should work on any systems supported by libusb, like Linux, BSD and Mac OS X.
Download (0.040MB)
Added: 2007-08-12 License: LGPL (GNU Lesser General Public License) Price:
803 downloads
Locale file highlighter for Vim
Locale file highlighter for Vim is highlights ISO TR 14652-style locale input files. more>>
Glibc uses locale (or fdcc) files to define cultural conventions. The files are usualy named
xx_ZZ where xx is the ISO language code and ZZ is the ISO country code.
Main features:
- highlights only valid keys with various LC_ sections
- Shows bad < UNNNN > unicode as an error
Installation
- Copy the file to your .vim/syntax directory in a locale file type: set syntax=fdcc
Filetype detection
Slightly harder as locale files do not have any specific suffix - but heres what to do
Insert this after the Diff section in your scripts.vim file. It does initial patern matching and then looks within the file to determine if it is a locale file.
The double quotes below are escaped on this site so remove those escapes. In fact it will probably mess up all back slashes aswell.
" CVS diff
else
let lnum = 1
while getline(lnum) =~ "^? " && lnum < line("$")
let lnum = lnum + 1
endwhile
if getline(lnum) =~ ^Index:s+f+$
set ft=diff
" locale input files: Formal Definitions of Cultural Conventions
" filename must be like en_US, fr_FR@euro or en_US.UTF-8
"elseif expand("%") =~ (ll_uu($|[.@])|i18n|POSIX|translit_*)
elseif expand("%") =~ aa_aa($|[.@])|i18n$|POSIX$|translit_
let lnum = 1
while lnum < 100 && lnum < line("$")
if getline(lnum) =~ ^LC_(IDENTIFICATION|CTYPE|COLLATE|MONETARY|NUMERIC|TIME|MESSAGES|PAPER|TELEPHONE|MEASUREMENT|NAME|ADDRESS)$
setf fdcc
break
endif
let lnum = lnum + 1
endwhile
endif
endif
unlet s:line2 s:line3 s:line4 s:line5
endif
<<lessxx_ZZ where xx is the ISO language code and ZZ is the ISO country code.
Main features:
- highlights only valid keys with various LC_ sections
- Shows bad < UNNNN > unicode as an error
Installation
- Copy the file to your .vim/syntax directory in a locale file type: set syntax=fdcc
Filetype detection
Slightly harder as locale files do not have any specific suffix - but heres what to do
Insert this after the Diff section in your scripts.vim file. It does initial patern matching and then looks within the file to determine if it is a locale file.
The double quotes below are escaped on this site so remove those escapes. In fact it will probably mess up all back slashes aswell.
" CVS diff
else
let lnum = 1
while getline(lnum) =~ "^? " && lnum < line("$")
let lnum = lnum + 1
endwhile
if getline(lnum) =~ ^Index:s+f+$
set ft=diff
" locale input files: Formal Definitions of Cultural Conventions
" filename must be like en_US, fr_FR@euro or en_US.UTF-8
"elseif expand("%") =~ (ll_uu($|[.@])|i18n|POSIX|translit_*)
elseif expand("%") =~ aa_aa($|[.@])|i18n$|POSIX$|translit_
let lnum = 1
while lnum < 100 && lnum < line("$")
if getline(lnum) =~ ^LC_(IDENTIFICATION|CTYPE|COLLATE|MONETARY|NUMERIC|TIME|MESSAGES|PAPER|TELEPHONE|MEASUREMENT|NAME|ADDRESS)$
setf fdcc
break
endif
let lnum = lnum + 1
endwhile
endif
endif
unlet s:line2 s:line3 s:line4 s:line5
endif
Download (0.001MB)
Added: 2005-04-13 License: GPL (GNU General Public License) Price:
1654 downloads
Class::DBI::Plugin::HTML 0.9
Class::DBI::Plugin::HTML is Perl module to generate HTML Tables and Forms in conjunction with Class::DBI. more>>
Class::DBI::Plugin::HTML is Perl module to generate HTML Tables and Forms in conjunction with Class::DBI.
SYNOPSIS
# Inside of your sub-class of Class::DBI add these lines:
use Class::DBI::Plugin::HTML;
use Class::DBI::Pager;
use Class::DBI::AbstractSearch;
use Class::DBI::Plugin::AbstractCount;
use Class::DBI::Plugin::RetrieveAll;
.....
# Inside your script you will be able to use this modules
# methods on your table class or object as needed.
use ClassDBIBaseClass;
use URI::Escape;
use CGI;
my $cgi = CGI->new();
my $cdbi_plugin_html = Baseball::Master->html();
$cdbi_plugin_html->data_table->addRow(Last Name,First Name,Bats , Throws ,
Height (ft),(inches),
Weight,Birth Year );
my %params;
map { $params{$_} =
uri_unescape($cgi->param("$_"))
} $cgi->param();
$cdbi_plugin_html->params( %params );
$cdbi_plugin_html->exclude_from_url([ page ]);
# attribute style
# created based on params and exclude values from above
# auto sets the query_string value
$cdbi_plugin_html->url_query();
# set the page name (script)
$cdbi_plugin_html->page_name(cdbitest.pl);
# indicate which columns to display
$cdbi_plugin_html->display_columns( [ lastname,firstname,
bats ,throws,
ht_ft ,ht_in,
wt ,birthyear ]
);
# indicate which columns to exclude, inverse of display above
$cdbi_plugin_html->exclude_columns();
# indicate the base class to work with, this is optional,
# if you should create you object via a call to
# Class::DBI::Plugin::HTML vs. a Class::DBI sub class
# this assures the correct sub class is used for data collection
$cdbi_plugin_html->cdbi_class( Baseball::Master );
# indicate the style of navigation to provide
$cdbi_plugin_html->navigation_style( both );
print qq~ Filter by First Letter of Last Name ~;
print $cdbi_plugin_html->string_filter_navigation(
-column => lastname,
-position => begins,
);
print qq~ ~;
$cdbi_html->only(firstname);
print $cdbi_plugin_html->build_table();
my $nav = $cdbi_plugin_html->html_table_navigation();
print qq!
$cdbi_plugin_html->add_bottom_span($nav);
print $cdbi_plugin_html->data_table;
UPGRADE WARNING
As of the .8 release there have been changes to the methods and how they work. It is likely that scripts built with older versions WILL break. Please read below to find specific changes that may negatively impact scripts built using the the releases prior to .8. The .9 release contains some minor modifications that could in some chases break your scripts, test carefully before upgrading in a production environment.
<<lessSYNOPSIS
# Inside of your sub-class of Class::DBI add these lines:
use Class::DBI::Plugin::HTML;
use Class::DBI::Pager;
use Class::DBI::AbstractSearch;
use Class::DBI::Plugin::AbstractCount;
use Class::DBI::Plugin::RetrieveAll;
.....
# Inside your script you will be able to use this modules
# methods on your table class or object as needed.
use ClassDBIBaseClass;
use URI::Escape;
use CGI;
my $cgi = CGI->new();
my $cdbi_plugin_html = Baseball::Master->html();
$cdbi_plugin_html->data_table->addRow(Last Name,First Name,Bats , Throws ,
Height (ft),(inches),
Weight,Birth Year );
my %params;
map { $params{$_} =
uri_unescape($cgi->param("$_"))
} $cgi->param();
$cdbi_plugin_html->params( %params );
$cdbi_plugin_html->exclude_from_url([ page ]);
# attribute style
# created based on params and exclude values from above
# auto sets the query_string value
$cdbi_plugin_html->url_query();
# set the page name (script)
$cdbi_plugin_html->page_name(cdbitest.pl);
# indicate which columns to display
$cdbi_plugin_html->display_columns( [ lastname,firstname,
bats ,throws,
ht_ft ,ht_in,
wt ,birthyear ]
);
# indicate which columns to exclude, inverse of display above
$cdbi_plugin_html->exclude_columns();
# indicate the base class to work with, this is optional,
# if you should create you object via a call to
# Class::DBI::Plugin::HTML vs. a Class::DBI sub class
# this assures the correct sub class is used for data collection
$cdbi_plugin_html->cdbi_class( Baseball::Master );
# indicate the style of navigation to provide
$cdbi_plugin_html->navigation_style( both );
print qq~ Filter by First Letter of Last Name ~;
print $cdbi_plugin_html->string_filter_navigation(
-column => lastname,
-position => begins,
);
print qq~ ~;
$cdbi_html->only(firstname);
print $cdbi_plugin_html->build_table();
my $nav = $cdbi_plugin_html->html_table_navigation();
print qq!
$nav
n!; $cdbi_plugin_html->add_bottom_span($nav);
print $cdbi_plugin_html->data_table;
UPGRADE WARNING
As of the .8 release there have been changes to the methods and how they work. It is likely that scripts built with older versions WILL break. Please read below to find specific changes that may negatively impact scripts built using the the releases prior to .8. The .9 release contains some minor modifications that could in some chases break your scripts, test carefully before upgrading in a production environment.
Download (0.021MB)
Added: 2006-11-29 License: Perl Artistic License Price:
1059 downloads
Open MPI 1.2.2
Open MPI is a project that originated as the merging of technologies and resources from several other projects. more>>
Open MPI is a project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best MPI library available.
A completely new MPI-2 compliant implementation, Open MPI offers advantages for system and software vendors, application developers and computer science researchers.
Main features:
- Full MPI-2 standards conformance
- Thread safety and concurrency
- Dynamic process spawning
- High performance on all platforms
- Reliable and fast job management
- Network and process fault tolerance
- Support data and network heterogeneity
- Single library supports all networks
- Run-time instrumentation
- Many job schedulers supported
- Many OSs supported (32 and 64 bit)
- Production quality software
- Portable and maintainable
- Tunable by installers and end-users
- Extensive user and installer guides
- Internationalized error messages
- Component-based design, documented APIs
- CPAN-like tool for component management
- Active, responsive mailing list
- Open source license based on the BSD license
The organizations (and newly-combined projects) contributing to Open MPI are Indiana University (LAM/MPI), the University of Tennessee (FT-MPI), and Los Alamos National Laboratory (LA-MPI).
Additional collaborators are at Sandia National Laboratories and the High Performance Computing Center at Stuttgart. These developers bring many years of combined experience to the project.
Enhancements:
- This release fixes handling of $CC when it contains directory names.
- It fixes Fortran 90 status array dimensions, and fixes some compiler warnings.
- pbs-config is used if it can be found, and the rsh launcher is slightly more robust.
- The btl_openib_ib_pkey_value MCA parameter has been added.
<<lessA completely new MPI-2 compliant implementation, Open MPI offers advantages for system and software vendors, application developers and computer science researchers.
Main features:
- Full MPI-2 standards conformance
- Thread safety and concurrency
- Dynamic process spawning
- High performance on all platforms
- Reliable and fast job management
- Network and process fault tolerance
- Support data and network heterogeneity
- Single library supports all networks
- Run-time instrumentation
- Many job schedulers supported
- Many OSs supported (32 and 64 bit)
- Production quality software
- Portable and maintainable
- Tunable by installers and end-users
- Extensive user and installer guides
- Internationalized error messages
- Component-based design, documented APIs
- CPAN-like tool for component management
- Active, responsive mailing list
- Open source license based on the BSD license
The organizations (and newly-combined projects) contributing to Open MPI are Indiana University (LAM/MPI), the University of Tennessee (FT-MPI), and Los Alamos National Laboratory (LA-MPI).
Additional collaborators are at Sandia National Laboratories and the High Performance Computing Center at Stuttgart. These developers bring many years of combined experience to the project.
Enhancements:
- This release fixes handling of $CC when it contains directory names.
- It fixes Fortran 90 status array dimensions, and fixes some compiler warnings.
- pbs-config is used if it can be found, and the rsh launcher is slightly more robust.
- The btl_openib_ib_pkey_value MCA parameter has been added.
Download (6.2MB)
Added: 2007-05-19 License: BSD License Price:
548 downloads
THC-Snooze 0.0.7
THC-Snooze is a framework for network traffic analysis. more>>
THC-Snooze is a framework for network traffic analysis. THC-Snooze project can be used as a sniffer or a network based intrusion detection system.
It will watch the network traffic and invoke small programs ("modules" or "protocol dissectors"), which are easily written in a script language, to gather information from the data.
The possible applications for THCsnooze range from simple and advanced sniffing to passive network auditing. It is possible to write modules that will track a connection until a successful login occured. Or you can check if a client application establishes with a ssl enabled server (insecure) SSLv2 connections.
Getting Started:
So, let us imagine you want to write a module for snooze and you dont know the protocol. (I will illustrate these steps on a well known protocol so its maybe easier to understand why we are doing these steps).
First we need some sample data to analyze. We make a copy of the dump_tcp.lua file and change the first line to match our needs:
"-- :xxx_no_proto:1:tcp:" to "-- :xxx_no_proto:21:tcp:"
We start snoozed:
# snoozed -i en0 -M modules/ -b -c t0 -D 10
THCsnoozed-0.0.6 by THC
DEBUG: loading modules ...
...
After we got one or two connections sniffed and stored we quit snooze. Now, we can use hxdmp to view the logs (well, you can use your favourite text editor to do that):
$ ./hxdmp -c t0/127.0.0.1_31231_127.0.0.1_21_0001.complete
hxdmp - THCsnooze hexdump by THC
00000000 32 32 30 20 6c 6f 63 61 6c 68 6f 73 74 20 46 54 | 220 loca lhost FT
00000010 50 20 73 65 72 76 65 72 20 28 74 6e 66 74 70 64 | P server (tnftpd
00000020 20 32 30 30 35 30 31 30 31 29 20 72 65 61 64 79 | 2005010 1) ready
00000030 2e 0d 0a 55 53 45 52 20 67 75 65 73 74 31 0d 0a | ...USER guest1..
00000040 33 33 31 20 50 61 73 73 77 6f 72 64 20 72 65 71 | 331 Pass word req
00000050 75 69 72 65 64 20 66 6f 72 20 67 75 65 73 74 31 | uired fo r guest1
00000060 2e 0d 0a 50 41 53 53 20 41 41 41 41 0d 0a 32 33 | ...PASS AAAA..23
00000070 30 2d 0d 0a 53 59 53 54 0d 0a 46 45 41 54 0d 0a | 0-..SYST ..FEAT..
00000080 50 57 44 0d 0a 20 20 20 20 57 65 6c 63 6f 6d 65 | PWD.. Welcome
00000090 20 74 6f 20 42 6f 78 30 30 31 21 0d 0a 32 33 30 | to Box0 01!..230
000000a0 20 55 73 65 72 20 67 75 65 73 74 31 20 6c 6f 67 | User gu est1 log
000000b0 67 65 64 20 69 6e 2e 0d 0a 32 31 35 20 55 4e 49 | ged in.. .215 UNI
000000c0 58 20 54 79 70 65 3a 20 4c 38 20 56 65 72 73 69 | X Type: L8 Versi
000000d0 6f 6e 3a 20 74 6e 66 74 70 64 20 32 30 30 35 30 | on: tnft pd 20050
000000e0 31 30 31 0d 0a 32 31 31 2d 46 65 61 74 75 72 65 | 101..211 -Feature
000000f0 73 20 73 75 70 70 6f 72 74 65 64 0d 0a 20 4d 44 | s suppor ted.. MD
00000100 54 4d 0d 0a 20 4d 4c 53 54 20 54 79 70 65 2a 3b | TM.. MLS T Type*;
00000110 53 69 7a 65 2a 3b 4d 6f 64 69 66 79 2a 3b 50 65 | Size*;Mo dify*;Pe
00000120 72 6d 2a 3b 55 6e 69 71 75 65 2a 3b 0d 0a 20 52 | rm*;Uniq ue*;.. R
00000130 45 53 54 20 53 54 52 45 41 4d 0d 0a 20 53 49 5a | EST STRE AM.. SIZ
00000140 45 0d 0a 20 54 56 46 53 0d 0a 32 31 31 20 45 6e | E.. TVFS ..211 En
00000150 64 0d 0a 32 35 37 20 22 2f 68 6f 6d 65 2f 67 75 | d..257 " /home/gu
00000160 65 73 74 31 22 20 69 73 20 74 68 65 20 63 75 72 | est1" is the cur
00000170 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 0d | rent dir ectory..
00000180 0a | .
The red data is send from server to client; the green from client to server. We can see here that user guest1 is logging in with password AAAA. It is time to write a module that can extract this information from the logfile.
<<lessIt will watch the network traffic and invoke small programs ("modules" or "protocol dissectors"), which are easily written in a script language, to gather information from the data.
The possible applications for THCsnooze range from simple and advanced sniffing to passive network auditing. It is possible to write modules that will track a connection until a successful login occured. Or you can check if a client application establishes with a ssl enabled server (insecure) SSLv2 connections.
Getting Started:
So, let us imagine you want to write a module for snooze and you dont know the protocol. (I will illustrate these steps on a well known protocol so its maybe easier to understand why we are doing these steps).
First we need some sample data to analyze. We make a copy of the dump_tcp.lua file and change the first line to match our needs:
"-- :xxx_no_proto:1:tcp:" to "-- :xxx_no_proto:21:tcp:"
We start snoozed:
# snoozed -i en0 -M modules/ -b -c t0 -D 10
THCsnoozed-0.0.6 by THC
DEBUG: loading modules ...
...
After we got one or two connections sniffed and stored we quit snooze. Now, we can use hxdmp to view the logs (well, you can use your favourite text editor to do that):
$ ./hxdmp -c t0/127.0.0.1_31231_127.0.0.1_21_0001.complete
hxdmp - THCsnooze hexdump by THC
00000000 32 32 30 20 6c 6f 63 61 6c 68 6f 73 74 20 46 54 | 220 loca lhost FT
00000010 50 20 73 65 72 76 65 72 20 28 74 6e 66 74 70 64 | P server (tnftpd
00000020 20 32 30 30 35 30 31 30 31 29 20 72 65 61 64 79 | 2005010 1) ready
00000030 2e 0d 0a 55 53 45 52 20 67 75 65 73 74 31 0d 0a | ...USER guest1..
00000040 33 33 31 20 50 61 73 73 77 6f 72 64 20 72 65 71 | 331 Pass word req
00000050 75 69 72 65 64 20 66 6f 72 20 67 75 65 73 74 31 | uired fo r guest1
00000060 2e 0d 0a 50 41 53 53 20 41 41 41 41 0d 0a 32 33 | ...PASS AAAA..23
00000070 30 2d 0d 0a 53 59 53 54 0d 0a 46 45 41 54 0d 0a | 0-..SYST ..FEAT..
00000080 50 57 44 0d 0a 20 20 20 20 57 65 6c 63 6f 6d 65 | PWD.. Welcome
00000090 20 74 6f 20 42 6f 78 30 30 31 21 0d 0a 32 33 30 | to Box0 01!..230
000000a0 20 55 73 65 72 20 67 75 65 73 74 31 20 6c 6f 67 | User gu est1 log
000000b0 67 65 64 20 69 6e 2e 0d 0a 32 31 35 20 55 4e 49 | ged in.. .215 UNI
000000c0 58 20 54 79 70 65 3a 20 4c 38 20 56 65 72 73 69 | X Type: L8 Versi
000000d0 6f 6e 3a 20 74 6e 66 74 70 64 20 32 30 30 35 30 | on: tnft pd 20050
000000e0 31 30 31 0d 0a 32 31 31 2d 46 65 61 74 75 72 65 | 101..211 -Feature
000000f0 73 20 73 75 70 70 6f 72 74 65 64 0d 0a 20 4d 44 | s suppor ted.. MD
00000100 54 4d 0d 0a 20 4d 4c 53 54 20 54 79 70 65 2a 3b | TM.. MLS T Type*;
00000110 53 69 7a 65 2a 3b 4d 6f 64 69 66 79 2a 3b 50 65 | Size*;Mo dify*;Pe
00000120 72 6d 2a 3b 55 6e 69 71 75 65 2a 3b 0d 0a 20 52 | rm*;Uniq ue*;.. R
00000130 45 53 54 20 53 54 52 45 41 4d 0d 0a 20 53 49 5a | EST STRE AM.. SIZ
00000140 45 0d 0a 20 54 56 46 53 0d 0a 32 31 31 20 45 6e | E.. TVFS ..211 En
00000150 64 0d 0a 32 35 37 20 22 2f 68 6f 6d 65 2f 67 75 | d..257 " /home/gu
00000160 65 73 74 31 22 20 69 73 20 74 68 65 20 63 75 72 | est1" is the cur
00000170 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 0d | rent dir ectory..
00000180 0a | .
The red data is send from server to client; the green from client to server. We can see here that user guest1 is logging in with password AAAA. It is time to write a module that can extract this information from the logfile.
Download (0.093MB)
Added: 2006-03-03 License: GPL (GNU General Public License) Price:
1331 downloads
Class::DBI::Plugin::FilterOnClick 1.0
Class::DBI::Plugin::FilterOnClick is a Perl module to generate browsable and searchable HTML Tables. more>>
Class::DBI::Plugin::FilterOnClick is a Perl module to generate browsable and searchable HTML Tables using FilterOnClick in conjunction with Class::DBI.
SYNOPSIS
# Inside of your sub-class of Class::DBI add these lines:
use Class::DBI::Plugin::FilterOnClick;
use Class::DBI::Pager;
use Class::DBI::AbstractSearch;
use Class::DBI::Plugin::AbstractCount;
use Class::DBI::Plugin::RetrieveAll;
.....
# Inside your script you will be able to use this modules
# methods on your table class or object as needed.
use ClassDBIBaseClass;
use URI::Escape;
use CGI;
my $cgi = CGI->new();
my %params;
map { $params{$_} =
uri_unescape($cgi->param("$_"))
} $cgi->param();
my $filteronclick = Baseball::Master->filteronclick(
-config_file => /srv/www/cgi-bin/baseball.ini,
# -rows => $cgi->param(rows) || 15 ,
-on_page => $cgi->param(page) || 1,
-params => %params );
$filteronclick->field_to_column(
lastname => Last Name . $html->order_by_link(lastname),
firstname => First Name . $html->order_by_link(firstname),
bats => Bats,
throws => Throws,
ht_ft => Height Ft,
ht_in => In,
wt => Weight,
birthyear => Birthyear,
birthstate => Birthstate,
_FilterOnClickCustom1_ => Other Data,
_FilterOnClickCustom2_ => More Data
);
FilterOnClickCustom
$filteronclick->data_table->addRow(
Last Name,
First Name,
Bats ,
Throws ,
Height (ft),
(inches),
Weight,
Birth Year );
$filteronclick->params( $cgi->Vars; );
$filteronclick->exclude_from_url([ page ]);
# indicate which columns to exclude, inverse of display above
# can be set in config file as well
$filteronclick->exclude_columns();
# indicate the base class to work with, this is optional,
# if you should create you object via a call to
# Class::DBI::Plugin::FilterOnClick vs. a Class::DBI sub class
# this assures the correct sub class is used for data collection
$filteronclick->cdbi_class( Baseball::Master );
# indicate the style of navigation to provide
$filteronclick->navigation_style( both );
print qq~ Filter by First Letter of Last Name ~;
print $filteronclick->string_filter_navigation(
-column => lastname,
-position => begins,
);
print qq~ ~;
$filteronclick->only(firstname);
print $filteronclick->build_table(
_FilterOnClickCustom1_ => sub {
my $pid = shift; # pid = Primary ID of the record in the base table
my @status_objects = Baseball::Allstars->search(lahmanid => $pid);
if (@status_objects) {
my $years;
foreach my $st (@status_objects) {
$years .= $st->year() . " ";
}
return $years;
}
return NA;
},
_FilterOnClickCustom2_ => sub {
my $pid = shift; # pid = Primary ID of the record in the base table
my @status_objects = Baseball::Allstars->search(lahmanid => $pid);
if (@status_objects) {
my $teams;
foreach my $st (@status_objects) {
$teams .= $st->team() . " ";
}
return $teams;
}
return NA;
},
);
my $nav = $filteronclick->html_table_navigation();
print qq!
$filteronclick->add_bottom_span($nav);
print $filteronclick->data_table;
UPGRADE WARNING
As of the .8 release there have been changes to the methods and how they work. It is likely that scripts built with older versions WILL break. Please read below to find specific changes that may negatively impact scripts built using the the releases prior to .8. The 1.0 release contains some minor modifications that could in some chases break your scripts, test carefully before upgrading in a production environment.
The intention of this module is to simplify the creation of browsable and searchable HTML tables without having to write the HTML, either in your script or in templates.
It is intended for use inside of other frameworks such as Embperl, Apache::ASP or even CGI. It does not aspire to be its own framework. If you are looking for a frameworks which allow using Class::DBI I suggest you look into the Maypole or the Catalyst module.
See FilterOnClick below for more on the purpose of this module.
Tables are created using HTML::Table. The use of HTML::Table was selected because it allows for several advanced sorting techniques that can provide for easy manipulation of the data outside of the SQL statement. This is very useful in scenarios where you want to provide/test a sort routine and not write SQL for it. The more I use this utility the less likely it seems that one would need to leverage this, but it is an option if you want to explore it.
Feedback on this module, its interface, usage, documentation etc. is welcome.
<<lessSYNOPSIS
# Inside of your sub-class of Class::DBI add these lines:
use Class::DBI::Plugin::FilterOnClick;
use Class::DBI::Pager;
use Class::DBI::AbstractSearch;
use Class::DBI::Plugin::AbstractCount;
use Class::DBI::Plugin::RetrieveAll;
.....
# Inside your script you will be able to use this modules
# methods on your table class or object as needed.
use ClassDBIBaseClass;
use URI::Escape;
use CGI;
my $cgi = CGI->new();
my %params;
map { $params{$_} =
uri_unescape($cgi->param("$_"))
} $cgi->param();
my $filteronclick = Baseball::Master->filteronclick(
-config_file => /srv/www/cgi-bin/baseball.ini,
# -rows => $cgi->param(rows) || 15 ,
-on_page => $cgi->param(page) || 1,
-params => %params );
$filteronclick->field_to_column(
lastname => Last Name . $html->order_by_link(lastname),
firstname => First Name . $html->order_by_link(firstname),
bats => Bats,
throws => Throws,
ht_ft => Height Ft,
ht_in => In,
wt => Weight,
birthyear => Birthyear,
birthstate => Birthstate,
_FilterOnClickCustom1_ => Other Data,
_FilterOnClickCustom2_ => More Data
);
FilterOnClickCustom
$filteronclick->data_table->addRow(
Last Name,
First Name,
Bats ,
Throws ,
Height (ft),
(inches),
Weight,
Birth Year );
$filteronclick->params( $cgi->Vars; );
$filteronclick->exclude_from_url([ page ]);
# indicate which columns to exclude, inverse of display above
# can be set in config file as well
$filteronclick->exclude_columns();
# indicate the base class to work with, this is optional,
# if you should create you object via a call to
# Class::DBI::Plugin::FilterOnClick vs. a Class::DBI sub class
# this assures the correct sub class is used for data collection
$filteronclick->cdbi_class( Baseball::Master );
# indicate the style of navigation to provide
$filteronclick->navigation_style( both );
print qq~ Filter by First Letter of Last Name ~;
print $filteronclick->string_filter_navigation(
-column => lastname,
-position => begins,
);
print qq~ ~;
$filteronclick->only(firstname);
print $filteronclick->build_table(
_FilterOnClickCustom1_ => sub {
my $pid = shift; # pid = Primary ID of the record in the base table
my @status_objects = Baseball::Allstars->search(lahmanid => $pid);
if (@status_objects) {
my $years;
foreach my $st (@status_objects) {
$years .= $st->year() . " ";
}
return $years;
}
return NA;
},
_FilterOnClickCustom2_ => sub {
my $pid = shift; # pid = Primary ID of the record in the base table
my @status_objects = Baseball::Allstars->search(lahmanid => $pid);
if (@status_objects) {
my $teams;
foreach my $st (@status_objects) {
$teams .= $st->team() . " ";
}
return $teams;
}
return NA;
},
);
my $nav = $filteronclick->html_table_navigation();
print qq!
$nav
n!; $filteronclick->add_bottom_span($nav);
print $filteronclick->data_table;
UPGRADE WARNING
As of the .8 release there have been changes to the methods and how they work. It is likely that scripts built with older versions WILL break. Please read below to find specific changes that may negatively impact scripts built using the the releases prior to .8. The 1.0 release contains some minor modifications that could in some chases break your scripts, test carefully before upgrading in a production environment.
The intention of this module is to simplify the creation of browsable and searchable HTML tables without having to write the HTML, either in your script or in templates.
It is intended for use inside of other frameworks such as Embperl, Apache::ASP or even CGI. It does not aspire to be its own framework. If you are looking for a frameworks which allow using Class::DBI I suggest you look into the Maypole or the Catalyst module.
See FilterOnClick below for more on the purpose of this module.
Tables are created using HTML::Table. The use of HTML::Table was selected because it allows for several advanced sorting techniques that can provide for easy manipulation of the data outside of the SQL statement. This is very useful in scenarios where you want to provide/test a sort routine and not write SQL for it. The more I use this utility the less likely it seems that one would need to leverage this, but it is an option if you want to explore it.
Feedback on this module, its interface, usage, documentation etc. is welcome.
Download (0.024MB)
Added: 2006-11-29 License: Perl Artistic License Price:
1060 downloads
ftRTOS 0.1
ftRTOS is another free and small realtime kernel for microcontrollers focused on minimal RAM usage. more>>
ftRTOS is another free and small realtime kernel for microcontrollers focused on minimal RAM usage. The "ft" prefix means femto, the next order after nano and pico.
Primarily this kernel is intended for MSP430 family of microcontrollers. Porting to another architectures is quite simple but on some architectures performance may degrade.
The source code is written in pure C. The preference is given to GCC as free software should be compiled with a free compiler. Assembly language is used only where it is unavoidable.
Main features:
- Minimal use of RAM. For example, on MSP430 in minimalistic configuration it is required only 6 bytes of RAM per task not including stack.
- Static definition of tasks and protected shared objects.
- Multiple levels of priority, fixed priority scheduling. By design, the number of levels is limited by the maximum number that unsigned char data type can hold.
- Preemptive or cooperative scheduling policy.
- Unlimited number of tasks by design.
- No idle task.
- Simplicity and clarity as a design philosophy.
Two approaches are used to achieve the main design goal: avoiding dynamic memory management and splitting all structures into two parts.
Dynamic memory management adds overhead to all memory blocks and requires some additional code. Without dynamic memory management it is impossible to dynamically create tasks and synchronization objects (more precisely, protected shared objects, PSO). But for tiny systems it is not a key feature. So, all tasks and PSOs are defined at compile time.
Splitting structures that describe tasks and PSO means that they have constant (ROMable) and variable parts. The first one contains static properties, such as priority, address of entry point, address of stack, etc. The variable part is placed in RAM and contains only those properties that require changes at run time.
It is necessary to note that such division requires frequent access to the flash/ROM and on some architectures it may lead to performance degradation. For example in AVR family the access to the flash memory is very painful.
The simplicity of kernel as a design philosophy obliges to implement only minimal set of functions and only those which are absolutely necessary. Theres only one global critical section which disables context switching. There are no functions to suspend and resume tasks (their appearance in user code tells that something wrong in software design). Only one type of PSO, namely queue, is used for communications between tasks.
However, sticking to minimalistic design leads to inflexibility. Therefore in addition to minimalistic design a list-based design has been implemented. The user can choose either. The differences and features will be explained later. Generally, list-based design increases the size of variable part of task structure (on MSP430 it becomes 12 bytes) but allows several waiting tasks on each side of PSO, the priority inversion problem is handled (the users choice) and other types of PSO may be implemented.
<<lessPrimarily this kernel is intended for MSP430 family of microcontrollers. Porting to another architectures is quite simple but on some architectures performance may degrade.
The source code is written in pure C. The preference is given to GCC as free software should be compiled with a free compiler. Assembly language is used only where it is unavoidable.
Main features:
- Minimal use of RAM. For example, on MSP430 in minimalistic configuration it is required only 6 bytes of RAM per task not including stack.
- Static definition of tasks and protected shared objects.
- Multiple levels of priority, fixed priority scheduling. By design, the number of levels is limited by the maximum number that unsigned char data type can hold.
- Preemptive or cooperative scheduling policy.
- Unlimited number of tasks by design.
- No idle task.
- Simplicity and clarity as a design philosophy.
Two approaches are used to achieve the main design goal: avoiding dynamic memory management and splitting all structures into two parts.
Dynamic memory management adds overhead to all memory blocks and requires some additional code. Without dynamic memory management it is impossible to dynamically create tasks and synchronization objects (more precisely, protected shared objects, PSO). But for tiny systems it is not a key feature. So, all tasks and PSOs are defined at compile time.
Splitting structures that describe tasks and PSO means that they have constant (ROMable) and variable parts. The first one contains static properties, such as priority, address of entry point, address of stack, etc. The variable part is placed in RAM and contains only those properties that require changes at run time.
It is necessary to note that such division requires frequent access to the flash/ROM and on some architectures it may lead to performance degradation. For example in AVR family the access to the flash memory is very painful.
The simplicity of kernel as a design philosophy obliges to implement only minimal set of functions and only those which are absolutely necessary. Theres only one global critical section which disables context switching. There are no functions to suspend and resume tasks (their appearance in user code tells that something wrong in software design). Only one type of PSO, namely queue, is used for communications between tasks.
However, sticking to minimalistic design leads to inflexibility. Therefore in addition to minimalistic design a list-based design has been implemented. The user can choose either. The differences and features will be explained later. Generally, list-based design increases the size of variable part of task structure (on MSP430 it becomes 12 bytes) but allows several waiting tasks on each side of PSO, the priority inversion problem is handled (the users choice) and other types of PSO may be implemented.
Download (0.018MB)
Added: 2006-01-13 License: GPL (GNU General Public License) Price:
1387 downloads
Math::NumberCruncher 5.00
Math::NumberCruncher Perl module contains a collection of useful math-related functions. more>>
Math::NumberCruncher Perl module contains a collection of useful math-related functions.
SYNOPSIS
It should be noted that as of v4.0, there is now an OO interface to Math::NumberCruncher. For backwards compatibility, however, the previous, functional style will always be supported.
# OO Style
use Math::NumberCruncher;
$ref = Math::NumberCruncher->new();
# From this point on, all of the subroutines shown below will be available # through $ref (i.e., ( $high,$low ) = $ref->Range( @array )). For the sake # of brevity, consult the functional documentation (below) for the use # of specific functions.
# Functional Style
use Math::NumberCruncher;
($high, $low) = Math::NumberCruncher::Range(@array);
$mean = Math::NumberCruncher::Mean(@array);
$median = Math::NumberCruncher::Median(@array [, $decimal_places]);
$odd_median = Math::NumberCruncher::OddMedian(@array);
$mode = Math::NumberCruncher::Mode(@array);
$covariance = Math::NumberCruncher::Covariance(@array1, @array2);
$correlation = Math::NumberCruncher::Correlation(@array1, @array2);
($slope, $y_intercept) = Math::NumberCruncher::BestFit(@array1, @array2 [, $decimal_places]);
$distance = Math::NumberCruncher::Distance($x1,$y1,$z1,$x2,$y2,$z2 [, $decimal_places]);
$distance = Math::NumberCruncher::Distance($x1,$y1,$x1,$x2 [, $decimal_places]);
$distance = Math::NumberCruncher::ManhattanDistance($x1,$y1,$x2,$y2);
$probAll = Math::NumberCruncher::AllOf(0.3,0.25,0.91,0.002);
$probNone = Math::NumberCruncher::NoneOf(0.4,0.5772,0.212);
$probSome = Math::NumberCruncher::SomeOf(0.11,0.56,0.3275);
$factorial = Math::NumberCruncher::Factorial($some_number);
$permutations = Math::NumberCruncher::Permutation($n);
$permutations = Math::NumberCruncher::Permutation($n,$k);
$roll = Math::NumberCruncher::Dice(3,12,4);
$randInt = Math::NumberCruncher::RandInt(10,50);
$randomElement = Math::NumberCruncher::RandomElement(@array);
Math::NumberCruncher::ShuffleArray(@array);
@unique = Math::NumberCruncher::Unique(@array);
@a_only = Math::NumberCruncher::Compare(@a,@b);
@union = Math::NumberCruncher::Union(@a,@b);
@intersection = Math::NumberCruncher::Intersection(@a,@b);
@difference = Math::NumberCruncher::Difference(@a,@b);
$gaussianRand = Math::NumberCruncher::GaussianRand();
$ways = Math::NumberCruncher::Choose($n,$k);
$binomial = Math::NumberCruncher::Binomial($attempts,$successes,$probability);
$gaussianDist = Math::NumberCruncher::GaussianDist($x,$mean,$variance);
$StdDev = Math::NumberCruncher::StandardDeviation(@array [, $decimal_places]);
$variance = Math::NumberCruncher::Variance(@array [, $decimal_places]);
@scores = Math::NumberCruncher::StandardScores(@array [, $decimal_places]);
$confidence = Math::NumberCruncher::SignSignificance($trials,$hits,$probability);
$e = Math::Numbercruncher::EMC2( "m512", "miles" [, $decimal_places] );
$m = Math::NumberCruncher::EMC2( "e987432" "km" [, $decimal_places] );
$force = Math::NumberCruncher::FMA( "m12", "a73.5" [, $decimal_places] );
$mass = Math::NumberCruncher::FMA( "a43", "f1324" [, $decimal_places] );
$acceleration = Math::NumberCruncher::FMA( "f53512", "m356" [, $decimal_places] );
$predicted_value = Math::NubmerCruncher::Predict( $slope, $y_intercept, $proposed_x [, $decimal_places] );
$area = Math::NumberCruncher::TriangleHeron( $a, $b, $c [, $decimal_places] );
$area = Math::NumberCruncher::TriangleHeron( 1,3, 5,7, 8,2 [, $decimal_places] );
$perimeter = Math::NumberCruncher::PolygonPerimeter( $x0,$y0, $x1,$y1, $x2,$y2, ... [, p$decimal_places]);
$direction = Math::NumberCruncher::Clockwise( $x0,$y0, $x1,$y1, $x2,$y2 );
$collision = Math::NumberCruncher::InPolygon( $x, $y, @xy );
@points = Math::NumberCruncher::BoundingBox_Points( $d, @p );
$in_triangle = Math::NumberCruncher::InTriangle( $x,$y, $x0,$y0, $x1,$y1, $x2,$y2 );
$area = Math::NumberCruncher::PolygonArea( 0, 1, 1, 0, 2, 0, 3, 2, 2, 3 [, p$decimal_places] );
$area = Math::NumberCruncher::CircleArea( $diameter [, $decimal_places] );
$circumference = Math::NumberCruncher::Circumference( $diameter [, $decimal_places] );
$volume = Math::NumberCruncher::SphereVolume( $radius [, $decimal_places] );
$surface_area = Math::NumberCruncher::SphereSurface( $radius [, $decimal_places] );
$years = Math::NumberCruncher::RuleOf72( $interest_rate [, $decimal_places] );
$volume = Math::NumberCruncher::CylinderVolume( $radius, $height [, $decimal_places] );
$volume = Math::NumberCruncher::ConeVolume( $lowerBaseArea, $height [, $decimal_places] );
$radians = Math::NumberCruncher::deg2rad( $degrees [, $decimal_places] );
$degrees = Math::NumberCruncher::rad2deg( $radians [, $decimal_places] );
$Fahrenheit = Math::NumberCruncher::C2F( $Celsius [, $decimal_places] );
$Celsius = Math::NumberCruncher::F2C( $Fahrenheit [, $decimal_places] );
$cm = Math::NumberCruncher::in2cm( $inches [, $decimal_places] );
$inches = Math::NumberCruncher::cm2in( $cm [, $decimal_places] );
$ft = Math::NumberCruncher::m2ft( $m [, $decimal_places] );
$m = Math::NumberCruncher::ft2m( $ft [, $decimal_places] );
$miles = Math::NumberCruncher::km2miles( $km [, $decimal_places] );
$km = Math::NumberCruncher::miles2km( $miles [, $decimal_places] );
$lb = Math::NumberCruncher::kg2lb( $kg [, $decimal_places] );
$kg = Math::NumberCruncher::lb2kg( $lb [, $decimal_places] );
$RelativeStride = Math::NumberCruncher::RelativeStride( $stride_length, $leg_length [, $decimal_places] );
$RelativeStride = Math::NumberCruncher::RelativeStride_2( $DimensionlessSpeed [, $decimal_places] );
$DimensionlessSpeed = Math::NumberCruncher::DimensionlessSpeed( $RelativeStride [, $decimal_places] );
$DimensionlessSpeed = Math::NumberCruncher::DimensionlessSpeed_2( $ActualSpeed, $leg_length [, $decimal_places]);
$ActualSpeed = Math::NumberCruncher::ActualSpeed( $leg_length, $DimensionlessSpeed [, $decimal_places] );
$eccentricity = Math::NumberCruncher::Eccentricity( $half_major_axis, $half_minor_axis [, $decimal_places] );
$LatusRectum = Math::NumberCruncher::LatusRectum( $half_major_axis, $half_minor_axis [, $decimal_places] );
$EllipseArea = Math::NumberCruncher::EllipseArea( $half_major_axis, $half_minor_axis [, $decimal_places] );
$OrbitalVelocity = Math::NumberCruncher::OrbitalVelocity( $r, $a, $M [, $decimal_places] );
$sine = Math::NumberCruncher::sin( $x [, $decimal_places] );
$cosine = Math::NumberCruncher::cos( $x [, $decimal_places] );
$tangent = Math::NumberCruncher::tan( $x [, $decimal_places] );
$arcsin = Math::NumberCruncher::asin( $x [, $decimal_places] );
$arccos = Math::NumberCruncher::acos( $x [, $decimal_places] );
$arctan = Math::NumberCruncher::atan( $x [, $decimal_places] );
$cotangent = Math::NumberCruncher::cot( $x [, $decimal_places] );
$arccot = Math::NumberCruncher::acot( $x [, $decimal_places] );
$secant = Math::NumberCruncher::sec( $x [, $decimal_places] );
$arcsec = Math::NumberCruncher::asec( $x [, $decimal_places] );
$cosecant = Math::NumberCruncher::csc( $x [, $decimal_places] );
$arccosecant = Math::NumberCruncher::acsc( $x [, $decimal_places] );
$exsecant = Math::NumberCruncher::exsec( $x [, $decimal_places] );
$versine = Math::NumberCruncher::vers( $x [, $decimal_places] );
$coversine = Math::NumberCruncher::covers( $x [, $decimal_places] );
$haversine = Math::NumberCruncher::hav( $x [, $decimal_places] );
$grouped = Math::NumberCruncher::Commas( $number );
$SqrRoot = Math::NumberCruncher::SqrRoot( $number [, $decimal_places] );
$square_root = Math::NumberCruncher::sqrt( $x [, $decimal_places] );
$root = Math::NumberCruncher::Root( 55, 3 [, $decimal_places] );
$root = Math::NumberCruncher::Root2( 55, 3 [, $decimal_places] );
$log = Math::NumberCruncher::Ln( 100 [, $decimal_places] );
$log = Math::NumberCruncher::log( $num [, $decimal_places] );
$num = Math::NumberCruncher::Exp( 0.111 [, $decimal_places] );
$num = Math::NumberCruncher::exp( $log [, $decimal_places] );
$Pi = Math::NumberCruncher::PICONST( $decimal_places );
$E = Math::NumberCruncher::ECONST( $decimal_places );
( $A, $B, $C ) = Math::NumberCruncher::PythagTriples( $x, $y [, $decimal_places] );
$z = Math::NumberCruncher::PythagTriplesSeq( $x, $y [, $decimal_places] );
@nums = Math::NumberCruncher::SIS( [$start, $numbers, $increment] );
$inverse = Math::NumberCruncher::Inverse( $number [, $decimal_places] );
@constants = Math::NumberCruncher::CONSTANTS( all [, $decimal_places] );
$bernoulli = Math::NumberCruncher::Bernoulli( $num [, $decimal_places] );
@bernoulli = Math::NumberCruncher::Bernoulli( $num );
<<lessSYNOPSIS
It should be noted that as of v4.0, there is now an OO interface to Math::NumberCruncher. For backwards compatibility, however, the previous, functional style will always be supported.
# OO Style
use Math::NumberCruncher;
$ref = Math::NumberCruncher->new();
# From this point on, all of the subroutines shown below will be available # through $ref (i.e., ( $high,$low ) = $ref->Range( @array )). For the sake # of brevity, consult the functional documentation (below) for the use # of specific functions.
# Functional Style
use Math::NumberCruncher;
($high, $low) = Math::NumberCruncher::Range(@array);
$mean = Math::NumberCruncher::Mean(@array);
$median = Math::NumberCruncher::Median(@array [, $decimal_places]);
$odd_median = Math::NumberCruncher::OddMedian(@array);
$mode = Math::NumberCruncher::Mode(@array);
$covariance = Math::NumberCruncher::Covariance(@array1, @array2);
$correlation = Math::NumberCruncher::Correlation(@array1, @array2);
($slope, $y_intercept) = Math::NumberCruncher::BestFit(@array1, @array2 [, $decimal_places]);
$distance = Math::NumberCruncher::Distance($x1,$y1,$z1,$x2,$y2,$z2 [, $decimal_places]);
$distance = Math::NumberCruncher::Distance($x1,$y1,$x1,$x2 [, $decimal_places]);
$distance = Math::NumberCruncher::ManhattanDistance($x1,$y1,$x2,$y2);
$probAll = Math::NumberCruncher::AllOf(0.3,0.25,0.91,0.002);
$probNone = Math::NumberCruncher::NoneOf(0.4,0.5772,0.212);
$probSome = Math::NumberCruncher::SomeOf(0.11,0.56,0.3275);
$factorial = Math::NumberCruncher::Factorial($some_number);
$permutations = Math::NumberCruncher::Permutation($n);
$permutations = Math::NumberCruncher::Permutation($n,$k);
$roll = Math::NumberCruncher::Dice(3,12,4);
$randInt = Math::NumberCruncher::RandInt(10,50);
$randomElement = Math::NumberCruncher::RandomElement(@array);
Math::NumberCruncher::ShuffleArray(@array);
@unique = Math::NumberCruncher::Unique(@array);
@a_only = Math::NumberCruncher::Compare(@a,@b);
@union = Math::NumberCruncher::Union(@a,@b);
@intersection = Math::NumberCruncher::Intersection(@a,@b);
@difference = Math::NumberCruncher::Difference(@a,@b);
$gaussianRand = Math::NumberCruncher::GaussianRand();
$ways = Math::NumberCruncher::Choose($n,$k);
$binomial = Math::NumberCruncher::Binomial($attempts,$successes,$probability);
$gaussianDist = Math::NumberCruncher::GaussianDist($x,$mean,$variance);
$StdDev = Math::NumberCruncher::StandardDeviation(@array [, $decimal_places]);
$variance = Math::NumberCruncher::Variance(@array [, $decimal_places]);
@scores = Math::NumberCruncher::StandardScores(@array [, $decimal_places]);
$confidence = Math::NumberCruncher::SignSignificance($trials,$hits,$probability);
$e = Math::Numbercruncher::EMC2( "m512", "miles" [, $decimal_places] );
$m = Math::NumberCruncher::EMC2( "e987432" "km" [, $decimal_places] );
$force = Math::NumberCruncher::FMA( "m12", "a73.5" [, $decimal_places] );
$mass = Math::NumberCruncher::FMA( "a43", "f1324" [, $decimal_places] );
$acceleration = Math::NumberCruncher::FMA( "f53512", "m356" [, $decimal_places] );
$predicted_value = Math::NubmerCruncher::Predict( $slope, $y_intercept, $proposed_x [, $decimal_places] );
$area = Math::NumberCruncher::TriangleHeron( $a, $b, $c [, $decimal_places] );
$area = Math::NumberCruncher::TriangleHeron( 1,3, 5,7, 8,2 [, $decimal_places] );
$perimeter = Math::NumberCruncher::PolygonPerimeter( $x0,$y0, $x1,$y1, $x2,$y2, ... [, p$decimal_places]);
$direction = Math::NumberCruncher::Clockwise( $x0,$y0, $x1,$y1, $x2,$y2 );
$collision = Math::NumberCruncher::InPolygon( $x, $y, @xy );
@points = Math::NumberCruncher::BoundingBox_Points( $d, @p );
$in_triangle = Math::NumberCruncher::InTriangle( $x,$y, $x0,$y0, $x1,$y1, $x2,$y2 );
$area = Math::NumberCruncher::PolygonArea( 0, 1, 1, 0, 2, 0, 3, 2, 2, 3 [, p$decimal_places] );
$area = Math::NumberCruncher::CircleArea( $diameter [, $decimal_places] );
$circumference = Math::NumberCruncher::Circumference( $diameter [, $decimal_places] );
$volume = Math::NumberCruncher::SphereVolume( $radius [, $decimal_places] );
$surface_area = Math::NumberCruncher::SphereSurface( $radius [, $decimal_places] );
$years = Math::NumberCruncher::RuleOf72( $interest_rate [, $decimal_places] );
$volume = Math::NumberCruncher::CylinderVolume( $radius, $height [, $decimal_places] );
$volume = Math::NumberCruncher::ConeVolume( $lowerBaseArea, $height [, $decimal_places] );
$radians = Math::NumberCruncher::deg2rad( $degrees [, $decimal_places] );
$degrees = Math::NumberCruncher::rad2deg( $radians [, $decimal_places] );
$Fahrenheit = Math::NumberCruncher::C2F( $Celsius [, $decimal_places] );
$Celsius = Math::NumberCruncher::F2C( $Fahrenheit [, $decimal_places] );
$cm = Math::NumberCruncher::in2cm( $inches [, $decimal_places] );
$inches = Math::NumberCruncher::cm2in( $cm [, $decimal_places] );
$ft = Math::NumberCruncher::m2ft( $m [, $decimal_places] );
$m = Math::NumberCruncher::ft2m( $ft [, $decimal_places] );
$miles = Math::NumberCruncher::km2miles( $km [, $decimal_places] );
$km = Math::NumberCruncher::miles2km( $miles [, $decimal_places] );
$lb = Math::NumberCruncher::kg2lb( $kg [, $decimal_places] );
$kg = Math::NumberCruncher::lb2kg( $lb [, $decimal_places] );
$RelativeStride = Math::NumberCruncher::RelativeStride( $stride_length, $leg_length [, $decimal_places] );
$RelativeStride = Math::NumberCruncher::RelativeStride_2( $DimensionlessSpeed [, $decimal_places] );
$DimensionlessSpeed = Math::NumberCruncher::DimensionlessSpeed( $RelativeStride [, $decimal_places] );
$DimensionlessSpeed = Math::NumberCruncher::DimensionlessSpeed_2( $ActualSpeed, $leg_length [, $decimal_places]);
$ActualSpeed = Math::NumberCruncher::ActualSpeed( $leg_length, $DimensionlessSpeed [, $decimal_places] );
$eccentricity = Math::NumberCruncher::Eccentricity( $half_major_axis, $half_minor_axis [, $decimal_places] );
$LatusRectum = Math::NumberCruncher::LatusRectum( $half_major_axis, $half_minor_axis [, $decimal_places] );
$EllipseArea = Math::NumberCruncher::EllipseArea( $half_major_axis, $half_minor_axis [, $decimal_places] );
$OrbitalVelocity = Math::NumberCruncher::OrbitalVelocity( $r, $a, $M [, $decimal_places] );
$sine = Math::NumberCruncher::sin( $x [, $decimal_places] );
$cosine = Math::NumberCruncher::cos( $x [, $decimal_places] );
$tangent = Math::NumberCruncher::tan( $x [, $decimal_places] );
$arcsin = Math::NumberCruncher::asin( $x [, $decimal_places] );
$arccos = Math::NumberCruncher::acos( $x [, $decimal_places] );
$arctan = Math::NumberCruncher::atan( $x [, $decimal_places] );
$cotangent = Math::NumberCruncher::cot( $x [, $decimal_places] );
$arccot = Math::NumberCruncher::acot( $x [, $decimal_places] );
$secant = Math::NumberCruncher::sec( $x [, $decimal_places] );
$arcsec = Math::NumberCruncher::asec( $x [, $decimal_places] );
$cosecant = Math::NumberCruncher::csc( $x [, $decimal_places] );
$arccosecant = Math::NumberCruncher::acsc( $x [, $decimal_places] );
$exsecant = Math::NumberCruncher::exsec( $x [, $decimal_places] );
$versine = Math::NumberCruncher::vers( $x [, $decimal_places] );
$coversine = Math::NumberCruncher::covers( $x [, $decimal_places] );
$haversine = Math::NumberCruncher::hav( $x [, $decimal_places] );
$grouped = Math::NumberCruncher::Commas( $number );
$SqrRoot = Math::NumberCruncher::SqrRoot( $number [, $decimal_places] );
$square_root = Math::NumberCruncher::sqrt( $x [, $decimal_places] );
$root = Math::NumberCruncher::Root( 55, 3 [, $decimal_places] );
$root = Math::NumberCruncher::Root2( 55, 3 [, $decimal_places] );
$log = Math::NumberCruncher::Ln( 100 [, $decimal_places] );
$log = Math::NumberCruncher::log( $num [, $decimal_places] );
$num = Math::NumberCruncher::Exp( 0.111 [, $decimal_places] );
$num = Math::NumberCruncher::exp( $log [, $decimal_places] );
$Pi = Math::NumberCruncher::PICONST( $decimal_places );
$E = Math::NumberCruncher::ECONST( $decimal_places );
( $A, $B, $C ) = Math::NumberCruncher::PythagTriples( $x, $y [, $decimal_places] );
$z = Math::NumberCruncher::PythagTriplesSeq( $x, $y [, $decimal_places] );
@nums = Math::NumberCruncher::SIS( [$start, $numbers, $increment] );
$inverse = Math::NumberCruncher::Inverse( $number [, $decimal_places] );
@constants = Math::NumberCruncher::CONSTANTS( all [, $decimal_places] );
$bernoulli = Math::NumberCruncher::Bernoulli( $num [, $decimal_places] );
@bernoulli = Math::NumberCruncher::Bernoulli( $num );
Download (0.080MB)
Added: 2007-07-05 License: Perl Artistic License Price:
842 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 1
- 1
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above alphaville ft search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed