<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sugarlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bobbyp</id>
	<title>Sugar Labs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sugarlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bobbyp"/>
	<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/go/Special:Contributions/Bobbyp"/>
	<updated>2026-05-14T09:48:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Interviews&amp;diff=27429</id>
		<title>Summer of Code/Interviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Interviews&amp;diff=27429"/>
		<updated>2009-04-14T17:03:59Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: /* Thurs Apr 16 (Wed 15 in the western hemisphere) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We would like to interview the candidates for Google Summer of Code under Sugar Labs. Please sign up for a time below. If you have been told the name of your provisional prospective mentor, and your mentor has put his/her preferred times below, please try to find a time which works for your mentor. (Note that mentor assignments are still in flux; if your provisional prospective mentor changes, we will try to accommodate your chosen time or reschedule at a convenient time for you.)&lt;br /&gt;
&lt;br /&gt;
Interviews will be conducted over IRC; even hours on #sugar-interview0 and half-hours on #sugar-interview1 . Please treat these like real rooms, ie, do not lurk unless you are a mentor. If you have some quick pre-interview questions, we will be in #sugar too.&lt;br /&gt;
&lt;br /&gt;
If you have specifically been told to sign up to interview, please sign up here. Even if your provisional prospective mentor has not indicated availability, put your available times, and your mentor will renegotiate with you later if necessary. We have invited the 9-10 proposals which are currently ranked highest, for the 4-6 slots we will probably get. However, we &#039;&#039;do&#039;&#039; want to interview you even if you have not specifically been invited; although your proposal is a long shot in that case, you may impress us, and in any case we&#039;d like to talk to you about participating in Sugar outside of GSoC.&lt;br /&gt;
&lt;br /&gt;
Like many other organizations participating in GSoC, we have received more good applications than we will have funding from Google for. Almost all of the applications we&#039;ve received are things that we&#039;d really love to have you working on, even if we don&#039;t have space for you in GSoC. If you are interested in finishing your project and would like a mentor assigned even though we can&#039;t give you a slot, you can also contact us on the sugar-devel or gsoc mailing list and we&#039;ll work something out.&lt;br /&gt;
&lt;br /&gt;
== Sunday Apr 1 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Guido van Rossum, Linus Torvalds, Bill Gates ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=1&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=14&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1400 UTC]: [[User:example|example]] 18:11, 13 April 2009 (UTC) (Spanish interview preferred) (just an example - I used &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; to add a signature, and added any special requests after.)&lt;br /&gt;
&lt;br /&gt;
== Wed Apr 15 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, Luis G. Lira, [[User:Aa|aa]], [[User:Tomeu|Tomeu]], [[User:Bobbyp|Bobby]] ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=15&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=14&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1400 UTC]: Vamsi Krishna Davuluri (iwikiwi)&lt;br /&gt;
&lt;br /&gt;
* 1430 UTC: Eduardo Silva (edsiper)&lt;br /&gt;
&lt;br /&gt;
* 1500 UTC: Lucian Branescu (lucian1900)&lt;br /&gt;
&lt;br /&gt;
* 1530 UTC: Deepank Gupta (deepank)&lt;br /&gt;
&lt;br /&gt;
== Thurs Apr 16 (Wed 15 in the western hemisphere) ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, [[User:Aa|aa]], [[User:BryanWB|BryanWB]], [[User:Nrp|Nirav Patel]], [[User:Bobbyp|Bobby]] ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=16&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=0&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 0000 UTC]:Felipe López Toledo (subzero)  ?Can we move this to 0100 UTC? I usually just wake up at this time. [[User:BryanWB|BryanWB]]&lt;br /&gt;
* 0030 UTC:&lt;br /&gt;
&lt;br /&gt;
* 0100 UTC:&lt;br /&gt;
&lt;br /&gt;
* 0130 UTC:&lt;br /&gt;
&lt;br /&gt;
== Thurs Apr 16 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, Sayamindu Dasgupta, Assim Deodia, [[User:Tomeu|Tomeu]], ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=16&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=18&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1800 UTC]: Satya Komaragiri (mavu)&lt;br /&gt;
&lt;br /&gt;
* 1830 UTC: [[http://wiki.sugarlabs.org/go/speech-synthesis chirag jain (chirag)]]&lt;br /&gt;
&lt;br /&gt;
* 1900 UTC: [http://wiki.sugarlabs.org/go/Marbles Puneet_Girdhar]&lt;br /&gt;
&lt;br /&gt;
* 1930 UTC: Kartik Rustagi&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Interviews&amp;diff=27428</id>
		<title>Summer of Code/Interviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Interviews&amp;diff=27428"/>
		<updated>2009-04-14T17:03:26Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: /* Wed Apr 15 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We would like to interview the candidates for Google Summer of Code under Sugar Labs. Please sign up for a time below. If you have been told the name of your provisional prospective mentor, and your mentor has put his/her preferred times below, please try to find a time which works for your mentor. (Note that mentor assignments are still in flux; if your provisional prospective mentor changes, we will try to accommodate your chosen time or reschedule at a convenient time for you.)&lt;br /&gt;
&lt;br /&gt;
Interviews will be conducted over IRC; even hours on #sugar-interview0 and half-hours on #sugar-interview1 . Please treat these like real rooms, ie, do not lurk unless you are a mentor. If you have some quick pre-interview questions, we will be in #sugar too.&lt;br /&gt;
&lt;br /&gt;
If you have specifically been told to sign up to interview, please sign up here. Even if your provisional prospective mentor has not indicated availability, put your available times, and your mentor will renegotiate with you later if necessary. We have invited the 9-10 proposals which are currently ranked highest, for the 4-6 slots we will probably get. However, we &#039;&#039;do&#039;&#039; want to interview you even if you have not specifically been invited; although your proposal is a long shot in that case, you may impress us, and in any case we&#039;d like to talk to you about participating in Sugar outside of GSoC.&lt;br /&gt;
&lt;br /&gt;
Like many other organizations participating in GSoC, we have received more good applications than we will have funding from Google for. Almost all of the applications we&#039;ve received are things that we&#039;d really love to have you working on, even if we don&#039;t have space for you in GSoC. If you are interested in finishing your project and would like a mentor assigned even though we can&#039;t give you a slot, you can also contact us on the sugar-devel or gsoc mailing list and we&#039;ll work something out.&lt;br /&gt;
&lt;br /&gt;
== Sunday Apr 1 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Guido van Rossum, Linus Torvalds, Bill Gates ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=1&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=14&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1400 UTC]: [[User:example|example]] 18:11, 13 April 2009 (UTC) (Spanish interview preferred) (just an example - I used &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; to add a signature, and added any special requests after.)&lt;br /&gt;
&lt;br /&gt;
== Wed Apr 15 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, Luis G. Lira, [[User:Aa|aa]], [[User:Tomeu|Tomeu]], [[User:Bobbyp|Bobby]] ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=15&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=14&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1400 UTC]: Vamsi Krishna Davuluri (iwikiwi)&lt;br /&gt;
&lt;br /&gt;
* 1430 UTC: Eduardo Silva (edsiper)&lt;br /&gt;
&lt;br /&gt;
* 1500 UTC: Lucian Branescu (lucian1900)&lt;br /&gt;
&lt;br /&gt;
* 1530 UTC: Deepank Gupta (deepank)&lt;br /&gt;
&lt;br /&gt;
== Thurs Apr 16 (Wed 15 in the western hemisphere) ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, [[User:Aa|aa]], [[User:BryanWB|BryanWB]], [[User:Nrp|Nirav Patel]] ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=16&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=0&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 0000 UTC]:Felipe López Toledo (subzero)  ?Can we move this to 0100 UTC? I usually just wake up at this time. [[User:BryanWB|BryanWB]]&lt;br /&gt;
* 0030 UTC:&lt;br /&gt;
&lt;br /&gt;
* 0100 UTC:&lt;br /&gt;
&lt;br /&gt;
* 0130 UTC:&lt;br /&gt;
&lt;br /&gt;
== Thurs Apr 16 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, Sayamindu Dasgupta, Assim Deodia, [[User:Tomeu|Tomeu]], ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=16&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=18&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1800 UTC]: Satya Komaragiri (mavu)&lt;br /&gt;
&lt;br /&gt;
* 1830 UTC: [[http://wiki.sugarlabs.org/go/speech-synthesis chirag jain (chirag)]]&lt;br /&gt;
&lt;br /&gt;
* 1900 UTC: [http://wiki.sugarlabs.org/go/Marbles Puneet_Girdhar]&lt;br /&gt;
&lt;br /&gt;
* 1930 UTC: Kartik Rustagi&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Interviews&amp;diff=27426</id>
		<title>Summer of Code/Interviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Interviews&amp;diff=27426"/>
		<updated>2009-04-14T17:03:12Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: /* Wed Apr 15 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We would like to interview the candidates for Google Summer of Code under Sugar Labs. Please sign up for a time below. If you have been told the name of your provisional prospective mentor, and your mentor has put his/her preferred times below, please try to find a time which works for your mentor. (Note that mentor assignments are still in flux; if your provisional prospective mentor changes, we will try to accommodate your chosen time or reschedule at a convenient time for you.)&lt;br /&gt;
&lt;br /&gt;
Interviews will be conducted over IRC; even hours on #sugar-interview0 and half-hours on #sugar-interview1 . Please treat these like real rooms, ie, do not lurk unless you are a mentor. If you have some quick pre-interview questions, we will be in #sugar too.&lt;br /&gt;
&lt;br /&gt;
If you have specifically been told to sign up to interview, please sign up here. Even if your provisional prospective mentor has not indicated availability, put your available times, and your mentor will renegotiate with you later if necessary. We have invited the 9-10 proposals which are currently ranked highest, for the 4-6 slots we will probably get. However, we &#039;&#039;do&#039;&#039; want to interview you even if you have not specifically been invited; although your proposal is a long shot in that case, you may impress us, and in any case we&#039;d like to talk to you about participating in Sugar outside of GSoC.&lt;br /&gt;
&lt;br /&gt;
Like many other organizations participating in GSoC, we have received more good applications than we will have funding from Google for. Almost all of the applications we&#039;ve received are things that we&#039;d really love to have you working on, even if we don&#039;t have space for you in GSoC. If you are interested in finishing your project and would like a mentor assigned even though we can&#039;t give you a slot, you can also contact us on the sugar-devel or gsoc mailing list and we&#039;ll work something out.&lt;br /&gt;
&lt;br /&gt;
== Sunday Apr 1 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Guido van Rossum, Linus Torvalds, Bill Gates ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=1&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=14&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1400 UTC]: [[User:example|example]] 18:11, 13 April 2009 (UTC) (Spanish interview preferred) (just an example - I used &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; to add a signature, and added any special requests after.)&lt;br /&gt;
&lt;br /&gt;
== Wed Apr 15 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, Luis G. Lira, [[User:Aa|aa]], [[User:Tomeu|Tomeu]], [[User:Bobbyp:Bobby]] ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=15&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=14&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1400 UTC]: Vamsi Krishna Davuluri (iwikiwi)&lt;br /&gt;
&lt;br /&gt;
* 1430 UTC: Eduardo Silva (edsiper)&lt;br /&gt;
&lt;br /&gt;
* 1500 UTC: Lucian Branescu (lucian1900)&lt;br /&gt;
&lt;br /&gt;
* 1530 UTC: Deepank Gupta (deepank)&lt;br /&gt;
&lt;br /&gt;
== Thurs Apr 16 (Wed 15 in the western hemisphere) ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, [[User:Aa|aa]], [[User:BryanWB|BryanWB]], [[User:Nrp|Nirav Patel]] ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=16&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=0&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 0000 UTC]:Felipe López Toledo (subzero)  ?Can we move this to 0100 UTC? I usually just wake up at this time. [[User:BryanWB|BryanWB]]&lt;br /&gt;
* 0030 UTC:&lt;br /&gt;
&lt;br /&gt;
* 0100 UTC:&lt;br /&gt;
&lt;br /&gt;
* 0130 UTC:&lt;br /&gt;
&lt;br /&gt;
== Thurs Apr 16 ==&lt;br /&gt;
&lt;br /&gt;
Mentors attending: Jameson Quinn, Sayamindu Dasgupta, Assim Deodia, [[User:Tomeu|Tomeu]], ...&lt;br /&gt;
&lt;br /&gt;
* [http://www.timeanddate.com/counters/customcounter.html?day=16&amp;amp;month=04&amp;amp;year=2009&amp;amp;hour=18&amp;amp;min=0&amp;amp;sec=0&amp;amp;p0=0 1800 UTC]: Satya Komaragiri (mavu)&lt;br /&gt;
&lt;br /&gt;
* 1830 UTC: [[http://wiki.sugarlabs.org/go/speech-synthesis chirag jain (chirag)]]&lt;br /&gt;
&lt;br /&gt;
* 1900 UTC: [http://wiki.sugarlabs.org/go/Marbles Puneet_Girdhar]&lt;br /&gt;
&lt;br /&gt;
* 1930 UTC: Kartik Rustagi&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=20262</id>
		<title>Summer of Code/Mentors</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=20262"/>
		<updated>2009-03-03T03:55:27Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: link to my profile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML and on the wiki (if you can&#039;t handle a little redundant paperwork, you&#039;re probably not a good candidate :). Include relevant information such as:&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
*Timezone&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Please also add this page to your watchlist. We will probably later do some kind of &amp;quot;community interview&amp;quot; process where we ask you questions on this page.&lt;br /&gt;
&lt;br /&gt;
=== Jameson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Jameson.Quinn at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Central / Central America (UTC-6)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Develop activity, have done some tinkering with Sugar, I&#039;ve been involved for over a year.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have several years&#039; experience as a full-time teacher.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nrp|Nrp]] ===&lt;br /&gt;
&lt;br /&gt;
* Name/contact&lt;br /&gt;
&lt;br /&gt;
Nirav Patel nrpatel at gmail&lt;br /&gt;
&lt;br /&gt;
* Timezone&lt;br /&gt;
&lt;br /&gt;
UTC-5&lt;br /&gt;
&lt;br /&gt;
* What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Pygame or PyGTK based Activities&lt;br /&gt;
&lt;br /&gt;
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Graduating and no job prospects, so it is likely I will have quite a&lt;br /&gt;
bit of free time as of early May.  5 hours a week is certainly doable.&lt;br /&gt;
&lt;br /&gt;
* What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Some Pygame/PyGTK Activity development and a module for Pygame.&lt;br /&gt;
&lt;br /&gt;
* What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Teaching Assistant and miscellaneous mentoring experiences at school.&lt;br /&gt;
&lt;br /&gt;
* Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I survived GSoC on the student end of things in 2008.&lt;br /&gt;
&lt;br /&gt;
=== Tomeu ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Tomeu | Tomeu Vizoso]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Central European Time&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded activities and for the sugar shell for more than two years now.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Last year mentored one intern at OLPC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== Walter ===&lt;br /&gt;
&lt;br /&gt;
* Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Walter|Walter Bender]]&lt;br /&gt;
&lt;br /&gt;
EST (UTC-5)&lt;br /&gt;
&lt;br /&gt;
* What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
I am interested in Sugar activities that are relevant to daily life in the classroom. Things that help the teacher and learner enhance their approaches to problem-solving. &lt;br /&gt;
&lt;br /&gt;
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
As much as necessary to make sure we have a successful, useful outcome.&lt;br /&gt;
&lt;br /&gt;
* What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
maintainer of [[Activities/TurtleArt]]&lt;br /&gt;
&lt;br /&gt;
* What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
30 years mentoring student projects at MIT&lt;br /&gt;
&lt;br /&gt;
* Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Bobbyp|Bobby]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
firstnamelastname at gmail, nteon on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Eastern Standard Time (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, lower level stuff.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Probably 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation.  Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Summer camp counselor for a number of years, OLPC intern summer &#039;08.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a few months behind on Sugar development, but think its a fabulous project.  Let me know what you need of me.&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=20261</id>
		<title>Summer of Code/Mentors</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=20261"/>
		<updated>2009-03-03T03:53:26Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: added myself&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML and on the wiki (if you can&#039;t handle a little redundant paperwork, you&#039;re probably not a good candidate :). Include relevant information such as:&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
*Timezone&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Please also add this page to your watchlist. We will probably later do some kind of &amp;quot;community interview&amp;quot; process where we ask you questions on this page.&lt;br /&gt;
&lt;br /&gt;
=== Jameson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Jameson.Quinn at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Central / Central America (UTC-6)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Develop activity, have done some tinkering with Sugar, I&#039;ve been involved for over a year.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have several years&#039; experience as a full-time teacher.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nrp|Nrp]] ===&lt;br /&gt;
&lt;br /&gt;
* Name/contact&lt;br /&gt;
&lt;br /&gt;
Nirav Patel nrpatel at gmail&lt;br /&gt;
&lt;br /&gt;
* Timezone&lt;br /&gt;
&lt;br /&gt;
UTC-5&lt;br /&gt;
&lt;br /&gt;
* What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Pygame or PyGTK based Activities&lt;br /&gt;
&lt;br /&gt;
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Graduating and no job prospects, so it is likely I will have quite a&lt;br /&gt;
bit of free time as of early May.  5 hours a week is certainly doable.&lt;br /&gt;
&lt;br /&gt;
* What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Some Pygame/PyGTK Activity development and a module for Pygame.&lt;br /&gt;
&lt;br /&gt;
* What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Teaching Assistant and miscellaneous mentoring experiences at school.&lt;br /&gt;
&lt;br /&gt;
* Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I survived GSoC on the student end of things in 2008.&lt;br /&gt;
&lt;br /&gt;
=== Tomeu ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Tomeu | Tomeu Vizoso]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Central European Time&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded activities and for the sugar shell for more than two years now.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Last year mentored one intern at OLPC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== Walter ===&lt;br /&gt;
&lt;br /&gt;
* Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Walter|Walter Bender]]&lt;br /&gt;
&lt;br /&gt;
EST (UTC-5)&lt;br /&gt;
&lt;br /&gt;
* What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
I am interested in Sugar activities that are relevant to daily life in the classroom. Things that help the teacher and learner enhance their approaches to problem-solving. &lt;br /&gt;
&lt;br /&gt;
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
As much as necessary to make sure we have a successful, useful outcome.&lt;br /&gt;
&lt;br /&gt;
* What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
maintainer of [[Activities/TurtleArt]]&lt;br /&gt;
&lt;br /&gt;
* What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
30 years mentoring student projects at MIT&lt;br /&gt;
&lt;br /&gt;
* Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bobby ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
firstnamelastname at gmail, nteon on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Eastern Standard Time (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, lower level stuff.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Probably 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation.  Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Summer camp counselor for a number of years, OLPC intern summer &#039;08.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a few months behind on Sugar development, but think its a fabulous project.  Let me know what you need of me.&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=User:Bobbyp&amp;diff=20260</id>
		<title>User:Bobbyp</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=User:Bobbyp&amp;diff=20260"/>
		<updated>2009-03-03T03:36:12Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: New page: for information, see my page on w.l.o: http://wiki.laptop.org/go/User:Bobbyp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;for information, see my page on w.l.o:&lt;br /&gt;
http://wiki.laptop.org/go/User:Bobbyp&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Almanac/Activity_Bundles&amp;diff=18251</id>
		<title>Development Team/Almanac/Activity Bundles</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Almanac/Activity_Bundles&amp;diff=18251"/>
		<updated>2008-06-22T04:04:44Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: /* Bundling Native Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developers}}&lt;br /&gt;
{{Translations}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Activities]] in the [[Sugar]] environment are packaged into a self-contained &#039;&#039;&#039;&amp;quot;bundles&amp;quot;&#039;&#039;&#039;.  Each bundle contains all the resources and executable code (other than system-provided base libraries) which the activity needs to execute.  Any resources or executable code that is not provided by the base system must be packaged within the bundle.  Activity bundles are the end result of, and use a different directory structure than, [[Creating_an_activity|activity development]]&lt;br /&gt;
&lt;br /&gt;
; See also &lt;br /&gt;
*[[OLPC Bitfrost]] in general and its section on [[OLPC Bitfrost#Software installation|software installation]]&lt;br /&gt;
*[[OLPC Human Interface Guidelines/Activities|HIG-Activities]] and its section on [[OLPC Human Interface Guidelines/Activities/Activity Bundles|activity bundles]]&lt;br /&gt;
*&#039;&#039;&#039;[[Creating_an_Activity|Creating an Activity bundle]]&lt;br /&gt;
*[[Activity_pack]], (a collection of Activity Bundles)&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
&lt;br /&gt;
Activities are meant to be shared between children.  If a child doesn&#039;t have the activity, it is automatically transfered to the child when he or she joins the shared activity.  Packaging activities in self-contained bundles allows easy sharing, installation, removal, and backup.&lt;br /&gt;
&lt;br /&gt;
== Location ==&lt;br /&gt;
&lt;br /&gt;
Activities are installed and removed automatically by [[Sugar]], in response to user actions.  Sugar places activities in directory of its choice.  Activities should not rely on being installed in a specific location, and should use relative paths where paths are necessary (i.e., for shared library linkage, activity resources such as images, sounds, etc).  They should also not rely on the bundle&#039;s base directory name remaining the same.  Sugar may rename the activity bundle base directory at any time to prevent bundle conflicts.&lt;br /&gt;
&lt;br /&gt;
Currently Sugar on jhbuild looks for bundles in the &amp;quot;activities&amp;quot; subfolders of XDG_DATA_DIRS.  Right now this is /usr/share/activities and the usr/share/activities subfolder of the jhbuild build folder.&lt;br /&gt;
&lt;br /&gt;
Sugar will automatically generate and remove the .service files necessary to launch the activity through [[D-BUS]] service activation when the activity is installed or removed.&lt;br /&gt;
&lt;br /&gt;
Activities should also NEVER store local state or preferences in the activity bundle itself.  These should always be stored in an activity-specific directory in the user&#039;s sugar profile, available through the SUGAR_PROFILE environment variable.&lt;br /&gt;
&lt;br /&gt;
Python developers can also get the profile folder this way:&lt;br /&gt;
 import sugar.env&lt;br /&gt;
 profile_path = sugar.env.get_profile_path()&lt;br /&gt;
&lt;br /&gt;
== Bundle Structure ==&lt;br /&gt;
&lt;br /&gt;
The activity bundle is a directory, with a name ending in &amp;quot;.activity&amp;quot;.  Each activity bundle must, in a subdirectory called &#039;activity&#039;, contain a file named &amp;quot;activity.info&amp;quot;, and following a special format.  For example:&lt;br /&gt;
&lt;br /&gt;
 Web.activity/&lt;br /&gt;
     bin/&lt;br /&gt;
         web-activity&lt;br /&gt;
     locale/&lt;br /&gt;
         de_DE/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         zh_CN/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
     activity/&lt;br /&gt;
         activity.info&lt;br /&gt;
         activity-web.svg&lt;br /&gt;
         contents&lt;br /&gt;
         contents.sig&lt;br /&gt;
         mimetypes.xml&lt;br /&gt;
     icons/&lt;br /&gt;
&lt;br /&gt;
; activity&lt;br /&gt;
All metadata about the activity is organized in this subdirectory.  The &amp;lt;code&amp;gt;contents&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;contents.sig&amp;lt;/code&amp;gt; are manifest and credential files for the entire bundle contents (excepting the &amp;lt;code&amp;gt;contents&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;contents.sig&amp;lt;/code&amp;gt; files themselves), as described by the [[Manifest Specification]]. The optional &amp;lt;code&amp;gt;mimetypes.xml&amp;lt;/code&amp;gt; file is a [http://freedesktop.org/wiki/Specifications/shared-mime-info-spec freedesktop.org MIME type file] describing how to recognize the MIME types defined by the activity.&lt;br /&gt;
&lt;br /&gt;
; icons&lt;br /&gt;
Contains the icons used by the activity. When using the sugar.activity python package the path is automatically added to the default [http://www.pygtk.org/docs/pygtk/class-gtkicontheme.html gtk icon theme].&lt;br /&gt;
&lt;br /&gt;
== .info File Format ==&lt;br /&gt;
&lt;br /&gt;
.info files follow a key/value pair format, similar to the [http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec fd.o desktop entry spec], but not conforming to it.  An example is shown here:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
 name = Web&lt;br /&gt;
 activity_version = 1&lt;br /&gt;
 host_version = 1&lt;br /&gt;
 bundle_id = com.redhat.Sugar.BrowserActivity&lt;br /&gt;
 icon = activity-web&lt;br /&gt;
 exec = sugar-activity browseractivity.BrowserActivity -s&lt;br /&gt;
 mime_types = application/pdf;image/tiff&lt;br /&gt;
&lt;br /&gt;
A more detailed explanation of the valid properties follows:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
: The activity.info file must begin with [Activity], and only that, on the first line of the file&lt;br /&gt;
&lt;br /&gt;
 name = Web&lt;br /&gt;
: This is the name is displayed in Sugar referring to the activity.  A &#039;name&#039; key without a bracketed language code is the &amp;quot;en_US&amp;quot; localized name of the activity.  The activity.info file must have this key.&lt;br /&gt;
&lt;br /&gt;
 activity_version = 1&lt;br /&gt;
: Each activity.info file must have a &amp;quot;activity_version&amp;quot; key.  The version is a single positive integer.  Larger versions are considered &amp;quot;newer&amp;quot;.  The value assigned to this key should be considered &#039;&#039;&#039;opaque&#039;&#039;&#039; to the activity; the only requirement of the activity is that it must be larger for new activity builds.&lt;br /&gt;
&lt;br /&gt;
 host_version = 1&lt;br /&gt;
: Each activity.info file must have a &amp;quot;host_version&amp;quot; key.  The version is a single positive integer.  This specifies the version of the Sugar environment which the activity is compatible with.  (fixme: need to specify sugar versions somewhere.  Obviously we start with 1.)&lt;br /&gt;
&lt;br /&gt;
 bundle_id = com.redhat.Sugar.BrowserActivity&lt;br /&gt;
: This is the activity bundle identifier.  It is required.  It is also used as the activity&#039;s default service type when the activity is shared on the network.  To determine this type, the distince parts (separated by the &#039;.&#039; character) are reversed, any &#039;.&#039; is replaced by a &#039;_&#039; character, and the type is prefixed by a &#039;_&#039; character.  So in this example, the default service type would be &amp;quot;_BrowserActivity_Sugar_redhat_com&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 icon = activity-web&lt;br /&gt;
: It points to the activity&#039;s icon.  The icon is looked up in the activity bundle&#039;s base directory.  It cannot contain a path.  When searching for the icon in the activity bundle&#039;s base directory, only an file with the icon name and the extension &#039;.svg&#039; will be looked for.&lt;br /&gt;
&lt;br /&gt;
 exec = sugar-activity webactivity.WebActivity&lt;br /&gt;
: The exec key specifies the executable which [[Sugar]] runs to start the activity instances. Environment variables given on the exec line are expanded. Executable files should be placed into the bin/ directory in the bundle. It should support the following arguments:&lt;br /&gt;
&lt;br /&gt;
; -b, --bundle-id   : Identifier of the activity bundle&lt;br /&gt;
; -a, --activity-id : Identifier of the activity instance.&lt;br /&gt;
; -o, --object-id   : Identifier of the associated datastore object.&lt;br /&gt;
; -u, --uri         : URI to load.&lt;br /&gt;
&lt;br /&gt;
Python activities should generally use the generic sugar-activity executable. Other activities need to adhere to the [[Low-level Activity API]].&lt;br /&gt;
&lt;br /&gt;
 mime_types = application/pdf;image/tiff&lt;br /&gt;
: List of mime types supported by the activity, separated by semi colons. It&#039;s used when opening a file from the web or to present to the user a list of activities which can open a certain journal object.&lt;br /&gt;
&lt;br /&gt;
 show_launcher = yes&lt;br /&gt;
: This key is optional.  If not present, or if present with a value of &amp;quot;yes&amp;quot;, the activity is shown with its icon in the [[Sugar]] panel launcher and a valid &#039;icon&#039; key/value pair is required.  If specified with a value of &amp;quot;no&amp;quot;, the activity is not shown in the [[Sugar]] panel launcher, and the &#039;icon&#039; key is not required.&lt;br /&gt;
&lt;br /&gt;
===Future Properties===&lt;br /&gt;
There are properties anticipated to be used by future Sugar versions. In general, Sugar will ignore unknown properties, and use defaults for missing properties.&lt;br /&gt;
&lt;br /&gt;
 tags = ...&lt;br /&gt;
: List of tags to categorize this activity. Not yet implemented, see [http://dev.laptop.org/ticket/6634 #6634].&lt;br /&gt;
&lt;br /&gt;
 update_url = ...&lt;br /&gt;
&lt;br /&gt;
: URL to retrieve update information. Not specified yet, see [http://dev.laptop.org/ticket/4951 #4951].&lt;br /&gt;
&lt;br /&gt;
== Activity Name Localization/Translation ==&lt;br /&gt;
&lt;br /&gt;
Localized data lives in the locale directory. Each language stores its localized keys in a &amp;lt;u&amp;gt;separate&amp;lt;/u&amp;gt; directory named for the language&#039;s ISO code.  Localized keys from the &#039;activity.info&#039; file are stored in the &#039;activity.linfo&#039; files in that directory. For example, German-localized German (as opposed to Swiss-localized German) language translations are stored in the &#039;de_DE/activity.linfo&#039; file:&lt;br /&gt;
&lt;br /&gt;
 Example.activity/&lt;br /&gt;
     exampleactivity.py&lt;br /&gt;
     activity/&lt;br /&gt;
         activity.info&lt;br /&gt;
     locale/&lt;br /&gt;
         de_DE/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         de_CH/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         es/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
&lt;br /&gt;
At this time, only translations for the &#039;name&#039; key from the &#039;activity.info&#039; file is supported.  A localized &#039;de_DE/activity.linfo&#039; file would look like:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
 name = Web&lt;br /&gt;
&lt;br /&gt;
Keys in the languague-specific &#039;.linfo&#039; files selectively override keys from the &#039;activity.info&#039; file; if a key is not present in the &#039;.linfo&#039; file the value from the &#039;activity.info&#039; file is used instead.&lt;br /&gt;
&lt;br /&gt;
== Package, extension, mime type ==&lt;br /&gt;
&lt;br /&gt;
Activity bundles should be packaged as zip files with the &amp;quot;.xo&amp;quot; extension. The mime type in the journal is &amp;quot;application/vnd.olpc-sugar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Bundling Native Libraries ==&lt;br /&gt;
&lt;br /&gt;
Sometimes you need to include a native library or two with your activity.  The strategy that [[Develop]] and [[Model]] use is specifying a shell script for the executable in the .info file:&lt;br /&gt;
&lt;br /&gt;
 exec = ./model_startup.sh&lt;br /&gt;
&lt;br /&gt;
The script, &#039;model_startup.sh&#039;, modifies the library path, python, or both paths (depending on the types of libraries you are including) to reference folders inside your bundle, then launches your application:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 export PYTHONPATH=$SUGAR_BUNDLE_PATH/site-packages:$PYTHONPATH&lt;br /&gt;
 export LD_LIBRARY_PATH=$SUGAR_BUNDLE_PATH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
 &lt;br /&gt;
 sugar-activity model_app.ModelActivity&lt;br /&gt;
&lt;br /&gt;
Make sure to add your shell script and any native libraries to the MANIFEST before you package your bundle.  You can also accomplish the same thing by throwing all your libraries in the root folder of the bundle, like the [[Map_(activity)|Map activity]] does, but if you have more than a few libraries to include it can get quite cluttered.&lt;br /&gt;
&lt;br /&gt;
== Other Technologies Comparison ==&lt;br /&gt;
&lt;br /&gt;
Activity bundles are similar to OS X bundles or [[Java JAR files]]; a simple mechanism to encapsulate everything you need in a single directory that can be moved around independently. &lt;br /&gt;
&lt;br /&gt;
It differs from autopackage, it&#039;s not a package management system.  There&#039;s no central database, no scripts get run on install/uninstall.  There also is no special file format.&lt;br /&gt;
&lt;br /&gt;
As compared to klik, it&#039;s not intended to replicate a local Unix directory structure inside the package; the activity can still link to system&lt;br /&gt;
provided binaries and such.  There&#039;s also no server-side component other than compressing the archive and sending it over the network.There is also no dependency checking since activities are required to be self-contained.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Bundle]] for a generic introduction to bundles&lt;br /&gt;
* [[Activity tutorial]]&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Sugar]]&lt;br /&gt;
[[Category:Developers]]&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Almanac/Activity_Bundles&amp;diff=18250</id>
		<title>Development Team/Almanac/Activity Bundles</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Almanac/Activity_Bundles&amp;diff=18250"/>
		<updated>2008-06-22T02:47:27Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: alternative way to add libraries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developers}}&lt;br /&gt;
{{Translations}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Activities]] in the [[Sugar]] environment are packaged into a self-contained &#039;&#039;&#039;&amp;quot;bundles&amp;quot;&#039;&#039;&#039;.  Each bundle contains all the resources and executable code (other than system-provided base libraries) which the activity needs to execute.  Any resources or executable code that is not provided by the base system must be packaged within the bundle.  Activity bundles are the end result of, and use a different directory structure than, [[Creating_an_activity|activity development]]&lt;br /&gt;
&lt;br /&gt;
; See also &lt;br /&gt;
*[[OLPC Bitfrost]] in general and its section on [[OLPC Bitfrost#Software installation|software installation]]&lt;br /&gt;
*[[OLPC Human Interface Guidelines/Activities|HIG-Activities]] and its section on [[OLPC Human Interface Guidelines/Activities/Activity Bundles|activity bundles]]&lt;br /&gt;
*&#039;&#039;&#039;[[Creating_an_Activity|Creating an Activity bundle]]&lt;br /&gt;
*[[Activity_pack]], (a collection of Activity Bundles)&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
&lt;br /&gt;
Activities are meant to be shared between children.  If a child doesn&#039;t have the activity, it is automatically transfered to the child when he or she joins the shared activity.  Packaging activities in self-contained bundles allows easy sharing, installation, removal, and backup.&lt;br /&gt;
&lt;br /&gt;
== Location ==&lt;br /&gt;
&lt;br /&gt;
Activities are installed and removed automatically by [[Sugar]], in response to user actions.  Sugar places activities in directory of its choice.  Activities should not rely on being installed in a specific location, and should use relative paths where paths are necessary (i.e., for shared library linkage, activity resources such as images, sounds, etc).  They should also not rely on the bundle&#039;s base directory name remaining the same.  Sugar may rename the activity bundle base directory at any time to prevent bundle conflicts.&lt;br /&gt;
&lt;br /&gt;
Currently Sugar on jhbuild looks for bundles in the &amp;quot;activities&amp;quot; subfolders of XDG_DATA_DIRS.  Right now this is /usr/share/activities and the usr/share/activities subfolder of the jhbuild build folder.&lt;br /&gt;
&lt;br /&gt;
Sugar will automatically generate and remove the .service files necessary to launch the activity through [[D-BUS]] service activation when the activity is installed or removed.&lt;br /&gt;
&lt;br /&gt;
Activities should also NEVER store local state or preferences in the activity bundle itself.  These should always be stored in an activity-specific directory in the user&#039;s sugar profile, available through the SUGAR_PROFILE environment variable.&lt;br /&gt;
&lt;br /&gt;
Python developers can also get the profile folder this way:&lt;br /&gt;
 import sugar.env&lt;br /&gt;
 profile_path = sugar.env.get_profile_path()&lt;br /&gt;
&lt;br /&gt;
== Bundle Structure ==&lt;br /&gt;
&lt;br /&gt;
The activity bundle is a directory, with a name ending in &amp;quot;.activity&amp;quot;.  Each activity bundle must, in a subdirectory called &#039;activity&#039;, contain a file named &amp;quot;activity.info&amp;quot;, and following a special format.  For example:&lt;br /&gt;
&lt;br /&gt;
 Web.activity/&lt;br /&gt;
     bin/&lt;br /&gt;
         web-activity&lt;br /&gt;
     locale/&lt;br /&gt;
         de_DE/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         zh_CN/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
     activity/&lt;br /&gt;
         activity.info&lt;br /&gt;
         activity-web.svg&lt;br /&gt;
         contents&lt;br /&gt;
         contents.sig&lt;br /&gt;
         mimetypes.xml&lt;br /&gt;
     icons/&lt;br /&gt;
&lt;br /&gt;
; activity&lt;br /&gt;
All metadata about the activity is organized in this subdirectory.  The &amp;lt;code&amp;gt;contents&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;contents.sig&amp;lt;/code&amp;gt; are manifest and credential files for the entire bundle contents (excepting the &amp;lt;code&amp;gt;contents&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;contents.sig&amp;lt;/code&amp;gt; files themselves), as described by the [[Manifest Specification]]. The optional &amp;lt;code&amp;gt;mimetypes.xml&amp;lt;/code&amp;gt; file is a [http://freedesktop.org/wiki/Specifications/shared-mime-info-spec freedesktop.org MIME type file] describing how to recognize the MIME types defined by the activity.&lt;br /&gt;
&lt;br /&gt;
; icons&lt;br /&gt;
Contains the icons used by the activity. When using the sugar.activity python package the path is automatically added to the default [http://www.pygtk.org/docs/pygtk/class-gtkicontheme.html gtk icon theme].&lt;br /&gt;
&lt;br /&gt;
== .info File Format ==&lt;br /&gt;
&lt;br /&gt;
.info files follow a key/value pair format, similar to the [http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec fd.o desktop entry spec], but not conforming to it.  An example is shown here:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
 name = Web&lt;br /&gt;
 activity_version = 1&lt;br /&gt;
 host_version = 1&lt;br /&gt;
 bundle_id = com.redhat.Sugar.BrowserActivity&lt;br /&gt;
 icon = activity-web&lt;br /&gt;
 exec = sugar-activity browseractivity.BrowserActivity -s&lt;br /&gt;
 mime_types = application/pdf;image/tiff&lt;br /&gt;
&lt;br /&gt;
A more detailed explanation of the valid properties follows:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
: The activity.info file must begin with [Activity], and only that, on the first line of the file&lt;br /&gt;
&lt;br /&gt;
 name = Web&lt;br /&gt;
: This is the name is displayed in Sugar referring to the activity.  A &#039;name&#039; key without a bracketed language code is the &amp;quot;en_US&amp;quot; localized name of the activity.  The activity.info file must have this key.&lt;br /&gt;
&lt;br /&gt;
 activity_version = 1&lt;br /&gt;
: Each activity.info file must have a &amp;quot;activity_version&amp;quot; key.  The version is a single positive integer.  Larger versions are considered &amp;quot;newer&amp;quot;.  The value assigned to this key should be considered &#039;&#039;&#039;opaque&#039;&#039;&#039; to the activity; the only requirement of the activity is that it must be larger for new activity builds.&lt;br /&gt;
&lt;br /&gt;
 host_version = 1&lt;br /&gt;
: Each activity.info file must have a &amp;quot;host_version&amp;quot; key.  The version is a single positive integer.  This specifies the version of the Sugar environment which the activity is compatible with.  (fixme: need to specify sugar versions somewhere.  Obviously we start with 1.)&lt;br /&gt;
&lt;br /&gt;
 bundle_id = com.redhat.Sugar.BrowserActivity&lt;br /&gt;
: This is the activity bundle identifier.  It is required.  It is also used as the activity&#039;s default service type when the activity is shared on the network.  To determine this type, the distince parts (separated by the &#039;.&#039; character) are reversed, any &#039;.&#039; is replaced by a &#039;_&#039; character, and the type is prefixed by a &#039;_&#039; character.  So in this example, the default service type would be &amp;quot;_BrowserActivity_Sugar_redhat_com&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 icon = activity-web&lt;br /&gt;
: It points to the activity&#039;s icon.  The icon is looked up in the activity bundle&#039;s base directory.  It cannot contain a path.  When searching for the icon in the activity bundle&#039;s base directory, only an file with the icon name and the extension &#039;.svg&#039; will be looked for.&lt;br /&gt;
&lt;br /&gt;
 exec = sugar-activity webactivity.WebActivity&lt;br /&gt;
: The exec key specifies the executable which [[Sugar]] runs to start the activity instances. Environment variables given on the exec line are expanded. Executable files should be placed into the bin/ directory in the bundle. It should support the following arguments:&lt;br /&gt;
&lt;br /&gt;
; -b, --bundle-id   : Identifier of the activity bundle&lt;br /&gt;
; -a, --activity-id : Identifier of the activity instance.&lt;br /&gt;
; -o, --object-id   : Identifier of the associated datastore object.&lt;br /&gt;
; -u, --uri         : URI to load.&lt;br /&gt;
&lt;br /&gt;
Python activities should generally use the generic sugar-activity executable. Other activities need to adhere to the [[Low-level Activity API]].&lt;br /&gt;
&lt;br /&gt;
 mime_types = application/pdf;image/tiff&lt;br /&gt;
: List of mime types supported by the activity, separated by semi colons. It&#039;s used when opening a file from the web or to present to the user a list of activities which can open a certain journal object.&lt;br /&gt;
&lt;br /&gt;
 show_launcher = yes&lt;br /&gt;
: This key is optional.  If not present, or if present with a value of &amp;quot;yes&amp;quot;, the activity is shown with its icon in the [[Sugar]] panel launcher and a valid &#039;icon&#039; key/value pair is required.  If specified with a value of &amp;quot;no&amp;quot;, the activity is not shown in the [[Sugar]] panel launcher, and the &#039;icon&#039; key is not required.&lt;br /&gt;
&lt;br /&gt;
===Future Properties===&lt;br /&gt;
There are properties anticipated to be used by future Sugar versions. In general, Sugar will ignore unknown properties, and use defaults for missing properties.&lt;br /&gt;
&lt;br /&gt;
 tags = ...&lt;br /&gt;
: List of tags to categorize this activity. Not yet implemented, see [http://dev.laptop.org/ticket/6634 #6634].&lt;br /&gt;
&lt;br /&gt;
 update_url = ...&lt;br /&gt;
&lt;br /&gt;
: URL to retrieve update information. Not specified yet, see [http://dev.laptop.org/ticket/4951 #4951].&lt;br /&gt;
&lt;br /&gt;
== Activity Name Localization/Translation ==&lt;br /&gt;
&lt;br /&gt;
Localized data lives in the locale directory. Each language stores its localized keys in a &amp;lt;u&amp;gt;separate&amp;lt;/u&amp;gt; directory named for the language&#039;s ISO code.  Localized keys from the &#039;activity.info&#039; file are stored in the &#039;activity.linfo&#039; files in that directory. For example, German-localized German (as opposed to Swiss-localized German) language translations are stored in the &#039;de_DE/activity.linfo&#039; file:&lt;br /&gt;
&lt;br /&gt;
 Example.activity/&lt;br /&gt;
     exampleactivity.py&lt;br /&gt;
     activity/&lt;br /&gt;
         activity.info&lt;br /&gt;
     locale/&lt;br /&gt;
         de_DE/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         de_CH/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         es/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
&lt;br /&gt;
At this time, only translations for the &#039;name&#039; key from the &#039;activity.info&#039; file is supported.  A localized &#039;de_DE/activity.linfo&#039; file would look like:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
 name = Web&lt;br /&gt;
&lt;br /&gt;
Keys in the languague-specific &#039;.linfo&#039; files selectively override keys from the &#039;activity.info&#039; file; if a key is not present in the &#039;.linfo&#039; file the value from the &#039;activity.info&#039; file is used instead.&lt;br /&gt;
&lt;br /&gt;
== Package, extension, mime type ==&lt;br /&gt;
&lt;br /&gt;
Activity bundles should be packaged as zip files with the &amp;quot;.xo&amp;quot; extension. The mime type in the journal is &amp;quot;application/vnd.olpc-sugar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Bundling Native Libraries ==&lt;br /&gt;
&lt;br /&gt;
Sometimes you need to include a native library or two with your activity.  A good strategy, the one that [[Develop]] and [[Model]] use, is to specify a shell script for the executable in the .info file:&lt;br /&gt;
&lt;br /&gt;
 exec = ./model_startup.sh&lt;br /&gt;
&lt;br /&gt;
The script, &#039;model_startup.sh&#039;, modifies the library path, python, or both paths (depending on the types of libraries you are including) to point to folders inside your bundle, then launches your application:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 export PYTHONPATH=$SUGAR_BUNDLE_PATH/site-packages:$PYTHONPATH&lt;br /&gt;
 export LD_LIBRARY_PATH=$SUGAR_BUNDLE_PATH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
 &lt;br /&gt;
 sugar-activity model_app.ModelActivity&lt;br /&gt;
&lt;br /&gt;
Make sure to add your shell script and any native libraries to the MANIFEST before you package your bundle.  You can also accomplish the same thing by throwing all your libraries in the root folder of the bundle, like the [[Map_(activity)|Map activity]] does, but that can get messy very quick.&lt;br /&gt;
&lt;br /&gt;
== Other Technologies Comparison ==&lt;br /&gt;
&lt;br /&gt;
Activity bundles are similar to OS X bundles or [[Java JAR files]]; a simple mechanism to encapsulate everything you need in a single directory that can be moved around independently. &lt;br /&gt;
&lt;br /&gt;
It differs from autopackage, it&#039;s not a package management system.  There&#039;s no central database, no scripts get run on install/uninstall.  There also is no special file format.&lt;br /&gt;
&lt;br /&gt;
As compared to klik, it&#039;s not intended to replicate a local Unix directory structure inside the package; the activity can still link to system&lt;br /&gt;
provided binaries and such.  There&#039;s also no server-side component other than compressing the archive and sending it over the network.There is also no dependency checking since activities are required to be self-contained.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Bundle]] for a generic introduction to bundles&lt;br /&gt;
* [[Activity tutorial]]&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Sugar]]&lt;br /&gt;
[[Category:Developers]]&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Almanac/Activity_Bundles&amp;diff=18248</id>
		<title>Development Team/Almanac/Activity Bundles</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Almanac/Activity_Bundles&amp;diff=18248"/>
		<updated>2008-06-21T04:23:35Z</updated>

		<summary type="html">&lt;p&gt;Bobbyp: added information on native libraries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developers}}&lt;br /&gt;
{{Translations}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Activities]] in the [[Sugar]] environment are packaged into a self-contained &#039;&#039;&#039;&amp;quot;bundles&amp;quot;&#039;&#039;&#039;.  Each bundle contains all the resources and executable code (other than system-provided base libraries) which the activity needs to execute.  Any resources or executable code that is not provided by the base system must be packaged within the bundle.  Activity bundles are the end result of, and use a different directory structure than, [[Creating_an_activity|activity development]]&lt;br /&gt;
&lt;br /&gt;
; See also &lt;br /&gt;
*[[OLPC Bitfrost]] in general and its section on [[OLPC Bitfrost#Software installation|software installation]]&lt;br /&gt;
*[[OLPC Human Interface Guidelines/Activities|HIG-Activities]] and its section on [[OLPC Human Interface Guidelines/Activities/Activity Bundles|activity bundles]]&lt;br /&gt;
*&#039;&#039;&#039;[[Creating_an_Activity|Creating an Activity bundle]]&lt;br /&gt;
*[[Activity_pack]], (a collection of Activity Bundles)&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
&lt;br /&gt;
Activities are meant to be shared between children.  If a child doesn&#039;t have the activity, it is automatically transfered to the child when he or she joins the shared activity.  Packaging activities in self-contained bundles allows easy sharing, installation, removal, and backup.&lt;br /&gt;
&lt;br /&gt;
== Location ==&lt;br /&gt;
&lt;br /&gt;
Activities are installed and removed automatically by [[Sugar]], in response to user actions.  Sugar places activities in directory of its choice.  Activities should not rely on being installed in a specific location, and should use relative paths where paths are necessary (i.e., for shared library linkage, activity resources such as images, sounds, etc).  They should also not rely on the bundle&#039;s base directory name remaining the same.  Sugar may rename the activity bundle base directory at any time to prevent bundle conflicts.&lt;br /&gt;
&lt;br /&gt;
Currently Sugar on jhbuild looks for bundles in the &amp;quot;activities&amp;quot; subfolders of XDG_DATA_DIRS.  Right now this is /usr/share/activities and the usr/share/activities subfolder of the jhbuild build folder.&lt;br /&gt;
&lt;br /&gt;
Sugar will automatically generate and remove the .service files necessary to launch the activity through [[D-BUS]] service activation when the activity is installed or removed.&lt;br /&gt;
&lt;br /&gt;
Activities should also NEVER store local state or preferences in the activity bundle itself.  These should always be stored in an activity-specific directory in the user&#039;s sugar profile, available through the SUGAR_PROFILE environment variable.&lt;br /&gt;
&lt;br /&gt;
Python developers can also get the profile folder this way:&lt;br /&gt;
 import sugar.env&lt;br /&gt;
 profile_path = sugar.env.get_profile_path()&lt;br /&gt;
&lt;br /&gt;
== Bundle Structure ==&lt;br /&gt;
&lt;br /&gt;
The activity bundle is a directory, with a name ending in &amp;quot;.activity&amp;quot;.  Each activity bundle must, in a subdirectory called &#039;activity&#039;, contain a file named &amp;quot;activity.info&amp;quot;, and following a special format.  For example:&lt;br /&gt;
&lt;br /&gt;
 Web.activity/&lt;br /&gt;
     bin/&lt;br /&gt;
         web-activity&lt;br /&gt;
     locale/&lt;br /&gt;
         de_DE/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         zh_CN/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
     activity/&lt;br /&gt;
         activity.info&lt;br /&gt;
         activity-web.svg&lt;br /&gt;
         contents&lt;br /&gt;
         contents.sig&lt;br /&gt;
         mimetypes.xml&lt;br /&gt;
     icons/&lt;br /&gt;
&lt;br /&gt;
; activity&lt;br /&gt;
All metadata about the activity is organized in this subdirectory.  The &amp;lt;code&amp;gt;contents&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;contents.sig&amp;lt;/code&amp;gt; are manifest and credential files for the entire bundle contents (excepting the &amp;lt;code&amp;gt;contents&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;contents.sig&amp;lt;/code&amp;gt; files themselves), as described by the [[Manifest Specification]]. The optional &amp;lt;code&amp;gt;mimetypes.xml&amp;lt;/code&amp;gt; file is a [http://freedesktop.org/wiki/Specifications/shared-mime-info-spec freedesktop.org MIME type file] describing how to recognize the MIME types defined by the activity.&lt;br /&gt;
&lt;br /&gt;
; icons&lt;br /&gt;
Contains the icons used by the activity. When using the sugar.activity python package the path is automatically added to the default [http://www.pygtk.org/docs/pygtk/class-gtkicontheme.html gtk icon theme].&lt;br /&gt;
&lt;br /&gt;
== .info File Format ==&lt;br /&gt;
&lt;br /&gt;
.info files follow a key/value pair format, similar to the [http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec fd.o desktop entry spec], but not conforming to it.  An example is shown here:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
 name = Web&lt;br /&gt;
 activity_version = 1&lt;br /&gt;
 host_version = 1&lt;br /&gt;
 bundle_id = com.redhat.Sugar.BrowserActivity&lt;br /&gt;
 icon = activity-web&lt;br /&gt;
 exec = sugar-activity browseractivity.BrowserActivity -s&lt;br /&gt;
 mime_types = application/pdf;image/tiff&lt;br /&gt;
&lt;br /&gt;
A more detailed explanation of the valid properties follows:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
: The activity.info file must begin with [Activity], and only that, on the first line of the file&lt;br /&gt;
&lt;br /&gt;
 name = Web&lt;br /&gt;
: This is the name is displayed in Sugar referring to the activity.  A &#039;name&#039; key without a bracketed language code is the &amp;quot;en_US&amp;quot; localized name of the activity.  The activity.info file must have this key.&lt;br /&gt;
&lt;br /&gt;
 activity_version = 1&lt;br /&gt;
: Each activity.info file must have a &amp;quot;activity_version&amp;quot; key.  The version is a single positive integer.  Larger versions are considered &amp;quot;newer&amp;quot;.  The value assigned to this key should be considered &#039;&#039;&#039;opaque&#039;&#039;&#039; to the activity; the only requirement of the activity is that it must be larger for new activity builds.&lt;br /&gt;
&lt;br /&gt;
 host_version = 1&lt;br /&gt;
: Each activity.info file must have a &amp;quot;host_version&amp;quot; key.  The version is a single positive integer.  This specifies the version of the Sugar environment which the activity is compatible with.  (fixme: need to specify sugar versions somewhere.  Obviously we start with 1.)&lt;br /&gt;
&lt;br /&gt;
 bundle_id = com.redhat.Sugar.BrowserActivity&lt;br /&gt;
: This is the activity bundle identifier.  It is required.  It is also used as the activity&#039;s default service type when the activity is shared on the network.  To determine this type, the distince parts (separated by the &#039;.&#039; character) are reversed, any &#039;.&#039; is replaced by a &#039;_&#039; character, and the type is prefixed by a &#039;_&#039; character.  So in this example, the default service type would be &amp;quot;_BrowserActivity_Sugar_redhat_com&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 icon = activity-web&lt;br /&gt;
: It points to the activity&#039;s icon.  The icon is looked up in the activity bundle&#039;s base directory.  It cannot contain a path.  When searching for the icon in the activity bundle&#039;s base directory, only an file with the icon name and the extension &#039;.svg&#039; will be looked for.&lt;br /&gt;
&lt;br /&gt;
 exec = sugar-activity webactivity.WebActivity&lt;br /&gt;
: The exec key specifies the executable which [[Sugar]] runs to start the activity instances. Environment variables given on the exec line are expanded. Executable files should be placed into the bin/ directory in the bundle. It should support the following arguments:&lt;br /&gt;
&lt;br /&gt;
; -b, --bundle-id   : Identifier of the activity bundle&lt;br /&gt;
; -a, --activity-id : Identifier of the activity instance.&lt;br /&gt;
; -o, --object-id   : Identifier of the associated datastore object.&lt;br /&gt;
; -u, --uri         : URI to load.&lt;br /&gt;
&lt;br /&gt;
Python activities should generally use the generic sugar-activity executable. Other activities need to adhere to the [[Low-level Activity API]].&lt;br /&gt;
&lt;br /&gt;
 mime_types = application/pdf;image/tiff&lt;br /&gt;
: List of mime types supported by the activity, separated by semi colons. It&#039;s used when opening a file from the web or to present to the user a list of activities which can open a certain journal object.&lt;br /&gt;
&lt;br /&gt;
 show_launcher = yes&lt;br /&gt;
: This key is optional.  If not present, or if present with a value of &amp;quot;yes&amp;quot;, the activity is shown with its icon in the [[Sugar]] panel launcher and a valid &#039;icon&#039; key/value pair is required.  If specified with a value of &amp;quot;no&amp;quot;, the activity is not shown in the [[Sugar]] panel launcher, and the &#039;icon&#039; key is not required.&lt;br /&gt;
&lt;br /&gt;
===Future Properties===&lt;br /&gt;
There are properties anticipated to be used by future Sugar versions. In general, Sugar will ignore unknown properties, and use defaults for missing properties.&lt;br /&gt;
&lt;br /&gt;
 tags = ...&lt;br /&gt;
: List of tags to categorize this activity. Not yet implemented, see [http://dev.laptop.org/ticket/6634 #6634].&lt;br /&gt;
&lt;br /&gt;
 update_url = ...&lt;br /&gt;
&lt;br /&gt;
: URL to retrieve update information. Not specified yet, see [http://dev.laptop.org/ticket/4951 #4951].&lt;br /&gt;
&lt;br /&gt;
== Activity Name Localization/Translation ==&lt;br /&gt;
&lt;br /&gt;
Localized data lives in the locale directory. Each language stores its localized keys in a &amp;lt;u&amp;gt;separate&amp;lt;/u&amp;gt; directory named for the language&#039;s ISO code.  Localized keys from the &#039;activity.info&#039; file are stored in the &#039;activity.linfo&#039; files in that directory. For example, German-localized German (as opposed to Swiss-localized German) language translations are stored in the &#039;de_DE/activity.linfo&#039; file:&lt;br /&gt;
&lt;br /&gt;
 Example.activity/&lt;br /&gt;
     exampleactivity.py&lt;br /&gt;
     activity/&lt;br /&gt;
         activity.info&lt;br /&gt;
     locale/&lt;br /&gt;
         de_DE/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         de_CH/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
         es/&lt;br /&gt;
             activity.linfo&lt;br /&gt;
&lt;br /&gt;
At this time, only translations for the &#039;name&#039; key from the &#039;activity.info&#039; file is supported.  A localized &#039;de_DE/activity.linfo&#039; file would look like:&lt;br /&gt;
&lt;br /&gt;
 [Activity]&lt;br /&gt;
 name = Web&lt;br /&gt;
&lt;br /&gt;
Keys in the languague-specific &#039;.linfo&#039; files selectively override keys from the &#039;activity.info&#039; file; if a key is not present in the &#039;.linfo&#039; file the value from the &#039;activity.info&#039; file is used instead.&lt;br /&gt;
&lt;br /&gt;
== Package, extension, mime type ==&lt;br /&gt;
&lt;br /&gt;
Activity bundles should be packaged as zip files with the &amp;quot;.xo&amp;quot; extension. The mime type in the journal is &amp;quot;application/vnd.olpc-sugar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Bundling Native Libraries ==&lt;br /&gt;
&lt;br /&gt;
Sometimes you need to include a native library or two with your activity.  A good strategy, the one that [[Develop]] and [[Model]] use, is to specify a shell script for the executable in the .info file:&lt;br /&gt;
&lt;br /&gt;
 exec = ./model_startup.sh&lt;br /&gt;
&lt;br /&gt;
The script, &#039;model_startup.sh&#039;, modifies the library path, python, or both paths (depending on the types of libraries you are including) to point to folders inside your bundle, then launches your application:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 export PYTHONPATH=$SUGAR_BUNDLE_PATH/site-packages:$PYTHONPATH&lt;br /&gt;
 export LD_LIBRARY_PATH=$SUGAR_BUNDLE_PATH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
 &lt;br /&gt;
 sugar-activity model_app.ModelActivity&lt;br /&gt;
&lt;br /&gt;
Make sure to add your shell script and any native libraries to the MANIFEST before you package your bundle.&lt;br /&gt;
&lt;br /&gt;
== Other Technologies Comparison ==&lt;br /&gt;
&lt;br /&gt;
Activity bundles are similar to OS X bundles or [[Java JAR files]]; a simple mechanism to encapsulate everything you need in a single directory that can be moved around independently. &lt;br /&gt;
&lt;br /&gt;
It differs from autopackage, it&#039;s not a package management system.  There&#039;s no central database, no scripts get run on install/uninstall.  There also is no special file format.&lt;br /&gt;
&lt;br /&gt;
As compared to klik, it&#039;s not intended to replicate a local Unix directory structure inside the package; the activity can still link to system&lt;br /&gt;
provided binaries and such.  There&#039;s also no server-side component other than compressing the archive and sending it over the network.There is also no dependency checking since activities are required to be self-contained.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Bundle]] for a generic introduction to bundles&lt;br /&gt;
* [[Activity tutorial]]&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Sugar]]&lt;br /&gt;
[[Category:Developers]]&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Bobbyp</name></author>
	</entry>
</feed>