Main > Free Download Search >

Free technique software for linux

technique

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 294
Roulette-Technique 1.0

Roulette-Technique 1.0


Free Online Roulette Guide - Become what is known in the casino industry as an advantage player. This step-by-step guide will give you the advantage... more>> <<less
Download (6264KB)
Added: 2009-04-17 License: Freeware Price: Free
208 downloads
Fenice 1.10

Fenice 1.10


Fenice is a standards-compliant multimedia streaming server. more>>
Fenice is a multimedia streaming server compliant with the IETFs standards for real-time streaming of multimedia contents over Internet. Fenice implements RTSP - Real-Time Streaming Protocol (RFC2326) and RTP/RTCP - Real-Time Transport Protocol/RTP Control Protocol (RFC3550) supporting the RTP Profile for Audio and Video Conferences with Minimal Control (RFC3551).
Fenice supports the following encoding standards:
Audio
- MP3 (MPEG-1 Layer III) (RFC3119)
- OGG/Vorbis (work in progress)
Video
- MPEG-1/2 (RFC2250)
- Preliminary support for MPEG-4 (RFC3016, RFC3640)
- OGG/Theora (work in progress)
The main characteristic of Fenice is that it is adaptable to the state of the network gotten through the technique of the dynamic coding change.
Fenice is also able to manage live streaming sessions using external real-time audio/video encoders such as lame, ffmpeg or mjpeg-tools, even capturing audio and video streams from live-recording remote hosts (with Felice - Fenice Live CEaseless).
Fenice is the worlds first streaming server supporting Creative Commons licensing meta-data for audio/video streaming.
Enhancements:
- Log support via file or sysconfig was added.
- MPEG-4 support was finished, and works best for stored contents.
- The annoying 100% CPU bug was fixed.
- Fenice should now run smoothly and reliably in almost every condition.
- Various bugs were fixed.
- Fenice is GCC4 compatible.
<<less
Download (MB)
Added: 2005-07-27 License: GPL (GNU General Public License) Price:
1554 downloads
NAT Check 1

NAT Check 1


