This is a second go at a module to simplify installing die() and warn()
handlers, and to make such handlers easier to write and control.
For most people, this just means that if use Religion; then you'll get
noticeably better error reporting from warn() and die(). This is especially
useful if you are using eval().
Religion provides four classes, WarnHandler, DieHandler, WarnPreHandler, and
DiePreHandler, that when you construct them return closures that can be
stored in variables that in turn get invoked by $SIG{__DIE__} and
$SIG{__WARN__}. Note that if Religion is in use, you should not modify
$SIG{__DIE__} or $SIG{__WARN__}, unless you are careful about invoking
chaining to the old handler.
Religion also provides a TraceBack function, which is used by a DieHandler
after you die() to give a better handle on the current scope of your
situation, and provide information about where you were, which might
influence where you want to go next, either returning back to where
The apptools project includes a set of packages that Enthought has
found useful in creating a number of applications.
- apptools.appscripting: Framework for scripting applications.
- apptools.help: Provides a plugin for displaying documents and examples.
- apptools.io: Provides an abstraction for files and folders in a
file system.
- apptools.logger: Convenience functions for creating logging handlers
- apptools.naming: Manages naming contexts, supporting non-string data
types and scoped preferences
- apptools.permissions: Supports limiting access to parts of an application
unless the user is appropriately authorised (not full-blown security).
- apptools.persistence: Supports pickling and restoring the state of an
object.
- apptools.preferences: Manages application preferences.
- apptools.selection: Manages the communication between providers and
listener of selected items in an application.
- apptools.scripting: A framework for automatic recording of Python scripts.
- apptools.sweet_pickle: Handles class-level versioning, to support
loading of saved data that exist over several generations of
internal class structures.
- apptools.template: Supports creating templatizable object hierarchies.
- apptools.type_manager: Manages type extensions, including factories to
generate adapters, and hooks for methods and functions.
- apptools.undo: Supports undoing and scripting application commands.
This library is an implementation of the JSON-LD specification in Python.
JSON-LD is designed as a light-weight syntax that can be used to
express Linked Data. It is primarily intended to be a way to express
Linked Data in JavaScript and other Web-based programming environments.
It is also useful when building interoperable Web Services and when
storing Linked Data in JSON-based document storage engines. It is
practical and designed to be as simple as possible, utilizing the
large number of JSON parsers and existing code that is in use today.
It is designed to be able to express key-value pairs, RDF data,
RDFa data, Microformats data, and Microdata. That is, it supports
every major Web-based structured data model in use today.
The syntax does not require many applications to change their JSON,
but easily add meaning by adding context in a way that is either
in-band or out-of-band. The syntax is designed to not disturb already
deployed systems running on JSON, but provide a smooth migration
path from JSON to JSON with added semantics. Finally, the format
is intended to be fast to parse, fast to generate, stream-based and
document-based processing compatible, and require a very small
memory footprint in order to operate.
mercurial-server gives your developers remote read/write access to centralized
Mercurial repositories using SSH public key authentication; it provides
convenient and fine-grained key management and access control.
All of the repositories controlled by mercurial-server are owned by a single
user (the "hg" user in what follows), but many remote users can act on them,
and different users can have different permissions. We don't use file
permissions to achieve that - instead, developers log in as the "hg" user
when they connect to the repository host using SSH, using SSH URLs of the
form "ssh://hg@repository-host/repository-name". A restricted shell prevents
them from using this access for unauthorized purposes. Developers
are authenticated only using SSH keys; no other form of authentication is
supported.
To give a user access to the repository, place their key in an
appropriately-named subdirectory of "/usr/lcoal/etc/mercurialserver/keys"
and run "refresh-auth". You can then control what access they have to what
repositories by editing the control file
"/usr/local/etc/mercurialserver/access.conf", which can match the names of
these keys against a glob pattern.
For convenient remote control of access, you can instead (if you have the
privileges) make changes to a special repository called "hgadmin", which
contains its own "access.conf" file and "keys" directory. Changes pushed to
this repository take effect immediately. The two "access.conf" files are
concatenated, and the keys directories merged.
Pycerberus is a framework to check user data thoroughly so that you can
protect your application from malicious (or just garbled) input data.
* Remove stupid code which converts input values: After values are
validated, you can work with real Python types instead of strings -
e.g. 42 instead of '42', convert database IDs to model objects
transparently.
* Implement custom validation rules: Writing custom validators is
straightforward, everything is well documented and pycerberus only
uses very little Python magic.
* Focus on your value-adding application code: Save time by
implementing every input validation rule only once, but 100% right
instead of implementing a dozen different half-baked solutions.
* Ready for global business: i18n support (based on GNU gettext) is
built in, adding custom translations is easy.
* Tune it for your needs: You can implement custom behavior in your
validators, e.g. fetch translations from a database instead of using
gettext or define custom translations for built-in validators.
* Use it wherever you like: pycerberus is used in a SMTP server, trac
macros as well as web applications - there are no dependecies on a
specific context like web development.
Celluloid::IO provides an event-driven IO system for building fast, scalable
network applications that integrates directly with the Celluloid actor library,
making it easy to combine both threaded and evented concepts. Celluloid::IO is
ideal for servers which handle large numbers of mostly-idle connections, such as
Websocket servers or chat/messaging systems.
Celluloid::IO provides a different class of actor: one that's slightly slower
and heavier than standard Celluloid actors, but one which contains a
high-performance reactor just like EventMachine or Cool.io. This means
Celluloid::IO actors have the power of both Celluloid actors and evented I/O
loops. Unlike certain other evented I/O systems which limit you to a single
event loop per process, Celluloid::IO lets you make as many actors as you want,
system resources permitting.
Rather than callbacks, Celluloid::IO exposes a synchronous API built on duck
types of Ruby's own IO classes, such as TCPServer and TCPSocket. These classes
work identically to their core Ruby counterparts, but in the scope of
Celluloid::IO actors provide "evented" performance. Since they're drop-in
replacements for the standard classes, there's no need to rewrite every library
just to take advantage of Celluloid::IO's event loop and you can freely switch
between evented and blocking IO even over the lifetime of a single connection.
gFTP is a free multithreaded FTP and SFTP client for Unix-like systems.
It has the following features:
Distributed under the terms of the GNU Public License
Written in C, has a text interface and a GTK+ 2.x interface
Supports the FTP, FTPS (control connection only), HTTP, HTTPS, SSH, and FSP
Multithreaded to allow for simultaneous downloads
File transfer queues to allow for downloading multiple files
Bookmarks menu to allow you to quickly connect to remote sites
Supports downloading entire directories and subdirectories
Extensive connection manager with FTP and HTTP proxy server support
Supports resuming interrupted file transfers
Supports caching of remote directory listings
Supports connecting to a FTP server via command line parameters
Supports associating icons with particular file extensions in the list boxes
Sorting capabilities in the file list boxes
Can restrict files in the list boxes to a particular file specification
Supports viewing and editing of local and remote files
Allows for passive and non-passive file transfers
Supports FXP file transfers (file transfer between 2 remote servers via FTP)
Eliminates buffer overruns from malicious FTP sites
This project aims to reimplement the game engine of Theme Hospital, and be
able to load the original game data files. This means that you will need
a purchased copy of Theme Hospital, or a copy of the demo, in order to use
CorsixTH. After most of the original engine has been reimplemented, the
the project will serve as a base from which extensions and improvements to
the original game can be made.
At the moment, game assets (graphics, sounds, levels, translations, etc.)
are loaded from the original game files. Therefore, you will require a
pre-existing Theme Hospital install in order to use CorsixTH. If you've
got a copy of the original game disk lying around, then great -- copy the
HOSP folder (which should contain directories called Data, QData, Levels,
etc.) from the root of the CD to somewhere on your hard drive, and use
this for the theme_hospital_install setting later. If you are unable to
acquire the full game data files, then the demo can be downloaded easily
and used instead (though the demo only has one level, and lacks most of
the management screens).
Legends is a fast-paced first-person-perspective online multiplayer game
released as freeware (software license). The game is designed to take
advantage of the beautiful environments available from the Torque engine it is
based on, while still offering the breakneck pacing and variety of styles
available from such classics as Quake and Tribes.
Gameplay is not the strafe-strafe-jump-strafe-shoot-strafe-run-like-hell style
a lot of games espouse; the addition of a jetpack adds a third dimension of
mobility that makes skill, forethought, and restraint necessities to winning.
Team sizes are ideal between 10 and 15 on each side, and the network code
allows 56k upwards to play smoothly. Game type offerings range from the
classic Capture the Flag, Deathmatch and Duel to our own new types, e.g..
'War'.
Plenty of maps are provided by us, but the beauty of this game is its
customization possibilities. Mission creation has never been easier, with a
stable, full-featured editor integrated into the game engine itself. Skins,
models, and effects can all be modified by the end-user with commonly
available tools. The game has an Autodownload feature which means you never
have to leave the game to join new user created Client-Side and Server-Side
missions.
Liquid War is a unique multiplayer wargame. Its rules are truely
original and have been invented by Thomas Colcombet. You control
an army of liquid and have to try and eat your opponents. A single
player mode is available, but the game is definitely designed to
be multiplayer, and has network support.
When playing Liquid War, one has to eat one's opponent. There can
be from 2 to 6 players. There are no weapons, the only thing you
have to do is to move a cursor in a 2-D battlefield. This cursor
is followed by your army, which is composed by a great many little
fighters. Fighters are represented by small colored squares. All
the fighters who have the same color belong to the same team. One
very often controls several thousands fighters at the same time.
And when fighters from different teams meet, they eat each other,
it is as simple as that.
Note: If the game crashes this might resolve it:
Inside liquidwar, go to options->rules->advanced and change
Algorithm from "Assembly" to "Standard C"
See also the "ASM" option in the port build options.