turning
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 58
Transcend Game 0.3
Transcend Game project is a retro-style, abstract, collage-building, musical, shooter game. more>>
Transcend Game project is a retro-style, abstract, collage-building, musical, shooter game.
The graphics are geometrical, and the pace is sometimes frenzied. Two features set Transcend apart from other games.
First, its dynamic graphical engine, which can smoothly morph from one complex shape to another in realtime, produces striking displays.
Combining these dynamic shapes with subtle randomizations ensures that each new play through a level is visually different from the last.
The second novel feature is the musical power-up system.
As you play through a level, you are simultaneously assembling an abstract visual collage and arranging a unique piece of music.
Enhancements:
- Fixed bugs that caused post-explosion fade factors to become negative, which in turn caused boss explosions to linger on some platforms.
- Fixed zoom behavior when strafing.
- Added fade-in when enemies are created to avoid a visual pop-in.
- Added smooth turning when enemies switch targets.
- Changed so that pieces can be picked up while they are moving as a result of enemy fire. This makes pick up less confusing and frustrating.
- Made bullet fade-out smoothly at end of range to avoid visual pop.
- Doubled piece pick-up radius to make picking up pieces easier.
- Fixed jerky piece pick-up and drop.
- Added mini-explosion graphics to indicate when damage is being done to boss. These graphics also change color to indicate the boss health.
<<lessThe graphics are geometrical, and the pace is sometimes frenzied. Two features set Transcend apart from other games.
First, its dynamic graphical engine, which can smoothly morph from one complex shape to another in realtime, produces striking displays.
Combining these dynamic shapes with subtle randomizations ensures that each new play through a level is visually different from the last.
The second novel feature is the musical power-up system.
As you play through a level, you are simultaneously assembling an abstract visual collage and arranging a unique piece of music.
Enhancements:
- Fixed bugs that caused post-explosion fade factors to become negative, which in turn caused boss explosions to linger on some platforms.
- Fixed zoom behavior when strafing.
- Added fade-in when enemies are created to avoid a visual pop-in.
- Added smooth turning when enemies switch targets.
- Changed so that pieces can be picked up while they are moving as a result of enemy fire. This makes pick up less confusing and frustrating.
- Made bullet fade-out smoothly at end of range to avoid visual pop.
- Doubled piece pick-up radius to make picking up pieces easier.
- Fixed jerky piece pick-up and drop.
- Added mini-explosion graphics to indicate when damage is being done to boss. These graphics also change color to indicate the boss health.
Download (1.8MB)
Added: 2006-12-06 License: GPL (GNU General Public License) Price:
1052 downloads
Term::ANSIColor 1.10
Term::ANSIColor is a color screen output using ANSI escape sequences. more>>
Term::ANSIColor is a color screen output using ANSI escape sequences.
SYNOPSIS
use Term::ANSIColor;
print color bold blue;
print "This text is bold blue.n";
print color reset;
print "This text is normal.n";
print colored ("Yellow on magenta.n", yellow on_magenta);
print "This text is normal.n";
print colored [yellow on_magenta], "Yellow on magenta.n";
use Term::ANSIColor qw(uncolor);
print uncolor 01;31, "n";
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, "This text is in bold blue.n", RESET;
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE "This text is in bold blue.n";
print "This text is normal.n";
This module has two interfaces, one through color() and colored() and the other through constants. It also offers the utility function uncolor(), which has to be explicitly imported to be used (see SYNOPSIS).
color() takes any number of strings as arguments and considers them to be space-separated lists of attributes. It then forms and returns the escape sequence to set those attributes. It doesnt print it out, just returns it, so youll have to print it yourself if you want to (this is so that you can save it as a string, pass it to something else, send it to a file handle, or do anything else with it that you might care to).
uncolor() performs the opposite translation, turning escape sequences into a list of strings.
The recognized attributes (all of which should be fairly intuitive) are clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white. Case is not significant. Underline and underscore are equivalent, as are clear and reset, so use whichever is the most intuitive to you. The color alone sets the foreground color, and on_color sets the background color.
Note that not all attributes are supported by all terminal types, and some terminals may not support any of these sequences. Dark, blink, and concealed in particular are frequently not implemented.
Attributes, once set, last until they are unset (by sending the attribute "reset"). Be careful to do this, or otherwise your attribute will last after your script is done running, and people get very annoyed at having their prompt and typing changed to weird colors.
As an aid to help with this, colored() takes a scalar as the first argument and any number of attribute strings as the second argument and returns the scalar wrapped in escape codes so that the attributes will be set as requested before the string and reset to normal after the string. Alternately, you can pass a reference to an array as the first argument, and then the contents of that array will be taken as attributes and color codes and the remainder of the arguments as text to colorize.
Normally, colored() just puts attribute codes at the beginning and end of the string, but if you set $Term::ANSIColor::EACHLINE to some string, that string will be considered the line delimiter and the attribute will be set at the beginning of each line of the passed string and reset at the end of each line. This is often desirable if the output is being sent to a program like a pager that can be confused by attributes that span lines. Normally youll want to set $Term::ANSIColor::EACHLINE to "n" to use this feature.
<<lessSYNOPSIS
use Term::ANSIColor;
print color bold blue;
print "This text is bold blue.n";
print color reset;
print "This text is normal.n";
print colored ("Yellow on magenta.n", yellow on_magenta);
print "This text is normal.n";
print colored [yellow on_magenta], "Yellow on magenta.n";
use Term::ANSIColor qw(uncolor);
print uncolor 01;31, "n";
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, "This text is in bold blue.n", RESET;
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE "This text is in bold blue.n";
print "This text is normal.n";
This module has two interfaces, one through color() and colored() and the other through constants. It also offers the utility function uncolor(), which has to be explicitly imported to be used (see SYNOPSIS).
color() takes any number of strings as arguments and considers them to be space-separated lists of attributes. It then forms and returns the escape sequence to set those attributes. It doesnt print it out, just returns it, so youll have to print it yourself if you want to (this is so that you can save it as a string, pass it to something else, send it to a file handle, or do anything else with it that you might care to).
uncolor() performs the opposite translation, turning escape sequences into a list of strings.
The recognized attributes (all of which should be fairly intuitive) are clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white. Case is not significant. Underline and underscore are equivalent, as are clear and reset, so use whichever is the most intuitive to you. The color alone sets the foreground color, and on_color sets the background color.
Note that not all attributes are supported by all terminal types, and some terminals may not support any of these sequences. Dark, blink, and concealed in particular are frequently not implemented.
Attributes, once set, last until they are unset (by sending the attribute "reset"). Be careful to do this, or otherwise your attribute will last after your script is done running, and people get very annoyed at having their prompt and typing changed to weird colors.
As an aid to help with this, colored() takes a scalar as the first argument and any number of attribute strings as the second argument and returns the scalar wrapped in escape codes so that the attributes will be set as requested before the string and reset to normal after the string. Alternately, you can pass a reference to an array as the first argument, and then the contents of that array will be taken as attributes and color codes and the remainder of the arguments as text to colorize.
Normally, colored() just puts attribute codes at the beginning and end of the string, but if you set $Term::ANSIColor::EACHLINE to some string, that string will be considered the line delimiter and the attribute will be set at the beginning of each line of the passed string and reset at the end of each line. This is often desirable if the output is being sent to a program like a pager that can be confused by attributes that span lines. Normally youll want to set $Term::ANSIColor::EACHLINE to "n" to use this feature.
Download (0.011MB)
Added: 2006-06-29 License: Perl Artistic License Price:
1212 downloads
Mathfun.py 2.1
Mathfun.py is a rather small Python library that contains some of the more obscure mathematical formula/functions. more>>
Mathfun.py project s a rather small Python library that contains some of the more obscure (others would say less useful 8^) mathematical formula/functions that I have always found interesting/amusing.
These include primality tests, fibonacci sequences and turning characters into numbers, among other things. The next paragraph includes a little story about my strange habits as a teenager. The paragraph after that contains some ramblings about primes and formulas.
The paragraph after that hasnt been decided on yet, but you can be assured that it will be more stream-of- consciousness rambling about something mathematic by yours truly.
One of the reasons that this library exists is that, as a junior programmer in high school, I spent an insane amount of time writing BASIC programs on our IIgs that would calculate the first 100 primes or some other such nonsense. I would write it one way, get out a stop watch, run it, record the time it took, rewrite it, rerun it, retime it and calculate the difference as percentage decrease in time. Repeat the previous until you get BASIC that looked like an explosion in a type factory. All in some sort of quest to... well, I dont really know what I was shooting for. I just enjoyed it. Calculating if a number was prime, calculating the prime factorization, calculating the first N prime numbers... Yeah, I was a strange one.
But, in retrospect, all that solitary math kinda helped. While I reinvented many a prime wheel, I did it on my own, which was something of a personal fulfillment once I had learned more of a history of mathematics. And I never forgot most of those formulas that I worked out on that Apple. For instance, mathfun.isprime(number) utilizes most of what I learned back in high school. It iterates through the odd numbers, up to the integer value of the square root of the number in question. I still remember the epiphany that I had that I only needed to calculate through the square root of the number. 8^)
Theres a minor paradox with the calculation of a prime. The quickest way to generate primes would be to only attempt modular arithmetic with prime numbers. However, to do it that way means that you have to generate a list of prime numbers first, which involves a primality test on every odd number up to the square root of the number in question. This would be sloooooow for the primality test for any single number. (For instance, isprime(10000) would involved roughly 50 full primality tests to generate the list needed to be a maximally efficient test on it.) So, we accept that even if were not going to get any results doing (N mod 9), its much quicker to eat those wasted cycles than to determine if 9 is prime first.
However, if youre doing nothing more than simply cranking out prime after prime, it becomes much more efficient to only do the primality test with a list of primes, since (if you start from 2) youve already determined the ealier ones before. (Theres probably a break-even time first (machine dependent) before "determine all primes with primes" becomes more efficient than "crank through the odd numbers".) Its easy to see however, that for very large numbers its much better to only work with primes.
Theres also a minor question of the speed of the data structures used to store the prime list versus the very fast next odd number test. However, Ill leave that one up to the True Computer Scientists.
<<lessThese include primality tests, fibonacci sequences and turning characters into numbers, among other things. The next paragraph includes a little story about my strange habits as a teenager. The paragraph after that contains some ramblings about primes and formulas.
The paragraph after that hasnt been decided on yet, but you can be assured that it will be more stream-of- consciousness rambling about something mathematic by yours truly.
One of the reasons that this library exists is that, as a junior programmer in high school, I spent an insane amount of time writing BASIC programs on our IIgs that would calculate the first 100 primes or some other such nonsense. I would write it one way, get out a stop watch, run it, record the time it took, rewrite it, rerun it, retime it and calculate the difference as percentage decrease in time. Repeat the previous until you get BASIC that looked like an explosion in a type factory. All in some sort of quest to... well, I dont really know what I was shooting for. I just enjoyed it. Calculating if a number was prime, calculating the prime factorization, calculating the first N prime numbers... Yeah, I was a strange one.
But, in retrospect, all that solitary math kinda helped. While I reinvented many a prime wheel, I did it on my own, which was something of a personal fulfillment once I had learned more of a history of mathematics. And I never forgot most of those formulas that I worked out on that Apple. For instance, mathfun.isprime(number) utilizes most of what I learned back in high school. It iterates through the odd numbers, up to the integer value of the square root of the number in question. I still remember the epiphany that I had that I only needed to calculate through the square root of the number. 8^)
Theres a minor paradox with the calculation of a prime. The quickest way to generate primes would be to only attempt modular arithmetic with prime numbers. However, to do it that way means that you have to generate a list of prime numbers first, which involves a primality test on every odd number up to the square root of the number in question. This would be sloooooow for the primality test for any single number. (For instance, isprime(10000) would involved roughly 50 full primality tests to generate the list needed to be a maximally efficient test on it.) So, we accept that even if were not going to get any results doing (N mod 9), its much quicker to eat those wasted cycles than to determine if 9 is prime first.
However, if youre doing nothing more than simply cranking out prime after prime, it becomes much more efficient to only do the primality test with a list of primes, since (if you start from 2) youve already determined the ealier ones before. (Theres probably a break-even time first (machine dependent) before "determine all primes with primes" becomes more efficient than "crank through the odd numbers".) Its easy to see however, that for very large numbers its much better to only work with primes.
Theres also a minor question of the speed of the data structures used to store the prime list versus the very fast next odd number test. However, Ill leave that one up to the True Computer Scientists.
Download (0.011MB)
Added: 2006-08-28 License: GPL (GNU General Public License) Price:
1153 downloads
Packet filtering setup script
Packet filtering setup script by Anthony C. Zboralski. more>>
Packet filtering setup script by Anthony C. Zboralski. Adapted by Didi Damian for iptables version 1.0.0
Sample:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Set up variables
EXT_IF="eth0"
INT_IF="eth1"
EXT_IP=24.x.x.x/32
INT_IP=192.168.0.1/32
EXT_NET=24.x.x.0/24
INT_NET=192.168.0.0/24
MASQ_NETS="192.168.0.0/24"
LOCAL_ADDRS="127.0.0.0/8 192.168.0.1/32 24.x.x.x/32"
MAIL_RELAY=24.x.x.x/32
SMB_ACCESS="192.168.0.2/32"
SMB_BCAST="192.168.0.255/32"
# Turn on IP forwarding
echo Turning on IP forwarding.
echo 1 > /proc/sys/net/ipv4/ip_forward
# Load the ip_tables module
echo Loading ip_tables module.
/sbin/modprobe ip_tables || exit 1
# I let the kernel dynamically load the other modules
echo Flush standard tables.
iptables --flush INPUT
iptables --flush OUTPUT
iptables --flush FORWARD
echo Deny everything until firewall setup is completed.
iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP
CHAINS=`iptables -n -L |perl -n -e /Chains+(S+)/ && !($1 =~ /^(INPUT|FORWARD|OUTPUT)$/) && print "$1 "`
echo Remove remaining chains:
echo $CHAINS
for chain in $CHAINS; do
iptables --flush $chain
done
# 2nd step cause of dependencies
for chain in $CHAINS; do
iptables --delete-chain $chain
done
for net in $MASQ_NETS; do
# I delete all the rules so you can rerun the scripts without bloating
# your nat entries.
iptables -D POSTROUTING -t nat -s $MASQ_NETS -j MASQUERADE 2>/dev/null
iptables -A POSTROUTING -t nat -s $MASQ_NETS -j MASQUERADE || exit 1
done
iptables --policy FORWARD ACCEPT
# Create a target for logging and dropping packets
iptables --new LDROP 2>/dev/null
iptables -A LDROP --proto tcp -j LOG --log-level info
--log-prefix "TCP Drop "
iptables -A LDROP --proto udp -j LOG --log-level info
--log-prefix "UDP Drop "
iptables -A LDROP --proto icmp -j LOG --log-level info
--log-prefix "ICMP Drop "
iptables -A LDROP --proto gre -j LOG --log-level info
--log-prefix "GRE Drop "
iptables -A LDROP -f -j LOG --log-level emerg
--log-prefix "FRAG Drop "
iptables -A LDROP -j DROP
# Create a table for watching some accepting rules
iptables --new WATCH 2>/dev/null
iptables -A WATCH -m limit -j LOG --log-level warn --log-prefix "ACCEPT "
iptables -A WATCH -j ACCEPT
echo Special target for local addresses:
iptables --new LOCAL 2>/dev/null
echo $LOCAL_ADDRS
for ip in $LOCAL_ADDRS; do
iptables -A INPUT --dst $ip -j LOCAL
# iptables -A INPUT --src $ip -i ! lo -j LDROP # lame spoof protect
done
echo Authorize mail from mail relay.
iptables -A LOCAL --proto tcp --syn --src $MAIL_RELAY --dst $EXT_IP --dport 25 -j ACCEPT
echo Authorizing samba access to:
echo $SMB_ACCESS
iptables --new SMB 2>/dev/null
for ip in $SMB_ACCESS; do
iptables -A SMB -s $ip -j ACCEPT
done
iptables -A LOCAL --proto udp -i ! $EXT_IF --dport 135:139 -j SMB
iptables -A LOCAL --proto tcp -i ! $EXT_IF --dport 135:139 -j SMB
iptables -A LOCAL --proto tcp -i ! $EXT_IF --dport 445 -j SMB
iptables -A INPUT -i ! $EXT_IF --dst $SMB_BCAST -j ACCEPT #lame samba broadcast
echo Drop and log every other incoming tcp connection attempts.
iptables -A LOCAL -i ! lo --proto tcp --syn --j LDROP
echo Authorize dns access for local nets.
for net in $MASQ_NETS 127.0.0.0/8; do
iptables -A INPUT --proto udp --src $net --dport 53 -j ACCEPT
done
echo Enforcing up ICMP policies, use iptables -L ICMP to check.
# If you deny all ICMP messages you head for trouble since it would
# break lots of tcp/ip algorythm (acz)
iptables --new ICMP 2>/dev/null
iptables -A INPUT --proto icmp -j ICMP
iptables -A ICMP -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A ICMP -p icmp --icmp-type destination-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type network-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type host-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type protocol-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type port-unreachable -j ACCEPT
iptables -A ICMP -p icmp --icmp-type fragmentation-needed -j LDROP
iptables -A ICMP -p icmp --icmp-type source-route-failed -j WATCH
iptables -A ICMP -p icmp --icmp-type network-unknown -j WATCH
iptables -A ICMP -p icmp --icmp-type host-unknown -j WATCH
iptables -A ICMP -p icmp --icmp-type network-prohibited -j WATCH
iptables -A ICMP -p icmp --icmp-type host-prohibited -j WATCH
iptables -A ICMP -p icmp --icmp-type TOS-network-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type TOS-host-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type communication-prohibited -j WATCH
iptables -A ICMP -p icmp --icmp-type host-precedence-violation -j LDROP
iptables -A ICMP -p icmp --icmp-type precedence-cutoff -j LDROP
iptables -A ICMP -p icmp --icmp-type source-quench -j LDROP
iptables -A ICMP -p icmp --icmp-type redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type network-redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type host-redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type TOS-network-redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type TOS-host-redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type echo-request -j WATCH
iptables -A ICMP -p icmp --icmp-type router-advertisement -j LDROP
iptables -A ICMP -p icmp --icmp-type router-solicitation -j LDROP
iptables -A ICMP -p icmp --icmp-type time-exceeded -j WATCH
iptables -A ICMP -p icmp --icmp-type ttl-zero-during-transit -j WATCH
iptables -A ICMP -p icmp --icmp-type ttl-zero-during-reassembly -j WATCH
iptables -A ICMP -p icmp --icmp-type parameter-problem -j WATCH
iptables -A ICMP -p icmp --icmp-type ip-header-bad -j WATCH
iptables -A ICMP -p icmp --icmp-type required-option-missing -j WATCH
iptables -A ICMP -p icmp --icmp-type timestamp-request -j LDROP
iptables -A ICMP -p icmp --icmp-type timestamp-reply -j LDROP
iptables -A ICMP -p icmp --icmp-type address-mask-request -j LDROP
iptables -A ICMP -p icmp --icmp-type address-mask-reply -j LDROP
iptables -A ICMP -p icmp -j LDROP
echo Authorize tcp traffic.
iptables -A INPUT --proto tcp -j ACCEPT
echo Authorize packet output.
iptables --policy OUTPUT ACCEPT
#echo reject ident if you drop em you gotta wait for timeout
#iptables -I LOCAL --proto tcp --syn --dst $EXT_IP --dport 113 -j REJECT
echo Drop and log all udp below 1024.
iptables -A INPUT -i ! lo --proto udp --dport :1023 -j LDROP
echo Drop rpc dynamic udp port:
RPC_UDP=`rpcinfo -p localhost|perl -n -e /.*udps+(d+)s+/ && print $1,"n"|sort -u`
echo $RPC_UDP
for port in $RPC_UDP; do
iptables -A LOCAL -i ! lo --proto udp --dport $port -j LDROP
done
echo Authorize udp above 1024.
iptables -A INPUT --proto udp --dport 1024: -j ACCEPT
<<lessSample:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Set up variables
EXT_IF="eth0"
INT_IF="eth1"
EXT_IP=24.x.x.x/32
INT_IP=192.168.0.1/32
EXT_NET=24.x.x.0/24
INT_NET=192.168.0.0/24
MASQ_NETS="192.168.0.0/24"
LOCAL_ADDRS="127.0.0.0/8 192.168.0.1/32 24.x.x.x/32"
MAIL_RELAY=24.x.x.x/32
SMB_ACCESS="192.168.0.2/32"
SMB_BCAST="192.168.0.255/32"
# Turn on IP forwarding
echo Turning on IP forwarding.
echo 1 > /proc/sys/net/ipv4/ip_forward
# Load the ip_tables module
echo Loading ip_tables module.
/sbin/modprobe ip_tables || exit 1
# I let the kernel dynamically load the other modules
echo Flush standard tables.
iptables --flush INPUT
iptables --flush OUTPUT
iptables --flush FORWARD
echo Deny everything until firewall setup is completed.
iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP
CHAINS=`iptables -n -L |perl -n -e /Chains+(S+)/ && !($1 =~ /^(INPUT|FORWARD|OUTPUT)$/) && print "$1 "`
echo Remove remaining chains:
echo $CHAINS
for chain in $CHAINS; do
iptables --flush $chain
done
# 2nd step cause of dependencies
for chain in $CHAINS; do
iptables --delete-chain $chain
done
for net in $MASQ_NETS; do
# I delete all the rules so you can rerun the scripts without bloating
# your nat entries.
iptables -D POSTROUTING -t nat -s $MASQ_NETS -j MASQUERADE 2>/dev/null
iptables -A POSTROUTING -t nat -s $MASQ_NETS -j MASQUERADE || exit 1
done
iptables --policy FORWARD ACCEPT
# Create a target for logging and dropping packets
iptables --new LDROP 2>/dev/null
iptables -A LDROP --proto tcp -j LOG --log-level info
--log-prefix "TCP Drop "
iptables -A LDROP --proto udp -j LOG --log-level info
--log-prefix "UDP Drop "
iptables -A LDROP --proto icmp -j LOG --log-level info
--log-prefix "ICMP Drop "
iptables -A LDROP --proto gre -j LOG --log-level info
--log-prefix "GRE Drop "
iptables -A LDROP -f -j LOG --log-level emerg
--log-prefix "FRAG Drop "
iptables -A LDROP -j DROP
# Create a table for watching some accepting rules
iptables --new WATCH 2>/dev/null
iptables -A WATCH -m limit -j LOG --log-level warn --log-prefix "ACCEPT "
iptables -A WATCH -j ACCEPT
echo Special target for local addresses:
iptables --new LOCAL 2>/dev/null
echo $LOCAL_ADDRS
for ip in $LOCAL_ADDRS; do
iptables -A INPUT --dst $ip -j LOCAL
# iptables -A INPUT --src $ip -i ! lo -j LDROP # lame spoof protect
done
echo Authorize mail from mail relay.
iptables -A LOCAL --proto tcp --syn --src $MAIL_RELAY --dst $EXT_IP --dport 25 -j ACCEPT
echo Authorizing samba access to:
echo $SMB_ACCESS
iptables --new SMB 2>/dev/null
for ip in $SMB_ACCESS; do
iptables -A SMB -s $ip -j ACCEPT
done
iptables -A LOCAL --proto udp -i ! $EXT_IF --dport 135:139 -j SMB
iptables -A LOCAL --proto tcp -i ! $EXT_IF --dport 135:139 -j SMB
iptables -A LOCAL --proto tcp -i ! $EXT_IF --dport 445 -j SMB
iptables -A INPUT -i ! $EXT_IF --dst $SMB_BCAST -j ACCEPT #lame samba broadcast
echo Drop and log every other incoming tcp connection attempts.
iptables -A LOCAL -i ! lo --proto tcp --syn --j LDROP
echo Authorize dns access for local nets.
for net in $MASQ_NETS 127.0.0.0/8; do
iptables -A INPUT --proto udp --src $net --dport 53 -j ACCEPT
done
echo Enforcing up ICMP policies, use iptables -L ICMP to check.
# If you deny all ICMP messages you head for trouble since it would
# break lots of tcp/ip algorythm (acz)
iptables --new ICMP 2>/dev/null
iptables -A INPUT --proto icmp -j ICMP
iptables -A ICMP -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A ICMP -p icmp --icmp-type destination-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type network-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type host-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type protocol-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type port-unreachable -j ACCEPT
iptables -A ICMP -p icmp --icmp-type fragmentation-needed -j LDROP
iptables -A ICMP -p icmp --icmp-type source-route-failed -j WATCH
iptables -A ICMP -p icmp --icmp-type network-unknown -j WATCH
iptables -A ICMP -p icmp --icmp-type host-unknown -j WATCH
iptables -A ICMP -p icmp --icmp-type network-prohibited -j WATCH
iptables -A ICMP -p icmp --icmp-type host-prohibited -j WATCH
iptables -A ICMP -p icmp --icmp-type TOS-network-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type TOS-host-unreachable -j WATCH
iptables -A ICMP -p icmp --icmp-type communication-prohibited -j WATCH
iptables -A ICMP -p icmp --icmp-type host-precedence-violation -j LDROP
iptables -A ICMP -p icmp --icmp-type precedence-cutoff -j LDROP
iptables -A ICMP -p icmp --icmp-type source-quench -j LDROP
iptables -A ICMP -p icmp --icmp-type redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type network-redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type host-redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type TOS-network-redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type TOS-host-redirect -j LDROP
iptables -A ICMP -p icmp --icmp-type echo-request -j WATCH
iptables -A ICMP -p icmp --icmp-type router-advertisement -j LDROP
iptables -A ICMP -p icmp --icmp-type router-solicitation -j LDROP
iptables -A ICMP -p icmp --icmp-type time-exceeded -j WATCH
iptables -A ICMP -p icmp --icmp-type ttl-zero-during-transit -j WATCH
iptables -A ICMP -p icmp --icmp-type ttl-zero-during-reassembly -j WATCH
iptables -A ICMP -p icmp --icmp-type parameter-problem -j WATCH
iptables -A ICMP -p icmp --icmp-type ip-header-bad -j WATCH
iptables -A ICMP -p icmp --icmp-type required-option-missing -j WATCH
iptables -A ICMP -p icmp --icmp-type timestamp-request -j LDROP
iptables -A ICMP -p icmp --icmp-type timestamp-reply -j LDROP
iptables -A ICMP -p icmp --icmp-type address-mask-request -j LDROP
iptables -A ICMP -p icmp --icmp-type address-mask-reply -j LDROP
iptables -A ICMP -p icmp -j LDROP
echo Authorize tcp traffic.
iptables -A INPUT --proto tcp -j ACCEPT
echo Authorize packet output.
iptables --policy OUTPUT ACCEPT
#echo reject ident if you drop em you gotta wait for timeout
#iptables -I LOCAL --proto tcp --syn --dst $EXT_IP --dport 113 -j REJECT
echo Drop and log all udp below 1024.
iptables -A INPUT -i ! lo --proto udp --dport :1023 -j LDROP
echo Drop rpc dynamic udp port:
RPC_UDP=`rpcinfo -p localhost|perl -n -e /.*udps+(d+)s+/ && print $1,"n"|sort -u`
echo $RPC_UDP
for port in $RPC_UDP; do
iptables -A LOCAL -i ! lo --proto udp --dport $port -j LDROP
done
echo Authorize udp above 1024.
iptables -A INPUT --proto udp --dport 1024: -j ACCEPT
Download (MB)
Added: 2007-02-14 License: GPL (GNU General Public License) Price:
984 downloads
PATH programming language 0.33
PATH programming language is a unique two-dimensional programming language. more>>
PATH is a very different programming language than what you are probably used to if youre an average programmer. If youve programmed in the language Brainf*ck, youll recognize the memory cell architecture. Also, Befunge programmers will recognize the two-dimensional way that PATH programs are laid out.
PATH programs are laid out on a two-dimensional grid. It follows a path of instructions on the program grid, turning 90 degrees when instructed to (hence the name). A character recognized by the interpreter is called an instruction symbol.
To show you what a PATH program actually looks like, heres a simple program that coincidentally spells out the word "PATH" in large ASCII art letters. (You may recognize it from the PATH program homepage, and its also included with the interpreter.) All it does is make the console beep. Ill explain it in detail later, once you know what all the instruction symbols do.
The interpreter starts at the first "$" symbol it finds and starts heading right. Every time it encounters a valid instruction symbol, it executes it. When it encounters certain special symbols, it may turn in another direction.
The interpreter keeps going until it reaches a "#" symbol. If it encounters a character that is not a valid instruction symbol, it ignores it and skips over it.
<<lessPATH programs are laid out on a two-dimensional grid. It follows a path of instructions on the program grid, turning 90 degrees when instructed to (hence the name). A character recognized by the interpreter is called an instruction symbol.
To show you what a PATH program actually looks like, heres a simple program that coincidentally spells out the word "PATH" in large ASCII art letters. (You may recognize it from the PATH program homepage, and its also included with the interpreter.) All it does is make the console beep. Ill explain it in detail later, once you know what all the instruction symbols do.
The interpreter starts at the first "$" symbol it finds and starts heading right. Every time it encounters a valid instruction symbol, it executes it. When it encounters certain special symbols, it may turn in another direction.
The interpreter keeps going until it reaches a "#" symbol. If it encounters a character that is not a valid instruction symbol, it ignores it and skips over it.
Download (0.010MB)
Added: 2005-04-15 License: MIT/X Consortium License Price:
1654 downloads
printerpowerd 1.0
printerpowerd is a Daemon to automatically turn a printer on and off. more>>
printerpowerd project is a Daemon to automatically turn a printer on and off.
printerpowerd is a little Python script designed for users of older printers who want to save power when not using their printer, without manually turning it on and off.
It runs, checking the printer queue directory every five seconds, turns it on when it sees a job, and turns it off after a configurable amount of idle time.
It allows you to turn a printer on and off (when idle) using X10 or any other abitrary command.
<<lessprinterpowerd is a little Python script designed for users of older printers who want to save power when not using their printer, without manually turning it on and off.
It runs, checking the printer queue directory every five seconds, turns it on when it sees a job, and turns it off after a configurable amount of idle time.
It allows you to turn a printer on and off (when idle) using X10 or any other abitrary command.
Download (0.002MB)
Added: 2007-01-18 License: BSD License Price:
1013 downloads
BeatrIX Linux 2005.1 FINAL
BeatrIX Linux - a compact (Less than 200 megs), Linux operating system more>>
BeatrIX Linux 2005.1 FINAL is a less-than-200-meg Debian/Ubuntu Linux that is a live-CD/installable to hard drive distribution featuring kernel 2.6.7, Gnome 2.8.1, Firefox 1.03 w/AdBlock, Evolution 2.01, GAIM 1.03, Open Office 1.1.2, Apt, PDF viewer, image viewer, plus much, much more. It is expandable through both the Debian and Ubuntu repositories and is one of the fastest-growing Linuxes in the world.
It is a "get-the-job-done distribution of Linux and because of its design, will run on just about any personal computer made in the past 10 years with a minimum of 64 megabytes of RAM.
The programs chosen for BeatrIX are all "best-of-breed" meaning weve selected the best of the best of each type of program.
If you install it to hard drive, you can upgrade and add to the system using the Ubuntu and/or Debian file repositories, turning it into just about any type of operating system you want. You can install everything from Web servers to Wed editors. And ll of this from a mini-CD!
It is one of the fastest-growing Linuxes in the world, having been downloaded in more than 110 countries and more than 50,000 times since its release four months ago.
<<lessIt is a "get-the-job-done distribution of Linux and because of its design, will run on just about any personal computer made in the past 10 years with a minimum of 64 megabytes of RAM.
The programs chosen for BeatrIX are all "best-of-breed" meaning weve selected the best of the best of each type of program.
If you install it to hard drive, you can upgrade and add to the system using the Ubuntu and/or Debian file repositories, turning it into just about any type of operating system you want. You can install everything from Web servers to Wed editors. And ll of this from a mini-CD!
It is one of the fastest-growing Linuxes in the world, having been downloaded in more than 110 countries and more than 50,000 times since its release four months ago.
Download (182MB)
Added: 2009-04-07 License: Freeware Price:
203 downloads
Moonlight|3D 0.1.4
Moonlight|3D strives to become a free modern, flexible, feature-rich and extensible modelling and animation tool. more>>
Moonlight|3D program strives to become a free modern, flexible, feature-rich and extensible modelling and animation tool. Our goal is to provide a tool that is capapble of turning even the most advanced and challenging projects of artists and technical artists into reality.
We understand that this project is by its very nature a huge undertaking which takes large amounts of time and effort to get started. However, this does not scare us off.
We have chosen to make clean design, good usability and solid implementation of features our highest priority goals and we have already successfully, albeit slowly pursued that road for several years.
In order to speed up the progress of our development efforts we open up the project to the general public and we hope to attract the support of many developers and users, bringing the project forward faster.
Main features:
- plugin-based architecture
- all user actions on the 3D scene remain editable
- complete support for automation through python scripts
- completely configurable user interface layout
- basic mesh editing functionality
Enhancements:
- This new preview version is available in binary form for Linux/x86, Linux/x86_64, and Windows.
- The focus of this release is on improving support for Win32.
- The different transformation and extrude tools were unified.
- The light source types spherical and spot light were added.
- Tools for mesh triangulation and Catmull-Clark subdivision and importers and exporters for Wavefront .OBJ and Ogre XML mesh formats were added.
<<lessWe understand that this project is by its very nature a huge undertaking which takes large amounts of time and effort to get started. However, this does not scare us off.
We have chosen to make clean design, good usability and solid implementation of features our highest priority goals and we have already successfully, albeit slowly pursued that road for several years.
In order to speed up the progress of our development efforts we open up the project to the general public and we hope to attract the support of many developers and users, bringing the project forward faster.
Main features:
- plugin-based architecture
- all user actions on the 3D scene remain editable
- complete support for automation through python scripts
- completely configurable user interface layout
- basic mesh editing functionality
Enhancements:
- This new preview version is available in binary form for Linux/x86, Linux/x86_64, and Windows.
- The focus of this release is on improving support for Win32.
- The different transformation and extrude tools were unified.
- The light source types spherical and spot light were added.
- Tools for mesh triangulation and Catmull-Clark subdivision and importers and exporters for Wavefront .OBJ and Ogre XML mesh formats were added.
Download (17.4MB)
Added: 2007-07-25 License: LGPL (GNU Lesser General Public License) Price:
826 downloads
Worminator 3.0R2.1
Worminator 3 is akin to many Apogee Software and ID Software classic action games such as Duke Nukem and Commander Keen. more>>
Worminator 3 is akin to many Apogee Software and ID Software classic action games such as Duke Nukem and Commander Keen.
In Worminator game, you play as The Worminator (or as several other optional characters) and fight your way through many levels of madness and mayhem.
It features nine unique weapons, visible character damage, multiple supported resolutions, full screen scrolling, sound and music, and more.
Original Worminator story...
The year is 2028, 14 years after the start of the deadliest war in the history of worm kind. Much has changed... In the year 2012; a brilliant American scientist discovered how to make W.O.R.M. (Wormborg Operated Remote Missile) Weaponry, and to work them, the "WormBorgs" cyborg fighting machines.
These so called "WormBorgs" were the elite fighting force and the pride of the United Worms of America. Their life-like roles soon became far too life-like. They thought on their own, and acted on their own whims, under their own leader "DirtNet." No one exactly knows who or what "DirtNet" is, but it soon began to take over.
First, it launched the W.O.R.M.s at the Woroviet Union, in the hopes that they would retaliate and initiate a war between the Woroviet Union and the UWA. However, "DirtNet" obviously had a few bugs to work out, and the W.S.S.R was obliterated into millions of radioactive hunks of mud and dirt. Despite the fact that no one liked Wormunism anyway, all of Wormurope retaliated against the UWA.
Soon, the world was turned into a nuclear wasteland. Nuke drops became daily ordeals, and the giant bombs turning whole forests into matchsticks was to be expected. As if the sewers werent loaded with enough mutated alligators as it was, the hunks of radioactive material combined with the primordial soup of the sewers are said to have created blobs of sewage ooze, powerful enough that they fed off the mutated alligators for lunch.
After what was left of Wormurope had realized what tricks had been played on them by "DirtNet," they began to rally and fight back. For 8 years, the WormBorgs dominated the lands, crushing the rebels... until one faithful day, when the now famous rebel hero emerged. It was Wrom Conner.
No longer acting as individual factions, countries or nations, the rebels struck quickly and fiercely under Wroms command, using tactics that even the powerful W-1000s processors could not predict. The tide of the war had turned.
Over the next 5 years, the rebels devastated the WormBorgs. Using guerilla tactics and reprogrammed WormBorgs to fight for them, the rebels were a resourceful army indeed. Now, in desperation, "DirtNet" has just brought its proto-type WormBorg online, equipped with the latest in armor and weaponry, in one last attempt to regain control...
Main features:
- Fast, fluid scrolling
- 12 unique weapons, and many types of ammo
- Lots of gibs and shrapnel (all cartoonish, though)
- Visible character damage (as you get hurt, the Worminator actually becomes bloody)
- Visible weapons (every weapon actually appears differently on the Worminator. Most platform games have a single weapon graphic that shoots every type of projectile)
- Over 12 fully animated enemies
- Comes with over 16 levels, and a level editor is included so you can make your own
- Keycards, doors, special items, switches, lever, extending bridges, floating platforms, and more!
- Earthquakes rip the ground apart, while snow and rain fall around you
- Great MIDI tunes by Garret Thomson (garret_t@sympatico.ca, www.sirsonic.com)
- Many sound effects (All from Internet sites such as Sound America and Meanrabbit. Let me know if there are any copyright problems, and I will deal with them immediately)
- Parallax scrolling, plus four data layers in every map. This makes the engine very flexible
- Game includes a campaign game with special scripted events, as well as an option to load custom maps
- Stereo sound effects (where available)
- Limited skins support; you can play as different characters!
- Built using Allegro + DJGPP. Source code may be made available if the demand is there
- If you wish to use the Worminator engine, contact me and we will discuss it (I would never charge any money for it, so if your interested, drop me an email. You have nothing to loose)
- Totally Freeware!
Enhancements:
- made worminator compile and run on Linux (Unix)
- made worminator yield the cpu when its idle
- save settings in textfile format under $HOME/.worm3.cfg instead of as binary blob in cwd
- save / load game to / from $HOME/.worm3.sav
- load datafile from DATADIR as defined during compilation instead of from cwd
- speedup: dont redraw borders and statuspanel unless nescesarry
- check all file accesses and give an error and continue when possible instead of just segfaulting
- fix a crash when changing audio options after loading a savegame of a custom-level or the tutorial
- fix a crash (unix only?) when changing video options and one similar on exit
- fix crash on exit caused by a few double frees on exit
- dont ask for confirmation on load/play_demo/exit when their is no game in progress
- show a message when trying to save when no game is in progress, instead of just silenty ignoring the request
- when clicking on another submenu when in one not only close the current one, but also open the new one
- fix map / savegame / demo read/write routines so that they work on Big Endian archs like PPC too
<<lessIn Worminator game, you play as The Worminator (or as several other optional characters) and fight your way through many levels of madness and mayhem.
It features nine unique weapons, visible character damage, multiple supported resolutions, full screen scrolling, sound and music, and more.
Original Worminator story...
The year is 2028, 14 years after the start of the deadliest war in the history of worm kind. Much has changed... In the year 2012; a brilliant American scientist discovered how to make W.O.R.M. (Wormborg Operated Remote Missile) Weaponry, and to work them, the "WormBorgs" cyborg fighting machines.
These so called "WormBorgs" were the elite fighting force and the pride of the United Worms of America. Their life-like roles soon became far too life-like. They thought on their own, and acted on their own whims, under their own leader "DirtNet." No one exactly knows who or what "DirtNet" is, but it soon began to take over.
First, it launched the W.O.R.M.s at the Woroviet Union, in the hopes that they would retaliate and initiate a war between the Woroviet Union and the UWA. However, "DirtNet" obviously had a few bugs to work out, and the W.S.S.R was obliterated into millions of radioactive hunks of mud and dirt. Despite the fact that no one liked Wormunism anyway, all of Wormurope retaliated against the UWA.
Soon, the world was turned into a nuclear wasteland. Nuke drops became daily ordeals, and the giant bombs turning whole forests into matchsticks was to be expected. As if the sewers werent loaded with enough mutated alligators as it was, the hunks of radioactive material combined with the primordial soup of the sewers are said to have created blobs of sewage ooze, powerful enough that they fed off the mutated alligators for lunch.
After what was left of Wormurope had realized what tricks had been played on them by "DirtNet," they began to rally and fight back. For 8 years, the WormBorgs dominated the lands, crushing the rebels... until one faithful day, when the now famous rebel hero emerged. It was Wrom Conner.
No longer acting as individual factions, countries or nations, the rebels struck quickly and fiercely under Wroms command, using tactics that even the powerful W-1000s processors could not predict. The tide of the war had turned.
Over the next 5 years, the rebels devastated the WormBorgs. Using guerilla tactics and reprogrammed WormBorgs to fight for them, the rebels were a resourceful army indeed. Now, in desperation, "DirtNet" has just brought its proto-type WormBorg online, equipped with the latest in armor and weaponry, in one last attempt to regain control...
Main features:
- Fast, fluid scrolling
- 12 unique weapons, and many types of ammo
- Lots of gibs and shrapnel (all cartoonish, though)
- Visible character damage (as you get hurt, the Worminator actually becomes bloody)
- Visible weapons (every weapon actually appears differently on the Worminator. Most platform games have a single weapon graphic that shoots every type of projectile)
- Over 12 fully animated enemies
- Comes with over 16 levels, and a level editor is included so you can make your own
- Keycards, doors, special items, switches, lever, extending bridges, floating platforms, and more!
- Earthquakes rip the ground apart, while snow and rain fall around you
- Great MIDI tunes by Garret Thomson (garret_t@sympatico.ca, www.sirsonic.com)
- Many sound effects (All from Internet sites such as Sound America and Meanrabbit. Let me know if there are any copyright problems, and I will deal with them immediately)
- Parallax scrolling, plus four data layers in every map. This makes the engine very flexible
- Game includes a campaign game with special scripted events, as well as an option to load custom maps
- Stereo sound effects (where available)
- Limited skins support; you can play as different characters!
- Built using Allegro + DJGPP. Source code may be made available if the demand is there
- If you wish to use the Worminator engine, contact me and we will discuss it (I would never charge any money for it, so if your interested, drop me an email. You have nothing to loose)
- Totally Freeware!
Enhancements:
- made worminator compile and run on Linux (Unix)
- made worminator yield the cpu when its idle
- save settings in textfile format under $HOME/.worm3.cfg instead of as binary blob in cwd
- save / load game to / from $HOME/.worm3.sav
- load datafile from DATADIR as defined during compilation instead of from cwd
- speedup: dont redraw borders and statuspanel unless nescesarry
- check all file accesses and give an error and continue when possible instead of just segfaulting
- fix a crash when changing audio options after loading a savegame of a custom-level or the tutorial
- fix a crash (unix only?) when changing video options and one similar on exit
- fix crash on exit caused by a few double frees on exit
- dont ask for confirmation on load/play_demo/exit when their is no game in progress
- show a message when trying to save when no game is in progress, instead of just silenty ignoring the request
- when clicking on another submenu when in one not only close the current one, but also open the new one
- fix map / savegame / demo read/write routines so that they work on Big Endian archs like PPC too
Download (0.17MB)
Added: 2006-03-06 License: GPL (GNU General Public License) Price:
1334 downloads
Mnemisis 3.2
Mnemisis project is a tool/tutor for learning a phoneme-based mnemonic. more>>
Mnemisis project is a tool/tutor for learning a phoneme-based mnemonic.
Mnemisis is a tool for learning and using what is called the major system of mnemonic for remembering numbers.
This system involves turning numbers into phonetic sequences and chaining them into words, and vice-versa.
<<lessMnemisis is a tool for learning and using what is called the major system of mnemonic for remembering numbers.
This system involves turning numbers into phonetic sequences and chaining them into words, and vice-versa.
Download (0.24MB)
Added: 2006-10-24 License: GPL (GNU General Public License) Price:
1097 downloads
StreamCruncher 2.1 RC
StreamCruncher is an Event Processor. more>>
StreamCruncher is an Event Processor. The project supports a language based on SQL which allows you to define Event Processing constructs like Sliding Windows, Time Based Windows, Partitions and Aggregates.
Queries can be written using this language, which are used to monitor streams of incoming Events. StreamCruncher is a multi-threaded Kernel that runs on Java.
Ever since RFID became commercially viable and companies started packaging their entire product line as Business Activity Monitoring Stacks, an old idea that has been around for almost a decade is now seeing the light of day. A handful of Startups have begun turning this Idea of Complex Event Processing (CEP) and Event Stream Processing (ESP) into Commercial grade software. Several people have contributed ideas to this field. The most frequently mentioned name would be Prof. Luckhams. Prof. Widoms contribution to the field is also noteworthy.
Those in a hurry can skip to this section.
Now, back to CEP and ESP. An over-simplified definition would probably look like this - Assume that a System produces "Events" that describe the state of that System at those instants. Slicing and Dicing the "live" Stream of Events (in near real-time) can reveal vital information. Since this information is available on the live data and not stale data, it can be used to look for Warning signs, implement JIT materials sourcing, Automated Trading and other highly nimble systems.
Events from multiple sources can be co-related to reveal information about their interactions and dependencies. CEP and ESP are not exactly the same, but well leave that to the Scholarly Papers to disambiguate. All this does not seem new at all to people whove been working on Control Systems. Data Warehouse specialists and Rule Engine experts might start mumbling something about "Old Wine..".
However, only lately are we seeing generic, off-the-shelf Software focusing on CEP and ESP. Each one of those Products or Projects distinguish themselves in Performance (Real-time, Soft Real-time), Ease of Integration (Features, Mild to Steep Learning Curves, Manageability), Speciality (Automated Trading Platforms) or General purpose stacks etc. Or, perhaps all of them, to varying degrees.
For a Program to continually Slice and Dice an Event Stream and thereby, discern/infer something useful about the state of the System before it goes stale, requires a variety of Technologies to converge. Weve been using SQL to handle Transactional Data stored in Databases, Data Warehouses to analyse Terrabytes of Offline data, Rule Engines to infer from a large collection of constantly changing Facts.
ESP and CEP Systems provide building blocks using which Users can build an intelligent System, with active feedback. All CEP and ESP Systems provide a mechanism by which Queries/Conditions/Criteria can be provided that are constantly evaluated against the Event Stream. Some systems provide drag-n-drop GUIs to specify such "Queries", while some have their own proprietary Query syntax. In essence, they provide a Domain Specific Language to encode such Queries/Rules, a facility to pump Events into the System and a way to channel the Output Stream to do something useful.
Enhancements:
- The pre-filter for input event streams now supports , !=, =, *, /, +, -, "in (..)", "not in (..)", "and", and "or".
- The "in" clause can refer to an SQL sub-query.
- Such sub-queries are cached by the kernel to improve performance.
- An additional property, cacherefresh.threads.num, can be configured to specify the number of sub-query cache processing threads to use.
- Two new test cases have been added to test the new features: H2StartupShutdown3Test and ThreeEventOrderTest.
<<lessQueries can be written using this language, which are used to monitor streams of incoming Events. StreamCruncher is a multi-threaded Kernel that runs on Java.
Ever since RFID became commercially viable and companies started packaging their entire product line as Business Activity Monitoring Stacks, an old idea that has been around for almost a decade is now seeing the light of day. A handful of Startups have begun turning this Idea of Complex Event Processing (CEP) and Event Stream Processing (ESP) into Commercial grade software. Several people have contributed ideas to this field. The most frequently mentioned name would be Prof. Luckhams. Prof. Widoms contribution to the field is also noteworthy.
Those in a hurry can skip to this section.
Now, back to CEP and ESP. An over-simplified definition would probably look like this - Assume that a System produces "Events" that describe the state of that System at those instants. Slicing and Dicing the "live" Stream of Events (in near real-time) can reveal vital information. Since this information is available on the live data and not stale data, it can be used to look for Warning signs, implement JIT materials sourcing, Automated Trading and other highly nimble systems.
Events from multiple sources can be co-related to reveal information about their interactions and dependencies. CEP and ESP are not exactly the same, but well leave that to the Scholarly Papers to disambiguate. All this does not seem new at all to people whove been working on Control Systems. Data Warehouse specialists and Rule Engine experts might start mumbling something about "Old Wine..".
However, only lately are we seeing generic, off-the-shelf Software focusing on CEP and ESP. Each one of those Products or Projects distinguish themselves in Performance (Real-time, Soft Real-time), Ease of Integration (Features, Mild to Steep Learning Curves, Manageability), Speciality (Automated Trading Platforms) or General purpose stacks etc. Or, perhaps all of them, to varying degrees.
For a Program to continually Slice and Dice an Event Stream and thereby, discern/infer something useful about the state of the System before it goes stale, requires a variety of Technologies to converge. Weve been using SQL to handle Transactional Data stored in Databases, Data Warehouses to analyse Terrabytes of Offline data, Rule Engines to infer from a large collection of constantly changing Facts.
ESP and CEP Systems provide building blocks using which Users can build an intelligent System, with active feedback. All CEP and ESP Systems provide a mechanism by which Queries/Conditions/Criteria can be provided that are constantly evaluated against the Event Stream. Some systems provide drag-n-drop GUIs to specify such "Queries", while some have their own proprietary Query syntax. In essence, they provide a Domain Specific Language to encode such Queries/Rules, a facility to pump Events into the System and a way to channel the Output Stream to do something useful.
Enhancements:
- The pre-filter for input event streams now supports , !=, =, *, /, +, -, "in (..)", "not in (..)", "and", and "or".
- The "in" clause can refer to an SQL sub-query.
- Such sub-queries are cached by the kernel to improve performance.
- An additional property, cacherefresh.threads.num, can be configured to specify the number of sub-query cache processing threads to use.
- Two new test cases have been added to test the new features: H2StartupShutdown3Test and ThreeEventOrderTest.
Download (3.9MB)
Added: 2007-07-19 License: Freeware Price:
828 downloads
Stippler 1.0
Stippler is software for turning greyscale images into stippled images. more>>
Stippler is software for turning greyscale images into "stippled" images. Stippler project uses a method described in research by Adrian Secord.
Stippler requires X11, OpenGL, and libpgm. Hardware accelerated OpenGL is required for high performance. To build stippler, simply install any needed development packages and type "make".
Several binaries are created, one for each different output format. These include postscript (stippler_ps), "g-code" to control a 3-axis milling machine (stippler), and a format I used to drive a DAC connected to an XY scope (stippler_dac).
Usage:
[environment] stippler pgmfile [scale [dotcount]] > outputfile
environment settings
VARIABLE_SIZE: if set, use variable-size dots
REVERSE_VIDEO: if set, use black dots on a white background
pgmfile:
A greyscale input file in "pgm" format. It generally must be smaller than the screen resolution.
scale:
internally use SCALExSCALE tiles each the size of the input image to make higher dotcount images give better results. If scale is bigger than 16, it is taken to be the dotcount, and scale is chosen to give approximately 500 pixels per output dot.
dotcount:
use this many dots, instead of a dot count that gives approximately 500 pixels per output dot
<<lessStippler requires X11, OpenGL, and libpgm. Hardware accelerated OpenGL is required for high performance. To build stippler, simply install any needed development packages and type "make".
Several binaries are created, one for each different output format. These include postscript (stippler_ps), "g-code" to control a 3-axis milling machine (stippler), and a format I used to drive a DAC connected to an XY scope (stippler_dac).
Usage:
[environment] stippler pgmfile [scale [dotcount]] > outputfile
environment settings
VARIABLE_SIZE: if set, use variable-size dots
REVERSE_VIDEO: if set, use black dots on a white background
pgmfile:
A greyscale input file in "pgm" format. It generally must be smaller than the screen resolution.
scale:
internally use SCALExSCALE tiles each the size of the input image to make higher dotcount images give better results. If scale is bigger than 16, it is taken to be the dotcount, and scale is chosen to give approximately 500 pixels per output dot.
dotcount:
use this many dots, instead of a dot count that gives approximately 500 pixels per output dot
Download (0.008MB)
Added: 2005-11-29 License: GPL (GNU General Public License) Price:
1426 downloads
PyTone 3.0.1
PyTone is a music jukebox written in Python with a curses-based GUI. more>>
PyTone project is a music jukebox written in Python with a curses based GUI. While providing advanced features like crossfading and multiple players, special emphasis is put on ease of use, turning PyTone into an ideal jukebox system for use at parties.
Main features:
concise curses based GUI
simple song selection
- using an arbitrary number of music databases with hierarchical (artist/album/songs, genre/artist/album/songs, decades/artist/albums/songs, or rating/artist/albums/songs) navigation,
- from list of top and last played songs,
- from list of most recently added songs,
- random song list,
- stored playlists, or
- alternatively from file system
editable playlist:
- deletion
- move song up/down
- delete played songs
- shuffle
- repetition
- automatic addition of random songs, when the playlist is empty
- save to and load from .m3u file
pluggable players, currently
- internal mp3/Ogg Vorbis player with crossfading and gap killing and/or
- xmms based external player and/or
- mpg321 or (the non-free) mpg123 based external player
display of information for currently selected song:
- ID3 tag
- length
- times played
- last played
- song rating (1 to 5 stars)
plays currently selected song on second player (if your computer has a second sound card or one card with more than one line out)
search functionality:
- quick search by first letter
- incremental search by regular expression
random song selection taking into account song rating and time at which song was last played
description of important key bindings in status bar and context sensitive help
logging of played songs
execution of arbitrary command when playback of new song starts
basic mixer functionality
customizable key bindings
customizable look
English, French, German, Italian and Polish user interface
external control, e.g. from the shell
plugin system; currently plugins for the AudioScrobbler service and for displaying the title in the terminal window and using xosd are included
<<lessMain features:
concise curses based GUI
simple song selection
- using an arbitrary number of music databases with hierarchical (artist/album/songs, genre/artist/album/songs, decades/artist/albums/songs, or rating/artist/albums/songs) navigation,
- from list of top and last played songs,
- from list of most recently added songs,
- random song list,
- stored playlists, or
- alternatively from file system
editable playlist:
- deletion
- move song up/down
- delete played songs
- shuffle
- repetition
- automatic addition of random songs, when the playlist is empty
- save to and load from .m3u file
pluggable players, currently
- internal mp3/Ogg Vorbis player with crossfading and gap killing and/or
- xmms based external player and/or
- mpg321 or (the non-free) mpg123 based external player
display of information for currently selected song:
- ID3 tag
- length
- times played
- last played
- song rating (1 to 5 stars)
plays currently selected song on second player (if your computer has a second sound card or one card with more than one line out)
search functionality:
- quick search by first letter
- incremental search by regular expression
random song selection taking into account song rating and time at which song was last played
description of important key bindings in status bar and context sensitive help
logging of played songs
execution of arbitrary command when playback of new song starts
basic mixer functionality
customizable key bindings
customizable look
English, French, German, Italian and Polish user interface
external control, e.g. from the shell
plugin system; currently plugins for the AudioScrobbler service and for displaying the title in the terminal window and using xosd are included
Download (0.15MB)
Added: 2007-08-16 License: GPL (GNU General Public License) Price:
805 downloads
B::Lint 1.09
B::Lint module contains Perl lint. more>>
B::Lint module contains Perl lint.
SYNOPSIS
perl -MO=Lint[,OPTIONS] foo.pl
The B::Lint module is equivalent to an extended version of the -w option of perl. It is named after the program lint which carries out a similar process for C programs.
OPTIONS AND LINT CHECKS
Option words are separated by commas (not whitespace) and follow the usual conventions of compiler backend options. Following any options (indicated by a leading -) come lint check arguments. Each such argument (apart from the special all and none options) is a word representing one possible lint check (turning on that check) or is no-foo (turning off that check). Before processing the check arguments, a standard list of checks is turned on. Later options override earlier ones. Available options are:
magic-diamond
Produces a warning whenever the magic readline is used. Internally it uses perls two-argument open which itself treats filenames with special characters specially. This could allow interestingly named files to have unexpected effects when reading.
% touch rm *|
% perl -pe 1
The above creates a file named rm *|. When perl opens it with it actually executes the shell program rm *. This makes dangerous to use carelessly.
context
Produces a warning whenever an array is used in an implicit scalar context. For example, both of the lines
$foo = length(@bar);
$foo = @bar;
will elicit a warning. Using an explicit scalar() silences the warning. For example,
$foo = scalar(@bar);
implicit-read and implicit-write
These options produce a warning whenever an operation implicitly reads or (respectively) writes to one of Perls special variables. For example, implicit-read will warn about these:
/foo/;
and implicit-write will warn about these:
s/foo/bar/;
Both implicit-read and implicit-write warn about this:
for (@a) { ... }
bare-subs
This option warns whenever a bareword is implicitly quoted, but is also the name of a subroutine in the current package. Typical mistakes that it will trap are:
use constant foo => bar;
@a = ( foo => 1 );
$b{foo} = 2;
Neither of these will do what a naive user would expect.
dollar-underscore
This option warns whenever $_ is used either explicitly anywhere or as the implicit argument of a print statement.
private-names
This option warns on each use of any variable, subroutine or method name that lives in a non-current package but begins with an underscore ("_"). Warnings arent issued for the special case of the single character name "_" by itself (e.g. $_ and @_).
undefined-subs
This option warns whenever an undefined subroutine is invoked. This option will only catch explicitly invoked subroutines such as foo() and not indirect invocations such as &$subref() or $obj->meth(). Note that some programs or modules delay definition of subs until runtime by means of the AUTOLOAD mechanism.
regexp-variables
This option warns whenever one of the regexp variables $`, $& or $ is used. Any occurrence of any of these variables in your program can slow your whole program down. See perlre for details.
all
Turn all warnings on.
none
Turn all warnings off.
<<lessSYNOPSIS
perl -MO=Lint[,OPTIONS] foo.pl
The B::Lint module is equivalent to an extended version of the -w option of perl. It is named after the program lint which carries out a similar process for C programs.
OPTIONS AND LINT CHECKS
Option words are separated by commas (not whitespace) and follow the usual conventions of compiler backend options. Following any options (indicated by a leading -) come lint check arguments. Each such argument (apart from the special all and none options) is a word representing one possible lint check (turning on that check) or is no-foo (turning off that check). Before processing the check arguments, a standard list of checks is turned on. Later options override earlier ones. Available options are:
magic-diamond
Produces a warning whenever the magic readline is used. Internally it uses perls two-argument open which itself treats filenames with special characters specially. This could allow interestingly named files to have unexpected effects when reading.
% touch rm *|
% perl -pe 1
The above creates a file named rm *|. When perl opens it with it actually executes the shell program rm *. This makes dangerous to use carelessly.
context
Produces a warning whenever an array is used in an implicit scalar context. For example, both of the lines
$foo = length(@bar);
$foo = @bar;
will elicit a warning. Using an explicit scalar() silences the warning. For example,
$foo = scalar(@bar);
implicit-read and implicit-write
These options produce a warning whenever an operation implicitly reads or (respectively) writes to one of Perls special variables. For example, implicit-read will warn about these:
/foo/;
and implicit-write will warn about these:
s/foo/bar/;
Both implicit-read and implicit-write warn about this:
for (@a) { ... }
bare-subs
This option warns whenever a bareword is implicitly quoted, but is also the name of a subroutine in the current package. Typical mistakes that it will trap are:
use constant foo => bar;
@a = ( foo => 1 );
$b{foo} = 2;
Neither of these will do what a naive user would expect.
dollar-underscore
This option warns whenever $_ is used either explicitly anywhere or as the implicit argument of a print statement.
private-names
This option warns on each use of any variable, subroutine or method name that lives in a non-current package but begins with an underscore ("_"). Warnings arent issued for the special case of the single character name "_" by itself (e.g. $_ and @_).
undefined-subs
This option warns whenever an undefined subroutine is invoked. This option will only catch explicitly invoked subroutines such as foo() and not indirect invocations such as &$subref() or $obj->meth(). Note that some programs or modules delay definition of subs until runtime by means of the AUTOLOAD mechanism.
regexp-variables
This option warns whenever one of the regexp variables $`, $& or $ is used. Any occurrence of any of these variables in your program can slow your whole program down. See perlre for details.
all
Turn all warnings on.
none
Turn all warnings off.
Download (0.017MB)
Added: 2007-06-25 License: Perl Artistic License Price:
852 downloads
Funky 1.2.01
Funky is an embeddable interpreter and programming language. more>>
Funky is an embeddable interpreter and programming language.
When was Fnky created?
The very first version of Funky was created during my daughters nap on a snowy sunday afternoon. It was slightly refined one evening while my daughter and my wife were both sleeping and I was rocking the babys "cozy" with my foot (as I am doing now). The initial programming therefore took about 90 minutes, whereas a bit of fine-tuning and turning the original parser/interpreter into a parser/interpreter with two phases (parsing and interpreting) took another two hours or so.
Why was Funky created?
The original idea wasnt mine: at work, a colleague needed a functional, embeddable programming language and created one from scratch. It took him a few days to do so, but he wrote the parser and the scanner by hand. I heard about his little language and thought it might be a nice idea to have one of those in the free world.
Also, as a personal challenge, I decided I should be able to write one of those in much less time that a few days, but using the right tools. Hence, one sunday afternoon I took my laptop computer and started typing. I decided to use Boost.Spirit to write the parser: I had already read the documentation once while doing some research for the Jail programming language and found it a pretty good framework to build a parser one. 90 minutes later, I had the first working version of a Funky interpreter (but it wasnt embeddable yet and didnt split the parsing and interpreting phases).
So, what exactly is Funky?
As stated, Funky is a tiny, embeddable programming language with almost unlimited extending capabilities. It presents itself as a single class which contains the entire interpreter. Two versions of this class exist: Funky::Funky, which is a floating-point version, and Funky::Groovy, which is an integer version. You can install your own functions in the language as long as your functions take a vector of the built-in type of the interpreter as return an instance of that built-in type (or a vector of those).
Funky is a functional programming language. As such, it treats everything as functions and those functions handle only one type: double in the case of Funky::Funky or int in the case of Funky::Groovy.
Enhancements:
- This release adds support for GCC 4.x by fixing a small error in the declaration of a variable.
- It also comes with more documentation on how to build Funky.
<<lessWhen was Fnky created?
The very first version of Funky was created during my daughters nap on a snowy sunday afternoon. It was slightly refined one evening while my daughter and my wife were both sleeping and I was rocking the babys "cozy" with my foot (as I am doing now). The initial programming therefore took about 90 minutes, whereas a bit of fine-tuning and turning the original parser/interpreter into a parser/interpreter with two phases (parsing and interpreting) took another two hours or so.
Why was Funky created?
The original idea wasnt mine: at work, a colleague needed a functional, embeddable programming language and created one from scratch. It took him a few days to do so, but he wrote the parser and the scanner by hand. I heard about his little language and thought it might be a nice idea to have one of those in the free world.
Also, as a personal challenge, I decided I should be able to write one of those in much less time that a few days, but using the right tools. Hence, one sunday afternoon I took my laptop computer and started typing. I decided to use Boost.Spirit to write the parser: I had already read the documentation once while doing some research for the Jail programming language and found it a pretty good framework to build a parser one. 90 minutes later, I had the first working version of a Funky interpreter (but it wasnt embeddable yet and didnt split the parsing and interpreting phases).
So, what exactly is Funky?
As stated, Funky is a tiny, embeddable programming language with almost unlimited extending capabilities. It presents itself as a single class which contains the entire interpreter. Two versions of this class exist: Funky::Funky, which is a floating-point version, and Funky::Groovy, which is an integer version. You can install your own functions in the language as long as your functions take a vector of the built-in type of the interpreter as return an instance of that built-in type (or a vector of those).
Funky is a functional programming language. As such, it treats everything as functions and those functions handle only one type: double in the case of Funky::Funky or int in the case of Funky::Groovy.
Enhancements:
- This release adds support for GCC 4.x by fixing a small error in the declaration of a variable.
- It also comes with more documentation on how to build Funky.
Download (0.073MB)
Added: 2007-08-01 License: BSD License Price:
814 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 turning 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