round trip part 1
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 12913
The Wonder Shaper 1.1a
The Wonder Shaper is a very special network shaper script with a lot of features. more>>
The Wonder Shaper is a very special network shaper script with a lot of features. Works on Linux 2.4 & higher.
Goals
I attempted to create the holy grail:
* Maintain low latency for interfactive traffic at all times.
This means that downloading or uploading files should not disturb SSH or even telnet. These are the most important things, even 200ms latency is sluggish to work over.
* Allow surfing at reasonable speeds while up or downloading
Even though http is bulk traffic, other traffic should not drown it out too much.
* Make sure uploads dont harm downloads, and the other way around
This is a much observed phenomenon where upstream traffic simply destroys download speed. It turns out that all this is possible, at the cost of a tiny bit of bandwidth. The reason that uploads, downloads and ssh hurt eachother is the presence of large queues in many domestic access devices like cable or DSL modems.
Why it doesnt work well by default
ISPs know that they are benchmarked solely on how fast people can download. Besides available bandwidth, download speed is influenced heavily by packet loss, which seriously hampers TCP/IP performance. Large queues can help prevent packetloss, and speed up downloads. So ISPs configure large queues.
These large queues however damage interactivity. A keystroke must first travel the upstream queue, which may be seconds (!) long and go to your remote host. It is then displayed, which leads to a packet coming back, which must then traverse the downstream queue, located at your ISP, before it appears on your screen.
This HOWTO teaches you how to mangle and process the queue in many ways, but sadly, not all queues are accessible to us. The queue over at the ISP is completely off-limits, whereas the upstream queue probably lives inside your cable modem or DSL device. You may or may not be able to configure it. Most probably not.
So, what next? As we cant control either of those queues, they must be eliminated, and moved to your Linux router. Luckily this is possible.
Limit upload speed somewhat
By limiting our upload speed to slightly less than the truly available rate, no queues are built up in our modem. The queue is now moved to Linux.
Limit download speed
This is slightly trickier as we cant really influence how fast the internet ships us data. We can however drop packets that are coming in too fast, which causes TCP/IP to slow down to just the rate we want. Because we dont want to drop traffic unnecessarily, we configure a burst size we allow at higher speed.
Now, once we have done this, we have eliminated the downstream queue totally (except for short bursts), and gain the ability to manage the upstream queue with all the power Linux offers.
Let interactive traffic skip the queue
What remains to be done is to make sure interactive traffic jumps to the front of the upstream queue. To make sure that uploads dont hurt downloads, we also move ACK packets to the front of the queue. This is what normally causes the huge slowdown observed when generating bulk traffic both ways. The ACKnowledgements for downstream traffic must compete with upstream traffic, and get delayed in the process.
We also move other small packets to the front of the queue - this helps operating systems which do not set TOS bits, like everything from Microsoft.
Allow the user to specify low priority traffic (new in 1.1!)
Sometimes you may notice low priority OUTGOING traffic slowing down important traffic. In that case, the following options may help you:
NOPRIOHOSTSRC
Set this to hosts or netmasks in your network that should have low priority
NOPRIOHOSTDST
Set this to hosts or netmasks on the internet that should have low priority
NOPRIOPORTSRC
Set this to source ports that should have low priority. If you have an unimportant webserver on your traffic, set this to 80
NOPRIOPORTDST
Set this to destination ports that should have low priority.
See the start of wshaper and wshaper.htb
Results
If we do all this we get the following measurements using an excellent ADSL connection from xs4all in the Netherlands:
Baseline latency:
round-trip min/avg/max = 14.4/17.1/21.7 ms
Without traffic conditioner, while downloading:
round-trip min/avg/max = 560.9/573.6/586.4 ms
Without traffic conditioner, while uploading:
round-trip min/avg/max = 2041.4/2332.1/2427.6 ms
With conditioner, during 220kbit/s upload:
round-trip min/avg/max = 15.7/51.8/79.9 ms
With conditioner, during 850kbit/s download:
round-trip min/avg/max = 20.4/46.9/74.0 ms
When uploading, downloads proceed at ~80% of the available speed. Uploads at around 90%. Latency then jumps to 850 ms, still figuring out why.
What you can expect from this script depends a lot on your actual uplink speed. When uploading at full speed, there will always be a single packet ahead of your keystroke. That is the lower limit to the latency you can achieve - divide your MTU by your upstream speed to calculate. Typical values will be somewhat higher than that. Lower your MTU for better effects!
A small table:
Uplink speed | Expected latency due to upload
--------------------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
So to calculate your effective latency, take a baseline measurement (ping on an unloaded link), and look up the number in the table, and add it. That is about the best you can expect. This number comes from a calculation that assumes that your upstream keystroke will have at most half a full sized packet ahead of it.
This boils down to:
mtu * 0.5 * 10
-------------- + baseline_latency
kbit
The factor 10 is not quite correct but works well in practice.
Your kernel
If you run a recent distribution, everything should be ok. You need 2.4 with QoS options turned on.
If you compile your own kernel, it must have some options enabled. Most notably, in the Networking Options menu, QoS and/or Fair Queueing, turn at least CBQ, PRIO, SFQ, Ingress, Traffic Policing, QoS support, Rate Estimator, QoS classifier, U32 classifier, fwmark classifier.
In practice, I (and most distributions) just turn on everything.
The scripts
The script comes in two versions, one which works on standard kernels and is implemented using CBQ. The other one uses the excellent HTB qdisc which is not in the default kernel. The CBQ version is more tested than the HTB one!
See wshaper and wshaper.htb.
Tuning
These scripts need to know the real rate of your ISP connection. This is hard to determine upfront as different ISPs use different kinds of bits it appears. People report success using the following technique:
Estimate both your upstream and downstream at half the rate your ISP specifies. Now verify if the script is functioning - check interactivity while uploading and while downloading. This should deliver the latency as calculated above. If not, check if the script executed without errors.
Now slowly increase the upstream & downstream numbers in the script until the latency comes back. This way you can find optimum values for your connection. If you are happy, please report to me so I can make a list of numbers that work well. Please let me know which ISP you use and the name of your subscription, and its reputed specifications, so I can list you here and save others the trouble.
Installation
If you dial in, you can copy the script to /etc/ppp/ip-up.d and it will be run at each connect.
If you want to remove the shaper from an interface, run wshaper stop. To see status information, run wshaper status.
KNOWN PROBLEMS
If you get errors, add an -x to the first line, as follows:
#!/bin/bash -x
And retry. This will show you which line gives an error. Before contacting me, make sure that you are running a recent version of iproute!
Recent versions can be found at your Linux distributor, or if you prefer compiling, here:
ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz
<<lessGoals
I attempted to create the holy grail:
* Maintain low latency for interfactive traffic at all times.
This means that downloading or uploading files should not disturb SSH or even telnet. These are the most important things, even 200ms latency is sluggish to work over.
* Allow surfing at reasonable speeds while up or downloading
Even though http is bulk traffic, other traffic should not drown it out too much.
* Make sure uploads dont harm downloads, and the other way around
This is a much observed phenomenon where upstream traffic simply destroys download speed. It turns out that all this is possible, at the cost of a tiny bit of bandwidth. The reason that uploads, downloads and ssh hurt eachother is the presence of large queues in many domestic access devices like cable or DSL modems.
Why it doesnt work well by default
ISPs know that they are benchmarked solely on how fast people can download. Besides available bandwidth, download speed is influenced heavily by packet loss, which seriously hampers TCP/IP performance. Large queues can help prevent packetloss, and speed up downloads. So ISPs configure large queues.
These large queues however damage interactivity. A keystroke must first travel the upstream queue, which may be seconds (!) long and go to your remote host. It is then displayed, which leads to a packet coming back, which must then traverse the downstream queue, located at your ISP, before it appears on your screen.
This HOWTO teaches you how to mangle and process the queue in many ways, but sadly, not all queues are accessible to us. The queue over at the ISP is completely off-limits, whereas the upstream queue probably lives inside your cable modem or DSL device. You may or may not be able to configure it. Most probably not.
So, what next? As we cant control either of those queues, they must be eliminated, and moved to your Linux router. Luckily this is possible.
Limit upload speed somewhat
By limiting our upload speed to slightly less than the truly available rate, no queues are built up in our modem. The queue is now moved to Linux.
Limit download speed
This is slightly trickier as we cant really influence how fast the internet ships us data. We can however drop packets that are coming in too fast, which causes TCP/IP to slow down to just the rate we want. Because we dont want to drop traffic unnecessarily, we configure a burst size we allow at higher speed.
Now, once we have done this, we have eliminated the downstream queue totally (except for short bursts), and gain the ability to manage the upstream queue with all the power Linux offers.
Let interactive traffic skip the queue
What remains to be done is to make sure interactive traffic jumps to the front of the upstream queue. To make sure that uploads dont hurt downloads, we also move ACK packets to the front of the queue. This is what normally causes the huge slowdown observed when generating bulk traffic both ways. The ACKnowledgements for downstream traffic must compete with upstream traffic, and get delayed in the process.
We also move other small packets to the front of the queue - this helps operating systems which do not set TOS bits, like everything from Microsoft.
Allow the user to specify low priority traffic (new in 1.1!)
Sometimes you may notice low priority OUTGOING traffic slowing down important traffic. In that case, the following options may help you:
NOPRIOHOSTSRC
Set this to hosts or netmasks in your network that should have low priority
NOPRIOHOSTDST
Set this to hosts or netmasks on the internet that should have low priority
NOPRIOPORTSRC
Set this to source ports that should have low priority. If you have an unimportant webserver on your traffic, set this to 80
NOPRIOPORTDST
Set this to destination ports that should have low priority.
See the start of wshaper and wshaper.htb
Results
If we do all this we get the following measurements using an excellent ADSL connection from xs4all in the Netherlands:
Baseline latency:
round-trip min/avg/max = 14.4/17.1/21.7 ms
Without traffic conditioner, while downloading:
round-trip min/avg/max = 560.9/573.6/586.4 ms
Without traffic conditioner, while uploading:
round-trip min/avg/max = 2041.4/2332.1/2427.6 ms
With conditioner, during 220kbit/s upload:
round-trip min/avg/max = 15.7/51.8/79.9 ms
With conditioner, during 850kbit/s download:
round-trip min/avg/max = 20.4/46.9/74.0 ms
When uploading, downloads proceed at ~80% of the available speed. Uploads at around 90%. Latency then jumps to 850 ms, still figuring out why.
What you can expect from this script depends a lot on your actual uplink speed. When uploading at full speed, there will always be a single packet ahead of your keystroke. That is the lower limit to the latency you can achieve - divide your MTU by your upstream speed to calculate. Typical values will be somewhat higher than that. Lower your MTU for better effects!
A small table:
Uplink speed | Expected latency due to upload
--------------------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
So to calculate your effective latency, take a baseline measurement (ping on an unloaded link), and look up the number in the table, and add it. That is about the best you can expect. This number comes from a calculation that assumes that your upstream keystroke will have at most half a full sized packet ahead of it.
This boils down to:
mtu * 0.5 * 10
-------------- + baseline_latency
kbit
The factor 10 is not quite correct but works well in practice.
Your kernel
If you run a recent distribution, everything should be ok. You need 2.4 with QoS options turned on.
If you compile your own kernel, it must have some options enabled. Most notably, in the Networking Options menu, QoS and/or Fair Queueing, turn at least CBQ, PRIO, SFQ, Ingress, Traffic Policing, QoS support, Rate Estimator, QoS classifier, U32 classifier, fwmark classifier.
In practice, I (and most distributions) just turn on everything.
The scripts
The script comes in two versions, one which works on standard kernels and is implemented using CBQ. The other one uses the excellent HTB qdisc which is not in the default kernel. The CBQ version is more tested than the HTB one!
See wshaper and wshaper.htb.
Tuning
These scripts need to know the real rate of your ISP connection. This is hard to determine upfront as different ISPs use different kinds of bits it appears. People report success using the following technique:
Estimate both your upstream and downstream at half the rate your ISP specifies. Now verify if the script is functioning - check interactivity while uploading and while downloading. This should deliver the latency as calculated above. If not, check if the script executed without errors.
Now slowly increase the upstream & downstream numbers in the script until the latency comes back. This way you can find optimum values for your connection. If you are happy, please report to me so I can make a list of numbers that work well. Please let me know which ISP you use and the name of your subscription, and its reputed specifications, so I can list you here and save others the trouble.
Installation
If you dial in, you can copy the script to /etc/ppp/ip-up.d and it will be run at each connect.
If you want to remove the shaper from an interface, run wshaper stop. To see status information, run wshaper status.
KNOWN PROBLEMS
If you get errors, add an -x to the first line, as follows:
#!/bin/bash -x
And retry. This will show you which line gives an error. Before contacting me, make sure that you are running a recent version of iproute!
Recent versions can be found at your Linux distributor, or if you prefer compiling, here:
ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz
Download (MB)
Added: 2007-02-13 License: GPL (GNU General Public License) Price:
994 downloads
Trip Tracker 0.8.1
Trip Tracker is a position tracking client-server system. more>>
Trip Tracker is a position tracking client-server system. Trip Tracker is designed to assist people in setting up a real-time tracking environment with either a private or public tracking server.
The Trip Tracker GPS client sends coordinates to the tracking server to update its position. In the event that the GPS client loses its Internet connection, it can send all collected coordinates to the tracking server as soon as its back online.
The tracking server saves all the coordinates and can forward them to listening map clients.
Version restrictions:
- The map client can only display a map of Norway, as the WMS server is hardcoded in the server-side PHP script "mapservice.php". This may change in the future. If you know any good WMS servers we might add it to the server-side script, but you still need to add the proper WMS layers in the source code to make it work.
- The GPS client version 0.8 does not set up the Java Communications library properly so it most likely wont find your GPS receiver. We hope to address this issue in the next release quite soon.
- And more...
<<lessThe Trip Tracker GPS client sends coordinates to the tracking server to update its position. In the event that the GPS client loses its Internet connection, it can send all collected coordinates to the tracking server as soon as its back online.
The tracking server saves all the coordinates and can forward them to listening map clients.
Version restrictions:
- The map client can only display a map of Norway, as the WMS server is hardcoded in the server-side PHP script "mapservice.php". This may change in the future. If you know any good WMS servers we might add it to the server-side script, but you still need to add the proper WMS layers in the source code to make it work.
- The GPS client version 0.8 does not set up the Java Communications library properly so it most likely wont find your GPS receiver. We hope to address this issue in the next release quite soon.
- And more...
Download (0.54MB)
Added: 2006-06-06 License: LGPL (GNU Lesser General Public License) Price:
1240 downloads
Command line Calculator 1.01
Command Line calculator CLC is the calculator that can calculate direct at the linux console. more>>
Command Line calculator "CLC" is the calculator that can calculate direct at the Linux console.
Extract the CLCC file to /usr/bin you might need to login as root or equvalent account, to be able to access it whenever you need it.
Then just write CLCC 67+89 and the answer will be presented to you directly.
CLCC calculates from left to right with no exceptions. CLC also have some extra parameters that is sent to CLC using backslash parameters.
CLCC r2 10/3 this will round the result to 2 decimals you can use 1 to 9 if you want to round the sum of.
the r parameter can also be combined with the other parameters but it must be added first like this
CLCC r3c 10/3 - to get 10 diveded with 3 rounded down to 3 decimals.
CLCC is tested with Ubuntu 6.10 and Puppy OS 2.13 but should work with any Linux version in console mode.
The program is developed using Hotbasic for Linux and is Freeware, hope you find it useful, send and email if you have any questions.
Hotbasic is a basic language that compiles into assembler direct, no interpeter that slows down the code, just pure assembler.
So if you want assembler in Linux but doesnt want to code in nasm, HotBasic is the compiler for you.
<<lessExtract the CLCC file to /usr/bin you might need to login as root or equvalent account, to be able to access it whenever you need it.
Then just write CLCC 67+89 and the answer will be presented to you directly.
CLCC calculates from left to right with no exceptions. CLC also have some extra parameters that is sent to CLC using backslash parameters.
CLCC r2 10/3 this will round the result to 2 decimals you can use 1 to 9 if you want to round the sum of.
the r parameter can also be combined with the other parameters but it must be added first like this
CLCC r3c 10/3 - to get 10 diveded with 3 rounded down to 3 decimals.
CLCC is tested with Ubuntu 6.10 and Puppy OS 2.13 but should work with any Linux version in console mode.
The program is developed using Hotbasic for Linux and is Freeware, hope you find it useful, send and email if you have any questions.
Hotbasic is a basic language that compiles into assembler direct, no interpeter that slows down the code, just pure assembler.
So if you want assembler in Linux but doesnt want to code in nasm, HotBasic is the compiler for you.
Download (0.006MB)
Added: 2007-02-16 License: Freeware Price:
985 downloads
Stair Dismount - Porrasturvat 1.0.3
Stair Dismount - Porrasturvat is a stair stunt game. more>>
Stair Dismount - Porrasturvat is a stair stunt game.
The legendary superhero Spector has found, to his shock, that he cannot write off all the damage he has caused to the city out of his taxes unless he proves that he has sustained significant damage in the process himself! Now its up to you to help him with this little detail.
Usage
1. Select the body part which you wish to push, by clicking on the damage diagram on the bottom left side of the screen.
2. Depress left mouse button and drag sideways and up and down to select the angle of the push.
3. Pay close attention to the pulsing power bar, and click on dismount when it shows the force that you wish to use for the push.
Keys
Alt-Enter Switch between window and fullscreen
Space Dismount / Reset
Q Select previous body part
W Select next body part
R Replay (when dismount is finished)
P Pause
Ctrl-P Step the time a little bit forward when paused
C Next camera viewpoint
E Reset pitch and heading
S Turn score view on/off
M Manual camera (hold the key)
Ctrl-F Enable/Disable fog (disabled by default, see notes)
Ctrl-M Turn music on/off
Ctrl-S Turn sound effects on/off
0-9 Hotkeys for the camera viewpoints
Arrow keys Finetune heading & pitch (see notes)
Escape Quit the game
Notes
- Hold shift for even finer grain when finetuning heading & pitch with arrow keys. Hold ctrl to adjust heading or pitch more at a time.
- Manual camera controls:
Drag with left button down: Change camera direction
Drag with right button down: Change camera position (x & y)
Drag with both buttons down: Change camera height (z)
- Fog causes problems on some graphics cards so its disabled by default.
- All shown values are rounded from the exact value.
<<lessThe legendary superhero Spector has found, to his shock, that he cannot write off all the damage he has caused to the city out of his taxes unless he proves that he has sustained significant damage in the process himself! Now its up to you to help him with this little detail.
Usage
1. Select the body part which you wish to push, by clicking on the damage diagram on the bottom left side of the screen.
2. Depress left mouse button and drag sideways and up and down to select the angle of the push.
3. Pay close attention to the pulsing power bar, and click on dismount when it shows the force that you wish to use for the push.
Keys
Alt-Enter Switch between window and fullscreen
Space Dismount / Reset
Q Select previous body part
W Select next body part
R Replay (when dismount is finished)
P Pause
Ctrl-P Step the time a little bit forward when paused
C Next camera viewpoint
E Reset pitch and heading
S Turn score view on/off
M Manual camera (hold the key)
Ctrl-F Enable/Disable fog (disabled by default, see notes)
Ctrl-M Turn music on/off
Ctrl-S Turn sound effects on/off
0-9 Hotkeys for the camera viewpoints
Arrow keys Finetune heading & pitch (see notes)
Escape Quit the game
Notes
- Hold shift for even finer grain when finetuning heading & pitch with arrow keys. Hold ctrl to adjust heading or pitch more at a time.
- Manual camera controls:
Drag with left button down: Change camera direction
Drag with right button down: Change camera position (x & y)
Drag with both buttons down: Change camera height (z)
- Fog causes problems on some graphics cards so its disabled by default.
- All shown values are rounded from the exact value.
Download (1.9MB)
Added: 2005-12-21 License: Freeware Price:
1412 downloads
Trip on the Funny Boat 1.4
Trip on the Funny Boat is a side scrolling shooter game starring a steamboat on the sea. more>>
Trip on the Funny Boat is a side scrolling shooter game starring a steamboat on the sea.
Trip on the Funny Boat is side scrolling arcade shooter game on a steamboat equipped with a cannon and the ability to jump. The player will need to take advantage of waves to defeat the enemies and dodge hazards.
This game was made for the second PyWeek competition during the week from 25.3.2006 to 2.4.2006.
<<lessTrip on the Funny Boat is side scrolling arcade shooter game on a steamboat equipped with a cannon and the ability to jump. The player will need to take advantage of waves to defeat the enemies and dodge hazards.
This game was made for the second PyWeek competition during the week from 25.3.2006 to 2.4.2006.
Download (3.8MB)
Added: 2007-03-14 License: MIT/X Consortium License Price:
959 downloads
Kexi Report Part 0.0.4
Kexi Report Part is a reporting component for Kexi 1.6 based on OpenRPT 1.2. more>>
Kexi Report Part is a reporting component for Kexi 1.6 based on OpenRPT 1.2.
Main features:
- A report viewer for Kexi
- An external report designer (KexiReportWriter) based on the OpenRPT writer program
Known Working Features
- Page Header
- Page Footer
- Report Header
- Report Footer
- Detail section
- Labels
- Lines
- Fields
- Page Browser
How To Create Report
1. Install the component following the instructions in INSTALL
2. Run KexiReportWriter to start designing a report
3. Select Database->Connect to DB
4. Browse to an existing Kexi Database and open it
5. Create a new report (File->New)
6. Assign a data source to the report (Document->Properties)
7. Create the report using labels/fields/lines
8. Assign columns to the field objects (Double click for properties)
9. Save the report. (Database->Save to DB)
10. Load the database in Kexi and double click the report to view it
Enhancements:
- Removed requirement to have kexi source available to install the plugin.Done this by including the needed kexi headers in the package. Only downside is that kexi 1.1.3 (from koffice 1.6.3) is required.
<<lessMain features:
- A report viewer for Kexi
- An external report designer (KexiReportWriter) based on the OpenRPT writer program
Known Working Features
- Page Header
- Page Footer
- Report Header
- Report Footer
- Detail section
- Labels
- Lines
- Fields
- Page Browser
How To Create Report
1. Install the component following the instructions in INSTALL
2. Run KexiReportWriter to start designing a report
3. Select Database->Connect to DB
4. Browse to an existing Kexi Database and open it
5. Create a new report (File->New)
6. Assign a data source to the report (Document->Properties)
7. Create the report using labels/fields/lines
8. Assign columns to the field objects (Double click for properties)
9. Save the report. (Database->Save to DB)
10. Load the database in Kexi and double click the report to view it
Enhancements:
- Removed requirement to have kexi source available to install the plugin.Done this by including the needed kexi headers in the package. Only downside is that kexi 1.1.3 (from koffice 1.6.3) is required.
Download (1.7MB)
Added: 2007-06-17 License: GPL (GNU General Public License) Price:
525 downloads
Label Templates 1.0
Label Templates are Free Opendocument Format Label Templates in over 50 sizes. more>>
Label Templates are free Opendocument Format label templates for Openoffice.org, KOffice or any other Office suite ODF ready for making labels.
Collection includes CD, DVD, address, mailing, round, media label templates, Avery sizes and more. US Letter size and 14 size paper formats available.
Setup time is quick with these templates and printing labels from these templates is easy.
<<lessCollection includes CD, DVD, address, mailing, round, media label templates, Avery sizes and more. US Letter size and 14 size paper formats available.
Setup time is quick with these templates and printing labels from these templates is easy.
Download (0.50MB)
Added: 2006-10-23 License: GPL (GNU General Public License) Price:
1116 downloads
Jonah 0.1
Jonah provides a RSS Headline parser. more>>
Jonah provides a RSS Headline parser.
Jonah is a two-part system for displaying headlines on your site. The backend fetches a list of My.Netscape or My.Userland style channel files, caches them locally, and generates a local html representation for each.
The frontend provides an interface for viewing the generated headlines.
<<lessJonah is a two-part system for displaying headlines on your site. The backend fetches a list of My.Netscape or My.Userland style channel files, caches them locally, and generates a local html representation for each.
The frontend provides an interface for viewing the generated headlines.
Download (MB)
Added: 2007-04-11 License: GPL (GNU General Public License) Price:
928 downloads
List::Part 0.03
List::Part is a Perl module that allows you to partition one array into several. more>>
List::Part is a Perl module that allows you to partition one array into several.
SYNOPSIS
use List::Part;
($good, $bad)=part { !/substring/ } @array; #store arrayrefs into $good and $bad
(*good, *bad)=part { !/substring/ } @array; #store into @good and @bad
ABSTRACT
List::Part implements the part function, allowing one array to be "partitioned" into several based on the results of a code reference.
There are many applications in which the items of a list need to be categorized. For example, lets say you want to categorize lines in a log file:
my($success, $failure)=part { /^ERR/ } ;
Or, suppose you have a list of employees, and you need to determine their fate:
my($lay_off, $give_raise, $keep)=part {
$_->is_talented ? 0
: $_->is_executive ? 1
: 2
} @employees;
Actually, the second one is better suited to parts alternate form, parta:
my($lay_off, $give_raise, $keep)=parta
[ sub { $_->talented }, sub { $_->is_executive }, qr// ] =>
@employees;
Or maybe you just want yet another way to write the traditional Perl signoff:
perl -MList::Part -e"print map{@$_}part{$i++%5}split,JAercunrlkso ettPHr hea,"
List::Part can help you do those sorts of things.
<<lessSYNOPSIS
use List::Part;
($good, $bad)=part { !/substring/ } @array; #store arrayrefs into $good and $bad
(*good, *bad)=part { !/substring/ } @array; #store into @good and @bad
ABSTRACT
List::Part implements the part function, allowing one array to be "partitioned" into several based on the results of a code reference.
There are many applications in which the items of a list need to be categorized. For example, lets say you want to categorize lines in a log file:
my($success, $failure)=part { /^ERR/ } ;
Or, suppose you have a list of employees, and you need to determine their fate:
my($lay_off, $give_raise, $keep)=part {
$_->is_talented ? 0
: $_->is_executive ? 1
: 2
} @employees;
Actually, the second one is better suited to parts alternate form, parta:
my($lay_off, $give_raise, $keep)=parta
[ sub { $_->talented }, sub { $_->is_executive }, qr// ] =>
@employees;
Or maybe you just want yet another way to write the traditional Perl signoff:
perl -MList::Part -e"print map{@$_}part{$i++%5}split,JAercunrlkso ettPHr hea,"
List::Part can help you do those sorts of things.
Download (0.004MB)
Added: 2007-05-18 License: Perl Artistic License Price:
889 downloads
UT2004: SAS 3.1
UT2004: SAS is an UT2004 Mod that focuses on the three main SAS units around the world. more>>
UT2004: SAS is an UT2004 Mod that focuses on the three main SAS units around the world. SAS focuses on the three main SAS units around the world, the British SAS, the Australian SASR and the New Zealand NZSAS who all perform counter-terrorism, operating deep behind enemy lines, gathering intelligence and other duties in various countries.
Their main advesary is OpFor that stands for Opposing Forces who are a collection of the enemies the SAS have faced in past and present times. Their ranks are comprised of regular military, guerilla, terrorist and para-military groups.
Players can choose their in-game player model from a variety of uniforms based on its real world counterpart. From the environment based camouflage patterns of desert, woodland, and jungle to counter-terrorism kits players will have a wide variety of choices. Certain player models feature unique attributes such as body armor, anti-flash hoods and camouflage.
Weapon selection in SAS is done through a loadout system where you can select a primary weapon where your choices are a submachine gun, assault rifle, shotgun, sniper rifle or light machine gun. Secondary weapons include pistols while other parts of the loadout allow you to chose three different grenade types and a knife. Weapons in SAS can kill very easily, some with just a single three round burst.
<<lessTheir main advesary is OpFor that stands for Opposing Forces who are a collection of the enemies the SAS have faced in past and present times. Their ranks are comprised of regular military, guerilla, terrorist and para-military groups.
Players can choose their in-game player model from a variety of uniforms based on its real world counterpart. From the environment based camouflage patterns of desert, woodland, and jungle to counter-terrorism kits players will have a wide variety of choices. Certain player models feature unique attributes such as body armor, anti-flash hoods and camouflage.
Weapon selection in SAS is done through a loadout system where you can select a primary weapon where your choices are a submachine gun, assault rifle, shotgun, sniper rifle or light machine gun. Secondary weapons include pistols while other parts of the loadout allow you to chose three different grenade types and a knife. Weapons in SAS can kill very easily, some with just a single three round burst.
Download (MB)
Added: 2006-05-19 License: Freeware Price:
1259 downloads
GridMPI 1.1
GridMPI is a new open-source free-software implementation of the standard MPI library. more>>
GridMPI is a new open-source free-software implementation of the standard MPI (Message Passing Interface) library designed for the Grid. GridMPI project enables unmodified applications to run on cluster computers distributed across the Grid environment.
GridMPI team found that it is feasible to connect cluster computers and to run ordinary scientific applications in distance upto 500 miles. Simple experiment has shown that most MPI benchmarks scale fine upto 20 millisecond round-trip latency which corresponds to about 500 miles in distance, when the clusters are connected by fast 1 to 10 Gbps networks. 500 miles covers the major cities between Tokyo--Osaka in Japan.
Thus, applications which are too large to run on a local cluster should run on multiple clusters in the Grid environment with acceptable performance. However, it is only feasible when using an efficient MPI implementation [1]. Existing implementations are not efficient enough mainly because of the two reasons: their focus on security features and TCP performance problems.
GridMPI skips security layers assuming dedicated secure links. The institutes housing large clusters tend to have their own networks to connect to other institutes in most cases. GridMPI so focuses on the performance on TCP. Since existing implementations are in most cases designed for MPP machines and recently clusters with special hardware, their performance on TCP with Ethernet is not optimal.
Also TCP performance itself is not optimal for the work load of the MPI traffic. In addition, support for heterogeneous combinations of computers of the existing MPI implementations is not satisfactory. Thus, GridMPI is designed and implemented from the scratch. GridMPI is carefully coded and tested with heterogeneity in mind.
Main features:
- Full conformance to the standard: GridMPI passes 100% of the functional tests of the large test suites from ANL and Intel (MPI-1.2 level).
- Full heterogeneity support: GridMPI is fully tested with combinations of processors of 32bit/64bit and big/little-endian.
- Primary support of TCP/IP and sockets: GridMPI is written from scratch and it is new and clean. It is efficient with sockets, and thus suitable for the Grid as well as ordinary Ethernet-based clusters.
- Cooperation with Grid job submission: GridMPI can be used with Globus, Unicore, tool from NAREGI project, etc.
- Checkpointing support: GridMPI supports checkpointing on Linux/IA32 platforms to restart long-running applications from failure.
- Vendor MPI support: GridMPI supports IBM-MPI, Fujitsu-Solaris-MPI, Intel-MPI, and any MPICH-based MPI for clusters with special communication hardware.
Enhancements:
- Minor bugfixes were made.
<<lessGridMPI team found that it is feasible to connect cluster computers and to run ordinary scientific applications in distance upto 500 miles. Simple experiment has shown that most MPI benchmarks scale fine upto 20 millisecond round-trip latency which corresponds to about 500 miles in distance, when the clusters are connected by fast 1 to 10 Gbps networks. 500 miles covers the major cities between Tokyo--Osaka in Japan.
Thus, applications which are too large to run on a local cluster should run on multiple clusters in the Grid environment with acceptable performance. However, it is only feasible when using an efficient MPI implementation [1]. Existing implementations are not efficient enough mainly because of the two reasons: their focus on security features and TCP performance problems.
GridMPI skips security layers assuming dedicated secure links. The institutes housing large clusters tend to have their own networks to connect to other institutes in most cases. GridMPI so focuses on the performance on TCP. Since existing implementations are in most cases designed for MPP machines and recently clusters with special hardware, their performance on TCP with Ethernet is not optimal.
Also TCP performance itself is not optimal for the work load of the MPI traffic. In addition, support for heterogeneous combinations of computers of the existing MPI implementations is not satisfactory. Thus, GridMPI is designed and implemented from the scratch. GridMPI is carefully coded and tested with heterogeneity in mind.
Main features:
- Full conformance to the standard: GridMPI passes 100% of the functional tests of the large test suites from ANL and Intel (MPI-1.2 level).
- Full heterogeneity support: GridMPI is fully tested with combinations of processors of 32bit/64bit and big/little-endian.
- Primary support of TCP/IP and sockets: GridMPI is written from scratch and it is new and clean. It is efficient with sockets, and thus suitable for the Grid as well as ordinary Ethernet-based clusters.
- Cooperation with Grid job submission: GridMPI can be used with Globus, Unicore, tool from NAREGI project, etc.
- Checkpointing support: GridMPI supports checkpointing on Linux/IA32 platforms to restart long-running applications from failure.
- Vendor MPI support: GridMPI supports IBM-MPI, Fujitsu-Solaris-MPI, Intel-MPI, and any MPICH-based MPI for clusters with special communication hardware.
Enhancements:
- Minor bugfixes were made.
Download (0.73MB)
Added: 2006-06-13 License: The Apache License Price:
1228 downloads
TRIP 0.98.84
TRIP is a general computer algebra system dedicated to celestial mechanics. more>>
TRIP is a general computer algebra system dedicated to celestial mechanics. TRIP includes a numerical kernel and has interfaces to gnuplot and xmgrace.
Computations can be performed with double, quadruple, or multi-precision. Users can dynamically load external libraries written in C, C++, or Fortran.
Enhancements:
- Several bugs in the frequency analysis functions were fixed.
- The screen refresh on the Windows graphical user interface was improved.
- A problem in the communication with the plotting tool grace was fixed.
<<lessComputations can be performed with double, quadruple, or multi-precision. Users can dynamically load external libraries written in C, C++, or Fortran.
Enhancements:
- Several bugs in the frequency analysis functions were fixed.
- The screen refresh on the Windows graphical user interface was improved.
- A problem in the communication with the plotting tool grace was fixed.
Download (2.7MB)
Added: 2007-02-08 License: Free To Use But Restricted Price:
991 downloads
Livestat 1.2
Livestat project is a statistics management system for academic competition tournaments. more>>
Livestat project is a statistics management system for academic competition tournaments.
Livestat is a Perl-based statistics management system designed for academic competition tournaments, a.k.a "College Bowl" or "quiz bowl" events.
Livestat is used to automate the processing of statistics from individual matches, and to quickly publish statistics on teams and players to the Web.
Enhancements:
- Now sorts teams by name when printing list in game.pl.
- New files common.head and common.foot store the top and bottom of all HTML pages to be generated.
- No longer prints "N/A: " in round views when no player has a positive score.
- Restructured head2head hash in standings.pl; now has fields for wins, losses, ties, points-for, and points-against.
- Added style number in tables -- useful for right-aligning numeric fields
<<lessLivestat is a Perl-based statistics management system designed for academic competition tournaments, a.k.a "College Bowl" or "quiz bowl" events.
Livestat is used to automate the processing of statistics from individual matches, and to quickly publish statistics on teams and players to the Web.
Enhancements:
- Now sorts teams by name when printing list in game.pl.
- New files common.head and common.foot store the top and bottom of all HTML pages to be generated.
- No longer prints "N/A: " in round views when no player has a positive score.
- Restructured head2head hash in standings.pl; now has fields for wins, losses, ties, points-for, and points-against.
- Added style number in tables -- useful for right-aligning numeric fields
Download (MB)
Added: 2006-10-27 License: GPL (GNU General Public License) Price:
1092 downloads
JTourney 1.0
JTourney is a Java based tool to support tournament directors conducting small to medium scale round based tournaments. more>>
JTourney is a Java based tool to support tournament directors conducting small to medium scale round based tournaments for multiplayer games.
JTourney tries to encaspulate over 10 years of experience with various tournament formats for different games. Those tournaments were conducted either manually or with the help (of many kind people and) a predecessor programm, which finally became too old and too small.
The need for JTourney arose since the tournaments conducted were rather flexibile: Players could hop on and hop off between rounds, the games played might allow variable number of players. Beside this flexibility JTourney could of course be used to support more rigid tournament formats, but this is not its focus.
Main features:
- Keeping player lists.
- Playcing players on tables for next round by variuos strategies.
- Generate score sheets for tables.
- Keeping track of game scores
- Calculating player scores, tiebreakers and rankings
How it works?
JTourney is a very simple design. It merely parses text files into its memory and composes new ones on design. While parsing its internal datafiles it also feeds this internal information to the RenderMode, therefore it provides you with more beautiful information than just the raw internal text files.
Note the system never stores things like standings or total scores of players internally. It turned out, that parsing input is very fast and never is a real problem for (say) 100 participants and 12 rounds (this is not a limit, it can most likely handle much more participants and more rounds) on a recent PC.
While this architecture is from the computer stone age it is flexible and powerful. Maybe a bit volatile, but after all it is entirely appropriate to put whatever kind of GUI on top if necessary!
<<lessJTourney tries to encaspulate over 10 years of experience with various tournament formats for different games. Those tournaments were conducted either manually or with the help (of many kind people and) a predecessor programm, which finally became too old and too small.
The need for JTourney arose since the tournaments conducted were rather flexibile: Players could hop on and hop off between rounds, the games played might allow variable number of players. Beside this flexibility JTourney could of course be used to support more rigid tournament formats, but this is not its focus.
Main features:
- Keeping player lists.
- Playcing players on tables for next round by variuos strategies.
- Generate score sheets for tables.
- Keeping track of game scores
- Calculating player scores, tiebreakers and rankings
How it works?
JTourney is a very simple design. It merely parses text files into its memory and composes new ones on design. While parsing its internal datafiles it also feeds this internal information to the RenderMode, therefore it provides you with more beautiful information than just the raw internal text files.
Note the system never stores things like standings or total scores of players internally. It turned out, that parsing input is very fast and never is a real problem for (say) 100 participants and 12 rounds (this is not a limit, it can most likely handle much more participants and more rounds) on a recent PC.
While this architecture is from the computer stone age it is flexible and powerful. Maybe a bit volatile, but after all it is entirely appropriate to put whatever kind of GUI on top if necessary!
Download (1.8MB)
Added: 2006-03-23 License: LGPL (GNU Lesser General Public License) Price:
1310 downloads
DataGridField 1.5.0
DataGridField is a product which consists of a table input component for Plone. more>>
DataGridField is a product which consists of a table input component for Plone.
It uses Javascript to make entering tabular data more user friendly process - there are no round trip HTTP requests to the server when inserting or deleting rows.
Main features:
- Any number of columns set by a developer
- Any number of rows filled by a user
- Insert and deleting rows without submitting a form
- Many different column types
<<lessIt uses Javascript to make entering tabular data more user friendly process - there are no round trip HTTP requests to the server when inserting or deleting rows.
Main features:
- Any number of columns set by a developer
- Any number of rows filled by a user
- Insert and deleting rows without submitting a form
- Many different column types
Download (0.11MB)
Added: 2007-03-28 License: LGPL (GNU Lesser General Public License) Price:
940 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 round trip part 1 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