area code
eArea 1.01
eArea is a simple cross-browser WYSIWYG text editor. more>>
eArea project even with OS X Dashboard widgets! If eArea comes across a browser it doesnt support (like Opera), it will display an ordinary < textarea > instead.
How does it work?
Putting eArea onto a webpage is really simple. All you need to do is upload the eArea folder to your website and paste a snippet of code into your HTML.
Everything about eArea is customisable: from what buttons are shown to the size of the text area and the style of the text in it. All from within the snippet of code in your HTML! You can even have as many eAreas on you pages as you like!
Change Filename Code 0.2
Change Filename Code service menu is designed to repair that by converting your filenames to and from utf-8. more>> <<less
Pretty Code Web 1.00
Pretty Code Web is a syntax highlighter for publishing code, written in any programming language, to the Web. more>>
Written in php it uses syntax files separate from the main code to highlight a specified language.
Main features:
- Syntax highlighting for (potentially) any language.
- User defined syntax files.
- User defined colors
- Separate colors for:
- 6 Keyword Groups
- Text Strings
- Operators
- Block and Line Comments
- Bracket Characters
FARnodes 1.0
FARnodes is a protocol simulation and execution environment. more>>
Example algorithms like Consensus and several other small tools and a big chunk of documentation make this a suitable entry-level software for people who have some interest in this (somewhat academic) area.
Main features:
- High portability and easy extensibility of the framework due to a pure Python implementation.
- Protocols can assume either fully synchronous or asynchronous systems, or one of FAR (Finite Average Response times) or PS (Partial Synchrony).
- Channels can exhibit unreliable or stubborn behaviour.
- Failure detectors include EA-FD and PS-FD, both eventually perfect, but others can be added.
- Simulations can expect a virtual timer and can be saved and reloaded in many cases.
- Tools for remote execution and graphical data analysis.
Content Area Focus 0.1
Content Area Focus is an extension used to solve the content area focus loss. more>>
Target audience: those who are mostly using the keyboard to navigate around and switch between tabs; frequently they encounter situations in which the content area doesnt have focus.
Method: just giving focus to the content area for any "regular" keystrokes made when the main-window is in focus.
Locked Area 4.2 (Lite)
Locked Area is a highly sophisticated password protection and membership management system written in Perl. more>> <<less
Acovea 1.0.1
Acovea implements a genetic algorithm for finding the best options for compiling programs with the GCC C and C++ compilers. more>>
ACOVEA (Analysis of Compiler Options via Evolutionary Algorithm) implements a genetic algorithm to find the "best" options for compiling programs with the GNU Compiler Collection (GCC) C and C++ compilers.
"Best", in this context, is defined as those options that produce the fastest executable program from a given source code. Acovea is a C++ framework that can be extended to test other programming languages and non-GCC compilers.
I envision Acovea as an optimization tool, similar in purpose to profiling. Traditional function-level profiling identifies the algorithms most influential in a programs performance; Acovea is then applied to those algorithms to find the compiler flags and options that generate the fastest code.
Acovea is also useful for testing combinations of flags for pessimistic interactions, and for testing the reliability of the compiler.
Modern software is difficult to understand and verify by traditional means. Millions of lines of code produce applications containing intricate interactions, defying simple description or brute-force investigation.
A guided, deterministic approach to testing relies on human testers to envision every possible combination of actions -- an unrealistic proposition given software complexity. Yet, despite that complexity, we need answers to important questions about modern, large-scale software.
What sort of important questions? Consider the GNU Compiler Collection. I write articles that benchmark code generation, a task fraught with difficulties due to the myriad options provided by different compilers. For my benchmarks to have any meaning, I need to know which combination of options produces the fastest code for a given application.
Finding the "best" set of options sounds like a simple task, given the extent of GCC documentation and the conventional wisdom of the GCC developer community. Ah, if it were only so easy! The GCC documentation, while extensive, is also honestly imprecise.
I appreciate this style of documentation; unlike many commercial vendors, who make absolute statements about the "quality" of their products, GCCs documenters admit uncertainties in how various options alter code generation. Indeed, code generation is entirely dependent on the type of application being compiled and the target platform. An option that produces fast executable code for one source code may be detrimental to the performance of another program.
"Conventional wisdom" arrives in my inbox whenever I publish a new article. Ranging from the polite to the insistent to the rude, these e-mails contain contradictory suggestions for producing fast code.
In the vast majority of cases, such anecdotal assertions lack any formal proof of their validity, and, more often than not, the suggested "improvement" is ineffective or detrimental. It has become increasingly obvious that no one --myself included -- knows precisely how all these GCC options work together in generating program code.
I seek the Holy Grail of Optimization -- but exactly what is optimization? Understanding the problem is the first step in finding a solution.
Optimization attempts to produce the "best" machine code from source code. "Best" means different things to different applications; a database shovels chunks of information, while a scientific application is concerned with fast and accurate results; the first concern for an embedded system may be code size.
And it is quite possible that small code is fast, or fast code accurate. Optimization is far from being an exact science, given the diversity of hardware and software configurations.
An optimization algorithm may be as simple as removing a loop invariant, or as complex as examining an entire program to eliminate global common sub-expressions. Many optimizations change what the programmer wrote into a more efficient form, producing the same result while altering underlying details for efficiency; other "optimizations" produce code that uses specific characteristics of the underlying hardware, such as special instruction sets.
Memory architectures, pipelines, on- and off-chip caches -- all affect code performance in ways that are not obvious to programmers using a high-level language. An optimization that may seem to produce faster code may, in fact, create large code that causes more cache misses, thus degrading performance.
Even the best hand-tuned C code contains areas of interpretation; there is no absolute, one-to-one correspondence between C statements and machine instructions. Almost any sequence of source code can be compiled into different -- but functionally equivalent -- machine instruction streams with different sizes and performance characteristics.
Inlining functions is a classic example of this phenomena: replacing a call to a function with the function code itself may produce a faster program, but may also increase program size. Increased program size, may, in turn, prevent an algorithm from fitting inside high-speed cache memory, thus slowing a program due to cache misses.
Notice my use of the weasel word "may" -- inlining small functions sometimes allows other optimization algorithms a chance to further improve code for local conditions, producing faster and smaller code.
Optimization is not simple or obvious, and combinations of algorithms can lead to unexpected results. Which brings me back to the question: For any given application, what are the most effective optimization options?
Enhancements:
- Minor changes in the non-free license.
- Support has been added for the latest versions of libcoyotl and libevocosm.
PHP Active Code Library 0.10
PHP Active Code Library (ACL) is a PHP 5 class used to store and call PHP files that are stored in a database. more>>
The files are stored in a plain text field and not a binary field. PHP ACL also takes care of include/require calls.
If a file includes another file stored in the database, PHP ACL takes care of getting, generating, and including that file.
Local Area Security 0.5
L.A.S. is a research group focused on information security related subjects. more>>
Local Area Security is a project that was started in 2002 to research information security related topics. During that time there was no real live-CD toolkit focused on information security.
So Jascha, the project founder built one from a stripped down version of Knoppix called Model-K. Both of which were built from Debian Linux.
Up until version 0.4 L.A.S. Linux was command line only. Which made it limited to some of the tools it could contain since many require a GUI. Or at least for many it is preferable to have one. So FluxBox was added as the desktop since it is light weight and very feature filled.
It was during this time that Jascha came up with the idea of keeping the size of L.A.S. as small as possible, which lead to a target maximum size of 180MBs. The size of the original mini-CDs that were available at the time. This forced the selection of tools and features to be weighed heavily since unlike other live-CDs that throw in everything including the kitchen sink. L.A.S. was designed from the ground up to be a tool not a all-inclusive grab bag of applications.
As well as many advances for live-CDs came about, such as to-ram that allows booting a live-CD into the physical RAM of a computer. Which by chance L.A.S. was perfectly cut out for. With as little as 256MB of RAM people could boot L.A.S. and then free up their CD-ROMs for burring etc.
For forensics this was a big plus, along with many other uses. Plus L.A.S. ran very fast in RAM which helped with running Nessus, Nmap, or other tools. When compared to full size (700MB) CDs which would require 1GB of RAM to use the to-ram option, it was really no contest.
AFCommerce 2.0
AFCommerce is a full and complete online store with both a storefront and administration area, which can be easily installed, configured, and maintained over a web-based interface. The source code is more>>
AFCommerce is a full and complete online store with both a storefront and administration area, which can be easily installed, configured, and maintained over a web-based interface. Version 2 may truly be the best shopping cart solution in the world with an insane number of features and a complete custom development environment that may be used as a shopping cart, as well as, being a spring board for new applications and unique customization.
The source code is extremely easy to customize and add to. The purpose of the AFCommerce project is to break the standard for commerce solutions started by other ecommerce communities that are overly complicated and complex to configure. AFCommerce runs on the powerful PHP scripting language, the reliable Apache web server, and the popular MySQL database server. AFCommerce is able to run on any PHP 4.2 or higher enabled web server running on Linux, Solaris, BSD, Mac OS X, and Microsoft Windows environments.
Requirements: PHP 4.2 or higher
<<lessXML::Code 0.04
XML::Diff is a Perl module for XML DOM-Tree based Diff & Patch Module. more>>
SYNOPSIS
my $diff = XML::Diff->new();
# to generate a diffgram of two XML files, use compare.
# $old and $new can be filepaths, XML as a string,
# XML::LibXML::Document or XML::LibXML::Element objects.
# The diffgram is a XML::LibXML::Document by default.
my $diffgram = $diff->compare(
-old => $old_xml,
-new => $new_xml,
);
# To patch an XML document, an patch. $old and $diffgram
# follow the same formatting rules as compare.
# The resulting XML is a XML::LibXML::Document by default.
my $patched = $diff->patch(
-old => $old,
-diffgram => $diffgram,
);
This module provides methods for generating and applying an XML diffgram of two related XML files. The basis of the algorithm is tree-wise comparison using the DOM model as provided by XML::LibXML.
The Diffgram is well-formed XML in the XVCS namespance and supports update, insert, delete and move operations. It is meant to be human and machine readable. It uses XPath expressions for locating the nodes to operate on.
CodeWorker 4.2
CodeWorker is a versatile parsing tool and a universal source code generator. more>>
Generative programming is a software engineering approach interested in automating the production of reusable, tailor-made, adaptable and reliable IT systems.
In laymans terms, CodeWorker lets you generate code by parsing existing languages, or by creating and parsing your own language. Once a language file has been parsed, CodeWorker provides several techniques for generating code.
The tools scripting language drives the parsing and source code generation process. The scripting language syntax is derived from the C family of languages, making it familiar to most programmers.
The template syntax is like like JSP, ASP, or Velocity. It has variations for parsing, code generation, or functional programming, giving the developer a number of options for organizing CodeWorker projects.
Parsing
CodeWorker can be trained to parse almost any language and provides two distinct methods for creating parsers:
- the extended-BNF notation is declarative, and is a derivative of BNF (the Backus-Naur Form defines the grammar of a language) extended with regular expressions, predefined non-terminals and useful directives. Something close to javacc or to ANTLR in the JAVA world except a separate parser class is not necessary with CodeWorker. This means that parsing scripts can be tested without having to compile a separate parser class.
- Reading tokens is procedural and a somewhat obsolete now that CodeWorker handles BNF parsing scripts smoothly.
While parsing files, CodeWorker feeds nodes into a parse tree. A tree is a convenient structure to represent a hierarchical set of nodes, as in XML for instance.
The parse tree is populated by the parsing task, and used by the source code generation script to generate code, text or binary data.
Source Code Generation
CodeWorker can parse a language and use the resulting parse tree to generate source code via template-based scripts. One example is database DDL (Database Definition Language). CodeWorker has been used to parse DDL and generate large portions of a Java application.
CodeWorkers source code generation can occur in three ways: generation, expansion or translation.
- generation uses a script, much like JSP or PHP, to produce an output file. Only certain areas, called protected areas in the vocabulary of CodeWorker, are preserved in the file.
- expansion is used when small portions of an existing file need to be generated. The points where code is to be inserted are called markers in the vocabulary of CodeWorker, and code is inserted at the markers. The Class Wizard of Visual C++ generates code using this principle.
- translation mode is used when both parsing and source code generation are required to produce a file. Here are the description of two main families of use:
- source-to-source translation: a file must be rewritten in a different syntax. For example, a LaTeX file might have to be translated in HTML.
- program transformation: a source file has to change for optimizing, refactoring, instrumenting or rewriting selected portions. For example, a script could add a trace at the beginning of each function body of a JAVA or C++ source code. To do that, parsing discovers function bodies, and source code generation will insert the code that implements the trace.
Enhancements:
- Concepts of Aspect-Oriented Programming were added to code generation with joint points, advices, and point cuts.
- It allows a better separation of concerns inside a code generation process, leading to improved reading and maintenance of large and complex template-based scripts.
- A new BNF directive was added: #readPythonString.
- Some bugfixes and updates were made in the Eclipse plugin.

