radius
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 84
SIP Express Router 0.9.6
SIP Express Router is a very fast and flexible SIP (RFC3261) server. more>>
SIP Express Router (ser) is a high-performance, configurable, free SIP ( RFC3261 ) server .
SER features an application-server interface, presence support, SMS gateway, SIMPLE2Jabber gateway, RADIUS/syslog accounting and authorization, server status monitoring, FCP security, etc. Web-based user provisioning, serweb, available.
Its performance allows it to deal with operational burdens, such as broken network components, attacks, power-up reboots and rapidly growing user population.
SERs configuration ability meets needs of a whole range of scenarios including small-office use, enterprise PBX replacements and carrier services.
Main features:
- accounting
- digest authentication
- CPL scripts
- ENUM support
- instant messaging
- MySQL support
- PostgreSQL support
- a presence agent
- Radius authentication and accounting
- Diameter authentication
- record routing
- SMS gateway
- Jabber gateway
- NAT traversal support transaction module
- registrar
- user location
SER has been extensively and successfuly tested with many SIP products from other vendors (Microsoft, Cisco, Mitel, snom, Pingtel, Siemens, and many others). It has been powering our SIP services continuously for more than two years.
<<lessSER features an application-server interface, presence support, SMS gateway, SIMPLE2Jabber gateway, RADIUS/syslog accounting and authorization, server status monitoring, FCP security, etc. Web-based user provisioning, serweb, available.
Its performance allows it to deal with operational burdens, such as broken network components, attacks, power-up reboots and rapidly growing user population.
SERs configuration ability meets needs of a whole range of scenarios including small-office use, enterprise PBX replacements and carrier services.
Main features:
- accounting
- digest authentication
- CPL scripts
- ENUM support
- instant messaging
- MySQL support
- PostgreSQL support
- a presence agent
- Radius authentication and accounting
- Diameter authentication
- record routing
- SMS gateway
- Jabber gateway
- NAT traversal support transaction module
- registrar
- user location
SER has been extensively and successfuly tested with many SIP products from other vendors (Microsoft, Cisco, Mitel, snom, Pingtel, Siemens, and many others). It has been powering our SIP services continuously for more than two years.
Download (2.0MB)
Added: 2006-01-11 License: GPL (GNU General Public License) Price:
1393 downloads
Other version of SIP Express Router
License:Freeware

