This page details a bunch of projects, either in process, or which could be done, or have been done.
Google Summer of Code 2008 Projects (don't follow the PTP format at present)
Project Task Pages
Template PTP/Guide Existing PTPSPTPs to be written:Background on Project Task Pages
Unfortunately, this page is not as up to date as it could be, and will be replaced with something relatively lightweight when practical. In the meantime it is useful to give a flavour of projects Kamaelia has been useful and used for!
Project Task Pages (PTPs) take a standard format, and
recognise that feature dev, bug fix, and any other task have
commonalities. PTP's aim to capture this information to make it easier
to see what's going on, and assign priorities. PTP's as a result have a
, which is based on the way Kamaelia itself is designed.
project task page may cover a project as small as a single feature of a
single component of a single module, or something as large as an entire
application comprisig of several systems. The key aspect here is that
each of those subsystems would also have project task pages, as and
when they become necessary.
As a result Kamaelia development and management of components should naturally reflect the component system itself.PTPs to be fleshed out
project here will gain its own page as soon as practical - this is a
capture of current state. (This does mean also that there SHOULD be a
PTP for ch of the tools listed above)
- Kamaelia Macro - Timeshifting tools
- DVB Tools - Tools for timeshifting in a storage efficient, automated manner
- Database Tools for working with databases in Kamaelia (at present, very unclear what's sensible)
- Mobile Reframer
- Multicast RTP MPEG TS remultiplexer
- Video Cut Detector
- Component Integration Tasks - Small ad hoc tasks of documenting, reviewing and merging components into the mainline codebase
- pixel format conversion (yuv<->rgb)
- Pygame surface based video display
- yuv4mpeg file parsing and generation
- Cropping and scaling of video frames
- wav file parsing and generation
- rewritten UnixProcess component (possibly needs a rename?)
- Pipeline and Graphline that allows size limits to be set on inboxes
- SAX stream based parser
- Sequencer for running components in sequence
- File reader that rate limits by the destination inbox becoming full
- Some components are potential candidates for the mainline codebase
- Selector (made more responsive to requests)
- Multicast_transceiver (reduced CPU usage by using the Selector)
- ConnectedSocketAdaptor (minor mod to support multicast transceiver)
- RTPFramer and RTPDeframer
Related - It's worth noting that as Kamaelia matures in scope, it's
capabilities are beginning to branch out well beyond these challenges
- Lunch - The fact the world is becoming massively parallel and we need better tools to deal with this.
- Axon - Our toolset for making concurrency easier to work with
- Deliver - Tools and mechanisms for distributing and synchronising effectively a huge database of content
- Macro - tools for timeshifting, but also tools for delivering content via the broadcast chain.
- Share - Creation of tools for sharing that people can trust
- Tools to allow the audience to trust the content they recieve
- Tools to allow content creators to trust that their ability exploit their copyright will be kept intact
- P2P & Multicast joining
- Thins that aren't appropriate as project task pages here:
- Moore's Law Growing both sides of an equation doesn't help - The Dirac project is largely aimed at dealing with these, and is outside the scope of Kamaelia
- Open - This relates to the fact that open systems need to be able
to scale. This is inherently Kamaelia's core goal regarding online
Projects are to be labelled with tags to help classify and organise them. We've chosen this over having a predefined url based hierarchical structure as it gives greater flexibility and acknowledges the fact that projects will change in status and scope over time.
Possible tags to us include:
- Experimental (for stuff in /Sketches)
- Tool (typically the kind of thing that ends up in /Kamaelia/Tools)
- Example (pieces of code that exist to demonstrate functionality)
- Mainline (work affecting the main /Code codebase)
These are relatively substantial systems in their own right. Their development, and components driving their development are ongoing.
Summer of Code 2006 Project Ideas
Each of the ideas here have been fleshed out to some degree to or another and are considered useful to differing degrees. If you're looking for a project worth doing, these are worth looking at for ideas. Aside from anything else if we've added them here there's a good chance that they've had some serious thought behind them already, bootstrapping your idea!
The following list contains the aggregated projects grouped under like for like ideas. The order of projects here has no significance
One of the most interesting aspects of this list of projects is that many of them were proposed by undergraduate students, and all thought they could achieve these projects over a 3 month coding period, most of them after having done the MiniAxon
Completed Summer of Code 2006 Projects
In some cases these were exploratory, some were concrete, some were half way. All were useful for different reasons.