democratic debate 2008
DemoWave 0.1.0
DemoWave is a Web application for conducting referendum. more>>
allows anyone to propose a new referendum
minimizes the negative effects of people "spamming" the system with bogus referendums
makes referendums where people disagree a lot take longer to go through.
In addition, it can manage a set of laws and referendums on changes to those laws.
DemoWave is intended for democratic organizations that need to decrease the bureaucratic load and increase the participation of their members in the decision-making process.
Speech and Debate Timekeeper 2.2
Speech and Debate Timekeeper is an open source, multi-platform timer for speech and debate competitions. It has speech order and time limits preset fo... more>> <<less

Mandriva Linux 2008
Mandriva Linux One 2008 is the best way to start using Linux. more>> Mandriva Linux One 2008 is the best way to start using Linux. A full Linux operating system on a single CD for both new and experienced Linux users, it is fast to download and install, and also safe to try with a live mode. One is really the one CD you need!
<<less
Class::DataStore 0.07
Class::DataStore is a Perl module for generic OO data storage/retrieval. more>>
SYNOPSIS
my %values = ( one => 1, two => 2 );
my $store = Class::DataStore->new( %values );
# using get/set methods
$store->set( three, 3 );
my $three = $store->get( three );
# using AUTOLOAD method
$store->four( 4 );
my $four = $store->four;
my @four = $store->four; # returns a list
my $exists = $store->exists( three ); # $exists = 1
my $data_hashref = $store->dump;
$store->clear;
Class::DataStore implements a simple storage system for object data. This data can be accessed via get/set methods and AUTOLOAD. AUTOLOAD calls are not added to the symbol table, so using get/set will be faster. Using AUTOLOAD also means that you will not be able to store data with a key that is already used by a instance method, such as "get" or "exists".
This module was written originally as part of a website framework that was used for the Democratic National Committee website in 2004. Some of the implementations here, such as get() optionally returning a list if called in array context, reflect the way this module was originally used for building web applications.
Class::DataStore is most useful when subclassed. To preserve the AUTOLOAD functionality, be sure to add the following when setting up the subclass:
use base Class::DataStore;
*AUTOLOAD = &Class::DataStore::AUTOLOAD;
This module is also a useful add-on for modules that need quick and simple data storage, e.g. to store configuration data:
$self->{_config} = Class::Datastore->new( $config_data );
sub config { return $_[0]->{_config}; }
my $server = $self->config->server;
my $sender = $self->config->get( sender );
demexp 0.8.0
demexp is a client/server system for direct democracies. more>>
The voting procedure used is Condorcet voting. Questions are classified, and a delegation system allows ones vote for certain questions to be assigned to a chosen delegate.
The software is tailored to the needs of the Democratic Experience project.
Enhancements:
- A new configuration file that supports version upgrading.
- Support for client internationalization. Translations of the (English) client into French and Esperanto.
- An experimental Web client in OCaml (using WDialog). Improvement of the Windows installer.
- Simplification of the clients interface.
- Tooltips on column titles.
- Various bugfixes in the client and the server.
MM3-WebAssistant Private 2009
Archives visited web pages with your browser to be used on- and offline. Offline each page is available with its original URL. There is no difference between surfing in the internet or archive. You can even use your bookmarks offline. Efficient use of the archive by marking and highlighting words. This proxy offline browser allows mobile users to access internet information when they dont have internet access. An ideal addition to every browser! more>>
MM3-WebAssistant Private - The offline browser is a personal proxy server sitting behind your regular browser (Firefox, IE, Safari, Opera - whatever!), silently and speedily handling all the network traffic. Unlike most offline browsers with this concept, you dont have to specifically tell WebAssistant to capture a website - it remembers everything you see, automatically adding new pages to the cache. WebAssistant updates your cached pages (in the background) so youve always got the latest version to hand. Theres no difference between surfing the web and surfing your archive; you can even use your bookmarks or search your pages offline when you dont have a network connection.
Your Benefits:
Work offline (train, plane, beach - wherever you like) without worrying that you have the info you need. Reduces the pressure of knowing what to save, and the necessity for repeating browsing sessions looking for something that was missed.
Incorporate the web into presentations or talks where you dont have internet access. You can sure youll always have the page you need with WebAssistant.
Mobile users have the flexibility of accessing information from the web without having to worry about expensive access points. Shun overpriced wifi access ports - or at least only pay for what you really need.
Important Features:
Automatically archive all pages visited.
Accelerates in the web online browsing or updates the archive.
No difference between on- and offline browsing.
Links to resources of cache archives are marked for quick navigation.
Compare HTML pages from internet and archive. The changes are highlighted.
Browse and interactive navigation in the original hierarchy of downloaded pages.
Burn a site (or many sites) to CD for backup or archive.
Supports the protocols HTTP and FTP.
Supplied with a detailed manual, a simple and completely comprehensive installation and deinstallation.
The reader is an ideal addition to every browser!
Enhancements:
Version 2008
System Requirements:Java of version 1.4 or higher<<less
Ultimate++ IDE for liunx 2008.1
A set of libraries (GUI, SQL, etc..), and an integrated development environment. more>> Ultimate++ is a C++ cross-platform rapid application development suite focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc..), and an integrated development environment.
Rapid development is achieved by the smart and aggressive use of C++ rather than through fancy code generators. In this respect, U++ competes with popular scripting languages while preserving C/C++ runtime characteristics.
The U++ integrated development environment, TheIDE, introduces modular concepts to C++ programming. It features BLITZ-build technology to speedup C++ rebuilds up to 4 times, Visual designers for U++ libraries, Topic++ system for documenting code and creating rich text resources for applications (like help and code documentation) and Assist++ - a powerful C++ code analyzer that provides features like code completion, navigation and transformation
TheIDE can work with GCC, MinGW and Visual C++ 7.1 or 8.0 compilers (including free Visual C++ Toolkit 2003 and Visual C++ 2005 Express Edition) and contains a full featured debugger. TheIDE can also be used to develop non-U++ applications.
U++ distributions combine U++ with 3rd party tools like MinGW compiler or SDL library to provide an instant development platform<<less
Lime Wire 2008 4.18.8
Download unlimited mp3s, movies, videos, music, games, applications, ebooks and more! http://lime.wire-2008.com Written in the Java programming language, LimeWire is able to run on any computer with Java Virtual Machine installed. Installers are provided for Microsoft Windows, Mac OS X, and Linux. more>>
Lime Wire 2008 - Download unlimited mp3s, movies, videos, music, games, applications, ebooks and more! http://lime.wire-2008.com
Protection Against Identity Theft
New ways to control your sensitive material.
Even Better Control Over Shared Files
Easily see and control what files you are sharing.
Built-In Browser
Browse the Web, right from LimeWire!
NO BUNDLED SOFTWARE OF ANY KIND!
No spyware. No adware. Guaranteed.
Firewall to Firewall Transfers.
Since about 60 percent of users are currently firewalled, this feature greatly increases the amount of content on the network.
Faster network connections.
Using new "UDP Host Caches", LimeWire starts up and connects faster than ever before!
Universal Plug N Play.
UPnP support allows LimeWire to find more search results and have faster downloads.
iTunes Integration.
Windows and Mac users can now take advantage of LimeWires iTunes integration.
Creative Commons Integration.
LimeWire now recognizes OGGs and MP3s licensed under a Creative Commons License.
Users can browse the network for the most recent content additions.
Search drill down results.
Searches in LimeWire now immediately display information that fully describes files.
Proxy support.
Users can now use web proxies to route their downloads to protect their identity.
Support for International searches and International groups.
Users can now search in any language, and LimeWire ensures that a user will be connected to other users with their own language to aide international users to receive search results in their native language and to find content from sources that are close to home
Enhancements:
Version 4.18.8
none
System Requirements:<<less
Template::Simple 0.01
Template::Simple is a simple and fast template module. more>>
SYNOPSIS
use Template::Simple;
my $tmpl = Template::Simple->new();
my $template = Jan 1, 2008,
author => Me, myself and I,
},
row => [
{
first => row 1 value 1,
second => row 1 value 2,
},
{
first => row 2 value 1,
second => row 2 value 2,
},
],
footer_data => {
modified => Aug 31, 2006,
},
} ;
my $rendered = $tmpl->render( $template, $data ) ;
Template::Simple has these goals:
Support most common template operations
It can recursively include other templates, replace tokens (scalars), recursively render nested chunks of text and render lists. By using simple idioms you can get conditional renderings.
Complete isolation of template from program code
This is very important as template design can be done by different people than the program logic. It is rare that one person is well skilled in both template design and also programming.
Very simple template markup (only 4 markups)
The only markups are INCLUDE, START, END and token. See MARKUP for more.
Easy to follow rendering rules
Rendering of templates and chunks is driven from a data tree. The type of the data element used in an rendering controls how the rendering happens. The data element can be a scalar or scalar reference or an array, hash or code reference.
Efficient template rendering
Rendering is very simple and uses Perls regular expressions efficiently. Because the markup is so simple less processing is needed than many other templaters. Precompiling templates is not supported yet but that optimization is on the TODO list.
Easy user extensions
User code can be called during an rendering so you can do custom renderings and plugins. Closures can be used so the code can have its own private data for use in rendering its template chunk.
IBiz E-Payment Integrator 2.1.2008
The IBiz E-Payment Integrator provides a way to add secure and reliable Internet payment processing to your applications. more>> <<less
xmppjca 2005-11-25
xmppjca project is a JCA 1.5 resource Adapter for managing connections to a XMPP (aka jabber) server from a J2EE application. more>>
The connector supports multiple connections to multiple servers and provides an abstraction of the underlying smack api that in addition to connection management provides support for extensions from su-smack which includes support for JEP-0060 aka publish subscribe.
Currently the RA only supports container managed security. Future versions will support bean managed security using JAAS. The goal is eventually support single-sign-on using SASL+GSSAPI to XMPP servers which support this mechanism.
Currently the RA does not support transactions. The precise way in which this will be supported is a matter of debate.
Installation
The project consists of two parts - xmppjca and xmppjca-spec. Build both artifacts. Deploy the rar-file in your J2EE-server. In a standard JBoss- installation this means copying the rar-file to $JBOSS_HOME/server/default/deploy. The xmppjca-spec-< version >.jar should be placed in the classpath of clients who need to use the resource adapter. In a standard JBoss-installation the easiest way is to copy the file to $JBOSS_HOME/server/default/lib. In most situations the application server will hotdeploy the rar-file but not the jar- file so a restart is needed whenever you update the spec-file.
ChainBuilder ESB for Linux 2.0
ChainBuilder ESB is an open source solution for use in Service Oriented Architecture (SOA) environments. ChainBuilder ESB creates standards-based components though drag and drop graphical user interfa more>>
ChainBuilder ESB is an open source Enterprise Service Bus. ChainBuilder ESB allows IT developers with Service Oriented Architecture (SOA) infrastructures to create standards-based ESB components through Eclipse-based graphical user interfaces. Most organizations SOAs need to include strategic backend systems that operate with non-XML data formats and non-WebServices communication protocols. Bostech focus on usability ensured the initial offerings of ChainBuilder ESB had industry standard editors to manage EDI X12, HL7, fixed and variable formats and communication components for TCP/IP, FTP and file protocols and database components for JMS and ETL integrations - the formats and protocols that organizations with mature applications absolutely require. ChainBuilder ESB also has uncommon high-end open source features, like an AJAX-based Console web interface for monitoring and controlling the production environment, usually found only with expensive proprietary systems. Bostech Corporation is deploys a dual-license distribution model for ChainBuilder ESB. Developers can download the open source software for Windows, Linux and Unix under the common GPL license at http://www.chainforge.net. A commercial license and subscription support is also available for enterprises and software vendors.
System Requirements: P4/1GB ram/10GB HD min; dual 3.0Ghz/2GB ram preferred
System Requirements: 2.0, Oct 2008 1.3.1, July 2008, incls Java 6 1.2, Mar 2008, incls ETL and Vista 1.1, Aug 2007, incls HL7, POP3, SMTP and framework; 1.0, Jan 2007, incls console and JDBC support; Beta Release, Dec 2006, incls source code and Linux support; Alpha Release, Sep 2006, incls Windows support;
<<lessTao Linux 4-update2
Tao Linux is one of several projects to build a free Linux distribution from the sources used in the Red Hat Enterprise. more>>
The target market is either experienced system administrators who would like freely available binaries of this code, or end users who are interested in experimenting with enterprise functionality.
Besides being mostly compatible with Red Hat Enterprise Linux 3, it also includes software packages such as Eclipse and clustering tools not found in the base RHEL products.
Main features:
- Includes gcj-compiled Eclipse IDE
- Includes clustering tools
- Yum with protectbase patch for safer use of 3rd-party repos
- Supports ACLs in ext3, nfs and Samba
- Many packages for Red Hat Enterprise Linux also run on Tao Linux
- Free as in speech and beer
- Security updates (in SRPM form, at least) available into 2008
perlhack 5.8.8
perlhack is a Perl module that will show you how to hack at the Perl internals. more>>
This document attempts to explain how Perl development takes place, and ends with some suggestions for people wanting to become bona fide porters.
The perl5-porters mailing list is where the Perl standard distribution is maintained and developed. The list can get anywhere from 10 to 150 messages a day, depending on the heatedness of the debate. Most days there are two or three patches, extensions, features, or bugs being discussed at a time.
A searchable archive of the list is at either:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/
or
http://archive.develooper.com/perl5-porters@perl.org/
List subscribers (the porters themselves) come in several flavours. Some are quiet curious lurkers, who rarely pitch in and instead watch the ongoing development to ensure theyre forewarned of new changes or features in Perl. Some are representatives of vendors, who are there to make sure that Perl continues to compile and work on their platforms. Some patch any reported bug that they know how to fix, some are actively patching their pet area (threads, Win32, the regexp engine), while others seem to do nothing but complain. In other words, its your usual mix of technical people.
Over this group of porters presides Larry Wall. He has the final word in what does and does not change in the Perl language. Various releases of Perl are shepherded by a "pumpking", a porter responsible for gathering patches, deciding on a patch-by-patch, feature-by-feature basis what will and will not go into the release. For instance, Gurusamy Sarathy was the pumpking for the 5.6 release of Perl, and Jarkko Hietaniemi was the pumpking for the 5.8 release, and Rafael Garcia-Suarez holds the pumpking crown for the 5.10 release.
In addition, various people are pumpkings for different things. For instance, Andy Dougherty and Jarkko Hietaniemi did a grand job as the Configure pumpkin up till the 5.8 release. For the 5.10 release H.Merijn Brand took over.
Larry sees Perl development along the lines of the US government: theres the Legislature (the porters), the Executive branch (the pumpkings), and the Supreme Court (Larry). The legislature can discuss and submit patches to the executive branch all they like, but the executive branch is free to veto them. Rarely, the Supreme Court will side with the executive branch over the legislature, or the legislature over the executive branch. Mostly, however, the legislature and the executive branch are supposed to get along and work out their differences without impeachment or court cases.
You might sometimes see reference to Rule 1 and Rule 2. Larrys power as Supreme Court is expressed in The Rules:
Larry is always by definition right about how Perl should behave. This means he has final veto power on the core functionality.
Larry is allowed to change his mind about any matter at a later date, regardless of whether he previously invoked Rule 1.
Got that? Larry is always right, even when he was wrong. Its rare to see either Rule exercised, but they are often alluded to.
New features and extensions to the language are contentious, because the criteria used by the pumpkings, Larry, and other porters to decide which features should be implemented and incorporated are not codified in a few small design goals as with some other languages. Instead, the heuristics are flexible and often difficult to fathom. Here is one persons list, roughly in decreasing order of importance, of heuristics that new features have to be weighed against:
Does concept match the general goals of Perl?
These havent been written anywhere in stone, but one approximation is:
1. Keep it fast, simple, and useful.
2. Keep features/concepts as orthogonal as possible.
3. No arbitrary limits (platforms, data sizes, cultures).
4. Keep it open and exciting to use/patch/advocate Perl everywhere.
5. Either assimilate new technologies, or build bridges to them.
Where is the implementation?
All the talk in the world is useless without an implementation. In almost every case, the person or people who argue for a new feature will be expected to be the ones who implement it. Porters capable of coding new features have their own agendas, and are not available to implement your (possibly good) idea.
Backwards compatibility
Its a cardinal sin to break existing Perl programs. New warnings are contentious--some say that a program that emits warnings is not broken, while others say it is. Adding keywords has the potential to break programs, changing the meaning of existing token sequences or functions might break programs.
Could it be a module instead?
Perl 5 has extension mechanisms, modules and XS, specifically to avoid the need to keep changing the Perl interpreter. You can write modules that export functions, you can give those functions prototypes so they can be called like built-in functions, you can even write XS code to mess with the runtime data structures of the Perl interpreter if you want to implement really complicated things. If it can be done in a module instead of in the core, its highly unlikely to be added.
Is the feature generic enough?
Is this something that only the submitter wants added to the language, or would it be broadly useful? Sometimes, instead of adding a feature with a tight focus, the porters might decide to wait until someone implements the more generalized feature. For instance, instead of implementing a "delayed evaluation" feature, the porters are waiting for a macro system that would permit delayed evaluation and much more.
Does it potentially introduce new bugs?
Radical rewrites of large chunks of the Perl interpreter have the potential to introduce new bugs. The smaller and more localized the change, the better.
Does it preclude other desirable features?
A patch is likely to be rejected if it closes off future avenues of development. For instance, a patch that placed a true and final interpretation on prototypes is likely to be rejected because there are still options for the future of prototypes that havent been addressed.
Is the implementation robust?
Good patches (tight code, complete, correct) stand more chance of going in. Sloppy or incorrect patches might be placed on the back burner until the pumpking has time to fix, or might be discarded altogether without further notice.
Is the implementation generic enough to be portable?
The worst patches make use of a system-specific features. Its highly unlikely that nonportable additions to the Perl language will be accepted.
Is the implementation tested?
Patches which change behaviour (fixing bugs or introducing new features) must include regression tests to verify that everything works as expected. Without tests provided by the original author, how can anyone else changing perl in the future be sure that they havent unwittingly broken the behaviour the patch implements? And without tests, how can the patchs author be confident that his/her hard work put into the patch wont be accidentally thrown away by someone in the future?
Is there enough documentation?
Patches without documentation are probably ill-thought out or incomplete. Nothing can be added without documentation, so submitting a patch for the appropriate manpages as well as the source code is always a good idea.
Is there another way to do it?
Larry said "Although the Perl Slogan is Theres More Than One Way to Do It, I hesitate to make 10 ways to do something". This is a tricky heuristic to navigate, though--one mans essential addition is another mans pointless cruft.
Does it create too much work?
Work for the pumpking, work for Perl programmers, work for module authors, ... Perl is supposed to be easy.
Patches speak louder than words
Working code is always preferred to pie-in-the-sky ideas. A patch to add a feature stands a much higher chance of making it to the language than does a random feature request, no matter how fervently argued the request might be. This ties into "Will it be useful?", as the fact that someone took the time to make the patch demonstrates a strong desire for the feature.
If youre on the list, you might hear the word "core" bandied around. It refers to the standard distribution. "Hacking on the core" means youre changing the C source code to the Perl interpreter. "A core module" is one that ships with Perl.
ICS::Simple 0.06
ICS::Simple is a simple interface to CyberSource ICS2. more>>
SYNOPSIS
Here is some basic code. Hopefully Ill come back through soon to document it properly.
use ICS::Simple;
my $ics = ICS::Simple->new(
ICSPath => /opt/ics,
MerchantId => v0123456789, # CyberSource supplies this number to you
Mode => test,
Currency => USD,
Grammar => UpperCamel, # defaults to raw ICS responses, so you might want to set this
#ErrorsTo => all-errors@some.fun.place.com,
CriticalErrorsTo => only-critical-errors@some.fun.place.com,
);
my $request = {
OrderId => order19857219,
FirstName => Fred,
LastName => Smith,
Email => fred.smith@buyer-of-stuff.com,
CardNumber => 4111111111111111,
CardCVV => 123,
CardExpYear => 2008,
CardExpMonth => 12,
BillingAddress => 123 Main St,
BillingCity => Olympia,
BillingRegion => WA,
BillingPostalCode => 98501,
BillingCountryCode => US,
ShippingAddress1 => 6789 Industrial Pl,
ShippingAddress2 => Floor 83, Room 11415,
ShippingCity => Olympia,
ShippingRegion => WA,
ShippingPostalCode => 98506,
ShippingCountryCode => US,
ShippingFee => 25.05,
HandlingFee => 5.00,
Items => [
{ Description => Mega Lizard Monster RC,
Price => 25.00,
SKU => prod15185 },
{ Description => Super Racer Parts Kit,
Price => 15.30,
SKU => prod23523 },
{ Description => Uber Space Jacket,
Price => 72.24,
SKU => prod18718 },
],
};
my $response = $ics->requestBill($request);
if ($response->{success}) {
print "Woo! Success!n";
$response = $response->{response};
print "Thanks for your payment of $$response->{BillAmount}.n";
}
else {
print "Boo! Failure!n";
print "Error: $response->{error}->{description}n";
}