473,703 Members | 2,344 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Kamaelia 0.4.0 RELEASED - Faster! More Tools! More Examples! More Docs! ;-)

Hi!
(OK, slightly silly subject line :)

I'm extremely pleased to say - Kamaelia 0.4.0 has been released!

What's New & Changed?
=============== ======

Kamaelia 0.4.0 is a consolidation, documentation and optimisation enhanced
release. Whilst there are a wide variety of new components, existing
functionality has been consolidated, and is now in use in a handful of
(beta) production systems.

Notable New Components
* Tools for Timeshifting Digital TV (DVB-T handling to be precise)
(These tools are only intended for use as legal under UK law,
you need to check locally if you can use them.)
* A software data backplane -
http://kamaelia.sourceforge.net/Introduction.html
has an example using this.
* Tools for piping data easily/trivially through external processes
* Tools for taking advantage of system optimisations allowing quiescent
behaviour. (both in terms of pygame & network based systems)
* Tools for using UDP

*** Kamaelia 0.4.0 requires the use of Axon 1.5 ***
*** (released at the same time as this release). ***

Also, virtually all components now have highly detailed documentation inside
their sourcefiles. A (large) subset of this is available here:
* http://kamaelia.sourceforge.net/Components.html

The examples have been duplicated onto the website, and are here:
* http://kamaelia.sourceforge.net/Cookbook.html

Our tutorial for helping getting started is here:
* http://kamaelia.sourceforge.net/MiniAxon/

This has now been battle tested by a good few dozen people, and we feel is a
good introduction to Kamaelia's approach, and others have also stated they
find it a good way of understanding generators too. (even if they're not
interested in Kamaelia)

New Examples
* Tools for using UDP & SingleServer

* A collaborative whiteboard "sketcher" which is both a server to other
whiteboards and/or a client to other whiteboards. (Due to changes, when
not in use CPU usage for these is as close to zero as it can be for any
software) This is also a good example of usage of the backplane
component.

This application is particularly nice to use in conjunction with a
tablet PC!

An overview of the sketcher can be found on our systems page:

* http://kamaelia.sourceforge.net/Systems.html
(see Collaborative Whiteboarding)

* Examples for using the tools for timeshifting including:

* Tuning into a TV channel on Freeview and recording it to disk
* Dumping a DVB multiplex transport stream
* Demultiplexing a prestored DVB multiplex

A system for grabbing a TV channel and it's now & next information, such
that this can allow the programmes to be captured and transcoding as
individual programmes for watching later.

This is the core of the BBC Macro system (an internal prototype) that
can be seen here:
* http://bbc.kamaelia.org/cgi-bin/blog/blog.cgi

An overview of the architecture can be found here:

* http://kamaelia.sourceforge.net/KamaeliaMacro.html

Essentially, this allows you to build your own space efficient PVR.

General overview of other large scale changes

Massively improved documentation across the board (no file left untouched).
This is all largely in the form of pydoc based documentation, a fair chunk
of it is available at
* http://kamaelia.sourceforge.net/Components.html

However the documentation in those files goes further than that, including
many, many more examples than are even at:
* http://kamaelia.sourceforge.net/Cookbook.html

*NOTE* Kamaelia 0.4.0 requires Axon-1.5.0 to run due to a number
of system optimisations which Kamaelia 0.4.0 takes advantage of.

Full release notes and change log:
* http://kamaelia.sourceforge.net/Kama...easeNotes.html

What Is Kamaelia?
=============== ==

See also: http://kamaelia.sourceforge.net/Introduction.html

GOAL: Kamaelia is a general component framework for
all programmers and maintainable development.
Write clear and simple snap-together components
using Unix Pipes for the 21st Century.

Kamaelia is a library of networking/communications components for
innovative multimedia systems. The component architecture is designed
to simplify creation and testing of systems, protocols and large scale
media delivery systems. A subset of the system has been tested on
series 60 mobile phones.

It is optimised for simplicity, such that people can get started very
rapidly, and such that maintainers can pick up the code of others
without misunderstandin gs.