Check Your Network Address Translator for Compatibility with Peer-to-Peer Protocols. more>>
Check Your Network Address Translator for Compatibility with Peer-to-Peer Protocols.
If you are accessing the Internet from behind a Network Address Translator (NAT) of some kind, I would appreciate your help in surveying the behavior of different NATs, in terms of how and whether they support a certain technique for enabling peer-to-peer communication between NATted hosts (particularly when both endpoints are behind NATs). Down, you can understand what NAT is.
Suppose there are three communicating hosts: A, B, and C. Host A is a "well-known" Internet server with a permanent IP address, which acts as an "introducer" for the other two nodes. (For example, Host A might be a well-known ultrapeer or a game catalog server of some kind.) Host B, using Host As "introduction" services, would like to establish a direct peer-to-peer connection with host C. Both B and C, however, are behind (probably different) network address/port translators, and neither of them has exclusive use of any public IP address.
To initiate a peer-to-peer connection with host C, host B first sends A a message requesting an "introduction" to host C. A sends B a reply message containing Cs IP address and UDP port number as reported by host C, in addition to Cs IP address and UDP port number as observed by A. (If C is behind a NAT, then these two address/port combinations will be different.) At the same time, host A sends host C a message containing Bs IP address and UDP port numbers - again, both the ones reported by B and the ones observed by A, which will be different if B is behind a NAT.
Now B and C each know that they want to initiate a connection with each other, and they know each others public (NATted) as well as original IP addresses and UDP port numbers. Both B and C now start attempting to send UDP messages directly to each other, at each of the available addresses. If B and C happen to be behind the same NAT, then they will be able to communicate with each other directly using their "originally reported" IP addresses and UDP port numbers.
In the more common case where B and C are behind different NATs, the "originally reported" addresses will be useless because they will both be private IP addresses in different addressing domains. Instead, the IP address/UDP port combinations observed by A can be used in this case to establish direct communication. Although Bs NAT will initially filter out any UDP packets arriving from Cs public (NATted) UDP port directed at Bs public port, the first UDP message B sends to C will cause Bs NAT to open up a new UDP session keyed on Cs public port, allowing future incoming traffic from C to pass through the NAT to B. Similarly, the first few messages from B to C may be filtered out by Cs NAT, but will be able to start passing through the firewall as soon as Cs first message to B causes Cs NAT to open up a new session. In this way, each NAT is tricked into thinking that its respective internal host is the "initiator" of this new session, when in fact the session is fully symmetrical and was initiated (with As help) simultaneously in each direction.
Required NAT Behavior
There is one important requirement that the NATs must satisfy in order for this technique to work: the NATs must be designed so that they assign only one (public IP address, public UDP port) pair to each (internal IP address, internal UDP port) combination, rather than allocating and assigning a new public UDP port for each new UDP session. Recall that a "session" in Internet terminology is defined by the IP addresses and port numbers of both communicating endpoints, so host Bs communication with host A is considered to be one session while host Bs communication with host C is a different session. If Bs NAT, for example, assigns one public UDP port for Bs communication with A, and then assigns B a different public UDP port for the new session B tries to open up with C, then the above technique for peer-to-peer communication will not work because Cs messages to B will be directed to the wrong UDP port.
RFC 3022 explicitly allows and suggests that NATs behave in the former, "desirable" fashion, by maintaining a single (public IP, public port) mapping for a given (internal IP, internal port) combination independent of the number of active sessions involving this mapping. This behavior is not only good for compatibility with UDP applications, but it also helps to conserve the NATs scarce pool of public port numbers. Maintaining a consistent public port mapping does not adversely affect security in any way, either, because incoming traffic can still be filtered on a per-session basis regardless of how addresses are translated. There in fact appears to be no good reason not to implement the desirable behavior in a NAT, except perhaps for the implementation simplicity of naively allocating a new public port for every new session. Unfortunately, RFC 3022 does not require NATs to implement the desirable behavior, which has led me to wonder just how many real NATs actually do, and hence this page.
What NAT Check Does
The program natcheck.c is basically just a program that "pings" a well-known UDP port at two different servers that are publically accessible on the Internet. Both of these servers run the program natserver.c, with the command-line arguments "1" and "2" respectively. In addition, there a third "conspiring" server runs natserver with the command-line argument "3". Whenever each of the first two servers receives a UDP request, it not only sends a reply directly to the sender of that request, but also sends a message to the third server, which in turn "bounces" the reply back to the original client. The effect is that the client will receive not only solicited "ping" replies from the server the request was directed to, but also "unsolicited" replies from the third server.
To determine if the network address translator in use is implementing the desirable behavior of maintaining a single (public IP address, public port) mapping for a given (client IP address, client port), the client program natcheck.c basically just initiates a sequence of simultaneous pings to the first two servers (in case some of the requests or replies are lost in transit) and checks that the clients address and UDP port as reported by both servers is the same. If the NAT naively allocates a new public port for each new session, then the source port as reported by the two servers will be different, and its time to upgrade your NAT.
The replies echoed from the third server are used only to check whether the NAT properly filters out unsolicited incoming traffic on a per-session basis. Since the client never sends any messages to the third server, if the NAT is properly implementing firewall functionality, the client should never see the third servers echoed replies even after opening up active communication sessions with the first two servers.
Enhancements:
- The NAT Check client no longer attempts to guess whether you have Basic NAT or Network Address/Port Translation (NAPT). It turns to be quite difficult to test for this property reliably, because many NAPTs attempt to bind a private UDP port to a public port with the same port number if that port number is available, causing NAT Check to falsely report Basic NAT. The only way to test for this property reliably would be to run NAT Check on at least two client machines simultaneously, and since this property isnt terribly important to P2P apps its just not worth the trouble.
- The NAT Check client now tests for one additional NAT feature, which I call loopback translation. If a NAT supports loopback translation, it means that a host on the private network behind the NAT can communicate with other hosts on the same private network using public (translated) port bindings assigned by the NAT. Most NATs probably do not support this feature yet, but it may become increasingly important in the future where P2P clients may be located behind a common ISP-deployed NAT as well as individual home NATs. More details on loopback translation will appear in the next version of my Internet-Draft, to be released soon.
- The NAT Check client program now has a command-line option, "-v", which turns on verbose messages during the test.
<<less
Added: 2006-06-21 License: GPL (GNU General Public License) Price:
737 downloads
Text::WagnerFischer 0.04

