july 2008
ZIG 2.0.0
ZIG is a client-server game networking engine. more>>
From the standpoint of ZIG, the graphics renderer, the sound engine and the input handler are all extensions you must provide. You will be able to plug your Allegro, SDL, DirectX, OpenGL etc. stuff into ZIG with ease. ZIG is a cross-platform C/C++ library which depends only on HawkNL versions 1.7 beta 1 or later.
Enhancements:
- This release brings about two years of bugfixes and enhancements, plus documentation rewritten from scratch.
- It includes SCTP-like transport of multiple message streams through a single ZIG client-server connection.
- Each stream enforces a message ordering that is independent of other streams.
- The ZIG streams also allow you to control bandwidth use (if you want to) and to mix reliable and unreliable messages on the same stream.

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
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
FTwall 2.02
FTwall is short for Fast Track traffic Firewall, a P2P traffic filtering script, for Kazaa blocking. more>>
Ftwall-2 is an updated version of the original ftwall-1 software which adds new P2p protocols to the set it can control.
Ftwall-2 is an add-on for linux firewalls that allows the control of "Fast Track" peer-to-peer traffic (such as is used by "Kazaa" and its derivatives), WinMX and others using the OpenNAP protocol.
It is designed to block network traffic from P2P client applications running in the "home" (or "green") network from making access to any peers on the public internet. It is designed primarily for use in networks where the security reigme allows "open access" for outbound connections and "tightly limited" access for inbound ones. Ftwall-2 can be used in networks like this to prevent outbound P2P access from the supported protocols, hence restricting illegal file downloads and uploads.
A Fast track "home network" client that establishes an "outbound" connection is (worryingly) immediately available to accept inbound connections through the established TCP/IP socket - even if the gateway firewall blocks all in-bound connections via "normal" TCP/IP and UDP mechanisms. This is a kind of limited "tunnelling" and gives rise to a number of concerns. Other P2P applications and protocols present similar security challenges. Ftwall solves this (and other) problems for the protocols it understands.
Version 1 of ftwall controlled the Fast Track protocol only (Kazaa et al).
Version 2 of ftwall (the version discussed on this page) adds logic to allow blocking of traffic from WinMX and OpenNap clients using a mechanism based on DNS name wildcards. One simple example is the control of WinMXs native protocol which can be blocked by preventing access to IP addresses resolved from any domain name that ends "winmx.com". OpenNAP is similarly controlled using DNS wildcards to "train" ftwall. See the man page (etc) for these new features by following the links at the bottom of the page.
FTwall-2 runs on Linux-based firewalls using kernel 2.4 (tested with 2.4.20) or later and iptables (test with version 1.2.6). This combination of version numbers is the current set employed by RedHat 8.0 - which is the system on which the software has been developed. The software has also been tested briefly on RedHat 9 and Fedora - but I am awaiting more in-depth news of these and other Linux distributions.
FTwall-2 runs well on the "ipcop" firewall, version 1.3.0 (GPL) with the QUEUE target and string match modules added manually. I believe that it will similarly run on Smoothwall 2 (GPL) although I have not tested this. It will NOT run on Smoothwall 1.0 since this is an "ipchains" based firewall, not an "iptables" one.
FTwall-2 has been tested with the following P2P client applications:
Kazaa 2.1.1, 2.5-beta2, 2.5.1
Kazaa Lite 2.0.2, K++ 2.4.3
iMesh 4.1 build 132, 4.2 build 138
Grokster 1.7
WinMX 3.31
Version restrictions:
- Ftwall requires Linux kernel version 2.4, equipped with "iptables" and the "QUEUE" target. The "ip_string" match module of iptables is desirable, but not required.
- Ftwall works with the "current" version of the Fast track, WinMX and OpenNAP network protocols at the time of writing (July 2004). It is possible that it will need to be re-worked if the protocols are changed in future.
- Ftwall does not block the "SOCKS PROXY" connection option of FastTrack. For a complete lock-down, the firewall must block this style of traffic.
PieSpy 0.4.0
PieSpy is an IRC bot that monitors a set of IRC channels. more>>
PieSpy has also been used to visualize Shakespearean social networks.This page got slashdotted on 11 March 2004, with the site getting 250,000 hits per hour. Thanks to Notnet for making sure it all stayed alive!
PieSpy was presented at the Information Visualization conference (IV04) in July 2004. Read the full paper online. It has also appeared in Computer Weekly, ct magazine, and I was interviewed live on BBC Radio Kent.
Enhancements:
- Now tracks nickname changes. Generates images five times faster. Removes formatting and colors from messages. The source code has been refactored to make it easy to add new InferenceHeuristics, which are used to work out who is talking to whom - if you create any good ones, let me know! The config file lets you apply different weightings to each InferenceHeuristic.
IP*Works! 6.0.2008
IP*Works! is a comprehensive suite of more than 40 native Linux class libraries for Internet development. more>> <<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
ferrisfuse 0.1.0
ferrisfuse is a FUSE module for mounting libferris filesystems through the Linux kernel. more>>
About libferris
In non technical terms libferris makes the file system and other hierarchical storage systems easier to use. For the geeks out there, libferris is a virtual file system (VFS) that runs in the user address space. The FAQ contains entries related to installation, configuration and the usage of libferris.
As of July 2005 libferris can mount many interesting things ranging from a filesystem from your local Linux kernel through to LDAP, Evolution, PostgreSQL, dbXML, and RDF. To get an impression of the current capabilities of libferris mounting see the plugins/context directory of the lastest release. New things to mount are always being added.
Other than mounting things as a filesystem, the other core concept of libferris is extraction of interesting metadata from your libferris filesystems. This means that simple things like width and height of an image file become first class metadata citizens along with a files size and modification time. The limits on what metadata is available extend far beyond image metadata to include XMP, EXIF, music ID tags, geospatial tags, rpm metadata, SELinux integration, partially ordered emblem categories and arbitrary personal RDF stores of metadata.
Though some consider the last point of purely academic interest the end result is that you can add metadata to *all* libferris objects even those you only have read access too, for example, you can attach emblems to this website just as you would a normal file. The metadata interface gives all metadata from file size to digital signature status information equal standing. As such you can sort a directory by any metadata just as easily as you would ls -Sh to sort by file size. Sorting on multiple metadata values is also supported in libferris, you can easily sort your files by mimetype, then image width, then modification time with all three pieces of metadata contributing to the final directory ordering.
Late in 2004 extensive support for both fulltext and metadata indexing was added to libferris. This means you can supply queries against the contents or metadata of any libferris accessable object and have the results returned as a virtual filesystem. With the above mentioned metadata available for searching, finding your files can be done in many different ways instead of being forced to generate fixed directory trees using part of a file collections semantics as directory names. The metadata and virtual filesystem play together here allowing you to geospatially tag both your digital pictures, trip plans, and relevent websites and recall these objects in a single virtual directory no matter what their path or URL may be.
There is also a Samba VFS module which allows you to expose a libferris filesystem as a Samba share. Kfsmd uses the inotify kernel interface to allow libferris to watch changes made to your kernel filesystem by non libferris applications and update its indexes appropriately. Ferriscreate provides a command line and GTK+2 application for creating "new files" with libferris. With this you can create a new db4 database, dbXML database or fulltext index just as easily as you can make a regular file.
The ego filemanager is a GTK+2 interface built on top of libferris. It provides GTK treeview , gevas/edje and gecko based interfaces and makes extensive use of libferris clients to provide its functionality.
If you have a project you wish to use libferris with and want extensions made dont hesitate to contact one of the developers to arrange consulting.
For the geeks out there, libferris is a virtual file system (VFS) that runs in the user address space. At the moment libferris is a shared object that each application can dynamically link to in order to see the file system through a nicer abstraction.
New additions to the XML module allow for data to be converted from one format to another by the VFS for you. To copy data to an XML file:
fcreate --create-type=xml --rdn=2.xml root-element=fred /tmp
gfcp -av Makefile.am --dst-is-dir /tmp/2.xml/fred
To copy data to a db4 file
fcreate --create-type=db4 --rdn=2.db /tmp
gfcp -av Makefile.am --dst-is-dir /tmp/2.db
Ferris presents a C++ interface that makes heavy use of the STL and IOStreams. Currently ferris has two main internal abstractions: Context and Attribute. A context is much like a traditional file or directory in a file system, the major differences being that a context can have both byte content (like a file) and subcontexts (like a directory). An attribute is a chunk of metadata about a context. Contexts can have many attributes.
Some attributes may be large, for example a base 64 encoded version of the contexts content (133% context size). On the other hand an attribute can be small, for example the file size is exposed as an attribute.
Access to all contexts and attributes is performed by first requesting either an IStream or IOStream for that context or attribute. In this way the same context/attribute can be open many times at the same time, just like normal kernel based IO.
Ferris uses Loki from "Modern C++ Design" by Alexandrescu. Most objects use automatic garbage collection based on the SmartPtr template class from Loki. Where possible objects in ferris use a FerrisRefCounted policy to provide COM like intrusive reference counting. This style is used for Context, Attribute and special wrappers of IOStreams that are provided. IOStreams are wrapped to provide a more flexible API than could be offered using references to IOStreams.
There are also new stream classes provided, for example NullStream and LimitingStream. Templates are provided to make SmartPtrs to standard IOStreams act just like the underlying stream would, for example, one can have SmartPtr ss; ss >> stringObj; and does not have to dereference the SmartPtr to use standard IOStreams extractors or inserters.
Ferris uses GModule from glib2 to dynamically load both context and attribute classes at run-time. This way resources are conserved until they are needed. The native file system context is statically linked to ferris at present. When loading either contexts or attribute classes ferris uses a double dispatch factory method. Put simply this means that for each plugin there are two libraries, one that tells ferris if the main one really needs to be loaded or not. Using this scheme ferris can load all the meta factory classes at any time and use these very small meta factories to check if the main factory can create objects that are going to be useful.
This scheme is of great use for attribute classes. Attribute classes take a context and can "generate" attributes from the context. An example of this sort of class would be a MD5 or Base64 attribute. Both can be generated from the base context. More interesting attributes are PCM audio and RGBA-32bpp image data. By using the double dispatch factory ferris can handle a great deal of attribute generators and load them on demand.
Ferris currently can decode mp3, read id3 tags, decode many image formats and break some animation formats into frames. This makes ferris a solid starting point for multimedia applications.
Ferris will automatically mount sub file systems for you. Examples of a sub file system include a Berkeley database or XML file. For example it is possible to read a context such as /tmp/myxml.xml/mynode. Using this automatic mounting the differences between storage formats effectively disappear. To a ferris enabled application loading data from a native disk file, a Berkeley database, and XML file, or mbox file appear to be the same. This allows the user of the application to choose the correct storage for the data at hand.
It is planned to move to a microkernel architecture in Version 2.1 of ferris. I choose 2.1 so that ferris does not fall into version 2 syndrome.
Enhancements:
- Many changes were made to better support rsync(1).
- Extended Attribute support was greatly improved.
- write() now also updates mtime.
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";
}
Jikes 1.22
Jikes is a Java compiler that translates Java source into bytecoded instruction sets more>>
You may wonder why the world needs another Java compiler, considering that Sun provides javac free with its SDK. Jikes has five advantages that make it a valuable contribution to the Java community:
* Open source. Jikes is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative.
* Strictly Java compatible. Jikes strives to adhere to both The Java Language Specification and The Java Virtual Machine Specification as tightly as possible, and does not support subsets, supersets, or other variations of the language. The FAQ describes some of the side effects of this strict language conformance.
* High performance. Jikes is a high performance compiler, making it ideal for use with larger projects.
* Dependency analysis. Jikes performs a dependency analysis on your code that provides two very useful features: Incremental builds and makefile generation.
* Constructive Assistance. Jikes strives to help the programmer write better code in two key ways. Jikes has always strived to provide clear error and warning text to assist the programmer in understanding problems, and now with release 1.19 Jikes helps point out common programming mistakes as documented in Effective Java.
Abridged from a FAQ entry which was adapted from some material by Lou Grinzo for an article he wrote.
The fact that Jikes is a high-performance, highly compatible Java compiler that can be used on almost any computing platform makes it an interesting program and worth investigating for almost any Java programmer. But Jikes is also notable because it lies at the center of two events: the adoption of open source philosophy and practice by large corporations, and the continued growth of Java for Linux.
Its worth pointing out that Jikes is not, and is not intended to be, a complete development environment -- it is simply a command line compiler. It should not be considered a replacement for more complete tools, such as Source Navigator or IBMs VisualAge for Java which provide sophisticated graphical IDEs (Integrated Development Environments).
The Jikes compiler was released in binary form in April 1997 on the IBM alphaWorks site. Jikes for Linux was released on 15 July 1998. The response was overwhelming -- Jikes had more downloads in the three months after the announcement than in the fifteen months before the announcement.
Release of Jikes for Linux was soon followed by requests to open up the source. Many notes and comments from users suggested this would be a good idea. The source was released under a liberal license in December 1998 to make a very visible demonstration of IBMs commitment to open standards and to Java Technology, to make Jikes more reliable and accessible, to encourage more widespread use of Java Technology, to encourage standardization of Java Technology, and to gain some experience actually running an open source project. This marked the start of one of IBMs first efforts in the open source arena.
The original alphaWorks version of Jikes was written by Philippe Charles and Dave Shields of the IBM T. J. Watson Research Center. Since the release of the source they have continued to work on the compiler as contributors; however recently have officially been moved on to other projects within IBM. Today there are no IBMers who work on Jikes as part of their job description. Jikes survives today soley based on the free time contributions of members of the open source community.
The source code is available under IBMs Public License, which has been approved by the OSI (Open Source Initiative) as a fully certified open source license. The project provides access to the complete CVS development tree, which includes not only Jikes, but also the source for the Jacks Test Suite and the Jikes Parser Generator used to build Jikes. Jikes is included in many Open Source Operating Systems. The Jacks Test Suite is a replacement for the Jikestst package.
Beijing 2008 Icons for Linux -
This iconset will help you customize your projects more>> Along came 2008 and one of the most expected and vivid events of this year is clearly the Olympics in Beijing. The preparation for this event is in full course and we are trying not to lag behind. Chinese designer Han Meilin drew the symbol or rather symbols of Fuwa. And our TurboMilk designer Olesia Kozlova who highly praised the style of the Olympics produced icons for these symbols.
Logo and Fuwa characters copyright The Beijing Organizing Committee for the Games of the XXIX Olympiad.
NOTE: Free to use for personal non-commercial purposes<<less
Getopt::Clade 0.0.1
Getopt::Clade is a Perl module with command-Line Argument Declaration Engine. more>>
This module is a placeholder for the real Getopt::Clade module. The module was supposed to be released by July 2005, to support the book "Perl Best Practices". Unfortunately, due to a series of family medical crises, the release of the module has been delayed, probably to early September 2005.
I sincerely apologize for any inconvenience this delay may cause. If you are looking for an alternative Getopt:: module, you may like to consider Getopt::Declare or Getopt::Euclid.
Genoa Active Message MAchine 13-July-2007
Genoa Active Message MAchine is a low-latency, high-throughput driver wrapper for the Linux kernel. more>>
Genoa Active Message MAchine runs parallel to the IP stack and is designed for LANs only.
Main features:
- A low latency, high throughput communication system for clusters of PCs
- Supports both single and dual CPU processing nodes (Intel IA-32 or x86_64)
- Runs on Gigabit Ethernet
- SPMD parallel processing with message passing
- Can run IP traffic when not in use
- Good programmability thanks to fairly high abstraction level
- Reliable thanks to mechanisms for retransmission of missing packets
- Implemented as a network device driver for Linux 2.6, and released under GNU GPL
Network Of Workstations (NOWs) and clusters of PCs interconnected by modern, industry-standard LAN fabrics (Gigabit Ethernet, Myrinet, SCI) and running the Linux operating system, have became an attractive and cost-effective architecture for parallel and distributed applications. The usual drawback of a standard PC cluster is the poor performance of the support to inter-process communication over the interconnect. Current implementations of industry-standard communication primitives, APIs, and protocols, usually show high communication latencies and low communication throughput.
We have developed a system for inter-process communication, called the Genoa Active Message MAchine (GAMMA). GAMMA runs on Linux clusters of PCs with Intel IA-32 processors (Intel Pentium, AMD K6, and superior models), or x86_64 processors (AMD Athlon64, AMD Opteron, Intel EMT-64), networked by a Gigabit Ethernet.
The core of GAMMA is a custom Linux network device driver, which operates the Network Interface Card (NIC). The GAMMA driver delivers low latency, high throughput communication services based on Active Ports, a mechanism derived from Active Messages. Both point-to-point and broadcast communications are provided. Broadcast communication exploits the Ethernet broadcast directly.
The GAMMA driver is able to manage standard IP traffic as long as no parallel job is running. Therefore, all IP services are up and running whenever the cluster is not in use by any parallel job.
The communication mechanisms implemented in the GAMMA driver are made available to application writers through the GAMMA user library. The GAMMA library provides support to application launch, process grouping, point-to-point/broadcast communications based on the Active Ports mechanisms, and some collective routines (barrier synchronization, and broadcast).
GAMMA provides two levels of QoS. The lower one, corresponding to the fastest communications, is a best-effort service. With this service, network congestion and ``hot spots may cause the receiver NIC or even the LAN switch to loose packets by overrun. The other QoS level provides flow-controlled communication, ensuring reliability up to hardware faults, at a negligible performance penalty.
Installing the GAMMA driver requires only two small and marginal patches to the original Linux kernel. The Linux kernel extended by the GAMMA driver must be installed on each PC in the cluster.
A porting of MPI atop GAMMA is available, called MPI/GAMMA.
Mandriva Linux 2007.1 / 2008 Beta 1
Mandriva Linux is the operating system of choice for users keen on all things advanced. more>>
Mandriva Linux 2007 is also more easy-to-use, more user-friendly and more powerful. It is ideal for the needs of all customers, from the beginner to the SOHO user.
Whats New in 2007.1 Stable Release:
- Mandriva is proud to announce the release of its brand new distribution that provides up-to-date and freshly released open source software: Mandriva Linux 2007 Spring. Mandriva Linux 2007 Spring integrates the latest innovations in the fields of office suite applications, Internet, multimedia and virtualization technologies. Not only does Mandriva Linux 2007 Spring bring to users the most advanced Linux operating system, it also includes some very special new features: WengoPhone, Google Picasa and Google Earth, Drakvirt...
Whats New in 2008 Beta 1 Development Release:
- The first beta of Mandriva Linux 2008, code-named Cassini, is now available. This beta is available only as a 3-CD Free edition (containing no non-free software or drivers) for the x86-32 architecture, with a traditional installer. Future betas will be available in One live / install CD hybrid editions with proprietary drivers, and in x86-64 variants." Whats new? " Default NTFS write support; AppArmor; modular IDE drivers; new devicescape wireless stack; Compiz Fusion replaces Beryl; Linux kernel 2.6.22, GNOME 2.19, KDE 3.5.7 and 4 preview, Xfce 4.4.1....
EventCal 0.42
EventCal project is a calendar class that allows events to be managed and output to HTML in daily, weekly, and monthly views. more>>
Classes
class Calendar
Methods defined here:
__init__(self, language=en)
Creates an empty event list and sets the language
add(self, event)
cell(self, type=free, s=)
dayview(self, day, month=1, year=2007, smallify=False)
Generates a two-column table for the specific day with one column
holding the hours and the other holding any events
eventlist(self)
Generates an unordered list with all events listed
monthview(self, month=1, year=2007, smallify=False)
setlang(self, language)
Sets the months and week day names to the appropriate language
weekview(self, day, month=1, year=2007, smallify=False)
class Event
Events are only specific down to the hour. start and length are hours.
Methods defined here:
__cmp__(self, other)
Comparison method. Returns true if the day, month and year match
__init__(self, message, start, length, day, month, year)
__repr__(self)
Functions
am_pm(x)
Convert 24hour integer to 12hour string i.e. 13 becomes 1pm
geteventdayname(event)
interval(startHour, length)
Returns a string: startHour(am/pm) to startHour+length(am/pm). 12 noon is replaced with noon
shiftday(day)
Shifts from Sun-Sat to Mon-Sun
today(smallify=False)
weekday(day, month, year)
Returns the day of the week from 0-6 starting from Monday
Data
daynames = [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
mdays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
months = [January, February, March, April, May, June, July, August, September, October, November, December
Enhancements:
- All strings were converted to use Unicode.
- Spanish translations for day and month names were added.
- __getattr__ was replaced with properties.
- String replacer body were replaced with calls to re.sub so the $ can be escaped with a backslash.
- The first week of monthview was fixed to properly replace format.
- About 20 lines of code that generated the first week in the monthview were removed.