Html Code Convert 3.3
Speed up the conversion of HTML code into different format more>>
Enhancements:
- Colors and font selected in prefeferences box.
- Fixe bug with Quit button. First try to support accessibility.
- Updated schemas.
Code::Perl 0.03
Code::Perl is a Perl module to produce Perl code from a tree. more>>
SYNOPSIS
use Code::Perl::Expr qw( :easy );
my $c = derefh(scal(hash), calls(getkey));
print $c->perl; # ($hash)->{getkey()}
Code::Perl allows you to build chunks of Perl code as a tree and then when youre finished building, the tree can output the Perl code. This is useful if you have built your own mini-language and you want to generate Perl from it. Rather than generating the Perl at parse time and having to worry about quoting, escaping, parenthese etc, you can just build a tree using Code::Perl and then dump out the correct Perl at the end.
Wide Area Link Emulator 0.1
Wide Area Link Emulator enables you to set and test various parameters of a WAN access link more>>
Any ISP has a high bandwidth LAN (of the order of tens of Mbps, e.g. Ethernet) and a WAN access link with relatively low speeds (of the order of a few Kbps to a few Mbps). To be able to evaluate the ISPs performance, actual tests will have to be conducted on a live, fully functional network. This would imply enabling certain features in communication equipment which could be detrimental to the proper functioning of a commissioned network. To address such a problem of being able to characterize/quantify the network operation in terms of its performance with respect to various parameters, a test-bed emulating the ISPs connectivity to the Internet would be an ideal solution.
An important factor in setting up such a test-bed, is emulating the WAN Access Link. Using complex hardware is costly. Such a link can however be easily implemented by emulating the scenario on popular physical technology such as Ethernet. By changing the TCP/IP stack on a Personal Computer, the rate at which packets are injected into the network can be controlled and other necessary features can easily be added.
WALE was implemented in 2 phases and the first version can emulated bandwidths up to 8Mbps and uses FIFO queues with drop-tail.
WALE v2 can emulate bandwidths of up to 80Mbps(a 10-fold improvement over version 1) due to the stripped down version of Micro-second resolution timer being used in the Linux kernel. WALE also implements differentiated services are recommended by IETF. A hash-based packet classifier is used to classify packets into one of 3 queues (Expedited Forwarding, Assured Forwarding and Best Effort). A simple priority scheduling has been implemented between the queues.
Version 2 has been implemented in the Generic Device Layer of the Linux Kernel. The kernel version is 2.2.19. WALE2 kernel patch can be downloaded here. An ncurses based front end has been implemented for setting and viewing various parameters of the bottleneck link.