pruning
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 21
triggers 0.41
trigger is a lightweight, asynchronous notification mechanism to set off events in and across systems. more>>
trigger is a lightweight, asynchronous notification mechanism to set off events in and across systems. The poor mans daily snapshot, glastree builds live backup trees, with branches for each day. Users directly browse the past to recover older documents or retrieve lost files. Hard links serve to compress out unchanged files, while modified ones are copied verbatim. A prune utility effects a constant, sliding window.
<<less Download (0.014MB)
Added: 2006-07-13 License: GPL (GNU General Public License) Price:
1198 downloads
Apparix 07-184
Apparix combines the properties of the cdargs utility and the CDPATH shell mechanism for fast navigation through the file system more>>
Apparix combines the properties of the cdargs utility and the CDPATH shell mechanism for fast navigation through the file system.
Apparix is especially useful for visiting and documenting both often- and rarely-used locations. Apparix enables you to attach marks to locations and jump to those locations by loading the mark.
Marking, unmarking and jumping are simple operations that are performed in the current shell. By setting up convenient aliases for marking and jumping the file system can be navigated in a fast and intuitive manner.
This section contains some examples of the most common uses of apparix. OPTIONS contains a list of additional options available for pruning and squashing bookmarks.
NOTES features a brief discussion of the advantages of apparix over other approaches such as setting up aliases for often visited directories, using symlinks, CDPATH, or a combination of these. HISTORY explains the difference between cdargs and apparix.
Apparix works in a manner very similar to cdargs. One usually invokes apparix by using pre-defined aliases. Here they will be called bm for bookmark, portal for a CPPATH-style bookmark and to for initiating an apparition (aka jump) . These aliases are found below in the FILES section and can also be obtained by issuing
apparix --shell-examples
Apparix works by aliases for two reasons, necessity and convenience. When bookmarking, it is convenient to be able to do it with just a few keystrokes. When jumping, apparix cannot change the current directory in the current shell. It writes the result destination in a results file $HOME/.apparixresult - necessity. An alias or function with a conveniently short name such as to achieves the desired change of directory.
Suppose your user name is eez and your home directory is /home/eez. You often visit a directory called /home/eez/cvs/xyz/tfa/faq/zut/bar/foo. This is how to create and use a bookmark for foo
/home/eez/cvs/xyz/tfa/faq/zut/bar/foo> bm foo
added: foo -> /home/eez/cvs/xyz/tfa/faq/zut/bar/foo
/home/eez/cvs/xyz/tfa/faq/zut/bar/foo> cd
/home/eez> to foo
/home/eez/cvs/xyz/tfa/faq/zut/bar/foo>
Another scenario is where you have some directory that contains a largish number of subdirectories, all of which you would like to have bookmarked. If the subdirectories have distinctive names this can be achieved in one fell swoop by marking the parent directory as a portal.
This is identical to adding the parent directory to the CDPATH environment variable, except that apparix bookmarks are not part of the cd namespace. It is argued in NOTES that this is a good thing. Consider this.
/home/cvs/bagger/boemel/mcl/mcl/src> ls
alien/ CVS/ impala/ Makefile.am README shmcx/
attic/ giraffe/ lib/ Makefile.in shcl/ shmx/
contrib/ gmon.out Makefile mcl/ shmcl/ taurus/
Some of the subdirectories have not-so-distinct names such as contrib and attic, but they happen to be the directories least visited. Issuing
/home/cvs/bagger/boemel/mcl/mcl/src> portal
[apparix] expanded 1 portal to 12 destinations
yields all of the subdirectories as destinations bookmarked by the last component of their path name. Note that bookmarks resulting from portal expansion are kept in a separate resource file (see FILES). Portal expansions can be recreated by issuing
apparix --rehash
This is useful to reflect a change in the directory naming structure underneath a portal.
Conflict resolution
Apparix allows identical bookmarks to point to different locations. When asked to visit such a bookmark it will present a list of options.
Subdirectory specification
When jumping (apparating) you can specify an additional subdirectory after the bookmark. Apparix will append the subdirectory to the destination. This does require you know the exact name of the subdirectory you want to visit.
Enhancements:
- Subdirectories can be excluded from portal expansions by appropriately setting the environment variable APPARIXEXCLUDE.
- Apparix is now licensed under the GNU General Public License version 3.
<<lessApparix is especially useful for visiting and documenting both often- and rarely-used locations. Apparix enables you to attach marks to locations and jump to those locations by loading the mark.
Marking, unmarking and jumping are simple operations that are performed in the current shell. By setting up convenient aliases for marking and jumping the file system can be navigated in a fast and intuitive manner.
This section contains some examples of the most common uses of apparix. OPTIONS contains a list of additional options available for pruning and squashing bookmarks.
NOTES features a brief discussion of the advantages of apparix over other approaches such as setting up aliases for often visited directories, using symlinks, CDPATH, or a combination of these. HISTORY explains the difference between cdargs and apparix.
Apparix works in a manner very similar to cdargs. One usually invokes apparix by using pre-defined aliases. Here they will be called bm for bookmark, portal for a CPPATH-style bookmark and to for initiating an apparition (aka jump) . These aliases are found below in the FILES section and can also be obtained by issuing
apparix --shell-examples
Apparix works by aliases for two reasons, necessity and convenience. When bookmarking, it is convenient to be able to do it with just a few keystrokes. When jumping, apparix cannot change the current directory in the current shell. It writes the result destination in a results file $HOME/.apparixresult - necessity. An alias or function with a conveniently short name such as to achieves the desired change of directory.
Suppose your user name is eez and your home directory is /home/eez. You often visit a directory called /home/eez/cvs/xyz/tfa/faq/zut/bar/foo. This is how to create and use a bookmark for foo
/home/eez/cvs/xyz/tfa/faq/zut/bar/foo> bm foo
added: foo -> /home/eez/cvs/xyz/tfa/faq/zut/bar/foo
/home/eez/cvs/xyz/tfa/faq/zut/bar/foo> cd
/home/eez> to foo
/home/eez/cvs/xyz/tfa/faq/zut/bar/foo>
Another scenario is where you have some directory that contains a largish number of subdirectories, all of which you would like to have bookmarked. If the subdirectories have distinctive names this can be achieved in one fell swoop by marking the parent directory as a portal.
This is identical to adding the parent directory to the CDPATH environment variable, except that apparix bookmarks are not part of the cd namespace. It is argued in NOTES that this is a good thing. Consider this.
/home/cvs/bagger/boemel/mcl/mcl/src> ls
alien/ CVS/ impala/ Makefile.am README shmcx/
attic/ giraffe/ lib/ Makefile.in shcl/ shmx/
contrib/ gmon.out Makefile mcl/ shmcl/ taurus/
Some of the subdirectories have not-so-distinct names such as contrib and attic, but they happen to be the directories least visited. Issuing
/home/cvs/bagger/boemel/mcl/mcl/src> portal
[apparix] expanded 1 portal to 12 destinations
yields all of the subdirectories as destinations bookmarked by the last component of their path name. Note that bookmarks resulting from portal expansion are kept in a separate resource file (see FILES). Portal expansions can be recreated by issuing
apparix --rehash
This is useful to reflect a change in the directory naming structure underneath a portal.
Conflict resolution
Apparix allows identical bookmarks to point to different locations. When asked to visit such a bookmark it will present a list of options.
Subdirectory specification
When jumping (apparating) you can specify an additional subdirectory after the bookmark. Apparix will append the subdirectory to the destination. This does require you know the exact name of the subdirectory you want to visit.
Enhancements:
- Subdirectories can be excluded from portal expansions by appropriately setting the environment variable APPARIXEXCLUDE.
- Apparix is now licensed under the GNU General Public License version 3.
Download (0.17MB)
Added: 2007-07-04 License: GPL v3 Price:
842 downloads
Indus 0.8
Indus is a collection of program analyzers and transformations implemented for customizing and adapting Java programs. more>>
Indus is an effort to provide a collection of program analyses and transformations implemented in Java to customize and adapt Java programs. Indus is intended to serve as an umbrella for:
* static analyses such as points-to analysis, escape analysis, and dependence analyses,
* transformations such as program slicing and program specialization via partial evaluation, and
* any software module that delivers the analyses/transformations into a particular application such as Bandera or platform such as Eclipse.
At present, there are 3 modules that are part of Indus. More modules are expected to be added over the course of time. We provide an overview of the intent of each module that are available at present.
Indus is a module that houses the implementation pertaining to algorithms and data structures common to analyses and transformations that are part of or are planned to be part of Indus. This module contains interface definition common to most analyses and transformations to provide a framework in which various implementations of analyses/transformations can be combined to form systems with ease. Hence, this module is updated when a new sort of analysis/transformation is implemented as a module in Indus. However, a new implementation of an analysis/transformation will not affect this module as it will implement an existing interface.
StaticAnalyses module is intended to be the collection of static analyses such as object-flow analysis, escape analysis, and dependence analyses. The analyses in this module use common interfaces and implementations from Indus and may define/provide new interfaces/implementations specific to new analyses. Existing analyses are mentioned below.
* Object-flow Analysis (OFA) is a points-to analysis for Java. Each allocation site in the analyzed system is treated as an abstract object and its flow through the system is tracked to infer the possible types an receiver at a call-site to enable the construction of a precise call-graph. The precision of the analysis can be varied in terms of flow-sensitiveness for method local variables and object-sensitiveness for instance fields.
* Escape Analysis is an extended implementation of the escape analysis proposed by Ruf for the purpose of pruning interference and ready dependence edges. The extensions are in the form of seamless addition of value equivalence to the analysis to improve the detection of conflicting field reads/writes occurring in different threads beyond just using type equality of the primaries of the access expressions. The analysis also uses object-flow information orthogonally to further improve precision.
* Dependence Analyses is a collection of dependence analyses: entry-based control, exit-based control, identifier-based data, reference-based data, interference, ready, synchronization, and divergence, required by analyses/transformations such program slicing and partial evaluation. Interference and Ready dependence analyses depend on the previous escape analysis while reference-based data and synchronization dependence analyses depend on object-flow information and the calculated call-graph information. Some analyses have varying levels of precision which can be varied via a well defined interface.
* Side-Effect Analysis provides method-level side-effect information. The user can query if any of the arguments/parameters to a call-site/method will be affected either directly (immediate members) or indirectly (recursively reachable members). Similarly, the user can provide a data access path rooted at arguments/parameters to a call-site/method and query if end point of the data access path is affected by the call/method.
* Monitor Anlaysis is a simple analysis that provides monitor/lock graph information for the given system.
* Safe Lock Analysis is an analysis that conservatively discovers if a lock (monitors) will not be held indefinitely. This information is used in conjunction with temporal dependences steming for Object.wait() and Object.notify()/ Object.notifyAll() as it is done in ready dependence.
* Atomicity Analysis provides information about atomicity in the given system. Current implementation relies on escape analysis to predict if a statement can be executed atomically. This information is used to detect atomic region of codes. This information is useful in applications such as model checking to reduce the the size of the state space, hence, improve performance.
Some analyses may be large enough to constitute module on their own and such analyses will be hosted as different modules in Indus rather than being consumed by this module.
Java Program Slicer module contains the core implementation of Java program slicer along with adapters that deliver the slicer in other applications such as Bandera and Eclipse. The implementation is architected as a library rather than as an application to facilitate the reuse of its subparts. The core is independent of the application; Each applications requirement of the slice can be satisfied by coding up implementations of post-processing interfaces and hooking in these implementations to form a customized slicer.
This module relies heavily on the information provided by dependence analyses and also the call-graph provided by OFA via well-defined interfaces that enables external implementations to be used for slicing.
This implementation of slicer is delivered to Eclipse with an intuitive UI via Kaveri plugin.
Features:o
Backward and Forward slice generation. Complete slices (union of backward and forward
slices starting from the same slice criteria) can be generated.
* Support to residualize (appropriate) slices into executable class files.
* Support for context-sensitive slicing via context rich slice criteria specification.
* Support to restrict the slice to a particular part of the system by scope specifications.
* Support to serialize slice criteria, slicer configurations, and slices.
All modules in Indus project work on Jimple, an intermediate representation of Java, provided by Soot toolkit from Sable group in McGill University. Each module in the project will be exposed as one or more Eclipse plugins if the provided information is useful to the user and amenable for user consumption via a graphical user interface.
Software Engineering Philosophy
Each module in this project will provide just the required functionality via well-defined interfaces that can be implemented to assemble a customized system with suitable extensions that fulfill specific requirement. As the interface is clearly separated from the implementation, any external implementation that provides the required interface can be seamlessly used with modules from this project.
Background
The implementation of most of the analyses was driven by the requirements of Java program slicer required by Bandera. However, as the program slicer could be used outside Bandera and the analyses could be used to enable other transformations such as program specialization via partial evaluation, we moved the analyses and transformations into a new project called Indus.
<<less* static analyses such as points-to analysis, escape analysis, and dependence analyses,
* transformations such as program slicing and program specialization via partial evaluation, and
* any software module that delivers the analyses/transformations into a particular application such as Bandera or platform such as Eclipse.
At present, there are 3 modules that are part of Indus. More modules are expected to be added over the course of time. We provide an overview of the intent of each module that are available at present.
Indus is a module that houses the implementation pertaining to algorithms and data structures common to analyses and transformations that are part of or are planned to be part of Indus. This module contains interface definition common to most analyses and transformations to provide a framework in which various implementations of analyses/transformations can be combined to form systems with ease. Hence, this module is updated when a new sort of analysis/transformation is implemented as a module in Indus. However, a new implementation of an analysis/transformation will not affect this module as it will implement an existing interface.
StaticAnalyses module is intended to be the collection of static analyses such as object-flow analysis, escape analysis, and dependence analyses. The analyses in this module use common interfaces and implementations from Indus and may define/provide new interfaces/implementations specific to new analyses. Existing analyses are mentioned below.
* Object-flow Analysis (OFA) is a points-to analysis for Java. Each allocation site in the analyzed system is treated as an abstract object and its flow through the system is tracked to infer the possible types an receiver at a call-site to enable the construction of a precise call-graph. The precision of the analysis can be varied in terms of flow-sensitiveness for method local variables and object-sensitiveness for instance fields.
* Escape Analysis is an extended implementation of the escape analysis proposed by Ruf for the purpose of pruning interference and ready dependence edges. The extensions are in the form of seamless addition of value equivalence to the analysis to improve the detection of conflicting field reads/writes occurring in different threads beyond just using type equality of the primaries of the access expressions. The analysis also uses object-flow information orthogonally to further improve precision.
* Dependence Analyses is a collection of dependence analyses: entry-based control, exit-based control, identifier-based data, reference-based data, interference, ready, synchronization, and divergence, required by analyses/transformations such program slicing and partial evaluation. Interference and Ready dependence analyses depend on the previous escape analysis while reference-based data and synchronization dependence analyses depend on object-flow information and the calculated call-graph information. Some analyses have varying levels of precision which can be varied via a well defined interface.
* Side-Effect Analysis provides method-level side-effect information. The user can query if any of the arguments/parameters to a call-site/method will be affected either directly (immediate members) or indirectly (recursively reachable members). Similarly, the user can provide a data access path rooted at arguments/parameters to a call-site/method and query if end point of the data access path is affected by the call/method.
* Monitor Anlaysis is a simple analysis that provides monitor/lock graph information for the given system.
* Safe Lock Analysis is an analysis that conservatively discovers if a lock (monitors) will not be held indefinitely. This information is used in conjunction with temporal dependences steming for Object.wait() and Object.notify()/ Object.notifyAll() as it is done in ready dependence.
* Atomicity Analysis provides information about atomicity in the given system. Current implementation relies on escape analysis to predict if a statement can be executed atomically. This information is used to detect atomic region of codes. This information is useful in applications such as model checking to reduce the the size of the state space, hence, improve performance.
Some analyses may be large enough to constitute module on their own and such analyses will be hosted as different modules in Indus rather than being consumed by this module.
Java Program Slicer module contains the core implementation of Java program slicer along with adapters that deliver the slicer in other applications such as Bandera and Eclipse. The implementation is architected as a library rather than as an application to facilitate the reuse of its subparts. The core is independent of the application; Each applications requirement of the slice can be satisfied by coding up implementations of post-processing interfaces and hooking in these implementations to form a customized slicer.
This module relies heavily on the information provided by dependence analyses and also the call-graph provided by OFA via well-defined interfaces that enables external implementations to be used for slicing.
This implementation of slicer is delivered to Eclipse with an intuitive UI via Kaveri plugin.
Features:o
Backward and Forward slice generation. Complete slices (union of backward and forward
slices starting from the same slice criteria) can be generated.
* Support to residualize (appropriate) slices into executable class files.
* Support for context-sensitive slicing via context rich slice criteria specification.
* Support to restrict the slice to a particular part of the system by scope specifications.
* Support to serialize slice criteria, slicer configurations, and slices.
All modules in Indus project work on Jimple, an intermediate representation of Java, provided by Soot toolkit from Sable group in McGill University. Each module in the project will be exposed as one or more Eclipse plugins if the provided information is useful to the user and amenable for user consumption via a graphical user interface.
Software Engineering Philosophy
Each module in this project will provide just the required functionality via well-defined interfaces that can be implemented to assemble a customized system with suitable extensions that fulfill specific requirement. As the interface is clearly separated from the implementation, any external implementation that provides the required interface can be seamlessly used with modules from this project.
Background
The implementation of most of the analyses was driven by the requirements of Java program slicer required by Bandera. However, as the program slicer could be used outside Bandera and the analyses could be used to enable other transformations such as program specialization via partial evaluation, we moved the analyses and transformations into a new project called Indus.
Download (0.24MB)
Added: 2006-04-26 License: Other/Proprietary License Price:
1277 downloads
Julius Speech Recognition Engine 3.5.3
Julius is a high-performance, two-pass large vocabulary continuous speech recognition (LVCSR) decoder software. more>>
Julius is a high-performance, two-pass large vocabulary continuous speech recognition (LVCSR) decoder software for speech-related researchers and developers. Based on word 3-gram and context-dependent HMM, it can perform almost real-time decoding on most current PCs in 20k word dictation task.
Major search techniques are fully incorporated such as tree lexicon, N-gram factoring, cross-word context dependency handling, enveloped beam search, Gaussian pruning, Gaussian selection, etc. Besides search efficiency, it is also modularized carefully to be independent from model structures, and various HMM types are supported such as shared-state triphones and tied-mixture models, with any number of mixtures, states, or phones.
Standard formats are adopted to cope with other free modeling toolkit. The main platform is Linux and other Unix workstations, and also works on Windows. Julius is distributed with open license together with source codes, and has been used by many researchers and developers in Japan.
Main features:
- An open-source software (see terms and conditions of license (Japanese and English translation)).
- Real-time hi-speed and accurate recognition based on 2-pass strategy.
- Low memory requirement: less than 32MBytes required for work area (<<less
Major search techniques are fully incorporated such as tree lexicon, N-gram factoring, cross-word context dependency handling, enveloped beam search, Gaussian pruning, Gaussian selection, etc. Besides search efficiency, it is also modularized carefully to be independent from model structures, and various HMM types are supported such as shared-state triphones and tied-mixture models, with any number of mixtures, states, or phones.
Standard formats are adopted to cope with other free modeling toolkit. The main platform is Linux and other Unix workstations, and also works on Windows. Julius is distributed with open license together with source codes, and has been used by many researchers and developers in Japan.
Main features:
- An open-source software (see terms and conditions of license (Japanese and English translation)).
- Real-time hi-speed and accurate recognition based on 2-pass strategy.
- Low memory requirement: less than 32MBytes required for work area (<<less
Download (1.0MB)
Added: 2007-01-04 License: BSD License Price:
1054 downloads
PIMPPA 0.6.0
PIMPPA is a tool to loot binaries from newsgroups (and ftp sites, but the ftp support is probably deprecated). more>>
PIMPPA is a tool to loot binaries from newsgroups (and ftp sites, but the ftp support is probably deprecated). PIMPPA tries to achieve complete "hands free" -operation where possible.
The system is best suited for the Connoisseur, the Collector and the Worshipper of the Mighty Crond. Its not very useful for the minions of the trendy interactive.
Main features:
- Attempts to skip duplicates and spam before downloading actual messages.
- Further duplicate discarding based on filenames & MD5 -checksums.
- Allows user-definable, content-based pruning scripts for even more involved discarding.
- Intelligent multipart handling, downloads only complete postings.
- Supports multiple newsservers.
- Filename-based sorting of accepted files to proper directories.
- Can be used to hunt known file series, extensions or message subject patterns and skip the rest.
- Supports automatic file integrity testing and transformation.
- Several tools and scripts for file maintenance and viewing.
- Knowledge is kept in SQL database, making it relatively easy for you to write your own custom scripts and utilities.
- Cronable: come back next week to check the filtered catch.
- Optional Gnome GUI.
- Its free! - GPLed Open Source.
<<lessThe system is best suited for the Connoisseur, the Collector and the Worshipper of the Mighty Crond. Its not very useful for the minions of the trendy interactive.
Main features:
- Attempts to skip duplicates and spam before downloading actual messages.
- Further duplicate discarding based on filenames & MD5 -checksums.
- Allows user-definable, content-based pruning scripts for even more involved discarding.
- Intelligent multipart handling, downloads only complete postings.
- Supports multiple newsservers.
- Filename-based sorting of accepted files to proper directories.
- Can be used to hunt known file series, extensions or message subject patterns and skip the rest.
- Supports automatic file integrity testing and transformation.
- Several tools and scripts for file maintenance and viewing.
- Knowledge is kept in SQL database, making it relatively easy for you to write your own custom scripts and utilities.
- Cronable: come back next week to check the filtered catch.
- Optional Gnome GUI.
- Its free! - GPLed Open Source.
Download (0.19MB)
Added: 2006-10-17 License: GPL (GNU General Public License) Price:
1102 downloads
Mailman listadmin 2.37
listadmin is a command-line alternative to Mailmans Web interface for administering mailing lists. more>>
listadmin is a command-line alternative to Mailmans Web interface for administering mailing lists.
Mailman has a friendly but rather awkward web interface for manipulating the queue of messages held for moderator approval. Since I maintain a couple of dozen lists, some of which receive 50+ spams per day, I needed a way to reduce the time taken to process all the junk e-mail.
The result was listadmin. It is designed to keep user interaction to a minimum, in theory you could run it from cron to prune the queue. It can use the score from a header added by SpamAssassin to filter, or it can match specific senders, subjects, or reasons. The configuration file is Notepad.exe friendly. A sample configuration file:
password "Geheim"
# action to take when pressing just Return default discard
# discard automatically anything with SA score higher than 6 spamlevel 6
discard_if_from ^(postmaster|mailer(-daemon)?|listproc|no-reply)@
my-favourite-band@ifi.uio.no
spectroscopy-discuss@lister.ping.uio.no
You cant make a screenshot of a program like this, but a sample session may be instructive. See the manual page for the whole story. The script is written in Perl and requires a few modules, but AFAIK they are all bundled with Perl 5.8.0.
Enhancements:
- This release fixes the use of proxies for HTTP, adds the capability of turning nomail on or off from the command line, and improves interoperability with Mailman 2.1.x.
- Unknown character encodings are also handled more gracefully.
<<lessMailman has a friendly but rather awkward web interface for manipulating the queue of messages held for moderator approval. Since I maintain a couple of dozen lists, some of which receive 50+ spams per day, I needed a way to reduce the time taken to process all the junk e-mail.
The result was listadmin. It is designed to keep user interaction to a minimum, in theory you could run it from cron to prune the queue. It can use the score from a header added by SpamAssassin to filter, or it can match specific senders, subjects, or reasons. The configuration file is Notepad.exe friendly. A sample configuration file:
password "Geheim"
# action to take when pressing just Return default discard
# discard automatically anything with SA score higher than 6 spamlevel 6
discard_if_from ^(postmaster|mailer(-daemon)?|listproc|no-reply)@
my-favourite-band@ifi.uio.no
spectroscopy-discuss@lister.ping.uio.no
You cant make a screenshot of a program like this, but a sample session may be instructive. See the manual page for the whole story. The script is written in Perl and requires a few modules, but AFAIK they are all bundled with Perl 5.8.0.
Enhancements:
- This release fixes the use of proxies for HTTP, adds the capability of turning nomail on or off from the command line, and improves interoperability with Mailman 2.1.x.
- Unknown character encodings are also handled more gracefully.
Download (0.020MB)
Added: 2007-01-25 License: Public Domain Price:
1002 downloads
Shatranj 1.11
Shatranj is an bitboard-based, Open-Source, interactive chess programming module. more>>
Shatranj is an bitboard-based, Open-Source, interactive chess programming module which allows manipulation of chess positions and experimentation with search algorithms and evaluation techniques. Shatranjs goal is to write a toolkit to aid in implementing Shannon Type B chess programs.
As such, execution speed becomes less important then code clarity and expressive power of the implementation language. Having been written in an interpreted language, this module allows the chess programmer to manipulate bitboards in a natural, interactive manner much like signal processing toolkits allow communication engineers to manipulate vectors of sounds samples in MATLAB.
The module currenly implements a simple recursive minimax search with alphabeta pruning, iterative deepening, uses short algebraic notation, handles repetition check, and the 50 move rule. Features lacking are quiescent checks, transition tables, negascout and MTD searching.
The chess programming toolkit is available in the form of a Python module called shatranj.py. You will also likely need the opening book as well as some of the pre-built hash tables that are used throughout the module (these will be recalculated if the module cannot find the data file).
Place all three file in the same directory and simply run python on the python module ("python shatranj.py"). As far as requirements, all that is needed is a recent version of the interpreted, high level language called Python (anything after version 2.3 should work fine). If you would like a little bit of a speed boost, shatranj looks for the module Psyco and will use it if it is installed.
Until more documentation becomes available, here is a short sample session:
[Sam-Tannous-Computer:~/shatranj] stannous% python
>>> from shatranj import *
...reading startup data
...total time to read data 0.0774528980255
...found opening book shatranj-book.bin with 37848 positions
>>> position = Position("r1bqk2r/pppp1ppp/2n5/5N2/2B1n3/8/PPP1QPPP/R1B1K2R")
>>> all_pieces = position.piece_bb["b_occupied"] | position.piece_bb["w_occupied"]
>>> other_pieces = position.piece_bb["b_occupied"]
>>> from_square = c4
>>> wtm = 1
>>> mask = position.pinned(from_square,wtm)
>>> ne_pieces = diag_mask_ne[from_square] & all_pieces
>>> nw_pieces = diag_mask_nw[from_square] & all_pieces
>>> moves = ((diag_attacks_ne[from_square][ne_pieces] & other_pieces) |
... (diag_attacks_ne[from_square][ne_pieces] & ~all_pieces) |
... (diag_attacks_nw[from_square][nw_pieces] & other_pieces) |
... (diag_attacks_nw[from_square][nw_pieces] & ~all_pieces)) & mask
>>>
>>> moves
1275777090846720L
>>>
>>> tobase(moves,2)
100100010000101000000000000010100000000000000000000
>>> display(moves)
+---+---+---+---+---+---+---+---+
8 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
7 | . | | . | | . | 1 | . | |
+---+---+---+---+---+---+---+---+
6 | 1 | . | | . | 1 | . | | . |
+---+---+---+---+---+---+---+---+
5 | . | 1 | . | 1 | . | | . | |
+---+---+---+---+---+---+---+---+
4 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
3 | . | 1 | . | 1 | . | | . | |
+---+---+---+---+---+---+---+---+
2 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
1 | . | | . | | . | | . | |
+---+---+---+---+---+---+---+---+
a b c d e f g h
>>> position.show_moves(1)
[Rg1, O-O, f3, a3, Rb1, f4, Ba6,
Bh6, Bd3, Qg4, Qe3, Ne7, Be6, Nxg7,
Qxe4, Ne3, b4, Nh4, b3, Be3, Bg5,
g3, Kf1, Rf1, Nh6, a4, Ng3, Qh5,
Kd1, h4, h3, c3, Bxf7, Nd6, Bb5,
Nd4, Qf3, g4, Qf1, Bb3, Qd1, Qd3,
Qd2, Bd5, Bd2, Bf4]
>>>
>>> # now play a game!
>>> play()
Shatranj version 1.10
g: switch sides m: show legal moves
n: new game l: list game record
d: display board b: show book moves
sd: change search depth (2-16) default=5
q: quit
Shatranj: d
+---+---+---+---+---+---+---+---+
8 | r | n | b | q | k | b | n | r |
+---+---+---+---+---+---+---+---+
7 | p | p | p | p | p | p | p | p |
+---+---+---+---+---+---+---+---+
6 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
5 | . | | . | | . | | . | |
+---+---+---+---+---+---+---+---+
4 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
3 | . | | . | | . | | . | |
+---+---+---+---+---+---+---+---+
2 | P | P | P | P | P | P | P | P |
+---+---+---+---+---+---+---+---+
1 | R | N | B | Q | K | B | N | R |
+---+---+---+---+---+---+---+---+
a b c d e f g h
Shatranj:
<<lessAs such, execution speed becomes less important then code clarity and expressive power of the implementation language. Having been written in an interpreted language, this module allows the chess programmer to manipulate bitboards in a natural, interactive manner much like signal processing toolkits allow communication engineers to manipulate vectors of sounds samples in MATLAB.
The module currenly implements a simple recursive minimax search with alphabeta pruning, iterative deepening, uses short algebraic notation, handles repetition check, and the 50 move rule. Features lacking are quiescent checks, transition tables, negascout and MTD searching.
The chess programming toolkit is available in the form of a Python module called shatranj.py. You will also likely need the opening book as well as some of the pre-built hash tables that are used throughout the module (these will be recalculated if the module cannot find the data file).
Place all three file in the same directory and simply run python on the python module ("python shatranj.py"). As far as requirements, all that is needed is a recent version of the interpreted, high level language called Python (anything after version 2.3 should work fine). If you would like a little bit of a speed boost, shatranj looks for the module Psyco and will use it if it is installed.
Until more documentation becomes available, here is a short sample session:
[Sam-Tannous-Computer:~/shatranj] stannous% python
>>> from shatranj import *
...reading startup data
...total time to read data 0.0774528980255
...found opening book shatranj-book.bin with 37848 positions
>>> position = Position("r1bqk2r/pppp1ppp/2n5/5N2/2B1n3/8/PPP1QPPP/R1B1K2R")
>>> all_pieces = position.piece_bb["b_occupied"] | position.piece_bb["w_occupied"]
>>> other_pieces = position.piece_bb["b_occupied"]
>>> from_square = c4
>>> wtm = 1
>>> mask = position.pinned(from_square,wtm)
>>> ne_pieces = diag_mask_ne[from_square] & all_pieces
>>> nw_pieces = diag_mask_nw[from_square] & all_pieces
>>> moves = ((diag_attacks_ne[from_square][ne_pieces] & other_pieces) |
... (diag_attacks_ne[from_square][ne_pieces] & ~all_pieces) |
... (diag_attacks_nw[from_square][nw_pieces] & other_pieces) |
... (diag_attacks_nw[from_square][nw_pieces] & ~all_pieces)) & mask
>>>
>>> moves
1275777090846720L
>>>
>>> tobase(moves,2)
100100010000101000000000000010100000000000000000000
>>> display(moves)
+---+---+---+---+---+---+---+---+
8 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
7 | . | | . | | . | 1 | . | |
+---+---+---+---+---+---+---+---+
6 | 1 | . | | . | 1 | . | | . |
+---+---+---+---+---+---+---+---+
5 | . | 1 | . | 1 | . | | . | |
+---+---+---+---+---+---+---+---+
4 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
3 | . | 1 | . | 1 | . | | . | |
+---+---+---+---+---+---+---+---+
2 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
1 | . | | . | | . | | . | |
+---+---+---+---+---+---+---+---+
a b c d e f g h
>>> position.show_moves(1)
[Rg1, O-O, f3, a3, Rb1, f4, Ba6,
Bh6, Bd3, Qg4, Qe3, Ne7, Be6, Nxg7,
Qxe4, Ne3, b4, Nh4, b3, Be3, Bg5,
g3, Kf1, Rf1, Nh6, a4, Ng3, Qh5,
Kd1, h4, h3, c3, Bxf7, Nd6, Bb5,
Nd4, Qf3, g4, Qf1, Bb3, Qd1, Qd3,
Qd2, Bd5, Bd2, Bf4]
>>>
>>> # now play a game!
>>> play()
Shatranj version 1.10
g: switch sides m: show legal moves
n: new game l: list game record
d: display board b: show book moves
sd: change search depth (2-16) default=5
q: quit
Shatranj: d
+---+---+---+---+---+---+---+---+
8 | r | n | b | q | k | b | n | r |
+---+---+---+---+---+---+---+---+
7 | p | p | p | p | p | p | p | p |
+---+---+---+---+---+---+---+---+
6 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
5 | . | | . | | . | | . | |
+---+---+---+---+---+---+---+---+
4 | | . | | . | | . | | . |
+---+---+---+---+---+---+---+---+
3 | . | | . | | . | | . | |
+---+---+---+---+---+---+---+---+
2 | P | P | P | P | P | P | P | P |
+---+---+---+---+---+---+---+---+
1 | R | N | B | Q | K | B | N | R |
+---+---+---+---+---+---+---+---+
a b c d e f g h
Shatranj:
Download (0.16MB)
Added: 2007-04-30 License: GPL (GNU General Public License) Price:
554 downloads
Hpodder 1.0.0
Hpodder is a tool to scan and download podcasts. more>>
Hpodder is a tool to scan and download podcasts. Such tools are often called podcatchers.
Hpodder is a command-line tool for Linux. The project has quite a few features. A few highlights are that it is easy to learn and use, has automatic discovery of feed metadata, and can import iPodder settings.
Enhancements:
- This is the first production release.
- Feeds or episodes that repeatedly return errors are now automatically pruned.
- Cleaning of download areas was improved.
- Bugs were fixed.
<<lessHpodder is a command-line tool for Linux. The project has quite a few features. A few highlights are that it is easy to learn and use, has automatic discovery of feed metadata, and can import iPodder settings.
Enhancements:
- This is the first production release.
- Feeds or episodes that repeatedly return errors are now automatically pruned.
- Cleaning of download areas was improved.
- Bugs were fixed.
Download (0.19MB)
Added: 2007-07-30 License: GPL (GNU General Public License) Price:
501 downloads
gprof2dot.py 0.3
gprof2dot.py is a Python script to convert the output from gprof into a dot graph. more>>
gprof2dot.py script can convert the output from gprof into a dot graph. It can correctly parse C++ template function names, allows you to prune nodes and edges below a certain threshold, can parse the special notation gprof uses for mutually recursive functions, uses color efficiently to draw attention to hot-spots, and works on any platform where GNU gprof, graphviz, and Python are available, i.e. virtually anywhere.
Main features:
- can correctly parse C++ template function names;
- allows to prune nodes and edges below a certain threshold;
- can parse the special notation gprof uses for mutually recursive functions;
- uses color efficiently to draw attention to hot-spots;
- works on any platform where GNU gprof, graphviz, and Python is available, i.e, virtually anywhere.
Usage:
gprof2dot.py [options] [file]
Options:
--version show programs version number and exit
-h, --help show this help message and exit
-o FILE, --output=FILE
output filename [stdout]
-n PERCENTAGE, --node-thres=PERCENTAGE
eliminate nodes below this threshold [default: 0.05]
-e PERCENTAGE, --edge-thres=PERCENTAGE
eliminate edges below this threshold [default: 0.01]
-c COLORMAP, --colormap=COLORMAP
color map: color, pink or gray [default: color]
-s, --strip strip function parameters, template parameters, and
const modifiers from demangled C++ function names
-w, --wrap wrap function names
Enhancements:
- The output produced by gprof with the static call graph option is now handled.
- The ability to read output generated by the Python profilers was added.
<<lessMain features:
- can correctly parse C++ template function names;
- allows to prune nodes and edges below a certain threshold;
- can parse the special notation gprof uses for mutually recursive functions;
- uses color efficiently to draw attention to hot-spots;
- works on any platform where GNU gprof, graphviz, and Python is available, i.e, virtually anywhere.
Usage:
gprof2dot.py [options] [file]
Options:
--version show programs version number and exit
-h, --help show this help message and exit
-o FILE, --output=FILE
output filename [stdout]
-n PERCENTAGE, --node-thres=PERCENTAGE
eliminate nodes below this threshold [default: 0.05]
-e PERCENTAGE, --edge-thres=PERCENTAGE
eliminate edges below this threshold [default: 0.01]
-c COLORMAP, --colormap=COLORMAP
color map: color, pink or gray [default: color]
-s, --strip strip function parameters, template parameters, and
const modifiers from demangled C++ function names
-w, --wrap wrap function names
Enhancements:
- The output produced by gprof with the static call graph option is now handled.
- The ability to read output generated by the Python profilers was added.
Download (0.014MB)
Added: 2007-07-14 License: LGPL (GNU Lesser General Public License) Price:
521 downloads
Do178Builder 20060709
Do178Builder is a documentation tool used throughout the software/hardware development effort. more>>
Do178Builder project is a documentation tool used throughout the software/hardware development effort, helping to produce the DO-178B/254 documentation much less painfully.
A major obstacle to creating airborne products, for smaller developers, is the necessity to qualify the software per RTCA/DO-178B, or hardware per RTCA/DO-254. Without this qualification, airborne products cannot be deployed.
Enhancements:
- DO-254 support was added.
- The editor font size is adjustable.
- Multiple-developer database-locking is possible.
- Many project-template and stylesheet improvements were made.
- Change-tracking support was added.
- Document-navigation aids were added, such as searching and moving just within a specific document type.
- Arbitrary DocBook features are supported.
- Wizards were added for inserting tables, lists, and graphics.
- Documents can be pruned to an assurance level.
- Test case support was added for high-level requirements.
- External traceability support was added.
- Bugs were fixed.
- A DO-254 sample project was started.
<<lessA major obstacle to creating airborne products, for smaller developers, is the necessity to qualify the software per RTCA/DO-178B, or hardware per RTCA/DO-254. Without this qualification, airborne products cannot be deployed.
Enhancements:
- DO-254 support was added.
- The editor font size is adjustable.
- Multiple-developer database-locking is possible.
- Many project-template and stylesheet improvements were made.
- Change-tracking support was added.
- Document-navigation aids were added, such as searching and moving just within a specific document type.
- Arbitrary DocBook features are supported.
- Wizards were added for inserting tables, lists, and graphics.
- Documents can be pruned to an assurance level.
- Test case support was added for high-level requirements.
- External traceability support was added.
- Bugs were fixed.
- A DO-254 sample project was started.
Download (0.22MB)
Added: 2006-07-13 License: GPL (GNU General Public License) Price:
1201 downloads
Bio::NEXUS::Node 0.67
Bio::NEXUS::Node is a Perl module that provides functions for manipulating nodes in trees. more>>
Bio::NEXUS::Node is a Perl module that provides functions for manipulating nodes in trees.
SYNOPSIS
new Bio::NEXUS::Node;
METHODS
new
Title : new
Usage : $node = new Bio::NEXUS::Node();
Function: Creates a new Bio::NEXUS::Node object
Returns : Bio::NEXUS::Node object
Args : none
clone
Title : clone
Usage : my $newblock = $block->clone();
Function: clone a block object (shallow)
Returns : Block object
Args : none
get_seq
Title : get_seq
Usage : $sequence = $node->get_seq();
Function: Returns the nodes sequence
Returns : sequence (string)
Args : none
set_seq
Title : set_seq
Usage : $node->set_seq($sequence);
Function: Sets sequence of the node
Returns : none
Args : sequence (string)
set_parent_node
Title : set_parent_node
Usage : $node->set_parent_node($parent);
Function: Sets the parent node of the node
Returns : none
Args : parent node (Bio::NEXUS::Node object)
get_parent
Title : get_parent
Usage : $parent=$node->get_parent();
Function: Returns the parent node of the node
Returns : parent node (Bio::NEXUS::Node object) or undef if nonexistent
Args : none
set_length
Title : set_length
Usage : $node->set_length($length);
Function: Sets the nodes length (meaning the length of the branch leading to the node)
Returns : none
Args : length (number)
get_length
Title : length
Usage : $length=$node->get_length();
Function: Returns the nodes length
Returns : length (integer) or undef if nonexistent
Args : none
get_total_length
Title : get_total_length
Usage : $total_length = $node->get_total_length();
Function: Gets the total branch length of the node and that of all the children (???)
Returns : total branch length
Args : none
set_support_value
Title : set_support_value
Usage : $node->set_support_value($bootstrap);
Function: Sets the branch support value associated with this node
Returns : none
Args : bootstrap value (integer)
get_support_value
Title : get_support_value
Usage : $bootstrap=$node->get_support_value();
Function: Returns the branch support value associated with this node
Returns : bootstrap value (integer) or undef if nonexistent
Args : none
set_name
Title : set_name
Usage : $node->set_name($name);
Function: Sets the nodes name
Returns : none
Args : name (string/integer)
get_name
Title : get_name
Usage : $name = $node->get_name();
Function: Returns the nodes name
Returns : name (integer/string) or undef if nonexistent
Args : none
is_otu
Title : is_otu
Usage : $node->is_otu();
Function: Returns 1 if the node is an OTU or 0 if it is not (internal node)
Returns : 1 or 0
Args : none
add_child
Title : add_childTU
Usage : $node->add_child($node);
Function: Adds a child to an existing node
Returns : none
Args : child (Bio::NEXUS::Node object)
distance
Title : distance
Usage : $distance = $node1->distance($node2);
Function: Calculates tree distance from one node to another (?)
Returns : distance (floating-point number)
Args : node1, node2 (Bio::NEXUS::Node objects)
to_string
Title : to_string
Usage : my $string; $root->tree_string($string, 0)
Function: recursively builds Newick tree string from root to tips
Returns : none
Args : reference to string, boolean $remove_inode_names flag
set_children
Title : set_children
Usage : $node->set_children($children);
Function: Sets children
Returns : $node
Args : arrayref of children
get_children
Title : get_children
Usage : @children = @{ $node->get_children() };
Function: Retrieves list of children
Returns : array of children (Bio::NEXUS::Node objects)
Args : none
walk
Title : walk
Usage : @descendents = $node->walk();
Function: Walks through tree and compiles a "clade list"
(including $self and all inodes and otus descended from $self)
Returns : array of nodes
Args : generally, none, though walk() calls itself recurseively with
2 arguments: the node list so far, and a counting variable for inode-naming
get_otus
Title : get_otus
Usage : @listOTU = @{$node->get_otu()}; (?)
Function: Retrieves list of OTUs
Returns : reference to array of OTUs (Bio::NEXUS::Node objects)
Args : none
printall
Title : printall
Usage : $tree_as_string = $self->printall();
Function: Gets the node properties as a tabbed string for printing nicely
formatted trees (developed by Tom)
Returns : Formatted string
Args : Bio::NEXUS::Node object
find
Title : find
Usage : $node = $node->find($name);
Function: Finds the first occurrence of a node called name in the tree
Returns : Bio::NEXUS::Node object
Args : name (string)
prune
Name : prune
Usage : $node->prune($OTUlist);
Function: Removes everything from the tree except for OTUs specified in $OTUlist
Returns : none
Args : list of OTUs (string)
equals
Name : equals
Usage : $node->equals($another_node);
Function: compare if two nodes (and their subtrees) are equivalent
Returns : 1 if equal or 0 if not
Args : another Node object
get_siblings
Name : get_siblings
Usage : $node->get_siblings();
Function: get sibling nodes of this node
Returns : array ref of sibling nodes
Args : none
is_sibling
Name : is_sibling
Usage : $node1->is_sibling($node2);
Function: tests whether node1 and node2 are siblings
Returns : 1 if true, 0 if false
Args : second node
adopt
Title : adopt
Usage : $parent->adopt($child, $overwrite_children);
Function: make a parent-child relationship between two nodes
Returns : none
Args : the child node, boolean clobber flag
combine
Title : combine
Usage : my $newblock = $node->combine($child);
Function: removes a node from the tree, effectively by sliding its only child up the branch to its former position
Returns : none
Args : the child node
Methods : Combines the child node and the current node by assigning the
name, bootstrap value, children and other properties of the child. The branch length
of the current node is added to the child nodes branch length.
set_depth
Title : set_depth
Usage : $root->set_depth();
Function: Determines depth in tree of every node below this one
Returns : none
Args : This nodes depth
get_depth
Title : get_depth
Usage : $depth = $node->get_depth();
Function: Returns the nodes depth (number of generations removed from the root) in tree
Returns : integer representing nodes depth
Args : none
find_lengths
Title : find_lengths
Usage : $cladogram = 1 unless $root->find_lengths();
Function: Tries to determine if branch lengths are present in the tree
Returns : 1 if lengths are found, 0 if not
Args : none
mrca
Title : mrca
Usage : $mrca = $otu1-> mrca($otu2, $treename);
Function: Finds most recent common ancestor of otu1 and otu2
Returns : Node object of most recent common ancestor
Args : Nexus object, two otu objects, name of tree to look in
<<lessSYNOPSIS
new Bio::NEXUS::Node;
METHODS
new
Title : new
Usage : $node = new Bio::NEXUS::Node();
Function: Creates a new Bio::NEXUS::Node object
Returns : Bio::NEXUS::Node object
Args : none
clone
Title : clone
Usage : my $newblock = $block->clone();
Function: clone a block object (shallow)
Returns : Block object
Args : none
get_seq
Title : get_seq
Usage : $sequence = $node->get_seq();
Function: Returns the nodes sequence
Returns : sequence (string)
Args : none
set_seq
Title : set_seq
Usage : $node->set_seq($sequence);
Function: Sets sequence of the node
Returns : none
Args : sequence (string)
set_parent_node
Title : set_parent_node
Usage : $node->set_parent_node($parent);
Function: Sets the parent node of the node
Returns : none
Args : parent node (Bio::NEXUS::Node object)
get_parent
Title : get_parent
Usage : $parent=$node->get_parent();
Function: Returns the parent node of the node
Returns : parent node (Bio::NEXUS::Node object) or undef if nonexistent
Args : none
set_length
Title : set_length
Usage : $node->set_length($length);
Function: Sets the nodes length (meaning the length of the branch leading to the node)
Returns : none
Args : length (number)
get_length
Title : length
Usage : $length=$node->get_length();
Function: Returns the nodes length
Returns : length (integer) or undef if nonexistent
Args : none
get_total_length
Title : get_total_length
Usage : $total_length = $node->get_total_length();
Function: Gets the total branch length of the node and that of all the children (???)
Returns : total branch length
Args : none
set_support_value
Title : set_support_value
Usage : $node->set_support_value($bootstrap);
Function: Sets the branch support value associated with this node
Returns : none
Args : bootstrap value (integer)
get_support_value
Title : get_support_value
Usage : $bootstrap=$node->get_support_value();
Function: Returns the branch support value associated with this node
Returns : bootstrap value (integer) or undef if nonexistent
Args : none
set_name
Title : set_name
Usage : $node->set_name($name);
Function: Sets the nodes name
Returns : none
Args : name (string/integer)
get_name
Title : get_name
Usage : $name = $node->get_name();
Function: Returns the nodes name
Returns : name (integer/string) or undef if nonexistent
Args : none
is_otu
Title : is_otu
Usage : $node->is_otu();
Function: Returns 1 if the node is an OTU or 0 if it is not (internal node)
Returns : 1 or 0
Args : none
add_child
Title : add_childTU
Usage : $node->add_child($node);
Function: Adds a child to an existing node
Returns : none
Args : child (Bio::NEXUS::Node object)
distance
Title : distance
Usage : $distance = $node1->distance($node2);
Function: Calculates tree distance from one node to another (?)
Returns : distance (floating-point number)
Args : node1, node2 (Bio::NEXUS::Node objects)
to_string
Title : to_string
Usage : my $string; $root->tree_string($string, 0)
Function: recursively builds Newick tree string from root to tips
Returns : none
Args : reference to string, boolean $remove_inode_names flag
set_children
Title : set_children
Usage : $node->set_children($children);
Function: Sets children
Returns : $node
Args : arrayref of children
get_children
Title : get_children
Usage : @children = @{ $node->get_children() };
Function: Retrieves list of children
Returns : array of children (Bio::NEXUS::Node objects)
Args : none
walk
Title : walk
Usage : @descendents = $node->walk();
Function: Walks through tree and compiles a "clade list"
(including $self and all inodes and otus descended from $self)
Returns : array of nodes
Args : generally, none, though walk() calls itself recurseively with
2 arguments: the node list so far, and a counting variable for inode-naming
get_otus
Title : get_otus
Usage : @listOTU = @{$node->get_otu()}; (?)
Function: Retrieves list of OTUs
Returns : reference to array of OTUs (Bio::NEXUS::Node objects)
Args : none
printall
Title : printall
Usage : $tree_as_string = $self->printall();
Function: Gets the node properties as a tabbed string for printing nicely
formatted trees (developed by Tom)
Returns : Formatted string
Args : Bio::NEXUS::Node object
find
Title : find
Usage : $node = $node->find($name);
Function: Finds the first occurrence of a node called name in the tree
Returns : Bio::NEXUS::Node object
Args : name (string)
prune
Name : prune
Usage : $node->prune($OTUlist);
Function: Removes everything from the tree except for OTUs specified in $OTUlist
Returns : none
Args : list of OTUs (string)
equals
Name : equals
Usage : $node->equals($another_node);
Function: compare if two nodes (and their subtrees) are equivalent
Returns : 1 if equal or 0 if not
Args : another Node object
get_siblings
Name : get_siblings
Usage : $node->get_siblings();
Function: get sibling nodes of this node
Returns : array ref of sibling nodes
Args : none
is_sibling
Name : is_sibling
Usage : $node1->is_sibling($node2);
Function: tests whether node1 and node2 are siblings
Returns : 1 if true, 0 if false
Args : second node
adopt
Title : adopt
Usage : $parent->adopt($child, $overwrite_children);
Function: make a parent-child relationship between two nodes
Returns : none
Args : the child node, boolean clobber flag
combine
Title : combine
Usage : my $newblock = $node->combine($child);
Function: removes a node from the tree, effectively by sliding its only child up the branch to its former position
Returns : none
Args : the child node
Methods : Combines the child node and the current node by assigning the
name, bootstrap value, children and other properties of the child. The branch length
of the current node is added to the child nodes branch length.
set_depth
Title : set_depth
Usage : $root->set_depth();
Function: Determines depth in tree of every node below this one
Returns : none
Args : This nodes depth
get_depth
Title : get_depth
Usage : $depth = $node->get_depth();
Function: Returns the nodes depth (number of generations removed from the root) in tree
Returns : integer representing nodes depth
Args : none
find_lengths
Title : find_lengths
Usage : $cladogram = 1 unless $root->find_lengths();
Function: Tries to determine if branch lengths are present in the tree
Returns : 1 if lengths are found, 0 if not
Args : none
mrca
Title : mrca
Usage : $mrca = $otu1-> mrca($otu2, $treename);
Function: Finds most recent common ancestor of otu1 and otu2
Returns : Node object of most recent common ancestor
Args : Nexus object, two otu objects, name of tree to look in
Download (0.15MB)
Added: 2006-12-21 License: Perl Artistic License Price:
1037 downloads
Gothello 0.1
Gothello is a GTK-based Othello game. more>>
Gothello project is a GTK-based Othello game.
Its for one or two players.
You can use it to play against other people or against the computer, or you can play the computer against itself. The AI is implemented using Negamax search with Alpha-Beta pruning, with Iterative Deepening.
It has both fixed-depth and fixed-time search modes.
<<lessIts for one or two players.
You can use it to play against other people or against the computer, or you can play the computer against itself. The AI is implemented using Negamax search with Alpha-Beta pruning, with Iterative Deepening.
It has both fixed-depth and fixed-time search modes.
Download (0.028MB)
Added: 2007-01-15 License: GPL (GNU General Public License) Price:
1013 downloads
Lard 0.1.6
Lard is a Logging and Rotation Daemon that can replace the functionality of sysklogd and logrotate together. more>>
Lard is a Logging and Rotation Daemon that can replace the functionality of sysklogd and logrotate together.
Logging is done almost exactly the same as syslogd, with added features such as regex matching and command triggers.
Rotation can be triggered while the daemon is running safely by sending it a simple signal.
Enhancements:
- Added -d, the typical debug option which implies -n.
- Right now it doesnt spit out that much debug info yet but I will add more debug statements later as codebase grows.
- Lard also can handle multiple match statements which makes it easier to select specific messages.
- On top of that, you can now use filter to prune unwanted messages.
<<lessLogging is done almost exactly the same as syslogd, with added features such as regex matching and command triggers.
Rotation can be triggered while the daemon is running safely by sending it a simple signal.
Enhancements:
- Added -d, the typical debug option which implies -n.
- Right now it doesnt spit out that much debug info yet but I will add more debug statements later as codebase grows.
- Lard also can handle multiple match statements which makes it easier to select specific messages.
- On top of that, you can now use filter to prune unwanted messages.
Download (0.017MB)
Added: 2005-11-02 License: Public Domain Price:
1451 downloads
AlphaBeta 0.1
AlphaBeta is a framework that implements MiniMax search with Alpha-Beta pruning. more>>
AlphaBeta is a framework that implements MiniMax search with Alpha-Beta pruning and is designed to make it simple to create two-player zero-sum perfect information games in Objective-C.
Both fixed-depth and iterative search is supported.
I created this project using Xcode, and the project checkout also includes the Reversi and TicTacToe frameworks. These are used in AlphaBetas test suite. The Reversi framework is additionally used by Desdemona, a Reversi game using AlphaBeta for its AI.
<<lessBoth fixed-depth and iterative search is supported.
I created this project using Xcode, and the project checkout also includes the Reversi and TicTacToe frameworks. These are used in AlphaBetas test suite. The Reversi framework is additionally used by Desdemona, a Reversi game using AlphaBeta for its AI.
Download (MB)
Added: 2006-03-13 License: GPL (GNU General Public License) Price:
1324 downloads
Thresh 1.5.0b
Thresh is an application for Snort that manages alert thresholding and suppression. more>>
Thresh is an application for Snort that manages alert thresholding and suppression. It was designed to assist the administrator with tuning one or more Snort sensors. The project was designed to run under Red Hat flavors of Linux.
It summarizes Snort Alerts by alert count, allows creation and editing of threshold.conf files, prunes your Snort database based on your tunings, and allows you to preview your alert suppressions before deletion.
Enhancements:
- DB queries were corrected.
- Database pruning based on suppression sets was added.
- A major code cleanup was undertaken.
- All errors with signature name queries were corrected along with all read/write calls to config files.
- The number of floating variables between POSTs on all pages was reduced. Descriptions were added to description boxes. Rule edit/delete options were added. Issues with alert counts were corrected.
- A cool way was devised to do CIDR block DELETEs and SELECTs in MySQL.
<<lessIt summarizes Snort Alerts by alert count, allows creation and editing of threshold.conf files, prunes your Snort database based on your tunings, and allows you to preview your alert suppressions before deletion.
Enhancements:
- DB queries were corrected.
- Database pruning based on suppression sets was added.
- A major code cleanup was undertaken.
- All errors with signature name queries were corrected along with all read/write calls to config files.
- The number of floating variables between POSTs on all pages was reduced. Descriptions were added to description boxes. Rule edit/delete options were added. Issues with alert counts were corrected.
- A cool way was devised to do CIDR block DELETEs and SELECTs in MySQL.
Download (0.032MB)
Added: 2007-03-26 License: GPL (GNU General Public License) Price:
981 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 2
- 1
- 2
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above pruning 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