pain
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 61
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
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
ferite 1.0.2
ferite is a lighweight, portable, threadsafe scripting engine with a language that is very easy to pick up and use. more>>
ferite is a lighweight, portable, threadsafe scripting engine with a language that is very easy to pick up and use.
ferite is a scripting engine and language written in c for complete portability.
ferite is a clean language with influences from various places: objects from Java/C++, functions from C/php, closures from scheme, block calling from ruby, namespaces from C++, as well as its own a sane loose typing mechanism, variant type and set of nice APIs.
Its origins are from one of those "it seems like a good idea", the good idea was provoked by finding perl a real pain in the arse to embed (from what I gather its easier nowadays). It started in the summer of 2000 (with various tries and fails within the pre-ceding two years). It reached version 1.0 in the second quarter of 2005.
<<lessferite is a scripting engine and language written in c for complete portability.
ferite is a clean language with influences from various places: objects from Java/C++, functions from C/php, closures from scheme, block calling from ruby, namespaces from C++, as well as its own a sane loose typing mechanism, variant type and set of nice APIs.
Its origins are from one of those "it seems like a good idea", the good idea was provoked by finding perl a real pain in the arse to embed (from what I gather its easier nowadays). It started in the summer of 2000 (with various tries and fails within the pre-ceding two years). It reached version 1.0 in the second quarter of 2005.
Download (1.9MB)
Added: 2005-12-07 License: BSD License Price:
1419 downloads
Menoku 0.1.1
Menoku is an innovative new menu system that combines the best features of several common application launching schemes. more>>
Menoku is an innovative new menu system that combines the best features of several common application launching schemes.
Menoku project lets you graphicaly search through neatly organized icons and choose any icon quickly with a short sequence of keys.
It supports hierarchical submenus and is easy to configure and organize with drag and drop interface. It works on Windows and Linux with the Qt4 library.
You have nine groups of nine icons, each of which can either launch an application or load a new menu of up to 81 icons.
Because of Menokus unique layout, any icon on the screen can be selected with at most two keypresses, expressing the position of the program you want to launch. You can memorize these key sequences, or hunt through a large full-color icons to find the program you want.
The idea behind Menoku is to make an application menu laid out like a Sudoku board. A single window is divided into nine groups of nine icons, making an array of nine by nine. Each icon can either load a new menu of up to 81 icons or can launch an application. To select an icon, you can either click on it or use your numberpad to select which group of nine icons to choose from and then which of the nine icons to activate. (See the Screenshots page if this isnt clear)
Why is this a good idea? Well, the purpose of Menoku is to try to make a more effecient menu system, and it does so by combining the best elements from several common application launching methods:
The Messy Desktop
Using the desktop to start applications is nice because it lets you browse through a large number of applications graphically using large icons. Unfortunately, keeping a desktop full of icons organized is a pain! Also, having launch icons on the desktop is really pretty inconvenient because you have to minimize windows to see all your icons. You shouldnt have to disrupt what youre doing to start a new program.
Menoku lets you graphically search through a large number of icons, just like a desktop, but its unique grouping layout enforces some level of organization, so you always know where to look. Also, Menoku is not a desktop, its more like a popup menu. It comes onto the screen when you ask for it (on top of any other windows) and when you select an application to start, it disappears.
Keyboard Shortcuts Sequences
Many power users like to use the keyboard to start their favorite programs. This means they dont have to move their hands to the mouse to start a new program, and its also much faster to just type out a memorized combination than to browse through a menu. Of course, the problem with this is that you have to memorize all your key combinations! You can make yourself a cheat sheet, but having to lookup a key combo before you type it defeats the purpose.
In Menoku, any icon you see on the screen is uniquely accessible through typing at most two keys: one to select which group of nine you want, and another to select one of those nine icons. This means that every application you want to start with Menoku has its own short key sequence. You can quickly memorize the sequences for your favorite programs, but if you forget you always have the icon display to remind you.
Hierarchical Menus
The standard way to start programs in a WIMP interface (such as Windows or X11) is to open up a menu. You click a button and get a long list of names and small icons, some of which represent programs and others more menus. The reason menus are so ubiquitous is that they work! You can store any number of programs that way and organize them into groups. Unfortunately, menus are very slow. You have to browse through text, which is inefficient, and you also have to wait for new menus to pop up beneath your mouse.
Menoku is in large part modeled after a standard hierarchical menu. Although you can only have 81 icons in any given menu, you can have any number of submenus which can also have 81 icons. You can easily group your programs together either by putting them into the same group of nine or by putting them in the same submenu. However, browsing in Menoku is much faster. You can search for large icons instead of text, and you can use your keyboard instead of following a winding path with your mouse.
Main features:
- Quick key-sequence launching of your favorite programs
- Mouse addicts can click on an icon instead of using the keyboard
- Trigger any command with any number of arguments
- Full color icons with transparency
- Tray icon for more menu-like functionality
- Configurable global hotkey
- Hierarchical menus in XML
- Drag and Drop menu editing
Installation:
First of all, to compile this code you MUST HAVE Qt 4.0 or above installed on your computer and you must use the version of qmake that comes with it.
To make sure you are using the right version of qmake, run the command "qmake -v" to see which Qt version it came with. Because the Qt libraries are in a state of transition from qt3 to qt4, you might have separate programs named qmake-qt3 and qmake-qt4, or something similar on your computer. If this is the case, use qmake-qt4 instead of qmake in the instructions below.
To compile Menoku, simply run:
qmake
make
If you use the wrong version of qmake, you will get error messages and the code will not compile.
The next step is to install. This will copy the menoku binary and the menoku icons into appropriate locations on your computer. The default place to put the binary file is /usr/bin/ and the default place for icons is /usr/share/pixmaps/. If you want to change these paths, edit the lines in menoku.pro that set target.path and icons.path so that they refer to the directories you want.
To install, make sure you have permissions for the intall directory (su root, if needed) and run:
make install
Enhancements:
Some minor bugfixes have been made.
Fixed the following:
- If you dragged a cell to another location then chose swap from the popup menu, youd get a segfault
- In some cases, changes in the number of icons would go unnoticed after drops (causing things like hiding empty cells and zooming single items to misbehave)
<<lessMenoku project lets you graphicaly search through neatly organized icons and choose any icon quickly with a short sequence of keys.
It supports hierarchical submenus and is easy to configure and organize with drag and drop interface. It works on Windows and Linux with the Qt4 library.
You have nine groups of nine icons, each of which can either launch an application or load a new menu of up to 81 icons.
Because of Menokus unique layout, any icon on the screen can be selected with at most two keypresses, expressing the position of the program you want to launch. You can memorize these key sequences, or hunt through a large full-color icons to find the program you want.
The idea behind Menoku is to make an application menu laid out like a Sudoku board. A single window is divided into nine groups of nine icons, making an array of nine by nine. Each icon can either load a new menu of up to 81 icons or can launch an application. To select an icon, you can either click on it or use your numberpad to select which group of nine icons to choose from and then which of the nine icons to activate. (See the Screenshots page if this isnt clear)
Why is this a good idea? Well, the purpose of Menoku is to try to make a more effecient menu system, and it does so by combining the best elements from several common application launching methods:
The Messy Desktop
Using the desktop to start applications is nice because it lets you browse through a large number of applications graphically using large icons. Unfortunately, keeping a desktop full of icons organized is a pain! Also, having launch icons on the desktop is really pretty inconvenient because you have to minimize windows to see all your icons. You shouldnt have to disrupt what youre doing to start a new program.
Menoku lets you graphically search through a large number of icons, just like a desktop, but its unique grouping layout enforces some level of organization, so you always know where to look. Also, Menoku is not a desktop, its more like a popup menu. It comes onto the screen when you ask for it (on top of any other windows) and when you select an application to start, it disappears.
Keyboard Shortcuts Sequences
Many power users like to use the keyboard to start their favorite programs. This means they dont have to move their hands to the mouse to start a new program, and its also much faster to just type out a memorized combination than to browse through a menu. Of course, the problem with this is that you have to memorize all your key combinations! You can make yourself a cheat sheet, but having to lookup a key combo before you type it defeats the purpose.
In Menoku, any icon you see on the screen is uniquely accessible through typing at most two keys: one to select which group of nine you want, and another to select one of those nine icons. This means that every application you want to start with Menoku has its own short key sequence. You can quickly memorize the sequences for your favorite programs, but if you forget you always have the icon display to remind you.
Hierarchical Menus
The standard way to start programs in a WIMP interface (such as Windows or X11) is to open up a menu. You click a button and get a long list of names and small icons, some of which represent programs and others more menus. The reason menus are so ubiquitous is that they work! You can store any number of programs that way and organize them into groups. Unfortunately, menus are very slow. You have to browse through text, which is inefficient, and you also have to wait for new menus to pop up beneath your mouse.
Menoku is in large part modeled after a standard hierarchical menu. Although you can only have 81 icons in any given menu, you can have any number of submenus which can also have 81 icons. You can easily group your programs together either by putting them into the same group of nine or by putting them in the same submenu. However, browsing in Menoku is much faster. You can search for large icons instead of text, and you can use your keyboard instead of following a winding path with your mouse.
Main features:
- Quick key-sequence launching of your favorite programs
- Mouse addicts can click on an icon instead of using the keyboard
- Trigger any command with any number of arguments
- Full color icons with transparency
- Tray icon for more menu-like functionality
- Configurable global hotkey
- Hierarchical menus in XML
- Drag and Drop menu editing
Installation:
First of all, to compile this code you MUST HAVE Qt 4.0 or above installed on your computer and you must use the version of qmake that comes with it.
To make sure you are using the right version of qmake, run the command "qmake -v" to see which Qt version it came with. Because the Qt libraries are in a state of transition from qt3 to qt4, you might have separate programs named qmake-qt3 and qmake-qt4, or something similar on your computer. If this is the case, use qmake-qt4 instead of qmake in the instructions below.
To compile Menoku, simply run:
qmake
make
If you use the wrong version of qmake, you will get error messages and the code will not compile.
The next step is to install. This will copy the menoku binary and the menoku icons into appropriate locations on your computer. The default place to put the binary file is /usr/bin/ and the default place for icons is /usr/share/pixmaps/. If you want to change these paths, edit the lines in menoku.pro that set target.path and icons.path so that they refer to the directories you want.
To install, make sure you have permissions for the intall directory (su root, if needed) and run:
make install
Enhancements:
Some minor bugfixes have been made.
Fixed the following:
- If you dragged a cell to another location then chose swap from the popup menu, youd get a segfault
- In some cases, changes in the number of icons would go unnoticed after drops (causing things like hiding empty cells and zooming single items to misbehave)
Download (0.12MB)
Added: 2006-02-10 License: GPL (GNU General Public License) Price:
1351 downloads
Packer 0.1.5
Packer is a tool that helps in the creation of packages. more>>
Packer is a tool that helps in the creation of packages.
Packages are a great convenience for gurus and new users alike. Thus, users may be less inclined to use software that is not packaged.
This is unfortunate for GNU/Linux software developers since packaging software is a huge pain, especially given the huge variety of packaging formats.
Packer helps to automate this process. Using a text-based wizard, packer can collect all the information regarding a program needed to create a package.
Then, a simple command is all it takes to create a debian directory (used to build debian packages), RPM SPEC files (for Mandriva, SuSE, and Fedora/Red Hat), and autopackages spec files (autopackage is a system for creating distribution-neutral installers with dependency handling).
These files are of a similar quality to hand-crafted ones. Packer can also automatically build the packages themselves if requested.
Usage:
Running packer with no options will start the packer wizard. It will populate the packer directory based on your answers to the its questions.
It is always possible to relaunch the wizard to make modifications to the package if there were problems with the information originally entered or if a new version of the program being packaged is released.
Running packer with options will create binary and source packages from the information in the packer directory. You may call packer -h to find out the availible options.
Enhancements:
- Removed dependency on dynamic content on packages.debian.org (ie it works again)
<<lessPackages are a great convenience for gurus and new users alike. Thus, users may be less inclined to use software that is not packaged.
This is unfortunate for GNU/Linux software developers since packaging software is a huge pain, especially given the huge variety of packaging formats.
Packer helps to automate this process. Using a text-based wizard, packer can collect all the information regarding a program needed to create a package.
Then, a simple command is all it takes to create a debian directory (used to build debian packages), RPM SPEC files (for Mandriva, SuSE, and Fedora/Red Hat), and autopackages spec files (autopackage is a system for creating distribution-neutral installers with dependency handling).
These files are of a similar quality to hand-crafted ones. Packer can also automatically build the packages themselves if requested.
Usage:
Running packer with no options will start the packer wizard. It will populate the packer directory based on your answers to the its questions.
It is always possible to relaunch the wizard to make modifications to the package if there were problems with the information originally entered or if a new version of the program being packaged is released.
Running packer with options will create binary and source packages from the information in the packer directory. You may call packer -h to find out the availible options.
Enhancements:
- Removed dependency on dynamic content on packages.debian.org (ie it works again)
Download (0.041MB)
Added: 2006-02-19 License: GPL (GNU General Public License) Price:
1346 downloads
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
Apt-get Install / Remove Packet 1.0
Apt-get Install / Remove Packet is a tool to install/remove packets with debian apt-get. more>>
Apt-get Install / Remove Packet is a tool to install/remove packets with debian apt-get.
About Apt-Get:
Advanced Packaging Tool, or APT, is a package management system used by Debian and its derivatives. APT was originally designed to work with .deb packages on Debian systems, but it has since been modified to work with RPM packages via apt-rpm, and to run on other operating systems such as Mac OS X (see fink). On systems with package management based on .deb, such as Debian, APT is a front-end for dpkg.
APT simplifies the process of installing and removing software on Unix systems, by automating the retrieval, (from the Internet, local network, or CD) the configuration, the compiling (sometimes) and the installation of software from APT sources.
There is no apt program per se; APT is a C++ library of functions that are used by several command line programs for dealing with packages, most notably apt-get and apt-cache.
APT front-ends can upgrade the system or specific packages. Packages can be installed or removed. When installing one or several packages, APT front-ends can list the dependencies of these packages, ask the administrator if packages recommended or suggested by newly installed packages should be installed too, automatically install dependencies and perform other operations on the systems packages to allow the installation of the packages. Similarly, to update one or several packages, front-ends can install, remove or update other packages.
APT is often hailed as one of Debians best features, giving Debian the reputation of being a "pain to install, but a joy to maintain", although with Debian 3.1 and its Debian-Installer, Debians installation might be too easy nowadays to keep this true.
<<lessAbout Apt-Get:
Advanced Packaging Tool, or APT, is a package management system used by Debian and its derivatives. APT was originally designed to work with .deb packages on Debian systems, but it has since been modified to work with RPM packages via apt-rpm, and to run on other operating systems such as Mac OS X (see fink). On systems with package management based on .deb, such as Debian, APT is a front-end for dpkg.
APT simplifies the process of installing and removing software on Unix systems, by automating the retrieval, (from the Internet, local network, or CD) the configuration, the compiling (sometimes) and the installation of software from APT sources.
There is no apt program per se; APT is a C++ library of functions that are used by several command line programs for dealing with packages, most notably apt-get and apt-cache.
APT front-ends can upgrade the system or specific packages. Packages can be installed or removed. When installing one or several packages, APT front-ends can list the dependencies of these packages, ask the administrator if packages recommended or suggested by newly installed packages should be installed too, automatically install dependencies and perform other operations on the systems packages to allow the installation of the packages. Similarly, to update one or several packages, front-ends can install, remove or update other packages.
APT is often hailed as one of Debians best features, giving Debian the reputation of being a "pain to install, but a joy to maintain", although with Debian 3.1 and its Debian-Installer, Debians installation might be too easy nowadays to keep this true.
Download (0.032MB)
Added: 2006-03-22 License: GPL (GNU General Public License) Price:
1319 downloads
DGNLib 1.11
DGNLib is a small C/C++ library for reading and writing DGN files. more>>
DGNLib is a small C/C++ library for reading and writing DGN files.
Building:
This is a preliminary source distribution, and I have not gone to any pains to make it easy to configure and build. To build please do the following:
1. Update cpl_config.h to represent your platform accurately. Generally all that matters is to #define WORDS_BIGENDIAN on big endian platforms. The rest can likely be ignored.
<<lessBuilding:
This is a preliminary source distribution, and I have not gone to any pains to make it easy to configure and build. To build please do the following:
1. Update cpl_config.h to represent your platform accurately. Generally all that matters is to #define WORDS_BIGENDIAN on big endian platforms. The rest can likely be ignored.
2. Compile the sample program. On unix this can be accomplished something like:
% gcc dgndump.c *.cpp -lm -o dgndump
Enhancements:
- This release adds support for Bsplines, shared cell definitions, and text nodes.
- 3d solids and surfaces have been fixed.
Download (0.11MB)
Added: 2006-03-27 License: MIT/X Consortium License Price:
1311 downloads
Automated Argument Helper 1.2.2
Aargh is a code generator, written in C++ and licensed under the terms of the GNU General Public License (GPL). more>>
Aargh is a code generator, written in C++ and licensed under the terms of the GNU General Public License (GPL). It generates C++ code to parse a command line, using the getopt() facility available in UNIX and UNIX-like environments.
Automated Argument Helper project supports command-line options with integer arguments, string arguments, and no arguments. The generated code is commented and carefully indented for readability.
Its nice to have lots of command line options, but its a real pain to code for them.
Not that its difficult. Its just tedious, time-consuming, error prone, and no fun. I used to wince at the thought of adding command line options.
Not any more. All I have to do is define the options I want in a small XML file, and run it through aargh. Instantly I have C++ source code that I can compile and link into my program.
If I need to add another option, or otherwise change the rules, I can edit the XML and regenerate the code. No muss, no fuss. Now I can spend more time on the interesting parts of the project.
To use aargh, write an XML file to describe the options you want. When aargh reads the file, it generates two C++ files.
One file is a header that declares a class to represent the options. By default this class is named "Opts," but you can specify a different name. The other file is the implementation of Opts, or whatever you decide to call it. The Opts class provides member functions to parse the command line and return the results.
In your own code, declare an instance of Opts and call Opts::get() to parse the command line, passing it the argc and argv arguments from main(). Opts::get() returns zero if the command line follows the rules that you have outlined in the XML file, or non-zero otherwise. If the parsing is successful, the Opts object stores the results and makes them available to your program by a series of accessor functions.
Main features:
- You can enforce upper and/or lower limits on the number of non-option arguments.
- You can distinguish between options that take arguments and those that dont.
- You can specify that an option is required.
- You can require that the argument to an option be a non-negative integer.
- For an integer argument you can enforce upper and/or lower limits.
- For a string argument you can enforce upper and/or lower limits on the string length.
- For a string argument you can call a function of your own to validate the argument.
- You can allow multiple occurrences of the same option. In that case the generated code builds an STL vector to hold the arguments. By default the generated software allows only one occurrence of any given option.
Enhancements:
- You can now specify the location of the generated header file independently of its name.
- This feature may make it easier to incorporate aargh into complex build environments.
<<lessAutomated Argument Helper project supports command-line options with integer arguments, string arguments, and no arguments. The generated code is commented and carefully indented for readability.
Its nice to have lots of command line options, but its a real pain to code for them.
Not that its difficult. Its just tedious, time-consuming, error prone, and no fun. I used to wince at the thought of adding command line options.
Not any more. All I have to do is define the options I want in a small XML file, and run it through aargh. Instantly I have C++ source code that I can compile and link into my program.
If I need to add another option, or otherwise change the rules, I can edit the XML and regenerate the code. No muss, no fuss. Now I can spend more time on the interesting parts of the project.
To use aargh, write an XML file to describe the options you want. When aargh reads the file, it generates two C++ files.
One file is a header that declares a class to represent the options. By default this class is named "Opts," but you can specify a different name. The other file is the implementation of Opts, or whatever you decide to call it. The Opts class provides member functions to parse the command line and return the results.
In your own code, declare an instance of Opts and call Opts::get() to parse the command line, passing it the argc and argv arguments from main(). Opts::get() returns zero if the command line follows the rules that you have outlined in the XML file, or non-zero otherwise. If the parsing is successful, the Opts object stores the results and makes them available to your program by a series of accessor functions.
Main features:
- You can enforce upper and/or lower limits on the number of non-option arguments.
- You can distinguish between options that take arguments and those that dont.
- You can specify that an option is required.
- You can require that the argument to an option be a non-negative integer.
- For an integer argument you can enforce upper and/or lower limits.
- For a string argument you can enforce upper and/or lower limits on the string length.
- For a string argument you can call a function of your own to validate the argument.
- You can allow multiple occurrences of the same option. In that case the generated code builds an STL vector to hold the arguments. By default the generated software allows only one occurrence of any given option.
Enhancements:
- You can now specify the location of the generated header file independently of its name.
- This feature may make it easier to incorporate aargh into complex build environments.
Download (0.16MB)
Added: 2006-04-14 License: GPL (GNU General Public License) Price:
1288 downloads
GIMP circle brushes 1.0
GIMP circle brushes provides circle brushes for use as rubber stamps in the GIMP. more>>
GIMP circle brushes provides circle brushes for use as "rubber stamps" in the GIMP.
GIMP circle brushes can be used with one click instead of creating outline circles by making a circle, filling with black, shrinking, and filling with white.
The following pixel sizes are provided: 6, 12, 15, 20, 24, 30, 40, 50, 60, 80, 100, 140, 200, 300, 400, 500, and 600.
Circle brushes are my third brush collection for use in the GIMP.
It was brush week for me.
Making circles is a bit of a pain with the GIMP. I know the Make a circular selection,
fill it black, shrink it, fill it white thingy -- but come on already... if I can rubber stamp a
premade circle brush where I need it instead, wouldnt that be kinda nice?
These were fairly easy, in theory. I had to add a bit of extra feathering to the above technique to get nice circles in all the sizes. Also several 45-degree rotations which smoothed out a lot of upper-end noise.
I also tried exporing from Inkscape, but the paths I converted to bitmaps did not work out as well as I had hoped and wound up sticking with the GIMP to create all
of them.
Sizes I made are:
6,12,15,20,24,30,40,50,60,80,100,140,200,300,400,500 and 600.
Use them for anything youd like. If you redistribute them, please include this file.
I post these, and perhaps make updates, at gimphelp.org. All the items will also be included (in png format) at wpclipart.com, the Public Domain clipart site.
Installation:
Stick them in the GIMP brushes folder and either "refresh brushes" or restart the GIMP. I put them in the system-wide folder, on my Slackware machine this folder is located at: /usr/share/gimp/2.0/brushes
You should also have a local brushes folder at: ~/.gimp-2.x/brushes
<<lessGIMP circle brushes can be used with one click instead of creating outline circles by making a circle, filling with black, shrinking, and filling with white.
The following pixel sizes are provided: 6, 12, 15, 20, 24, 30, 40, 50, 60, 80, 100, 140, 200, 300, 400, 500, and 600.
Circle brushes are my third brush collection for use in the GIMP.
It was brush week for me.
Making circles is a bit of a pain with the GIMP. I know the Make a circular selection,
fill it black, shrink it, fill it white thingy -- but come on already... if I can rubber stamp a
premade circle brush where I need it instead, wouldnt that be kinda nice?
These were fairly easy, in theory. I had to add a bit of extra feathering to the above technique to get nice circles in all the sizes. Also several 45-degree rotations which smoothed out a lot of upper-end noise.
I also tried exporing from Inkscape, but the paths I converted to bitmaps did not work out as well as I had hoped and wound up sticking with the GIMP to create all
of them.
Sizes I made are:
6,12,15,20,24,30,40,50,60,80,100,140,200,300,400,500 and 600.
Use them for anything youd like. If you redistribute them, please include this file.
I post these, and perhaps make updates, at gimphelp.org. All the items will also be included (in png format) at wpclipart.com, the Public Domain clipart site.
Installation:
Stick them in the GIMP brushes folder and either "refresh brushes" or restart the GIMP. I put them in the system-wide folder, on my Slackware machine this folder is located at: /usr/share/gimp/2.0/brushes
You should also have a local brushes folder at: ~/.gimp-2.x/brushes
Download (0.042MB)
Added: 2006-04-27 License: BSD License Price:
1286 downloads
m3u2toc 0.1
m3u2toc is a Perl script which creates a CD-Text enabled cdrdao TOC file from a XMMS MP3 playlist. more>>
m3u2toc is a Perl script which creates a CD-Text enabled cdrdao TOC file from a XMMS MP3 playlist.
Theres lots of scripts out there to help you burn MP3s as CD audio, but none Ive seen that make a point of writing matching CD-Text data. This script takes the pain out of manually preparing a TOC file with CD-Text author and title data by extracting that info from MP3 ID3 tags.
This script also differs from others by not being an end to end solution for MP3 to CD audio burning. It will take a M3U playlist and produce a TOC file and thats it. Decoding MP3s and running cdrdao to burn them is your job. (Although Ill implement decoding if theres demand for it).
I like small programs that tackle individual problems and solve them well, rather than monolithic ones that try to do everything and fail badly.
Four simple steps to burn:
- complile and save a playlist in XMMS (ensuring ID3 tags are filled).
- set output plugin in XMMS to "disk writer" and decode MP3s.
- run m3u2toc on playlist file to make a TOC file complete with author and title CD-Text data.
- then just run cdrdao using the TOC file and let the CD burn.
<<lessTheres lots of scripts out there to help you burn MP3s as CD audio, but none Ive seen that make a point of writing matching CD-Text data. This script takes the pain out of manually preparing a TOC file with CD-Text author and title data by extracting that info from MP3 ID3 tags.
This script also differs from others by not being an end to end solution for MP3 to CD audio burning. It will take a M3U playlist and produce a TOC file and thats it. Decoding MP3s and running cdrdao to burn them is your job. (Although Ill implement decoding if theres demand for it).
I like small programs that tackle individual problems and solve them well, rather than monolithic ones that try to do everything and fail badly.
Four simple steps to burn:
- complile and save a playlist in XMMS (ensuring ID3 tags are filled).
- set output plugin in XMMS to "disk writer" and decode MP3s.
- run m3u2toc on playlist file to make a TOC file complete with author and title CD-Text data.
- then just run cdrdao using the TOC file and let the CD burn.
Download (0.003MB)
Added: 2006-04-19 License: Freeware Price:
1285 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
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
HTML::EP
HTML::EP is a system for embedding Perl into HTML. more>>
HTML::EP is a system for embedding Perl into HTML.
SYNOPSIS
< html >< head >< title >CGI-Env< /title >< /head >
< ep-comment >
This is an HTML document. You see. Perhaps you wonder about
the unknown HTML tags like ep-comment above? They are part
of the EP system. For example, this comment section will
be removed and you wont see it in your browser.
< /ep-comment >
< ep-perl >
# This is an example of embedding Perl into the page.
# We create a variable called time, containing the current
# time. This variable will be used below.
my $self = $_;
$self->{time} = localtime(time());
; # Return an empty string; result becomes embedded into the
# HTML page
< /ep-perl >
< body >< h1 >The current time< /h1 >
Your HTML::EP system is up and running: The current time is $time$.
< /body >
< /html >
NEWS
HTML::EP does now have a homepage, a CVS repository and a bug tracking system. Try
http://html-ep.sourceforge.net/
Have you ever written a CGI binary? Easy thing, isnt it? Was just fun!
Have you written two CGI binaries? Even easier, but not so much fun.
How about the third, fourth or fifth tool? Sometimes you notice that you are always doing the same:
- Reading and parsing variables
- Formatting output, in particular building tables
- Sending mail out from the page
- Building a database connection, passing CGI input to the database and vice versa
- Talking to HTML designers about realizing their wishes
You see, its soon to become a pain. Of course there are little helpers around, for example the CGI module, the mod_perl suite and lots of it more. Using them make live a lot easier, but not so much as you like. CGI(3). mod_perl(3).
On the other hand, there are tools like PHP or WebHTML. Incredibly easy to use, but not as powerfull as Perl. Why not get the best from both worlds? This is what EP wants to give you, similar to ePerl or HTML::EmbPerl. I personally believe that EP is simpler and better extendible than the latter two. ePerl(1). HTML::EmbPerl(3).
In short, its a single, but extensible program, that scans an HTML document for certain special HTML tags. These tags are replaced by appropriate output generated by the EP. What remains is passed to the browser. Its just like writing HTML for an enhanced browser!
<<lessSYNOPSIS
< html >< head >< title >CGI-Env< /title >< /head >
< ep-comment >
This is an HTML document. You see. Perhaps you wonder about
the unknown HTML tags like ep-comment above? They are part
of the EP system. For example, this comment section will
be removed and you wont see it in your browser.
< /ep-comment >
< ep-perl >
# This is an example of embedding Perl into the page.
# We create a variable called time, containing the current
# time. This variable will be used below.
my $self = $_;
$self->{time} = localtime(time());
; # Return an empty string; result becomes embedded into the
# HTML page
< /ep-perl >
< body >< h1 >The current time< /h1 >
Your HTML::EP system is up and running: The current time is $time$.
< /body >
< /html >
NEWS
HTML::EP does now have a homepage, a CVS repository and a bug tracking system. Try
http://html-ep.sourceforge.net/
Have you ever written a CGI binary? Easy thing, isnt it? Was just fun!
Have you written two CGI binaries? Even easier, but not so much fun.
How about the third, fourth or fifth tool? Sometimes you notice that you are always doing the same:
- Reading and parsing variables
- Formatting output, in particular building tables
- Sending mail out from the page
- Building a database connection, passing CGI input to the database and vice versa
- Talking to HTML designers about realizing their wishes
You see, its soon to become a pain. Of course there are little helpers around, for example the CGI module, the mod_perl suite and lots of it more. Using them make live a lot easier, but not so much as you like. CGI(3). mod_perl(3).
On the other hand, there are tools like PHP or WebHTML. Incredibly easy to use, but not as powerfull as Perl. Why not get the best from both worlds? This is what EP wants to give you, similar to ePerl or HTML::EmbPerl. I personally believe that EP is simpler and better extendible than the latter two. ePerl(1). HTML::EmbPerl(3).
In short, its a single, but extensible program, that scans an HTML document for certain special HTML tags. These tags are replaced by appropriate output generated by the EP. What remains is passed to the browser. Its just like writing HTML for an enhanced browser!
Download (0.042MB)
Added: 2006-06-15 License: Perl Artistic License Price:
1227 downloads
SBaGen 1.4.3
SBaGen generates sounds that give an altered state of consciousness. more>>
SBaGen generates sounds that give an altered state of consciousness. The theory behind binaural beats is that if you apply slightly different frequency sine waves to each ear, a beating affect is created in the brain itself, due to the brains internal wiring.
If, in the presence of these tones, you relax and let your mind go, your mind will naturally synchronize with the beat frequency. In this way it is possible to tune the frequency of your brain waves to particular frequencies that you have selected, using of the four bands: Delta: deep sleep, Theta: dreaming and intuitive stuff, Alpha: awake, focussed inside, and Beta: awake, focussed outside.
It is also possible to produce mixtures of brain waves of different frequencies by mixing binaural tones, and in this way, with practice and experimentation, it is reportedly possible to achieve rather unusual states, such as out-of-body stuff, and more. See the books by Ken Eagle Feather, and the Monroe Institute site for more details. The Monroe Institute have apparently put 40 years of research into these techniques.
Centerpointe have also done a great deal of research into binaural beats, concentrating more on improving overall well-being and holistic functioning rather than reaching unusual states, and I recommend reading some of the articles on their site (look under "Site Map", for example their Special Report: "How The Holosync Technology Works" and their FAQ).
I should add that I have only read about the more advanced and unusual uses (OOBEs and so on). My own experiences have not reached quite that far, but still I feel that I have benefitted immensely from using these techniques over the last few years: from simply getting my head clear in confusing moments, to the energy boosts that come at times, to more general emotional clearing, and occasional very intense dreams (although not quite lucid).
So, SBAGEN is my utility, released as free software (under the GNU General Public Licence) for Linux, Windows, DOS and Mac OS X, that generates binaural tones in real-time according to a 24-hour programmed sequence read from a file. It can also be used to play a sequence on demand, rather than according to the clock, or to write a WAV file for playing later. Pink noise, MP3 and Ogg files (since version 1.2.0) may also be mixed with the binaural beats to provide background sounds. (Two files of randomly-looping river sounds are provided from version 1.4.0 onwards). This tool is ideal for anyone who wishes to experiment with these techniques and do research into this for themselves. (For those who would rather pay for a pre-packaged programme with support, I recommend taking a look at the Centerpointe site -- and see my disclaimer)
My original idea was to use this utility to play a programme of different tones throughout the night, hoping to improve dreaming and dream-recall, and then to bring myself up into Alpha rhythms to (hopefully) make a good start to the day. I am now using it more for shorter focussed sessions of about an hour, both during daytime and at night. However, other people have used this software in many different ways. For example, one person suffering constant pain from historical injuries appreciated the way that he could tune the frequencies very accurately to his needs to help him sleep better at night. Other more unusual uses have included: mixing the sounds in as part of musical compositions, and generating ambient sounds during live DJ sets or trance music.
Enhancements:
- Fixed problem when playing 7+ hour sequences with -SE or -L
- Warns properly if the WAV file limit of ~7 hours is exceeded, and truncates
<<lessIf, in the presence of these tones, you relax and let your mind go, your mind will naturally synchronize with the beat frequency. In this way it is possible to tune the frequency of your brain waves to particular frequencies that you have selected, using of the four bands: Delta: deep sleep, Theta: dreaming and intuitive stuff, Alpha: awake, focussed inside, and Beta: awake, focussed outside.
It is also possible to produce mixtures of brain waves of different frequencies by mixing binaural tones, and in this way, with practice and experimentation, it is reportedly possible to achieve rather unusual states, such as out-of-body stuff, and more. See the books by Ken Eagle Feather, and the Monroe Institute site for more details. The Monroe Institute have apparently put 40 years of research into these techniques.
Centerpointe have also done a great deal of research into binaural beats, concentrating more on improving overall well-being and holistic functioning rather than reaching unusual states, and I recommend reading some of the articles on their site (look under "Site Map", for example their Special Report: "How The Holosync Technology Works" and their FAQ).
I should add that I have only read about the more advanced and unusual uses (OOBEs and so on). My own experiences have not reached quite that far, but still I feel that I have benefitted immensely from using these techniques over the last few years: from simply getting my head clear in confusing moments, to the energy boosts that come at times, to more general emotional clearing, and occasional very intense dreams (although not quite lucid).
So, SBAGEN is my utility, released as free software (under the GNU General Public Licence) for Linux, Windows, DOS and Mac OS X, that generates binaural tones in real-time according to a 24-hour programmed sequence read from a file. It can also be used to play a sequence on demand, rather than according to the clock, or to write a WAV file for playing later. Pink noise, MP3 and Ogg files (since version 1.2.0) may also be mixed with the binaural beats to provide background sounds. (Two files of randomly-looping river sounds are provided from version 1.4.0 onwards). This tool is ideal for anyone who wishes to experiment with these techniques and do research into this for themselves. (For those who would rather pay for a pre-packaged programme with support, I recommend taking a look at the Centerpointe site -- and see my disclaimer)
My original idea was to use this utility to play a programme of different tones throughout the night, hoping to improve dreaming and dream-recall, and then to bring myself up into Alpha rhythms to (hopefully) make a good start to the day. I am now using it more for shorter focussed sessions of about an hour, both during daytime and at night. However, other people have used this software in many different ways. For example, one person suffering constant pain from historical injuries appreciated the way that he could tune the frequencies very accurately to his needs to help him sleep better at night. Other more unusual uses have included: mixing the sounds in as part of musical compositions, and generating ambient sounds during live DJ sets or trance music.
Enhancements:
- Fixed problem when playing 7+ hour sequences with -SE or -L
- Warns properly if the WAV file limit of ~7 hours is exceeded, and truncates
Download (0.67MB)
Added: 2006-07-20 License: GPL (GNU General Public License) Price:
1203 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 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