jokes
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 12
RearSite 0.1
RearSite is a simple collaborative Web site manager. more>>
RearSite is a simple collaborative Web site manager. RearSite is an automated Web publishing tool allowing to control who is allowed to access the published documents and also to manage per directories collaboratives tools well adapted to distance learning (forums, chats, shareable calendars, or multimedia quizzes).
An administrator can create users accounts (user name, user passwd, and user home directory), users get logged in and then receive access to their documents.
RearSite is written in PERL (CGI.pm based) and use a FastCGI compliant HTTP server (like APACHE).
Using RearSite is quite simple : after login, the user has access to his home dir and is able to delete, rename, create and edit documents. RearSite is well adapted to install WWW directories previously cooked (using any editors). Its very easy to transfer and install archives (ZIP, tar or tar.gz by now), they are automatically unpacked.
Published documents are public (by default), access restriction may be done using user/password couples, DNS domains or LDAP filters.
The user interface is WWW forms like, so RearSite only needs (on the client side) a Java, JavaScript and frames compliant WWW browser (accepting cookies).
RearSite is now quite secured, the login process (developped in Java) use an MD5 encryption of the user password (combined with a one time key). So, people spying the network cannot use the keys they may have seen. After login, users receive a cookie associated with their computers IP numbers.
RearSite also allows the user to specify who can retrieve his documents by configuring access rights :
documents are public (the default).
documents are restricted to users coming from trusted domains.
documents are restricted to users coming from trusted domains or to HTTP authenticated users.
* documents are restricted to class of users existing in an LDAP directory. This kind of HTTP client authentication needs auth_ldap for Apache (See restricted access by users classes).
Since 1.1, if the administrator wants it, the user is able to use templates to specify per directories access rights. By default (and as an example), the user can easily say that a directory is public, for frenchies only or for frenchies excepted those in the ripoux.fr domain (french joke!).
The user is also able to share his directories with other RearSite users (trusted users). When a directory is shared, a trusted user user is able to delete, rename, add ... files within the directory he received rights for.
The user is also able to recursively process all the file names of all his embeded directories. The functionality provided is to rename all files (lowercase, replace a string within all file names, ...) which simplyfies migration from systems with case-insensitive file names. These functionalities are available by selecting the Special tools button which also give a way to export the current directory within an archive (ZIP or tar.gz).
Since 1.4, a forum can directly be attached to each directories. When a user wants to create a forum, the result is a Forum.html file located within the current directory. This file will give access to the forum. People having access to this file are allowed to post in the forum.
Since 1.6, a chat can directly be attached to each directories. When a user wants to create a chat, the result is a Chat.html file located within the current directory. This file will give access to the chat. People having access to this file are allowed to talk in the chat.
Since 1.9, a shareable calendar can be directly attached to each directories. When a user wants to create a calendar, the result is a Calendar.html file located within the current directory. This file will give access to the calendar. People having access to this file are allowed to read the calendar. Only the owner of a calendar is allowed to update it, but he may allow other users. Accessing his calendar via RearSite allows the owner to update it immediatly. When accessing a calendar via a normal WWW access, the user (owner or not) must be authenticated (via Rearsite configured authentication scheeme) before being allowed to update it.
The chat,forum and calendar functionalities are accessible via the Communications button, they have been designed for distance learning purposes but can easily be used for any groupware needs.
<<lessAn administrator can create users accounts (user name, user passwd, and user home directory), users get logged in and then receive access to their documents.
RearSite is written in PERL (CGI.pm based) and use a FastCGI compliant HTTP server (like APACHE).
Using RearSite is quite simple : after login, the user has access to his home dir and is able to delete, rename, create and edit documents. RearSite is well adapted to install WWW directories previously cooked (using any editors). Its very easy to transfer and install archives (ZIP, tar or tar.gz by now), they are automatically unpacked.
Published documents are public (by default), access restriction may be done using user/password couples, DNS domains or LDAP filters.
The user interface is WWW forms like, so RearSite only needs (on the client side) a Java, JavaScript and frames compliant WWW browser (accepting cookies).
RearSite is now quite secured, the login process (developped in Java) use an MD5 encryption of the user password (combined with a one time key). So, people spying the network cannot use the keys they may have seen. After login, users receive a cookie associated with their computers IP numbers.
RearSite also allows the user to specify who can retrieve his documents by configuring access rights :
documents are public (the default).
documents are restricted to users coming from trusted domains.
documents are restricted to users coming from trusted domains or to HTTP authenticated users.
* documents are restricted to class of users existing in an LDAP directory. This kind of HTTP client authentication needs auth_ldap for Apache (See restricted access by users classes).
Since 1.1, if the administrator wants it, the user is able to use templates to specify per directories access rights. By default (and as an example), the user can easily say that a directory is public, for frenchies only or for frenchies excepted those in the ripoux.fr domain (french joke!).
The user is also able to share his directories with other RearSite users (trusted users). When a directory is shared, a trusted user user is able to delete, rename, add ... files within the directory he received rights for.
The user is also able to recursively process all the file names of all his embeded directories. The functionality provided is to rename all files (lowercase, replace a string within all file names, ...) which simplyfies migration from systems with case-insensitive file names. These functionalities are available by selecting the Special tools button which also give a way to export the current directory within an archive (ZIP or tar.gz).
Since 1.4, a forum can directly be attached to each directories. When a user wants to create a forum, the result is a Forum.html file located within the current directory. This file will give access to the forum. People having access to this file are allowed to post in the forum.
Since 1.6, a chat can directly be attached to each directories. When a user wants to create a chat, the result is a Chat.html file located within the current directory. This file will give access to the chat. People having access to this file are allowed to talk in the chat.
Since 1.9, a shareable calendar can be directly attached to each directories. When a user wants to create a calendar, the result is a Calendar.html file located within the current directory. This file will give access to the calendar. People having access to this file are allowed to read the calendar. Only the owner of a calendar is allowed to update it, but he may allow other users. Accessing his calendar via RearSite allows the owner to update it immediatly. When accessing a calendar via a normal WWW access, the user (owner or not) must be authenticated (via Rearsite configured authentication scheeme) before being allowed to update it.
The chat,forum and calendar functionalities are accessible via the Communications button, they have been designed for distance learning purposes but can easily be used for any groupware needs.
Download (1.6MB)
Added: 2006-06-24 License: GPL (GNU General Public License) Price:
1217 downloads
Fully Modular Synthesizer 0.9
FMS is a tool to create all kinds of sounds from scratch. more>>
FMS stands for Fully Modular Synthesizer and is a tool to create all kinds of sounds from scratch.
You can play and sound (sine, triangular, etc.) with any property settings (frequency or volume) and modulations thereof.
It also features tools to save sounds, play .MUS music, graphically display sounds, and make real noise.
Main features:
Playing sounds
- with any frequency and volume
- one after another or at the same time (mixer) or both
- stereo (different sounds on different channels)
- like speech synthesis
- both on-the-fly playing with direct user access and asynchronous, pre-computed output
- with all modulation options described below
Making noise
- now although it tends to get noisy in any way, we mean real noise here
- in 4 different ways
- nearly-white noise
- narrow band noise
Modulating
- amplitude (volume)
- frequency
- minima, maxima, amplitude and frequency of the modulation (here the "Fully Modular" comes to existence)
- narrowness of the noise frequency band - experimental
Making music
- some-kind-of-midi-mapping mode (sound + envelope => instrument, FMS midi file format)
- auto-converter and player for MUS file format (Musplay)
- auto-composer for those who like a rather modern kind of music - experimental
- chords - experimental
Displaying
- spectrum of a sound
- oscillogram of a sound
Saving
- sounds as oscillograms in FMS file format (mathematical description, not complete wavetables)
- sounds as Fourier overtone amplitudes
- music in FMS midi format
- FMS output in wave format
- wave file sounds in FMS file format (auto-converter) - experimental
GUI
- a somewhat ugly and extremely limited tcl/tk gui
- FROCOR, an installation that connects the FMS sound backend to graphical interfaces and outputs
- a fully modular Qt GUI - experimental
Enhancements:
- synchronous mode (no more waiting!)
- bugfixes (no more screaming!)
- unscrewed display tools (no more segfaulting!)
- improved exacticity (no more discalculating!)
- UDS controlled sound backend (no more stupid jokes!)
<<lessYou can play and sound (sine, triangular, etc.) with any property settings (frequency or volume) and modulations thereof.
It also features tools to save sounds, play .MUS music, graphically display sounds, and make real noise.
Main features:
Playing sounds
- with any frequency and volume
- one after another or at the same time (mixer) or both
- stereo (different sounds on different channels)
- like speech synthesis
- both on-the-fly playing with direct user access and asynchronous, pre-computed output
- with all modulation options described below
Making noise
- now although it tends to get noisy in any way, we mean real noise here
- in 4 different ways
- nearly-white noise
- narrow band noise
Modulating
- amplitude (volume)
- frequency
- minima, maxima, amplitude and frequency of the modulation (here the "Fully Modular" comes to existence)
- narrowness of the noise frequency band - experimental
Making music
- some-kind-of-midi-mapping mode (sound + envelope => instrument, FMS midi file format)
- auto-converter and player for MUS file format (Musplay)
- auto-composer for those who like a rather modern kind of music - experimental
- chords - experimental
Displaying
- spectrum of a sound
- oscillogram of a sound
Saving
- sounds as oscillograms in FMS file format (mathematical description, not complete wavetables)
- sounds as Fourier overtone amplitudes
- music in FMS midi format
- FMS output in wave format
- wave file sounds in FMS file format (auto-converter) - experimental
GUI
- a somewhat ugly and extremely limited tcl/tk gui
- FROCOR, an installation that connects the FMS sound backend to graphical interfaces and outputs
- a fully modular Qt GUI - experimental
Enhancements:
- synchronous mode (no more waiting!)
- bugfixes (no more screaming!)
- unscrewed display tools (no more segfaulting!)
- improved exacticity (no more discalculating!)
- UDS controlled sound backend (no more stupid jokes!)
Download (0.17MB)
Added: 2006-09-01 License: GPL (GNU General Public License) Price:
1152 downloads
English Proverbs 1.3
English Proverbs is an extension which provides proverbs and jokes to better learn english. more>>
English Proverbs is an extension which provides proverbs and jokes to better learn english.
This extension provides proverbs and jokes to better learn english.Made by Aymeric CARRARO & WALSER Benoit...
This extension provides proverbs and jokes to better learn english.Made by Aymeric CARRARO & WALSER Benoit.
PS : we are now looking for translator, to develop new functionalities.
We need some guys who can translate proverbs in their language... a new database with the most known proverbs is in developpement.If some one want to help the project, visit our forum at http://tekman.myftp.org/anglais/ and contact us via the Translating section in the forum.
<<lessThis extension provides proverbs and jokes to better learn english.Made by Aymeric CARRARO & WALSER Benoit...
This extension provides proverbs and jokes to better learn english.Made by Aymeric CARRARO & WALSER Benoit.
PS : we are now looking for translator, to develop new functionalities.
We need some guys who can translate proverbs in their language... a new database with the most known proverbs is in developpement.If some one want to help the project, visit our forum at http://tekman.myftp.org/anglais/ and contact us via the Translating section in the forum.
Download (0.007MB)
Added: 2007-04-13 License: MPL (Mozilla Public License) Price:
571 downloads
Snippets 1.0
Snippets is a CGI script where fortune cookie meets wiki. more>>
Snippets is a CGI script where fortune cookie meets wiki. The project provides:
- A way for people to share quotes, recipes, jokes...
- A private niche where a person can keep track of sites to visit, people to e-mail.
- A tool for administrators to turn a large repository of static content into a manageable amount of dynamic content.
Snippets is designed to be easy to configure and customize.
Snippets is a versatile CGI script that allows administrators to turn a large amount of static content into a small amount of dynamic content, and users to have an editable quote of the day. Its a cross between a fortune cookie program and a wiki. Snippets can be used for much more than memorable quotes, though; Snippets can be used to show people, or remind them of:
- Jokes
- Quotes
- Recipes
- Websites to visit
- Friends to write/e-mail/call
- Long-term to do items
- Places to visit
- Books to read
- Favorite pictures
- Etc.
Go ahead and play around with it; see what it can do.
<<less- A way for people to share quotes, recipes, jokes...
- A private niche where a person can keep track of sites to visit, people to e-mail.
- A tool for administrators to turn a large repository of static content into a manageable amount of dynamic content.
Snippets is designed to be easy to configure and customize.
Snippets is a versatile CGI script that allows administrators to turn a large amount of static content into a small amount of dynamic content, and users to have an editable quote of the day. Its a cross between a fortune cookie program and a wiki. Snippets can be used for much more than memorable quotes, though; Snippets can be used to show people, or remind them of:
- Jokes
- Quotes
- Recipes
- Websites to visit
- Friends to write/e-mail/call
- Long-term to do items
- Places to visit
- Books to read
- Favorite pictures
- Etc.
Go ahead and play around with it; see what it can do.
Download (0.046MB)
Added: 2007-02-23 License: GPL (GNU General Public License) Price:
973 downloads
miPortal 0.5
miPortal is a free personalized Mobile Information portal. more>>
miPortal is a free personalized Mobile Information portal that can provide an array of useful information services on your handheld device such as a PDA or mobile Phone.
It offers a wide variety of information services for very diverse needs such as stock quotes to ATM locator, movie listings in the city to city weather, jokes, horoscopes, news update, you name it and you can have it.
You can create your own personalized bouquet of services from the ones available by subscribing to them. Once you create your portal you can access these services to get the information you need .miPortal saves your valuable pennies you would have otherwise spent searching for the same information browsing the internet on your mobile.
Content and service providers (most common example being horizontal portals which provide city specific information, etc) publish the interface for their service using open standards (WSDL) and the miPortal installs the service so that one can subscribe to the service from the client. To avail these services download and install the miPortal client on your mobile .
Enhancements:
- New information services have been added.
- A discussion forum has been added to the Web site.
- A bug reporting link has been added.
- This release has a version-aware midlet; old midlets will not work now.
<<lessIt offers a wide variety of information services for very diverse needs such as stock quotes to ATM locator, movie listings in the city to city weather, jokes, horoscopes, news update, you name it and you can have it.
You can create your own personalized bouquet of services from the ones available by subscribing to them. Once you create your portal you can access these services to get the information you need .miPortal saves your valuable pennies you would have otherwise spent searching for the same information browsing the internet on your mobile.
Content and service providers (most common example being horizontal portals which provide city specific information, etc) publish the interface for their service using open standards (WSDL) and the miPortal installs the service so that one can subscribe to the service from the client. To avail these services download and install the miPortal client on your mobile .
Enhancements:
- New information services have been added.
- A discussion forum has been added to the Web site.
- A bug reporting link has been added.
- This release has a version-aware midlet; old midlets will not work now.
Download (0.029MB)
Added: 2005-11-01 License: GPL (GNU General Public License) Price:
1505 downloads
GNOME floating background 0.1
GNOME floating background subtly changes the color of the GNOME desktop over time -- so slowly that it wont be noticed. more>>
GNOME floating background project subtly changes the color of the GNOME desktop over time -- so slowly that it wont be noticed. This is a good alternative to placing a wallpaper.
The program does have a minimal processor time consumption, as it
sleeps most of the time and its computations are not complicated. In
fact, GFloatbg doesnt change the color directly. It relies on
Nautilus (or an equivalent application) to paint the background using
the color set in the gconf key
/desktop/gnome/background/primary_color, which this program updates
periodically.
GFloatbg doesnt use any window, button or menu, and it can only be
stopped by killing it. This is a feature I dont like too much, but
making a realy nice user interface is just too much for such a little
joke...
GFloatbg starts with a random color and changes it deterministicly by
moving through a HSV-model of colors.
In the HSV-model, colors are described by three parameters:
h = hue stands for the tint of a color
(0 degrees is red, 60 = yellow, 120 = green, 180 = aquamarine, etc)
s = saturations stands for the brightness of the color
(0 = white, 1 = bright)
v = value stands for the intensity of the color
(0 = black, 1 = normal)
Every 10 seconds the hue is increased by 1 degree and the saturation
is changed by a sinus over the hue. The value remains fixed. The
default values are chosen such that all pastel tints are visited, but
these can of course be customized:
Usage: gfloatbg [options]
where options are:
-help
-value < float> (default 0.87)
-satmid < float> (default 0.375)
-satvar < float> (default 0.125)
-fase < float> (default 0.25)
value, (satmid-satvar) and (satmid+satvar) must be between 0 and 1
<<lessThe program does have a minimal processor time consumption, as it
sleeps most of the time and its computations are not complicated. In
fact, GFloatbg doesnt change the color directly. It relies on
Nautilus (or an equivalent application) to paint the background using
the color set in the gconf key
/desktop/gnome/background/primary_color, which this program updates
periodically.
GFloatbg doesnt use any window, button or menu, and it can only be
stopped by killing it. This is a feature I dont like too much, but
making a realy nice user interface is just too much for such a little
joke...
GFloatbg starts with a random color and changes it deterministicly by
moving through a HSV-model of colors.
In the HSV-model, colors are described by three parameters:
h = hue stands for the tint of a color
(0 degrees is red, 60 = yellow, 120 = green, 180 = aquamarine, etc)
s = saturations stands for the brightness of the color
(0 = white, 1 = bright)
v = value stands for the intensity of the color
(0 = black, 1 = normal)
Every 10 seconds the hue is increased by 1 degree and the saturation
is changed by a sinus over the hue. The value remains fixed. The
default values are chosen such that all pastel tints are visited, but
these can of course be customized:
Usage: gfloatbg [options]
where options are:
-help
-value < float> (default 0.87)
-satmid < float> (default 0.375)
-satvar < float> (default 0.125)
-fase < float> (default 0.25)
value, (satmid-satvar) and (satmid+satvar) must be between 0 and 1
Download (0.088MB)
Added: 2007-07-11 License: Public Domain Price:
840 downloads
KnightFight 2
KnightFight is a Java-based game in which you, the Bronze Knight, must take on the Black Knight in battle. more>>
KnightFight is a Java-based game in which you, the Bronze Knight, must take on the Black Knight in battle. Complete with goofy Pythonesque sound clips, it is intended as a parody of Street Fighter/Mortal Kombat-type games.
KnightFight is a fun game which I made in a period of three days. KnightFight project was intended as a joke, as evident from the goofy sound clips and lousy graphics, but I found it to be fun and addictive, so I released it. I may release a better-designed sequel in the future.
<<lessKnightFight is a fun game which I made in a period of three days. KnightFight project was intended as a joke, as evident from the goofy sound clips and lousy graphics, but I found it to be fun and addictive, so I released it. I may release a better-designed sequel in the future.
Download (1.1MB)
Added: 2006-06-22 License: GPL (GNU General Public License) Price:
1231 downloads
InteLib 0.5.77
InteLib is a library of C++ classes which lets you do Lisp programming within your C++ program. more>>
InteLib is a library of C++ classes which lets you do Lisp programming within your C++ program even without any additional preprocessing, without all those calling conventions etc.
You can write a C++ code (that is, a code which is accepted by your C++ compiler) thinking in a "Lisp mode" and the code you write will look much like Lisp code altough it will be pure C++.
To give you the essential feeling, the following example is provided.
(defun isomorphic (tree1 tree2)
(cond ((atom tree1) (atom tree2))
((atom tree2) NIL)
(t (and (isomorphic (car tree1)
(car tree2))
(isomorphic (cdr tree1)
(cdr tree2))
))))
Just a Lisp function, isnt it? Now look at the following code:
(L|DEFUN, ISOMORPHIC, (L|TREE1, TREE2),
(L|COND,
(L|(L|ATOM, TREE1), (L|ATOM, TREE2)),
(L|(L|ATOM, TREE2), NIL),
(L|T, (L|AND,
(L|ISOMORPHIC, (L|CAR, TREE1),
(L|CAR, TREE2)),
(L|ISOMORPHIC, (L|CDR, TREE1),
(L|CDR, TREE2))
))))
Obviously the code is just the same, the syntax changed a bit, but its still the same. Well, do I surprise you if I say it is C++ code? If you dont believe, look at the following:
// File isomorph.cpp
#include "lisp/lisp.hpp"
#include "lisp/lsymbol.hpp"
#include "lfun_std.hpp"
LSymbol ISOMORPHIC("ISOMORPHIC");
static LFunctionalSymbol< LFunctionDefun > DEFUN("DEFUN");
static LFunctionalSymbol< LFunctionCond > COND("COND");
static LFunctionalSymbol< LFunctionAtom > ATOM("ATOM");
static LFunctionalSymbol< LFunctionAnd > AND("AND");
static LFunctionalSymbol< LFunctionCar > CAR("CAR");
static LFunctionalSymbol< LFunctionCdr > CDR("CDR");
LListConstructor L;
void LispInit_isomorphic() {
static LSymbol TREE1("TREE1");
static LSymbol TREE2("TREE2");
////////////////////////////////////////////////
//
(L|DEFUN, ISOMORPHIC, (L|TREE1, TREE2),
(L|COND,
(L|(L|ATOM, TREE1), (L|ATOM, TREE2)),
(L|(L|ATOM, TREE2), NIL),
(L|T, (L|AND,
(L|ISOMORPHIC, (L|CAR, TREE1),
(L|CAR, TREE2)),
(L|ISOMORPHIC, (L|CDR, TREE1),
(L|CDR, TREE2))
)))).Evaluate();
//
////////////////////////////////////////////////
}
// end of file
Well, this code is a complete C++ module and it does compile pretty well. No joke, its real.
By the way, dont try to find any use I made out of the macroprocessor. No macros have ever been used by InteLib (except those for conditional compile directives). Instead, just recall that comma is an operator in C++ and can be overloaded for user-invented data types.
Enhancements:
- Some new package-related features are implemented, and the GNU readline autodetection has been fixed.
<<lessYou can write a C++ code (that is, a code which is accepted by your C++ compiler) thinking in a "Lisp mode" and the code you write will look much like Lisp code altough it will be pure C++.
To give you the essential feeling, the following example is provided.
(defun isomorphic (tree1 tree2)
(cond ((atom tree1) (atom tree2))
((atom tree2) NIL)
(t (and (isomorphic (car tree1)
(car tree2))
(isomorphic (cdr tree1)
(cdr tree2))
))))
Just a Lisp function, isnt it? Now look at the following code:
(L|DEFUN, ISOMORPHIC, (L|TREE1, TREE2),
(L|COND,
(L|(L|ATOM, TREE1), (L|ATOM, TREE2)),
(L|(L|ATOM, TREE2), NIL),
(L|T, (L|AND,
(L|ISOMORPHIC, (L|CAR, TREE1),
(L|CAR, TREE2)),
(L|ISOMORPHIC, (L|CDR, TREE1),
(L|CDR, TREE2))
))))
Obviously the code is just the same, the syntax changed a bit, but its still the same. Well, do I surprise you if I say it is C++ code? If you dont believe, look at the following:
// File isomorph.cpp
#include "lisp/lisp.hpp"
#include "lisp/lsymbol.hpp"
#include "lfun_std.hpp"
LSymbol ISOMORPHIC("ISOMORPHIC");
static LFunctionalSymbol< LFunctionDefun > DEFUN("DEFUN");
static LFunctionalSymbol< LFunctionCond > COND("COND");
static LFunctionalSymbol< LFunctionAtom > ATOM("ATOM");
static LFunctionalSymbol< LFunctionAnd > AND("AND");
static LFunctionalSymbol< LFunctionCar > CAR("CAR");
static LFunctionalSymbol< LFunctionCdr > CDR("CDR");
LListConstructor L;
void LispInit_isomorphic() {
static LSymbol TREE1("TREE1");
static LSymbol TREE2("TREE2");
////////////////////////////////////////////////
//
(L|DEFUN, ISOMORPHIC, (L|TREE1, TREE2),
(L|COND,
(L|(L|ATOM, TREE1), (L|ATOM, TREE2)),
(L|(L|ATOM, TREE2), NIL),
(L|T, (L|AND,
(L|ISOMORPHIC, (L|CAR, TREE1),
(L|CAR, TREE2)),
(L|ISOMORPHIC, (L|CDR, TREE1),
(L|CDR, TREE2))
)))).Evaluate();
//
////////////////////////////////////////////////
}
// end of file
Well, this code is a complete C++ module and it does compile pretty well. No joke, its real.
By the way, dont try to find any use I made out of the macroprocessor. No macros have ever been used by InteLib (except those for conditional compile directives). Instead, just recall that comma is an operator in C++ and can be overloaded for user-invented data types.
Enhancements:
- Some new package-related features are implemented, and the GNU readline autodetection has been fixed.
Download (0.17MB)
Added: 2006-04-25 License: GPL (GNU General Public License) Price:
1278 downloads
Sophie 3.04rc2
Sophie is a daemon which uses libsavi library from Sophos anti-virus vendor. more>>
Sophie is a daemon which uses libsavi library from Sophos anti-virus vendor.
On startup, Sophie initializes SAVI (Sophos Anti-Virus Interface), loads virus patterns into memory, opens local UNIX domain socket, and waits for someone to connect and instructs it which path to scan. Since it is loaded in RAM, scanning is very fast. Of course, speed of scanning also depends on SAVI settings and size of the file.
Sophie was initially created for use with Virge, a mail virus/attachment scanning tool. Because of that, not all SAVI features are implemented in Sophie. My intention was not to create a tool that does the same job as sweep (Sophos tools), but to make fast and efficient tool that can detect virus - but not remove it or make XLS report on it (heh - this was a stupid joke, I presume ;).
At this point, some of the features (that have been requested) are implemented. Some are not, and might never be. So, please, when asking me to add things in Sophie, keep in mind that Sophie was created for Virge, not to be used as a virus scanning tool for a workstation.
This is how Sophie works:
Initializes SAVI inteface, and loads virus patterns
Creates a local UNIX socket (/var/run/sophie, by default)
Waits for someone to connect to the socket, and send path(s) on the local filesystem which need to be scanned
Sophie then forks a process, scans the path(s), and if virus is found, it stops scanning and returns result (1:virusname)
If no viruses were found, it just returns 0
Sophie then goes back to sleep...
Since virus patterns are always in memory, scanning is fast (fast in startup, not fast in execution :) and takes much less resources. For one run, it probably doesnt make a difference if you will use Sophie of Sweep. However, if you have a program (local mail delivery agent, for example) that needs to scan every few seconds/minutes - things are way different.
The difference I am talking about is not in scanning itself - when scanning is in progress, Sophie is little involved in it. Scanning speed depends on the SAVI setup, and on the size of the file being scanned (and if it is an archive, there might be hundreds, even thousands of files inside). However, the initialization of the engine is what count in this case.
Enhancements:
- etc/sophie.savi is now set with SAVI default. Names/values are set as to default SAVI settings from SetConfigDefaults(pSAVI) call.
- 28 new SAVI options added to etc/sophie.savi file. Options were taken with SAVI 3.77.
- Check for nanosleep before including rt library
- "Grp" options fix in sophie_init.c. Thanks to Markus Stumpf for spotting it.
<<lessOn startup, Sophie initializes SAVI (Sophos Anti-Virus Interface), loads virus patterns into memory, opens local UNIX domain socket, and waits for someone to connect and instructs it which path to scan. Since it is loaded in RAM, scanning is very fast. Of course, speed of scanning also depends on SAVI settings and size of the file.
Sophie was initially created for use with Virge, a mail virus/attachment scanning tool. Because of that, not all SAVI features are implemented in Sophie. My intention was not to create a tool that does the same job as sweep (Sophos tools), but to make fast and efficient tool that can detect virus - but not remove it or make XLS report on it (heh - this was a stupid joke, I presume ;).
At this point, some of the features (that have been requested) are implemented. Some are not, and might never be. So, please, when asking me to add things in Sophie, keep in mind that Sophie was created for Virge, not to be used as a virus scanning tool for a workstation.
This is how Sophie works:
Initializes SAVI inteface, and loads virus patterns
Creates a local UNIX socket (/var/run/sophie, by default)
Waits for someone to connect to the socket, and send path(s) on the local filesystem which need to be scanned
Sophie then forks a process, scans the path(s), and if virus is found, it stops scanning and returns result (1:virusname)
If no viruses were found, it just returns 0
Sophie then goes back to sleep...
Since virus patterns are always in memory, scanning is fast (fast in startup, not fast in execution :) and takes much less resources. For one run, it probably doesnt make a difference if you will use Sophie of Sweep. However, if you have a program (local mail delivery agent, for example) that needs to scan every few seconds/minutes - things are way different.
The difference I am talking about is not in scanning itself - when scanning is in progress, Sophie is little involved in it. Scanning speed depends on the SAVI setup, and on the size of the file being scanned (and if it is an archive, there might be hundreds, even thousands of files inside). However, the initialization of the engine is what count in this case.
Enhancements:
- etc/sophie.savi is now set with SAVI default. Names/values are set as to default SAVI settings from SetConfigDefaults(pSAVI) call.
- 28 new SAVI options added to etc/sophie.savi file. Options were taken with SAVI 3.77.
- Check for nanosleep before including rt library
- "Grp" options fix in sophie_init.c. Thanks to Markus Stumpf for spotting it.
Download (0.012MB)
Added: 2006-07-10 License: GPL (GNU General Public License) Price:
1203 downloads
Inline-API 0.44
Inline-API is a Perl module that teach you how to bind a programming language to Perl using Inline.pm. more>>
Inline-API is a Perl module that teach you how to bind a programming language to Perl using Inline.pm.
SYNOPSIS
#!/usr/bin/perl
use Inline Foo;
say_it(foo); # Use Foo to print "Hello, Foo"
__Foo__
foo-sub say_it {
foo-my $foo = foo-shift;
foo-print "Hello, $foon";
}
So you think Inline C is pretty cool, but what you really need is for Perl to work with the brand new programming language "Foo". Well youre in luck. Inline.pm has support for adding your own Inline Language Support Module (ILSM), like Inline::Foo.
Inline has always been intended to work with lots of different programming languages. Many of the details can be shared between implementations, so that Inline::Java has a similar interface to Inline::ASM. All of the common code is in Inline.pm.
Language specific modules like Inline::Python are subclasses of Inline.pm. They can inherit as much of the common behaviour as they want, and provide specific behaviour of their own. This usually comes in the form of Configuration Options and language specific compilation.
The Inline C support is probably the best boilerplate to copy from. Since version 0.30 all C support was isolated into the module Inline::C and the parsing grammar is further broken out into Inline::C::grammar. All of these components come with the Inline distribution.
This POD gives you all the details you need for implementing an ILSM. For further assistance, contact inline@perl.org See "SEE ALSO" below.
Well examine the joke language Inline::Foo which is distributed with Inline. It actually is a full functioning ILSM. I use it in Inlines test harness to test base Inline functionality. It is very short, and can help you get your head wrapped around the Inline API.
<<lessSYNOPSIS
#!/usr/bin/perl
use Inline Foo;
say_it(foo); # Use Foo to print "Hello, Foo"
__Foo__
foo-sub say_it {
foo-my $foo = foo-shift;
foo-print "Hello, $foon";
}
So you think Inline C is pretty cool, but what you really need is for Perl to work with the brand new programming language "Foo". Well youre in luck. Inline.pm has support for adding your own Inline Language Support Module (ILSM), like Inline::Foo.
Inline has always been intended to work with lots of different programming languages. Many of the details can be shared between implementations, so that Inline::Java has a similar interface to Inline::ASM. All of the common code is in Inline.pm.
Language specific modules like Inline::Python are subclasses of Inline.pm. They can inherit as much of the common behaviour as they want, and provide specific behaviour of their own. This usually comes in the form of Configuration Options and language specific compilation.
The Inline C support is probably the best boilerplate to copy from. Since version 0.30 all C support was isolated into the module Inline::C and the parsing grammar is further broken out into Inline::C::grammar. All of these components come with the Inline distribution.
This POD gives you all the details you need for implementing an ILSM. For further assistance, contact inline@perl.org See "SEE ALSO" below.
Well examine the joke language Inline::Foo which is distributed with Inline. It actually is a full functioning ILSM. I use it in Inlines test harness to test base Inline functionality. It is very short, and can help you get your head wrapped around the Inline API.
Download (0.089MB)
Added: 2007-06-16 License: Perl Artistic License Price:
521 downloads
Acme::OneHundredNotOut 100
Acme::OneHundredNotOut is a raise of the bat, a tip of the hat. more>>
Acme::OneHundredNotOut is a raise of the bat, a tip of the hat.
I have just released my 100th module to CPAN, the first time that anyone has reached that target. As some of you may know, I am getting ready to go back to college and reinvent myself from being a programmer into being a missionary. I dont forsee that many more Perl modules coming out of this.
Of course, this doesnt mean that Im going to abjure usage of Perl forever; any time theres a computer and something I need automated, out will come the Swiss Army Chainsaw and the job will get done. In fact, we recently needed to manipulate some text from a mission handbook to translate it into Japanese, and Perl was there handling and collating all that.
But 100 modules is a convenient place to stop and take stock, and I hope that those of you who have benefitted from my modules, programs or writing about Perl will forgive me a certain spot of self-indulgence as I look back over my CPAN career, especially since I feel that the diversity of modules that Ive produced is a good indication of the diversity of what can be done with Perl.
Lets begin, then, with some humble beginnings, and then catch up on recent history.
The Embarrassing Past
Contrary to popular belief, I was not always a CPAN author. I started writing modules in 1998, immediately after reading the first edition of the Perl Cookbook - yes, you can blame Nat and Tom for all this. The first module that I released was Tie::DiscoveryHash, since Id just learnt about tied hashes. As with many of my modules, it was an integral part of another software project which I actually never finished, and now cant find.
The first module that I ever wrote (but, by a curious quirk of fate, precisely the fiftieth module I released) was called String::Tokeniser, which is still a reasonably handy way of getting an iterator over tokenising a string. (Someone recently released String::Tokenizer, which makes me laugh.) This too was for an abortive project, webperl, an application of Don Knuths WEB system of structured documentation to Perl. However, given the code quality of these two modules, its perhaps just as well that the projects never saw the light of day.
There are a few other modules Id rather like to forget, too. Devel::Pointer was a sick joke that went badly wrong - it allowed people to use pointers in Perl. Some people failed to notice that referring to memory locations directly in an extremely high-level language was a dangerous and silly thing to do, and actually used the damned thing, and I started getting requests for support for it. Then at some point in 2001, when I should really have known better, I developed an interest in Microsofts .NET and the C# language, which I still think is pretty neat; but I decided it might be a good idea to translate the Mono projects tokenizer and parser into Perl, ending up with C::Sharp. I never got around to doing the parser part, or indeed anything else with it, and so it died a lonely death in a dark corner of CPAN. GTK::HandyClist was my foray into programming graphical applications, which started and ended there.
Bundle::SDK::SIMON was actually the slides from a talk on my top ten favourite CPAN modules - except that this changes so quickly over time, it doesnt really make much sense any more.
Finally, Array::FileReader was an attempt to optimize a file access process. Unfortunately, my "optimization" ended up introducing more overheads than the naive solution. It all goes to show. Since then, Mark-Jason Dominus, another huge influence in the development of my CPAN career, has written Tie::File, which not only has a better name but is actually efficient too.
The Internals Phase
1999-2000 were disastrous years for me personally but magnificent years Perl-sonally. Stuck in a boring job and a tiny flat in the middle of Tokyo, I had plenty of time to get stuck into more Perl development. I felt that getting involved with perl5-porters would be a good way of gettting to know more about Perl, and so I needed a hobby horse - an issue of Perls development that I cared about. Since I was in Japan and working a lot with non-Latin text, Unicode support seemed a good thing to work on, and so Unicode::Decompose appeared, while I fixed up a substantial part of the post-5.6 core Unicode support.
Id recommend this way to anyone who wants to get more involved in the Perl community, although I was very lucky in terms of who else happened to be around at the time: Gurusamy Sarathy was extremely gracious in helping me turn my fledgling C code into something fit for the Perl core, and he also helped me understand the perl5-porters etiquette (yes, there was some at the time) and what makes a good patch, while Jarkko Hietaniemi was always good for suggestions of interesting things for keen people to work on. Seriously, get involved. If I can do it, anyone can.
Anyway, this fixation with understanding the Perl 5 internals, and especially the Perl 5 compiler, (due to yet another of my Perl influences, the great Malcolm Beattie) led to quite a torrent of modules, from ByteCache, an implementation of just-in-time compilation for Perl modules, through B::Flags and B::Tree to help visualising the Perl op tree, to uninit, B::Generate, optimizer and B::Utils for modifying it.
Perl About The House
Now we abandon chronological order somewhat and take a look at the various areas in which Ive used Perl. One of these areas has been the automation of everyday life: checking my bank balance with Finance::Bank::LloydsTSB (the first Perl module to interface to personal internet banking, no less) and my phone bill with a release of Tony Bowdens Data::BT::PhoneBill.
Finance::Bank::LloydsTSB was meant to go with Finance::QIF, my Quicken file parser, to produce another now-abandoned idea, a Perl finances manager. It seemed that Im only capable of producing modules, not full standalone applications - or at least, it seemed that way until I produced Bryar, my blogging software, based on the concepts from Rael Dornfests blosxom and beginning my adventures with Andy Wardleys Template Toolkit. Bryar also tuned me in to the Model-View-Controller framework idea, of which more later.
Another project I briefly played with was a personal robot, using the Sphinx/Festival speech handling and recognition modules from Cepstral and Kevin Lenzo. I didnt have X10, so I couldnt shout "lights" into the air in a wonderfully scifi way, but I could shout "mail" and have a summary of my inbox read to me, "news" to get the latest BBC news headlines, and "time" to hear the time. Of course, getting computers to tell the time nicely takes a little bit of work. I dont like "Its eleven oh-three pee em", since thats not what someone would say if you asked them the time. I wanted my robot to say "Its just after eleven", and thats what Time::Human does. Shame about the localisation.
<<lessI have just released my 100th module to CPAN, the first time that anyone has reached that target. As some of you may know, I am getting ready to go back to college and reinvent myself from being a programmer into being a missionary. I dont forsee that many more Perl modules coming out of this.
Of course, this doesnt mean that Im going to abjure usage of Perl forever; any time theres a computer and something I need automated, out will come the Swiss Army Chainsaw and the job will get done. In fact, we recently needed to manipulate some text from a mission handbook to translate it into Japanese, and Perl was there handling and collating all that.
But 100 modules is a convenient place to stop and take stock, and I hope that those of you who have benefitted from my modules, programs or writing about Perl will forgive me a certain spot of self-indulgence as I look back over my CPAN career, especially since I feel that the diversity of modules that Ive produced is a good indication of the diversity of what can be done with Perl.
Lets begin, then, with some humble beginnings, and then catch up on recent history.
The Embarrassing Past
Contrary to popular belief, I was not always a CPAN author. I started writing modules in 1998, immediately after reading the first edition of the Perl Cookbook - yes, you can blame Nat and Tom for all this. The first module that I released was Tie::DiscoveryHash, since Id just learnt about tied hashes. As with many of my modules, it was an integral part of another software project which I actually never finished, and now cant find.
The first module that I ever wrote (but, by a curious quirk of fate, precisely the fiftieth module I released) was called String::Tokeniser, which is still a reasonably handy way of getting an iterator over tokenising a string. (Someone recently released String::Tokenizer, which makes me laugh.) This too was for an abortive project, webperl, an application of Don Knuths WEB system of structured documentation to Perl. However, given the code quality of these two modules, its perhaps just as well that the projects never saw the light of day.
There are a few other modules Id rather like to forget, too. Devel::Pointer was a sick joke that went badly wrong - it allowed people to use pointers in Perl. Some people failed to notice that referring to memory locations directly in an extremely high-level language was a dangerous and silly thing to do, and actually used the damned thing, and I started getting requests for support for it. Then at some point in 2001, when I should really have known better, I developed an interest in Microsofts .NET and the C# language, which I still think is pretty neat; but I decided it might be a good idea to translate the Mono projects tokenizer and parser into Perl, ending up with C::Sharp. I never got around to doing the parser part, or indeed anything else with it, and so it died a lonely death in a dark corner of CPAN. GTK::HandyClist was my foray into programming graphical applications, which started and ended there.
Bundle::SDK::SIMON was actually the slides from a talk on my top ten favourite CPAN modules - except that this changes so quickly over time, it doesnt really make much sense any more.
Finally, Array::FileReader was an attempt to optimize a file access process. Unfortunately, my "optimization" ended up introducing more overheads than the naive solution. It all goes to show. Since then, Mark-Jason Dominus, another huge influence in the development of my CPAN career, has written Tie::File, which not only has a better name but is actually efficient too.
The Internals Phase
1999-2000 were disastrous years for me personally but magnificent years Perl-sonally. Stuck in a boring job and a tiny flat in the middle of Tokyo, I had plenty of time to get stuck into more Perl development. I felt that getting involved with perl5-porters would be a good way of gettting to know more about Perl, and so I needed a hobby horse - an issue of Perls development that I cared about. Since I was in Japan and working a lot with non-Latin text, Unicode support seemed a good thing to work on, and so Unicode::Decompose appeared, while I fixed up a substantial part of the post-5.6 core Unicode support.
Id recommend this way to anyone who wants to get more involved in the Perl community, although I was very lucky in terms of who else happened to be around at the time: Gurusamy Sarathy was extremely gracious in helping me turn my fledgling C code into something fit for the Perl core, and he also helped me understand the perl5-porters etiquette (yes, there was some at the time) and what makes a good patch, while Jarkko Hietaniemi was always good for suggestions of interesting things for keen people to work on. Seriously, get involved. If I can do it, anyone can.
Anyway, this fixation with understanding the Perl 5 internals, and especially the Perl 5 compiler, (due to yet another of my Perl influences, the great Malcolm Beattie) led to quite a torrent of modules, from ByteCache, an implementation of just-in-time compilation for Perl modules, through B::Flags and B::Tree to help visualising the Perl op tree, to uninit, B::Generate, optimizer and B::Utils for modifying it.
Perl About The House
Now we abandon chronological order somewhat and take a look at the various areas in which Ive used Perl. One of these areas has been the automation of everyday life: checking my bank balance with Finance::Bank::LloydsTSB (the first Perl module to interface to personal internet banking, no less) and my phone bill with a release of Tony Bowdens Data::BT::PhoneBill.
Finance::Bank::LloydsTSB was meant to go with Finance::QIF, my Quicken file parser, to produce another now-abandoned idea, a Perl finances manager. It seemed that Im only capable of producing modules, not full standalone applications - or at least, it seemed that way until I produced Bryar, my blogging software, based on the concepts from Rael Dornfests blosxom and beginning my adventures with Andy Wardleys Template Toolkit. Bryar also tuned me in to the Model-View-Controller framework idea, of which more later.
Another project I briefly played with was a personal robot, using the Sphinx/Festival speech handling and recognition modules from Cepstral and Kevin Lenzo. I didnt have X10, so I couldnt shout "lights" into the air in a wonderfully scifi way, but I could shout "mail" and have a summary of my inbox read to me, "news" to get the latest BBC news headlines, and "time" to hear the time. Of course, getting computers to tell the time nicely takes a little bit of work. I dont like "Its eleven oh-three pee em", since thats not what someone would say if you asked them the time. I wanted my robot to say "Its just after eleven", and thats what Time::Human does. Shame about the localisation.
Download (0.014MB)
Added: 2006-06-08 License: Perl Artistic License Price:
1233 downloads
binfmtc 0.10
binfmtc implements handlers for C and other languages, which are usually compiled. more>>
binfmtc implements handlers for C and other languages, which are usually compiled.
The program utilizes the Linux binfmt-misc feature to dynamically compile and execute C programs as if they were scripts.
binfmtc project supports C, C++, Java, Pascal, Fortran, and assembler.
Enhancements:
- A sample script that runs as root was added along with realksh.c, a joke KSH implementation.
<<lessThe program utilizes the Linux binfmt-misc feature to dynamically compile and execute C programs as if they were scripts.
binfmtc project supports C, C++, Java, Pascal, Fortran, and assembler.
Enhancements:
- A sample script that runs as root was added along with realksh.c, a joke KSH implementation.
Download (0.088MB)
Added: 2006-01-09 License: GPL (GNU General Public License) Price:
1383 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 1
- 1
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above jokes 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