sherwood 1.00 demo
Salat Book 1.00
Salat Book gives you the wonderful choice of a Salat / Namaz prayer database and tracking application. more>>
Salat Book 1.00 gives you the wonderful choice of a Salat / Namaz prayer database and tracking application. It is using month calendars, salat completion datagrid, statistics and graphs and is specially useful for Kaza (missed Salat) prayers.
Enhancements:
- Statistics filter & Graphs flter now changed to single Date Filter.
- Date Filter now enabled for Pie Charts & Bar Chart.
- Removal of Error Statistics debugging pop-ups with grand total stats.
- Graphs Bar Chart legend moved to top left.
- Application window & components resized & compacted for better visibility on
- lower resolution screens.
- Prayer Tab Salat selection button highlighting added.
- Prayer Tab Month datagrid...absent salah colour changed from light red/pink
- red to a darker red.
- Options Tab Backup function now enabled.
- Options Tab Restore function now enabled.
- Options Tab Error removal on Edit/Save function, corrupting data files.
- Application data files integrity check & repair code added during startup.
Requirements:
- Adobe AIR
Geo::Coder::US 1.00
This will estimate latitude and longitude for any US address. more>>
You can find a live demo of this code at http://geocoder.us/. The demo.cgi script is included in eg/ directory distributed with this module, along with a whole bunch of other goodies. See Geo:Coder:US:Import for how to build your own Geo:Coder:US database.
Consider using a web service to access this geocoder over the Internet, rather than going to all the trouble of building a database yourself. See eg/soap-client.pl, eg/xmlrpc-client.pl, and eg/rest-client.pl for different examples of working clients for the rpc.geocoder.us geocoder web service.
Major Features:
- Geo:Coder:US->geocode( $string )
- Given a string containing a street address or intersection, return a list of specifiers including latitude and longitude for all matching entities in the database. To keep from churning over the entire database, the given address string must contain either a city and state, or a ZIP code (or both), or geocode() will return undef.
- geocode() will attempt to normalize directional prefixes and suffixes, street types, and state abbreviations, as well as substitute TIGER/Line's idea of the "primary street name", if an alternate street name was provided instead.
- If geocode() can parse the address, but not find a match in the database, it will return a hashref containing the parsed and normalized address or intersection, but without the "lat" and "long" keys specifying the location. If geocode() cannot even parse the address, it will return undef. Be sure to check for the existence of "lat" and "long" keys in the hashes returned from geocode() before attempting to use the values! This serves to distinguish between addresses that cannot be found versus addresses that are completely unparseable.
- geocode() attempts to be as forgiving as possible when geocoding an address. If you say "Mission Ave" and all it knows about is "Mission St", then "Mission St" is what you'll get back. If you leave off directional identifiers, geocode() will return address geocoded in all the variants it can find, i.e. both "N Main St" and "S Main St".
- Don't be surprised if geocoding an intersection returns more than one lat/long pair for a single intersection. If one of the streets curves greatly or doglegs even slightly, this will be the likely outcome.
- geocode() is probably the method you want to use. See more in the following section on the structure of the returned address and intersection specifiers.
- Geo:Coder:US->geocode_address( $string )
- Works exactly like geocode(), but only parses addresses.
- Geo:Coder:US->geocode_intersection( $string )
- Works exactly like geocode(), but only parses intersections.
- Geo:Coder:US->filter_ranges( $spec, @candidates )
- Filters a list of address specifiers (presumably from the database) against a query specifier, filtering by prefix, type, suffix, or primary name if possible. Returns a list of matching specifiers. filter_ranges() will ignore a filtering step if it would result in no specifiers being returned. You probably won't need to use this.
- Geo:Coder:US->find_ranges( $address_spec )
- Given a normalized address specifier, return all the address ranges in the database that appear to cover that address. find_ranges() ignores prefix, suffix, and type fields in the specifier for search purposes, and then filters against them ex post facto. The intention for find_ranges() to find the closest match possible in preference to returning nothing. You probably want to use lookup_ranges() instead, which will call find_ranges() for you.
- Geo:Coder:US->lookup_ranges( $address_spec, @ranges )
- Given an address specifier and (optionally) some address ranges from the database, interpolate the street address into the street segment referred to by the address range, and return a latitude and longitude for the given address within each of the given ranges. If @ranges is not given, lookup_ranges() calls find_ranges() with the given address specifier, and uses those returned. You probably want to just use geocode() instead, which also parses an address string and determines whether it's a proper address or an intersection automatically.
- Geo:Coder:US->find_segments( $intersection_spec )
- Given a normalized intersection specifier, find all of the street segments in the database matching the two given streets in the given locale or ZIP code. find_segments() ignores prefix, suffix, and type fields in the specifier for search purposes, and then filters against them ex post facto. The intention for find_segments() to find the closest match possible in preference to returning nothing. You probably want to use lookup_intersection() instead, which will call find_segments() for you.
- Geo:Coder:US->lookup_intersection( $intersection_spec )
- Given an intersection specifier, return all of the intersections in the database between the two streets specified, plus a latitude and longitude for each intersection. You probably want to just use geocode() instead, which also parses an address string and determines whether it's a proper address or an intersection automatically.
Requirements: Perl
Dictionary 1.00
Every site needs a dictionary. . . for all the special terms and words which are unique to your own industry. Easy to set up and manage, your users will love having access to those hard to understand more>>
This is a great way to get repeat visitors!If the subject matter of your site contains words or phrases which are unique to your industry, why not place a searchable dictionary on your site?Upload a text file with your words and definitions along with the script and soon youll have a searchable dictionary. There is a feature to allow clickable links to other terms within the dictionary which are displayed with the definitions. This is great for music sites, which have their own unique Latin, French, and German terms, as well as medical sites, mechanical sites, and much more!Registered Version comes with support and unlimited updates.
Requirements: Perl, Webserver
<<lessIl Catalogo 1.00
A classical CD music cataloging utility more>> A classical CD music cataloging utility
Il Catalogo will allow you to keep track of all your CDs and organize you classical music collection. An easy to use and handy cataloguer written in Java.
<<lessXML::DifferenceMarkup 1.00
XML::DifferenceMarkup is a XML diff and merge. more>>
SYNOPSIS
use XML::DifferenceMarkup qw(make_diff);
$parser = XML::LibXML->new();
$parser->keep_blanks(0);
$d1 = $parser->parse_file($fname1);
$d2 = $parser->parse_file($fname2);
$dom = make_diff($d1, $d2);
print $dom->toString(1);
This module implements an XML diff producing XML output. Both input and output are DOM documents, as implemented by XML::LibXML.
The diff format used by XML::DifferenceMarkup is meant to be human-readable (i.e. simple, as opposed to short) - basically the diff is a subset of the input trees, annotated with instruction element nodes specifying how to convert the source tree to the target by inserting and deleting nodes. To prevent name colisions with input trees, all added elements are in a namespace http://www.locus.cz/diffmark (the diff will fail on input trees which already use that namespace).
Bloo 1.00 RC2
Bloo is a free, public-domain, object-oriented implementation of full-featured blog software, based on the Phoo Phramework. more>>
Main features:
- Role-based security at the object level (in other words, security is pervasive)
- Those with posting privileges can create and edit posts
- Readers can comment on posts
- Posts can receive trackbacks
- Comment and trackback moderation, spam and troll destruction, etc.
- Administrators have full control over the look and feel of the blog, via the overlay editor. All visual element templates can be edited on the fly, with a non-destructive edit.
- Themes control the look and feel. Administrators can create themes on the fly, cascade themes from other themes, and select the default theme.
- Optional theme-selector for blog readers to pick their favorite theme
- Bloo-administered Blogroll ("Bloogroll")
- Configurable blogroll categories
- Multiple Spam Control Extension SnapOns
- Multiple users
- Multiple post categories per post.
- Post keyword searches
- Easy to use installation and upgrade programs
- Developers can create new Extension SnapOns to add functionality to the blog
- All input and output components of the system are XML-based and separate from the code
- New functionality can be added via Bloo Extension SnapOns
Enhancements:
- New features in this release include support for multiple post categories, IP blacklist and comments-flood protection, an enhanced theme selector, RSS fixes, among others.
Inline::SLang::Assoc 1.00
Inline::SLang::Assoc module contains support for associative arrays. more>>
SYNOPSIS
use Inline SLang;
# you can send hash references to S-Lang
print_in_slang( { a => 23, "b b" => "foo" } );
# and get them back from S-Lang
$href = get_from_slang();
print "The assoc array contains:n" .
join( "", map { "t$_ => $$href{$_}n"; } keys %$href );
__END__
__SLang__
define print_in_slang (assoc) {
message( "SLang thinks you sent it an assoc. array with:" );
foreach ( assoc ) using ( "keys", "values" ) {
variable k, v;
( k, v ) = ();
vmessage( " key %s = %S", k, v );
}
}
define get_from_slang() {
variable x = Assoc_Type [String_Type];
x["a key"] = "a value";
x["another key"] = "another value";
return x;
}
The output of this code - which can be found in the source-code distribution as examples/assoc.pl - is:
SLang thinks you sent it an assoc. array with:
key a = 23
key b b = foo
The assoc array contains:
another key => another value
a key => a value
Devel::Pointer 1.00
Devel::Pointer is a Perl module that can fiddle around with pointers. more>>
SYNOPSIS
use Devel::Pointer;
$a = address_of($b); # a = &b;
$b = deref($a); # b = *a;
$a = unsmash_sv(0+$scalar_ref);
@a = unsmash_av(0+$array_ref);
%a = unsmash_hv(0+$hash_ref);
&a = unsmash_cv(0+$code_ref);
# OK, you cant do that, but you get the idea
$c = deref(-1); # *(-1), and the resulting segfault.
The primary purpose of this is to turn a smashed reference address back into a value. Once a reference is treated as a numeric value, you cant dereference it normally; although with this module, you can.
Be careful, though, to avoid dereferencing things that dont want to be dereferenced.
ZOOM::IRSpy::Maintenance 1.00
ZOOM::IRSpy::Maintenance is a maintenance documentation for IRSpy. more>>
The IRSpy application is implemented by five components:
- A library of classes within the ZOOM::IRSpy "namespace".
- A command-line invocation script called irspy
- A web-based UI - either this or the command-line script can be used to run the spy software, but the latter is more capable in that it also provides ways to interrogate the database of results.
- A small additional library, ZOOM::Pod, which is used by IRSpy and which is more conveniently included in this distribution than released and maintained separately.
- The configuration for a Zebra database that stores the harvested information.
These components are discussed in turn.
Objective Modula-2 1.00 (Language Definition)
Objective Modula-2 programming language is a hybrid between Smalltalk and Modula-2. more>>
The design is an example how native Cocoa/GNUstep support can be added to static imperative programming languages without implementing a bridge.
The projects scope encompasses the design of the Objective Modula-2 programming language and the implementation of a compiler to implement it. The initial compiler will generate Objective-C source code.
Math::BaseArith 1.00
Math::BaseArith is a Perl extension for mixed-base number representation (like APL encode/decode). more>>
SYNOPSIS
use Math::BaseArith;
encode( value, base_list );
decode( representation_list, base_list );
The inspiration for this module is a pair of functions in the APL programming language called encode (a.k.a. "representation") and decode (a.k.a. base-value). Their principal use is to convert numbers from one number base to another. Mixed number bases are permitted.
In this perl implementation, the representation of a number in a particular number base consists of a list whose elements are the digit values in that base. For example, the decimal number 31 would be expressed in binary as a list of five ones with any number of leading zeros: [0, 0, 0, 1, 1, 1, 1, 1]. The same number expressed as three hexadecimal (base 16) digits would be [0, 1, 15], while in base 10 it would be [0, 3, 1]. Fifty-one inches would be expressed in yards, feet, inches as [1, 1, 3], an example of a mixed number base.
In the following description of encode and decode, Q will mean an abstract value or quantity, R will be its representation and B will define the number base. Q will be a perl scalar; R and B are perl lists. The values in R correspond to the radix values in B.
In the examples below, assume the output of print has been altered by setting $, = and that => is your shell prompt.
List::Intersperse 1.00
List::Intersperse Perl module can intersperse / unsort / disperse a list. more>>
SYNOPSIS
use List::Intersperse qw/intersperseq/;
@ispersed = intersperseq {substr($_[0],0,1)} qw/A1 A2 B1 B2 C1 C2/;
@ispersed = List::Intersperse::intersperse qw/A A B B B B B B C/;
intersperse and intersperseq evenly distribute elements of a list. Elements that are considered equal are spaced as far apart from each other as possible.
FUNCTIONS
intersperse LIST
This function returns a list of elements interspersed so that equivalent items are evenly distributed throughout the list.
intersperseq BLOCK LIST
intersperseq works like intersperse but it applies BLOCK to the elements of LIST to determine the equivalance key.
Tilt-n-Roll Demo
Tilt-n-Roll is a puzzle game where you must roll your marble through the 3d maze to the exit. more>>
This game is an entry into Intels Game Demo 2007 contest. Please take the time to rate my game and help me win a prize!
Tilt the 3d maze and roll your marble to the exit. The final version will fully support laptop SMS / HDAPS sensors to allow players to tilt the laptop to play! (Support is partially there now - Linux users get an SDL patch and Mac users can wrangle with Unimotion).
Main features:
- Multiple powerups, monsters, switches, puzzles, traps...
- Built-in level editor: design and share your mazes with friends!
- Keyboard or mouse control for unsupported laptops
- Plenty of sound effects and catchy music
- Physics calculations are run in a second thread: multicore users should see an increase in both framerate and simulation accuracy
- Runs on Windows, Mac OS or Linux.
- Completely open-source software under the GNU GPL!
Sunrise Data Dictionary 1.00
Sunrise Data Dictionary is a library for hashtable storage of arbitrary data objects. more>>
Sunrise Data Dictionary library can participate in external reference counting systems or use its own built-in reference counting. It comes with a variety of hash functions and allows the use of runtime supplied hash functions via callback mechanism. The source code is well documented.
The Sunrise Data Dictionary was specifically designed for use within the Afelio and Callweaver telephony servers, the implementation focuses on performance and scalability.
Enhancements:
- This is the initial release of the full API (all header files) and a developer snapshot of the implementation.
HTML::StripScripts 1.00
HTML::StripScripts can strip scripting constructs out of HTML. more>>
SYNOPSISM
use HTML::StripScripts;
my $hss = HTML::StripScripts->new({ Context => Inline });
$hss->input_start_document;
$hss->input_start(< i >);
$hss->input_text(hello, world!);
$hss->input_end(< /i >);
$hss->input_end_document;
print $hss->filtered_document;
This module strips scripting constructs out of HTML, leaving as much non-scripting markup in place as possible. This allows web applications to display HTML originating from an untrusted source without introducing XSS (cross site scripting) vulnerabilities.
You will probably use HTML::StripScripts::Parser rather than using this module directly.
The process is based on whitelists of tags, attributes and attribute values. This approach is the most secure against disguised scripting constructs hidden in malicious HTML documents.
As well as removing scripting constructs, this module ensures that there is a matching end for each start tag, and that the tags are properly nested.
Previously, in order to customise the output, you needed to subclass HTML::StripScripts and override methods. Now, most customisation can be done through the Rules option provided to new().
The HTML document must be parsed into start tags, end tags and text before it can be filtered by this module. Use either HTML::StripScripts::Parser or HTML::StripScripts::Regex instead if you want to input an unparsed HTML document.