doubts
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 39
PolkaDot 1.5
PolkaDot is a really simple blogging system, roughly based on Blurt, which in turn is based on Bloxsom. more>>
PolkaDot is a really simple blogging system, roughly based on Blurt, which in turn is based on Bloxsom.
PolkaDot project is much simpler than either, both in terms of installation/configuration as well as its (minimal) feature set. Its also written in PHP, rather than Perl like its inspirations.
Its short for "Itsy Bitsy Teenie Weenie Yellow Polka-Dot Blogkini." Or did you mean "Why write PolkaDot?" Actually, my friend Roger has a blog and I was giving him a hard time because hes using WordPress rather than writing his own blogging software. (I mean, really, what kind of a geek doesnt write his own blogging software.) I had seen Blurt on Freshmeat recently, and decided to whip up something similar in PHP. Took a couple hours, total. (Granted, I grabbed all the hard code from php.net comments.)
Main features:
- Its free.
- It just needs PHP. Thats all. No database. No external libraries. No Perl or ASP. Nothing fancy at all. Itll run on the cheapest of hosts.
- Theres no real installation.
- Theres very little configuration. And, even if you dont configure a thing, itll still work.
- Its simple as can be:
- Posts are just text files.
- Categories are just sub-directories.
Version restrictions:
- Very few features.
- No RSS feed. (Although I might add this.)
- No comments. (Doubt Ill add this.)
- Uses system time. Im on the east coast. The host is on the west coast. So all the posts show a time 3 hours earlier than my local time. (I might fix this.)
- No fancy stuff like calendars and opinion polls.
- Probably doesnt scale real well. (But, if you wanted a large site, why would you even think of using this software?)
- A whole lot of other things that arent coming to me right at the moment.
<<lessPolkaDot project is much simpler than either, both in terms of installation/configuration as well as its (minimal) feature set. Its also written in PHP, rather than Perl like its inspirations.
Its short for "Itsy Bitsy Teenie Weenie Yellow Polka-Dot Blogkini." Or did you mean "Why write PolkaDot?" Actually, my friend Roger has a blog and I was giving him a hard time because hes using WordPress rather than writing his own blogging software. (I mean, really, what kind of a geek doesnt write his own blogging software.) I had seen Blurt on Freshmeat recently, and decided to whip up something similar in PHP. Took a couple hours, total. (Granted, I grabbed all the hard code from php.net comments.)
Main features:
- Its free.
- It just needs PHP. Thats all. No database. No external libraries. No Perl or ASP. Nothing fancy at all. Itll run on the cheapest of hosts.
- Theres no real installation.
- Theres very little configuration. And, even if you dont configure a thing, itll still work.
- Its simple as can be:
- Posts are just text files.
- Categories are just sub-directories.
Version restrictions:
- Very few features.
- No RSS feed. (Although I might add this.)
- No comments. (Doubt Ill add this.)
- Uses system time. Im on the east coast. The host is on the west coast. So all the posts show a time 3 hours earlier than my local time. (I might fix this.)
- No fancy stuff like calendars and opinion polls.
- Probably doesnt scale real well. (But, if you wanted a large site, why would you even think of using this software?)
- A whole lot of other things that arent coming to me right at the moment.
Download (0.011MB)
Added: 2005-12-20 License: Freeware Price:
1403 downloads
Sub::PatMat 0.01
Sub::PatMat can call a version of subroutine depending on its arguments. more>>
Sub::PatMat can call a version of subroutine depending on its arguments.
SYNOPSIS
use Sub::PatMat;
# basics:
sub fact : when($_[0] $b) { 1 }
print join ", ", sort mysort (3,1,2);
# intuiting parameter names:
sub dispatch : when($ev eq "help") { my ($ev) = @_; print "helpn" }
sub dispatch : when($ev eq "blah") { my ($ev) = @_; print "blahn" }
dispatch("help");
dispatch("blah");
# no fallback, this will die:
dispatch("hest"); # dies with "Bad match"
# silly
sub do_something : when(full_moon()) { do_one_thing() }
sub do_something { do_something_else() }
The Sub::PatMat module provides the programmer with the ability to define a subroutine multiple times and to specify what version of the subroutine should be called, depending on the parameters passed to it (or any other condition).
This is somewhat similar to argument pattern matching facility provided by many programming languages.
To use argument pattern matching on a sub, the programmer has to specify the when attribute. The parameter to the attribute must be a single Perl expression.
When the sub is called, those expressions are evaluated consequitively until one of them evaluates to a true value. When this happens, the corresponding version of a sub is called.
If none of the expressions evaluates to a true value, a Bad Match exception is thrown.
It is possible to specify a fall-back version of the function by doing one of the following:
specifying when without an expression
specifying when with an empty expression
not specifying the when attribute at all
Please note that it does not make sense to specify any non-fall-back version of the sub after the fall-back version, since such will never be called.
There is an additional limitation for the last form of the fall-back version (the one without the when attribute at all), namely, it must be the last version of the sub defined.
It is possible to specify named sub parameters in the when-expression. This facility is highly experimental and is currently limited to scalar parameters only. The named sub parameters are extracted from expressions of the form
my (parameter list) = @_;
anywhere in the body of the sub.
Version restrictions:
- The ability to intuit parameter names is very limited and without doubts buggy.
- The when attribute condition is limited to a single Perl expression.
Enhancements:
- Perl
<<lessSYNOPSIS
use Sub::PatMat;
# basics:
sub fact : when($_[0] $b) { 1 }
print join ", ", sort mysort (3,1,2);
# intuiting parameter names:
sub dispatch : when($ev eq "help") { my ($ev) = @_; print "helpn" }
sub dispatch : when($ev eq "blah") { my ($ev) = @_; print "blahn" }
dispatch("help");
dispatch("blah");
# no fallback, this will die:
dispatch("hest"); # dies with "Bad match"
# silly
sub do_something : when(full_moon()) { do_one_thing() }
sub do_something { do_something_else() }
The Sub::PatMat module provides the programmer with the ability to define a subroutine multiple times and to specify what version of the subroutine should be called, depending on the parameters passed to it (or any other condition).
This is somewhat similar to argument pattern matching facility provided by many programming languages.
To use argument pattern matching on a sub, the programmer has to specify the when attribute. The parameter to the attribute must be a single Perl expression.
When the sub is called, those expressions are evaluated consequitively until one of them evaluates to a true value. When this happens, the corresponding version of a sub is called.
If none of the expressions evaluates to a true value, a Bad Match exception is thrown.
It is possible to specify a fall-back version of the function by doing one of the following:
specifying when without an expression
specifying when with an empty expression
not specifying the when attribute at all
Please note that it does not make sense to specify any non-fall-back version of the sub after the fall-back version, since such will never be called.
There is an additional limitation for the last form of the fall-back version (the one without the when attribute at all), namely, it must be the last version of the sub defined.
It is possible to specify named sub parameters in the when-expression. This facility is highly experimental and is currently limited to scalar parameters only. The named sub parameters are extracted from expressions of the form
my (parameter list) = @_;
anywhere in the body of the sub.
Version restrictions:
- The ability to intuit parameter names is very limited and without doubts buggy.
- The when attribute condition is limited to a single Perl expression.
Enhancements:
- Perl
Download (0.014MB)
Added: 2007-08-07 License: Perl Artistic License Price:
808 downloads
Sound Studio 1.0.6
Sound Studio is a Sound Editing Tool. more>>
Sound Studio is a Tcl/Tk application written by Paul Sharpe as his third year individual project, for which he received the Microsoft Prize for Software Engineering. It was subsequently improved by Robin Whitehead.
It enables recording, playback and simple cut & paste editing of sound files of diverse formats on a PC equipped with a soundcard and the OSS (formally VoxWare) sound drivers.
It uses Lance Norskogs Sox for format conversion; the version weve used is bundled together with this software in its entirety to prevent incompatibility problems, although you should try it with your own sox if you have a more recent one.
Sound Studio is now "finished", but no doubt there are loads of bugs still to be found and features to be added.
<<lessIt enables recording, playback and simple cut & paste editing of sound files of diverse formats on a PC equipped with a soundcard and the OSS (formally VoxWare) sound drivers.
It uses Lance Norskogs Sox for format conversion; the version weve used is bundled together with this software in its entirety to prevent incompatibility problems, although you should try it with your own sox if you have a more recent one.
Sound Studio is now "finished", but no doubt there are loads of bugs still to be found and features to be added.
Download (0.64MB)
Added: 2005-08-24 License: GPL (GNU General Public License) Price:
1584 downloads
PuTTY 0.60
PuTTY is a Telnet and SSH client. more>>
PuTTY project is a client program for the SSH, Rlogin and Telnet network protocols.
These protocols are all used to run a remote session on a computer, over a network. PuTTY implements the client end of that session: the end at which the session is displayed, rather than the end at which it runs.
In really simple terms: you run PuTTY on a Windows machine, and tell it to connect to (for example) a Unix machine. PuTTY opens a window.
Then, anything you type into that window is sent straight to the Unix machine, and everything the Unix machine sends back is displayed in the window. So you can work on the Unix machine as if you were sitting at its console, while actually sitting somewhere else.
Main features:
- PuTTY (the Telnet and SSH client itself)
- PSCP (an SCP client, i.e. command-line secure file copy)
- PSFTP (an SFTP client, i.e. general file transfer sessions much like FTP)
- PuTTYtel (a Telnet-only client)
- Plink (a command-line interface to the PuTTY back ends)
- Pageant (an SSH authentication agent for PuTTY, PSCP and Plink)
- PuTTYgen (an RSA and DSA key generation utility)
LEGAL WARNING: Use of PuTTY, PSCP, PSFTP and Plink is illegal in countries where encryption is outlawed. I believe it is legal to use PuTTY, PSCP, PSFTP and Plink in England and many other countries, but I am not a lawyer and so if in doubt you should seek legal advice before downloading it.
Enhancements:
- Mostly bugfixes.
<<lessThese protocols are all used to run a remote session on a computer, over a network. PuTTY implements the client end of that session: the end at which the session is displayed, rather than the end at which it runs.
In really simple terms: you run PuTTY on a Windows machine, and tell it to connect to (for example) a Unix machine. PuTTY opens a window.
Then, anything you type into that window is sent straight to the Unix machine, and everything the Unix machine sends back is displayed in the window. So you can work on the Unix machine as if you were sitting at its console, while actually sitting somewhere else.
Main features:
- PuTTY (the Telnet and SSH client itself)
- PSCP (an SCP client, i.e. command-line secure file copy)
- PSFTP (an SFTP client, i.e. general file transfer sessions much like FTP)
- PuTTYtel (a Telnet-only client)
- Plink (a command-line interface to the PuTTY back ends)
- Pageant (an SSH authentication agent for PuTTY, PSCP and Plink)
- PuTTYgen (an RSA and DSA key generation utility)
LEGAL WARNING: Use of PuTTY, PSCP, PSFTP and Plink is illegal in countries where encryption is outlawed. I believe it is legal to use PuTTY, PSCP, PSFTP and Plink in England and many other countries, but I am not a lawyer and so if in doubt you should seek legal advice before downloading it.
Enhancements:
- Mostly bugfixes.
Download (1.2MB)
Added: 2007-05-12 License: MIT/X Consortium License Price:
3604 downloads
CGIProxy 2.1 Beta 15
CGIProxy is an anonymizing, filter-bypassing, HTTP/FTP proxy in a CGI script. more>>
This CGI script acts as an HTTP or FTP proxy. Through it, you can retrieve any resource that is accessible from the server it runs on. This is useful when your own access is limited, but you can reach a server that in turn can reach others that you cant.
In addition, the user is kept as anonymous as possible from any servers. Common uses include: anonymous proxies similar to The Anonymizer, other personal uses, VPN-like functionality, and others. Its very simple to install, and very configurable.
When an HTML resource is retrieved, its modified so that all links in it point back through the same proxy, including images, form submissions, and everything else. Once youre using the proxy, you can browse normally and (almost) forget its there.
Configurable options include text-only support (to save bandwidth), selective cookie and script removal, simple ad filtering, access restriction by server, custom encoding of target URLs and cookies, and more-- there are about 45 options so far.
CGIProxy can run under mod_perl unchanged. It requires Perl 5.004 or later; Perl 5.6.1 or later may be required in future releases.
Version restrictions:
- Anonymity MAY NOT BE PERFECT!! In particular, there may be some holes where JavaScript can slip through. (If you find these or any other anonymity holes, please tell me!) For best anonymity, turn JavaScript off in your browser.
- URLs generated by JavaScript or similar mechanisms wont be re-proxyed correctly. JavaScript in general may not work as expected, especially if it accesses the network.
- If you browse to many sites with cookies, CGIProxy may drop some, but I havent seen this happen yet.
- To save CPU time, I took some shortcuts with URL-handling. I doubt these will ever affect anything, but tell me if you have problems. (The shortcuts are listed in the source code.)
- I didnt follow the spec on HTTP proxies, and there are violations of the protocol. Actually, this whole concept is a violation of the proxy model, so Im not too worried. If any protocol violations cause you problems, please let me know.
- Only HTTP and FTP are supported so far.
Enhancements:
- "javascript:" URLs are now handled better.
- rot-13 encoding of cookies now works correctly.
- "about:blank" pages no longer generate a warning page.
- The URL field in the start page now gets focus automatically.
- A few other bugfixes and workarounds are included.
<<lessIn addition, the user is kept as anonymous as possible from any servers. Common uses include: anonymous proxies similar to The Anonymizer, other personal uses, VPN-like functionality, and others. Its very simple to install, and very configurable.
When an HTML resource is retrieved, its modified so that all links in it point back through the same proxy, including images, form submissions, and everything else. Once youre using the proxy, you can browse normally and (almost) forget its there.
Configurable options include text-only support (to save bandwidth), selective cookie and script removal, simple ad filtering, access restriction by server, custom encoding of target URLs and cookies, and more-- there are about 45 options so far.
CGIProxy can run under mod_perl unchanged. It requires Perl 5.004 or later; Perl 5.6.1 or later may be required in future releases.
Version restrictions:
- Anonymity MAY NOT BE PERFECT!! In particular, there may be some holes where JavaScript can slip through. (If you find these or any other anonymity holes, please tell me!) For best anonymity, turn JavaScript off in your browser.
- URLs generated by JavaScript or similar mechanisms wont be re-proxyed correctly. JavaScript in general may not work as expected, especially if it accesses the network.
- If you browse to many sites with cookies, CGIProxy may drop some, but I havent seen this happen yet.
- To save CPU time, I took some shortcuts with URL-handling. I doubt these will ever affect anything, but tell me if you have problems. (The shortcuts are listed in the source code.)
- I didnt follow the spec on HTTP proxies, and there are violations of the protocol. Actually, this whole concept is a violation of the proxy model, so Im not too worried. If any protocol violations cause you problems, please let me know.
- Only HTTP and FTP are supported so far.
Enhancements:
- "javascript:" URLs are now handled better.
- rot-13 encoding of cookies now works correctly.
- "about:blank" pages no longer generate a warning page.
- The URL field in the start page now gets focus automatically.
- A few other bugfixes and workarounds are included.
Download (0.13MB)
Added: 2006-10-27 License: Free for non-commercial use Price:
654 downloads
libzdt 2.0.2
libzdt is a free general library aimed at anyone who wants to use it. more>>
libzdt is a free general library aimed at anyone who wants to use it.
Some people may wonder why we need another software library. The answer is simple: What others dont offer, were trying to provide.
This basically meaning, while some of the things included in libzdt are included in other libraries, either we think the implementation isnt perfect, or we just feel it would make a great compliment to what were trying to do which is make life easier for those who want to write software.
While libzdt does not contain any graphical user interface API, it may later (please keep in mind that libzdt is still very pliable in a GUI application depending on what it is, and what the application does).
Anyway, libzdt is just a collection of functions Ive wrote over the years, or someone else has written and Ive just picked em up (you can see the list of people to whom I owe thanks for their code in the Documentation/Authors file). libzdts primary use will be in ZerOS, the operating system myself and a few friends are designing and developing (well, Im doing the development), right now however, its primary use is in custom commercial software my company writes. This version however, is not used in any commercial software, please see further into this document for more information on libzdt itself.
Little note on our coding style, at least myself, I go by the Linux kernel coding standards (which are included in the Documentation/CodingStyle file).
Anyway, back to libzdt itself... Its being rewritten for one reason, and one simple reason only. The version of libzdt that I use myself (not to say I dont use this one, because I do) is private, closed source. Its a library written in Objective-C++ anyway, so only a few platforms can use it (MacOS X, NeXTSTEP/OpenStep are the only platforms that I know have a working ObjC++ compiler), and besides, the code is ugly looking.
To compile libzdt, all you have to do is go into the main directory, which you are no doubt in right now reading this file, and type: make. This will build both the static library and shared library files and place them in the $LIBZDT_ROOT/Objects.x86 directory. In previous versions you had to type: make depend shared static, or something of the such to build all that you can now with just the make command without any arguments. To install libzdt, you must be root (or a user who has permissions to run ldconfig) in order to complete the install process. Simply type: make install.
<<lessSome people may wonder why we need another software library. The answer is simple: What others dont offer, were trying to provide.
This basically meaning, while some of the things included in libzdt are included in other libraries, either we think the implementation isnt perfect, or we just feel it would make a great compliment to what were trying to do which is make life easier for those who want to write software.
While libzdt does not contain any graphical user interface API, it may later (please keep in mind that libzdt is still very pliable in a GUI application depending on what it is, and what the application does).
Anyway, libzdt is just a collection of functions Ive wrote over the years, or someone else has written and Ive just picked em up (you can see the list of people to whom I owe thanks for their code in the Documentation/Authors file). libzdts primary use will be in ZerOS, the operating system myself and a few friends are designing and developing (well, Im doing the development), right now however, its primary use is in custom commercial software my company writes. This version however, is not used in any commercial software, please see further into this document for more information on libzdt itself.
Little note on our coding style, at least myself, I go by the Linux kernel coding standards (which are included in the Documentation/CodingStyle file).
Anyway, back to libzdt itself... Its being rewritten for one reason, and one simple reason only. The version of libzdt that I use myself (not to say I dont use this one, because I do) is private, closed source. Its a library written in Objective-C++ anyway, so only a few platforms can use it (MacOS X, NeXTSTEP/OpenStep are the only platforms that I know have a working ObjC++ compiler), and besides, the code is ugly looking.
To compile libzdt, all you have to do is go into the main directory, which you are no doubt in right now reading this file, and type: make. This will build both the static library and shared library files and place them in the $LIBZDT_ROOT/Objects.x86 directory. In previous versions you had to type: make depend shared static, or something of the such to build all that you can now with just the make command without any arguments. To install libzdt, you must be root (or a user who has permissions to run ldconfig) in order to complete the install process. Simply type: make install.
Download (0.090MB)
Added: 2006-03-24 License: BSD License Price:
1310 downloads
XPilot 4.5.4
XPilot is a multi-player 2D client/server space game. more>>
XPilot project is a multi-player 2D client/server space game.
XPilot is a multi-player 2D space game. Some features are borrowed from classics like the Atari coin-ups Asteroids and Gravitar, and the home-computer games Thrust (Commodore 64) and Gravity Force (Commodore Amiga), but XPilot has many new aspects too.
Main features:
- True client/server based game; optimal speed for every player.
- Meta server with up to date information about servers hosting games around the world.
- A web of world-wide rating servers; compare your skills with pilots from all around the world, and climb the ladder of the world-wide rating list.
- Real physics; particles of explosions and sparks from your engines all affect you if youre hit by them. This makes it possible to kill someone by blowing them into a wall with engine thrust or shock waves from explosions.
- Specialized editors for editing ship-shapes and maps.
- Game objective and gameplay adjustable through a number of options, specified on the commandline, in special option files, or in the map files. Examples of modes of the game:
- classical dogfight; equipped with only your gun, you have to rely on your maneuvering and tactical skills
- team; fight together, steal other teamss treasures (involves flying around with a ball in a string, much like in Thrust) and blow up their targets (which are, no doubt, heavily guarded)
- all out nuclear war; chose carefully between more than twenty weapon and defense systems to stay alive and annihilate your enemies
- race; make it through the deadly course before your opponents
- Adjustable gravity; adjustable by putting special attractors or deflectors in the world, or by adjusting the global gravity in various ways.
- Cannons and personalized and vengeful robot fighters give you a hard time.
- Watch your energy, and remember to dock with a fuel station to refuel before its too late.
- Defend your home base, or terrorize and steal someone elses.
- Equip your ship with the 15+ defense and weapon systems: afterburners, cloaking devices, sensors, transporters, extra cannons, mines and bombs, rockets (smarts, torpedos and nuclear), ECM, laser, extra tanks, autopilot etc.
To start playing, you need to connect to a server by using a client program called xpilot. There are always servers running if you check with the meta server, but if you for some reason do not want to join them, youll have to start a server of your own (see man-page xpilots(6)).
Enhancements:
- Team cannons could kill teammates with laser pulses. Fixed.
- On the map Death Star one can destroy a large number of targets with one FNC. This results in packet buffer overflows and slow updates. To overcome this a smarter map update algorithm is implemented in the server and also map updates are now limited to max 2 KB per network packet.
- The default score font was reduced from 15 to 13.
- When the server sends map updates to the client these are now always acknowledged immediately by the client. This should help prevent stalls or lock-ups on maps where are a large number of targets or cannons can be destroyed. It should also reduce the number of very big server frame update packets.
- Robots no longer try to go after players who arent in playing mode.
<<lessXPilot is a multi-player 2D space game. Some features are borrowed from classics like the Atari coin-ups Asteroids and Gravitar, and the home-computer games Thrust (Commodore 64) and Gravity Force (Commodore Amiga), but XPilot has many new aspects too.
Main features:
- True client/server based game; optimal speed for every player.
- Meta server with up to date information about servers hosting games around the world.
- A web of world-wide rating servers; compare your skills with pilots from all around the world, and climb the ladder of the world-wide rating list.
- Real physics; particles of explosions and sparks from your engines all affect you if youre hit by them. This makes it possible to kill someone by blowing them into a wall with engine thrust or shock waves from explosions.
- Specialized editors for editing ship-shapes and maps.
- Game objective and gameplay adjustable through a number of options, specified on the commandline, in special option files, or in the map files. Examples of modes of the game:
- classical dogfight; equipped with only your gun, you have to rely on your maneuvering and tactical skills
- team; fight together, steal other teamss treasures (involves flying around with a ball in a string, much like in Thrust) and blow up their targets (which are, no doubt, heavily guarded)
- all out nuclear war; chose carefully between more than twenty weapon and defense systems to stay alive and annihilate your enemies
- race; make it through the deadly course before your opponents
- Adjustable gravity; adjustable by putting special attractors or deflectors in the world, or by adjusting the global gravity in various ways.
- Cannons and personalized and vengeful robot fighters give you a hard time.
- Watch your energy, and remember to dock with a fuel station to refuel before its too late.
- Defend your home base, or terrorize and steal someone elses.
- Equip your ship with the 15+ defense and weapon systems: afterburners, cloaking devices, sensors, transporters, extra cannons, mines and bombs, rockets (smarts, torpedos and nuclear), ECM, laser, extra tanks, autopilot etc.
To start playing, you need to connect to a server by using a client program called xpilot. There are always servers running if you check with the meta server, but if you for some reason do not want to join them, youll have to start a server of your own (see man-page xpilots(6)).
Enhancements:
- Team cannons could kill teammates with laser pulses. Fixed.
- On the map Death Star one can destroy a large number of targets with one FNC. This results in packet buffer overflows and slow updates. To overcome this a smarter map update algorithm is implemented in the server and also map updates are now limited to max 2 KB per network packet.
- The default score font was reduced from 15 to 13.
- When the server sends map updates to the client these are now always acknowledged immediately by the client. This should help prevent stalls or lock-ups on maps where are a large number of targets or cannons can be destroyed. It should also reduce the number of very big server frame update packets.
- Robots no longer try to go after players who arent in playing mode.
Download (MB)
Added: 2007-01-02 License: GPL (GNU General Public License) Price:
1191 downloads
Object::Meta::Plugin::Host 0.01
Object::Meta::Plugin::Host are hosts plugins that work like Object::Meta::Plugin. more>>
Object::Meta::Plugin::Host are hosts plugins that work like Object::Meta::Plugin. Can serve as a plugin if subclassed, or contains a plugin which can help it to plug.
SYNOPSIS
# if you want working examples, read basic.t in the distribution
# i dont know what kind of a synopsis would be useful for this.
my $host = new Object::Meta::Plugin::Host;
eval { $host->method() }; # should die
$host->plug($plugin); # $plugin defines method
$host->plug($another); # $another defines method and another
# $another supplied the following, since it was plugged in later
$host->method();
$host->another($argument);
$host->unplug($another);
$host->method(); # now $plugins method is used
Object::Meta::Plugin::Host is an implementation of a plugin host, as described in Object::Meta::Plugin.
The host is not just simply a merged hash. It is designed to allow various plugins to provide similar capabilities - methods with conflicting namespace. Conflicting namespaces can coexist, and take precedence over one another. A possible scenario is to have various plugins for an image processor, which all define the method "process". They are all installed, ordered as the effect should be taken out, and finally atop them all a plugin which wraps them into a pipeline is set.
When a plugins method is entered it receives, instead of the host object, a context object, particular to itself. It allows it access to its host, its sibling plugins, and so forth explicitly, while implicitly wrapping around the host, and emulating it with reordered priority - the current plugin is first in the list.
Such a model enables a dumb plugin to work quite happily with others, even those which may take its role. The only rule it needs to keep is that it accesses its data structures using $self-self>, and not $self, because $self is the context object.
A more complex plugin, aware that it may not be peerless, could explicitly ask for the default (host defined) methods it calls, instead of its own. It can request to call a method on the plugin which succeeds it or precedes it in a certain methods stack.
Additionally, by gaining access to the host object a plugin could implement a pipeline of calls quite easily, as described above. All it must do is call $self-host->stack($method)> and iterate that omitting itself.
The interface aims to be simple enough to be flexible, trying for the minimum it needs to define to be useful, and creating workarounds for the limitations this minimum imposes.
The implementation is by no means optimized. I doubt its fast, but I dont really care. Its supposed to create a nice framework for a large application, which needs to be modular.
<<lessSYNOPSIS
# if you want working examples, read basic.t in the distribution
# i dont know what kind of a synopsis would be useful for this.
my $host = new Object::Meta::Plugin::Host;
eval { $host->method() }; # should die
$host->plug($plugin); # $plugin defines method
$host->plug($another); # $another defines method and another
# $another supplied the following, since it was plugged in later
$host->method();
$host->another($argument);
$host->unplug($another);
$host->method(); # now $plugins method is used
Object::Meta::Plugin::Host is an implementation of a plugin host, as described in Object::Meta::Plugin.
The host is not just simply a merged hash. It is designed to allow various plugins to provide similar capabilities - methods with conflicting namespace. Conflicting namespaces can coexist, and take precedence over one another. A possible scenario is to have various plugins for an image processor, which all define the method "process". They are all installed, ordered as the effect should be taken out, and finally atop them all a plugin which wraps them into a pipeline is set.
When a plugins method is entered it receives, instead of the host object, a context object, particular to itself. It allows it access to its host, its sibling plugins, and so forth explicitly, while implicitly wrapping around the host, and emulating it with reordered priority - the current plugin is first in the list.
Such a model enables a dumb plugin to work quite happily with others, even those which may take its role. The only rule it needs to keep is that it accesses its data structures using $self-self>, and not $self, because $self is the context object.
A more complex plugin, aware that it may not be peerless, could explicitly ask for the default (host defined) methods it calls, instead of its own. It can request to call a method on the plugin which succeeds it or precedes it in a certain methods stack.
Additionally, by gaining access to the host object a plugin could implement a pipeline of calls quite easily, as described above. All it must do is call $self-host->stack($method)> and iterate that omitting itself.
The interface aims to be simple enough to be flexible, trying for the minimum it needs to define to be useful, and creating workarounds for the limitations this minimum imposes.
The implementation is by no means optimized. I doubt its fast, but I dont really care. Its supposed to create a nice framework for a large application, which needs to be modular.
Download (0.017MB)
Added: 2006-11-01 License: Perl Artistic License Price:
1088 downloads
netshng 2.3.0
netshng project can be used in the development of applications which require direct communication with a STRATA-family router. more>>
netshng project can be used in the development of applications which require direct communication (using the netsh protocol) with a Foxmoxie Networks STRATA-family router.
This program requires the use of libnetshclient. If in doubt, use the latest versions of both.
This application has been tested on the Linux platform only.
To compile, you must have:
GNU make 3.81+
GNUtls 1.4.4+
libnetshclient 2.2.0+
and of course, standard Posix and ANSI headers.
To build the binary, simply edit the Makefile and change the value of the variable named LIBNETSHCLIENT to the directory of your libnetshclient source and build.
Once done, type make.
There is presently no install mechanism, so this must be done manually.
<<lessThis program requires the use of libnetshclient. If in doubt, use the latest versions of both.
This application has been tested on the Linux platform only.
To compile, you must have:
GNU make 3.81+
GNUtls 1.4.4+
libnetshclient 2.2.0+
and of course, standard Posix and ANSI headers.
To build the binary, simply edit the Makefile and change the value of the variable named LIBNETSHCLIENT to the directory of your libnetshclient source and build.
Once done, type make.
There is presently no install mechanism, so this must be done manually.
Download (0.010MB)
Added: 2007-06-07 License: GPL (GNU General Public License) Price:
870 downloads
DBI::DBD 1.52
DBI::DBD is a Perl DBI Database Driver Writers Guide. more>>
DBI::DBD is a Perl DBI Database Driver Writers Guide.
SYNOPSIS
perldoc DBI::DBD
Version and volatility
This document is still a minimal draft which is in need of further work.
The changes will occur both because the DBI specification is changing and hence the requirements on DBD drivers change, and because feedback from people reading this document will suggest improvements to it.
Please read the DBI documentation first and fully, including the DBI FAQ. Then reread the DBI specification again as youre reading this. Itll help.
This document is a patchwork of contributions from various authors. More contributions (preferably as patches) are very welcome.
This document is primarily intended to help people writing new database drivers for the Perl Database Interface (Perl DBI). It may also help others interested in discovering why the internals of a DBD driver are written the way they are.
This is a guide. Few (if any) of the statements in it are completely authoritative under all possible circumstances. This means you will need to use judgement in applying the guidelines in this document. If in any doubt at all, please do contact the dbi-dev mailing list (details given below) where Tim Bunce and other driver authors can help.
<<lessSYNOPSIS
perldoc DBI::DBD
Version and volatility
This document is still a minimal draft which is in need of further work.
The changes will occur both because the DBI specification is changing and hence the requirements on DBD drivers change, and because feedback from people reading this document will suggest improvements to it.
Please read the DBI documentation first and fully, including the DBI FAQ. Then reread the DBI specification again as youre reading this. Itll help.
This document is a patchwork of contributions from various authors. More contributions (preferably as patches) are very welcome.
This document is primarily intended to help people writing new database drivers for the Perl Database Interface (Perl DBI). It may also help others interested in discovering why the internals of a DBD driver are written the way they are.
This is a guide. Few (if any) of the statements in it are completely authoritative under all possible circumstances. This means you will need to use judgement in applying the guidelines in this document. If in any doubt at all, please do contact the dbi-dev mailing list (details given below) where Tim Bunce and other driver authors can help.
Download (0.40MB)
Added: 2006-09-26 License: Perl Artistic License Price:
1124 downloads
KLogo-Turtle 0.6
The KLogo-Turtle is an interpreter of the LOGO language for KDE desktops. more>>
The KLogo-Turtle is an interpreter of the LOGO language for KDE desktops.
The KLogo-Turtle is a useful tool for teaching geometry and the basic principles of the programming of computer. Children can study the mathematics of geometry in an interactive and constructive way.
KLogo-Turtle has syntax a little different than the LOGO language developed at MIT. Look at the documents link. Comments, doubts and suggestions, please use the e-mail link.
KLogo-Turtle supports commands in the languages english, portuguese, german, italian and french.
KLogo-Turtle is under the GPL license and is developed in KDevelop by Euclides Chuma.
Enhancements:
- Release version stable (0.6) with support for commands in english, portuguese, german, italian and french.
<<lessThe KLogo-Turtle is a useful tool for teaching geometry and the basic principles of the programming of computer. Children can study the mathematics of geometry in an interactive and constructive way.
KLogo-Turtle has syntax a little different than the LOGO language developed at MIT. Look at the documents link. Comments, doubts and suggestions, please use the e-mail link.
KLogo-Turtle supports commands in the languages english, portuguese, german, italian and french.
KLogo-Turtle is under the GPL license and is developed in KDevelop by Euclides Chuma.
Enhancements:
- Release version stable (0.6) with support for commands in english, portuguese, german, italian and french.
Download (0.085MB)
Added: 2005-06-01 License: GPL (GNU General Public License) Price:
1627 downloads
mod_spambot 0.47
Mod_Spambot is an Apache plugin which monitors the data being downloaded from a server. more>>
Mod_Spambot is an Apache module which monitors the data being downloaded from a server. When the number of requests for a client exceeds a preset level no more downloads are allowed for a preset time.
When this happens the client received a tailored message informing them of what has happend. Many of the features can be tailored to the needs of the webmaster to help to prevent false positives and to customise the definition of a client to be blacklisted.
Mod_spambot comes from code written for an old website I ran. My ISP blacklisted the site for being too "popular". Doing research that the ISP couldnt be bothered to do I discovered that unwanted crawlers were bombarding the sites with requests. The ISP blamed me and threatened to take the site down, and frankly it was too much time, that I didnt have, to find a new ISP. Since these spiders are not real users, or Google, I had to put in code to stop them, mod_spambot was borne out of that need.
As a useful side-effect, mod_spambot will help the system when it suffers a DoS attack.
If a client, that has not been whitelisted, downloads more than 100 pages in an hour they are blacklisted unless there has been more than 10 minutes between the downloads. All the figures are configurable - those values are the defaults.
The algorithm is simple, but surprisingly effective. No doubt it will improve with time and feedback. When an IP is blacklisted, it receives either a bespoke page, the default 403 ErrorDocument or a honeypot. Users are tracked either by IP or by their mod_usertrack cookie. A user is then blacklisted until 10 minutes elapses between requests.
Users which blast many requests in a short time can be throttled back before being blacklisted.
HEAD requests are ignored.
<<lessWhen this happens the client received a tailored message informing them of what has happend. Many of the features can be tailored to the needs of the webmaster to help to prevent false positives and to customise the definition of a client to be blacklisted.
Mod_spambot comes from code written for an old website I ran. My ISP blacklisted the site for being too "popular". Doing research that the ISP couldnt be bothered to do I discovered that unwanted crawlers were bombarding the sites with requests. The ISP blamed me and threatened to take the site down, and frankly it was too much time, that I didnt have, to find a new ISP. Since these spiders are not real users, or Google, I had to put in code to stop them, mod_spambot was borne out of that need.
As a useful side-effect, mod_spambot will help the system when it suffers a DoS attack.
If a client, that has not been whitelisted, downloads more than 100 pages in an hour they are blacklisted unless there has been more than 10 minutes between the downloads. All the figures are configurable - those values are the defaults.
The algorithm is simple, but surprisingly effective. No doubt it will improve with time and feedback. When an IP is blacklisted, it receives either a bespoke page, the default 403 ErrorDocument or a honeypot. Users are tracked either by IP or by their mod_usertrack cookie. A user is then blacklisted until 10 minutes elapses between requests.
Users which blast many requests in a short time can be throttled back before being blacklisted.
HEAD requests are ignored.
Download (0.027MB)
Added: 2006-04-21 License: GPL (GNU General Public License) Price:
1281 downloads
Pod::HTML2Pod 4.05
Pod::HTML2Pod Perl module can translate HTML into POD. more>>
Pod::HTML2Pod Perl module can translate HTML into POD.
SYNOPSIS
# Use the program html2pod that comes in this dist, or:
use Pod::HTML2Pod;
print Pod::HTML2Pod::convert(
file => my_stuff.html, # input file
a_href => 1, # try converting links
);
Larry Wall once said (1999-08-27, on the pod-people list, I do believe): "The whole point of pod is to get people to document stuff they wouldnt document in any other form."
To that end, I wrote this module so that people who are unpracticed with POD but in a hurry to simply document their programs or modules, could write their documentation in simple HTML, and convert that to POD. Thats what this module does.
Specifically, this module bends over backwards to try to turn even vaguely plausable HTML into POD -- and when in doubt, it simply ignores things that it doesnt know about, or cant render.
FUNCTIONS
This module provides one documented function, which it does not export:
Pod::HTML2Pod::convert( ...options... )
This returns a single scalar value containing the converted POD text, with some comments after the end.
This function takes options:
file => FILENAME,
Specifies that the HTML code is to be read from the filename given.
handle => *HANDLE,
Specifies that the HTML code is to be read from the open filehandle given (e.g., $fh_obj, *HANDLE, *HANDLE{IO}, etc.) If you specify this, but fail to specify an actual handle object, inscrutible errors may result.
content => STRING,
Specifies that the HTML code is in the string given. (Alternately, pass a reference to the scalar: content => $stuff.)
tree => OBJ,
Specifies that the HTML document is contained in the given HTML::TreeBuilder object (or HTML::Element object, at least).
a_name => BOOLEAN,
Specifies whether you want to try converting < a name="..." > elements. By default this is off -- i.e., such elements are ignored.
a_href => BOOLEAN,
Specifies whether you want to try converting < a href="..." > elements. By default this is off -- i.e., such elements are ignored. If on, bear in mind that relative URLs cannot be properly converted to POD -- any relative URLs will be complained about in comments after the end of the document. Normal absolute URLs will be treated as best they can be. Note that URLs beginning "pod:..." will be turned into POD links to whatever follows; that is, "pod:Getopt::Std" is turned into L< Getopt::Std >
debug => INTEGER,
Puts Pod::HTML2Pod into verbose debug mode for the duration of processing this this HTML document. INTEGER can be 0 for no debug output, 1 for a moderate amount that will cause the HTML syntax tree to be be dumped at the start of the conversion, and 2 for that plus a dump of the intermediate POD doctree, plus a few more inscrutible diagnostic messages. Looking at the trees dumped might be helpful in making sense of error messages that refer to a particular node in the parse tree.
<<lessSYNOPSIS
# Use the program html2pod that comes in this dist, or:
use Pod::HTML2Pod;
print Pod::HTML2Pod::convert(
file => my_stuff.html, # input file
a_href => 1, # try converting links
);
Larry Wall once said (1999-08-27, on the pod-people list, I do believe): "The whole point of pod is to get people to document stuff they wouldnt document in any other form."
To that end, I wrote this module so that people who are unpracticed with POD but in a hurry to simply document their programs or modules, could write their documentation in simple HTML, and convert that to POD. Thats what this module does.
Specifically, this module bends over backwards to try to turn even vaguely plausable HTML into POD -- and when in doubt, it simply ignores things that it doesnt know about, or cant render.
FUNCTIONS
This module provides one documented function, which it does not export:
Pod::HTML2Pod::convert( ...options... )
This returns a single scalar value containing the converted POD text, with some comments after the end.
This function takes options:
file => FILENAME,
Specifies that the HTML code is to be read from the filename given.
handle => *HANDLE,
Specifies that the HTML code is to be read from the open filehandle given (e.g., $fh_obj, *HANDLE, *HANDLE{IO}, etc.) If you specify this, but fail to specify an actual handle object, inscrutible errors may result.
content => STRING,
Specifies that the HTML code is in the string given. (Alternately, pass a reference to the scalar: content => $stuff.)
tree => OBJ,
Specifies that the HTML document is contained in the given HTML::TreeBuilder object (or HTML::Element object, at least).
a_name => BOOLEAN,
Specifies whether you want to try converting < a name="..." > elements. By default this is off -- i.e., such elements are ignored.
a_href => BOOLEAN,
Specifies whether you want to try converting < a href="..." > elements. By default this is off -- i.e., such elements are ignored. If on, bear in mind that relative URLs cannot be properly converted to POD -- any relative URLs will be complained about in comments after the end of the document. Normal absolute URLs will be treated as best they can be. Note that URLs beginning "pod:..." will be turned into POD links to whatever follows; that is, "pod:Getopt::Std" is turned into L< Getopt::Std >
debug => INTEGER,
Puts Pod::HTML2Pod into verbose debug mode for the duration of processing this this HTML document. INTEGER can be 0 for no debug output, 1 for a moderate amount that will cause the HTML syntax tree to be be dumped at the start of the conversion, and 2 for that plus a dump of the intermediate POD doctree, plus a few more inscrutible diagnostic messages. Looking at the trees dumped might be helpful in making sense of error messages that refer to a particular node in the parse tree.
Download (0.018MB)
Added: 2007-06-12 License: Perl Artistic License Price:
864 downloads
LiNsta 0.3
LiNsta provides a nice GTK 2.x Theme/Style. more>>
LiNsta provides a nice GTK 2.x Theme/Style.
The 3rd version of LiNsta, truely is the same thing of Linsta 2 but now have no bugs finded yet, like in fedora gnome.
Any doubt tell me! Any bug, please tell me!
Bug release 0.1:
Guys, thanks everybody for tell me about the menubar bug, ive been patched it, the new versions is now released in the same link above!
Enhancements:
- Patched the bug of menubar:
- The menubar is black and the text was black too. Now with the correcntion the bar is black and the text is white.
<<lessThe 3rd version of LiNsta, truely is the same thing of Linsta 2 but now have no bugs finded yet, like in fedora gnome.
Any doubt tell me! Any bug, please tell me!
Bug release 0.1:
Guys, thanks everybody for tell me about the menubar bug, ive been patched it, the new versions is now released in the same link above!
Enhancements:
- Patched the bug of menubar:
- The menubar is black and the text was black too. Now with the correcntion the bar is black and the text is white.
Download (MB)
Added: 2007-03-02 License: GPL (GNU General Public License) Price:
990 downloads
PyVISA 1.1
PyVISA is a Python package which provides support for the Virtual Instrument Software Architecture. more>>
The programming of measurement instruments can be real pain. There are many different protocols, sent over many different interface and bus systems. For every programming language you want to use, you have to find libraries that support both your device and its bus system.
In order to ease this unfortunate situation, the VISA [1] specification was defined in the middle of the 90ies. Today VISA is implemented on all significant operating systems. A couple of vendors offer VISA libraries, albeit mostly in binary form.
These libraries work together with arbitrary peripherical devices, although they may be limited to certain interface devices, such as the vendors GPIB card. Virtual Instrument Software Architecture
The VISA specification has explicit bindings to Visual Basic, C, and G (LabVIEWs graphical language). However, you can use VISA with any language capable of calling functions in a DLL. Python is such a language.
PyVISA project is a VISA binding for Python. In relies on an external library file that you can download from your interface vendors web pages (National Instruments, Agilent, etc). PyVISA implements a convenient and Pythonic access to this library in two layers:
1. First, there is the lower level vpp43, which directly calls the VISA functions from Python. See the PyVISA low-level implementation for more information.
2. On top of it, an object-oriented Python module has been created called visa simply. In case of doubt, use visa because it is easier and more convenient. vpp43 is only for people who need full control or the official VISA functions for some reason. See the PyVISA manual for more information.
Enhancements:
- PyVISA can now cope with older VISA implementations, too.
<<lessIn order to ease this unfortunate situation, the VISA [1] specification was defined in the middle of the 90ies. Today VISA is implemented on all significant operating systems. A couple of vendors offer VISA libraries, albeit mostly in binary form.
These libraries work together with arbitrary peripherical devices, although they may be limited to certain interface devices, such as the vendors GPIB card. Virtual Instrument Software Architecture
The VISA specification has explicit bindings to Visual Basic, C, and G (LabVIEWs graphical language). However, you can use VISA with any language capable of calling functions in a DLL. Python is such a language.
PyVISA project is a VISA binding for Python. In relies on an external library file that you can download from your interface vendors web pages (National Instruments, Agilent, etc). PyVISA implements a convenient and Pythonic access to this library in two layers:
1. First, there is the lower level vpp43, which directly calls the VISA functions from Python. See the PyVISA low-level implementation for more information.
2. On top of it, an object-oriented Python module has been created called visa simply. In case of doubt, use visa because it is easier and more convenient. vpp43 is only for people who need full control or the official VISA functions for some reason. See the PyVISA manual for more information.
Enhancements:
- PyVISA can now cope with older VISA implementations, too.
Download (0.13MB)
Added: 2006-11-27 License: GPL (GNU General Public License) Price:
1063 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above doubts 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