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

Discussion in 'Python' started by Michael, Jun 21, 2006.

  1. Michael

    Michael Guest

    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/Kamaelia-0.4.0-ReleaseNotes.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 misunderstandings.

    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/showfiles.php?group_id=122494&package_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
    , 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.
     
    Michael, Jun 21, 2006
    #1
    1. Advertising

  2. Michael

    Robin Becker Guest

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

    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.LoadLibrary("/lib/libc.so.6")
    except:
    raise ImportError
    sched_yield = libc.sched_yield
    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.LoadLibrary("/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
     
    Robin Becker, Jun 24, 2006
    #2
    1. Advertising

  3. Michael

    Robin Becker Guest

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

    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
     
    Robin Becker, Jun 24, 2006
    #3
  4. Michael

    Michael Guest

    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/developerwor...Linux.html?ca=dgr-lnxw09CPP2LinuxPower#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/kamaelia/Sketches/RJL/

    Thanks for the bug fix/kind words!

    Regards,


    Michael.
     
    Michael, Jun 24, 2006
    #4
  5. Michael

    Matt Hammond Guest

    >> 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/
     
    Matt Hammond, Jun 26, 2006
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Michael Sparks

    Kamaelia Released

    Michael Sparks, Dec 22, 2004, in forum: Python
    Replies:
    0
    Views:
    294
    Michael Sparks
    Dec 22, 2004
  2. Michael Sparks

    ANNOUNCE: Kamaelia 0.1.1 Released

    Michael Sparks, Mar 2, 2005, in forum: Python
    Replies:
    0
    Views:
    350
    Michael Sparks
    Mar 2, 2005
  3. Michael Sparks

    Kamaelia 0.1.2 Released

    Michael Sparks, Apr 13, 2005, in forum: Python
    Replies:
    0
    Views:
    319
    Michael Sparks
    Apr 13, 2005
  4. Michael Sparks

    ANN: Kamaelia 0.2.0 released!

    Michael Sparks, Aug 1, 2005, in forum: Python
    Replies:
    12
    Views:
    532
    Matt Hammond
    Aug 8, 2005
  5. Tim Golden

    RE: ANN: Kamaelia 0.2.0 released!

    Tim Golden, Aug 2, 2005, in forum: Python
    Replies:
    4
    Views:
    297
    Michael Sparks
    Aug 4, 2005
Loading...

Share This Page