It is designed as a /practical/ toolkit, such that you can build
systems such as:
* Collaborative whiteboards
* Transcoding PVRs for timeshifting TV
* Ogg Vorbis streaming server/client systems (via vorbissimple)
* Create Video players & streaming systems (for dirac).
* With subtitles.
* Simple network aware games (via pygame)
* Quickly build TCP & Multicast based network servers and clients
* Presentation tools
* A networked audio mixer matrix (think multiple audio sources over
network connections mixed and sent on to multiple locations with
different mixes)
* Look at graph topologies & customise the rules of display &
particle types.
..... Mix and match all of the above.

These are all real examples you can do today.

You can also do a lot of this *visually* using the new PipeBuilder
application in Tools.

Essentially if the system you want to build involves audio or moving
pictures, and you want to be able to make the system network aware,
then this should be quick and easy to do using Kamaelia. (If it isn't,
then a) it's a bug b) needs improving :-)

Oh, and due to things like the visual editor, the use of pygame in a
lot of examples, the use of dirac & vorbis, it's a lot of fun too :-)

It runs on Linux, Windows, Mac OS X with a subset running on Series 60
phones. (Linux is the primary development system)

Requirements
============

* Python 2.3 or higher recommended, though please do report any bugs
with 2.2.
* Axon (1.5 required)

Optional extras: (all available via the Kamaelia download page)
* vorbissimple (if you want to use the vorbis decode
component/examples)
* dirac bindings (again from kamaelia site) if you want to use the
dirac encode/decode components & examples). (And dirac of
course :-)
* python-dvb bindings

Axon, vorbissimple and python-dirac are separate parts of the Kamaelia
project, and available at the same download location - see below)

Platforms
=========

Kamaelia has been used successfully under both Linux, Windows and Mac OS
X (panther). A subset of Kamaelia has been successfully tested on Series
60 Nokia mobiles when used with the Axon SERIES 60 branch.

Where can I get it?
=============== ====

Sourceforge Download:

http://sourceforge.net/project/showf...kage_id=133714

Web pages are here:
http://kamaelia.sourceforge.net/Docs/
http://kamaelia.sourceforge.net/ (includes info on mailing lists)

ViewCVS access is available here:
http://cvs.sourceforge.net/viewcvs.py/kamaelia/

Tutorial for the core component/concurrency system:
* http://kamaelia.sourceforge.net/MiniAxon/

Project Motivations:
* http://kamaelia.sourceforge.net/Challenges/

Licensing
=========

Kamaelia is released under the Mozilla tri-license scheme
(MPL1.1/GPL2.0/LGPL2.1). See
http://kamaelia.sourceforge.net/Licensing.html

Best Regards,
Michael.
--
Michael Sparks, Senior Research Engineer, BBC Research, Technology Group
mi************@ rd.bbc.co.uk, Kamaelia Project Lead, http://kamaelia.sf.net/

This message (and any attachments) may contain personal views
which are not the views of the BBC unless specifically stated.

Jun 21 '06 #1
4 2163
Michael wrote:
Hi!
(OK, slightly silly subject line :)

I'm extremely pleased to say - Kamaelia 0.4.0 has been released!

........
Windows users might see problems with the attempt at importing libc.so.6
in the Axon Scheduler.

I changed the lines at line 44 of scheduler.py to something like this

try:
from ctypes import cdll
try:
libc = cdll.LoadLibrar y("/lib/libc.so.6")
except:
raise ImportError
sched_yield = libc.sched_yiel d
except ImportError:
def sched_yield(): pass

as I have ctypes, but no libc.so.6 I get a Windows error from the statement
libc = cdll.LoadLibrar y("/lib/libc.so.6")

This allows somethings to run eg

AxonVisualiser. py --navelgaze

but I'm not sure if the results are really unaffected by not having a
real yielder. The diagram appears, but doesn't seem to settle down.
--
Robin Becker
Jun 24 '06 #2
Robin Becker wrote:
Michael wrote:
Hi!
(OK, slightly silly subject line :)

I'm extremely pleased to say - Kamaelia 0.4.0 has been released!

..
whoops, forgot to say thanks as I think this is very nice work
--
Robin Becker
Jun 24 '06 #3
Robin Becker wrote:
Michael wrote:
I'm extremely pleased to say - Kamaelia 0.4.0 has been released! Windows users might see problems with the attempt at importing libc.so.6
in the Axon Scheduler.

