August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
Kamaelia & Google's Summer of Code
Kamaelia's aim is to make it easier and more fun to make software, quickly and maintainably in a way that makes concurrency (eg multicore) easy and fun to work with. The more code that is multicore friendly, the easier we make it for everyone.
Don't know python? Read this! Want an overview of how we handle mentoring? Read this!]
IMPORTANT: As a general point (whatever org you're interested in), pick (or create) a project idea you're passionate about or think will be fun that fits with the mentor org. You'll be doing this all summer, and we all want you to have fun, as well as create something cool. You might think "oh that's low priority", or "they wouldn't be interested in my idea for", well, if you're passionate about an idea and it "fits", then you being passionate becomes as important as the project!
Our primary pages for each year are listed below:
Please don't prejudge yourself as "I can't do that, I don't have the
right experience". Some of the best projects we've seen have come from
the most inexperienced of students. Some of the best insights have come
from the most naive. If you have a lot of experience, you don't
necessarily have the "right" experience, and so lull yourself into a
false sense of security. However, fundamentally, if you think the
project is interesting, the ideas are interesting or you're inspired by
the ideas, please get in touch. Let us make the judgement, rather than
prejudge youself out of a fun summer. Yes, we can't take everyone, but
that doesn't mean we always take people with lots of experience :-) Your
lack of experience can be a fantastic asset, OK? :-)
Previous year students
In previous years we've accepted students who have had a wide range of
experience. Some have been pre-university students who are starting
university following the summer, other ones we've had have been in the
middle of the course. Still others have been graduating and even one
post grad student. Lack of knowledge of python isn't something we
consider a major hurdle, as long as you put the effort into learning
python and doing the mini axon tutorial. (We don't expect any prior
knowledge of Kamaelia)
Previous year projects
As an idea of how useful Summer of Code has been all round, a selection of the great work students did last summer as a part of Google Summer Of Code 2006 has:
What we expect
We expect you to only propose a project you're enthusiastic
about - we can say alot more about this, but that is actually
one of the most important criterion. We all get more out of it that
way!
This can be either one off the list, or something you think fits with
the project. Kamaelia is a fairly wide ranging project (potentially) due
to the goal of making concurrency easy & fun to work with in all
contexts. As a result, if you've ever wanted to write that multicore,
3D, P2P game, Kamaelia should be the technology that makes it possible,
and we'd view it a valid test of Kamaelia. Then again, if you want to
write a program to assist children to learn to read and write (based on
the gesture code & speech synthesis) that would be equally cool and
useful. Then again, if you want to create systems for working with
databases or social software systems, that would be useful as well,
since it hits needs of the project. As we say, wide ranging.
There are however expectations we have as a result.
We will expect you to have done the MiniAxon tutorial ideally before submitting your application. This teaches you how Kamaelia essentially works under the hood (barring optimisations), and as a result we feel is vitally important.
We will expect you to, where practical, discuss your application with
us on IRC or email sooner rather than later.
We work primarily over IRC, we will expect you to do so too, so start as
you mean to go on!
Since you're being paid to do this, we expect you to treat it like a
full time job. Generally speaking that means 35-40 hours a week, though
cultures round the world vary. (the numbers are indicative, not
prescriptive based on european norms of what "full time work"
means)
Since its summer we won't be surprised if you say you're having a holiday, so we expect to see how that is scheduled and planned for.
Yes, we know exams happen at different times of the year and we all have to juggle. It is your responsibility to say how you will manage the clash between your studies and your proposed work. (yes, we feel academic work must come first, but if someone's paying you to do something you're taking on a responsibility. It's your responsibility to say how you manage your commitments)
We expect you to manage your time and checkin code at least 2-3 times per week - we give you a way of doing this which is safe to do so.
We will expect you to attend our normal weekly IRC meeting, unless timezones simply don't work
We will expect you to attend a weekly guaranteed mentor time session.
This is an hour long session but it's specifically there to allow you to
have some guaranteed time with your mentor, rather than anything
else.
We will expect you to have some plan for maintenance of your code after summer of code is finished. This can come in several forms. One option is to plan to be around after summer of code because you're doing a project you think is personally fascinating/useful. Another option is to aim to write your code with the intent of having it maintainable.
We will expect you to also track your work in two ways:
If you use code from other sources (eg the python cookbook, reference implementations) we expect you to quote your sources.
We may ask you to write an introductory presentation to the project
work you have done, in a similar way to what you see on the Kamaelia Grey page. You want people to use
your work, right? :-)
To have fun :) (What's the point otherwise? :)
ie it's your project and your commitment - we expect you to act that
way ! :-)
What to expect from us
Given that freedom of ideas, what do we expect in return? We expect
you:
Essentially, we want you to achieve your goals, create something fun
and useful, we want you to learn how open source works, and we want to
have fun at the same time. So we'll do whatever we can to help you, so
long as you do whatever you can to help yourself. (which seems a fair
deal :)
Our ideas list for projects this
year keeps on growing, and reflects the broad scope of the project which
you can see from the components list.
This is divided into two groups - exemplars (interesting useful
applications which could be built and would usefully extend Kamaelia at
the same time) and core improvements.
Application Ideas
Core Improvements
Whilst these are core improvements, we would prefer these to be done in
the context of a usecase. (Since whilst it is _possible_ to develop new
and useful technology without a usecase, its not amazingly useful since
no one can see how to use it. As a result, even the Open GL project for
example in the past was required to have examples of usage. Where
examples of usage have been weak, the projects have often been weaker.
(Which shouldn't be a surprise :-)
WSGI-ify the Kamaelia Web Server
Tools for working with SQL Databases.
Improved Multicore support (We can already do multicore, but it
requires merge into the core, and how does it affect things like
backplanes and all the various components.)
Extensions to the co-ordinating assistant tracker :
Change the topology
visualiser to work in full 3D
Extend Kamaelia's Dirac support to include support for the optimsed version of Dirac called Schoedinger
Platform specific improvements
Explore how the changes
to the way components can be defined can be handled and introspected
by Compose.
However, if you just want to write a game using Kamaelia, that would
be interesting, simply because it then becomes a nice demo of Kamaelia -
especially if its networked and you can explore the contents of worlds
on other people's runtimes (say flying round different people's
universes) :-)
Many of last years ideas are discussed:
If you're interested in those please get in touch!
Please note please
use our template in your application, its there to
give you an idea of how we're evaluating apps!