Text::WagnerFischer 0.04


Text::WagnerFischer is an implementation of the Wagner-Fischer edit distance. more>>
Text::WagnerFischer is an implementation of the Wagner-Fischer edit distance.

SYNOPSIS

use Text::WagnerFischer qw(distance);

print distance("foo","four");# prints "2"

print distance([0,1,2],"foo","four");# prints "3"


my @words=("four","foo","bar");

my @distances=distance("foo",@words);
print "@distances"; # prints "2 0 3"

@distances=distance([0,2,1],"foo",@words);
print "@distances"; # prints "3 0 3"

This module implements the Wagner-Fischer dynamic programming technique, used here to calculate the edit distance of two strings. The edit distance is a measure of the degree of proximity between two strings, based on "edits": the operations of substitutions, deletions or insertions needed to transform the string into the other one (and vice versa). A cost (weight) is needed for every of the operation defined above:

/ a if x=y (cost for letter match)
w(x,y) = | b if x=- or y=- (cost for insertion/deletion operation)
c if x!=y (cost for letter mismatch)

These costs are given through an array reference as first argument of the distance subroutine: [a,b,c]. If the costs are not given, a default array cost is used: [0,1,1] that is the case of the Levenshtein edit distance:

/ 0 if x=y (cost for letter match)
w(x,y) = | 1 if x=- or y=- (cost for insertion/deletion operation)
1 if x!=y (cost for letter mismatch)

This particular distance is the exact number of edit needed to transform the string into the other one (and vice versa). When two strings have distance 0, they are the same. Note that the distance is calculated to reach the _minimum_ cost, i.e. choosing the most economic operation for each edit.

<<less
Download (0.004MB)
Added: 2007-08-22 License: Perl Artistic License Price:
793 downloads
Enblend 3.0

Enblend 3.0


Enblend is a postprocessing tool for creating panoramic images more>>
Enblend project is a postprocessing tool for creating panoramic images. After you align image features using a program like Hugin, there are often photometric problems that lead to ugly seams in the final composite.
Enblend blends away these seams using a multiresolution spline. This technique gives good results on both low spatial frequency objects (sky and clouds) and high spatial frequency objects (trees and houses).
Enhancements:
- This release features faster image processing computations and a new seam line optimization algorithm.
- Masks can now be saved and loaded from files, color blending can be done with the CIECAM02 color appearance model, and the graphics processor can be leveraged for higher performance.
<<less
Download (0.42MB)
Added: 2007-01-28 License: GPL (GNU General Public License) Price:
1003 downloads
Search::ContextGraph 0.15

Search::ContextGraph 0.15


Search::ContextGraph is a Perl module for spreading activation search engine. more>>
Search::ContextGraph is a Perl module for spreading activation search engine.

SYNOPSIS

use Search::ContextGraph;

my $cg = Search::ContextGraph->new();

# first you add some documents, perhaps all at once...

my %docs = (
first => [ elephant, snake ],
second => [ camel, pony ],
third => { snake => 2, constrictor => 1 },
);

$cg->bulk_add( %docs );

# or in a loop...

foreach my $title ( keys %docs ) {
$cg->add( $title, $docs{$title} );
}

# or from a file...

my $cg = Search::ContextGraph->load_from_dir( "./myfiles" );

# you can store a graph object for later use

$cg->store( "stored.cng" );

# and retrieve it later...

my $cg = ContextGraph->retrieve( "stored.cng" );


# SEARCHING

# the easiest way

my @ranked_docs = $cg->simple_search( peanuts );


# get back both related terms and docs for more power

my ( $docs, $words ) = $cg->search(snake);


# you can use a document as your query

my ( $docs, $words ) = $cg->find_similar(First Document);


# Or you can query on a combination of things