I changed the lines at line 44 of scheduler.py to something like this

[ .. patch .. ]

Many thanks!

Yes, this issue has also been raised on the Kamaelia mailing list in the
past couple of days by Stefan Rank (he had a solution based on using
win32.Sleep(0,0 ) which calls SleepEx[1]). I'm planning on an Axon 1.5.1
release shortly to deal with this issue.
[1] http://www-128.ibm.com/developerwork...uxPower#N10364

I've got three options - I can either take the approach you've suggested,
the approach suggested on the list (which is to call win32.Sleep(0,0 ), or
actually remove this code from the scheduler completely.

I'm actually most tempted by the final option, largely because this code
was added in an earlier release as a way of making Axon & the scheduler
more system friendly. Since we've now effectively gone from a busy wait
loop to a scheduler that /can/ sleep waiting for threads [2] this means
that code can be a lot more system friendly by default.

[2] For example, rather than calling select with a timeout of zero in the
main thread, it's now called with a timeout of 5s in a thread, which
wakes up the scheduler when there's something to do. The pygame code
does the same trick...

That said, there is still whole chunks of code that busy run (such as the
physics simulation, so I'm torn. Do I take the code you put forward, the
solution put forward on the the list which I can't really check (since I
don't have a windows box to test with right now (I will on Monday though)),
or yank it out.

I suppose the "correct" thing is to put your solution into Axon 1.5.1 - to
get rid of the failure, and then to test Stefan's solution locally. My
hesitation with regard to Stefan's solution is simply the fact that I
don't tend to do a huge amount of coding under windows, and hence have
greater concern there as a result.

I'll get a release out with that fix either today or tomorrow, and then
roll up Stefan's more detailed fix into the 1.5.2 release along with
anything else that crops up over the next few days (hopefully nothing,
but you never know).
This allows somethings to run eg

AxonVisualiser. py --navelgaze

but I'm not sure if the results are really unaffected by not having a
real yielder. The diagram appears, but doesn't seem to settle down.
I don't think the AxonVisualiser would be particularly affected by
this - any wobbling you'll see there is probably more down to the
simple physics model the visualiser uses not having sufficient
dampening for the layout you see. (The physics model was apparently
originally written by Matt for a lava lamp simulator, but has turned
out to be incredibly useful as a simple layout tool :-)

A little bit of manual assistance to spread things out can sometimes
help it settle down though :)
whoops, forgot to say thanks as I think this is very nice work


You're very welcome. If you have any other suggestions/ideas for
improvement they'd be very welcome :-)

Personally, I think some of the most fun stuff right now being done by
new people with it is coming from 2 of our summer of code students. One,
Thomas, is working on 3D components (eg putting pygame components into a
PyOpenGL display).

The other is doing bittorrent related work, but has also written a webserver
and IRC bot - both pretty much from scratch (at the protocol level) over
the past month. (The other two students are working on encryption ideas for
tools for communications - eg encrypted VoIP type things)

Thomas's work (3D) is discussed here: http://thfsoc.blogspot.com/
Ryan's code (Bit Torrent, webserver/client, IRC bot) is sitting here:
* http://kamaelia.cvs.sourceforge.net/.../Sketches/RJL/

Thanks for the bug fix/kind words!

Regards,
Michael.

Jun 24 '06 #4
>> This allows somethings to run eg

AxonVisualiser. py --navelgaze

but I'm not sure if the results are really unaffected by not having a
real yielder. The diagram appears, but doesn't seem to settle down.


I don't think the AxonVisualiser would be particularly affected by
this - any wobbling you'll see there is probably more down to the
simple physics model the visualiser uses not having sufficient
dampening for the layout you see. (The physics model was apparently
originally written by Matt for a lava lamp simulator, but has turned
out to be incredibly useful as a simple layout tool :-)

A little bit of manual assistance to spread things out can sometimes
help it settle down though :)


Michael's right: the wobble is due to the low level of dampening in the
physics model and its discrete time step nature. Brief, non-methodical(!)
experiments with increased dampening do lead to a more stable
visualisation, but particles start to become 'sticky' and not always move
when it would be helpful for them to do so!

