objective modula 2 1.00 reference implementation
PubSubHubbub_Publisher 1.0
A simple, open, web-hook-based pubsub protocol & open source reference implementation more>>
PubSubHubbub_Publisher 1.0 is yet another excellent utility for everyone. It is actually a simple, open, server-to-server web-hook-based pubsub (publish/subscribe) protocol as a simple extension to Atom.
Parties (servers) speaking the PubSubHubbub protocol can get near-instant notifications (via webhook callbacks) when a topic (Atom URL) they're interested in is updated.
This tool works as follow:
- An Atom URL (a "topic") declares its Hub server(s) in its Atom XML file, via . The hub(s) can be run by the publisher of the Atom, or can be a community hub that anybody can use.
- A subscriber (a server that's interested in a topic), initially fetches the Atom URL as normal. If the Atom file declares its hubs, the subscriber can then avoid lame, repeated polling of the URL and can instead register with the feeds hub(s) and subscribe to updates.
- The subscriber subscribes to the Topic URL from the Topic URLs declared Hub(s).
- When the Publisher next updates the Topic URL, the publisher software pings the Hub(s) saying that there's an update.
- The hub efficiently fetches the published feed and multicasts the new/changed content out to all registered subscribers.
- The protocol is decentralized and free. No company is at the center of this controlling it. Anybody can run a hub, or anybody can ping (publish) or subscribe using open hubs.
- To bootstrap this, the publisher has provided an open source reference implementation of the hub (the hard part of the protocol) that runs on Google App Engine, and is open for anybody to use.
Requirements:
- Python
Il 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.
<<lessProcinfo NG 2.0.113 (C++ Implementation)
Procinfo NG is a ground-up rewrite of the procinfo program. more>>
The original program was written for Linux 1.0, and updated through 2.2. This version is for 2.6.
Enhancements:
- Updates were made to match what some Linux distributions have done to procinfo-18.
- Support for MSI and XEN interrupts were added.
- Some non-x86 architectures are handled.
- Assorted bugs and 80-character console nonsense were fixed.
libSpiff 0.7.2
libSpiff brings XSPF playlist reading and writing support to your C++ application. more>>
libSpiff uses Expat for XML parsing and CppTest for unit testing. libSpiff is the official reference implementation for XSPF of the Xiph.Org Foundation.
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.
Google Data Objective-C Client 1.1.0
Google Data Objective-C Client provides a framework and source code that make it easy to access data through Google Data APIs. more>>
The Google data APIs provide a simple protocol for reading and writing data on the web. Many Google services provide a Google data API.
Each of the following Google services provides a Google data API:
- Base
- Blogger
- Calendar
- Spreadsheets
- Picasa Web Albums
- Notebook
Additional services with Google data APIs that are not yet supported by the Objective-C Client Library:
- Code Search
- Google Apps Provisioning
Restlet 1.0.4
Restlet is a framework that brings the simplicity and efficiency of the REST architectural style to Java developers. more>>
Restlet project is composed of two parts, a neutral API and a reference implementation (Noelios Restlet Engine). It supports all REST concepts (resource, representation, data, connector, components, etc.) and is suitable for both client and server REST applications.
The server connectors provided are HTTP (via Mortbays Jetty or an adapter Servlet) and the client connectors are HTTP, JDBC, and SMTP (via JavaMail).
Mission
- Bring the simplicity and efficiency of the REST architectural style to Java developers
Restlet API
- Supports all REST concepts (resource, representation, data, connector, components, etc.)
- Suitable for both client and server Web applications
- Maplets support the concept of URIs as UI with advanced pattern matching features
- Chainlets filter calls to implement features such as logging and authentication
- Complete alternative to Servlet API with no external dependency (JAR < 60kb)
- Supports blocking and non-blocking NIO modes
Noelios Restlet Engine (NRE)
- Reference implementation of the Restlet API provided by Noelios Consulting (core JAR < 110kb)
- Server connector provided: HTTP (via Jetty connectors or Servlet connector)
- Client connectors provided: HTTP, JDBC, SMTP (via JavaMail)
- Supports logging (LogChainlet), authentication (GuardChainlet) and cool URIs rewriting (RedirectRestlet)
- Static files serving (DirectoryRestlet) with metadata association based on file extensions
- FreeMarker template representations as an alternative to JSP pages
- Automatic server-side content negotiation based on media type and language
z3c.formjs 0.2.0
This provides a Python API to common Javascript features for forms written with the z3c.form packages. more>>
z3c.formjs 0.2.0 with its excellent features will surely support your work. It can actually provide a Python API to common Javascript features for forms written with the 'z3c.form' packages. While the reference backend-implementation is for the JQuery library, any other Javascript library can be hooked into the Python API.
In the 'z3c.form' package, buttons are most commonly rendered as "submit" input fields within a form, meaning that the form will always be submitted. When working with Javascript, on the other hand, a click on the button often simply executes a script. The 'jsaction' module of this package is designed to implement the latter kind.
Enhancements: 7/18/2007
- Feature: Registration of public AJAX server calls via a simple decorator. The calls are made available via a special 'ajax' view on the original view.
- Feature: Allow registering of JS subscriptions via a decorator within the presentation component.
- Feature: Added a new CSS selector.
- Feature: Implementation of AJAX-driven widget value validation.
- Restructure: Completely overhauled the entire API to be most easy to use and have the most minimal implementation.
- Bug: The package is now 100% tested.
- Feature: Implementation of AJAX request handlers in forms.
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.
Objective Modula-2 1.00 (Reference Implementation)
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.
Objective Modula-2s 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.
Enhancements:
- This code is used to verify ideas and concepts which come up in the course of defining the language.
- It is in an early stage, incomplete and subject to frequent changes.
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.
Optimization Algorithm Toolkit 1.3
Optimization Algorithm Toolkit is a workbench and toolkit for developing, evaluating, and playing with optimization algorithms. more>>
The goal of this project is to deliver obscure-and-prevalent, old-and-new optimization algorithms from research literature to both research scientists and algorithm practitioners alike. Algorithms include biologically inspired approaches such as evolutionary algorithms (genetic algorithms), swarm algorithms (ants and particle swarm), and immune system algorithms.
Also included are more conventional approaches such as approaches inspired by physics including simulated annealing and extremal optimization. Problem domains include numerical function optimization, traveling salesman problems, and protein folding all with many standard benchmark instances taken from research literature.
A user-friendly graphical interface is provided to rapidly evaluate and compare algorithm and problem configurations, visualize algorithm behavior, and graph algorithm performance over time. A robust, modular, and extensible framework underlies the platform to facilitate the easy addition and modification of algorithms, addition of new problem domains and problem instances as well as facilitate more advanced algorithm experimentation.
The algorithm implementations are extensible and easily support modification and applicaition to varied problem domains. Please report any bugs, feature requests or include your own algorithms by accessing the services on the project home website. This is an open source project (released under the GPL) so the source code is available. The project was compiled with Java 1.5 (update 9).
Enhancements:
- This release includes many framework and graphical interface fixes, as well as a few new algorithms to play with.
OpenDMTP 1.2.8 (Java Server)
OpenDMTP is a highly configurable and extensible protocol for communicating with mobile devices. more>>
OpenDMTP is a highly configurable and extensible protocol for communicating with mobile devices.
OpenDMTP is particularly geared towards Location-based information (LBS) such as GPS, as well as temperature and other data collected in remote-monitoring devices. OpenDMTP is small, and is especially suited for micro-devices such as PDAs, mobile phones, and custom OEM devices.
We saw a need for a communications protocol that allowed high-latency, low-bandwidth (HL/LB) devices to transmit location data to monitoring-systems. Because these devices often have limited network connectivity, the protocol needed to be small and efficient. Example devices include mobile phones, PDAs, OEM micro-devices (alarm systems, temperature monitors, etc.), and more.
There are many mobile GPS tracking devices on the market today with their own closed proprietary protocols. Searching the web for open protocols revealed only a few available for transferring data (including GPS information) between devices. However these solutions are generally designed for non-mobile applications and/or lack some of the low-bandwidth, configurable, and extensible features that mobile applications require.
Main features:
- Small Footprint: Mobile devices typically have limited resources on which to run client code (ie. memory, processor speed). An open protocol designed with this in mind should be optimized to allow efficient implementation and should easily support devices such as PDAs, mobile phones, GPS monitoring devices, and other OEM micro-devices.
- Network Efficient: Mobile devices typically have limited network connectivity, and in some cases data communication can be quite expensive (e.g. satellite). Because of this the protocol needs to be efficient in its dialog between the client and server. The communication needs to be optimized such that the necessary information can be conveyed with a minimum number of bytes in the least amount of time.
- Bi-directional: Some devices can support two-way communication (ie. GPRS, or other socket based connections), while others may only support one-way communication (ie. some satellite communication systems). With this in mind, a protocol should be designed to support both duplex (two-way) and simplex (one-way) communication.
- Transport Media: Differrent mobile applications will have their own unique way of communicating data back to the server. Some may use GPRS, or socket based communication, others may use satellite communication, while still others may use other forms of wireless communication, such as BlueTooth. The design of the protocol should be able to encompass all such transport media types, regardless of the type of transport in use.
- Flexible Data Encoding: Most types of transport media allow for the transmission of binary encoded data. However, there may be some forms of media for which an ASCII encoded data packet is much better suited. A protocol designed with this in mind should be able to support both types of data encoding.
- Configurable Messages: Due to the broad range of data types used in mobile applications, the protocol should be flexible enough to define standard messages, yet still allow custom messages within the framework.
- Extensible: Not every mobile application is the same. Some require special handling and may have various types of inputs and outputs. A protocol designed for mobile applications should insure that the framework can be easily extended to incapsulate the specific needs of the device.
- Industry Compatibility: Having an open protocol insures better compatibility between different client devices and service providers.
- Reference Implementation: Having a reference implementation that showcases the major features of the protocol provides an easy starting point on which developers can add their own features and platform specific implementation without having to worry about how data gets from the client to the server.
OpenDMTP was specifically designed to suit all these needs, especially "Small Footprint" and "Network Efficiency". The typical data plan for GPRS communication, for instance, is usually 1Mb per month. OpenDMTP was designed to optimize packet encoding to allow the collection of GPS information packets once every 3 minutes, 24 hours a day, 30 days a month, and still stay under the 1Mb data plan limit.
While XML is very extensible, it fails the "Small Footprint" and "Network Efficiency" requirements. Thus, it was discounted as a viable protocol solution. Many mobile devices do not have the resources necessary to be able to provide full XML parsing functionality. And an XML packet may need to be several hundred bytes in length just to send a few bytes of actual data. This alone would make the solution cost prohibitive for high-cost transport media such as satellite.
OpenDMTP also includes a full-featured commercial quality reference implementation to jump-start development.
Enhancements:
- NEW: Minor optimizations made to message logging.
- FIX: Log file now properly displays account/device on client connection.
OpenSCADA Project 0.8.0 (Atlantis)
The OpenSCADA project aims to create a full-featured and state-of-the-art SCADA system. more>>
The OpenSCADA project was started in order to create a common standard for SCADA applications. This includes specifications, interfaces and reference implementations.
Enhancements:
- This release has many new features and enhancements to existing functionality.
- The interfaces and the reference implementation were cleaned up a little bit.
- The new upstream version of Utgard was added.
ISC DHCP 3.0.6
ISC DHCP provides a freely redistributable reference implementation of all aspects of DHCP. more>>
- A DHCP server
- A DHCP client
- A DHCP relay agent
These tools all use a modular API which is designed to be sufficiently general that it can easily be made to work on POSIX-compliant operating systems and also non-POSIX systems like Windows NT and MacOS.
The DHCP server, client and relay agent are provided both as reference implementations of the protocol and as working, fully-featured sample implementations.
Both the client and the server provide functionality that, while not strictly required by the protocol, is very useful in practice. DHCP server also makes allowances for non-compliant clients which one might still like to support.