breast pain
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 61
stephanie 3.0
stephanie is a program for hardening OpenBSD for multiuser environments. more>>
stephanie is a program for hardening OpenBSD for multiuser environments.
Mmmmm, OpenBSD. Functional, secure, free. With an emphasis on security and integrated cryptography, it carries an excellent reputation for plain old "you-just-cant-hack-this-ness". Not perfect, but nothing is, at least theyre not wearing suits and lying to you.
There are a few roles where i believe OpenBSD fits perfectly. One of these is in multiuser environments, where you have large numbers of possibly malicious users with local access. Here the OpenBSD teams commitment to auditing and fixing code provides a level trust in the environment which is hard to find elsewhere. Also, their efforts to provide integrated cryptography means setting up secure access is easy. So, lets take advantage of the freely available source and tailor it to our specific needs.
Details:
In Phrack 54, route|Mike Schiffman wrote a series of patches for OpenBSD 2.4 for Trusted Path Execution (TPE). Stephanie brings a modified version of these up to speed for OpenBSD 2.8 - 3.0, along with some additional features. A trusted path is one where the parent directory is owned by root and is neither group or other writeable. The TPE works off an internal list of trusted user ids. If a given user tries to execute a file not in a trusted path, and their user id is not in the kernels trusted list, they are denied execution privileges. In real terms, this means they cant download, compile and run krad-sploit.c.
In addition to the TPE, a series of privacy patches came along too. Originally supplied as patches for the individual utilities, these are now implemented through kvm(3), and honour trusted users (ie, trusted users are allowed to see all system information). As a practical example, this means that untrusted users will only be able to see information about processes they own, and the stat tools (netstat, iostat, vmstat, etc) will generally be broken for them. It has been pointed out that by going through trying to kill every possible process id you can find other users processes, but you cant really gain any information on them, so this is not really a great concern.
The original TPE patches had one known way of bypassing the execution restrictions, which was using shell redirection to allow arbitrary interpreted language scripts to be run (perl, sh, etc). This has been fixed up, but could possibly be a big pain in the ass, so please pay attention. When an interpreter is invoked, like most things, it creates a new process group with a job count of one. When a series of commands are connected via the | character on the command line, all the commands belong to the same process group and the job count represents the number of commands eg ps -ax | grep something | awk {print $1} has a job count of three, and the ps, grep and awk processes all belong to the same process group.
The one exception to this is when a user logs in, where we find their shell has its job count set to zero. So how can we use this to prevent shell redirection for a given set of programs? We need to be able to distinguish between ordinary commands and interpreters. At the moment this is done by setting the immutable flag on them. So, in kern_exec(), if we find an untrusted user executing something with the immutable flag set and a job count greater than zero, we flag the process as being potentially dodgy. Then in other system calls we disallow read()ing from fd 0 (stdin) and things like dup2(0, n) if the process has been flagged.
There are two main disadvantages to this. First is the system will need to be brought down to single user mode if the interpreter needs to be patched, and secondly, people will have a hard time suing to an untrusted user. Of course, when a user has shell, they can still type any commands that could otherwise be placed in a shell script, but at the least, this will raise the bar a bit.
Finally, Stephanie brings restricted symbolic links, ala the openwall patches for linux. As time permits, im still working on adding additional features, and will add bits of the openwall stuff i like. The basic goal is to add an extra layer of security without being a monumental pain in the ass to legitimate users, so some things wont be there. I havent added the additional hard link restrictions of the openwall patch, but will do something about this later as time permits.
Installing:
Step by step instructions are presented in the install guide which comes with the source. Read it all first, but its reasonably straight forward. It would be a good idea to read the original article (local copy) if you havent already.
Its distributed under the original two clause BSD license, mess with it all you want, but dont get cranky at me if it breaks something.
You can also read the tpe_adm(8) man page online.
<<lessMmmmm, OpenBSD. Functional, secure, free. With an emphasis on security and integrated cryptography, it carries an excellent reputation for plain old "you-just-cant-hack-this-ness". Not perfect, but nothing is, at least theyre not wearing suits and lying to you.
There are a few roles where i believe OpenBSD fits perfectly. One of these is in multiuser environments, where you have large numbers of possibly malicious users with local access. Here the OpenBSD teams commitment to auditing and fixing code provides a level trust in the environment which is hard to find elsewhere. Also, their efforts to provide integrated cryptography means setting up secure access is easy. So, lets take advantage of the freely available source and tailor it to our specific needs.
Details:
In Phrack 54, route|Mike Schiffman wrote a series of patches for OpenBSD 2.4 for Trusted Path Execution (TPE). Stephanie brings a modified version of these up to speed for OpenBSD 2.8 - 3.0, along with some additional features. A trusted path is one where the parent directory is owned by root and is neither group or other writeable. The TPE works off an internal list of trusted user ids. If a given user tries to execute a file not in a trusted path, and their user id is not in the kernels trusted list, they are denied execution privileges. In real terms, this means they cant download, compile and run krad-sploit.c.
In addition to the TPE, a series of privacy patches came along too. Originally supplied as patches for the individual utilities, these are now implemented through kvm(3), and honour trusted users (ie, trusted users are allowed to see all system information). As a practical example, this means that untrusted users will only be able to see information about processes they own, and the stat tools (netstat, iostat, vmstat, etc) will generally be broken for them. It has been pointed out that by going through trying to kill every possible process id you can find other users processes, but you cant really gain any information on them, so this is not really a great concern.
The original TPE patches had one known way of bypassing the execution restrictions, which was using shell redirection to allow arbitrary interpreted language scripts to be run (perl, sh, etc). This has been fixed up, but could possibly be a big pain in the ass, so please pay attention. When an interpreter is invoked, like most things, it creates a new process group with a job count of one. When a series of commands are connected via the | character on the command line, all the commands belong to the same process group and the job count represents the number of commands eg ps -ax | grep something | awk {print $1} has a job count of three, and the ps, grep and awk processes all belong to the same process group.
The one exception to this is when a user logs in, where we find their shell has its job count set to zero. So how can we use this to prevent shell redirection for a given set of programs? We need to be able to distinguish between ordinary commands and interpreters. At the moment this is done by setting the immutable flag on them. So, in kern_exec(), if we find an untrusted user executing something with the immutable flag set and a job count greater than zero, we flag the process as being potentially dodgy. Then in other system calls we disallow read()ing from fd 0 (stdin) and things like dup2(0, n) if the process has been flagged.
There are two main disadvantages to this. First is the system will need to be brought down to single user mode if the interpreter needs to be patched, and secondly, people will have a hard time suing to an untrusted user. Of course, when a user has shell, they can still type any commands that could otherwise be placed in a shell script, but at the least, this will raise the bar a bit.
Finally, Stephanie brings restricted symbolic links, ala the openwall patches for linux. As time permits, im still working on adding additional features, and will add bits of the openwall stuff i like. The basic goal is to add an extra layer of security without being a monumental pain in the ass to legitimate users, so some things wont be there. I havent added the additional hard link restrictions of the openwall patch, but will do something about this later as time permits.
Installing:
Step by step instructions are presented in the install guide which comes with the source. Read it all first, but its reasonably straight forward. It would be a good idea to read the original article (local copy) if you havent already.
Its distributed under the original two clause BSD license, mess with it all you want, but dont get cranky at me if it breaks something.
You can also read the tpe_adm(8) man page online.
Download (0.014MB)
Added: 2006-03-10 License: GPL (GNU General Public License) Price:
1326 downloads
PAiN 0.46
PAiN is a new MUD code base written in Java. more>>
PAiN project is a new MUD code base written in Java.
PAiN is a new MUD codebase written in Java. It provides a general purpose persistence engine (PAiN DB) and the ability to do dynamic code reloading.
Main features:
- Pure Java database engine (transparent constant-time object access, tracking of the dirty state, transactions and savepoints support).
- Static server code (connection handling, support for code reloading and base interfaces).
- Dynamic reloadable set of action classes and plugins (virtual world logic code and plugins).
- Graphical tool to administrate server and database
Enhancements:
- PAiNDB: Collections could be saved separately from object image.This option should be used if collection is not the only field of dbobject, it has size of 20-40 items and dbobject fields are changed often. Saving collection separately will reduce flushing and object backup time inside transactions.
- PAiNDB: DbObject.provideSchema() is now static method and required for all non-abstract DBObject impls. This allows to import class schema into db without object instantiation.
- GUITool: fully rewritten, modules concept added.
- Codebase: more admin console commands.
- Tinylyb: roles removed: Reset, ResetGroup. SpaceGroup was renamed to Area.
- Tinylib: more shell implemented(this shell should be used to show multipage output)
- Tinylib: online builder bugfixing.
- PAiNDB: fixed bug with error on objects removal with non-empty StringMap type fields.
- Tinylib: bugs in @build mode fixed. More complete visualization for array-type fields
- Tinylib: number of small enhancements.
<<lessPAiN is a new MUD codebase written in Java. It provides a general purpose persistence engine (PAiN DB) and the ability to do dynamic code reloading.
Main features:
- Pure Java database engine (transparent constant-time object access, tracking of the dirty state, transactions and savepoints support).
- Static server code (connection handling, support for code reloading and base interfaces).
- Dynamic reloadable set of action classes and plugins (virtual world logic code and plugins).
- Graphical tool to administrate server and database
Enhancements:
- PAiNDB: Collections could be saved separately from object image.This option should be used if collection is not the only field of dbobject, it has size of 20-40 items and dbobject fields are changed often. Saving collection separately will reduce flushing and object backup time inside transactions.
- PAiNDB: DbObject.provideSchema() is now static method and required for all non-abstract DBObject impls. This allows to import class schema into db without object instantiation.
- GUITool: fully rewritten, modules concept added.
- Codebase: more admin console commands.
- Tinylyb: roles removed: Reset, ResetGroup. SpaceGroup was renamed to Area.
- Tinylib: more shell implemented(this shell should be used to show multipage output)
- Tinylib: online builder bugfixing.
- PAiNDB: fixed bug with error on objects removal with non-empty StringMap type fields.
- Tinylib: bugs in @build mode fixed. More complete visualization for array-type fields
- Tinylib: number of small enhancements.
Download (0.33MB)
Added: 2006-12-19 License: GPL (GNU General Public License) Price:
1039 downloads
Dataxi 1.0.1
Dataxi project is a collection of tools for developing form-based information systems. more>>
Dataxi project is a collection of tools for developing form-based information systems. Dataxi enables one to quickly build an application based on forms with which the user can access the underlying database in order to query, read, edit and write. Dataxi is the link between the user interface and the database.
Dataxi is an OS and enviroment independent product. It follows HTML and SQL standards to such extend that interoperability with all browsers and database backends should be supported.
Dataxi runs on all major operating systems as is or only with minor changes in ini -files.
The purpose of Dataxi is to take the pain away from the most boring phase in the data access application development: user interface designing and programming. Ones you have defined the layout of the form and location for columns, you are done, unless you prefer setting data validation and output format features and other niceties.
A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL. Since computers are very good at handling large amounts of data, database management plays a central role in computing, as stand-alone utilities, or as parts of other applications.
Enhancements:
- This version works with both PHP 4 and 5.
<<lessDataxi is an OS and enviroment independent product. It follows HTML and SQL standards to such extend that interoperability with all browsers and database backends should be supported.
Dataxi runs on all major operating systems as is or only with minor changes in ini -files.
The purpose of Dataxi is to take the pain away from the most boring phase in the data access application development: user interface designing and programming. Ones you have defined the layout of the form and location for columns, you are done, unless you prefer setting data validation and output format features and other niceties.
A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL. Since computers are very good at handling large amounts of data, database management plays a central role in computing, as stand-alone utilities, or as parts of other applications.
Enhancements:
- This version works with both PHP 4 and 5.
Download (1.3MB)
Added: 2007-04-17 License: GPL (GNU General Public License) Price:
920 downloads
Religion 1.04
Religion is a Perl module that can generate tracebacks and create and install die() and warn() handlers. more>>
Religion is a Perl module that can generate tracebacks and create and install die() and warn() handlers.
This is a second go at a module to simplify installing die() and warn() handlers, and to make such handlers easier to write and control.
For most people, this just means that if use use Religion; then youll get noticably better error reporting from warn() and die(). This is especially useful if you are using eval().
Religion provides four classes, WarnHandler, DieHandler, WarnPreHandler, and DiePreHandler, that when you construct them return closures that can be stored in variables that in turn get invoked by $SIG{__DIE__} and $SIG{__WARN__}. Note that if Religion is in use, you should not modify $SIG{__DIE__} or $SIG{__WARN__}, unless you are careful about invoking chaining to the old handler.
Religion also provides a TraceBack function, which is used by a DieHandler after you die() to give a better handle on the current scope of your situation, and provide information about where you were, which might influence where you want to go next, either returning back to where you were, or going on to the very last. [Sorry - Ed.]
See below for usage and examples.
USAGE
DieHandler SUB
Invoke like this:
$Die::Handler = new DieHandler sub {
#...
};
where #... contains your handler code. Your handler will receive the following arguments:
$message, $full_message, $level, $eval,
$iline, $ifile, $oline, $ofile, $oscope
$message is the message provided to die(). Note that the default addition of " at FILE line LINE.n" will have been stripped off if it was present. If you want to add such a message back on, feel free to do so with $iline and $ifile.
$full_message) is the message with a scope message added on if there was no newline at the end of $message. Currently, this is not the original message that die() tacked on, but something along the lines of " at line 3 of the eval at line 4 of Foo.pln".
$eval is non-zero if the die() was invoked inside an eval.
The rest of the arguments are explained in the source for Religion::TraceBack. Yes, I need to document these, but not just now, for they are a pain to explain.
Whenever you install a DieHandler, it will automatically store the current value of $Die::Handler so it can chain to it. If you want to install a handler only temporarily, use local().
If your handler returns data using return or by falling off the end, then the items returns will be used to fill back in the argument list, and the next handler in the chain, if any, will be invoked. Dont fall off the end if you dont want to change the error message.
If your handler exits using last, then no further handlers will be invoked, and the program will die immediatly.
If your handler exits using next, then the next handler in the chain will be invoked directly, without giving you a chance to change its arguments as you could if you used return.
If your handler invokes die(), then die() will proceed as if no handlers were installed. If you are inside an eval, then it will exit to the scope enclosing the eval, otherwise it will exit the program.
WarnHandler SUB
Invoke like this:
$Warn::Handler = new WarnHandler sub {
#...
};
For the rest of its explanation, see DieHandler, and subsitute warn() for die(). Note that once the last DieHandler completes (or last is invoked) then execution will return to the code that invoked warn().
DiePreHandler SUB
Invoke like this:
$Die::PreHandler = new DiePreHandler sub {
#...
};
This works identically to $Die::Handler, except that it forms a separate chain that is invoked before the DieHandler chain. Since you can use last to abort all the handlers and die immediately, or change the messages or scope details, this can be useful for modifying data that all future handlers will see, or to dispose of some messages from further handling.
This is even more useful in $Warn::PreHandler, since you can just throw away warnings that you know arent needed.
WarnPreHandler SUB
Invoke like this:
$Warn::PreHandler = new WarnPreHandler sub {
#...
};
This works identically to $Warn::Handler, except that it forms a separate chain that is invoked before the WarnHandler chain. Since you can use last to abort all the handlers and return to the program, or change the messages or scope details, this can be useful for modifying data that all future handlers will see, or to dispose of some messages.
This is very useful, since you can just throw away warnings that you know arent needed.
<<lessThis is a second go at a module to simplify installing die() and warn() handlers, and to make such handlers easier to write and control.
For most people, this just means that if use use Religion; then youll get noticably better error reporting from warn() and die(). This is especially useful if you are using eval().
Religion provides four classes, WarnHandler, DieHandler, WarnPreHandler, and DiePreHandler, that when you construct them return closures that can be stored in variables that in turn get invoked by $SIG{__DIE__} and $SIG{__WARN__}. Note that if Religion is in use, you should not modify $SIG{__DIE__} or $SIG{__WARN__}, unless you are careful about invoking chaining to the old handler.
Religion also provides a TraceBack function, which is used by a DieHandler after you die() to give a better handle on the current scope of your situation, and provide information about where you were, which might influence where you want to go next, either returning back to where you were, or going on to the very last. [Sorry - Ed.]
See below for usage and examples.
USAGE
DieHandler SUB
Invoke like this:
$Die::Handler = new DieHandler sub {
#...
};
where #... contains your handler code. Your handler will receive the following arguments:
$message, $full_message, $level, $eval,
$iline, $ifile, $oline, $ofile, $oscope
$message is the message provided to die(). Note that the default addition of " at FILE line LINE.n" will have been stripped off if it was present. If you want to add such a message back on, feel free to do so with $iline and $ifile.
$full_message) is the message with a scope message added on if there was no newline at the end of $message. Currently, this is not the original message that die() tacked on, but something along the lines of " at line 3 of the eval at line 4 of Foo.pln".
$eval is non-zero if the die() was invoked inside an eval.
The rest of the arguments are explained in the source for Religion::TraceBack. Yes, I need to document these, but not just now, for they are a pain to explain.
Whenever you install a DieHandler, it will automatically store the current value of $Die::Handler so it can chain to it. If you want to install a handler only temporarily, use local().
If your handler returns data using return or by falling off the end, then the items returns will be used to fill back in the argument list, and the next handler in the chain, if any, will be invoked. Dont fall off the end if you dont want to change the error message.
If your handler exits using last, then no further handlers will be invoked, and the program will die immediatly.
If your handler exits using next, then the next handler in the chain will be invoked directly, without giving you a chance to change its arguments as you could if you used return.
If your handler invokes die(), then die() will proceed as if no handlers were installed. If you are inside an eval, then it will exit to the scope enclosing the eval, otherwise it will exit the program.
WarnHandler SUB
Invoke like this:
$Warn::Handler = new WarnHandler sub {
#...
};
For the rest of its explanation, see DieHandler, and subsitute warn() for die(). Note that once the last DieHandler completes (or last is invoked) then execution will return to the code that invoked warn().
DiePreHandler SUB
Invoke like this:
$Die::PreHandler = new DiePreHandler sub {
#...
};
This works identically to $Die::Handler, except that it forms a separate chain that is invoked before the DieHandler chain. Since you can use last to abort all the handlers and die immediately, or change the messages or scope details, this can be useful for modifying data that all future handlers will see, or to dispose of some messages from further handling.
This is even more useful in $Warn::PreHandler, since you can just throw away warnings that you know arent needed.
WarnPreHandler SUB
Invoke like this:
$Warn::PreHandler = new WarnPreHandler sub {
#...
};
This works identically to $Warn::Handler, except that it forms a separate chain that is invoked before the WarnHandler chain. Since you can use last to abort all the handlers and return to the program, or change the messages or scope details, this can be useful for modifying data that all future handlers will see, or to dispose of some messages.
This is very useful, since you can just throw away warnings that you know arent needed.
Download (0.005MB)
Added: 2007-05-24 License: Perl Artistic License Price:
883 downloads
FreeType 1.3.1
FreeType is a software font engine that is designed to be small, efficient, highly customizable and portable. more>>
FreeType 1 is a portable and highly efficient TrueType rendering engine, that is now successfully used to bring TrueType support to a very large variety of platforms and environments, be they font servers, graphics libraries or embedded systems.
FreeType 1 is a clean-room implementation that is not derived from the original TrueType engine developed by Apple and Microsoft. It has been created with the sole help of the published TrueType specifications, which to our great surprise (and pain) turned out to be extremely poor and misleading in critical areas. Much hard work has been undertaken to solve ambiguities. The end result is a portable and fast renderer.
Note that FreeType 1 is a library. It is not a font server for your favorite platform, even though it was designed to be used in many of them. Note also that it is not a complete text-rendering library. Its purpose is simply to open and manage font files, as well as load, hint and render individual glyphs efficiently. You can also see it as a "TrueType driver" for a higher-level library, though rendering text with it is easy, as demonstrated by the test programs.
Its quality matches these of Windows and the Macintosh, while its memory foot-print and code size (between 48 and 55 kByte of Intel code) remain modest. A thing that cannot be said for most other commercial engines available.
Main features:
- Supports TrueType files (TTF) and collections (TTC). Doesnt support GX or OpenType fonts, but these can be opened and used as normal TTF files by the library. (With the exception of OTF OpenType fonts which really embed a Type 1 font file within a TrueType storage).
- Modular design: Memory and I/O operations can be very easily tailored to your own platform/system (the standard release comes with ANSI libc support).
- Font smoothing, a.k.a. gray-scaling. Just like Win95, the renderer only smoothes the parts of a glyph which need it (i.e., diagonals and curves).
- Support for all character mappings defined in the TrueType specification. The client application can select whichever pleases it.
- A full-featured and efficient TrueType bytecode interpreter. The engine is able to produce excellent output at small point sizes. This component has been extremely difficult to get right, due to the ambiguous and misleadings TrueType specifications. However, we now match Windows and Mac qualities.
- Written in portable ANSI C (and Pascal, for older FreeType 1 versions). Should compile well on all kinds of systems (tested on 16, 32 and 64 bits processors). With full source code available.
- Open Source License. FreeType can be included in all kinds of commercial systems and software.
- Provides test programs to "show-off" the library, runnable on the following platforms: Dos, Unix, OS/2, Win95, and Amiga. Any porters for other systems are welcome and should contact the developers team.
- Support for extensions. These are separately linkable units which can be used to enhance the engines functionalities without recompiling it. They can be written to access additional TrueType tables, or even GX and/or OpenType ones (the latter is already available).
- Kerning support: The TrueType kerning data is available through one of the standard extensions that comes in this release. However, it is up to the application to "interpret" the data, as many different `formats are supported.
- Support for vertical metrics. The engine is able to provide client applications with vertical glyph metrics if they are found in font files (usually in CJKV fonts). If not present, it synthetizes metrics from the horizontal values, ascender, and descender metrics. This means that it is possible to render vertical text correctly.
- Standard extensions are provided to access and load the glyph names in the Postscript table.
<<lessFreeType 1 is a clean-room implementation that is not derived from the original TrueType engine developed by Apple and Microsoft. It has been created with the sole help of the published TrueType specifications, which to our great surprise (and pain) turned out to be extremely poor and misleading in critical areas. Much hard work has been undertaken to solve ambiguities. The end result is a portable and fast renderer.
Note that FreeType 1 is a library. It is not a font server for your favorite platform, even though it was designed to be used in many of them. Note also that it is not a complete text-rendering library. Its purpose is simply to open and manage font files, as well as load, hint and render individual glyphs efficiently. You can also see it as a "TrueType driver" for a higher-level library, though rendering text with it is easy, as demonstrated by the test programs.
Its quality matches these of Windows and the Macintosh, while its memory foot-print and code size (between 48 and 55 kByte of Intel code) remain modest. A thing that cannot be said for most other commercial engines available.
Main features:
- Supports TrueType files (TTF) and collections (TTC). Doesnt support GX or OpenType fonts, but these can be opened and used as normal TTF files by the library. (With the exception of OTF OpenType fonts which really embed a Type 1 font file within a TrueType storage).
- Modular design: Memory and I/O operations can be very easily tailored to your own platform/system (the standard release comes with ANSI libc support).
- Font smoothing, a.k.a. gray-scaling. Just like Win95, the renderer only smoothes the parts of a glyph which need it (i.e., diagonals and curves).
- Support for all character mappings defined in the TrueType specification. The client application can select whichever pleases it.
- A full-featured and efficient TrueType bytecode interpreter. The engine is able to produce excellent output at small point sizes. This component has been extremely difficult to get right, due to the ambiguous and misleadings TrueType specifications. However, we now match Windows and Mac qualities.
- Written in portable ANSI C (and Pascal, for older FreeType 1 versions). Should compile well on all kinds of systems (tested on 16, 32 and 64 bits processors). With full source code available.
- Open Source License. FreeType can be included in all kinds of commercial systems and software.
- Provides test programs to "show-off" the library, runnable on the following platforms: Dos, Unix, OS/2, Win95, and Amiga. Any porters for other systems are welcome and should contact the developers team.
- Support for extensions. These are separately linkable units which can be used to enhance the engines functionalities without recompiling it. They can be written to access additional TrueType tables, or even GX and/or OpenType ones (the latter is already available).
- Kerning support: The TrueType kerning data is available through one of the standard extensions that comes in this release. However, it is up to the application to "interpret" the data, as many different `formats are supported.
- Support for vertical metrics. The engine is able to provide client applications with vertical glyph metrics if they are found in font files (usually in CJKV fonts). If not present, it synthetizes metrics from the horizontal values, ascender, and descender metrics. This means that it is possible to render vertical text correctly.
- Standard extensions are provided to access and load the glyph names in the Postscript table.
Download (1.4MB)
Added: 2005-09-30 License: GPL (GNU General Public License) Price:
1491 downloads
ROMBrowser 0.3
ROMBrowser project is a tool for organizing emulator ROMs. more>>
ROMBrowser project is a tool for organizing emulator ROMs.
It will identify rom files by their CRC, give information about their characteristics (game title, parent rom, etc), and organize those ROMs with different filters.
If you like to play with emulation and emulators, you know the pain of keeping track of your thousands of ROM files, not to mention figuring out what it is youve just downloaded. Thats what ROMBrowser is for. Eventually I hope to have a system that works somewhat like romcenter, but is java based and GPLd.
I also am planning on developing a schema for storing meta-data related to ROM files. There are currently several databases out there that have information about ROM files, usually keyed by the files CRC32. Part of the ROMBrowser project will be to develop an open standard for that kind of data (probably an XML DTD) and a plan for the distributed classification of ROM files, so users can classify unknown ROMs and distribute that information.
Enhancements:
- Added Super Nintendo rom handler for SMC files. It doesnt handle interleaved files yet.
- Separated out datafiles from main distribution, added credits tag to xml database, to give credit to the rom database maintainers (just using conversions of cowerings goodtools for now).
- Changed rom info viewer to table view. Added ability to modify rom data, changes will be saved in knownfiles.xml
- Changed how file searching works, now only files that have romhandlers (nes and smc currently) get processed, all others are ignored.
- Made file converter work better for converting romcenter dat files (use net.sourceforge.rombrowser.util.ROMDatabaseFileConverter
- Deleting specific roms from the treeview will remove them from knownfiles, and will also delete them from the filesystem if delete-on-remove is true.
- Deleting folders from the treeview will still not remove their child entries from knowfiles or delete the foders or their children.
- Changed the way rominfo files are handled, now if the datafile property has colons in it, it will treat it as a list of datafiles, eg: "goodnes.xml.gz:goodsnes.xml.gz" would look for both goodnes and goodsnes in the rombrowser home folder
<<lessIt will identify rom files by their CRC, give information about their characteristics (game title, parent rom, etc), and organize those ROMs with different filters.
If you like to play with emulation and emulators, you know the pain of keeping track of your thousands of ROM files, not to mention figuring out what it is youve just downloaded. Thats what ROMBrowser is for. Eventually I hope to have a system that works somewhat like romcenter, but is java based and GPLd.
I also am planning on developing a schema for storing meta-data related to ROM files. There are currently several databases out there that have information about ROM files, usually keyed by the files CRC32. Part of the ROMBrowser project will be to develop an open standard for that kind of data (probably an XML DTD) and a plan for the distributed classification of ROM files, so users can classify unknown ROMs and distribute that information.
Enhancements:
- Added Super Nintendo rom handler for SMC files. It doesnt handle interleaved files yet.
- Separated out datafiles from main distribution, added credits tag to xml database, to give credit to the rom database maintainers (just using conversions of cowerings goodtools for now).
- Changed rom info viewer to table view. Added ability to modify rom data, changes will be saved in knownfiles.xml
- Changed how file searching works, now only files that have romhandlers (nes and smc currently) get processed, all others are ignored.
- Made file converter work better for converting romcenter dat files (use net.sourceforge.rombrowser.util.ROMDatabaseFileConverter
- Deleting specific roms from the treeview will remove them from knownfiles, and will also delete them from the filesystem if delete-on-remove is true.
- Deleting folders from the treeview will still not remove their child entries from knowfiles or delete the foders or their children.
- Changed the way rominfo files are handled, now if the datafile property has colons in it, it will treat it as a list of datafiles, eg: "goodnes.xml.gz:goodsnes.xml.gz" would look for both goodnes and goodsnes in the rombrowser home folder
Download (MB)
Added: 2006-11-27 License: GPL (GNU General Public License) Price:
1066 downloads
Postal 2: Share the Pain DEMO 1407
Postal 2: Share the Pain DEMO is a FPS game for Linux. more>> <<less
Download (167.3MB)
Added: 2006-03-17 License: Freeware Price:
1015 downloads
FireAngel 1.0.0
FireAngel is a relatively small script that should easy the pain of setting up a Linux 2.4.x iptables based firewall. more>>
FireAngel is a relatively small script that should easy the pain of setting up a Linux 2.4.x iptables based firewall. FireAngel project can do basic firewalling such as specifying unsafe and safe interfaces, host/subnets and ports.
FireAngel can also set up Masquerading for you (over multiple interfaces if you really want that). Theres no fancy documentation, just a quick installation guide (a couple of lines) and a documented configuration script. FireAngel just tries to do its work as good as it can, nothing more, nothing less...
Oh and by the way... This thing comes without guarantees! I do not and will never take responsibility for faults in the script or the configuration file.
Installation:
Copy the "rc.fireangel" file to your /etc directory and edit options as you want them. If needed, create your own "rc.fireangel.allow" and "rc.fireangel.disallow" files. Copy fireangel script to /etc/init.d (or /sbin/init.d or /etc/rc.d), and make sure it gets started, either by including it in some run level, or by calling it in ip-up/ip-down or ifup/ifdown
configuration.
<<lessFireAngel can also set up Masquerading for you (over multiple interfaces if you really want that). Theres no fancy documentation, just a quick installation guide (a couple of lines) and a documented configuration script. FireAngel just tries to do its work as good as it can, nothing more, nothing less...
Oh and by the way... This thing comes without guarantees! I do not and will never take responsibility for faults in the script or the configuration file.
Installation:
Copy the "rc.fireangel" file to your /etc directory and edit options as you want them. If needed, create your own "rc.fireangel.allow" and "rc.fireangel.disallow" files. Copy fireangel script to /etc/init.d (or /sbin/init.d or /etc/rc.d), and make sure it gets started, either by including it in some run level, or by calling it in ip-up/ip-down or ifup/ifdown
configuration.
Download (0.010MB)
Added: 2006-05-11 License: Freeware Price:
1261 downloads
Luban programming language Beta 2.1
Luban is a component oriented scripting language. more>>
Luban is a component oriented scripting language. Luban is free and open source. Luban is named after a legendary ancient Chinese civil engineer and carpenter two thousand year ago whose constructions are still in use today.
The programming language spectrum seems crowded. Do we have all the tools we need? The author of Luban likes the scripting languages in general because of their usability. Though he always feels the pain for the lack of suitable component model for scripting.
And he personally considers object oriented scripting is too complicated for scripting purpose and will never compete with C++/Java. He eventually created Luban, a scripting language with a robust component model tailored for scripting purpose. Luban is an easy scripting language that is as clean and manageable as Java.
There have been numerous discussions about software component without clear definition. Lubans definition of component is property based object that is similar to Java Bean. User interacts with component by reading and writing property values, and computation could be triggered by the interactions.
The idea of Luban programming language that scripting language needs a different component model other than conventional class hierarchy to fit its scripting environment. A complete mechanism is built in Luban to define, save and categorize components, which is a fundamental feature of Luban.
Enhancements:
- This release adds the new feature to iterate through the elements in Java container objects.
- The following Java types can now be iterated in Luban: Java array, java.util.Collection, and java.util.Map.
<<lessThe programming language spectrum seems crowded. Do we have all the tools we need? The author of Luban likes the scripting languages in general because of their usability. Though he always feels the pain for the lack of suitable component model for scripting.
And he personally considers object oriented scripting is too complicated for scripting purpose and will never compete with C++/Java. He eventually created Luban, a scripting language with a robust component model tailored for scripting purpose. Luban is an easy scripting language that is as clean and manageable as Java.
There have been numerous discussions about software component without clear definition. Lubans definition of component is property based object that is similar to Java Bean. User interacts with component by reading and writing property values, and computation could be triggered by the interactions.
The idea of Luban programming language that scripting language needs a different component model other than conventional class hierarchy to fit its scripting environment. A complete mechanism is built in Luban to define, save and categorize components, which is a fundamental feature of Luban.
Enhancements:
- This release adds the new feature to iterate through the elements in Java container objects.
- The following Java types can now be iterated in Luban: Java array, java.util.Collection, and java.util.Map.
Download (0.37MB)
Added: 2006-04-20 License: Freely Distributable Price:
1283 downloads
Gimp::basewidget 1.211
Gimp::basewidget is a pragma to declare the superclass of a gtk widget. more>>
Gimp::basewidget is a pragma to declare the superclass of a gtk widget.
SYNOPSIS
use Gimp::basewidget superclass;
e.g.
use Gimp::basewidget Gtk::Button;
This pragma can (but does not need to) be used to declare the current package as a childclass of an existing Gtk widget class. The only "import tag" must be the name of the existing superclass.
The module automatically registers a subtype, calls a special callback at gtk initialization time and provides default implementations for some common methods (the list might grow in the future to enhance settor/gettor functionality).
The following methods are provided. All of them can be overriden in your package.
new
A simple generic new constructor is provided. It will simply call Gtk::Object::new with all the provided arguments.
GTK_INIT
This callback is called as early as possible after gtk was initialized, but not before. This can be used to register additional subtypes, argument types etc. It is similar to GTK_CLASS_INIT.
GTK_CLASS_INIT
Unlike the standard Gtk-callback of the same name, this method can be omitted in your package (while still being a valid Widget).
GTK_OBJECT_INIT
This callback can also be omitted, but this rarely makes sense.
BUGS
This was a pain to implement, you will not believe this when looking at the code, though.
<<lessSYNOPSIS
use Gimp::basewidget superclass;
e.g.
use Gimp::basewidget Gtk::Button;
This pragma can (but does not need to) be used to declare the current package as a childclass of an existing Gtk widget class. The only "import tag" must be the name of the existing superclass.
The module automatically registers a subtype, calls a special callback at gtk initialization time and provides default implementations for some common methods (the list might grow in the future to enhance settor/gettor functionality).
The following methods are provided. All of them can be overriden in your package.
new
A simple generic new constructor is provided. It will simply call Gtk::Object::new with all the provided arguments.
GTK_INIT
This callback is called as early as possible after gtk was initialized, but not before. This can be used to register additional subtypes, argument types etc. It is similar to GTK_CLASS_INIT.
GTK_CLASS_INIT
Unlike the standard Gtk-callback of the same name, this method can be omitted in your package (while still being a valid Widget).
GTK_OBJECT_INIT
This callback can also be omitted, but this rarely makes sense.
BUGS
This was a pain to implement, you will not believe this when looking at the code, though.
Download (0.26MB)
Added: 2006-07-11 License: Perl Artistic License Price:
1201 downloads
AFT 5.096
AFT is a simple documentation markup language for HTML/LaTeX/etc. more>>
AFT is a document preparation system. It is mostly free form meaning that there is little intrusive markup. AFT source documents look a lot like plain old ASCII text.
AFT has a few rules for structuring your document and these rules have more to do with formatting your text rather than embedding commands.
Right now, AFT produces pretty good HTML, LaTeX, lout and RTF. It can, in fact, be coerced into producing all types of output (e.g. roll-your-own XML). All that needs to be done is to edit a rule file. You can even customize your own HTML rule files for specialized output.
Installation
- Run ./configure and then make install.
Enhancements:
aft-html.dat and aft-tex.dat
- Removed the historical hack: using to produce a line break. This was never documented, so it shouldnt cause too much pain to have it removed. If it does cause pain, let me know. You could always use a pragma to (re)implement this feature/hack.
- In the meantime... A new rule element: LineBreak has been introduced so that internal reliance on goes away. LineBreak has not been exposed to the end user (yet).
AFT.pm
- Fixed a small bug concerning line continuations in verbatim mode: Line continuations are no longer parsed when in verbatim mode. What you type is what you should get.
<<lessAFT has a few rules for structuring your document and these rules have more to do with formatting your text rather than embedding commands.
Right now, AFT produces pretty good HTML, LaTeX, lout and RTF. It can, in fact, be coerced into producing all types of output (e.g. roll-your-own XML). All that needs to be done is to edit a rule file. You can even customize your own HTML rule files for specialized output.
Installation
- Run ./configure and then make install.
Enhancements:
aft-html.dat and aft-tex.dat
- Removed the historical hack: using to produce a line break. This was never documented, so it shouldnt cause too much pain to have it removed. If it does cause pain, let me know. You could always use a pragma to (re)implement this feature/hack.
- In the meantime... A new rule element: LineBreak has been introduced so that internal reliance on goes away. LineBreak has not been exposed to the end user (yet).
AFT.pm
- Fixed a small bug concerning line continuations in verbatim mode: Line continuations are no longer parsed when in verbatim mode. What you type is what you should get.
Download (0.10MB)
Added: 2005-09-27 License: Artistic License Price:
1488 downloads
Nmap Parser 1.11
Nmap Parser is a Perl module to ease the pain of developing scripts or collecting network information from nmap scans. more>>
Nmap Parser is a module that implements a interface to the information contained in an nmap scan. It is implemented by parsing the xml scan data that is generated by nmap.
This will enable anyone who utilizes nmap to quickly create fast and robust security scripts that utilize the powerful port scanning abilities of nmap.
Enhancements:
- Parsing of distance information was added. Ignoring of taskend, taskbegin, and taskprogress information was added.
- Tests for nmap 4.20 were added.
- The license was changed to the MIT-style.
- The "always null" bug for the service->protocol call was fixed.
<<lessThis will enable anyone who utilizes nmap to quickly create fast and robust security scripts that utilize the powerful port scanning abilities of nmap.
Enhancements:
- Parsing of distance information was added. Ignoring of taskend, taskbegin, and taskprogress information was added.
- Tests for nmap 4.20 were added.
- The license was changed to the MIT-style.
- The "always null" bug for the service->protocol call was fixed.
Download (0.035MB)
Added: 2007-06-15 License: GPL (GNU General Public License) Price:
862 downloads
Wordpress Blogging JumpBox 1.0
Wordpress Blogging JumpBox is a JumpBox with a self-contained version of Wordpress. more>>
Wordpress project is the leading open source blogging platform that has rocketed to popularity thanks to its open design and powerful features. This JumpBox includes Wordpress version 2.1.2.
WHY USE A JUMPBOX
Its Simple
Open Source applications are great. The applications are powerful, inexpensive and get the job done. But installing and configuring those applications can be a pain. A JumpBox delivers Open Source applications in a way that makes them simple to try, run and operate.
Its Quick
Actually downloading a JumpBox will take the most time. Once thats done, youre just a few minutes from having a working application that can serve multiple users.
Its Portable
A JumpBox collects the application, application dependencies and all application data into a single bundle that can easily be moved from one computer to another. This allows you to start running the application on your desktop and then as usage grows move it to a server without needing to reinstall or reconfigure. Plus with support for Mac OS X, Windows and Linux you can even move the application between platforms with little effort.
Its Safe
Manually installing Open Source applications not only takes a lot of time and effort, but when youre done its still left to you to figure out how to protect the data the application manages. With a JumpBox its easy to add automatic backups of the entire state of the application.
Its Virtual
A JumpBox application is a virtual appliance that bundles the open source application and all its runtime dependencies into a single package that runs on top of virtualization software from VMWare, Parallels or Xen. This means all JumpBox applications automatically gain the benefits of traditional server virtualization and can be dropped into existing virtualization infrastructure when available.
Its Comfortable
JumpBox provides a consistent runtime environment for all applications that we bundle. The applications may differ considerably, but their installation and operation will be familiar no matter which JumpBox you choose.
<<lessWHY USE A JUMPBOX
Its Simple
Open Source applications are great. The applications are powerful, inexpensive and get the job done. But installing and configuring those applications can be a pain. A JumpBox delivers Open Source applications in a way that makes them simple to try, run and operate.
Its Quick
Actually downloading a JumpBox will take the most time. Once thats done, youre just a few minutes from having a working application that can serve multiple users.
Its Portable
A JumpBox collects the application, application dependencies and all application data into a single bundle that can easily be moved from one computer to another. This allows you to start running the application on your desktop and then as usage grows move it to a server without needing to reinstall or reconfigure. Plus with support for Mac OS X, Windows and Linux you can even move the application between platforms with little effort.
Its Safe
Manually installing Open Source applications not only takes a lot of time and effort, but when youre done its still left to you to figure out how to protect the data the application manages. With a JumpBox its easy to add automatic backups of the entire state of the application.
Its Virtual
A JumpBox application is a virtual appliance that bundles the open source application and all its runtime dependencies into a single package that runs on top of virtualization software from VMWare, Parallels or Xen. This means all JumpBox applications automatically gain the benefits of traditional server virtualization and can be dropped into existing virtualization infrastructure when available.
Its Comfortable
JumpBox provides a consistent runtime environment for all applications that we bundle. The applications may differ considerably, but their installation and operation will be familiar no matter which JumpBox you choose.
Download (132.6MB)
Added: 2007-07-25 License: GPL (GNU General Public License) Price:
825 downloads

Firefox for Linux 2.0.0.6
Mozilla Firefox 2 for Linux version. more>> Mozilla Firefox is a fast, full-featured Web browser that makes browsing more efficient than ever before. Firefox includes pop-up blocking; a tab-browsing; integrated Google searching; simplified privacy controls that let you cover your tracks more effectively; a streamlined browser window that shows you more of the page than any other browser; and a number of additional features that work with you to help you get the most out of your time online.
Session Restore
Losing your place while youre doing things on the Web is a pain. Now, with Session Restore, if Firefox has to restart or closes when it comes back youll pick up exactly where you left off. The windows and tabs you were using, the text you typed into forms, and the in-progress downloads you had running will all be restored. You can even set Firefox 2 to always restore your previous session instead of loading a home page, so youll never lose your place again.
Web Feeds (RSS)
What do news headlines, indie rock podcasts, and pictures of kittens have in common? Theyre all things that you can subscribe to with Web feeds. Firefox 2 gives you full control over Web feeds, showing you a preview and letting you choose how you want to subscribe. You can use a Firefox Live Bookmark, or a feed reader that youve installed on your computer, or through a Web service such as My Yahoo!, Bloglines or Google Reader.
Firefox for Linux System Requirements
Please note that Linux distributors may provide packages for your distribution which have different requirements.
Linux kernel - 2.2.14 with the following libraries or packages minimums:
glibc 2.3.2
gtk+2.0
XFree86-3.3.6
fontconfig (also known as xft)
libstdc++5
Thunderbird has been tested on Linux Fedora Core 4<<less
Download (9.22MB)
Added: 2009-04-18 License: Freeware Price: Free
213 downloads
OpenScientist 16.0
OpenScientist is an integration of open source products working together to do scientific visualization and data analysis. more>>
OpenScientist is an integration of open source products working together to do scientific visualization and data analysis, in particular for high energy physics (HEP).
The project is definitely NOT one million lines of intricated and unnecessary complicated home made code reinventing everything.
Motivations
Experiments in high energy and nuclear physics need to be at the edge of computing technologies but at the same time have to face a very long life time (LHC experiments are going to be a matter of decades). This involves that the software must be organized in a way that permits to include or discard some technologies in an easy way without having to recode everything at each change of a piece.
For data analysis, the HEP community had used the CERN/PAW tool for years. Whilst this program had been used and is probably still used by hundred of physicists in the world, it is not any more maintained by the lab that created and promoted it : CERN. This lab had not been able to establish long term collaborative software engineering plans in order to have a technical follow up of this program and analysis tools in general. (What is astounding, is that the same people that were behind CERN/PAW come now with another tool (ROOT) which has exactly the same engineering defects).
OpenScientist is first of all an architecture trying to handle the problem differently to avoid upseting huge software phase transitions in the future. The key points of the system are the modularity and the openness. See the Languages, Coarse graining architecture, and The file formats intrinsic pain section for more about the technical choices and design.
Enhancements:
- An HDF5 driver was introduced in BatchLab.
- The build system was replaced with obuild.
- Support for CoinPython was added.
- Initial support was added for both Qt4 and SDL.
- Examples were added.
- Assorted code cleanups and speedups were done.
<<lessThe project is definitely NOT one million lines of intricated and unnecessary complicated home made code reinventing everything.
Motivations
Experiments in high energy and nuclear physics need to be at the edge of computing technologies but at the same time have to face a very long life time (LHC experiments are going to be a matter of decades). This involves that the software must be organized in a way that permits to include or discard some technologies in an easy way without having to recode everything at each change of a piece.
For data analysis, the HEP community had used the CERN/PAW tool for years. Whilst this program had been used and is probably still used by hundred of physicists in the world, it is not any more maintained by the lab that created and promoted it : CERN. This lab had not been able to establish long term collaborative software engineering plans in order to have a technical follow up of this program and analysis tools in general. (What is astounding, is that the same people that were behind CERN/PAW come now with another tool (ROOT) which has exactly the same engineering defects).
OpenScientist is first of all an architecture trying to handle the problem differently to avoid upseting huge software phase transitions in the future. The key points of the system are the modularity and the openness. See the Languages, Coarse graining architecture, and The file formats intrinsic pain section for more about the technical choices and design.
Enhancements:
- An HDF5 driver was introduced in BatchLab.
- The build system was replaced with obuild.
- Support for CoinPython was added.
- Initial support was added for both Qt4 and SDL.
- Examples were added.
- Assorted code cleanups and speedups were done.
Download (MB)
Added: 2007-06-30 License: GPL (GNU General Public License) Price:
849 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 breast pain 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