The physics code is not the fastest on the planet, so the number of
simulation cycles per second is quite low - therefore to enable the
particles to move quickly enough, the forces act quite strongly and the
dampening is quite low. You therefore occasionally see a slight wobbling
effect where a 'component' particle is being pulled and pushed quite
strongly by its inbox and outbox particles in many different directions at
once.

Matt
--
| Matt Hammond
| Research Engineer, Tech. Group, BBC, Kingswood Warren, Tadworth, Surrey,
UK
| http://kamaelia.sf.net/
| http://www.bbc.co.uk/rd/
Jun 26 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1281
by: Alexander DEJANOVSKI | last post by:
JyRetic 1.0RC3 was just released. (http://retic.sourceforge.net) Changes are (I might have forgotten some bug fixes): - Bug fix : Scheduled events didn't work if no parameter file was required - Improvement : Speeded up SQL source when there were several records to extract (~x10) - Improvement : since JDBC drivers return rowcount on query execution, there's no need
1
2580
by: Thomas Heller | last post by:
ctypes 0.9.1 released - Sept 14, 2004 ===================================== Overview ctypes is a ffi (Foreign Function Interface) package for Python 2.3 and higher. ctypes allows to call functions exposed from dlls/shared libraries and has extensive facilities to create, access and manipulate
0
1044
by: Michael Sparks | last post by:
Hi, I've already posted an announcement in comp.lang.python.announce about this, but for those who were at Europython and remember me giving a lightning talk on Kamaelia who don't read c.l.p.a - this is just a quick note to say that we've been given the go ahead to release it as open source and that it's now on sourceforge here: * http://kamaelia.sourceforge.net/
3
2282
by: Michael Sparks | last post by:
Hi, I'm posting a link to this since I hope it's of interest to people here :) I've written up the talk I gave at ACCU Python UK on the Kamaelia Framework, and it's been published as a BBC R&D White Paper and is available here: * http://www.bbc.co.uk/rd/pubs/whp/whp113.shtml
0
1092
by: Michael Sparks | last post by:
Hi, Apologies first to those outside the UK... Open Tech 2005* is a follow on from previous years' NotCon events which are community driven low cost events by geeks & developers for geeks & developers. (Much like Pycon & Europython but much more general in nature) Website: http://www.ukuug.org/events/opentech2005/ Where/When: Hammersmith, London, UK, July 23rd
1
1171
by: Fabio Zadrozny | last post by:
Hi All, PyDev - Python IDE (Python Development Enviroment for Eclipse) version 0.9.8.2 has been released. Check the homepage (http://pydev.sourceforge.net/) for more details. Details for Release: 0.9.8.2 Major highlights:
5
1506
by: LBT | last post by:
I have a window service written in VB.NET to scan directory and process file. During directory scanning (scheduled by timer using System.IO.Directory.GetFiles method), I can observe that the column "Handles" in "Task Manager" will increase gradually but will be dropped after a short while. But when CPU is busy (reach 100%), the number specified by "Handles" increases continuously until I have to manually stop the window service or the...
0
1163
by: Michael Sparks | last post by:
Hello, I'd like to invite you to our first Kamaelia Open Space event. Our theme is "Making Software like Lego through intuitive useful concurrency". Perhaps you want to learn to use Kamaelia, or you're already using it, or you're simply interested in code reuse or concurrency being actually
0
1869
by: Michael Sparks | last post by:
Hi, Just thought some people may be interested to hear that I've recently been looking at adding true concurrency into Kamaelia, by using Paul Boddie's pprocess as the core mechanism to allow us to run multiple Kamaelia systems in the same app. (Since we have thread based, and co-operative generator based components, process based is the next logical step) http://kamaelia.sourceforge.net/Home
6
3587
by: Bjoern Schliessmann | last post by:
Hello, I'm currently trying to implement a simulation program with Kamaelia and need a reliable TCP connection to a data server. From Twisted, I know that a method is called if the connection fails by whatever reason. I tried to get the same results with Kamaelia's TCPClient component. If I start up the component and try to connect to a closed TCP port it fails and sends a message out of the signal box, that's okay.
0
8761
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8672
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9123
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8969
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7876
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5923
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4689
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3125
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2070
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.