Csound is a programming language designed and optimized for sound
rendering and signal processing. The language consists of over 450
opcodes - the operational codes that the sound designer uses to build
"instruments" or patches.
Although there are an increasing number of graphical "front-ends" for
the language, you typically design and modify your patches using a word
processor. Usually, you create two text files - a .orc (orchestra) file
containing the "instruments," and a .sco (score) file containing the
"notes."
In Csound, the complexity of your patches is limited by your knowledge,
interest, and need, but never by the language itself. For instance, a
22,050 oscillator additive synthesizer with 1024 stage envelope
generators on each is merely a copy-and-paste operation. The same goes
for a 1 million voice granular texture!
Have you ever dreamed of sounds such as these? Well in Csound you can.
And in Csound these dreams can come true!
Redis is an open source, advanced key-value store. It is often referred
to as a data structure server since keys can contain strings, hashes,
lists, sets and sorted sets.
You can run atomic operations on these types, like appending to a string;
incrementing the value in a hash; pushing to a list; computing set
intersection, union and difference; or getting the member with highest
ranking in a sorted set.
In order to achieve its outstanding performance, Redis works with an
in-memory dataset. Depending on your use case, you can persist it either
by dumping the dataset to disk every once in a while, or by appending each
command to a log.
Redis also supports trivial-to-setup master-slave replication, with very
fast non-blocking first synchronization, auto-reconnection on net split
and so forth.
libmemcached is a C and C++ client library to the memcached server
(http://danga.com/memcached). It has been designed to be light on memory usage,
thread safe, and provide full access to server side methods.
A few notes on its design:
# Synchronous and Asynchronous support.
# TCP and Unix Socket protocols.
# A half dozen or so different hash algorithms.
# Implementations of the new cas, replace, and append operators.
# Man pages written up on entire API.
# Implements both modulo and consistent hashing solutions.
It also implements several command line tools:
memcat - Copy the value of a key to standard output
memflush - Flush the contents of your servers.
memrm - Remove a key(s) from the serrver.
memcp - Copy files to a memached server.
memstat - Dump the stats of your servers to standard output
memslap - Generate testing loads on a memcached cluster
Redis is an open source, advanced key-value store. It is often referred
to as a data structure server since keys can contain strings, hashes,
lists, sets and sorted sets.
You can run atomic operations on these types, like appending to a string;
incrementing the value in a hash; pushing to a list; computing set
intersection, union and difference; or getting the member with highest
ranking in a sorted set.
In order to achieve its outstanding performance, Redis works with an
in-memory dataset. Depending on your use case, you can persist it either
by dumping the dataset to disk every once in a while, or by appending each
command to a log.
Redis also supports trivial-to-setup master-slave replication, with very
fast non-blocking first synchronization, auto-reconnection on net split
and so forth.
psycopg2 is a PostgreSQL database adapter for the Python programming language.
It was written from scratch with the aim of being small, fast and stable. It
supports the full Python DBAPI-2.0 and is thread safe.
psycopg2 is different from the other database adapter because it was designed
for heavily multi-threaded applications that create and destroy lots of cursors
and make a conspicuous number of concurrent INSERTs or UPDATEs. Every open
Python connection keeps a pool of real (UNIX or TCP/IP) connections to the
database. Every time a new cursor is created, a new connection does not need to
be opened; instead one of the unused connections from the pool is used. That
makes psycopg very fast in typical client-server applications that create a
servicing thread every time a client request arrives.
R.V. Guha's rdfDB. Intended to be a simple, scalable, open-source
database for RDF. Written in C and based on top of the Sleepycat
Berkeley Database, it supports interrogation via TCP/IP sockets,
meaning integration is possible with any programming language.
rdfDB uses a high level SQLish query language. The data is modelled as
a directed labelled graph (RDF).
The goals of this project are to build a database that is capable of:
1. Supporting a graph oriented API via a textual query language ala
SQL.
2. Load/Reload an RDF file from a url into the database
3. Scalable to millions of nodes and triples.
4. Provide support for RDF Schemas.
5. Provide support for some basic forms of inferencing.
6. Provide both C and Perl access to the database.
7. The Perl philosophy applies : Simple things should be simple and
complex things should be possible.
While teaching a data structures course at University of California,
Irvine, I developed a program called GPERF that generates perfect hash
functions for sets of key words. A perfect hash function is simply:
A hash function and a data structure that allows
recognition of a key word in a set of words using
exactly 1 probe into the data structure.
The gperf.texinfo file explains how the program works, the form of the
input, what options are available, and hints on choosing the best
options for particular key word sets. The texinfo file is readable
both via the GNU emacs `info' command, and is also suitable for
typesetting with TeX.
The enclosed Makefile creates the executable program ``gperf'' and
also runs some tests.
Output from the GPERF program is used to recognize reserved words in
the GNU C, GNU C++, and GNU Pascal compilers, as well as with the GNU
indent program.
LICENSE: GPL2 or later
QB stands for Quick Binary. It's a PHP extension designed to enable faster
handling of binary data. It takes a function written in PHP and translate it
for a specialized virtual machine. The use of static type information leads
significantly higher performance than under PHP regular dynamic type system.
A PHP+QB function can run anywhere from five to twenty times faster than
regular PHP code. For even higher level of performance, one can compile PHP+QB
functions to native code (on supported platforms).
QB performs code translation on a per-function basis. It does not affect in
anyway code not specially marked. Interaction between PHP+QB functions and
regular PHP code is basically seamless. A key design objective of QB is to
let developers harness greater processing power than what baseline PHP offers
without the risk involved in adopting a brand new platform.
The Lemon program is an LALR(1) parser generator. It takes a context free
grammar and converts it into a subroutine that will parse a file using that
grammar.
Lemon is similar to much more famous programs Yacc and Bison. But lemon is
not compatible with either of them; there are several important differences:
- Lemon using a different grammar syntax which is less prone to
programming errors
- Lemon generates a parser that is faster than Yacc or Bison parsers
(according to the author)
- The parser generated by Lemon is both re-entrant and thread-safe
- Lemon includes the concept of a non-terminal destructor, which makes
it much easier to write a parser that does not leak memory
The libevent API provides a mechanism to execute a callback function when
a specific event occurs on a file descriptor or after a timeout has been
reached. Furthermore, libevent also support callbacks due to signals or
regular timeouts.
libevent is meant to replace the event loop found in event driven network
servers. An application just needs to call event_dispatch() and then add
or remove events dynamically without having to change the event loop.
Currently, libevent supports /dev/poll, kqueue(2), event ports, select(2),
poll(2) and epoll(4). The internal event mechanism is completely independent
of the exposed event API, and a simple update of libevent can provide new
functionality without having to redesign the applications. As a result,
Libevent allows for portable application development and provides the most
scalable event notification mechanism available on an operating system.
Libevent can also be used for multi-threaded applications.