my ( $docs, $words ) =
$cg->mixed_search( { docs => [ First Document ],
terms => [ snake, pony ]
);


# Print out result set of returned documents
foreach my $k ( sort { $docs->{$b} $docs->{$a} }
keys %{ $docs } ) {
print "Document $k had relevance ", $docs->{$k}, "n";
}

# Reload it
my $new = Search::ContextGraph->retrieve( "filename" );

Spreading activation is a neat technique for building search engines that return accurate results for a query even when there is no exact keyword match. The engine works by building a data structure called a context graph, which is a giant network of document and term nodes. All document nodes are connected to the terms that occur in that document; similarly, every term node is connected to all of the document nodes that term occurs in. We search the graph by starting at a query node and distributing a set amount of energy to its neighbor nodes. Then we recurse, diminishing the energy at each stage, until this spreading energy falls below a given threshold. Each node keeps track of accumulated energy, and this serves as our measure of relevance.

This means that documents that have many words in common will appear similar to the search engine. Likewise, words that occur together in many documents will be perceived as semantically related. Especially with larger, coherent document collections, the search engine can be quite effective at recognizing synonyms and finding useful relationships between documents. You can read a full description of the algorithm at http://www.nitle.org/papers/Contextual_Network_Graphs.pdf.

The search engine gives expanded recall (relevant results even when there is no keyword match) without incurring the kind of computational and patent issues posed by latent semantic indexing (LSI). The technique used here was originally described in a 1981 dissertation by Scott Preece.

<<less
Download (0.093MB)
Added: 2006-09-29 License: GPL (GNU General Public License) Price:
1120 downloads
OpenAIS 0.81

OpenAIS 0.81


OpenAIS is an open source implementation of the SA Forum Application Interface Specification. more>>
The openais project is a project to implement a production quality "Revised BSD" licensed implementation of the SA Forums Application Interface Specification. OpenAIS project implements cutting edge research on virtual synchrony to provide 100% correct operation in the face of failures or partitionable networks with excellent performance characteristics.
The Application Interface Specification is a software API and policies which are used to develop applications that maintain service during faults. The API consists of Availability Management Framework (AMF) which provides application failover, Cluster Membership (CLM), Checkpointing (CKPT), Event (EVT), Messaging (MSG), and Distributed Locks (DLOCK).
Faults occur for various reasons:
- Application Failure
- Middleware Failure
- Operating System Failure
- Hardware Failure
The major focus of high availability in the past has been to mask hardware faults. Faults in other components of the system have gone unsolved until AIS. AIS can mask many types of faults in applications, middleware, operating systems, or even hardware by providing a simple framework for allowing developers to create redundant applications. These redundant applications can be distributed over multiple nodes such that if any one node faults, another node can recover.
Application programmers develop applications to periodically record their state using the checkpointing service. When an active application fails, a standby application recovers the state of the application. This technique, called stateful application failover, provides the fundamental difference between openais and other systems that have come before it. With stateful application failover, the end-application user doesnt have to reload the application or redial a telephone. The full state is recorded, so the end-application user sees no interruption in service.
Because programmers can now distribute applications across multiple processes or nodes, a mechanism must exist for them to communicate. This mechanism is provided by two services. The event service provides a publish/subscribe model for events. The messaging service provides end to end messaging. Finally a mechanism to synchronize access is provided by the distributed lock service.
Enhancements:
- This version significantly improves support for AMF B.02.01 n+m failover of components.
- Most of the QA that went into Whitetank (0.80.2) has been merged.
<<less
Download (0.24MB)
Added: 2007-03-25 License: BSD License Price:
943 downloads
Rotoscope 0.2

Rotoscope 0.2


Rotoscope is a free software graphics program that can be used to give photos a cartoon-like appearance. more>>
Rotoscope is a program to rotoscope images.

Rotoscope is a free software graphics program that can be used to give photos a cartoon-like appearance. This is similar to the technique used in movies like Waking Life (Wikipedia) and A Scanner Darkly (Wikipedia). The technique is called rotoscoping.

<<less
Download (0.025MB)
Added: 2007-07-17 License: GPL (GNU General Public License) Price:
859 downloads
bilateral filter 0.1.2

bilateral filter 0.1.2


bilateral filter is a denoising filter using the same technique as the selective gaussian blur. more>>
bilateral filter is a denoising filter using the same technique as the selective gaussian blur, but with speedups and other enhancements.

The filter is slow when the blur radius is small but speeds up when the radius gets larger, which is the opposite behavior of the selective gaussian blur. Theres also an option for improved denoising of image gradients.

<<less
Download (0.13MB)
Added: 2006-08-16 License: GPL (GNU General Public License) Price:
1182 downloads
joeq virtual machine 20030812

joeq virtual machine 20030812


joeq virtual machine is a language-independent Java virtual machine implemented in Java. more>>
Joeq is a virtual machine and compiler infrastructure designed to facilitate research in virtual machine technologies such as Just-In-Time and Ahead-Of-Time compilation, advanced garbage collection techniques, distributed computation, sophisticated scheduling algorithms, and advanced run time techniques.
Joeq is entirely implemented in Java, leading to reliability, portability, maintainability, and efficiency. It is also language-independent, so code from any supported language can be seamlessly compiled, linked, and executed -- all dynamically.
Each component of the virtual machine is written to be independent with a general but well-defined interface, making it easy to experiment with new ideas.
Joeq is released as open source software, and is being used as a framework by researchers on five continents on topics ranging from automatic distributed virtual machines to whole-program pointer analysis.
Joeq is a virtual machine and compiler infrastructure designed to be a platform for research in compilation and virtual machine technologies. We had three main goals in designing the system. First and foremost, we wanted the system to be flexible. We are interested in a variety of compiler and virtual machine research topics, and we wanted a system that would not be specific to researching a particular area.
For example, we have interest in both static and dynamic compilation techniques, and in both type-safe and unsafe languages. We wanted a system that would be as open and general as possible, without sacrificing usability or performance.
Second, we wanted the system to be easy to experiment with. As its primary focus is research, it should be straightforward to prototype new ideas in the framework. With this in mind, we tried to make the system as modular as possible, so that each component is easily replaceable. Learning from our experience with Jalapeno, another virtual machine written in Java, we decided to implement the entire system in Java.
This makes it easy to quickly implement and prototype new ideas, and features like garbage collection and exception tracebacks ease debugging and improve productivity. Java, being a dynamic language, is also a good consumer for many of our dynamic compilation techniques; the fact that our dynamic compiler can compile the code of the virtual machine itself means that it can dynamically optimize the virtual machine code with respect to the application that is running on it. Javas object-oriented nature also facilitates modularity of the design and implementation.
Third, we wanted the system to be useful to a wide audience. The fact that the system is written in Java means that much of the system can be used on any platform that has an implementation of a Java virtual machine. The fact that Joeq supports popular input languages like Java, C, C++, Fortran, and even x86 binary code increases the scope of input programs. We released the system on the SourceForge web site as open source under the Library GNU Public License.
It has been picked up by researchers on five continents for various purposes, among them: automatic extraction of component interfaces, static whole-program pointer analysis, context-sensitive call graph construction, automatic distributed computation, versioned type systems for operating systems, sophisticated profiling of applications, advanced dynamic compilation techniques, system checkpointing, anomaly detection, secure execution platforms and autonomous systems. In addition, Joeq is now used as the basis of the Advanced Compilation Techniques class taught at Stanford University.
Joeq supports two modes of operation: native execution and hosted execution. In native execution, the Joeq code runs directly on the hardware. It uses its own run-time routines, thread package, garbage collector, etc. In hosted execution, the Joeq code runs on top of another virtual machine. Operations to access objects are translated into calls into the reflection library of the host virtual machine.
The user code that executes is identical, and only a small amount of functionality involving unsafe operations is not available when running in hosted execution mode. Hosted execution is useful for debugging purposes and when the underlying machine architecture is not yet directly supported by Joeq. We also use hosted execution mode to bootstrap the system and perform checkpointing, a technique for optimizing application startup times.
Joeq system consists of seven major parts:
- Front-end: Handles the loading and parsing of input files, such as Java class files, SUIF files, and binary object files.
- Compiler: A framework for performing analyses and optimizations on code. This includes the intermediate representation (IR) of our compiler.
- Back-end: Converts the compilers intermediate representation into native, executable code. This code can be output to an object file or written into memory to be executed. In addition, it generates metadata about the generated code, such as garbage collection maps and exception handling information.
- Interpreter: Directly interprets the various forms of compiler intermediate representations.
- Memory Manager: Organizes and manages memory. Joeq supports both explicitly-managed and garbage-collected memory.
- Dynamic: Provides profile data to the code analysis and optimization component, makes compilation policy decisions, and drives the dynamic compiler.
- Run-time Support: Provides runtime support for introspection, thread scheduling, synchronization, exception handling, interfacing to external code, and language-specific features such as dynamic type checking.
<<less
Download (1.0MB)
Added: 2005-04-22 License: LGPL (GNU Lesser General Public License) Price:
1645 downloads
EmacsSpeak 24.0

EmacsSpeak 24.0


Emacspeak is a speech interface that allows visually impaired users to interact independently and efficiently with the computer. more>>
Emacspeak is a speech interface that allows visually impaired users to interact independently and efficiently with the computer.

Audio formatting --a technique pioneered by AsTeR-- and full support for W3Cs Aural CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic information. By seamlessly blending all aspects of the Internet such as Web-surfing and messaging, Emacspeak speech-enables local and remote information via a consistent and well-integrated user interface.

Available free of cost on the Internet, Emacspeak has dramatically changed how the author and hundreds of blind and visually impaired users around the can interact with the their computer and the Internet. A rich suite of task-oriented tools provides efficient speech-enabled access to the audio desktop and evolving semantic WWW. When combined with Linux running on low-cost PC hardware, Emacspeak/Linux provides a reliable, stable speech-friendly solution that opens up the Internet to visually impaired users around the world.
<<less
Download (2.3MB)
Added: 2006-07-19 License: GPL (GNU General Public License) Price:
1196 downloads
python-Observable 0.1.0

python-Observable 0.1.0


python-observable lets Python developers build loosely coupled object meshes with a complete Observer/Observable implementation. more>>
python-observable library lets Python developers build loosely coupled object meshes with a complete Observer/Observable implementation.

In software development literature, Observer/Observable is a software
pattern. From an Observer/Observable perspective, there are two kinds
of objects:

- objects which experience events or state changes (Observables)
- objects which need to know about other objects events (Observers)

If you have any experience with event-based programming, such as with
toolkits like GTK+ or Qt, youll be familiar with the Observer/Observable
pattern. Observer objects register themselves with the Observable object
of their interest, and when Observables experience events, these events
are relayed to the Observers.

Observer/Observable lets software developers build loosely coupled object meshes. What this means to you: your software will be more stable and easier to refactor.

This module has a complete Observer/Observable implementation. To take advantage of this module, all you have to do is:

- Make your Observable classes inherit from Observable (dont forget to call Observable.__init__(self) in the constructor)
- Make your Observer classes inherit from Observer (dont forget to call Observer.__init__(self) in the constructor)
- At runtime, for each object you want to observe, call self.observe(observable_object) in a method of your Observer object.
- In your Observable object, every time an event happens, call:
...
self.broadcastEvent("MyEventName",argument1,argument2...)
...
- In your Observer object, implement a method named: def processEvent(self,notifierObject,eventName,*args): which will receive the notifier object, an event name, and a variable number of arguments, every time broadcastEvent is called in any of the Observable objects that have been observed()

Thats it. Keep in mind that processEvent() will be invoked in the same thread context as the code which called broadcastEvent() in the Observable object. Thus, processEvent() methods should return quickly and never do blocking operations (suggested technique for coping with blocking operations: run them in a separate thread, which sleeps until a flag is raised, and raise the flag in the processEvent() method as appropriate).

<<less
Download (0.013MB)
Added: 2005-12-05 License: GPL (GNU General Public License) Price:
1418 downloads
Maypole::Plugin::QuickTable 0.422

Maypole::Plugin::QuickTable 0.422


Maypole::Plugin::QuickTable is a HTML::QuickTable convenience. more>>
Maypole::Plugin::QuickTable is a HTML::QuickTable convenience.

SYNOPSIS

use Maypole::Application qw( LinkTools QuickTable );

METHODS

setup

quick_table

Returns a HTML::QuickTable object for formatting data.

print $request->quick_table( %args )->render( $data );

The method gathers arguments from the quicktable_defaults method on the model class. This is a Class::Data::Inheritable method, so you can set global defaults on the main model class, and then override them in model subclasses. To preserve most settings and override others, say something like

$sub_model->quicktable_defaults( { %{ $model->quicktable_defaults }, %hash_of_overrides } );

Arguments passed in the method call override those stored on the model.

Arguments are passed directly to HTML::QuickTable->new, so see HTML::QuickTable for a description.

Additional arguments are:

object => a Maypole/CDBI object

Pass a Maypole/CDBI object in the object slot, and its data will be extracted and $qt->render called for you:

print $request->quick_table( %args, object => $object );

Related objects will be displayed as links to their view template.
If no object is supplied, a HTML::QuickTable object is returned. If an object is supplied, it is passed to tabulate to extract its data, and the data passed to the render method of the HTML::QuickTable object.

To render a subset of an objects columns, say:

my @data = $request->tabulate( objects => $object, with_colnames => 1, fields => [ qw( foo bar ) ] );

$request->quick_table( @data );

tabulate( $object|$arrayref_of_objects, %args )

Extract data from a Maypole/CDBI object (or multiple objects), ready to pass to quick_table->render. Data will start with a row of column names if $args{with_colnames} is true.

A callback subref can be passed in $args{callback}. It will be called in turn with each object as its argument. The result(s) of the call will be added to the row of data for that object. See the list template in Maypole::FormBuilder, which uses this technique to add edit and delete buttons to each row.

Similarly, a field_callback coderef will be called during rendering of each field, receiving the object and the current field as arguments. See the addmany template for an example.

Arguments:

callback coderef
field_callback coderef
with_colnames boolean
fields defaults to ( $request->model_class->display_columns, $request->model_class->related )
objects defaults to $request->objects
orderby_link( $field, [ $model_class ] )

Build a link for a column header. Controls whether the table should be sorted by that column. Toggles sort direction.

The $model_class parameter is only necessary when building a table for a class different from the current model class for the request.

<<less
Download (0.007MB)
Added: 2006-10-24 License: Perl Artistic License Price:
1095 downloads
translate plus 1.0

translate plus 1.0


translate plus is a facelift, update, and re-code of the Translate theme from Suslik. more>>
translate plus is a facelift, update, and re-code of the Translate theme from Suslik. This version utilises a new technique for coding input boxes for Superkaramba, which was written (again) by Suslik.

This new technique allows for a transparent input box, which allows for a much nicer looking theme

<<less
Download (0.058MB)
Added: 2007-04-17 License: GPL (GNU General Public License) Price:
924 downloads
THC-FuzzyFingerprint 0.0.8

THC-FuzzyFingerprint 0.0.8


THC-FuzzyFingerprint tool generates fuzzy fingerprints as described in the corresponding paper. more>>
Welcome to the world of Fuzzy Fingerprinting, a new technique to attack cryptographic key authentication protocols that rely on human verification of key fingerprints. It is important to note that while fuzzy fingerprinting is an attack against a protocol, it is not a cryptographic attack and thus does not attack any cryptographic algorithm.

THC-FuzzyFingerprint tool generates fuzzy fingerprints as described in the corresponding paper. It is an ideal extension to man-in-the-middle attacks against the SSH service. The current version supports RSA and DSA key generation and MD5 and SHA1 fingerprints.

The Challenge:

THC is doing a little "seti@home" like competition. The challenge is to generate the best fuzzy fingerprint for our target public SSH host key. Here are some information on our victims SSH public host key.

The victim host: kimble.org
Public SSH key: kimble.org.pub
Public key algorithm: RSA
Public key length: 1024
MD5 key fingerprint: 08:54:5d:27:f8:e9:47:4e:49:8a:87:7e:03:cc:98:73

Download the fuzzy fingerprint release from the link at the top of this page and join the competition. Compile ffp and launch the tool against the victim hosts fingerprint and key algorithm using the following setup. (It is essential that you provide all of the given arguments to ffp so that we are able to compare different peoples fuzzy fingerprints)

$ ffp -f md5 -k rsa -b 1024
-t 08:54:5d:27:f8:e9:47:4e:49:8a:87:7e:03:cc:98:73
-s /var/tmp/kimble.org.state

You can stop the process at any point and continue later by just using the following comman line options.

$ ffp -s /var/tmp/kimble.org.state
<<less
Download (0.20MB)
Added: 2006-03-08 License: GPL (GNU General Public License) Price:
1327 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5