unique
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 478
Array::Unique 0.07
Array::Unique is a tie-able array that allows only unique values. more>>
Array::Unique is a tie-able array that allows only unique values.
SYNOPSIS
use Array::Unique;
tie @a, Array::Unique;
Now use @a as a regular array.
This package lets you create an array which will allow only one occurrence of any value.
In other words no matter how many times you put in 42 it will keep only the first occurrence and the rest will be dropped.
You use the module via tie and once you tied your array to this module it will behave correctly.
Uniqueness is checked with the eq operator so among other things it is case sensitive.
As a side effect the module does not allow undef as a value in the array.
EXAMPLES
use Array::Unique;
tie @a, Array::Unique;
@a = qw(a b c a d e f);
push @a, qw(x b z);
print "@an"; # a b c d e f x z
When you are collecting a list of items and you want to make sure there is only one occurrence of each item, you have several option:
1) using an array and extracting the unique elements later. You might use a regular array to hold this unique set of values and either remove duplicates on each update by that keeping the array always unique or remove duplicates just before you want to use the uniqueness feature of the array. In either case you might run a function you call @a = unique_value(@a);
The problem with this approach is that you have to implement the unique_value function (see later) AND you have to make sure you dont forget to call it. I would say dont rely on remembering this.
There is good discussion about it in the 1st edition of the Perl Cookbook of OReilly. I have copied the solutions here, you can see further discussion in the book.
----------------------------------------
Extracting Unique Elements from a List (Section 4.6 in the Perl Cookbook 1st ed.)
# Straightforward
%seen = ();
@uniq = ();
foreach $item (@list) [
unless ($seen{$item}) {
# if we get here we have not seen it before
$seen{$item} = 1;
push (@uniq, $item);
}
}
# Faster
%seen = ();
foreach $item (@list) {
push(@uniq, $item) unless $seen{$item}++;
}
# Faster but different
%seen;
foreach $item (@list) {
$seen{$item}++;
}
@uniq = keys %seen;
# Faster and even more different
%seen;
@uniq = grep {! $seen{$_}++} @list;
----------------------------------------
2) using a hash
Some people use the keys of a hash to keep the items and
put an arbitrary value as the values of the hash:
To build such a list:
%unique = map { $_ => 1 } qw( one two one two three four! );
To print it:
print join ", ", sort keys %unique;
To add values to it:
$unique{$_}=1 foreach qw( one after the nine oh nine );
To remove values:
delete @unique{ qw(oh nine) };
To check if a value is there:
$unique{ $value }; # which is why I like to use "1" as my value
(thanks to Gaal Yahas for the above examples)
There are three drawbacks I see:
1) You type more.
2) Your reader might not understand at first why did you use hash and what will be the values.
3) You lose the order.
Usually non of them is critical but when I saw this the 10th time in a code I had to understand with 0 documentation I got frustrated.
3) using Array::Unique
So I decided to write this module because I got frustrated by my lack of understanding whats going on in that code I mentioned. In addition I thought it might be interesting to write this and then benchmark it. Additionally it is nice to have your name displayed in bright lights all over CPAN ... or at least in a module.
Array::Unique lets you tie an aray to hmmm, itself (?) and makes sure the values of the array are always unique.
Since writing this I am not sure if I really recommend its usage. I would say stick with the hash version and document that the variable is aggregating a unique list of values.
4) Using real SET
There are modules on CPAN that let you create and maintain SETs. I have not checked any of those but I guess they just as much of an overkill for this functionality as Unique::Array.
<<lessSYNOPSIS
use Array::Unique;
tie @a, Array::Unique;
Now use @a as a regular array.
This package lets you create an array which will allow only one occurrence of any value.
In other words no matter how many times you put in 42 it will keep only the first occurrence and the rest will be dropped.
You use the module via tie and once you tied your array to this module it will behave correctly.
Uniqueness is checked with the eq operator so among other things it is case sensitive.
As a side effect the module does not allow undef as a value in the array.
EXAMPLES
use Array::Unique;
tie @a, Array::Unique;
@a = qw(a b c a d e f);
push @a, qw(x b z);
print "@an"; # a b c d e f x z
When you are collecting a list of items and you want to make sure there is only one occurrence of each item, you have several option:
1) using an array and extracting the unique elements later. You might use a regular array to hold this unique set of values and either remove duplicates on each update by that keeping the array always unique or remove duplicates just before you want to use the uniqueness feature of the array. In either case you might run a function you call @a = unique_value(@a);
The problem with this approach is that you have to implement the unique_value function (see later) AND you have to make sure you dont forget to call it. I would say dont rely on remembering this.
There is good discussion about it in the 1st edition of the Perl Cookbook of OReilly. I have copied the solutions here, you can see further discussion in the book.
----------------------------------------
Extracting Unique Elements from a List (Section 4.6 in the Perl Cookbook 1st ed.)
# Straightforward
%seen = ();
@uniq = ();
foreach $item (@list) [
unless ($seen{$item}) {
# if we get here we have not seen it before
$seen{$item} = 1;
push (@uniq, $item);
}
}
# Faster
%seen = ();
foreach $item (@list) {
push(@uniq, $item) unless $seen{$item}++;
}
# Faster but different
%seen;
foreach $item (@list) {
$seen{$item}++;
}
@uniq = keys %seen;
# Faster and even more different
%seen;
@uniq = grep {! $seen{$_}++} @list;
----------------------------------------
2) using a hash
Some people use the keys of a hash to keep the items and
put an arbitrary value as the values of the hash:
To build such a list:
%unique = map { $_ => 1 } qw( one two one two three four! );
To print it:
print join ", ", sort keys %unique;
To add values to it:
$unique{$_}=1 foreach qw( one after the nine oh nine );
To remove values:
delete @unique{ qw(oh nine) };
To check if a value is there:
$unique{ $value }; # which is why I like to use "1" as my value
(thanks to Gaal Yahas for the above examples)
There are three drawbacks I see:
1) You type more.
2) Your reader might not understand at first why did you use hash and what will be the values.
3) You lose the order.
Usually non of them is critical but when I saw this the 10th time in a code I had to understand with 0 documentation I got frustrated.
3) using Array::Unique
So I decided to write this module because I got frustrated by my lack of understanding whats going on in that code I mentioned. In addition I thought it might be interesting to write this and then benchmark it. Additionally it is nice to have your name displayed in bright lights all over CPAN ... or at least in a module.
Array::Unique lets you tie an aray to hmmm, itself (?) and makes sure the values of the array are always unique.
Since writing this I am not sure if I really recommend its usage. I would say stick with the hash version and document that the variable is aggregating a unique list of values.
4) Using real SET
There are modules on CPAN that let you create and maintain SETs. I have not checked any of those but I guess they just as much of an overkill for this functionality as Unique::Array.
Download (0.008MB)
Added: 2007-07-17 License: Perl Artistic License Price:
830 downloads
Toms Unique Personal Information Manager 1.5
Toms Unique Personal Information Manager is an hierarchical personal data manager. more>>
Toms Unique Personal Information Manager is an hierarchical personal data manager.
Schemas and data are stored in XML. Toms Unique Personal Information Manager is designed for single users and small personal databases.
<<lessSchemas and data are stored in XML. Toms Unique Personal Information Manager is designed for single users and small personal databases.
Download (0.14MB)
Added: 2006-07-21 License: GPL (GNU General Public License) Price:
1190 downloads
Tom's Unique Personal Information Manager 1.5
Toms Unique Personal Information Manager provides you with a professional and effective hierarchical personal data manager which is designed for single users. more>>
Tom's Unique Personal Information Manager 1.5 provides you with a professional and effective hierarchical personal data manager which is designed for single users. Schemas and data are stored in XML.
Enhancements:
- This release was changed to support GTK 2.6, since it reads internal GTK tree/list data for performance reasons.
- Signed number masks are now correctly handled.
- Zip codes support Zip+4.
- A message is printed on stderr when data is saved, allowing tupim to participate in interprocess communication, for instance, as an options dialog.
- The fact that self-referencing tables are not allowed is now documented.
- Other minor fixes were made.
Requirements: GTK+ version 2.6.x
Added: 2006-07-21 License: GPL Price: FREE
1 downloads
mod_auth_nufw 2.2
mod_auth_nufw is a Single Sign On Apache module which performs secure user identification and authentication. more>>
mod_auth_nufw is a Single Sign On Apache module which performs secure user identification and authentication, based on the Nufw firewalling suite. Nufw marks all connections of a network with a unique UserID.
This module takes advantage of that mark and uses it to transparently identify and authenticate users requiring access to an Apache server.
Main features:
- SSL encryption of SQL connections
- Support of the v2 SSO protocol, which is much lighter, as it avoids all LDAP connections to the module.
- Apache 2 support.
- Finer control on SQL requests.
- Control of server tokens, on Apache2.
<<lessThis module takes advantage of that mark and uses it to transparently identify and authenticate users requiring access to an Apache server.
Main features:
- SSL encryption of SQL connections
- Support of the v2 SSO protocol, which is much lighter, as it avoids all LDAP connections to the module.
- Apache 2 support.
- Finer control on SQL requests.
- Control of server tokens, on Apache2.
Download (0.042MB)
Added: 2006-05-15 License: GPL (GNU General Public License) Price:
1257 downloads
Biniax 1.2
Biniax is an unique arcade logic game. more>>
Biniax is an unique arcade logic game. Simple and addictive, you can learn in a minute and play for hours.
The gaming field is a 5x7 grid filled partially with pairs of elements. Every pair consists of two different elements combined of four possible.
You control the box with an element inside and can move around the field on empty spaces. You can also remove pairs of elements if you have the same element as the one of the pair.
When you remove the pair, your element becomes the other one element of the pair and the score is increased. The gaming field scrolls down slowly and your goal is to stay on the field for as long as possible.
Enhancements:
- After months of playing, this release introduces the new time balance.
- This is an important change in the gameplay.
<<lessThe gaming field is a 5x7 grid filled partially with pairs of elements. Every pair consists of two different elements combined of four possible.
You control the box with an element inside and can move around the field on empty spaces. You can also remove pairs of elements if you have the same element as the one of the pair.
When you remove the pair, your element becomes the other one element of the pair and the score is increased. The gaming field scrolls down slowly and your goal is to stay on the field for as long as possible.
Enhancements:
- After months of playing, this release introduces the new time balance.
- This is an important change in the gameplay.
Download (0.044MB)
Added: 2005-11-04 License: Freely Distributable Price:
1449 downloads
XMMS Announcer 0.09.5
XMMS Announcer is a simple utility that neatly prints the current track playing in XMMS. more>>
XMMS Announcer is a simple utility that neatly prints the current track playing in XMMS. XMMS Announcer has optional command line arguments that allow for more detailed information about the track.
The unique feature is that it allows for an easily customizable output string format, which is done by using the -f switch on the command line.
<<lessThe unique feature is that it allows for an easily customizable output string format, which is done by using the -f switch on the command line.
Download (0.007MB)
Added: 2006-04-11 License: GPL (GNU General Public License) Price:
1291 downloads
Gideon 2.8.0
Gideon is a versatile GUI designer for GTK/C++. more>>
Gideon is an innovative GUI builder for GTK+. It is an advanced IDE-embeddable RAD tool designed to fulfill the needs of desktop programmers who want to create multi-platform GTK+ based applications with minimal GUI coding.
Gideon is full-featured yet elegant: its unique Property Explorer solves many GUI constructing tasks in a versatile manner without additional popup dialogs. The project is targeted to develop a tool that is coherent and highly productive for GTK+ experts as well as simple and accessible for newcomers.
<<lessGideon is full-featured yet elegant: its unique Property Explorer solves many GUI constructing tasks in a versatile manner without additional popup dialogs. The project is targeted to develop a tool that is coherent and highly productive for GTK+ experts as well as simple and accessible for newcomers.
Download (0.31MB)
Added: 2006-08-18 License: GPL (GNU General Public License) Price:
1166 downloads
SMM++ Mud Client 6.1.1
SMM++ Mud Client project is a client with mapping functionality and lots of other features. more>>
SMM++ Mud Client project is a client with mapping functionality and lots of other features.
SMM++ Mud Client is a mud client with extended and unique features.
Aside from all standard mud client functionality like ANSI color support, aliases, action triggers, and tab-completion, SMM++ features a highly-customizable user interface (labels, buttons, and menus) and unique and powerful mapping capabilities, and SMM++ is the only mapping crossplatform (Tcl/Tk based) mud client available.
Enhancements:
- ::smm::action replaced with ::smm::reaction (pretty stable)
Added:
- ::smm::pasteok hook (not tested extensively, yet)
<<lessSMM++ Mud Client is a mud client with extended and unique features.
Aside from all standard mud client functionality like ANSI color support, aliases, action triggers, and tab-completion, SMM++ features a highly-customizable user interface (labels, buttons, and menus) and unique and powerful mapping capabilities, and SMM++ is the only mapping crossplatform (Tcl/Tk based) mud client available.
Enhancements:
- ::smm::action replaced with ::smm::reaction (pretty stable)
Added:
- ::smm::pasteok hook (not tested extensively, yet)
Download (0.24MB)
Added: 2006-11-07 License: GPL (GNU General Public License) Price:
1082 downloads
Cultivation 8
Cultivation is a unique game that explores conflict and cooperation in a gardening community. more>>
Cultivation is a unique game that explores conflict and cooperation in a gardening community.
Cultivation explores the social interactions within a gardening community. You lead one family of gardeners, starting with a single individual, and wise choices can keep your genetic line from extinction. While breeding plants, eating, and mating, your actions impact your neighbors, and the social balance sways between conflict and compromise.
Cultivation features dynamic graphics that are procedurally-generated using genetic representations and cross-breeding. In other words, game objects are "grown" in real-time instead of being hand-painted or hard-coded. Each plant and gardener in the game is unique in terms of both its appearance and behavior.
<<lessCultivation explores the social interactions within a gardening community. You lead one family of gardeners, starting with a single individual, and wise choices can keep your genetic line from extinction. While breeding plants, eating, and mating, your actions impact your neighbors, and the social balance sways between conflict and compromise.
Cultivation features dynamic graphics that are procedurally-generated using genetic representations and cross-breeding. In other words, game objects are "grown" in real-time instead of being hand-painted or hard-coded. Each plant and gardener in the game is unique in terms of both its appearance and behavior.
Download (1.8MB)
Added: 2007-08-11 License: Public Domain Price:
811 downloads
Know Base 1.3
Know Base project consists of knowledge, document, and project management tool. more>>
Know Base project consists of knowledge, document, and project management tool.
Know Base is a Web-based knowledge management system. It allows users to share files and projects across multiple business divisions.
A unique notification system alerts users when projects are modified, or when new projects are added that match their search terms.
<<lessKnow Base is a Web-based knowledge management system. It allows users to share files and projects across multiple business divisions.
A unique notification system alerts users when projects are modified, or when new projects are added that match their search terms.
Download (0.035MB)
Added: 2007-01-18 License: GPL (GNU General Public License) Price:
1010 downloads
uitags 0.6.12
uitags is an open source JSP custom-tag library that makes developing friendly UI effortless. more>>
uitags is an open source JSP custom-tag library that makes developing friendly UI (user interface) effortless. uitags has a unique aim of helping developers create UIs that dont confuse end-users and instead let them work more efficiently.
To find out more, have a quick look at the remaining of this page, and then proceed to the demo site. Consult the Using uitags and Tag Reference pages when youre developing with uitags.
Compatibility note: uitags presently works with IE 6 and Mozilla Firefox 1.x (and possibly with older versions of Firefox).
<<lessTo find out more, have a quick look at the remaining of this page, and then proceed to the demo site. Consult the Using uitags and Tag Reference pages when youre developing with uitags.
Compatibility note: uitags presently works with IE 6 and Mozilla Firefox 1.x (and possibly with older versions of Firefox).
Download (0.26MB)
Added: 2006-09-04 License: GPL (GNU General Public License) Price:
1145 downloads
Lila
Lila provides a beautiful and unique SVG icon theme inspired by Gentoo linux. more>>
Lila provides a beautiful and unique SVG icon theme inspired by Gentoo linux.
This release is meant to look good on Gnome 2.16. It contains about 1200 icons for complete lila look and feel for Gnome.
<<lessThis release is meant to look good on Gnome 2.16. It contains about 1200 icons for complete lila look and feel for Gnome.
Download (2.5MB)
Added: 2007-04-17 License: GPL (GNU General Public License) Price:
922 downloads
Fruit Show 0.6
Fruit Show is a minimalist forum package based on the forums at joelonsoftware.com. more>>
Fruit Show is a minimalist forum package based on the forums at joelonsoftware.com. Fruit Show is based on the philosophy that social atmosphere is a by-product of software design.
Theres no registration and very few features for visitors. Its skinnable and easy to install. It also contains some unique moderation features.
Fruit Show is intended for small sites that need an easy to use and accessible forum.
Enhancements:
- This release of FruitShow fixes a large number of issues and makes a few improvements to IIS support and support for PHP5.
- Smarter topic locking and improved optimization were added.
<<lessTheres no registration and very few features for visitors. Its skinnable and easy to install. It also contains some unique moderation features.
Fruit Show is intended for small sites that need an easy to use and accessible forum.
Enhancements:
- This release of FruitShow fixes a large number of issues and makes a few improvements to IIS support and support for PHP5.
- Smarter topic locking and improved optimization were added.
Download (0.33MB)
Added: 2007-07-06 License: BSD License Price:
842 downloads
Murrine GTK+ engine 0.51
Murrine GTK+ engine provides a is cairo-based engine which enables you to make your desktop look like a Murrina. more>>
Murrine GTK+ engine provides a is cairo-based engine which enables you to make your desktop look like a Murrina.
"Murrine" is an Italian word meaning the glass artworks done by Venicians glass blowers. Theyre absolutely wonderful and colorful.
Murrine has this object to provide the ability to make your desktop look like a "Murrina", which is the Italian singular of the name "Murrine".
The Engine is cairo-based, and its very fast compared to clearlooks-cairo and ubuntulooks (30% faster and more), since I have tried to optimize the code and removed a lot of slow gradients to provide this unique style.
<<less"Murrine" is an Italian word meaning the glass artworks done by Venicians glass blowers. Theyre absolutely wonderful and colorful.
Murrine has this object to provide the ability to make your desktop look like a "Murrina", which is the Italian singular of the name "Murrine".
The Engine is cairo-based, and its very fast compared to clearlooks-cairo and ubuntulooks (30% faster and more), since I have tried to optimize the code and removed a lot of slow gradients to provide this unique style.
Download (0.25MB)
Added: 2007-03-04 License: GPL (GNU General Public License) Price:
968 downloads
OSSP uuid 1.5.0
OSSP uuid is an API for ISO C, ISO C++, Perl and PHP. more>>
OSSP uuid is a ISO-C:1999 application programming interface (API) and corresponding command line interface (CLI) for the generation of DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant Universally Unique Identifier (UUID).
OSSP uuid project supports DCE 1.1 variant UUIDs of version 1 (time and node based), version 3 (name based, MD5), version 4 (random number based) and version 5 (name based, SHA-1).
Additional API bindings are provided for the languages ISO-C++:1998, Perl:5 and PHP:4/5. Optional backward compatibility exists for the ISO-C DCE-1.1 and Perl Data::UUID APIs.
UUIDs are 128 bit numbers which are intended to have a high likelihood of uniqueness over space and time and are computationally difficult to guess.
They are globally unique identifiers which can be locally generated without contacting a global registration authority.
UUIDs are intended as unique identifiers for both mass tagging objects with an extremely short lifetime and to reliably identifying very persistent objects across a network.
Enhancements:
- Major fixes to the PostgreSQL and PHP bindings.
- Many internal code cleanups and small fixes.
<<lessOSSP uuid project supports DCE 1.1 variant UUIDs of version 1 (time and node based), version 3 (name based, MD5), version 4 (random number based) and version 5 (name based, SHA-1).
Additional API bindings are provided for the languages ISO-C++:1998, Perl:5 and PHP:4/5. Optional backward compatibility exists for the ISO-C DCE-1.1 and Perl Data::UUID APIs.
UUIDs are 128 bit numbers which are intended to have a high likelihood of uniqueness over space and time and are computationally difficult to guess.
They are globally unique identifiers which can be locally generated without contacting a global registration authority.
UUIDs are intended as unique identifiers for both mass tagging objects with an extremely short lifetime and to reliably identifying very persistent objects across a network.
Enhancements:
- Major fixes to the PostgreSQL and PHP bindings.
- Many internal code cleanups and small fixes.
Download (0.36MB)
Added: 2006-07-28 License: GPL (GNU General Public License) Price:
1189 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 unique 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