EDDIE Tool 0.37.3.1
EDDIE Tool functions as a system monitoring, security and performance analysis agent created completely in Python. more>> EDDIE Tool 0.37.3.1 functions as a system monitoring, security and performance analysis agent created completely in Python. Its key features are portability, powerful configuration and ease of expansion. It runs standalone on a system and performs checks and other actions as defined by an extensible configuration.
Major Features:
- The EDDIE Tool can perform all basic system monitoring checks, such as: filesystem; processes; system load; and network configuration. It can also perform such network monitoring tasks as: ping checks; HTTP checks; POP3 tests; SNMP queries; RADIUS authentication tests; and customized TCP port checks. Finally, a few checks lend themselves to security monitoring: watching files for changes; and scanning logfiles.
- The EDDIE Tool can also send any collected statistic to RRD files to be displayed graphically by any standard RRD tool. No need to run multiple monitoring and data collection agents.
- Monitoring rules are just like Python expressions and can be as simple or as complex as needed. Advanced alert control functionality such as exponential back-off and dependencies are also standard.
- The EDDIE Tool has been designed to be as platform-independent as possible. It is written in 100% Python and will run on all platforms that Python runs on. Only a few system-dependent modules must be customized for individual platforms for system data collection. System-dependent modules are included for: Linux; Solaris; HP-UX; OpenBSD; Darwin/OS X; FreeBSD and Windows (Win32) .
Requirements: Python
Added: 2009-03-02 License: GPL Price: FREE
1 downloads
OpenSER 1.2.2
OpenSER aims to be a collaborative project of its users, to develop a scalable and robust SIP server. more>>
OpenSER is a collaborative project of its users, to develop a scalable and robust SIP server.
Anyone can contribute to one of next items:
- code development - OpenSER core, modules and adjacent applications
- documentation- writing or enriching documentation
- miscellaneous - different management tasks (e.g., web site maintenance)
- ideas - new ideas bring brilliant solutions
Main features:
- robust and performant SIP (RFC3261) Registrar server, Location server, Proxy server and Redirect server
- stateless and transactional statefull SIP Proxy processing
- support for UDP/TCP/TLS transport layers
- scripting language for configurations file. With a syntax similar to sripting languages, the configuration offers a powerful and flexible way to deploy custom SIP services.
- management interface via FIFO file and unix sockets
- pseudo-variables to access and manage parts of the SIP messages and attributes specific to users and server
- authentication, authorization and accounting (AAA) via database (MySQL, Postgress, text files), RADIUS and DIAMETER
- CPL - Call Processing Language (RFC3880)
- NAT traversal support for SIP and RTP traffic
- ENUM support
- load balancing and least cost routing extensions
- support for replication - REGISTER offer new functions for replicating client information (real source and received socket).
- logging capabilities - can log custom messages including any header or pseudo-variable and parts of SIP message structure.
- modular architecture - plug-and-play module interface to extend the servers functionality
Enhancements:
- This is the second patch release in 1.2.x series, including minor enhancements and bugfixes done since 1.2.1 was released.
<<lessAnyone can contribute to one of next items:
- code development - OpenSER core, modules and adjacent applications
- documentation- writing or enriching documentation
- miscellaneous - different management tasks (e.g., web site maintenance)
- ideas - new ideas bring brilliant solutions
Main features:
- robust and performant SIP (RFC3261) Registrar server, Location server, Proxy server and Redirect server
- stateless and transactional statefull SIP Proxy processing
- support for UDP/TCP/TLS transport layers
- scripting language for configurations file. With a syntax similar to sripting languages, the configuration offers a powerful and flexible way to deploy custom SIP services.
- management interface via FIFO file and unix sockets
- pseudo-variables to access and manage parts of the SIP messages and attributes specific to users and server
- authentication, authorization and accounting (AAA) via database (MySQL, Postgress, text files), RADIUS and DIAMETER
- CPL - Call Processing Language (RFC3880)
- NAT traversal support for SIP and RTP traffic
- ENUM support
- load balancing and least cost routing extensions
- support for replication - REGISTER offer new functions for replicating client information (real source and received socket).
- logging capabilities - can log custom messages including any header or pseudo-variable and parts of SIP message structure.
- modular architecture - plug-and-play module interface to extend the servers functionality
Enhancements:
- This is the second patch release in 1.2.x series, including minor enhancements and bugfixes done since 1.2.1 was released.
Download (1.5MB)
Added: 2007-08-17 License: GPL (GNU General Public License) Price:
498 downloads
radutmped 0.2
radutmped is a utility that can remove utmp entries from radutmp files of several RADIUS servers. more>>
radutmped is a utility that can remove utmp entries from radutmp files of several RADIUS servers. The project directly manipulates the radutmp file and does not use radzap or any other programs.
FreeRADIUS, Cistron Radius Server and GNU Radius radutmp formats are supported. Three search modes are available, radutmped can match entries in radutmp by login (User-Name), nas_port (NAS-Port) or session_id (Acct-Session-Id).
COMPILING:
- Edit Makefile to change CC, CFLAGS or LDFLAGS if necessary.
- Execute make:
# make
- Only one RADIUS server can be supported in the radutmped binary, you have to
choose which.
By default, FreeRADIUS support will be compiled in, to change, pass along an
environment variable RADUTMP_TYPE when issuing make:
For Cistron support use RT_CISTRON as the variable value:
# RADUTMP_TYPE=RT_CISTRON make
For GNU Radius support use RT_GNURADIUS as the variable value:
# RADUTMP_TYPE=RT_GNURADIUS make
- Move the compiled binary radutmped somewhere:
# mv radutmped /usr/local/sbin
USAGE:
# radutmped L |P |S
EXAMPLES:
- Find out session details for user john (example with FreeRADIUS):
# radwho -r -i | grep john
john,0011AA22,PPP,S123456,Thu 08:21,192.168.1.254,192.168.10.123
The output line contains the following data:
User-Name: john
Acct-Session-Id: 0011AA22
Framed-Protocol: PPP
NAS-Port: 123456
NAS-IP-Address: 192.168.1.254
Framed-IP-Address: 192.168.10.123
Mind that the S character in the nas_port field has to be left out
when using radutmped.
- Remove a radutmp entry for session_id 0011AA22:
# radutmped /var/log/radius/radutmp S0011AA22
- Remove a radutmp entr-y/-ies for nas_port 123456
# radutmped /var/log/radius/radutmp P123456
- Remove a radutmp entr-y/-ies for login john:
# radutmped /var/log/radius/radutmp Ljohn
<<lessFreeRADIUS, Cistron Radius Server and GNU Radius radutmp formats are supported. Three search modes are available, radutmped can match entries in radutmp by login (User-Name), nas_port (NAS-Port) or session_id (Acct-Session-Id).
COMPILING:
- Edit Makefile to change CC, CFLAGS or LDFLAGS if necessary.
- Execute make:
# make
- Only one RADIUS server can be supported in the radutmped binary, you have to
choose which.
By default, FreeRADIUS support will be compiled in, to change, pass along an
environment variable RADUTMP_TYPE when issuing make:
For Cistron support use RT_CISTRON as the variable value:
# RADUTMP_TYPE=RT_CISTRON make
For GNU Radius support use RT_GNURADIUS as the variable value:
# RADUTMP_TYPE=RT_GNURADIUS make
- Move the compiled binary radutmped somewhere:
# mv radutmped /usr/local/sbin
USAGE:
# radutmped L |P |S
EXAMPLES:
- Find out session details for user john (example with FreeRADIUS):
# radwho -r -i | grep john
john,0011AA22,PPP,S123456,Thu 08:21,192.168.1.254,192.168.10.123
The output line contains the following data:
User-Name: john
Acct-Session-Id: 0011AA22
Framed-Protocol: PPP
NAS-Port: 123456
NAS-IP-Address: 192.168.1.254
Framed-IP-Address: 192.168.10.123
Mind that the S character in the nas_port field has to be left out
when using radutmped.
- Remove a radutmp entry for session_id 0011AA22:
# radutmped /var/log/radius/radutmp S0011AA22
- Remove a radutmp entr-y/-ies for nas_port 123456
# radutmped /var/log/radius/radutmp P123456
- Remove a radutmp entr-y/-ies for login john:
# radutmped /var/log/radius/radutmp Ljohn
Download (0.006MB)
Added: 2007-08-08 License: GPL v3 Price:
809 downloads
m0n0wall 1.231 / 1.3 Beta 3
m0n0wall is a project aimed at creating a complete, embedded firewall software package. more>>
m0n0wall is a project aimed at creating a complete, embedded firewall software package that, when used together with an embedded PC, provides all the important features of commercial firewall boxes (including ease of use) at a fraction of the price (free software).
m0n0wall is based on a bare-bones version of FreeBSD, along with a web server, PHP and a few other utilities. The entire system configuration of m0n0wall is stored in one single XML text file to keep things transparent.
m0n0wall is probably the first UNIX system that has its boot-time configuration done with PHP, rather than the usual shell scripts, and that has the entire system configuration stored in XML format.
Main features:
- web interface (supports SSL)
- serial console interface for recovery
- set LAN IP address
- reset password
- restore factory defaults
- reboot system
- wireless support (access point with PRISM-II/2.5/3 cards, BSS/IBSS with other cards including Cisco)
- captive portal
- 802.1Q VLAN support
- stateful packet filtering
- block/pass rules
- logging
- NAT/PAT (including 1:1)
- DHCP client, PPPoE, PPTP and Telstra BigPond Cable support on the WAN interface
- IPsec VPN tunnels (IKE; with support for hardware crypto cards and mobile clients)
- PPTP VPN (with RADIUS server support)
- static routes
- DHCP server
- caching DNS forwarder
- DynDNS client
- SNMP agent
- traffic shaper
- SVG-based traffic grapher
- firmware upgrade through the web browser
- Wake on LAN client
- configuration backup/restore
- host/network aliases
Enhancements:
- added voucher support to captive portal (mwiget); wireless LAN improvements; allow dashes in alias names; added hidden option to disable auto-generation of PPTP rules on WAN; fixed ATA hard disk spin down feature; ipfilter TCP window scaling bug fix; synced with changes from 1.23 branch; increased mfsroot size to 14 MB (from 13 MB); updated base system to FreeBSD 6.2-RELEASE-p6; updated PHP to 4.4.7, ipsec-tools to 0.6.7, isc-dhcpd to 3.0.5, Dnsmasq to 2.39; added kernel patch for fragment bug in ipfilter; modified kernel patch to handle ipnat+dummynet in ip_input....
<<lessm0n0wall is based on a bare-bones version of FreeBSD, along with a web server, PHP and a few other utilities. The entire system configuration of m0n0wall is stored in one single XML text file to keep things transparent.
m0n0wall is probably the first UNIX system that has its boot-time configuration done with PHP, rather than the usual shell scripts, and that has the entire system configuration stored in XML format.
Main features:
- web interface (supports SSL)
- serial console interface for recovery
- set LAN IP address
- reset password
- restore factory defaults
- reboot system
- wireless support (access point with PRISM-II/2.5/3 cards, BSS/IBSS with other cards including Cisco)
- captive portal
- 802.1Q VLAN support
- stateful packet filtering
- block/pass rules
- logging
- NAT/PAT (including 1:1)
- DHCP client, PPPoE, PPTP and Telstra BigPond Cable support on the WAN interface
- IPsec VPN tunnels (IKE; with support for hardware crypto cards and mobile clients)
- PPTP VPN (with RADIUS server support)
- static routes
- DHCP server
- caching DNS forwarder
- DynDNS client
- SNMP agent
- traffic shaper
- SVG-based traffic grapher
- firmware upgrade through the web browser
- Wake on LAN client
- configuration backup/restore
- host/network aliases
Enhancements:
- added voucher support to captive portal (mwiget); wireless LAN improvements; allow dashes in alias names; added hidden option to disable auto-generation of PPTP rules on WAN; fixed ATA hard disk spin down feature; ipfilter TCP window scaling bug fix; synced with changes from 1.23 branch; increased mfsroot size to 14 MB (from 13 MB); updated base system to FreeBSD 6.2-RELEASE-p6; updated PHP to 4.4.7, ipsec-tools to 0.6.7, isc-dhcpd to 3.0.5, Dnsmasq to 2.39; added kernel patch for fragment bug in ipfilter; modified kernel patch to handle ipnat+dummynet in ip_input....
Download (5.8MB)
Added: 2007-08-02 License: BSD License Price:
818 downloads
daloRADIUS 0.9-2
daloRADIUS is an advanced RADIUS web management application aimed at managing hotspots and general-purpose ISP deployments. more>>
daloRADIUS is an advanced RADIUS web management application aimed at managing hotspots and general-purpose ISP deployments. The project features user management, graphical reporting, accounting, a billing engine and integrates with GoogleMaps for geo-locating.
daloRADIUS is written in PHP and JavaScript and utilizes a MySQL database. It is based on a FreeRADIUS deployment with MySQL serving as the backend. Among other features it implements ACLs, GoogleMaps integration for locating hotspots/access points visually and many more features.
<<lessdaloRADIUS is written in PHP and JavaScript and utilizes a MySQL database. It is based on a FreeRADIUS deployment with MySQL serving as the backend. Among other features it implements ACLs, GoogleMaps integration for locating hotspots/access points visually and many more features.
Download (0.17MB)
Added: 2007-08-01 License: GPL (GNU General Public License) Price:
834 downloads
Geo::Distance 0.11
Geo::Distance is a Perl module that can calculate distances and closest locations. more>>
Geo::Distance is a Perl module that can calculate distances and closest locations.
SYNOPSIS
use Geo::Distance;
my $geo = new Geo::Distance;
$geo->formula(hsin);
$geo->reg_unit( toad_hop, 200120 );
$geo->reg_unit( frog_hop => 6 => toad_hop );
my $distance = $geo->distance( unit_type, $lon1,$lat1 => $lon2,$lat2 );
my $locations = $geo->closest(
dbh => $dbh,
table => $table,
lon => $lon,
lat => $lat,
unit => $unit_type,
distance => $dist_in_unit
);
This perl library aims to provide as many tools to make it as simple as possible to calculate distances between geographic points, and anything that can be derived from that. Currently there is support for finding the closest locations within a specified distance, to find the closest number of points to a specified point, and to do basic point-to-point distance calculations.
METHODS
new
my $geo = new Geo::Distance;
my $geo = new Geo::Distance( no_units=>1 );
Returns a blessed Geo::Distance object. The new constructor accepts one optional argument.
no_units - Whether or not to load the default units. Defaults to 0 (false).
kilometer, kilometre, meter, metre, centimeter, centimetre, millimeter,
millimetre, yard, foot, inch, light second, mile, nautical mile,
poppy seed, barleycorn, rod, pole, perch, chain, furlong, league,
fathom
formula
if($geo->formula eq hsin){ ... }
$geo->formula(cos);
Allows you to retrieve and set the formula that is currently being used to calculate distances. The availabel formulas are hsin, polar, cos, and mt. hsin is the default and mt/cos are depreciated in favor of hsin. polar should be used when calculating coordinates near the poles.
reg_unit
$geo->reg_unit( $radius, $key );
$geo->reg_unit( $key1 => $key2 );
$geo->reg_unit( $count1, $key1 => $key2 );
$geo->reg_unit( $key1 => $count2, $key2 );
$geo->reg_unit( $count1, $key1 => $count2, $key2 );
This method is used to create custom unit types. There are several ways of calling it, depending on if you are defining the unit from scratch, or if you are basing it off of an existing unit (such as saying 12 inches = 1 foot ). When defining a unit from scratch you pass the name and rho (radius of the earth in that unit) value.
So, if you wanted to do your calculations in human adult steps you would have to have an average human adult walk from the crust of the earth to the core (ignore the fact that this is impossible). So, assuming we did this and we came up with 43,200 steps, youd do something like the following.
# Define adult step unit.
$geo->reg_unit( 43200, adult step );
# This can be read as "It takes 43,200 adult_steps to walk the radius of the earth".
Now, if you also wanted to do distances in baby steps you might think "well, now I gotta get a baby to walk to the center of the earth". But, you dont have to! If you do some research youll find (no research was actually conducted) that there are, on average, 4.7 baby steps in each adult step.
# Define baby step unit.
$geo->reg_unit( 4.7, baby step => adult step );
# This can be read as "4.7 baby steps is the same as one adult step".
And if we were doing this in reverse and already had the baby step unit but not the adult step, you would still use the exact same syntax as above.
distance
my $distance = $geo->distance( unit_type, $lon1,$lat1 => $lon2,$lat2 );
Calculates the distance between two lon/lat points.
closest
my $locations = $geo->closest(
dbh => $dbh,
table => $table,
lon => $lon,
lat => $lat,
unit => $unit_type,
distance => $dist_in_unit
);
This method finds the closest locations within a certain distance and returns an array reference with a hash for each location matched.
The closest method requires the following arguments:
dbh - a DBI database handle
table - a table within dbh that contains the locations to search
lon - the longitude of the center point
lat - the latitude of the center point
unit - the unit of measurement to use, such as "meter"
distance - the distance, in units, from the center point to find locations
The following arguments are optional:
lon_field - the name of the field in the table that contains the longitude, defaults to "lon"
lat_field - the name of the field in the table that contains the latitude, defaults to "lat"
fields - an array reference of extra field names that you would like returned with each location
where - additional rules for the where clause of the sql
bind - an array reference of bind variables to go with the placeholders in where
sort - whether to sort the locations by their distance, making the closest location the first returned
count - return at most these number of locations (implies sort => 1)
This method uses some very simplistic calculations to SQL select out of the dbh. This means that the SQL should work fine on almost any database (only tested on MySQL and SQLite so far) and this also means that it is fast. Once this sub set of locations has been retrieved then more precise calculations are made to narrow down the result set. Remember, though, that the farther out your distance is, and the more locations in the table, the slower your searches will be.
<<lessSYNOPSIS
use Geo::Distance;
my $geo = new Geo::Distance;
$geo->formula(hsin);
$geo->reg_unit( toad_hop, 200120 );
$geo->reg_unit( frog_hop => 6 => toad_hop );
my $distance = $geo->distance( unit_type, $lon1,$lat1 => $lon2,$lat2 );
my $locations = $geo->closest(
dbh => $dbh,
table => $table,
lon => $lon,
lat => $lat,
unit => $unit_type,
distance => $dist_in_unit
);
This perl library aims to provide as many tools to make it as simple as possible to calculate distances between geographic points, and anything that can be derived from that. Currently there is support for finding the closest locations within a specified distance, to find the closest number of points to a specified point, and to do basic point-to-point distance calculations.
METHODS
new
my $geo = new Geo::Distance;
my $geo = new Geo::Distance( no_units=>1 );
Returns a blessed Geo::Distance object. The new constructor accepts one optional argument.
no_units - Whether or not to load the default units. Defaults to 0 (false).
kilometer, kilometre, meter, metre, centimeter, centimetre, millimeter,
millimetre, yard, foot, inch, light second, mile, nautical mile,
poppy seed, barleycorn, rod, pole, perch, chain, furlong, league,
fathom
formula
if($geo->formula eq hsin){ ... }
$geo->formula(cos);
Allows you to retrieve and set the formula that is currently being used to calculate distances. The availabel formulas are hsin, polar, cos, and mt. hsin is the default and mt/cos are depreciated in favor of hsin. polar should be used when calculating coordinates near the poles.
reg_unit
$geo->reg_unit( $radius, $key );
$geo->reg_unit( $key1 => $key2 );
$geo->reg_unit( $count1, $key1 => $key2 );
$geo->reg_unit( $key1 => $count2, $key2 );
$geo->reg_unit( $count1, $key1 => $count2, $key2 );
This method is used to create custom unit types. There are several ways of calling it, depending on if you are defining the unit from scratch, or if you are basing it off of an existing unit (such as saying 12 inches = 1 foot ). When defining a unit from scratch you pass the name and rho (radius of the earth in that unit) value.
So, if you wanted to do your calculations in human adult steps you would have to have an average human adult walk from the crust of the earth to the core (ignore the fact that this is impossible). So, assuming we did this and we came up with 43,200 steps, youd do something like the following.
# Define adult step unit.
$geo->reg_unit( 43200, adult step );
# This can be read as "It takes 43,200 adult_steps to walk the radius of the earth".
Now, if you also wanted to do distances in baby steps you might think "well, now I gotta get a baby to walk to the center of the earth". But, you dont have to! If you do some research youll find (no research was actually conducted) that there are, on average, 4.7 baby steps in each adult step.
# Define baby step unit.
$geo->reg_unit( 4.7, baby step => adult step );
# This can be read as "4.7 baby steps is the same as one adult step".
And if we were doing this in reverse and already had the baby step unit but not the adult step, you would still use the exact same syntax as above.
distance
my $distance = $geo->distance( unit_type, $lon1,$lat1 => $lon2,$lat2 );
Calculates the distance between two lon/lat points.
closest
my $locations = $geo->closest(
dbh => $dbh,
table => $table,
lon => $lon,
lat => $lat,
unit => $unit_type,
distance => $dist_in_unit
);
This method finds the closest locations within a certain distance and returns an array reference with a hash for each location matched.
The closest method requires the following arguments:
dbh - a DBI database handle
table - a table within dbh that contains the locations to search
lon - the longitude of the center point
lat - the latitude of the center point
unit - the unit of measurement to use, such as "meter"
distance - the distance, in units, from the center point to find locations
The following arguments are optional:
lon_field - the name of the field in the table that contains the longitude, defaults to "lon"
lat_field - the name of the field in the table that contains the latitude, defaults to "lat"
fields - an array reference of extra field names that you would like returned with each location
where - additional rules for the where clause of the sql
bind - an array reference of bind variables to go with the placeholders in where
sort - whether to sort the locations by their distance, making the closest location the first returned
count - return at most these number of locations (implies sort => 1)
This method uses some very simplistic calculations to SQL select out of the dbh. This means that the SQL should work fine on almost any database (only tested on MySQL and SQLite so far) and this also means that it is fast. Once this sub set of locations has been retrieved then more precise calculations are made to narrow down the result set. Remember, though, that the farther out your distance is, and the more locations in the table, the slower your searches will be.
Download (0.010MB)
Added: 2007-07-24 License: Perl Artistic License Price:
824 downloads
Endian Firewall 2.1.2 Community
Endian Firewall is a turn-key linux security distribution based on IPCop. more>>
Endian Firewall is a "turn-key" linux security distribution based on IPCop that turns every system into a full featured security appliance. Endian Firewall has been designed with "usability in mind" and is very easy to install, use and mange, without loosing its flexibility.
The features include a stateful packet inspection firewall, application-level proxies for variuos protocols (HTTP, POP3, SMTP) with antivirus support, virus and spamfiltering for email traffic (POP and SMTP), content filtering of Web traffic and a "hassle free" VPN solution (based on OpenVPN). The main advantage of Endian Firewall is that it is a pure "Open Source" solution that is commercially supported by Endian.
Main features:
Based Module:
- Firewall (statefull inspection)
- Outgoing Firewall
- IPSec Gateway to gateway VPN
- IPSec Remote client to gateway VPN (roadwarrior)
- NAT
- Multi-IP address support (aliases)
- Dynamic DNS
- DMZ support
- HTTPS Web Interface
- Detailed network traffic graphs
- View currently active connections
- Event log management
- Log redirection to external server
- Server DHCP
- Server NTP
- Traffic Shaping / QoS
- Transparent POP3 antivirus/antispam proxy
- Transparent HTTP proxy
- Web Proxy with local users, windows domain, samba, LDAP, radius server management
- Intrusion Detection System
- ADSL modem support
- Configuration backup and restore
- Remote update
Advanced Antivirus Module:
- HTTP Antivirus
- Endian Security Tools for Windows Desktop
- Transparent SMTP antivirus/antispam proxy
VPN Gateway Module:
- Gateway to gateway VPN with OpenVPN (http://openvpn.net/)
- Remote client to gateway VPN (roadwarrior) with OpenVPN (http://openvpn.net/)
- Bridged and Routed VPN mode
- Endian Client VPN ? Windows, Linux, MacOSX
Web Content Filter Module:
- URL filter
- Web content analysis/filter
- Whitelists and blacklists management
- Web surfing time limits
Enhancements:
- SATA support is now again working
- A wizard after installation asks to set the passwords (root, admin)
- Added possibility to restore a backup directly after installation
- Fix for blocking incoming connections coming in through the VPN [#210]
<<lessThe features include a stateful packet inspection firewall, application-level proxies for variuos protocols (HTTP, POP3, SMTP) with antivirus support, virus and spamfiltering for email traffic (POP and SMTP), content filtering of Web traffic and a "hassle free" VPN solution (based on OpenVPN). The main advantage of Endian Firewall is that it is a pure "Open Source" solution that is commercially supported by Endian.
Main features:
Based Module:
- Firewall (statefull inspection)
- Outgoing Firewall
- IPSec Gateway to gateway VPN
- IPSec Remote client to gateway VPN (roadwarrior)
- NAT
- Multi-IP address support (aliases)
- Dynamic DNS
- DMZ support
- HTTPS Web Interface
- Detailed network traffic graphs
- View currently active connections
- Event log management
- Log redirection to external server
- Server DHCP
- Server NTP
- Traffic Shaping / QoS
- Transparent POP3 antivirus/antispam proxy
- Transparent HTTP proxy
- Web Proxy with local users, windows domain, samba, LDAP, radius server management
- Intrusion Detection System
- ADSL modem support
- Configuration backup and restore
- Remote update
Advanced Antivirus Module:
- HTTP Antivirus
- Endian Security Tools for Windows Desktop
- Transparent SMTP antivirus/antispam proxy
VPN Gateway Module:
- Gateway to gateway VPN with OpenVPN (http://openvpn.net/)
- Remote client to gateway VPN (roadwarrior) with OpenVPN (http://openvpn.net/)
- Bridged and Routed VPN mode
- Endian Client VPN ? Windows, Linux, MacOSX
Web Content Filter Module:
- URL filter
- Web content analysis/filter
- Whitelists and blacklists management
- Web surfing time limits
Enhancements:
- SATA support is now again working
- A wizard after installation asks to set the passwords (root, admin)
- Added possibility to restore a backup directly after installation
- Fix for blocking incoming connections coming in through the VPN [#210]
Download (110MB)
Added: 2007-07-12 License: GPL (GNU General Public License) Price:
875 downloads
smspasswd 0.1
smspasswd software provides two factor authentication via cell phone short message service (SMS). more>>
smspasswd software provides two factor authentication via cell phone short message service (SMS). The reason I wrote this was because of all the pesky SSH brute force attacks, which continue to build in numbers. I didn’t want to waste money and time on using tokens because the few people who have accounts on my machines also have mobile phones.
I’m stoked that I have been using this since v0.1 back in 2005 and so far it’s worked very well with no changes. I’m hoping for feedback to get me motivated to develop this some more. Thanks to my good friend Solomon who has encouraged me to start posting some of my fun projects on the web.
Any feedback is more than welcome to ed -at- e-things.org.
How does this work?
The simple explanation for the average user goes a little like this. You use your normal password followed by a 6 digit number. To get access to a system you need to send an SMS from your pre-registered mobile phone number with a PIN. The systems admin folk will assign you a 4 digit pin and give you the mobile number to send your login request to. So, when you want to login, just send a text (SMS) to the phone number provided, with your 4 digit PIN. Shortly after you will receive a 6 digit number in a text (SMS) to your phone. Then login as normal using you normal password followed by the 6 digit number. You can use this same 6 digit number as many times as you like within a time period set by the systems admin folk. Simple right? Ok then, perhaps not much more complex than a token?
Now for the spanner-head explanation. smspasswd is a Perl application that runs as a daemon. It uses a MySQL back-end database which stores the usernames, mobile numbers, PIN’s, passwords, tokens, and the amount of time each users token (temporary x digit code) is valid for. smspasswd uses the information in the MySQl database to update your LDAP server based on a polling frequency you set in it’s config file. You can also set lots of other options in the config file and these are covered in the Features section below. smspasswd talks to a SMS gateway to send and receive new token requests. In my case it’s a cheap pre-paid Nokia 7110 connected to COM1 (/dev/ttys0) via gnokii.
The authentication process goes a little like this. The user sends a SMS to your gnokii phone with their PIN. Note the PIN is not really important because it will get saved in the users SMS outbox, so it could just be “request” or “foobar”. What’s important is that the SMS must come from the correct number for that user, and even if this could be spoofed, the reply will still go the users mobile number in the database anyway. Then smspasswd checks the database for the users mobile phone number and if it finds a match it will send a x digit code to the number registered for that user. At this point the password for this user will be updated in the local LDAP server with their normal password, followed by their new x digit code. Once the user has the SMS with the new code they can login.
You should setup your systems and applications for LDAP authentication, and if you wish you can configure your FreeRADUIS server to authenticate via OpenLDAP. Or you can use some commercial LDAP or RADIUS system. FreeRADIUS and OpenLDAP work just fine for me.
Confused? Drop me an email and I’ll make a nice diagram with Dia.
Features
Here’s the config file, and check the source.
##################################################
# smspasswd config file
#
##################################################
# minumum password length
#
minPasswordLength 6
# minimum username length
#
minUsernameLength 2
# minimum PIN length
#
minPinLength 4
# database options
#
dbName smspasswd
dbUsername smspasswd
dbPassword [enter the database users password here]
dbHostname localhost
dbPort 3306
dbEncryptionKey [enter a very long and random string here]
# gnokii options
#
gnokii /usr/local/bin/gnokii
gnokiiMailBox IN
# Check interval. This is the amount of time to
# wait between incoming SMS checks in seconds as
# well as user timeout checks
#
checkInterval 15
# LDAP server option
#
ldapServer localhost
ldapBindDn cn=Manager,dc=yourdomain,dc=com
ldapPassword [enter your LDAP users password here]
ldapBiseDn ou=People,dc=yourdomain,dc=com
# Email notification for non pin request SMS messages
# This is very useful if you would like to be emailed
# the ‘your pre-paid account is about to expire’ messages.
# Note: PIN requests will not be emailed.
#
emailNotify yes
emailToAddress root@localhost
emailFromAddress root@localhost
emailSubject SMS notification from smspasswd
<<lessI’m stoked that I have been using this since v0.1 back in 2005 and so far it’s worked very well with no changes. I’m hoping for feedback to get me motivated to develop this some more. Thanks to my good friend Solomon who has encouraged me to start posting some of my fun projects on the web.
Any feedback is more than welcome to ed -at- e-things.org.
How does this work?
The simple explanation for the average user goes a little like this. You use your normal password followed by a 6 digit number. To get access to a system you need to send an SMS from your pre-registered mobile phone number with a PIN. The systems admin folk will assign you a 4 digit pin and give you the mobile number to send your login request to. So, when you want to login, just send a text (SMS) to the phone number provided, with your 4 digit PIN. Shortly after you will receive a 6 digit number in a text (SMS) to your phone. Then login as normal using you normal password followed by the 6 digit number. You can use this same 6 digit number as many times as you like within a time period set by the systems admin folk. Simple right? Ok then, perhaps not much more complex than a token?
Now for the spanner-head explanation. smspasswd is a Perl application that runs as a daemon. It uses a MySQL back-end database which stores the usernames, mobile numbers, PIN’s, passwords, tokens, and the amount of time each users token (temporary x digit code) is valid for. smspasswd uses the information in the MySQl database to update your LDAP server based on a polling frequency you set in it’s config file. You can also set lots of other options in the config file and these are covered in the Features section below. smspasswd talks to a SMS gateway to send and receive new token requests. In my case it’s a cheap pre-paid Nokia 7110 connected to COM1 (/dev/ttys0) via gnokii.
The authentication process goes a little like this. The user sends a SMS to your gnokii phone with their PIN. Note the PIN is not really important because it will get saved in the users SMS outbox, so it could just be “request” or “foobar”. What’s important is that the SMS must come from the correct number for that user, and even if this could be spoofed, the reply will still go the users mobile number in the database anyway. Then smspasswd checks the database for the users mobile phone number and if it finds a match it will send a x digit code to the number registered for that user. At this point the password for this user will be updated in the local LDAP server with their normal password, followed by their new x digit code. Once the user has the SMS with the new code they can login.
You should setup your systems and applications for LDAP authentication, and if you wish you can configure your FreeRADUIS server to authenticate via OpenLDAP. Or you can use some commercial LDAP or RADIUS system. FreeRADIUS and OpenLDAP work just fine for me.
Confused? Drop me an email and I’ll make a nice diagram with Dia.
Features
Here’s the config file, and check the source.
##################################################
# smspasswd config file
#
##################################################
# minumum password length
#
minPasswordLength 6
# minimum username length
#
minUsernameLength 2
# minimum PIN length
#
minPinLength 4
# database options
#
dbName smspasswd
dbUsername smspasswd
dbPassword [enter the database users password here]
dbHostname localhost
dbPort 3306
dbEncryptionKey [enter a very long and random string here]
# gnokii options
#
gnokii /usr/local/bin/gnokii
gnokiiMailBox IN
# Check interval. This is the amount of time to
# wait between incoming SMS checks in seconds as
# well as user timeout checks
#
checkInterval 15
# LDAP server option
#
ldapServer localhost
ldapBindDn cn=Manager,dc=yourdomain,dc=com
ldapPassword [enter your LDAP users password here]
ldapBiseDn ou=People,dc=yourdomain,dc=com
# Email notification for non pin request SMS messages
# This is very useful if you would like to be emailed
# the ‘your pre-paid account is about to expire’ messages.
# Note: PIN requests will not be emailed.
#
emailNotify yes
emailToAddress root@localhost
emailFromAddress root@localhost
emailSubject SMS notification from smspasswd
Download (0.004MB)
Added: 2007-07-11 License: GPL (GNU General Public License) Price:
835 downloads
Cellular::Automata::Wolfram 1.1
Cellular::Automata::Wolfram is a Perl module that implements one-dimensional non-totalistic cellular automata. more>>
Cellular::Automata::Wolfram is a Perl module that implements one-dimensional non-totalistic cellular automata as described in Dr. Steven Wolframs, A New Kind of Science, ISBN:1-57955-008-8
SYNOPSIS
use Cellular::Automata::Wolfram;
my $png_file = shift;
my $caw =
new Cellular::Automata::Wolfram(
rule=>110,radius=>1,width=>80,num_of_gens=>100,random=>"",
colors=>[white,black]);
my $ar_gens = $caw->gens();
foreach my $gen (@{$ar_gens)) {
print "$genn"; # Prints the numeric values of each generation
# in the Cellular Automata.
} # foreach
$caw->draw($png_file); # This writes a png file out,
# $caw->draw() has a default name
# of "wolfram.png".
Dr. Steven Wolfram describes in his book, A New Kind of Science, ISBN:1-57955-008-8 his path-breaking experiment where he comprehensively explored a mathematical function which can be described (by me see the reference for a detailed explanation) as follows:
Given an 1d array of numbers A:
[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]
Call this generation 1 (i.e. t).
Generation 2 (i.e. t+1) will be created by applying a rule to each number of the form A(i)(t+1) = rules(A(i-1)(t),A(i)(t),A(i+1)(t)), where A(i)(t) is the current value at position i for generation t in the array, and A(i)(t+1) is the next generations value of A(i).
For an array limited to 0 and 1 as possible values in each position the complete rules function can be described as follows:
Given array rule_input:
[111,110,101,100,011,010,001,000]
This is all the possible values that can be given as inputs to the rule function for an 0,1 array of numbers. The return for the rule function can be defined as follows:
[111,110,101,100,011,010,001,000] | | | | | | | | 0 1 1 0 1 1 1 0
This number 01101110 can be treated as a decimal number expressed as 110, as the result of the following standard binary to decimal formula. 0x128+1x64+1x32+0x16+1x8+1x4+1x2+0x1 = 110.
This number 110 can be used to define the entire rules function that is needed to determine the next generation.
Since all the possbile rules can be described from a eight digit binary number they run from 0 to 255 decimal, each number describes a different rules function and every possible rules function for an array limited to 0 and 1
and whose input is three values drawn from that array. The three values are chosen in the formula descibed above.
The choice of i-1, the left adjacent cell, and, i+1, the right adjacent cell, as the number of left and right ajacent cells to consider for the next generation can be defined as radius R. The number of values each cell can
take can be described as K (in drawing the number of colors). The examples short description is therefore (rule 110, K=2,R=1). This module allows you to explore every one dimensional cellular automata for any valid rule for a given K and R. The array wraps by default.
The result of rule 110 with K=2 [0,1] R=1 for 80 generations in an array of K values width 80 where the values wrap:
00000000000000000000000000000000000000010000000000000000000000000000000000000000 00000000000000000000000000000000000000110000000000000000000000000000000000000000 00000000000000000000000000000000000001110000000000000000000000000000000000000000 00000000000000000000000000000000000011010000000000000000000000000000000000000000 00000000000000000000000000000000000111110000000000000000000000000000000000000000 00000000000000000000000000000000001100010000000000000000000000000000000000000000 00000000000000000000000000000000011100110000000000000000000000000000000000000000 00000000000000000000000000000000110101110000000000000000000000000000000000000000 00000000000000000000000000000001111111010000000000000000000000000000000000000000 00000000000000000000000000000011000001110000000000000000000000000000000000000000 00000000000000000000000000000111000011010000000000000000000000000000000000000000 00000000000000000000000000001101000111110000000000000000000000000000000000000000 00000000000000000000000000011111001100010000000000000000000000000000000000000000 00000000000000000000000000110001011100110000000000000000000000000000000000000000 00000000000000000000000001110011110101110000000000000000000000000000000000000000 00000000000000000000000011010110011111010000000000000000000000000000000000000000 00000000000000000000000111111110110001110000000000000000000000000000000000000000 00000000000000000000001100000011110011010000000000000000000000000000000000000000 00000000000000000000011100000110010111110000000000000000000000000000000000000000 00000000000000000000110100001110111100010000000000000000000000000000000000000000 00000000000000000001111100011011100100110000000000000000000000000000000000000000 00000000000000000011000100111110101101110000000000000000000000000000000000000000 00000000000000000111001101100011111111010000000000000000000000000000000000000000 00000000000000001101011111100110000001110000000000000000000000000000000000000000 00000000000000011111110000101110000011010000000000000000000000000000000000000000 00000000000000110000010001111010000111110000000000000000000000000000000000000000 00000000000001110000110011001110001100010000000000000000000000000000000000000000 00000000000011010001110111011010011100110000000000000000000000000000000000000000 00000000000111110011011101111110110101110000000000000000000000000000000000000000 00000000001100010111110111000011111111010000000000000000000000000000000000000000 00000000011100111100011101000110000001110000000000000000000000000000000000000000 00000000110101100100110111001110000011010000000000000000000000000000000000000000 00000001111111101101111101011010000111110000000000000000000000000000000000000000 00000011000000111111000111111110001100010000000000000000000000000000000000000000 00000111000001100001001100000010011100110000000000000000000000000000000000000000 00001101000011100011011100000110110101110000000000000000000000000000000000000000 00011111000110100111110100001111111111010000000000000000000000000000000000000000 00110001001111101100011100011000000001110000000000000000000000000000000000000000 01110011011000111100110100111000000011010000000000000000000000000000000000000000 11010111111001100101111101101000000111110000000000000000000000000000000000000000 11111100001011101111000111111000001100010000000000000000000000000000000000000001 00000100011110111001001100001000011100110000000000000000000000000000000000000011 00001100110011101011011100011000110101110000000000000000000000000000000000000111 00011101110110111111110100111001111111010000000000000000000000000000000000001101 00110111011111100000011101101011000001110000000000000000000000000000000000011111 01111101110000100000110111111111000011010000000000000000000000000000000000110001 11000111010001100001111100000001000111110000000000000000000000000000000001110011 01001101110011100011000100000011001100010000000000000000000000000000000011010110 11011111010110100111001100000111011100110000000000000000000000000000000111111110 11110001111111101101011100001101110101110000000000000000000000000000001100000011 00010011000000111111110100011111011111010000000000000000000000000000011100000110 00110111000001100000011100110001110001110000000000000000000000000000110100001110 01111101000011100000110101110011010011010000000000000000000000000001111100011010 11000111000110100001111111010111110111110000000000000000000000000011000100111110 11001101001111100011000001111100011100010000000000000000000000000111001101100011 01011111011000100111000011000100110100110000000000000000000000001101011111100110 11110001111001101101000111001101111101110000000000000000000000011111110000101110 10010011001011111111001101011111000111010000000000000000000000110000010001111011 10110111011110000001011111110001001101110000000000000000000001110000110011001110 11111101110010000011110000010011011111010000000000000000000011010001110111011011 00000111010110000110010000110111110001110000000000000000000111110011011101111110 00001101111110001110110001111100010011010000000000000000001100010111110111000010 00011111000010011011110011000100110111110000000000000000011100111100011101000110 00110001000110111110010111001101111100010000000000000000110101100100110111001110 01110011001111100010111101011111000100110000000000000001111111101101111101011010 11010111011000100111100111110001001101110000000000000011000000111111000111111110 11111101111001101100101100010011011111010000000000000111000001100001001100000011 00000111001011111101111100110111110001110000000000001101000011100011011100000110 00001101011110000111000101111100010011010000000000011111000110100111110100001110 00011111110010001101001111000100110111110000000000110001001111101100011100011010 00110000010110011111011001001101111100010000000001110011011000111100110100111110 01110000111110110001111011011111000100110000000011010111111001100101111101100010 11010001100011110011001111110001001101110000000111111100001011101111000111100110 11110011100110010111011000010011011111010000001100000100011110111001001100101111 00010110101110111101111000110111110001110000011100001100110011101011011101111000 00111111111011100111001001111100010011010000110100011101110110111111110111001000 01100000001110101101011011000100110111110001111100110111011111100000011101011000 11100000011011111111111111001101111100010011000101111101110000100000110111111000 10100000111110000000000001011111000100110111001111000111010001100001111100001001 11100001100010000000000011110001001101111101011001001101110011100011000100011011 00100011100110000000000110010011011111000111111011011111010110100111001100111110 01100110101110000000001110110111110001001100001111110001111111101101011101100010
<<lessSYNOPSIS
use Cellular::Automata::Wolfram;
my $png_file = shift;
my $caw =
new Cellular::Automata::Wolfram(
rule=>110,radius=>1,width=>80,num_of_gens=>100,random=>"",
colors=>[white,black]);
my $ar_gens = $caw->gens();
foreach my $gen (@{$ar_gens)) {
print "$genn"; # Prints the numeric values of each generation
# in the Cellular Automata.
} # foreach
$caw->draw($png_file); # This writes a png file out,
# $caw->draw() has a default name
# of "wolfram.png".
Dr. Steven Wolfram describes in his book, A New Kind of Science, ISBN:1-57955-008-8 his path-breaking experiment where he comprehensively explored a mathematical function which can be described (by me see the reference for a detailed explanation) as follows:
Given an 1d array of numbers A:
[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]
Call this generation 1 (i.e. t).
Generation 2 (i.e. t+1) will be created by applying a rule to each number of the form A(i)(t+1) = rules(A(i-1)(t),A(i)(t),A(i+1)(t)), where A(i)(t) is the current value at position i for generation t in the array, and A(i)(t+1) is the next generations value of A(i).
For an array limited to 0 and 1 as possible values in each position the complete rules function can be described as follows:
Given array rule_input:
[111,110,101,100,011,010,001,000]
This is all the possible values that can be given as inputs to the rule function for an 0,1 array of numbers. The return for the rule function can be defined as follows:
[111,110,101,100,011,010,001,000] | | | | | | | | 0 1 1 0 1 1 1 0
This number 01101110 can be treated as a decimal number expressed as 110, as the result of the following standard binary to decimal formula. 0x128+1x64+1x32+0x16+1x8+1x4+1x2+0x1 = 110.
This number 110 can be used to define the entire rules function that is needed to determine the next generation.
Since all the possbile rules can be described from a eight digit binary number they run from 0 to 255 decimal, each number describes a different rules function and every possible rules function for an array limited to 0 and 1
and whose input is three values drawn from that array. The three values are chosen in the formula descibed above.
The choice of i-1, the left adjacent cell, and, i+1, the right adjacent cell, as the number of left and right ajacent cells to consider for the next generation can be defined as radius R. The number of values each cell can
take can be described as K (in drawing the number of colors). The examples short description is therefore (rule 110, K=2,R=1). This module allows you to explore every one dimensional cellular automata for any valid rule for a given K and R. The array wraps by default.
The result of rule 110 with K=2 [0,1] R=1 for 80 generations in an array of K values width 80 where the values wrap:
00000000000000000000000000000000000000010000000000000000000000000000000000000000 00000000000000000000000000000000000000110000000000000000000000000000000000000000 00000000000000000000000000000000000001110000000000000000000000000000000000000000 00000000000000000000000000000000000011010000000000000000000000000000000000000000 00000000000000000000000000000000000111110000000000000000000000000000000000000000 00000000000000000000000000000000001100010000000000000000000000000000000000000000 00000000000000000000000000000000011100110000000000000000000000000000000000000000 00000000000000000000000000000000110101110000000000000000000000000000000000000000 00000000000000000000000000000001111111010000000000000000000000000000000000000000 00000000000000000000000000000011000001110000000000000000000000000000000000000000 00000000000000000000000000000111000011010000000000000000000000000000000000000000 00000000000000000000000000001101000111110000000000000000000000000000000000000000 00000000000000000000000000011111001100010000000000000000000000000000000000000000 00000000000000000000000000110001011100110000000000000000000000000000000000000000 00000000000000000000000001110011110101110000000000000000000000000000000000000000 00000000000000000000000011010110011111010000000000000000000000000000000000000000 00000000000000000000000111111110110001110000000000000000000000000000000000000000 00000000000000000000001100000011110011010000000000000000000000000000000000000000 00000000000000000000011100000110010111110000000000000000000000000000000000000000 00000000000000000000110100001110111100010000000000000000000000000000000000000000 00000000000000000001111100011011100100110000000000000000000000000000000000000000 00000000000000000011000100111110101101110000000000000000000000000000000000000000 00000000000000000111001101100011111111010000000000000000000000000000000000000000 00000000000000001101011111100110000001110000000000000000000000000000000000000000 00000000000000011111110000101110000011010000000000000000000000000000000000000000 00000000000000110000010001111010000111110000000000000000000000000000000000000000 00000000000001110000110011001110001100010000000000000000000000000000000000000000 00000000000011010001110111011010011100110000000000000000000000000000000000000000 00000000000111110011011101111110110101110000000000000000000000000000000000000000 00000000001100010111110111000011111111010000000000000000000000000000000000000000 00000000011100111100011101000110000001110000000000000000000000000000000000000000 00000000110101100100110111001110000011010000000000000000000000000000000000000000 00000001111111101101111101011010000111110000000000000000000000000000000000000000 00000011000000111111000111111110001100010000000000000000000000000000000000000000 00000111000001100001001100000010011100110000000000000000000000000000000000000000 00001101000011100011011100000110110101110000000000000000000000000000000000000000 00011111000110100111110100001111111111010000000000000000000000000000000000000000 00110001001111101100011100011000000001110000000000000000000000000000000000000000 01110011011000111100110100111000000011010000000000000000000000000000000000000000 11010111111001100101111101101000000111110000000000000000000000000000000000000000 11111100001011101111000111111000001100010000000000000000000000000000000000000001 00000100011110111001001100001000011100110000000000000000000000000000000000000011 00001100110011101011011100011000110101110000000000000000000000000000000000000111 00011101110110111111110100111001111111010000000000000000000000000000000000001101 00110111011111100000011101101011000001110000000000000000000000000000000000011111 01111101110000100000110111111111000011010000000000000000000000000000000000110001 11000111010001100001111100000001000111110000000000000000000000000000000001110011 01001101110011100011000100000011001100010000000000000000000000000000000011010110 11011111010110100111001100000111011100110000000000000000000000000000000111111110 11110001111111101101011100001101110101110000000000000000000000000000001100000011 00010011000000111111110100011111011111010000000000000000000000000000011100000110 00110111000001100000011100110001110001110000000000000000000000000000110100001110 01111101000011100000110101110011010011010000000000000000000000000001111100011010 11000111000110100001111111010111110111110000000000000000000000000011000100111110 11001101001111100011000001111100011100010000000000000000000000000111001101100011 01011111011000100111000011000100110100110000000000000000000000001101011111100110 11110001111001101101000111001101111101110000000000000000000000011111110000101110 10010011001011111111001101011111000111010000000000000000000000110000010001111011 10110111011110000001011111110001001101110000000000000000000001110000110011001110 11111101110010000011110000010011011111010000000000000000000011010001110111011011 00000111010110000110010000110111110001110000000000000000000111110011011101111110 00001101111110001110110001111100010011010000000000000000001100010111110111000010 00011111000010011011110011000100110111110000000000000000011100111100011101000110 00110001000110111110010111001101111100010000000000000000110101100100110111001110 01110011001111100010111101011111000100110000000000000001111111101101111101011010 11010111011000100111100111110001001101110000000000000011000000111111000111111110 11111101111001101100101100010011011111010000000000000111000001100001001100000011 00000111001011111101111100110111110001110000000000001101000011100011011100000110 00001101011110000111000101111100010011010000000000011111000110100111110100001110 00011111110010001101001111000100110111110000000000110001001111101100011100011010 00110000010110011111011001001101111100010000000001110011011000111100110100111110 01110000111110110001111011011111000100110000000011010111111001100101111101100010 11010001100011110011001111110001001101110000000111111100001011101111000111100110 11110011100110010111011000010011011111010000001100000100011110111001001100101111 00010110101110111101111000110111110001110000011100001100110011101011011101111000 00111111111011100111001001111100010011010000110100011101110110111111110111001000 01100000001110101101011011000100110111110001111100110111011111100000011101011000 11100000011011111111111111001101111100010011000101111101110000100000110111111000 10100000111110000000000001011111000100110111001111000111010001100001111100001001 11100001100010000000000011110001001101111101011001001101110011100011000100011011 00100011100110000000000110010011011111000111111011011111010110100111001100111110 01100110101110000000001110110111110001001100001111110001111111101101011101100010
Download (0.010MB)
Added: 2007-07-10 License: Perl Artistic License Price:
838 downloads
ORSA 1.0.1081 (RendezvousWithVesta)
ORSA RendezvousWithVesta is a graphical software tool. more>>
ORSA RendezvousWithVesta is a graphical software tool developed by Pasquale Tricarico at the Planetary Science Institute, in support to the NASA DAWN mission. The project allows to accurately simulate the dynamics of a spacecraft orbiting the asteroid (4) Vesta. The motivations for developing this tool are:
- understand how the physical parameters of Vesta affect the stability of low polar orbits;
- understand how the physical parameters of Vesta and the orbital elements of DAWN affect the coverage of Vestas surface;
- provide a fast and reliable tool for the generation of orbits suitable for input in the Science Opportunity Analyzer (SOA) tool;
Main features:
- validated numerical algorithms, tested on NEAR mission data, and capable of - accurately reproducing NEARs orbit around Eros;
- complete control over Vestas physical properties: mass, mass distribution model, shape model, rotation period, and pole ecliptic latitude and longitude;
- control over DAWNs initial orbit around Vesta: epoch, radius, equatorial (Vestas equator) inclination, phase angle;
- export simulations as SPICE kernel files and as ASCII data files;
- 3D graphical visualization of the numerical simulation, including the ground tracking of DAWN over Vestas surface;
- 2D plot of the altitude of the spacecraft and of the Vesta profile at nadir;
completely open source and part of the ORSA framework;
- support for all major platforms: Linux, Mac OS X, Windows;
The output files generated are:
a SPICE SPK kernel describing the orbit of DAWN around Vesta,
a formatted ASCII data file containing information about DAWNs orbit, phase angle, and equatorial coordinates with respect to Vesta; see the header of the file for more details.
<<less- understand how the physical parameters of Vesta affect the stability of low polar orbits;
- understand how the physical parameters of Vesta and the orbital elements of DAWN affect the coverage of Vestas surface;
- provide a fast and reliable tool for the generation of orbits suitable for input in the Science Opportunity Analyzer (SOA) tool;
Main features:
- validated numerical algorithms, tested on NEAR mission data, and capable of - accurately reproducing NEARs orbit around Eros;
- complete control over Vestas physical properties: mass, mass distribution model, shape model, rotation period, and pole ecliptic latitude and longitude;
- control over DAWNs initial orbit around Vesta: epoch, radius, equatorial (Vestas equator) inclination, phase angle;
- export simulations as SPICE kernel files and as ASCII data files;
- 3D graphical visualization of the numerical simulation, including the ground tracking of DAWN over Vestas surface;
- 2D plot of the altitude of the spacecraft and of the Vesta profile at nadir;
completely open source and part of the ORSA framework;
- support for all major platforms: Linux, Mac OS X, Windows;
The output files generated are:
a SPICE SPK kernel describing the orbit of DAWN around Vesta,
a formatted ASCII data file containing information about DAWNs orbit, phase angle, and equatorial coordinates with respect to Vesta; see the header of the file for more details.
Download (22.8MB)
Added: 2007-07-05 License: GPL (GNU General Public License) Price:
841 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
Math::Group::Thompson 0.96
Math::Group::Thompson module contains OO methods that calculates the cardinality of the ball of radius n of Thompson group F. more>>
Math::Group::Thompson Perl module contains OO methods that calculates the cardinality of the ball of radius n of Thompson group F.
SYNOPSIS
use Math::Group::Thompson;
my $F = Math::Group::Thompson->new( VERBOSE => 0 );
my $card = $F->cardBn(3,);
print "#B(3) = $cardn";
The Math::Group::Thompson module provides objetct oriented methods that calculates the cardinality of the ball of radius n of Thompson group F.
This module uses the presentation of F
F = < A,B | [AB^(-1),A^(-1)BA] = [AB^(-1),A^(-2)BA^2] = e >
where A,B are formal symbols, [x,y] is the usual commutator and e is the identity element of F.
[x,y] = xyx^(-1)y^(-1)
This means that for every g in F, g can be written as word
g = a_{1}a_{2} ... a_{n}
where all the a_{i} are A,B,A^(-1) or B^(-1) for all i r br Usage: my $F = new-Math::Group::Thompson( VERBOSE => $v );
Verbose argument tells Math::Group::Thompson whether print every word generated ($v == 1) or not ($v == 0), or store them in a file, where $v is the name of the file (obviously different to 0 or 1). If the verbose file exists it is replaced, so you have to check for its integrity.
NOTE:
Its not recommend to store the words on a file because for
very small values of n, #B(n) or #gB(n)-B(n) are very very large.
For example for n = 19, #B(n) ~ 3^n = 1162261467 ~ 1.1 Giga, but
the space ocupped by the file will be (in bytes):
#B(1) + sum(i=2 to 19){i*(#B(i) - #B(i-1))} =
cardBn
This method calculates #B(n) or #(gB(n) - B(n)) depending on if the argument passed to the first call of cardBn is or not.
Usage: my $c = $F->cardBn($radius,$g);
where
$radius is an integer number >= 0 and $g is an element of F (word written with A,B,C or D).
If the first time cardBn is called $g is not equal to , then cardBn returns the cardinality of the set
gB(n) - B(n) = { w in F | w in gB(n) and w not in B(n) }
If the firs time cardBn is callen $g is equal to , then cardBn returns #B(n).
This algorithm runs on exponential time because F is of exponential growth (more "exactly", this algorithm is O(3^n) ).
reset
Resets the counter used on cardBn method, set the FIRST_ELEMENT property at , and the FIRST_CALL proporty to 1.
Usage: $F->reset;
multiply
Multiplication between two words of F. This method considers the inverse relations stored in the attribute INV.
Usage: my $mul = $F->multiply($g,$w);
where $g and $w are elements of F, and $mul is the result of $g$w.
rotate
This module receives as argument a word in F and puts the last letter on word in its first place.
Usage: $w = ABC; $W = $self->rotate($w); # $W is now equal to CBA
inverse
This method receives a word in F and returns its inverse.
Usage: $w = ABC; $W = $self->inverse($w); # $W == ADC
divide
This method receives a word in F and returns a 2-dimensional array where the first element is the first half of the word, and the second is the inverse of the second half of the word.
Usage: $w = AABC; ($w1,$w2) = $self->divide($w); # Now $w1 == AA and $w2 == AD
get_inv
This method return the hash of inverse relations between the generators elements of F.
note
This method prints in STDERR the string received or puts it on the correspondent file.
Usage: $F->note(AA); # Print AA."n" or store it on a file.
<<lessSYNOPSIS
use Math::Group::Thompson;
my $F = Math::Group::Thompson->new( VERBOSE => 0 );
my $card = $F->cardBn(3,);
print "#B(3) = $cardn";
The Math::Group::Thompson module provides objetct oriented methods that calculates the cardinality of the ball of radius n of Thompson group F.
This module uses the presentation of F
F = < A,B | [AB^(-1),A^(-1)BA] = [AB^(-1),A^(-2)BA^2] = e >
where A,B are formal symbols, [x,y] is the usual commutator and e is the identity element of F.
[x,y] = xyx^(-1)y^(-1)
This means that for every g in F, g can be written as word
g = a_{1}a_{2} ... a_{n}
where all the a_{i} are A,B,A^(-1) or B^(-1) for all i r br Usage: my $F = new-Math::Group::Thompson( VERBOSE => $v );
Verbose argument tells Math::Group::Thompson whether print every word generated ($v == 1) or not ($v == 0), or store them in a file, where $v is the name of the file (obviously different to 0 or 1). If the verbose file exists it is replaced, so you have to check for its integrity.
NOTE:
Its not recommend to store the words on a file because for
very small values of n, #B(n) or #gB(n)-B(n) are very very large.
For example for n = 19, #B(n) ~ 3^n = 1162261467 ~ 1.1 Giga, but
the space ocupped by the file will be (in bytes):
#B(1) + sum(i=2 to 19){i*(#B(i) - #B(i-1))} =
cardBn
This method calculates #B(n) or #(gB(n) - B(n)) depending on if the argument passed to the first call of cardBn is or not.
Usage: my $c = $F->cardBn($radius,$g);
where
$radius is an integer number >= 0 and $g is an element of F (word written with A,B,C or D).
If the first time cardBn is called $g is not equal to , then cardBn returns the cardinality of the set
gB(n) - B(n) = { w in F | w in gB(n) and w not in B(n) }
If the firs time cardBn is callen $g is equal to , then cardBn returns #B(n).
This algorithm runs on exponential time because F is of exponential growth (more "exactly", this algorithm is O(3^n) ).
reset
Resets the counter used on cardBn method, set the FIRST_ELEMENT property at , and the FIRST_CALL proporty to 1.
Usage: $F->reset;
multiply
Multiplication between two words of F. This method considers the inverse relations stored in the attribute INV.
Usage: my $mul = $F->multiply($g,$w);
where $g and $w are elements of F, and $mul is the result of $g$w.
rotate
This module receives as argument a word in F and puts the last letter on word in its first place.
Usage: $w = ABC; $W = $self->rotate($w); # $W is now equal to CBA
inverse
This method receives a word in F and returns its inverse.
Usage: $w = ABC; $W = $self->inverse($w); # $W == ADC
divide
This method receives a word in F and returns a 2-dimensional array where the first element is the first half of the word, and the second is the inverse of the second half of the word.
Usage: $w = AABC; ($w1,$w2) = $self->divide($w); # Now $w1 == AA and $w2 == AD
get_inv
This method return the hash of inverse relations between the generators elements of F.
note
This method prints in STDERR the string received or puts it on the correspondent file.
Usage: $F->note(AA); # Print AA."n" or store it on a file.
Download (0.006MB)
Added: 2007-06-28 License: Perl Artistic License Price:
848 downloads
FreeNIBS 2.2.1
FreeNIBS is a loadable plugin for FreeRADIUS radius-server. more>>
FreeNIBS is a loadable plugin for FreeRADIUS radius-server.
FreeNIBS provide authorization/authentication/accounting for Dialin (PPP/PPPOE/PPTP) users.
It can bee used for real-time prepaid and postpaid billing. FreeNIBS can bill users on service accuration, time, traffic and time&traffic.
FreeNIBS has very flexible settings for groups, users and prices. All data store in SQL-databases such as MySQl, PgSQL and Oracle.
FreeNIBS is covered by the GPL license.
Enhancements:
- Build error with FreeRadiuses 1.1.5-1.1.6 was fixed
<<lessFreeNIBS provide authorization/authentication/accounting for Dialin (PPP/PPPOE/PPTP) users.
It can bee used for real-time prepaid and postpaid billing. FreeNIBS can bill users on service accuration, time, traffic and time&traffic.
FreeNIBS has very flexible settings for groups, users and prices. All data store in SQL-databases such as MySQl, PgSQL and Oracle.
FreeNIBS is covered by the GPL license.
Enhancements:
- Build error with FreeRadiuses 1.1.5-1.1.6 was fixed
Download (0.38MB)
Added: 2007-06-23 License: GPL (GNU General Public License) Price:
859 downloads
Other version of FreeNIBS
License:GPL (GNU General Public License)
Antiprism 0.15
Antiprism is a suite of programs for the generation, manipulation, and visualisation of polyhedra. more>>
Antiprism project is a suite of programs for the generation, manipulation, and visualisation of polyhedra.
Make a cube
This can be done with unipoly, which can be used to make all the uniform polyhedra.
unipoly cube > cube.off
Display with
off2pov -o cube.pov cube.off
povray +a +p cube.pov
Make the dual octahedron
pol_recip is used for making duals by polar reciprocation.
To make a nice compound the radius of the sphere used for reciprocation needs to be the distance from the cube centre to the mid-point of an edge, and the sphere centre must be the centre of the cube.
unipoly has centred the cube on (0, 0, 0), which is the default centre for pol_recip. The radius can be specified using the -R option and passing two adjacent vertex index numbers of the cube. Use off2pov with the -n option to display the cube with its vertex numbers.
off2pov -x vf -n -o cube.pov cube.off
povray +a +p cube.pov
Vertices 3 and 5 are adjacent, so make the dual octahedron like this, and display it.
pol_recip -R 3,5 cube.off > oct.off
off2pov -o oct.pov oct.off
povray +a +p oct.pov
Merge the polyhedra
OFF files are merged with off_merge
off_util cube.off oct.off > cub_oct.off
Display the result.
off2pov -o cub_oct.pov cub_oct.off
povray +a +p cub_oct.pov
Use colours
To make it clearer that this is a compound of a cube and octahedron the two polyhedra could be given different colours using off_color.
Colour the cube faces red, and the octahedron faces green.
off_color -f 1,0,0 cube.off > red_cube.off
off_color -f 0,1,0 oct.off > green_oct.off
Now merge and display as before, this time making the edge and vertex elements smaller than the defaults
off_util red_cube.off green_oct.off > color_cub_oct.off
off2pov -v 0.02 -e 0.016 -o color_cub_oct.pov color_cub_oct.off
povray +a +p color_cub_oct.pov
Enhancements:
- Edge handling has been improved.
- The GLU tesselator is used for all polygon tesselation, making polygon display more consistent in export formats.
- The minimum enclosing ball is used for camera positioning, allowing better use of screen space.
- Special duals can be calculated automatically.
- There is a new program which spirals points on a sphere, and another which arranges points in rings on a sphere.
<<lessMake a cube
This can be done with unipoly, which can be used to make all the uniform polyhedra.
unipoly cube > cube.off
Display with
off2pov -o cube.pov cube.off
povray +a +p cube.pov
Make the dual octahedron
pol_recip is used for making duals by polar reciprocation.
To make a nice compound the radius of the sphere used for reciprocation needs to be the distance from the cube centre to the mid-point of an edge, and the sphere centre must be the centre of the cube.
unipoly has centred the cube on (0, 0, 0), which is the default centre for pol_recip. The radius can be specified using the -R option and passing two adjacent vertex index numbers of the cube. Use off2pov with the -n option to display the cube with its vertex numbers.
off2pov -x vf -n -o cube.pov cube.off
povray +a +p cube.pov
Vertices 3 and 5 are adjacent, so make the dual octahedron like this, and display it.
pol_recip -R 3,5 cube.off > oct.off
off2pov -o oct.pov oct.off
povray +a +p oct.pov
Merge the polyhedra
OFF files are merged with off_merge
off_util cube.off oct.off > cub_oct.off
Display the result.
off2pov -o cub_oct.pov cub_oct.off
povray +a +p cub_oct.pov
Use colours
To make it clearer that this is a compound of a cube and octahedron the two polyhedra could be given different colours using off_color.
Colour the cube faces red, and the octahedron faces green.
off_color -f 1,0,0 cube.off > red_cube.off
off_color -f 0,1,0 oct.off > green_oct.off
Now merge and display as before, this time making the edge and vertex elements smaller than the defaults
off_util red_cube.off green_oct.off > color_cub_oct.off
off2pov -v 0.02 -e 0.016 -o color_cub_oct.pov color_cub_oct.off
povray +a +p color_cub_oct.pov
Enhancements:
- Edge handling has been improved.
- The GLU tesselator is used for all polygon tesselation, making polygon display more consistent in export formats.
- The minimum enclosing ball is used for camera positioning, allowing better use of screen space.
- Special duals can be calculated automatically.
- There is a new program which spirals points on a sphere, and another which arranges points in rings on a sphere.
Download (3.2MB)
Added: 2007-06-23 License: MIT/X Consortium License Price:
915 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above radius 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