This page details a bunch of projects, either in process, or which could be done, or have been done. Initially this page will be populated with the projects that summer of code students graciously took the time to flesh out.
Project Task Pages
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
template
format, which is based on the way Kamaelia itself is designed.
A
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.
Each
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
- /Sketches/MH/pixFormatConversion/VideoSurface
- pixel format conversion (yuv<->rgb)
- Pygame surface based video display
- /Sketches/MH/dirac/*
- /Sketches/MH/Video/VideoSurface.py
- yuv4mpeg file parsing and generation
- Cropping and scaling of video frames
- /Sketches/MH/audio/WAV.py
- /Sketches/MH/audio/ToWAV.py
- wav file parsing and generation
- /Sketches/MH/MobileReframer/...
- 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
- /Code/Python/Kamaelia/Tools/Whiteboard/Whiteboard/...
- Some components are potential candidates for the mainline codebase
- /Sketches/MH/RTP/
- 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
Challenges
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
delivery.
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)
Tools
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 tutorial.
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.
(C) 2005 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved,
This is an ongoing community based development site. As a result the
contents of this page is the opinions of the contributors of the pages
involved not the organisations involved. Specificially, this page
may contain personal views which are not the views of the BBC.