https://wiki.sugarlabs.org/api.php?action=feedcontributions&user=Anal+bleaching&feedformat=atomSugar Labs - User contributions [en]2024-03-19T02:22:04ZUser contributionsMediaWiki 1.35.2https://wiki.sugarlabs.org/index.php?title=Development_Team/TODO&diff=45198Development Team/TODO2010-02-21T22:22:45Z<p>Anal bleaching: moved Development Team/TODO to Anal bleaching 15/TODO:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{GoogleTrans-en}}{{TeamHeader|Development Team|roadmap_link={{Upcoming Stable Release}}/Roadmap}}</noinclude><br />
=== Active Tasks ===<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
! Task<br />
! Owner<br />
! Notes<br />
|-<br />
| Bug importer from trac.laptop.org to trac.sugarlabs.org<br />
| tomeu (w/m_stone's help)<br />
| We need to do the Big Move of Sugar bugs. A one-time cost, fortunately. Ed has agreed that the bugs in OLPC trac will be closed with pointers to the SL trac.<br />
|-<br />
| Identifying bugs to move from trac.laptop.org to trac.sugarlabs.org<br />
| tomeu, erikos, marco<br />
| We need a very *very* high-level assessment of bugs to be moved over. Basic, *basic* triage from knowledgeable developers.<br />
|-<br />
| Trim down SoaS image<br />
| sdziallas <br />
| SoaS-2 is slimmed down already SoaS-1 is not yet<br />
|-<br />
| Restructure the Development Team wiki<br />
| marcopg<br />
| (later I want to start adding documentation)<br />
|-<br />
| Adding buddies not tracked in the PS http://dev.sugarlabs.org/ticket/315<br />
| tomeu<br />
| Punted to 0.86, when we kill the PS (wait... we're killing the PS?)<br />
|-<br />
| Setup activities.sugarlabs.org<br />
| mchua<br />
| <br />
|-<br />
|}<br />
<br />
<noinclude><br />
=== Completed Tasks ===<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
! Task<br />
! Owner <br />
! Completion Date<br />
! Notes<br />
|-<br />
| Get latest SoaS released<br />
| marco<br />
| Critical for testing; we need to have a cut of this that simple testing folks can test.<br />
| 29 Jan 2009<br />
|-<br />
| Get buildbot back<br />
| marcopg<br />
| 18 Dec 2008<br />
| <br />
|-<br />
| Move to use git.sugarlabs.org, and figure out conventions/policies to use it properly<br />
| marcopg<br />
| 18 Dec 2008<br />
| <br />
|-<br />
| Get to the point where we can effectively dogfood collaboration<br />
| marcopg<br />
| 18 Dec 2008<br />
| <br />
|-<br />
| Fix the damned palettes, they are seriously too broken<br />
| marcopg<br />
| 18 Dec 2008<br />
|<br />
|-<br />
| NM - Support wired devices<br />
| erikos<br />
| 21 Dec 2008<br />
|<br />
|-<br />
| Implement journal entry transfer<br />
| tomeu<br />
| 03 Jan 2009<br />
| <br />
|-<br />
| Finish support for removable devices in the journal<br />
| tomeu<br />
| 12 Jan 2009<br />
| <br />
|-<br />
| NM - Autoconnect to preferred connections<br />
| erikos<br />
| 13 Jan 2009<br />
|<br />
|-<br />
| Making PS a bit more controllable from the control panel<br />
| erikos (patch by morgan)<br />
| 21.01.2009 {{Bug|142}} (patch by morgs, restart gabble without needing to restart Sugar, switch between jabber servers)<br />
|-<br />
| Logout option<br />
| unmadindu (patch), eben (icon), tomeu (review)<br />
| 21.01.2009 detecting if the session was launched from GDM was too complicated, so we show the logout option by default and single user system need to patch it out (medium term is to provide a gconf setting {{Bug|207}})<br />
<br />
[[Category:Development Team]]<br />
</noinclude><br />
<br />
<br />
[[Category:TODO]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Sugargame/Examples&diff=45196Development Team/Sugargame/Examples2010-02-21T22:22:45Z<p>Anal bleaching: moved Development Team/Sugargame/Examples to Anal bleaching 15/Sugargame/Examples:&#32;Anal bleaching</p>
<hr />
<div>== Bouncing Ball ==<br />
<br />
This is a simple Sugargame example which bounces a red ball across the screen. <br />
<br />
A Sugar toolbar provides Pause and Unpause functionality, demonstrating communication between Sugar and Pygame.<br />
<br />
====TestActivity.py====<br />
<br />
This file implements the TestActivity activity class. The constructor sets up the Pygame canvas and Sugar toolbar, and starts the game running.<br />
<br />
from gettext import gettext as _<br />
<br />
import sys<br />
import gtk<br />
import pygame<br />
<br />
import sugar.activity.activity<br />
import sugar.graphics.toolbutton<br />
<br />
sys.path.append('..') # Import sugargame package from top directory.<br />
import sugargame.canvas<br />
<br />
import TestGame<br />
<br />
class TestActivity(sugar.activity.activity.Activity):<br />
def __init__(self, handle):<br />
super(TestActivity, self).__init__(handle)<br />
<br />
self.paused = False<br />
<br />
# Create the game instance.<br />
self.game = TestGame.TestGame()<br />
<br />
# Build the activity toolbar.<br />
self.build_toolbar()<br />
<br />
# Build the Pygame canvas.<br />
self._canvas = sugargame.canvas.PygameCanvas(self)<br />
# Note that set_canvas implicitly calls read_file when resuming from the Journal.<br />
self.set_canvas(self._canvas)<br />
<br />
# Start the game running.<br />
self._canvas.run_pygame(self.game.run)<br />
<br />
def build_toolbar(self): <br />
stop_play = sugar.graphics.toolbutton.ToolButton('media-playback-stop')<br />
stop_play.set_tooltip(_("Stop"))<br />
stop_play.set_accelerator(_('<ctrl>space'))<br />
stop_play.connect('clicked', self._stop_play_cb)<br />
<br />
toolbar = gtk.Toolbar()<br />
toolbar.insert(stop_play, 0)<br />
toolbar.insert(gtk.SeparatorToolItem(), 1)<br />
<br />
toolbox = sugar.activity.activity.ActivityToolbox(self)<br />
toolbox.add_toolbar(_("Pygame"), toolbar)<br />
<br />
toolbox.show_all()<br />
self.set_toolbox(toolbox)<br />
<br />
def _stop_play_cb(self, button):<br />
# Pause or unpause the game.<br />
self.paused = not self.paused<br />
self.game.set_paused(self.paused)<br />
<br />
# Update the button to show the next action.<br />
if self.paused:<br />
button.set_icon('media-playback-start')<br />
button.set_tooltip(_("Start"))<br />
else:<br />
button.set_icon('media-playback-stop')<br />
button.set_tooltip(_("Stop"))<br />
<br />
def read_file(self, file_path):<br />
self.game.read_file(file_path)<br />
<br />
def write_file(self, file_path):<br />
self.game.write_file(file_path)<br />
<br />
====TestGame.py====<br />
<br />
This file implements the game (really just a bouncing ball animation). Note the main function at the end; this file can also be run as a standalone Pygame program.<br />
<br />
#!/usr/bin/python<br />
import pygame<br />
import gtk<br />
<br />
class TestGame:<br />
def __init__(self):<br />
# Set up a clock for managing the frame rate.<br />
self.clock = pygame.time.Clock()<br />
<br />
self.x = -100<br />
self.y = 100<br />
<br />
self.vx = 10<br />
self.vy = 0<br />
<br />
self.paused = False<br />
<br />
def set_paused(self, paused):<br />
self.paused = paused<br />
<br />
# Called to save the state of the game to the Journal.<br />
def write_file(self, file_path):<br />
pass<br />
<br />
# Called to load the state of the game from the Journal.<br />
def read_file(self, file_path):<br />
pass<br />
<br />
# The main game loop.<br />
def run(self):<br />
self.running = True <br />
<br />
screen = pygame.display.get_surface()<br />
<br />
while self.running:<br />
# Pump GTK messages.<br />
while gtk.events_pending():<br />
gtk.main_iteration()<br />
<br />
# Pump PyGame messages.<br />
for event in pygame.event.get():<br />
if event.type == pygame.QUIT:<br />
return<br />
elif event.type == pygame.VIDEORESIZE:<br />
pygame.display.set_mode(event.size, pygame.RESIZABLE)<br />
<br />
# Move the ball<br />
if not self.paused:<br />
self.x += self.vx<br />
if self.x > screen.get_width() + 100:<br />
self.x = -100<br />
<br />
self.y += self.vy<br />
if self.y > screen.get_height() - 100:<br />
self.y = screen.get_height() - 100<br />
self.vy = -self.vy<br />
<br />
self.vy += 5;<br />
<br />
# Clear Display<br />
screen.fill((255,255,255)) #255 for white<br />
<br />
# Draw the ball<br />
pygame.draw.circle(screen, (255,0,0), (self.x, self.y), 100)<br />
<br />
# Flip Display<br />
pygame.display.flip() <br />
<br />
# Try to stay at 30 FPS<br />
self.clock.tick(30)<br />
<br />
# This function is called when the game is run directly from the command line:<br />
# ./TestGame.py <br />
def main():<br />
pygame.init()<br />
pygame.display.set_mode((0, 0), pygame.RESIZABLE)<br />
game = TestGame() <br />
game.run()<br />
<br />
if __name__ == '__main__':<br />
main()</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Sugargame&diff=45194Development Team/Sugargame2010-02-21T22:22:45Z<p>Anal bleaching: moved Development Team/Sugargame to Anal bleaching 15/Sugargame:&#32;Anal bleaching</p>
<hr />
<div>== Sugargame ==<br />
<br />
Sugargame is a Python package which allows [http://www.pygame.org/ Pygame] <br />
programs to run well under Sugar. <br />
It is fork of the olcpgames framework, which is no longer maintained.<br />
<br />
http://git.sugarlabs.org/projects/sugargame<br />
<br />
What it does:<br />
<br />
* Wraps a Sugar activity around an existing Pygame program with few changes<br />
* Allows Sugar toolbars and other widgets to be added to the activity UI<br />
* Provides hooks for saving to and restoring from the Journal<br />
<br />
==== Differences between Sugargame and olpcgames ====<br />
<br />
The olpcgames framework provides a wrapper around Pygame which attempts to <br />
allow a Pygame program to run mostly unmodified under Sugar. To this end, <br />
the Pygame program is run in a separate thread with its own Pygame message <br />
loop while the main thread runs the GTK message loop. Also, olpcgames wraps <br />
Sugar APIs such as the journal and mesh into a Pygame-like API.<br />
<br />
Sugargame takes a simpler approach; it provides a way to embed Pygame into a <br />
GTK widget. The Sugar APIs are used to interact with Sugar, the Pygame APIs <br />
are used for the game. <br />
<br />
Sugargame advantages:<br />
<br />
* Simpler code<br />
* More elegant interface between Pygame and GTK<br />
* Runs as a single thread: no thread related segfaults<br />
* Possible to use Sugar widgets with Pygame<br />
<br />
Sugargame limitations:<br />
<br />
* No support for Pango or SVG sprites (yet)<br />
<br />
== Using Sugargame ==<br />
<br />
See also [[Development Team/Sugargame/Examples]].<br />
<br />
==== Wrapping a Pygame program ====<br />
<br />
To use Sugargame to Sugarize a Pygame program, set up an activity directory and <br />
copy the Sugargame package to it.<br />
<br />
The activity directory should look something like this:<br />
<br />
activity/ - Activity directory: activity.info, SVG icon, etc.<br />
sugargame/ - Sugargame package<br />
MyActivity.py - Activity class<br />
mygame.py - Pygame code<br />
setup.py - Install script<br />
<br />
To make the Activity class, start with test/TestActivity.py from the Sugargame <br />
distribution. <br />
<br />
The activity should create a single PygameCanvas widget and call run_pygame on it. <br />
Pass the main loop function of the Pygame program.<br />
<br />
self._canvas = sugargame.canvas.PygameCanvas(self)<br />
self.set_canvas(self._canvas)<br />
<br />
# Start the game running.<br />
self._canvas.run_pygame(self.game.run)<br />
<br />
In your Pygame main loop, pump the GTK message loop:<br />
<br />
while gtk.events_pending():<br />
gtk.main_iteration()<br />
<br />
==== Adding Pygame to a PyGTK activity ====<br />
<br />
To add Pygame to an existing Sugar activity, create a PygameCanvas widget and call <br />
run_pygame on it. <br />
<br />
widget = sugargame.canvas.PygameCanvas(self)<br />
vbox.pack_start(widget)<br />
<br />
widget.run_pygame(self.game.run)<br />
<br />
Due to limitations of Pygame and SDL, there can only be one PygameCanvas in the <br />
entire activity.<br />
<br />
The argument to run_pygame is a function structured like a Pygame program. In the <br />
main loop, remember to dispatch GTK messages using gtk.main_iteration().<br />
<br />
def main_loop():<br />
clock = pygame.time.Clock()<br />
screen = pygame.display.get_surface()<br />
<br />
while self.running:<br />
# Pump GTK messages.<br />
while gtk.events_pending():<br />
gtk.main_iteration()<br />
<br />
# Pump PyGame messages.<br />
for event in pygame.event.get():<br />
if event.type == pygame.QUIT:<br />
return<br />
elif event.type == pygame.VIDEORESIZE:<br />
pygame.display.set_mode(event.size, pygame.RESIZABLE)<br />
<br />
# Clear Display<br />
screen.fill((255,255,255)) #255 for white<br />
<br />
# Draw stuff here<br />
.................<br />
<br />
# Flip Display<br />
pygame.display.flip() <br />
<br />
# Try to stay at 30 FPS<br />
self.clock.tick(30)<br />
<br />
== Support ==<br />
<br />
For help with Sugargame, please email the Sugar Labs development list:<br />
<br />
: sugar-devel@lists.sugarlabs.org<br />
<br />
Sugargame is developed by Wade Brainerd <wadetb@gmail.com>. <br />
<br />
It is loosely based on the source code to the olpcgames framework, developed by <br />
the One Laptop Per Child project.<br />
<br />
=== Changelog ===<br />
<br />
====v1.0====<br />
Initial version of Sugargame</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Sugar_Architectural_Diagram&diff=45192Development Team/Sugar Architectural Diagram2010-02-21T22:22:44Z<p>Anal bleaching: moved Development Team/Sugar Architectural Diagram to Anal bleaching 15/Sugar Architectural Diagram:&#32;Anal bleaching</p>
<hr />
<div>{| border=1<br />
|-<br />
|rowspan=3|<div style="text-align: center;">Regular X applications</div>||rowspan=2|<div style="text-align: center;">Non-Python Sugar Activities<br/>(Etoys, Simcity, Mono, etc.)</div>||colspan=2|<div style="text-align: center;">Sugar shell<br/>(desktop window, panel, Journal)</div>||colspan=2|<div style="text-align: center;">Python Sugar Activities</div><br />
|-<br />
|colspan=4|<div style="text-align: center;">Sugar toolkit (Python-only)</div><br />
|-<br />
|colspan=2|<div style="text-align: center;">Datastore service</div>||colspan=2|<div style="text-align: center;">Presence service</div><br />
|-<br />
|colspan=8|<div style="text-align: center;">Matchbox window manager<br/>(We are in the process of switching to Metacity)</div><br />
|-<br />
|colspan=8|<div style="text-align: center;">GNOME-ish Linux desktop<br/>X11, HAL, D-Bus, NetworkManager, GConf, Telepathy, etc</div><br />
|}</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Sugar_Architectual_Diagram&diff=45190Development Team/Sugar Architectual Diagram2010-02-21T22:22:44Z<p>Anal bleaching: moved Development Team/Sugar Architectual Diagram to Anal bleaching 15/Sugar Architectual Diagram:&#32;Anal bleaching</p>
<hr />
<div>#REDIRECT [[Development Team/Sugar Architectural Diagram]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Source_Code&diff=45188Development Team/Source Code2010-02-21T22:22:44Z<p>Anal bleaching: moved Development Team/Source Code to Anal bleaching 15/Source Code:&#32;Anal bleaching</p>
<hr />
<div>{{Developers}}<br />
{{TOCright}}<br />
If you want to package sugar for your favourite distribution or just want to examine sugar's lovely code ;) you can find all the source code of each module at the links below.<br />
<br />
== Stable ==<br />
<br />
* [[0.82/Source Code|Sucrose 0.82]]<br />
<br />
== Unstable ==<br />
<br />
=== Glucose ===<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
! Name<br />
! Description <br />
! Repository<br />
! Latest release<br />
|-<br />
| sugar<br />
| Core UI components<br />
| [http://git.sugarlabs.org/projects/sugar git://git.sugarlabs.org/sugar/mainline.git]<br />
| [http://download.sugarlabs.org/sources/sucrose/glucose/sugar/sugar-0.83.8.tar.bz2 0.83.8]<br />
|-<br />
| sugar-toolkit<br />
| Activities and extensions toolkit<br />
| [http://git.sugarlabs.org/projects/sugar-toolkit git://git.sugarlabs.org/sugar-toolkit/mainline.git]<br />
| [http://download.sugarlabs.org/sources/sucrose/glucose/sugar-toolkit/sugar-toolkit-0.83.7.tar.bz2 0.83.7]<br />
|-<br />
| sugar-artwork<br />
| Themes and icons<br />
| [http://git.sugarlabs.org/projects/sugar-artwork git://git.sugarlabs.org/sugar-artwork/mainline.git]<br />
| [http://download.sugarlabs.org/sources/sucrose/glucose/sugar-artwork/sugar-artwork-0.83.5.tar.bz2 0.83.5]<br />
|-<br />
| sugar-base<br />
| Helpers for services and activities<br />
| [http://git.sugarlabs.org/projects/sugar-base git://git.sugarlabs.org/sugar-base/mainline.git]<br />
| [http://download.sugarlabs.org/sources/sucrose/glucose/sugar-base/sugar-base-0.83.4.tar.bz2 0.83.4]<br />
|-<br />
| sugar-datastore<br />
| Backend of the journal<br />
| [http://git.sugarlabs.org/projects/sugar-datastore git://git.sugarlabs.org/sugar-datastore/mainline.git]<br />
| [http://download.sugarlabs.org/sources/sucrose/glucose/sugar-datastore/sugar-datastore-0.83.3.tar.bz2 0.83.3]<br />
|-<br />
| sugar-presence-service<br />
| Presence service<br />
| [http://git.sugarlabs.org/projects/sugar-presence-service git://git.sugarlabs.org/sugar-presence-service/mainline.git]<br />
| [http://download.sugarlabs.org/sources/sucrose/glucose/sugar-presence-service/sugar-presence-service-0.83.3.tar.bz2 0.83.3]<br />
|-<br />
| etoys<br />
| Etoys authoring environment<br />
| [http://dev.laptop.org/git/projects/etoys git://dev.laptop.org/projects/etoys]<br />
| [http://download.sugarlabs.org/sources/sucrose/glucose/etoys/etoys-4.0.2205.tar.gz 4.0.2205]<br />
|-<br />
| hulahop<br />
| Widget for embedding a Mozilla browser<br />
| [http://git.sugarlabs.org/projects/hulahop http://git.sugarlabs.org/projects/hulahop]<br />
| [http://download.sugarlabs.org/sources/sucrose/glucose/hulahop/hulahop-0.4.9.tar.bz2 0.4.9]<br />
|}<br />
<br />
=== Fructose ===<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
! Name<br />
! Description <br />
! Repository<br />
! Latest release<br />
|-<br />
|chat<br />
|Text chatting<br />
|[http://git.sugarlabs.org/projects/chat git://git.sugarlabs.org/chat/mainline.git]<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Chat/Chat-64.tar.bz2 64]<br />
|-<br />
|browse<br />
|Web browser<br />
|[http://git.sugarlabs.org/projects/web git://git.sugarlabs.org/browse/mainline.git]<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Browse/Browse-105.tar.bz2 105]<br />
|-<br />
|read<br />
|Document viewer<br />
|[http://git.sugarlabs.org/projects/read git://git.sugarlabs.org/read/mainline.git]<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Read/Read-65.tar.bz2 65]<br />
|-<br />
|log<br />
|Log viewer<br />
|http://git.sugarlabs.org/projects/log<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Log/Log-18.tar.bz2 18]<br />
|-<br />
|write<br />
|Word processor<br />
|http://git.sugarlabs.org/projects/write<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Write/Write-63.tar.bz2 63]<br />
|-<br />
|calculate<br />
|Calculator<br />
|http://git.sugarlabs.org/projects/calculate<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Calculate/Calculate-28.tar.bz2 28]<br />
|-<br />
|terminal<br />
|Terminal<br />
|http://git.sugarlabs.org/projects/terminal<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Terminal/Terminal-24.tar.bz2 24]<br />
|-<br />
|pippy<br />
|Programming in python<br />
|[http://git.sugarlabs.org/projects/pippy git://git.sugarlabs.org/pippy/mainline.git]<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Pippy/Pippy-31.tar.bz2 31]<br />
|-<br />
|jukebox<br />
|Audio and video player<br />
|[http://git.sugarlabs.org/projects/jukebox git://git.sugarlabs.org/jukebox/mainline.git]<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Jukebox/Jukebox-7.tar.bz2 7]<br />
|-<br />
|imageviewer<br />
|Image viewer<br />
|[http://git.sugarlabs.org/projects/imageviewer git://git.sugarlabs.org/imageviewer/mainline.git]<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/ImageViewer/ImageViewer-7.tar.bz2 7]<br />
|-<br />
|turtleart<br />
|Turtle art<br />
|[http://git.sugarlabs.org/projects/turtleart git://git.sugarlabs.org/turtleart/mainline.git]<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/TurtleArt/TurtleArt-43.tar.bz2 43]<br />
|-<br />
|etoys<br />
|Etoys activity<br />
|[http://git.sugarlabs.org/projects/etoys git://git.sugarlabs.org/etoys/mainline.git]<br />
|[http://download.sugarlabs.org/sources/sucrose/fructose/Etoys/Etoys-100.tar.gz 100]<br />
|}<br />
<br />
=== Honey ===<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
! Name<br />
! Description <br />
! Repository<br />
! Latest release<br />
|-<br />
|cartoon-builder<br />
|CartoonBuilder activity<br />
|[http://git.sugarlabs.org/projects/cartoon-builder git://git.sugarlabs.org/cartoon-builder/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/CartoonBuilder/CartoonBuilder-3.tar.bz2 3]<br />
|-<br />
|flipsticks<br />
|FlipSticks activity<br />
|[http://git.sugarlabs.org/projects/flipsticks git://git.sugarlabs.org/flipsticks/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/FlipSticks/FlipSticks-2.tar.bz2 2]<br />
|-<br />
|speak<br />
|Speak activity<br />
|[http://git.sugarlabs.org/projects/speak git://git.sugarlabs.org/speak/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/Speak/Speak-9.tar.bz2 9]<br />
|-<br />
|gst-plugins-espeak<br />
|Espeak as sound source for gstreamer<br />
|[http://git.sugarlabs.org/projects/gst-plugins-espeak git://git.sugarlabs.org/gst-plugins-espeak/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/gst-plugins-espeak/gst-plugins-espeak-0.3.1.tar.bz2 0.3.1]<br />
|-<br />
|moon<br />
|Moon activity<br />
|[http://git.sugarlabs.org/projects/moon git://git.sugarlabs.org/moon/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/Moon/Moon-10.tar.bz2 10]<br />
|-<br />
|labyrinth<br />
|Labyrinth activity<br />
|[http://git.sugarlabs.org/projects/labyrinth git://git.sugarlabs.org/labyrinth/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/Labyrinth/Labyrinth-7.tar.bz2 7]<br />
|-<br />
|readetexts<br />
|ReadETexts activity<br />
|[http://git.sugarlabs.org/projects/readetexts git://git.sugarlabs.org/readetexts/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/ReadETexts/ReadETexts-12.tar.bz2 12]<br />
|-<br />
|clock<br />
|Clock activity<br />
|[http://git.sugarlabs.org/projects/clock git://git.sugarlabs.org/clock/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/Clock/Clock-5.tar.bz2 5]<br />
|-<br />
|physics<br />
|Physics activity<br />
|[http://git.sugarlabs.org/projects/physics git://git.sugarlabs.org/physics/mainline.git]<br />
|[http://download.sugarlabs.org/sources/honey/Physics/Physics-2.tar.bz2 2]<br />
|}<br />
<br />
=== Dependencies ===<br />
<br />
The Sugar interface is based on the GNOME and freedesktop software<br />
stacks, using technologies like Gtk+, dbus, xorg,<br />
matchbox-window-manager and gconf. It is written in Python, making it<br />
easily extended. For the collaboration part, Sugar is using the<br />
telepathy framework.<br />
<br />
The activities depend on technologies like xulrunner for the browser,<br />
abiword for the write activity and squeak for etoys.<br />
<br />
* [http://www.gnome.org/ GNOME]<br />
* [http://www.freedesktop.org/wiki/ freedesktop]<br />
* [http://www.gtk.org/ Gtk+]<br />
* [http://www.freedesktop.org/wiki/Software/dbus dbus]<br />
* [http://www.x.org/wiki/Home X Windows System]<br />
* [http://matchbox-project.org/ matchbox]<br />
* [http://www.gnome.org/projects/gconf/ gconf]<br />
* [http://telepathy.freedesktop.org/wiki/ telepathy]<br />
* [http://developer.mozilla.org/en/XULRunner xulrunner]<br />
* [http://www.abisource.com/ abiword]<br />
* [http://www.squeak.org/ squeak]<br />
<br />
[[Category:Developer]]<br />
[[Category:Installing Sugar]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Sound&diff=45186Development Team/Sound2010-02-21T22:22:43Z<p>Anal bleaching: moved Development Team/Sound to Anal bleaching 15/Sound:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{GoogleTrans-en}}</noinclude>{{TOCright}}<br />
==Introduction==<br />
This subpage of the [[Development Team]] is aimed at bringing together all known issues and solutions relating to sound on [[Sugar]]. The expansion of this wiki will enable a coordinated approach to fixing the known issues. It will also allow contributors, from inside and outside the Sugar community, to participate and follow the work being done. Please list current initiatives to improve the sound on Sugar by editing this wiki using the format described below.<br />
<br />
==Crowdsourcing Audio and Image Localization==<br />
===Explanation===<br />
* Pootle doesn't currently support the localization of audio and image files in a manner similar to text<br />
* We need a way to extract needed audio translations and images and provide a mechanism that comm<br />
* Greater details are in these blog posts:<br />
** http://karmaproject.wordpress.com/2009/07/16/localizing-images-and-audio-files/<br />
** http://blog.olenepal.org/index.php/archives/335<br />
<br />
===Current available solutions===<br />
* alfresco<br />
* other software packages<br />
<br />
===Proposed solution===<br />
* modifying pootle to support uploading audio and image files<br />
* using something like alfresco<br />
===Status===<br />
* Under discussion, meeting to be held at 11:30 UTC July 21 on #sugar-meeting<br />
*...<br />
<br />
==Loss of Sound Volume==<br />
===Explanation===<br />
*[Information on known issue here]<br />
*...<br />
===Current available solutions===<br />
* In Terminal, <code>amixer sset PCM 90% unmute</code><br />
* [[olpc:FixSound]]<br />
===Proposed solution===<br />
*[Information on solution here]<br />
*...<br />
===Status===<br />
*http://www.mail-archive.com/sugar-devel@lists.sugarlabs.org/msg08016.html<br />
*http://dev.laptop.org/ticket/9248<br />
<br />
==Sugar Sound Workshop (in conjunction with [http://lac.linuxaudio.org/2010 LAC2010])==<br />
===Explanation===<br />
* Workshop to be held in Ultrecht beginning of May 2010 with aim to improve sound on Sugar<br />
* Please add issues you think are relevant for the workshop in the headings below<br />
===Attendees===<br />
* Please add your name here if you think you can help in any way:<br />
** [[User:Dschonstein|David Schönstein]]<br />
<br />
==Title of issue here==<br />
===Explanation===<br />
* Details<br />
<br />
===Current available solutions===<br />
* Details<br />
<br />
===Proposed solution===<br />
* Details<br />
<br />
===Status===<br />
* Details<br />
<br />
==People==<br />
*[[User:Dschonstein|David Schönstein]]<br />
<br />
[[Category:Development Team]]<br />
[[Category:Development Team/Sound]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Resources&diff=45184Development Team/Resources2010-02-21T22:22:43Z<p>Anal bleaching: moved Development Team/Resources to Anal bleaching 15/Resources:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{GoogleTrans-en}}{{TeamHeader|Development Team|roadmap_link={{Upcoming Stable Release}}/Roadmap}}</noinclude><br />
{{TOCright}}<br />
{{:Development Team/Sugar_Architectural_Diagram}}<br />
<br />
Sugar is built on top of the GNU/Linux desktop: GTK, X11, D-Bus, Network Manager, Gconf, Telepthay, etc. We use the Matchbox window manager (but are in the process of switching to Metacity). Sugar provides a data-storage service and a presence service that are accessed through D-Bus, thus Sugar Activities can be coded in any language. The majority are written in Python, which takes advantage of binding in the Sugar-Toolkit. The Sugar shell manages the desktop and the Journal.<br />
<br />
== Tutorials ==<br />
<br />
[[olpc:Developers/Stack#Python/PyGTK | PyGTK]] developers will find a collection of [[olpc:Tutorials |Tutorials]] available, from very simple Hello World projects to an in-depth description of the development of [[olpc:Block_Party|Block Party]].<br />
<br />
[[olpc:Developers/Stack#OLPCGames| Pygame]] developers will likely want to start with:<br />
<br />
* [[olpc:Game_Development_Newbies| Game Development Newbies]] -- general introduction<br />
* [[olpc:Game_development_HOWTO |Game development HOWTO]] -- 5-minutes to your first activity in [http://wiki.laptop.org/go/Pygame Pygame]<br />
<br />
[[olpc:Developers/Stack#Etoys|Etoys]]/Smalltalk developers will want to start with [olpc:Smalltalk_Development_on_XO|Smalltalk Development on XO]].<br />
<br />
Other developers will want to read about [[olpc:Sugarizing|Sugarizing]] non-Python applications.<br />
<br />
== Reference ==<br />
<br />
* http://api.sugarlabs.org/ -- pointers to the various libraries' reference documentation.<br />
* [[Development Team/Low-level Activity API|Low-level Activity API]] -- how to write Sugar activities without Python<br />
* [[Development Team/Release]] -- Sugar platform release process<br />
<br />
You can also run the pydoc script on an XO in order to have browseable pydoc documentation locally. To do this, open a Terminal activity and run:<br />
<br />
pydoc -p 8080<br />
<br />
then open a [[OLPC:Browse|Web Browser]] activity and go to the url:<br />
<br />
http://localhost:8080/<br />
<br />
to view the documentation. This approach works best with Python-coded libraries which have spent some time on their docstrings (and generally requires that you know English, as most docstrings are written in English).<br />
<br />
== Resources ==<br />
{{:Template:Developers}}<br />
* The [[Template:Developers]] linkbar (just above) can be placed on any wiki page by inserting this text <tt><nowiki>{{:Template:Developers}}</nowiki></tt> Put on your project's wiki page to help you and collaborators while researching and documenting the code base.<br />
* [[Development Team#Subpages]] shows the pages under the Development Team branch on the wiki.<br />
* The [[:Category:Developer]] collects everything in the wiki that's been tagged as pertaining to developers (it's a bit hard to navigate)<br />
* [[Development Team/Almanac/Code Snippets]] a few canonical code fragments that may be of use when coding in PyGTK<br />
<br />
== Beginner's tools ==<br />
Link to Andrew's course in the Overview chapter of the Extending<br />
Sugar section of the FLOSS manual for Sugar<br />
(http://en.flossmanuals.net/Sugar/Overview). <br />
<br />
# The Byte of Python (http://www.swaroopch.com/notes/Python)<br />
# How to Think Like a Computer Scientist: Learning with Python, 2nd edition (http://openbookproject.net/thinkcs/python2e.php)<br />
# Python for Fun (http://www.openbookproject.net/py4fun/)<br />
# Python Bibliotheca (http://www.openbookproject.net/pybiblio/)<br />
# Dive into Python (http://diveintopython.org/)<br />
# Hands-on Python Tutorial (http://www.cs.luc.edu/~anh/python/hands-on/)<br />
# Snake Wrangling for Kids (http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/)<br />
# PyGame (scattered throughout the site) (http://www.pygame.org/)<br />
<br />
Please feel free to add other suggested resources to the ones already there and to add some<br />
feedback, e.g., good for beginners/experts, etc.<br />
<br />
== FAQ ==<br />
<br />
The [[OLPC:Developers/FAQ]] is large enough to merit its own page in the Developer's manual.<br />
<br />
== Contributing ==<br />
<br />
As with most Open Source software projects, we have difficulties with documentation. We are '''very''' interested in finding people interested in documenting the system. If you are too shy about your coding skills to write code, helping us document the code-base would be an amazing and valuable contribution.<br />
<br />
Helping organize the wiki (the web site you are currently reading) to better document the platform and development process would also be very helpful.<br />
<br />
=== Wade's handy links list ===<br />
<br />
Pulling the source to an existing activity from Git:<br />
<br />
* [[Activity_Team/Git_Migration|Git]]<br />
<br />
Creating a new activity:<br />
<br />
* [[OLPC:Activity_tutorial]]<br />
* [[Development Team/Almanac/Code_Snippets]]<br />
* http://dev.laptop.org/~cscott/joyride-1477-api/<br />
* http://git.sugarlabs.org/projects/hello-world<br />
<br />
For PyGTK activities:<br />
<br />
* [[OLPC:PyGTK]]<br />
* [[OLPC:PyGTK/Hello_World_Tutorial]]<br />
* [[OLPC:Beyond_Hello_World]]<br />
* http://www.pygtk.org/docs/pygtk/index.html<br />
<br />
For PyGame activities:<br />
<br />
* [[OLPC:Pygame]]<br />
* http://pygame.org/docs/ref/index.html<br />
<br />
For video playback using gstreamer:<br />
<br />
* http://pygstdocs.berlios.de/pygst-reference/index.html<br />
<br />
For supporting collaboration:<br />
<br />
* [[OLPC:Activity Sharing]]<br />
<br />
Submitting to OLPC:<br />
<br />
* [[OLPC:Project hosting]]<br />
* [[OLPC:Importing your project]]<br />
<br />
<br />
[[Category:Development Team]]<br />
[[Category:Resource]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Release/Roadmap/0.86&diff=45182Development Team/Release/Roadmap/0.862010-02-21T22:22:42Z<p>Anal bleaching: moved Development Team/Release/Roadmap/0.86 to Anal bleaching 15/Release/Roadmap/0.86:&#32;Anal bleaching</p>
<hr />
<div>#REDIRECT [[0.86/Roadmap]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Release/Roadmap/0.84&diff=45180Development Team/Release/Roadmap/0.842010-02-21T22:22:42Z<p>Anal bleaching: moved Development Team/Release/Roadmap/0.84 to Anal bleaching 15/Release/Roadmap/0.84:&#32;Anal bleaching</p>
<hr />
<div>#REDIRECT [[0.86/Roadmap]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Release/Roadmap&diff=45178Development Team/Release/Roadmap2010-02-21T22:22:41Z<p>Anal bleaching: moved Development Team/Release/Roadmap to Anal bleaching 15/Release/Roadmap:&#32;Anal bleaching</p>
<hr />
<div>#REDIRECT [[0.88/Roadmap]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Release/Releases/Sucrose/0.84&diff=45176Development Team/Release/Releases/Sucrose/0.842010-02-21T22:22:41Z<p>Anal bleaching: moved Development Team/Release/Releases/Sucrose/0.84 to Anal bleaching 15/Release/Releases/Sucrose/0.84:&#32;Anal bleaching</p>
<hr />
<div>#REDIRECT [[0.84/Notes]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Release/Releases/Sucrose/0.82&diff=45174Development Team/Release/Releases/Sucrose/0.822010-02-21T22:22:41Z<p>Anal bleaching: moved Development Team/Release/Releases/Sucrose/0.82 to Anal bleaching 15/Release/Releases/Sucrose/0.82:&#32;Anal bleaching</p>
<hr />
<div>#REDIRECT [[0.82/Notes]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Release/Modules&diff=45172Development Team/Release/Modules2010-02-21T22:22:40Z<p>Anal bleaching: moved Development Team/Release/Modules to Anal bleaching 15/Release/Modules:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}{{TOCright}}</noinclude><br />
<br />
== sugar ==<br />
;Maintainer<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
:[[User:Alsroot|Aleksey Lim]] (Journal)<br />
;Peers<br />
:[[User:Erikos|Simon Schampijer]]<br />
:[[User:MartinDengler|Martin Dengler]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/sugar<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://www.sugarlabs.org<br />
<br />
== sugar-base ==<br />
;Maintainer<br />
:[[User:Erikos|Simon Schampijer]]<br />
;Peers<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
:[[User:MartinDengler|Martin Dengler]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/sugar-base<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://www.sugarlabs.org<br />
<br />
== sugar-datastore ==<br />
;Maintainer<br />
:[[User:Alsroot|Aleksey Lim]]<br />
;Peers<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
:[[User:sascha_silbe|Sascha Silbe]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/sugar-datastore<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://www.sugarlabs.org<br />
<br />
== sugar-presence-service ==<br />
;Maintainer<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
;Peers<br />
:[[User:Cassidy|Guillaume Desmottes]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/sugar-presence-service<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://www.sugarlabs.org<br />
<br />
== sugar-toolkit ==<br />
;Maintainer<br />
:[[User:Erikos|Simon Schampijer]]<br />
;Peers<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
:[[User:MartinDengler|Martin Dengler]]<br />
:[[User:Alsroot|Aleksey Lim]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/sugar-toolkit<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://www.sugarlabs.org<br />
<br />
== sugar-artwork ==<br />
;Maintainer<br />
:[[User:BenjaminBerg|Benjamin Berg]]<br />
;Peers<br />
:[[User:Erikos|Simon Schampijer]]<br />
:[[User:Garycmartin|Gary C. Martin]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/sugar-artwork<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://www.sugarlabs.org<br />
<br />
== hulahop ==<br />
;Maintainer<br />
:unmaintained<br />
;Peers<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/hulahop<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://www.sugarlabs.org<br />
<br />
== chat ==<br />
;Maintainer<br />
:[[User:Alsroot|Aleksey Lim]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/chat<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Chat<br />
<br />
== browse ==<br />
;Maintainer<br />
:unmaintained<br />
;Peers<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/browse<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Browse<br />
<br />
== read ==<br />
;Maintainer<br />
:[http://sayamindu.randomink.org/ Sayamindu Dasgupta]<br />
;Peers<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
:[[User:Erikos|Simon Schampijer]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/read<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Read<br />
<br />
== calculate ==<br />
;Maintainer<br />
:Reinier Heeres<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/calculate<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Calculate<br />
<br />
== log ==<br />
;Maintainer<br />
:unmaintained<br />
;Peers<br />
:[http://edsiper.linuxchile.cl Eduardo Silva]<br />
:[[User:Alsroot|Aleksey Lim]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/calculate<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Log<br />
<br />
== write ==<br />
;Maintainer<br />
:[http://uwog.net/ J.M. Maurer]<br />
;Peers<br />
:[http://msevior.livejournal.com/ Martin Sevior]<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/write<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Write<br />
<br />
== terminal ==<br />
;Maintainer<br />
:[http://sayamindu.randomink.org/ Sayamindu Dasgupta]<br />
;Peers<br />
:[[User:Tomeu|Tomeu Vizoso]]<br />
:[http://edsiper.linuxchile.cl Eduardo Silva]<br />
:[[User:Wade|Wade Brainerd]]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/terminal<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Terminal<br />
<br />
== pippy ==<br />
;Maintainer<br />
:[[User:Bjordan|Brian Jordan]]<br />
;Peers<br />
:[[User:Cjb|Chris Ball]]<br />
:[http://cscott.net C. Scott Ananian]<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/pippy<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Pippy<br />
<br />
== etoys ==<br />
;Maintainers<br />
:[[User:Bert|Bert Freudenberg]]<br />
:[[User:Ohshima|Yoshiki Ohshima]]<br />
:Takashi Yamamiya<br />
:Scott Wallace<br />
:Ted Kaehler<br />
:(Who have commited code to the update stream.)<br />
;Peers<br />
:Ian Piumarta<br />
:Kim Rose<br />
:Alan Kay<br />
;Code Repository<br />
:git://dev.laptop.org/projects/etoys<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Etoys<br />
<br />
== etoys-activity ==<br />
;Maintainers<br />
:[[User:Bert|Bert Freudenberg]]<br />
:[[User:Ohshima|Yoshiki Ohshima]]<br />
:Takashi Yamamiya<br />
:Scott Wallace<br />
:Ted Kaehler<br />
;Peers<br />
:Ian Piumarta<br />
:Kim Rose<br />
:Alan Kay<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/etoys<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Etoys<br />
<br />
== imageviewer ==<br />
;Maintainer<br />
:[http://sayamindu.randomink.org/ Sayamindu Dasgupta]<br />
;Peers<br />
:None<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/imageviewer<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Image_Viewer<br />
<br />
== jukebox ==<br />
;Maintainer<br />
:[http://kushaldas.in Kushal Das]<br />
;Peers<br />
:None<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/jukebox<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:http://wiki.laptop.org/go/Jukebox<br />
<br />
== turtleart ==<br />
;Maintainer<br />
:[[User:Walter|Walter Bender]]<br />
;Peers<br />
:None<br />
;Code Repository<br />
:http://git.sugarlabs.org/projects/turtleart<br />
;Bug Tracking<br />
:http://dev.sugarlabs.org<br />
;Home Page<br />
:[[Activities/Turtle Art]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Release&diff=45168Development Team/Release2010-02-21T22:22:39Z<p>Anal bleaching: moved Development Team/Release to Anal bleaching 15/Release:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{GoogleTrans-en}}{{TeamHeader|Development Team|roadmap_link={{Upcoming Stable Release}}/Roadmap}}</noinclude><br />
{{TOCright}}<br />
== Goals and modules proposal ==<br />
<br />
At the beginning of each release cycle, maintainers will work on a set of goals, document them and assign owners. (These goals typically involve major interventions or the addition of new components, e.g., someone develops a speech engine specially for his mother tongue and wants it in Sugar. Hence, the process described below is primarily for module maintainers. If you are a developer with a feature or bug fix, you may want to refer to the [[Features/Feature Template|new feature process]].)<br />
<br />
=== New modules proposal ===<br />
<br />
The time period available to make a proposal is indicated on the schedule. To propose a new activity send mail to the [http://lists.sugarlabs.org/listinfo/sugar-devel sugar-devel@lists.sugarlabs.org], providing the following information:<br />
<br />
(See [[Features/Feature Template]].)<br />
<br />
* Short description of the features.<br />
* Screenshots or screencasts.<br />
* Are you willing to follow the [[Development Team/Release/Roadmap#Schedule|Schedule]]?<br />
* Are you willing to provide regular source releases? (releases need to be done as well when there are only changes in translations)<br />
* System components the activity depends on.<br />
* Maintainer and members of the developer team, with links to a User page on the wiki or their homepage on the web.<br />
* Status of internationalization.<br />
* Code repository.<br />
* Bug tracking system.<br />
* Homepage.<br />
<br />
Criteria for approval will be:<br />
<br />
* Supports internationalisation and localisation.<br />
* Does not duplicate the functionalities of other activities.<br />
* Provide functionality that the community judges as important for reaching the goals of the project.<br />
* Maintainer responsiveness and willingness to provide regular releases. <br />
<br />
<!-- Not required but preferred:<br />
<br />
* Use the Sugar Labs infrastructure. --><br />
<br />
== Module release ==<br />
<br />
For both intermediates and final releases module maintainers are responsible to announce the module release and make the sources available. Note that the release number of the module does not need to match the Sucrose release number.<br />
More in detail:<br />
<br />
=== Glucose ===<br />
* Build a source tarball <br />
<br />
make distcheck<br />
<br />
* In git add a tag to reference the release. The tag name should be in the vXXX form (for example v0.81.9).<br />
<br />
* test it carefully and make it available in a stable location. You need a developer account with Sugar Labs to be able to upload there. The preferred location for glucose modules is: <br />
shell.sugarlabs.org:/upload/sources/sucrose/glucose/(module_name)/ <br />
which translates to: <br />
http://download.sugarlabs.org/sources/sucrose/glucose/(module_name)/ <br />
<br />
* Send an announce mail to sugar-devel@lists.sugarlabs.org, with [RELEASE] in the subject. The form will be decided by each maintainer but it should at least include a reference to the source code tarball and an high level, user oriented list of changes.<br />
<br />
=== Fructose ===<br />
* Build a source tarball<br />
If your activity uses bundlebuilder you can use the dist_source command to generate a source tarball. Note, use a clean checkout of the repository - due to how bundlebuilder works at the moment files you would place in the directory e.g. x.patch would be included in the tarball as well.<br />
<br />
python setup.py dist_source<br />
<br />
The tarball will be generated inside the dist directory.<br />
<br />
* In git add a tag to reference the release. The tag name should be in the vXXX form (for example v20).<br />
<br />
* Test it carefully and make it available in a stable location. You need a developer account with Sugar Labs to be able to upload there. <br />
<br />
The preferred location for fructose components is: <br />
shell.sugarlabs.org:/upload/sources/sucrose/fructose/(module_name)/ <br />
which translates to: <br />
http://download.sugarlabs.org/sources/sucrose/fructose/(module_name)/ <br />
<br />
* Send an announce mail to sugar-devel@lists.sugarlabs.org, with [RELEASE] in the subject. The form will be decided by each maintainer but it should at least include a reference to the source code tarball and an high level, user oriented list of changes.<br />
<br />
=== Using the release script ===<br />
For both, fructose and glucose components you can use the release script in [http://git.sugarlabs.org/projects/sugar-tools sugar-tools] to do the above tasks in one go.<br />
<br />
You can check out the available commands (Note, the script does try to release the software of the directory you are currently in):<br />
<br />
./release --help<br />
<br />
== Sugar release ==<br />
<br />
Each release cycle will include development, beta, release candidate and final releases. The release team is responsible to coordinate with module maintainers, pull the updated modules together, perform basic QA and announce it. More in detail:<br />
<br />
* Ensure that all the module releases are available by the scheduled date.<br />
* Construct a sugar-jhbuild moduleset out of them. Run automatic and manual QA on it.<br />
* If issues arise coordinate with the relevant module maintainers to solve them.<br />
* Announce the release on sugar-devel@lists.sugarlabs.org, including a reference to the sugar-jhbuild moduleset, references to each source module and a global list of changes.<br />
<br />
== Feature freeze ==<br />
No new modules or features will be accepted for this release period. "Feature" should be interpreted as "Functionality" or "Ability". Bug fixes of existing features are not affected.<br />
<br />
This allows developers to concentrate on refining the new features instead of adding yet more functionality. <br />
<br />
The feature freeze affects all the modules included in the release and comprise also ABI for public libraries. Exceptions might be considered by the release team but they will be extremely rare. To request an exception send mail to [http://lists.sugarlabs.org/listinfo/sugar-devel sugar-devel@lists.sugarlabs.org], referencing the patches you would like to land. It will have to be granted by two [[Development Team/Release/Contacts|members]] of the release team, on the base of community feedback.<br />
<br />
== UI Freeze ==<br />
Major UI revisions or changes must be done before this date. You can still make string changes (e.g. changing a sentence in a window) before the String Freeze.<br />
<br />
This encourages developers to focus on stability and bug-fixing rather than UI changes. At this point, documentation writers do not have to worry that their work will become outdated. <br />
<br />
If you really need to do an UI change you have to ask an exception from the release team and must notify the documentation team when accepted.<br />
<br />
== String cooling==<br />
String changes have to be announced, but no exceptions have to be requested. As soon as the change is committed in git, notify the [[http://lists.laptop.org/mailman/listinfo/localization localization@lists.laptop.org localization list] about it.<br />
<br />
== String Freeze==<br />
Every string change has to be requested and to be approved. Please send an exception to the [http://lists.laptop.org/mailman/listinfo/localization localization@lists.laptop.org localization list] and [http://lists.sugarlabs.org/listinfo/sugar-devel sugar-devel@lists.sugarlabs.org] if you need to break the string freeze and ask for an exception. The localization team lead and two members of the release team need to approve such a break.<br />
<br />
== Stabilizing ==<br />
In the stabilizing phase we request every bug fix to be tied to a ticket including a testing plan. Please add the testcase in the ticket comment field. You need to mark it with |TestCase|. This adds better readability and our script that pulls together the test cases for each release is able to find it as well. For example:<br />
|TestCase|<br />
Click on Browse, Read, Pippy icons in the homepage and make sure all of them starts correctly.<br />
<br />
== Hard code freeze ==<br />
When the hard code freeze is in effect, each and every code change should be approved by the release team. Only critical fixes will be considered. To request approval send mail to sugar-devel@lists.sugarlabs.org, including the patch and a detailed description of the changes, the benefits and the risks. Approval will have to be granted by two [[Development Team/Release/Contacts#People|members]] of the team.<br />
<br />
== Branching ==<br />
<br />
After the final release of a module, a branch should be created to host further stable development. Please use a name in the form: sucrose-XXX (for example sucrose-0.84). Each module maintainer is responsible to inform the [http://lists.sugarlabs.org/listinfo/sugar-devel sugar-devel@lists.sugarlabs.org] and [http://lists.laptop.org/mailman/listinfo/localization localization@lists.laptop.org] lists about the branch.<br />
<br />
A new branch is created on the Pootle server, e.g., Fructose-0.82 and Fructose-0.84. The Localization team (the coordinator of a translation team) may push translations to any or all of the corresponding branches of your project. Changes to your master branch are not necessarily intended for the release branches as well.<br />
<br />
You can create a remote branch like this (in your repository):<br />
<br />
git branch sucrose-0.84<br />
git push origin sucrose-0.84<br />
<br />
And to work on it (in your repository):<br />
<br />
git checkout -b sucrose-0.84 origin/sucrose-0.84<br />
git pull<br />
<br />
== Roadmap ==<br />
<br />
The [[Development Team/Release/Roadmap]] is updated at the beginning of each release cycle by the release team. It includes:<br />
<br />
* Detailed schedule of release dates and freeze points.<br />
* List of modules and external dependencies.<br />
* Reference to all the tickets considered for the release.<br />
* References to the new feature proposals.<br />
<br />
== Bug triaging ==<br />
<br />
Module maintainers should ensure that their plans for the release are clearly reflected in the bug tracking system. They are responsible to set milestones and priorities accordingly, in cooperation with the release and the QA teams.<br />
<br />
Each commit or set of commit should have a ticket associated. The ticket number should be always mentioned in the git log and is used to automatically build the list of module changes for the releases.<br />
<br />
== Automation ==<br />
<br />
TBD Many of the steps described in this document can be easily automated for maintainers which are using the Sugar Labs infrastructure and for the release team. Though as a first pass we want to get the workflow right, even if it involves more manual step than strictly required.<br />
<br />
==Subpages==<br />
{{Special:PrefixIndex/{{PAGENAME}}/}}<br />
See [[:Category:Release Notes]]<br />
[[Category:Development Team/Release]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Quickstart&diff=45166Development Team/Quickstart2010-02-21T22:22:39Z<p>Anal bleaching: moved Development Team/Quickstart to Anal bleaching 15/Quickstart:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude><br />
==Introduction==<br />
A few months ago one of our classes covered the OLPC as a popular choice for low cost laptops for developing regions of the world. Our professor asked us to develop an application for the platform. Our classmates and ourselves discovered how scattered the information for the process of developing an "activity" (OLPC term for application) was. As history has shown, ease of application development is directly related to application success. While this guide will not make developing and debugging applications as easy as hitting F5 in MS Visual Studio, it seeks to provide guidance to a developer who has experience developing in Windows and would like to give XO development a shot. The only thing that you need to know going into this guide is a familiarity with the Python programming language, as well as Pygame. If you don't have this experience, I would recommend [http://docs.python.org/tut] and [http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html], respectively. In this tutorial we will cover: Cross Coding with Python and Pygame (a Python library of modules to make game programming easier), emulation, file transfer between host and emulated disk, activity creation and activity distribution by walking you through the creation of a typing tutor like this one.<br />
<br />
==Step 1: Understanding Cross coding== <br />
<br />
* Python, if you already did not know is the de facto language of the OLPC. The cool thing about Python is that it is considered easy to code in but more importantly you can run your python programs on any Python compatible platform. <br />
* Cross Coding is a method of programming in which you program on one platform (In our case Windows) and then port your application to another platform (OLPC)<br />
* This helps speed up the process of development because you can develop in a familiar environment which will also run more smoothly than the emulated XO<br />
<br />
<br />
<br />
<br />
==Step 2: Getting Python and Pygame on OLPC on your Host PC==<br />
<br />
* To code in Python on Windows you need to have python installed<br />
* Grab the Python installer [http://www.python.org/ftp/python/2.4.5/Python-2.4.5.tar.bz2 here]<br />
** You may need something to unzip .bz2 files [http://www.winace.com/ WinAce] is a good free utility for this.<br />
* Grab the Pygame installer [http://www.pygame.org/ftp/pygame-1.8.0.win32-py2.4.msi here]<br />
*After everything in installed if you were looking to develop your own application and not just use our example app take a break from this guide and do so now. If you already have your app or will be using our example app continue on<br />
<br />
==Step 3: Getting the Emulator==<br />
<br />
*Luckily downloading and installing the emulator has become leaps and bounds easier than a few months ago. Our friends at OLPC have added a single download of the emulator (QEMU) the accelerator to make running an emulated XO bearable (KQEMU) and a hard disk image with XO’s OS installed. You can download that image [http://slimak.onet.pl/_m/onetlajt/olpc/olpc_qemu_full.zip here].<br />
*After you download the .zip unzip it and go to start_olpc, and there it is your own XO!<br />
<br />
==Step 4: Creating your activity structure==<br />
<br />
*First we need to get you into terminal. Go to your XO dock and click the terminal icon<br />
*Terminal is just like command prompt in windows but the commands can be a little different.<br />
**For a complete list of terminal commands for XO or any Linux platform go to [http://www.ss64.com/bash/ http://www.ss64.com/bash/]<br />
<br />
*Here is a representation of the default directory structure for XO<br />
**/<br />
**Activities<br />
**Boot<br />
**Etc<br />
**Lib<br />
**Media<br />
**Ofw <br />
**Proc<br />
**Sbin <br />
**Selinux <br />
**Sys<br />
**Usr <br />
**Bin<br />
**Dev<br />
**Home<br />
***OLPC (AKA ~)<br />
****OLPCGames-1.6<br />
****Skeleton<br />
*****Your Home Made Acitvities end up in here<br />
**Lost+found <br />
**Mnt <br />
**Opt<br />
**Root<br />
**Security<br />
**Srv<br />
<br />
<br />
*First we need to get you Pygame run the following commands to get to the home directory , and download/install Pygame<br />
**cd ~ <br />
**wget http://dev.laptop.org/~mcfletch/OLPCGames/OLPCGames-1.6.tar.gz<br />
**tar -xvf OLPCGames-1.6.tar.gz <br />
<br />
*When you come into terminal you are at the ~ directory (home directory which by default is the OLPC directory) so to navigate to the skeleton folder enter the following commands<br />
**cd OLPCGames-1.6/skeleton<br />
<br />
*You are now in the skeleton directory to see the files in this directory or any other directory you are in type the following command<br />
**dir<br />
<br />
* Now we will create your empty activity, type in the following command:<br />
**python buildskel.py -- myAppName activityname ”myAppName”<br />
***Replace myAppName with the name of your application <br />
***In our case:<br />
****python buildskel.py -- TypingTutor activityname ”Typing Tutor”<br />
<br />
*Now we can navigate to your new activity folder:<br />
**cd myAppName.activity<br />
**In our case:<br />
***cd TypingTutor.activity<br />
**In this folder you will have the following items<br />
***activity (Folder)<br />
***MANIFEST.in<br />
***olpcgames (Folder)<br />
***run.py<br />
***activity.py<br />
***NEWS (Folder)<br />
***POTFILES.in<br />
***Setup.py<br />
**Although all these files are important for our purposes we only need to use 2<br />
***run.py is the python program that will run when you click your activity icon<br />
****It is empty now but we will replace it in the following section<br />
***Setup.py makes your python program into an activity that appears in your dock<br />
<br />
<br />
<br />
==Step 5: Transferring files==<br />
<br />
*This process is often complicated on many XO development guides. Often they recommend using SSH to transfer file between host and emulated PC. I have found that uploading to a web page on your host and downloading to the XO is reasonably fast but removes the SSH learning curve. If you are looking for a quick solution to this problem head over to [http://www.axspace.com/ www.axspace.com] grab some free web space and upload your files.<br />
**If you would like to just follow the tutorial you can use my files as described<br />
*We will still be working within Terminal here so don’t close that window!<br />
*We want to get the files that you developed in windows and bring them into olpc<br />
**wget is a command to download files to the current directory<br />
**Type the following commands until all of your files are transferred<br />
**wget url/filename.fileExtension<br />
**In our case type the following commands:<br />
***wget [http://www.olpcdevguide.axspace.com/background.jpg http://www.olpcdevguide.axspace.com/background.jpg]<br />
***wget [http://www.olpcdevguide.axspace.com/turtle200x106.gif http://www.olpcdevguide.axspace.com/turtle200x106.gif]<br />
***wget [http://www.olpcdevguide.axspace.com/test.py http://www.olpcdevguide.axspace.com/test.py]<br />
*So now we have everything we need so we need to just replace the run.py file<br />
**First delete the run.py file (Don’t worry it doesn’t have anything in it)<br />
***Type the following command<br />
****rm run.py<br />
**To do so use the mv (move) command without changing the directory like this:<br />
***mv olFilename.fileExtenssion newFileName.fileExtension <br />
***In our case:<br />
****mv test.py run.py<br />
<br />
<br />
==Step 6: Create the Activity On your Emulator==<br />
<br />
*Creating the activity is as easy as running a python file<br />
*Type the following commands:<br />
**python setup.py dev<br />
*Restart and your activity will be in the dock (It will look like a hammer)<br />
<br />
<br />
==Step 7: Prepare For Distribution==<br />
<br />
*Load Terminal<br />
*Navigate back to your activity’s folder (activityName.Activity, in our example TypingTutor.Activity) <br />
*Type the following command:<br />
**python setup.py dist<br />
*The .xo file will be in the directory so throw it on the web and let the world see what you have done!<br />
<br />
<br />
[[Category:Development Team]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Python_Packages&diff=45164Development Team/Python Packages2010-02-21T22:22:39Z<p>Anal bleaching: moved Development Team/Python Packages to Anal bleaching 15/Python Packages:&#32;Anal bleaching</p>
<hr />
<div>This is just a proposal for now. It has not been discussed and the code does not reflect it. Do not use it as a reference.<br />
<br />
== sugar-base ==<br />
<br />
Packages :<br />
<br />
* sugar.mime<br />
* sugar.logger<br />
<br />
Notes :<br />
<br />
* No UI dependencies.<br />
* Owns the sugar namespace.<br />
* Used by services, activities, shell components and extensions.<br />
<br />
== sugar-toolkit ==<br />
<br />
Packages :<br />
<br />
* sugar.activity<br />
* sugar.graphics<br />
<br />
Notes :<br />
<br />
* Used by activities, shell components and extensions.<br />
<br />
== sugar ==<br />
<br />
Common packages:<br />
<br />
* jarabe.model<br />
* jarabe.view<br />
<br />
Component packages:<br />
<br />
* jarabe.frame<br />
* jarabe.controlpanel<br />
* jarabe.journal<br />
* jarabe.desktop<br />
* jarabe.windowmgr<br />
<br />
Notes :<br />
<br />
* Used by shell components and extensions.<br />
* Each shell component should only use jarabe.model and jarabe.view.<br />
<br />
=== Extensions ===<br />
<br />
* Installed under $PREFIX/sugar/extensions/$COMPONENT.</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Project_Ideas&diff=45162Development Team/Project Ideas2010-02-21T22:22:38Z<p>Anal bleaching: moved Development Team/Project Ideas to Anal bleaching 15/Project Ideas:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude><br />
==Introduction==<br />
This page contains a list of project ideas. For now, the focus is on giving [[GSoC]] students an idea of the kind of thing we're looking for. Summer of Code applicants should also visit '''[[Summer of Code/Resources]]'''.<br />
<br />
At the bottom of this page is a section for less-explicitly-explained & wild ideas.<br />
<br />
==[[Summer of Code]]==<br />
<br />
'''Priorities''': see the [http://lists.sugarlabs.org/archive/iaep/2009-March/004592.html ongoing discussion of priorities] on our mailing list. To summarize that thread: the highest priority is for you to have a successful GSoC, which should bias you towards easier projects such as [[#Stand-alone activities]]. But, if we had to rank this list in terms of priorities for Sugar, the [[#AJAX Sugar aka Karma]] and [[#Versioned Datastore]] ideas are probably our highest priorities, followed by the rest of the [[#Toolkits / Frameworks for developers]]. These are generally hard, though, so we would need you to give us evidence that you are capable, in order for us to accept you for these ideas.<br />
<br />
* There is a similar, project-ideas page on the [[OLPC:Summer_of_Code/Ideas | OLPC wiki]] (and a related [[OLPC:Category:GSoC_proposals | category]]). OLPC-specific projects, including hardware- <s>and schoolserver-</s>related projects, should go there. ''Update: since OLPC did not get into GSoC this year, we would consider mentoring school-server related projects.'' Feel free to add below relevant projects from that list - perhaps <s>80%</s> 95% of these could be appropriate Sugar Labs applications. <br />
<br />
===See something that interests you? (steps to apply)=== <br />
To get in, you will need to design your project and find a mentor. On irc (#sugar on freenode) or the sugar-devel mailing list, you can briefly introduce yourself, state your interest, and ask relevant and specific questions about the state of the existing code. You should also do your own research for other open-source code that might help you. Get a [[Development Team#Development_systems|development environment]] installed. We definitely appreciate it if you can show your readiness to help out - either joining [[BugSquad|bug squad]] and [[BugSquad/Meetings|helping]] to [[BugSquad/Triage Guide|triage]], or actually helping fix some small [http://tinyurl.com/ctfkjl bug] (we've categorized [http://tinyurl.com/sugar-love some bugs as "sugar-love"], which means, not that they are easy to fix, but that they are good for beginners because they don't require much expert knowledge). <br />
<br />
When you're ready, figure out a very basic, preliminary design (where does your new UI fit in? what about the code - what talks to what?) and post that to the [[Sugar_Labs/Contacts#Developer_Lists|mailing list]], asking if anybody would be willing to mentor you. You will almost certainly get some response, but you may not find a prospective mentor right away. That's OK. If your idea is really not a good fit for us, we will let you know; otherwise, remember that several mentors are holding back for now to see which projects show the most feasibility, clarity, and creativity in their design ideas. Persistence should pay off.<br />
<br />
'''Want to apply with an idea not on this list?''' That's fine. Read the thread linked above about priorities - and remember, our highest priority is for you to have a successful GSoC, and we hope that you will want to continue to contribute afterwards. Do the steps above, paying particular attention to getting some community members' opinions on whether your idea would be valuable. The [[Sugar_Labs/Contacts#General_List|"iaep" mailing list]] may be the best venue for this. We will not all agree with each other about how important your idea is - that's normal - but our feedback will almost certainly help you refine your idea.<br />
<br />
<div style="float:right;"><br />
__TOC__<br />
</div><br />
<br />
===Template for well-explained ideas===<br />
<br />
If a project that interests you lacks a "potential mentor" here, or you want to know more about the current status of the related code, we would be happy to help guide you on irc (#sugar on freenode) or mailing lists (technical questions to sugar-devel@lists.laptop.org, educational/general ones to iaep@lists.laptop.org).<br />
<br />
<br />
:<tt> '''==== Project title ====''' </tt><br />
:<br />
:A quick explanation of the project idea<br />
: <br />
: * Priority for Sugar: Low/Medium/High<br />
: <br />
: * Difficulty (as a GSoC project): Easy/Medium/Advanced<br />
: <br />
: * Skills needed: Experience with WikiCode and copy-paste.<br />
<br />
==Project Ideas==<br />
=== Core Software ===<br />
==== Versioned Datastore ====<br />
<br />
* To add [[Development Team/Datastore Rewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[Development Team/Almanac/sugar.datastore.datastore|DataStore]]: Start with (old) [http://wiki.laptop.org/go/Olpcfs Olpcfs] and (newer; less-documented; based on an RCS backend and a relatively small amount of fuse magic) [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]. Get Sugar to mount OLPCFS2, a working virtual versioned filesystem, and keep its datastore there. Get datastore to create a new version for each save (automatic or manual). Modify journal UI to use these versions, fork from old versions, etc. Keep with the same name / tags, create a branch if metadata was changed. Allow the user to access "older" versions (Keeping and "old" version will create a branch) and view ancestry (tree of branches). <br />
<br />
We would not expect a GSoC project to be necessarily ready to check into our trunk. For instance, you could avoid facing the issue of automated pruning of old versions for disk space, or not have a converter for existing datastores. However, it should work as a proof-of-concept with a variety of activities.<br />
<br />
Note: the work for this idea is ''more than halfway done''. The olpcfs2 virtual file system linked above is ''working'', supporting versions and metadata; all you need to do is a UI and an index/searching mechanism on top of that. And even if your indexing mechanism is just brute-force-search each-time, sure, it will be too slow for real use, but we can take it from there, as long you have a working proof-of-concept UI.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Coolness factor:++<br />
<br />
*Difficulty: Hard<br />
<br />
*Skills needed: primarily Python UI (pygtk); also FUSE/file systems (this part is mostly done); and Packaging and building.<br />
<br />
====Implement existing UI design proposal====<br />
Look at [[Design_Team/Designs]] and [[Design_Team/Proposals]], choose a proposal in one of those, and implement it. Obviously, you need to investigate existing work on these by testing/playing with a current jhbuild and by talking on #sugar.<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty: easy-medium<br />
<br />
*Skills needed: Python, PyGTK<br />
<br />
==== Registry for people ====<br />
Extend the interaction model to include real people beyond the user&ndash;laptop couple. This would extend the virtual network to include some very significant entities, such as family members, who may not have a physical computing device. See the [[Request_New_Features#Support for family interaction | suggestion]] submitted by [[User:Skua]]. The [[olpc:Record]] Activity could be used as a fun, instance-of-person creator and embellisher, by capturing an image or video of the person, and linking it to a new registry.<br />
* Integration of a person object into the Sugar architecture <br />
* Extension of the User/Group model to realistically capture the actual Person entity<br />
* Modification of at least one activity (Record ?) to support the new API<br />
* Extension of School Server registration model<br />
* Extension of an Internet person model to support a Person entity (e.g., to support a missing-person registry in the [http://sahana.rit.edu/ Sahana] Disaster Management System)<br />
Lots of extensions are possible, following a good, fundamental design<br />
* Difficulty: Medium - Hard (depending on scope chosen)<br />
* Skills needed: Data modeling, Core system programming<br />
* Potential mentor: [[User:FGrose]] for data modeling, collaborators needed for Core systems and Internet architectures<br />
<br />
==== Toolkit for dissimilar activity collaboration ====<br />
Extend the collaboration model to include interconnection between different activity types. People are trying to share data collected with Measure with spreadsheets or Write or TamTam or Colors! Allow one user's activity to feed a community of collaborators performing different processes on the broadcast output. Allow different activities to run simultaneously in a distributed multi-tasking model, on one or more computers. See [[OLPC:Activity sharing]] and [[OLPC:Low-level Activity API]] for some essentials.<br />
<br />
The toolkit would encapsulate the low-level interface to allow activity developers to easily deploy distributed task collaboration.<br />
<br />
Extra extra credit for extending the model to general web browsers and web-enabled cell phones. Sugar web collaboration&mdash;a '''Honeycomb'''.<br />
<br />
* Value to Sugar: High<br />
* Difficulty: Hard<br />
* Skills: low-level API mastery<br />
* Potential mentors: <br />
See this thread for a discussion of the need and some issues, http://www.mail-archive.com/sugar-devel@lists.sugarlabs.org/msg02870.html<br />
<br />
==== Speech Synthesis for Sugar ====<br />
Integrate speech synthesis with all activities, not just [[olpc:Speak| Speak]], and provide for karaoke coloring. See [[User:Mokurai|Mokurai]]'s [http://www.olpcnews.com/content/ebooks/effective_adult_literacy_program.html article] on adapting [[olpc:Same Language Subtitling]] for literacy to the XO.<br />
<br />
Desirable Features for Sugar Speech Synthesis Plugin:<br />
<br />
* Provide Sugar Speech Synthesis Configuration Management Tool<br />
* Karaoke Style Coloring in Sugar Environment<br />
* UI for configuration Control<br />
* Accent gets set on the basis of locale<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Advanced<br />
<br />
*Skills needed: Experience with GTK, decent Python ability, ability to integrate with existing code.<br />
<br />
*Existing Technical Documentation & Work that can be leveraged: Interested developers can refer to [http://google-summer-of-code-2008-olpc.googlecode.com/files/Hemant_Goyal.tar.gz GSOC 08 Project Status Report].<br />
<br />
==== Print Support ====<br />
Print support in Sugar would be useful in many scenarios. The ideal project deliverables would include<br />
* Integration of a printing infrastructure (CUPS ??) into the XO-1 software images <br />
* Modification of Sugar Control Panel to set up the printer (add/select default printer?)<br />
* Modification of at least one activity (Write ?) to support printing<br />
* Making a printing activity, that follows sugar GUI guidelines?<br />
* Extra credit: integrating a server, including permissions and quota management, into the XS image.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium-high<br />
<br />
*Skills needed: Python programming, API design, some communications<br />
<br />
:comments <br />
<br />
:Suggestion: See [http://wiki.laptop.org/go/Printing_Culture Printing_Culture]. Oops, note screen-grabbing already exists -<br />
<br />
::There is already screen-grab support built into Sugar. Alt-1 puts a copy of the current screen into the Journal as a PNG file. --[[User:Walter|Walter]] 13:03, 31 January 2010 (UTC)<br />
<br />
==== Sugar Toolbar submenu support ====<br />
<br />
The Sugar Human Interface Guidelines have a toolbar design that includes submenus (See [[Design Team/Designs/Toolbars|Toolbar designs]]). The project would be to extend the existing Toolbar widget to include this new feature and then to work with a few Activity developer to incorporate the new design into their Activities. Possible candidate activities include Paint and [[Activities/Turtle Art|Turtle Art]].<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Easy-Medium<br />
<br />
*Skills needed: intermediate GTK and python skillz<br />
<br />
==== Port of Sugar to Pyjamas-Desktop ==== <br />
<br />
A platform-independent reimplementation of PyGTK and PyGObject which utilises Pyjamas-Desktop to implement (near-)identical PyGTK widgets. A proof-of-concept which can be used as the basis has already been completed - the [http://code.google.com/p/pyjamas/wiki/GsocLlpamies Llpamies branch of pyjamas] and merged into the current pyjamas infrastructure. A transparent split of the SUGAR Activity infrastructure from the GUI front-end display code (along MVC lines) by using overrides of the python "__import__" method, adding in an RPC mechanism (JSONRPC recommended). Again, the Llpamies branch has already achieved this and provides the basis and inspiration. For example, any pyjamas applications which had "import md5": in the llpamies branch actually resulted in JSONRPC calls of any "md5" module methods, which were actually executed SERVER-SIDE.<br />
<br />
The consequences of providing this level of abstraction are quite startling: not only would it be conveniently and easily possible to install Sugar onto Win32 platforms (thanks to the MSHTML Pyjamas-Desktop port) but also it would be possible to have all the benefits of a client-server architecture. Thanks to the nature of the Pyjamas API, that would be an extremely _rich_ "client", including being a web browser client. Also, you get "remote desktop" functionality "for free". i.e. thanks to the client-server architecture, a student can publish their work via the server (running on their <br />
<br />
The work involves:<br />
<br />
* writing alternative infrastructure, replacing the c code gtk widgets with pyjamas widgets (e.g. the sugar menu gtk widget can go, and can subclass the pyjamas MenuBar widget. Icon can subclass pyjamas Image class. etc. etc.)<br />
* the Llpamies GTK browser port, containing the reimplementation of gtk and gobject, needs to be extended and improved<br />
* some serious discussion needs to take place on how SVG Canvas support is to be done. Pyjamas now has a port of GWTCanvas (which uses VML on MSHTML and IE6,7 and 8, but uses 2D SVG on all other browsers and all other brower engines) so there is an abstracted API which could be used to create vector graphics in a platform-independent fashion.<br />
* writing a special importers.py (similar to setuptools zip-archives) which notices module imports such as activity and profile imports, and seamlessly creates a JSONRPC service to farm the function call out to a server (even if it's running on 127.0.0.1). pyjamas-desktop already has example code that performs module import overrides, and the llpamies branch already has example code that performs JSONRPC function call farming.<br />
<br />
<br />
* Priority for Sugar: TBD <br />
* Difficulty (as a GSoC project): Advanced<br />
* Skills needed: JSONRPC, Web Framework(s), PyGTK, PyGobject, Python, HTML, CSS, [http://pyjs.org Pyjamas].<br />
<br />
=== Toolkits / Frameworks for developers ===<br />
<br />
==== AJAX Sugar aka [[Karma]] ====<br />
<br />
Create a proof-of-concept learning multimedia Sugar activity using javascript and html5 (for instance, Titanium-made apps). This activity should have animation, audio, persistent storage of user progress, and at least basic integration with the Sugar environment. For more information see the [[Karma]] wiki page.<br />
<br />
JavaScript/Sugar Communication through the following strategies: PyXPCom, hulahop, xulrunner or [http://www.titaniumapp.com/ Titanium]. see also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012829.html the mailing list discussion]. The preferred solution should use a minimalist rendering engine like Webkit and a toolset for local file access like Google Gears. Such a solution would have much less overhead than embedding all of mozilla. For the moment we are focusing on Titanium.<br />
<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing AJAX activities. The GSoC participant doesn't have to create her own activity but could simply recreate an existing activity such as one of [http://www.pustakalaya.org/external-content/static/epaath/E-Paath-2.activity/activity/Activity/MenuStage.html OLE Nepal's flash activities]. <br />
* This demo should have the following features:<br />
** Simple interactive animation and audio using html5 tags like <canvas> and <audio><br />
** An assessment section that stores results of student's progress and gives them suggestions on improvement. Assessment info should be persistent. <br />
** Has embedded pdf for lesson plan that can be viewed w/in the activity<br />
** Integrates with datastore<br />
** Navigation and Help elements, ideally reusing widgets from popular javascript libraries like Jquery, Prototype, Mootools<br />
** Some element of collaboration using telepathy (This could be really hard, depending on the state of javascript bindings to dbus)<br />
<br />
There is some discussion of the prior work on this question at [[User:Wade/Web_Activity_Spec]].<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): medium/hard Note: integrating w/ the datastore likely won't be too hard but utilizing Sugar's collaboration features could be very hard<br />
<br />
*Skills needed: Javascript/Python integration (PyXPCom, hulahop), CSS, knowlege of SQL<br />
<br />
*potential mentors: Wade Brainerd (wadetb at gmail dot com), Bryan Berry (bryan at olenepal dot org) can serve as project manager, define requirements and project deliverables<br />
<br />
==== SWF Sugar ====<br />
<br />
* Integrate SWF (Flash/Gnash) applications into Sugar.<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing Flash/Gnash activities.<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): hard<br />
<br />
*Skills needed: SWF/Python integration<br />
<br />
==== Improve Develop activity ====<br />
<br />
There are several improvements that would make the Develop activity a more attractive IDE. Any ONE of these would be a good GSoC project.<br />
<br />
* Make a WYSIWIG GUI editor, like Glade. Note that GTK natively supports loading Glade-format interface definitions, although there would be some work involved making the Sugar interface elements available through this method.<br />
* Integrate Sugarbot and auto-testing facilities.<br />
* Integrate a debugger, based on pdb or other.<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium - Hard<br />
<br />
*Skills needed: Good python skills.<br />
<br />
*Potential mentor; Jameson Quinn (firstname dot lastname at gmail dot com)<br />
<br />
==== "Translate Activity" activity ====<br />
<br />
We will never finish localizing all our activities and base software for all our deployments - especially for places with high linguistic diversity like Afghanistan, Peru, Guatemala. So it would be great if there were an easy, discoverable way to translate any string on your machine; have the translation appear on your own machine immediately; and, assuming the activity has a link to a Pootle project, upload that translation to a Pootle server later. (For real-world use, these uploads would probably have to be cached at the school server level, but that is more complexity than we'd expect from a GSoC project.) [http://translate.sourceforge.net/wiki/virtaal/index Virtaal] might be a good starting point for the UI.<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium to Hard<br />
<br />
*Skills needed: at least some experience localizing, to know what's involved; ability to do minor hacks on gettext in C and Python; work with localization formats (.po, etc.); Python for activity UI; some simple communications, to upload proposed translations to pootle.<br />
<br />
*potential mentor: Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
==== SugarGames Pygame wrapper ==== <br />
The [http://wiki.laptop.org/go/OLPCGames OLPCGames] wrapper allows [http://pygame.org Pygame] to run inside of GTK in Sugar, making Pygame based Activities possible. However, the wrapper is geared specifically for use on the XO-1, and does not necessarily reflect the modern reality of running Sugar on diverse hardware. It also does not allow for the use of other GTK Widgets in the Activity, restricting developers from adding UI features like pop up query boxes. This project would involve porting OLPCGames or writing a Pygame wrapper from scratch that would allow Pygame to run in GTK while still enabling the use of GTK UI elements. It would also involve making GTK events and other relevant parts of the Sugar API available to Pygame Activities.<br />
<br />
* Priority for Sugar: Medium-High (Activity development is limited between the graphics limitations of PyGTK and the UI limitations of Pygame)<br />
* Difficulty (as a GSoC project): Medium-Advanced <br />
* Skills needed: Requires a fair amount of knowledge of both Pygame and PyGTK.<br />
* Potential Mentor: Nirav Patel (nrpatel at gmail, nrp on freenode)<br />
<br />
==== Generic linux application wrapper ====<br />
Improve the ability to launch legacy Linux applications (or Windows applications in WINE) from inside Sugar. The issues are our window manager, our datastore/file system, and our security model (Rainbow). Basically, you'd have to fake all of these from one side or the other so that an average legacy app could live with Sugar.<br />
<br />
This is a priority for sugar, and there is significant prior art and design thought. The first part of your job would be to search this wiki, the laptop.org wiki, and old mailing list archives for OLPC and Sugarlabs, and talk on IRC, to settle on a good design. Because of this, we'd consider accepting a strong application even if it left some design questions open; but it would have to at least suggest some basic shortcuts you'd take to make the task feasible, and argue why these shortcuts would leave acceptable usability.<br />
<br />
* Priority for Sugar: High-Very High<br />
* Difficulty (as a GSoC project): Advanced <br />
* Skills needed: Creative ability to use and quickly learn various tools, ability to focus on critical path (ie, build something quick-and-dirty that accomplishes the main goals rather than getting distracted by ideal solutions), experience with window manager and windowing systems (Gnome, KDE, etc.).<br />
<br />
=== Stand-alone activities ===<br />
<br />
==== Improved Read activity ====<br />
Use Gecko to implement a reader for [http://www.openebook.org/ epub] format ebooks. This is superior to PDF because such books can be reflowed to better fit the screen and user preferences. Also, (although it would break the standard) it would make it very simple to include AJAX-style active features to books.<br />
<br />
Extra credit if you support textual and graphical annotation. Deployments have also asked for a page-turn animation. See also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012821.html ml].<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium (w/o annotation); very hard (w/annotation)<br />
<br />
*Skills needed: Strong Javascript/DOM skills, some interlanguage integration (Python/Javascript), ability to adapt Read activity's communications code (Python).<br />
<br />
*Potential mentor: Sayamindu Dasgupta (sayamindu at gmail) (already has some code to start with)<br />
<br />
==== [[Activities/Listen Spell|Listen Spell]] activity ====<br />
<br />
This activity has been last year GSoC project. Its code can be found [http://code.google.com/p/google-summer-of-code-2008-olpc/downloads/detail?name=Assim_Deodia.tar.gz here]. Extending it activity wrt to following points<br />
<br />
* Supporting Speech Synthesis model of sugar (speech synthesis model of sugar is not designed yet and is again a gsoc project this year. This task would involve either using speech-dispatcher or [[Activity_Team/gst-plugins-espeak | GST-Plugin]] as of now and later adding the support for sugar model)<br />
* Multi player game over mesh network <br />
* User Defined word list. (Adding support to add new words to dictionary)<br />
* Test Mode: A teacher can feed the pre-defined word list on the network and activity is being used to conduct test/exam<br />
* Speaking sentences to make student learn grammar (this as a higher level)<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Medium <br />
<br />
*Skills needed: Python, GTK, Understanding of sugar mesh network<br />
*Potential mentor: [[Summer_of_Code/Mentors#Assim_Deodia | Assim Deodia]] (assim.deodia at gmail dot com)<br />
<br />
==== KDEEdu ====<br />
<br />
Sugarize any [http://edu.kde.org/ KDEEdu] activity, especially the ones which have no corresponding Sugar activity. The issue is that Kdeedu uses qt, while sugar uses gtk; the student would propose a reasonable solution to this issue (see [[Talk:KDEEdu]] for one idea). It is doubtful that the whole sugarization process could be automated, so you'd probably just do one activity.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-hard<br />
<br />
*Skills needed: C/C++, GTK.<br />
<br />
==== Educational Toolkit ====<br />
<br />
Either based on the existing educational toolkit, or starting from scratch, enable XO use in classroom scenarios. Such scenarios could include<br />
<br />
* Teacher shows slides, reproduced on child's screens<br />
* Teacher asks questions - either pre-prepared or on-the-fly<br />
* Students give answers via collaboration<br />
* Teacher or student chooses - explicitly or randomly - an answer for further discussion<br />
* Students split in groups and go from their individual answers to a collaborative answer<br />
* Teacher can review all answers later<br />
* Teacher gives individual or group feedback (offline) which will be shared with appropriate students when they come online<br />
* Teacher checks what's on a child's screen - (experience on other platforms shows this "look over shoulder" ability reduces goofing off even though it is rarely used.)<br />
<br />
The low-hanging fruit on [http://wiki.laptop.org/go/Educational_toolkit Educational Toolkit] is the following:<br />
<br />
* Enable collaboration scenarios<br />
* Work on the GUI to provide support for multiple types of questions. <br />
* Add API to make it easy to add new question types.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): medium-hard<br />
<br />
*Skills needed: intermediate ability with Python and communications<br />
<br />
==== Improved Imageviewer ====<br />
<br />
Implement missing bits in Imageviewer, some of which are<br />
<br />
* Sharing support<br />
* Basic image effects support (grayscale, sepia effects, colorize, etc)<br />
* Exif support<br />
<br />
There are more things that can be implemented, but the above are the basic minimum one should try to implement.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-medium<br />
<br />
*Skills needed: Python, GTK. the Sugar collaboration framework<br />
<br />
<br />
==== EduKT ====<br />
<br />
Simple content - history creation tool that needs:<br />
* Re-design drag and drop features<br />
* Add audio support<br />
* Simplify the interface for little people<br />
* Better the saving projects process.<br />
<br />
A lot of new features that simplifies to any level the building of interactive contents...<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): medium<br />
<br />
*Skills needed: Python, Glade, GTK. the Sugar collaboration framework<br />
<br />
==== Port [http://www.lopart.org LopArt] to Sugar ====<br />
<br />
<pre><br />
Subject: humbly introducing... LopArt: a Visual Arts Software that would fit perfectly with the XO<br />
Date: Tue, 29 Jan 2008 12:39:34 -0500<br />
From: ariel savion-lemieux <ariel@loplop.com><br />
<br />
Hello,<br />
<br />
We have recently made the purchase of an XO Laptop. We believe in the<br />
project and would like to contribute to it in our own way.<br />
<br />
LopLop Inc. has worked in the software industry for more than a decade, and<br />
has developed a couple of drawing applications geared toward children.<br />
<br />
LopArt is a visual arts software that emulates real drawing strokes and<br />
styles (it beats TuxPaint out of the water J). Those who work with children<br />
are seduced by the simplicity of LopArt, as well as by the originality and<br />
creativity it allows. Whether it is used during free-time or for structured<br />
learning activities and projects, LopArt is a highly stimulating learning<br />
tool. It is present in more the 500 schools in Quebec alone. Examples of<br />
LopArt artworks can be seen on the LopArt Virtual Museum it contains more<br />
than 40,000 artworks (www.lopart.org). LopArt was developed for all<br />
platforms, and is in open-source on Linux.<br />
<br />
For these reasons and plenty more, we would like a chance to present LopArt<br />
to XO members, since we believe it would be a great fit in the XO software<br />
family.<br />
<br />
If possible, please direct our request to the appropriate party. If you have<br />
questions or comments, do not hesitate to contact us.<br />
<br />
<br />
Regards,<br />
<br />
The LopLop Team<br />
<br />
----------------------<br />
<br />
Ariel Savion-Lemieux, LopLop<br />
Project Manager / Chargé de projet<br />
Telephone: 514.543.5849<br />
</pre><br />
<br />
*Difficulty: easy<br />
<br />
==== Bug report activity ====<br />
<br />
[http://dev.sugarlabs.org/ticket/340 activity for bug reports]<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty: Easy<br />
<br />
*Skills needed: Python, GTK, maybe some simple web forms from both client and server side (ie, PHP or similar)<br />
<br />
==== Etc., Etc. ====<br />
It should not be hard at all to imagine educational activities or games which would be useful for primary or secondary school education. Let your imagination run wild!<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty: Medium<br />
<br />
*Skills needed: Python, GTK, Sugar collaboration framework<br />
<br />
== Brainstorm / unexplained ideas ==<br />
<br />
==== Visual geometric (e.g. linear [http://en.wikipedia.org/wiki/Bar_code bar], [http://en.wikipedia.org/wiki/QR_code QR](matrix)) code recognition ====<br />
Robust, poor-man's alternative to OCR. These codes are used to track physical items, point at their use manuals, etc. Input devices: (for OLPC) integral camera; one-dimensional scanner like [http://en.wikipedia.org/wiki/CueCat CueCat ]. Some software already exists: [http://qrcode.sourceforge.jp/ Open Source QR Code Library]. (All camera cellphones in Japan bundle this function.)<br />
<br />
==== Sugar adaption for the Nasa ====<br />
One of the 91 indigenous cultures that still exist in Colombia is the [http://en.wikipedia.org/wiki/Paez_people Paez people] (aka '''Nasa'''). They have their own traditions, customs, world view, mother tongue (Nasa Yuwe), i.e. their own culture. It could be possible to take cultural elements into the Sugar Interface, not only language, to provide Nasa children a suitable and familiar interface. [[User:Santiago|Santiago]] 18:01, 8 March 2008 (EST)<br />
<br />
=== Core Software ===<br />
<br />
* Accessibility Support: Sugar currently doesn't have anything available for the visually impaired.<br />
* Improve automatic testing across the system. This would improve our check-in and build process immensely. Very high priority which nobody is addressing head-on.<br />
==== Homework turn-in ====<!-- keep that title if you move the entry, there are inbound links. --><br />
* "Homework turn-in" support: Certain metadata on a file causes new versions to be pushed out over the net (via SMTP, rss, or other; note that Moodle already has [http://docs.moodle.org/en/Email_processing support] for routing from special email addresses to a "location"). No new UI in Sugar, and a trivial amount of changes to Moodle.<br />
<br />
[10:18] <homunq> If you'd rather something with PHP in it, I'd recommend the homework turn-in one. That one's really poorly documented. Basically, the steps are:<br />
<br />
[10:18] <homunq> 1. figure out a plan for including sugar metadata in the html download links from moodle<br />
<br />
[10:19] <homunq> 2. when downloading an assignment, put metadata of "send this back to adress xxx in server"<br />
<br />
[10:20] <homunq> 3. When saving new, worked-on versions of the assignment, mark them for upload to the server<br />
<br />
[10:22] <homunq> 4. when you see the server, and the homework deadline is not past, the sugar core automatically uploads the latest version. You could decide to use SMTP upload (already somewhat implemented in moodle) or something else like rss or REST or whatever.<br />
<br />
[10:22] <homunq> any questions, happy to clarify.<br />
<br />
==== Research projects: unpolished code ====<br />
* There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure. <br />
* bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC)<br />
<br />
==== Java ====<br />
Package and integrate the IcedTea open source bootstrap of OpenJDK Java with browser plugin for the XO. Deliverables would include:<br />
* Binary, source and rpm dependencies for icedtea and icedtea browser plugin<br />
* Java enabled os image<br />
* Integration of packages into autobuild branch<br />
<br />
(This is just to get Java into the build. Creating an application framework would come later.)<br />
<br />
==== Graphical toolkit ====<br />
Important work left to do:<br />
* Give focus feedback by showing a rounded rectangle in gtk buttons and HippoCanvas icons.<br />
* Implement keyboard navigation in HippoCanvas.<br />
* Implement accessibility hooks in HippoCanvas.<br />
* Improve keyboard shortcuts - make them easier to create and implement a UI to make them more discoverable, such as transparent letters which appear when you hold <ctrl><br />
<br />
=== Frameworks/Toolkits ===<br />
==== Mono/.NET ====<br />
The use of Mono could really enhance the number of Sugar developers due to the huge existing .NET community.<br />
Thanks to Torello Querci, developing a Sugar activity in Mono is already possible using the Mono/Sugar bindings Sugar.dll (more on Mono on Sugar [[Mono|here]]).<br />
<br />
The idea for this GSOC project is to greatly enhance this binding:<br />
* Better integration with the Sugar look & feel and HippoCanvas,<br />
* Binding to telepathy API,<br />
* WinForm compatibility,<br />
* MonoDevelop integration.<br />
<br />
More on this idea:<br />
* Priority for Sugar: Low<br />
* Difficulty (as a GSoC project): Medium-Advanced <br />
* Skills needed: C# programming, Linux programming<br />
* Potential mentor: Lionel Laské and/or Torello Querci<br />
<br />
<br />
=== Activities ===<br />
* See also ideas at [[Activity Team/Project Ideas]].<br />
* A better, more fun, Paint option for small children - One way - Use eToys - http://lists.laptop.org/pipermail/etoys/2008-November/002770.html<br />
<br />
==== VideoChat activity ====<br />
telepathy-python has support for audio and video streaming and has recently gained support for using gstreamer, which means that we could easily do efficient videoconferencing using fully open source codecs.<br />
<br />
So a really nice project would be to do a proper Sugar activity for video conferencing.<br />
<br />
==== Language Trainer ====<br />
A language trainer with text to speech support would be very nice. Something that could start with letters and then teach words.<br />
<br />
==== Thesaurus ====<br />
Working together with openthesaurus -- someone could create a thesaurus for kids to learn different words (synonyms and antonyms)<br />
<br />
==== Logo Activity ====<br />
:Logo is a computer programming language used for functional programming. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. Today, it is known mainly for its turtle graphics, but it also has significant facilities for handling lists, files, I/O, and recursion.<br />
<br />
:Logo was created for educational use, more so for constructivist teaching, by Daniel G. Bobrow, Wally Feurzeig and Seymour Papert. It can be used to teach most computer science concepts, as UC Berkeley Lecturer Brian Harvey does in his Computer Science Logo Style trilogy. — [http://en.wikipedia.org/wiki/Logo_(programming_language) Wikipedia article on the Logo programming language]<br />
<br />
There is a "[[Running_Linux_Applications_Under_Sugar|Sugarized]]" Logo—[http://www.eecs.berkeley.edu/~bh/usermanual UCB Logo]—but it does not record data into the Journal or use the standard Sugar toolbar.<br />
<br />
There are two possible approaches we could take: (1) digging deeper into UCB Logo and (2) working with another Logo, possibly [http://pylogo.org/ PyLogo].<br />
<br />
* Priority: high as Logo is an important tool engaging children in programming<br />
* Difficultly: moderate to high, depending upon the approach chosen<br />
** Integrating Pylogo would be relatively easy, but it is a very limited implementation of Logo that would need enhancing<br />
* Experience: some Python and C if the UCB Logo approach is taken<br />
<br />
====twext====<br />
<font size="+1" color="black" >Twext es un idea para ayudarnos a aprender lenguajes.</font><br />
<font size="-2" color="silver">twext is an idea to help us to learn languages</font><br />
<font size="+1" color="black" >El software Twexter ya tiene un demo que maneja</font><br />
<font size="-2" color="silver">twexter software now has ¡alpha! that works with</font><br />
<font size="+1" color="black" >el UniCode para que twexteamos en muchas idiomas.</font><br />
<font size="-2" color="silver">global text so that we can twext in many languages</font><br />
* [http://olpcnews.com/content/localization/learning_language.html kids teach kids]<br />
* <font size="+1">[http://test.twext.com alpha demo]</font><br />
* [http://moodle.org moodle me]<br />
* <font size="+1">[http://more.read.fm/wiki_test mediawixi]</font><br />
* [http://twext.com twext]<br />
* <font size="+1">[http://github.com/tudisco/twexter code]</font><br />
<font color="silver">this fixed font twext 'roughly' aligns when you CTL+ or CTL- to adjust font size :)</FONT><br />
<br />
<br />
[[Category:Idea]]<br />
<br />
== Other ideas for improving Sugar Activities ==<br />
<br />
=== Broad project ideas ===<br />
*See [[Marketing Team/Events/Sugarcamp_Boston_2008/Minutes#Items_from_the_roadmap_brainstorm|a list of project ideas]] from a brainstorming session at Sugar Camp.<br />
<br />
=== Activities Site (addons) ===<br />
<br />
* The activities http://activities.sugarlabs.org, is in need of a serious ''sugarization'', a GSOC project could be giving some love to the dressing and coding of the underlaying activities site (based on mozilla's addons).<br />
<br />
=== Packaging for specific distros ===<br />
<br />
'''Debian'''<br />
* Help in maintaining and packaging sugar and activities in debian.<br />
* Including/adapting debian-edu .debs to sugar<br />
<br />
Hello there, I am quite interested in Debian and want to help with this and all other projects. Please contact me (bjoern AT xruby DOT net) if I can be of assistance to the XO project or other things. I will start my PhD studies in April and have previously studied Computer Science. I am highly interested in helping where I can and want to bring the necessary technology to kids around the world.<br />
: from olpcwiki 2008<br />
<br />
=== Preeti's list ===<br />
<br />
Hi, I am Preeti, from New Delhi. I would like to get myself involved in this very interesting aspect of the OLPC software development. I have jotted some of my views on the same at:<br />
<br />
http://wiki.laptop.org/go/User_talk:59.178.99.172<br />
<br />
<br />
<br />
[[Category:Participate]]<br />
[[Category:GSoC]]<br />
[[Category:Idea]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Profiling&diff=45160Development Team/Profiling2010-02-21T22:22:38Z<p>Anal bleaching: moved Development Team/Profiling to Anal bleaching 15/Profiling:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude><br />
<br />
===Memory===<br />
====ps_mem====<br />
Try to determine how much RAM is currently being used per program.<br />
The shared RAM is problematic to calculate, and this script automatically<br />
selects the most accurate method available for your kernel.<br />
<br />
:original script at http://www.pixelbeat.org/scripts/ps_mem.py<br />
The following patch makes the script output the processes pids and cmd-lines instead of their names when possible.<br />
:__patched__ version at http://dev.laptop.org/~rlucchese/utils/ps_mem.py<br />
<br />
:patch:<br />
<pre><br />
--- ps_mem.py.orig 2008-08-29 09:30:29.000000000 +0200<br />
+++ ps_mem 2008-08-29 09:43:49.000000000 +0200<br />
@@ -117,17 +117,23 @@<br />
return (Private, Shared)<br />
<br />
def getCmdName(pid):<br />
- cmd = file("/proc/%d/status" % pid).readline()[6:-1]<br />
- exe = os.path.basename(os.path.realpath("/proc/%d/exe" % pid))<br />
- if exe.startswith(cmd):<br />
- cmd=exe #show non truncated version<br />
- #Note because we show the non truncated name<br />
- #one can have separated programs as follows:<br />
- #584.0 KiB + 1.0 MiB = 1.6 MiB mozilla-thunder (exe -> bash)<br />
- # 56.0 MiB + 22.2 MiB = 78.2 MiB mozilla-thunderbird-bin<br />
+ cmd = file("/proc/%d/cmdline" % pid).readline()<br />
+ if len(cmd):<br />
+ # cmdline has a bogus format<br />
+ cmd_temp = ''<br />
+ for i in range(0,len(cmd) -1):<br />
+ if ord(cmd[i])<ord(' ') or ord(cmd[i])>ord('~'):<br />
+ cmd_temp += ' '<br />
+ else:<br />
+ cmd_temp += cmd[i]<br />
+<br />
+ cmd = cmd_temp<br />
+ else:<br />
+ cmd = file("/proc/%d/status" % pid).readline()[6:-1]<br />
return cmd<br />
<br />
cmds={}<br />
+pids={}<br />
shareds={}<br />
count={}<br />
for pid in os.listdir("/proc/"):<br />
@@ -155,10 +161,8 @@<br />
else:<br />
shareds[cmd]=shared<br />
cmds[cmd]=cmds.setdefault(cmd,0)+private<br />
- if count.has_key(cmd):<br />
- count[cmd] += 1<br />
- else:<br />
- count[cmd] = 1<br />
+<br />
+ pids[cmd] = pid<br />
<br />
#Add shared mem for each program<br />
total=0<br />
@@ -185,16 +189,16 @@<br />
else:<br />
return cmd<br />
<br />
-print " Private + Shared = RAM used\tProgram \n"<br />
+print " Private + Shared = RAM used\tPID\tProgram \n"<br />
for cmd in sort_list:<br />
- print "%8sB + %8sB = %8sB\t%s" % (human(cmd[1]-shareds[cmd[0]]),<br />
+ print "%8sB + %8sB = %8sB\t%d\t%s" % (human(cmd[1]-shareds[cmd[0]]),<br />
human(shareds[cmd[0]]), human(cmd[1]),<br />
- cmd_with_count(cmd[0], count[cmd[0]]))<br />
+ pids[cmd[0]], cmd[0])<br />
if have_pss:<br />
print "-" * 33<br />
print " " * 24 + "%8sB" % human(total)<br />
print "=" * 33<br />
-print "\n Private + Shared = RAM used\tProgram \n"<br />
+print " Private + Shared = RAM used\tPID\tProgram \n"<br />
<br />
#Warn of possible inaccuracies<br />
#2 = accurate & can total<br />
</pre><br />
<br />
<br />
<br />
[[Category:General public]]<br />
[[Category:Developer]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Prerequisites&diff=45158Development Team/Prerequisites2010-02-21T22:22:38Z<p>Anal bleaching: moved Development Team/Prerequisites to Anal bleaching 15/Prerequisites:&#32;Anal bleaching</p>
<hr />
<div>== Summary ==<br />
<br />
This page explains what needs to be in a computer so it can run Sugar 0.86. Also are mentioned ways in which the dependency could be weakened.<br />
<br />
A diagram can be seen in [[Development_Team/Architecture]].<br />
<br />
== Software components ==<br />
<br />
==== Python ====<br />
<br />
Almost all of Sugar is written in python, small bits of C are used to interface with libraries or to improve the performance of computationally intensive operations.<br />
<br />
Some language features and extension modules that appeared at Python 2.5 are used, but reducing the dependency to 2.4 should be possible without much effort.<br />
<br />
==== Gtk+ ====<br />
<br />
We depend on Gtk+ 2.18 but should be possible to fall back to 2.16 or even 2.14 with relatively little effort. Gtk+ is used all around Sugar so in order to drop this dependency we would need to rewrite pretty much all.<br />
<br />
==== Telepathy ====<br />
<br />
Presence of contacts and collaboration between activities is implemented using the Telepathy framework.<br />
<br />
==== D-Bus ====<br />
<br />
Communication between processes is done with D-Bus. Due to indirect dependencies we need at least version 1.1.<br />
<br />
==== NetworkManager ====<br />
<br />
Sugar uses the API that landed in NM 0.7. Though NetworkManager is not required for Sugar to start, you lose management of network devices.<br />
<br />
==== Metacity ====<br />
<br />
Sugar can work with most standard-compliant X11 window managers, but these differ a lot on how they handle corner cases and thus using any other window manager would require extensive testing.<br />
<br />
==== X11 ====<br />
<br />
Sugar interfaces directly with X for window and session management. In order to remove this dependency, alternate implementations would need to be developed and an abstraction interface be created.<br />
<br />
== Resources ==<br />
<br />
==== Memory ====<br />
<br />
Sugar on Fedora can run on 128MB of virtual memory with a reduced number of concurrent activities. The required amount of memory can be reduced by:<br />
<br />
- streamlining the rest of the platform (e.g. use OpenEmbedded),<br />
<br />
- substitute static bindings with ones generated at runtime (work ongoing upstream),<br />
<br />
- optimization in Python,<br />
<br />
- optimization in Sugar,<br />
<br />
- forking all python processes from the same process (pre-forking).<br />
<br />
==== General processing ====<br />
<br />
Only shell and activities startup is dominated by non-graphics CPU power. A Geode LX 700 is acceptable. By using dynamic bindings instead of pregenerated ones, this limit can be lowered.<br />
<br />
==== Graphics processing ====<br />
<br />
Sugar uses scaled graphics in all its UI. A system that is able to render an animation at fullscreen using Cairo at 12 fps will give a smooth user experience. If the system is not able to sustain that, memory can be traded for performance using the X11 composition extension or profiling work can happen at the librsvg, cairo and X driver levels.<br />
<br />
==== Persistent storage ====<br />
Sugar itself requires only about 40 MB of disk space. Its dependencies will require more or less space depending on the distribution used, OLPC's needs less than 500MB. For Sugar activities, 10-100 MB would be reasonable, plus some hundreds of MB for user data. A backup server is recommended, so users don't need to keep all their data locally.</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Performance&diff=45156Development Team/Performance2010-02-21T22:22:38Z<p>Anal bleaching: moved Development Team/Performance to Anal bleaching 15/Performance:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude><br />
Just a quick dump of the snippets I use for profiling:<br />
<br />
First use a system-wide profiler like sysprof<br />
<br />
Next, profile python code, open the output with kcachegrind:<br />
<br />
import os<br />
import cProfile<br />
import lsprofcalltree # http://www.gnome.org/~johan/lsprofcalltree.py<br />
<br />
profiler = cProfile.Profile()<br />
profiler.enable()<br />
<br />
### code to profile ### <br />
<br />
profiler.disable()<br />
<br />
k = lsprofcalltree.KCacheGrind(profiler)<br />
data = open('/tmp/import.kgrind', 'w+')<br />
k.output(data)<br />
data.close()<br />
<br />
Check for leaks:<br />
<br />
import gobject<br />
gobject.timeout_add(10000, self._log_mem_usage) <br />
<br />
def _log_mem_usage(self): <br />
import analysis, os, gc <br />
<br />
for obj in gc.get_objects():<br />
if hasattr(obj, '__class__') and 'ChooserListView' in obj.__class__.__name__:<br />
logging.debug(obj) <br />
<br />
for i in range(0, 10):<br />
gc.collect()<br />
logging.debug('mem: %i' % analysis.Analysis(os.getpid()).ApproxRealMemoryUsage()) <br />
return True <br />
<br />
Rendering time of a widget/window:<br />
<br />
def do_expose_event(self, event):<br />
import time<br />
t = time.time()<br />
hippo.Canvas.do_expose_event(self, event)<br />
logging.debug('listview expose event: %r' % (time.time() - t))</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Packaging&diff=45154Development Team/Packaging2010-02-21T22:22:38Z<p>Anal bleaching: moved Development Team/Packaging to Anal bleaching 15/Packaging:&#32;Anal bleaching</p>
<hr />
<div>{{Merge|Packaging Team}}<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
! Distro<br />
! Current development version<br />
! Contact<br />
! Last Sugar version<br />
! Status<br />
|-<br />
| [[Community/Distributions/ALTLinux|ALT Linux]]<br />
| Sisyphus<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.84.x<br />
|-<br />
| Arch Linux<br />
| None; rolling-release (Third-party)<br />
| [[User:Schivmeister|Ray Rashif]]<br />
| 0.86.x<br />
| See [http://wiki.archlinux.org/index.php/Sugar Distro Wiki]<br />
|-<br />
| [[Community/Distributions/Debian|Debian]]<br />
| (multiple concurrent branches)<br />
| [http://wiki.debian.org/JonasSmedegaard Jonas Smedegaard]<br />
| See here: http://qa.debian.org/developer.php?login=debian-olpc-devel@lists.alioth.debian.org<br />
| [[#Needs pyabiword|Needs pyabiword]], [[#Needs evince python bindings|Needs evince python bindings]]<br />
|-<br />
|rowspan="3"|[[Community/Distributions/Fedora|Fedora]]<br />
| F11 (Leonidas)<br />
| [[User:Erikos|Simon Schampijer]]<br />
| 0.84.x<br />
|-<br />
| [[Sugar_on_a_Stick|SoaS-1]]<br>F10 based<br />
|<br />
| 0.84.x [http://download.sugarlabs.org/soas/repositories/1/ RPM repository]<br />
|-<br />
| [[Sugar_on_a_Stick|SoaS-2]]<br>F11 based<br />
|<br />
| 0.84.x [http://download.sugarlabs.org/soas/repositories/2/ RPM repository]<br />
|-<br />
| [http://www.gentoo.org/ Gentoo]<br />
| [[Community/Distributions/Gentoo|Sugar overlay]]<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.84.x/0.86.x/git<br />
|-<br />
|rowspan="2"|[[Community/Distributions/Mandriva|Mandriva]]<br />
| 2009.1<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.84.x<br />
|<br />
|-<br />
| Cooker<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.86.x<br />
| <br />
|-<br />
|rowspan="2"|[http://en.opensuse.org/Sugar openSUSE]<br />
| 11, openSUSE Factory<br>[https://build.opensuse.org/project/show?project=X11:Sugar X11:Sugar]<br />
| [http://en.opensuse.org/User:Nubae Nubae]<br />
| 0.84.x<br />
|<br />
|-<br />
| openSUSE Factory<br>[https://build.opensuse.org/project/show?project=X11:Sugar:Unstable X11:Sugar:Unstable]<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.86.x<br />
| <br />
|-<br />
|rowspan="5"|[[Community/Distributions/Ubuntu|Ubuntu]]<br />
| 9.04 (Jaunty Jackalope)<br />
| [https://wiki.ubuntu.com/SugarTeam SugarTeam]<br />
| 0.83.x<br />
| [[#Needs pyabiword|Needs pyabiword]]<br />
|-<br />
| 8.04 (Hardy)<br>[https://launchpad.net/~alsroot/+archive/trisquel-edu trisquel-edu ppa]<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.84.x<br />
| [http://dev.sugarlabs.org/ticket/1189 #1189]<br />
|-<br />
| 9.04 (Jaunty), 9.10 (Karmic)<br>[https://launchpad.net/~alsroot/+archive/ppa sugar-0.84 ppa]<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.84.x<br />
| <br />
|-<br />
| 9.04 (Jaunty)<br>[https://launchpad.net/~alsroot/+archive/trisquel-edu-3 trisquel-edu-3 ppa]<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.86.x<br />
|<br />
|-<br />
| 9.10 (Karmic)<br>[https://launchpad.net/~alsroot/+archive/sugar-0.86 sugar-0.86 ppa]<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.86.x<br />
| <br />
|-<br />
| [[Community/Distributions/Magalhães|Magalhães]]<br>(Caixa Mágica)<br />
| 12<br />
| [[User:Alsroot|Aleksey Lim]]<br />
| 0.84.x<br />
|<br />
|-<br />
|}<br />
<br />
This table might be generated by a script like the one Collabora uses: http://people.collabora.co.uk/~cassidy/tp-versions.html<br />
<br />
Source: http://people.collabora.co.uk/~cassidy/tp-versions.html<br />
<br />
== Status notes ==<br />
<br />
=== Needs pyabiword ===<br />
<br />
In order for Write to work, abiword needs to be built with --enable-libabiword ([http://bugs.debian.org/512777 Debian bug #512777]) and the pyabiword package needs to be added.<br />
<br />
=== Needs evince python bindings ===<br />
<br />
In order for Read to work, evince needs to be built as a library and needs to have python bindings. This means evince 2.25.90 and gnome-python-desktop with the evince python bindings built.<br />
==[[Packaging Team]]==<br />
* See [[Packaging Team]].<br />
===distribution tools===</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Mission&diff=45152Development Team/Mission2010-02-21T22:22:37Z<p>Anal bleaching: moved Development Team/Mission to Anal bleaching 15/Mission:&#32;Anal bleaching</p>
<hr />
<div>The mission of the Development team is to build and maintain the core Sugar environment. This includes specifying and implementing new features in conjunction with the Design team, fixing bugs as they are found by the Testing team and the Sugar community, and generally making Sugar awesome in all ways.<br />
<noinclude><br />
[[Category:Developer]]<br />
</noinclude></div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Mini_tutorials&diff=45150Development Team/Mini tutorials2010-02-21T22:22:37Z<p>Anal bleaching: moved Development Team/Mini tutorials to Anal bleaching 15/Mini tutorials:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{GoogleTrans-en}}{{TeamHeader|Development Team|roadmap_link={{Upcoming Stable Release}}/Roadmap}}</noinclude><br />
<br />
We are hosting mini tutorials scheduled on Thursdays at 18:00 UTC (14:00 EDT), immediately following the [[Development_Team/Meetings|Development Team meetings]].<br />
<br />
Please sign up with your topic below:<br />
<br />
{|border=1<br />
|-<br />
|Date||Topic||Facilitator||Log<br />
|-<br />
|2009-04-23||Keyboard Shortcuts||[[User:Walter|walter]]||http://meeting.laptop.org/sugar-meeting.log.20090423_1000.html<br />
|-<br />
|2009-04-30||Using IRC||[[User:Walter|walter]]||Note: this meeting will be held in Chat on jabber.sugarlabs.org<br />
|}<br />
<br />
[[Category:Development Team]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Memory/Usage_Analysis&diff=45148Development Team/Memory/Usage Analysis2010-02-21T22:22:37Z<p>Anal bleaching: moved Development Team/Memory/Usage Analysis to Anal bleaching 15/Memory/Usage Analysis:&#32;Anal bleaching</p>
<hr />
<div>Guppy-pe can give us detailed statistics about which python objects are taking space in the heap, the relationships between them and some more useful data. Particularly useful is the ability to take a snapshot of the current state and later print the diff between both points.<br />
<br />
See http://guppy-pe.sourceforge.net/heapy_Use.html#heapykinds.Use.monitor.<br />
<br />
The following patch to sugar-shell will periodically print some interesting information about memory usage. It may not apply cleanly, but anybody interested in using it will need anyway to read and understand this code.<br />
<br />
<pre><br />
diff --git a/bin/sugar-shell b/bin/sugar-shell<br />
index b0f66b4..29f130a 100755<br />
--- a/bin/sugar-shell<br />
+++ b/bin/sugar-shell<br />
@@ -85,7 +85,117 @@ def _shell_started_cb():<br />
hw_manager = hardwaremanager.get_manager()<br />
hw_manager.set_dcon_freeze(0)<br />
<br />
+global mem_used, objects, garbage<br />
+mem_used = 0<br />
+objects = 0<br />
+garbage = 0<br />
+<br />
+def _log_mem_usage(): <br />
+ import analysis, os, gc, logging<br />
+ for i in xrange(3):<br />
+ total = len(gc.get_objects())<br />
+ unreachable = gc.collect()<br />
+ logging.debug('After collection - total before: %r total after: %r unreachable: %r' % (total, len(gc.get_objects()), unreachable))<br />
+<br />
+ global mem_used, objects, garbage<br />
+<br />
+ current_mem = analysis.Analysis(os.getpid()).ApproxRealMemoryUsage()<br />
+ current_objects = len(gc.get_objects())<br />
+ current_garbage = len(gc.garbage)<br />
+ logging.debug('mem: %i increment: %i' % (current_mem, current_mem - mem_used))<br />
+ logging.debug('total objects: %i increment: %i' % (current_objects, current_objects - objects))<br />
+ logging.debug('garbage: %i increment: %i\n' % (current_garbage, current_garbage - garbage))<br />
+<br />
+ mem_used = current_mem<br />
+ objects = current_objects<br />
+ garbage = current_garbage<br />
+<br />
+ return True<br />
+<br />
+global prev_heap<br />
+prev_heap = None<br />
+<br />
+def _log_objects(): <br />
+ import gc<br />
+ gc.collect()<br />
+<br />
+ global prev_heap <br />
+ import guppy, logging<br />
+ import view.BuddyIcon<br />
+ h = guppy.hpy()<br />
+<br />
+ heap = h.heap()<br />
+<br />
+ if prev_heap is not None:<br />
+ diff = heap.diff(prev_heap)<br />
+ for i in xrange(6):<br />
+ logging.debug(diff)<br />
+ diff = diff.more<br />
+<br />
+ prev_heap = heap<br />
+ <br />
+ return True<br />
+<br />
+global obj_occurrences<br />
+obj_occurrences = {}<br />
+<br />
+def _get_obj_dict():<br />
+ import gc<br />
+ <br />
+ obj_dict = {}<br />
+ for o in gc.get_objects():<br />
+ t = str(type(o))<br />
+ if t in obj_dict:<br />
+ obj_dict[t] += 1<br />
+ else:<br />
+ obj_dict[t] = 1<br />
+ <br />
+ return obj_dict<br />
+ <br />
+def _calc_diff(dict_a, dict_b):<br />
+ types_a = set(dict_a.keys())<br />
+ types_b = set(dict_b.keys())<br />
+ types = types_a | types_b<br />
+ result = {}<br />
+ <br />
+ for t in types:<br />
+ if t in dict_a and t in dict_b:<br />
+ result[t] = dict_a[t] - dict_b[t]<br />
+ elif t in dict_a:<br />
+ result[t] = dict_a[t]<br />
+ else:<br />
+ result[t] = - dict_b[t]<br />
+ if result[t] == 0:<br />
+ del result[t]<br />
+ return result<br />
+ <br />
+def _log_diff():<br />
+ import logging<br />
+ logging.debug('Heap diff:')<br />
+ <br />
+ current_objs = _get_obj_dict()<br />
+ <br />
+ global obj_occurrences<br />
+ if obj_occurrences:<br />
+ diff = _calc_diff(current_objs, obj_occurrences)<br />
+ for t, freq in diff.iteritems():<br />
+ logging.debug('%s\t%d' % (t, freq))<br />
+ <br />
+ obj_occurrences = current_objs<br />
+ <br />
+ logging.debug('-----------------------------------')<br />
+ <br />
+ return True<br />
+<br />
def main():<br />
+ import gc<br />
+ gc.set_debug(gc.DEBUG_LEAK)<br />
+ <br />
+ #_log_objects()<br />
+ #gobject.timeout_add(30000, _log_objects)<br />
+ gobject.timeout_add(5000, _log_mem_usage)<br />
+ #gobject.timeout_add(5000, _log_diff)<br />
+ <br />
gobject.idle_add(_shell_started_cb)<br />
<br />
logsmanager.setup()<br />
</pre></div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Memory/Leak_testing&diff=45146Development Team/Memory/Leak testing2010-02-21T22:22:37Z<p>Anal bleaching: moved Development Team/Memory/Leak testing to Anal bleaching 15/Memory/Leak testing:&#32;Anal bleaching</p>
<hr />
<div>These are instructions on how to test for memory leaks in Sugar.<br />
<br />
== Install guppy ==<br />
<br />
If you don't already have guppy on the XO (or other computer running sugar) you want to test, you'll have to download and install it. In Terminal, as root:<br />
<br />
<pre><br />
wget http://dev.laptop.org/~tomeu/guppy-0.1.9-1.i386.rpm<br />
rpm -i guppy-0.1.9-1.i386.rpm<br />
</pre><br />
<br />
Edit ''/usr/bin/sugar-shell'' with<br />
<br />
<code><br />
nano /usr/bin/sugar-shell<br />
</code><br />
<br />
(or whatever your favorite text editor is) and add a line that reads<br />
<br />
<code><br />
import guppy.heapy.RM<br />
</code><br />
<br />
Then restart Sugar (ctrl-alt-erase).<br />
<br />
== Starting a heapy session ==<br />
<br />
ssh into the XO (or othe rcomputer running sugar) from another computer. We'll call this the Monitor Computer, and it should be separate from the XOs or cumputers you are testing. When we observe Sugar, it is best not use it for anything else than to execute the test case. From your Monitor computer, in the shell you're ssh'd into your XO with:<br />
<br />
<pre><br />
su - olpc<br />
python -c "from guppy import hpy;hpy().monitor()"<br />
sc 1<br />
int<br />
</pre><br />
<br />
== Running a test ==<br />
<br />
From your monitor computer:<br />
<br />
<code><br />
hp.setref()<br />
</code><br />
<br />
Then, on your XO (or computer with sugar), do whatever action you're testing memory leaks for. (For instance, start and then close an Activity.)<br />
<br />
Go back to your monitor computer and type:<br />
<br />
<code><br />
hp.heap()<br />
</code><br />
<br />
== Reading the results ==<br />
<br />
You'll see a table that looks like this:<br />
<br />
<code><br />
>>> hp.heap()<br />
Partition of a set of 1019 objects. Total size = 89364 bytes.<br />
Index Count % Size % Cumulative % Kind (class / dict of class)<br />
0 25 2 13000 15 13000 15 dict of sugar.graphics.animator.Animator<br />
1 12 1 6240 7 19240 22 dict of sugar.graphics.icon._IconBuffer<br />
2 156 15 5616 6 24856 28 types.MethodType<br />
3 3 0 5016 6 29872 33 dict of sugar.graphics.palette.Palette<br />
4 82 8 4668 5 34540 39 str<br />
5 106 10 4192 5 38732 43 tuple<br />
6 8 1 4160 5 42892 48 dict of sugar.graphics.palette.MouseSpeedDetector<br />
7 55 5 3776 4 46668 52 list<br />
8 2 0 3344 4 50012 56 dict of view.BuddyMenu.BuddyMenu<br />
9 2 0 3344 4 53356 60 dict of view.palettes.CurrentActivityPalette<br />
<80 more rows. Type e.g. '_.more' to view.><br />
</code><br />
<br />
'''hp.heap()''' prints a summary of the contents of the python heap, which is where python places objects we ask it to create. The most interesting part is this line:<br />
<br />
<code><br />
Partition of a set of 1019 objects. Total size = 89364 bytes.<br />
</code><br />
<br />
This would mean that, since the last time we called hp.setref(), 219 new objects have been placed on the heap and they take up 18212 bytes in total. This doesn't necessarily mean we are leaking all these 219 objects, though - but if you repeat this procedure several times...<br />
<br />
<code><br />
hp.setref()<br />
*do the action you're testing in Sugar*<br />
hp.heap()<br />
</code><br />
<br />
and you see the amount of bytes growing steadily, we may have a bug. Look at anything that is over 10kb or so.<br />
<br />
== Test variants ==<br />
<br />
=== Repeated leak testing ===<br />
<br />
A more definite test for leaks is the following:<br />
<br />
<code><br />
hp.setref()<br />
*do the action you're testing in Sugar 9 times*<br />
hp.heap()<br />
</code><br />
<br />
...and then look for new objects in quantities that are multiple of 9. Those will probably be leaks.<br />
<br />
=== Without collaboration ===<br />
<br />
If you run a test multiple times and get results with a lot of variance, it may be due to collaboration activity (especially if you're in a radio-noisy environment). You can solve this by disabling radio (in the Sugar Control Panel) and using an usb-to-ethernet dongle to give the XO or computer a wired connection to ssh into.</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Memory&diff=45144Development Team/Memory2010-02-21T22:22:36Z<p>Anal bleaching: moved Development Team/Memory to Anal bleaching 15/Memory:&#32;Anal bleaching</p>
<hr />
<div>*[[Development_Team/Memory/Usage Analysis]]<br />
*[[Development_Team/Memory/Leak_testing]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Meetings/Logs/September_10_2009&diff=45142Development Team/Meetings/Logs/September 10 20092010-02-21T22:22:36Z<p>Anal bleaching: moved Development Team/Meetings/Logs/September 10 2009 to Anal bleaching 15/Meetings/Logs/September 10 2009:&#32;Anal bleaching</p>
<hr />
<div><pre><br />
(04:13:22 PM) erikos: tomeu: http://wiki.sugarlabs.org/go/Development_Team/Meetings#Topics<br />
(04:13:34 PM) erikos: tomeu: I have added a topic<br />
(04:13:46 PM) tomeu: nice<br />
(04:13:54 PM) tomeu: I guess we can start?<br />
(04:14:05 PM) tomeu: will paste the topics anyway<br />
(04:14:05 PM) tomeu: Improving testing, triaging and bugfixing test plans testing meetings triaging Fructose Activities: in/out <br />
(04:14:32 PM) tomeu: so, we want to make 0.86 a more solid release than the previous ones<br />
(04:14:39 PM) tomeu: but things aren't going too well as of yet<br />
(04:14:51 PM) tomeu: seems like we are having less testing than in previous releases?<br />
(04:15:11 PM) erikos: tomeu: yeah, I think I have identified a few issues<br />
(04:15:17 PM) garycmartin: tomeu: am still mainly stuck in toolbar mode.<br />
(04:15:37 PM) erikos: tomeu: we don't do as much announcements about the current status<br />
(04:15:47 PM) tomeu: good point<br />
(04:15:48 PM) tomeu: have we lost many testers?<br />
(04:15:56 PM) SaschaSilbe-47b5 [n=urk@vpn1193.extern.uni-tuebingen.de] entered the room.<br />
(04:15:58 PM) erikos: tomeu: and we do not have a clear testing platform I think<br />
(04:16:08 PM) erikos: tomeu: not sure we really lost them<br />
(04:16:09 PM) SaschaSilbe-47b5: sorry for being late<br />
(04:16:18 PM) tomeu: hi SaschaSilbe-47b5, just starting<br />
(04:16:19 PM) erikos: hi SaschaSilbe-47b5<br />
(04:16:38 PM) garycmartin: tomeu: not sure we ever had that many to begin with! :-)<br />
(04:16:42 PM) tomeu: erikos: yeah, that's an important point, how is soas regarding testability?<br />
(04:16:43 PM) erikos: tomeu: I think we need to initialize them and see then<br />
(04:16:54 PM) erikos: garycmartin: pessimist! ;p<br />
(04:17:25 PM) erikos: tomeu: ok, what I think will hep is:<br />
(04:17:28 PM) garycmartin: erikos: my tea cup is half full :-)<br />
(04:17:37 PM) erikos: a) we get the tarballs out tonight<br />
(04:17:43 PM) erikos: b) make good release notes<br />
(04:17:47 PM) erikos: c) make rpms<br />
(04:17:57 PM) erikos: d) help sdziallas with getting it in soas<br />
(04:18:04 PM) erikos: e) announce widely<br />
(04:18:10 PM) erikos: f) before the weekend<br />
(04:18:20 PM) erikos: g) get the triagers ready<br />
(04:18:33 PM) erikos: to be responisve<br />
(04:18:45 PM) erikos: h) get the bugfixers crew ready, as well<br />
(04:19:23 PM) ***erikos adds test cases at a well announced place<br />
(04:20:11 PM) tomeu: erikos: ok, should we advertise now what the plan is?<br />
(04:20:18 PM) tomeu: so people can start planning?<br />
(04:20:25 PM) garycmartin: tomeu: FWIW the last 3-4 days of patches from alsroot and you have made a big difference to what I see here. I was worried we would have to revert even more, but we have moved quite a good distance.<br />
(04:20:28 PM) erikos: sure, sounds good to me<br />
(04:21:00 PM) erikos: tomeu: we have to try to keep people in the loop as much as possible<br />
(04:21:01 PM) tomeu: garycmartin: nice to hear that!<br />
(04:21:04 PM) SaschaSilbe-47b5: garycmartin: +1, even a lot of old bugs got fixed<br />
(04:21:08 PM) tomeu: erikos++<br />
(04:22:06 PM) erikos: any improvements to the rough plan I pasted above?<br />
(04:22:23 PM) garycmartin: tomeu: so can we drop the gtk-treeview row headers yet ;-b<br />
(04:22:26 PM) tomeu: erikos: sounds good to me<br />
(04:22:36 PM) tomeu: garycmartin: yeah, not sure why we haven't yet<br />
(04:22:43 PM) garycmartin: tomeu: ;-)<br />
(04:22:52 PM) erikos: tomeu: garycmartin we even have a patch for that already<br />
(04:22:55 PM) CanoeBerry: aside: can the Journal be backed up easily? Discussion ongoing on #olpc-help if you know!<br />
(04:23:33 PM) erikos: CanoeBerry: cp -r ~./sugar/default/datastore [target] :D<br />
(04:23:51 PM) erikos: CanoeBerry: replace cp with scp for networking<br />
(04:24:02 PM) erikos: CanoeBerry: I am only kidding ;D<br />
(04:24:05 PM) befana [n=befana@190.156.73.226] entered the room.<br />
(04:24:21 PM) tomeu: CanoeBerry: you can do what erikos said, or use the XS for backups<br />
(04:25:18 PM) SaschaSilbe-47b5: erikos: does cp -r handle hard links properly?<br />
(04:25:44 PM) SaschaSilbe-47b5: (i always use cp -a to be on the safe side)<br />
(04:26:24 PM) erikos: SaschaSilbe-47b5: let's better not discuss that now and here ;p<br />
(04:26:33 PM) SaschaSilbe-47b5: +1 ;)<br />
(04:26:39 PM) erikos: tomeu: can you get us back on track?<br />
(04:26:51 PM) tomeu: ok, so we have a plan to get the testing we need<br />
(04:27:07 PM) erikos: tomeu: who does send that plan?<br />
(04:27:12 PM) erikos: tomeu: I can - if you want<br />
(04:27:20 PM) tomeu: would be great<br />
(04:27:23 PM) erikos: ok<br />
(04:27:37 PM) tomeu: erikos: can you extend on "get the triagers ready"?<br />
(04:28:05 PM) SaschaSilbe-47b5: who does the actual testing?<br />
(04:28:05 PM) walterbender: erikos: has anyone contacted the NZ testing team?<br />
(04:28:11 PM) erikos: tomeu: ok:<br />
(04:28:36 PM) erikos: a) they need to watch new incoming bug reports<br />
(04:28:50 PM) walterbender: erikos: if we could give them instructions, they would be very helpful<br />
(04:29:02 PM) erikos: b) we should maybe do daily triage meetings until we have 0.86 is out<br />
(04:29:12 PM) erikos: walterbender: they test saturday as far as i know<br />
(04:29:35 PM) erikos: walterbender: right, that is why it is important to get the packages out and soas ready<br />
(04:29:48 PM) erikos: SaschaSilbe-47b5: ^^^ for example<br />
(04:30:03 PM) walterbender: erikos: yes. Saturday<br />
(04:30:57 PM) walterbender: erikos: is there a plan to spin another SoaS beta before Saturday?<br />
(04:31:07 PM) tomeu: erikos: ok, and after 0.86 is out, we still want to keep working on a bugfix release, right?<br />
(04:31:11 PM) walterbender: erikos: if so, then we could have them test with that.<br />
(04:31:27 PM) erikos: tomeu: sure<br />
(04:31:33 PM) tomeu: walterbender: that would be great, pity we didn't discussed it with sdz earlier today<br />
(04:31:51 PM) erikos: tomeu: but then we could go over to every second day or something<br />
(04:32:08 PM) erikos: tomeu: but very good that you mention it<br />
(04:32:12 PM) tomeu: erikos: sounds good<br />
(04:32:18 PM) unmadindu: does it make sense to have a schedule for bugfix releases, or do we follow the "it will be done when it is ready" policy ?]<br />
(04:32:18 PM) erikos: tomeu: we should already plan it in<br />
(04:32:41 PM) erikos: walterbender: yes, I hope that i can discuss it with sdz after his gym<br />
(04:32:57 PM) erikos: unmadindu: I think it does make sense<br />
(04:33:14 PM) tomeu: unmadindu: not sure about that<br />
(04:33:31 PM) tomeu: who is going to benefit from a release date?<br />
(04:33:49 PM) erikos: tomeu: I think it is mostly to keep the people motivated<br />
(04:33:56 PM) erikos: tomeu: to work towards a goal<br />
(04:33:59 PM) unmadindu: it may make sense for a few deployments, where people might be nervous to ship .0 software<br />
(04:34:19 PM) erikos: tomeu: and packagers, I guess, know better when to expect a new version<br />
(04:34:50 PM) tomeu: erikos: sounds good then<br />
(04:36:16 PM) erikos: tomeu: maybe we should ask as well who is around for triage and bug fixes<br />
(04:36:24 PM) tomeu: erikos: yeah, wanted to suggest that<br />
(04:36:36 PM) erikos: tomeu: nice<br />
(04:36:53 PM) tomeu: ok, do we have owners for all actions in the plan?<br />
(04:37:15 PM) alsroot: erikos: so, we are throwing headers away until building packages?<br />
(04:37:40 PM) erikos: alsroot: ? can you rephrase?<br />
(04:37:54 PM) erikos: alsroot: the journal ones?<br />
(04:38:24 PM) alsroot: erikos: yup, treeview headres<br />
(04:38:52 PM) alsroot: garycmartin: and how we can sort Journal then? or do not sort it at all?<br />
(04:39:06 PM) garycmartin: alsroot: no sort at all.<br />
(04:39:50 PM) garycmartin: alsroot: same as it was in last release. The sorting there now is of very limited use and causes more confusion/odd states, unexpected UI.<br />
(04:40:08 PM) tomeu: alsroot: there was some design discussion about it<br />
(04:40:17 PM) tomeu: a proper fix didn't landed at time for 0.86<br />
(04:40:20 PM) garycmartin: alsroot: (this is true for both Journal and the Home list view)<br />
(04:40:27 PM) erikos: alsroot: if it is discutable, I don't want to wait<br />
(04:40:41 PM) erikos: we really need the tarballs *now*<br />
(04:41:19 PM) erikos: can we get back to the owners?<br />
(04:41:24 PM) alsroot: erikos: but let me made one not invasive fix to suppress selected rows glictches<br />
(04:41:32 PM) erikos: alsroot: ok<br />
(04:42:06 PM) tomeu: if we need more feedback about sorting, we could make the next tarballs with headers<br />
(04:42:09 PM) erikos: tomeu: shall we go through the list and see if we have owners of all items?<br />
(04:42:22 PM) tomeu: ok<br />
(04:42:30 PM) erikos: tomeu: yup, I think that is ok<br />
(04:42:35 PM) erikos: a) tarballs<br />
(04:42:35 PM) tomeu: tarballs: erikos and tomeu?<br />
(04:42:40 PM) erikos: yup<br />
(04:42:56 PM) erikos: b) make good release notes<br />
(04:43:10 PM) erikos: I guess I will lead that, and ping people for help<br />
(04:43:29 PM) erikos: c) make rpms<br />
(04:43:44 PM) alsroot: erikos: for what dostros<br />
(04:44:05 PM) erikos: alsroot: well, wherever we can attract testers<br />
(04:44:11 PM) erikos: alsroot: fedora for sure<br />
(04:44:19 PM) erikos: alsroot: (soas ^^)<br />
(04:44:34 PM) alsroot: erikos: maybe doing in sync w/ jhconvert 0.85 releases<br />
(04:44:44 PM) erikos: alsroot: don't know what the situation is on other distros<br />
(04:44:48 PM) tomeu: alsroot: that will be great<br />
(04:44:56 PM) tomeu: alsroot: any idea how we can testers for other distros?<br />
(04:45:02 PM) tomeu: erikos: I can make rpms<br />
(04:45:11 PM) erikos: tomeu: awesome!<br />
(04:45:27 PM) alsroot: tomeu: well, dunno -- at least we could have ready to use packages<br />
(04:45:35 PM) tomeu: alsroot: that would be great<br />
(04:45:45 PM) erikos: tomeu: maybe we can make a call on the mailing list<br />
(04:45:47 PM) dirakx [n=rafael@190.156.119.234] entered the room.<br />
(04:45:49 PM) walterbender: SoaS should make it easier to involve more testers... even though we should test on multiple distros... the primary testing could be facilitated through SoaS...<br />
(04:45:50 PM) alsroot: I'm going to push mandriva/suse/ubuntu pckages<br />
(04:45:56 PM) tomeu: erikos: and on ubuntu forums<br />
(04:45:58 PM) alsroot: ../gentoo<br />
(04:46:03 PM) erikos: tomeu: and people from the various distros can jump in<br />
(04:46:06 PM) tomeu: unmadindu: were you an ubunter?<br />
(04:46:27 PM) erikos: walterbender: yup<br />
(04:46:30 PM) unmadindu: tomeu: nope, not really<br />
(04:46:36 PM) tomeu: I tihnk it was morgs<br />
(04:46:47 PM) tomeu: if he's in the planet, he may be able to ask for help there<br />
(04:47:03 PM) erikos: yeah, I guess let's announce it -- ask for help to spread the message<br />
(04:47:11 PM) erikos: and then we hope for the best<br />
(04:47:37 PM) alsroot: in case of ubuntu, one option is using ppas for testing purposes(and waiting for pushing it to offcial repos)<br />
(04:47:46 PM) tomeu: alsroot: yup<br />
(04:47:56 PM) walterbender: erikos: I haven't send out the digest yet this week... if you have a message for testers...<br />
(04:49:32 PM) erikos: walterbender: very good point<br />
(04:49:45 PM) erikos: walterbender: I guess by tomorrow<br />
(04:50:23 PM) alsroot: erikos: but I'm not sure I'll managed to push last sugar to all distros I mentioned before -- I need one/two days<br />
(04:50:33 PM) alsroot: s/I'll managed/I'll managed today/<br />
(04:50:42 PM) erikos: alsroot: sure, that is fine<br />
(04:50:54 PM) erikos: alsroot: we can do a follow up message as well<br />
(04:51:55 PM) tomeu: alsroot: are you or know someone on those distro's planets?<br />
(04:52:00 PM) tomeu: so we can ask for testers<br />
(04:52:34 PM) alsroot: tomeu: nope<br />
(04:52:53 PM) tomeu: ok, I expect we can do it for ubuntu<br />
(04:52:56 PM) tomeu: will ask morgs<br />
(04:53:09 PM) tomeu: next task<br />
(04:53:23 PM) tomeu: help sdz getting it on soas<br />
(04:53:30 PM) tomeu: any volunteers?<br />
(04:53:45 PM) tomeu: I will do rpms, so it's basically pinging him until he makes a new build<br />
(04:55:02 PM) tomeu: announce it widely<br />
(04:55:11 PM) tomeu: so, we need to announce now the testing plan<br />
(04:55:20 PM) tomeu: and then announce again when things are ready to be tested<br />
(04:55:24 PM) tomeu: erikos: right?<br />
(04:55:40 PM) erikos: tomeu: right, so the typical release announcement<br />
(04:55:52 PM) erikos: tomeu: and then a direct announcement how to test<br />
(04:56:06 PM) tomeu: focused for every distro, right?<br />
(04:56:07 PM) erikos: tomeu: the features should have test plans attached for example<br />
(04:56:41 PM) erikos: hmmm<br />
(04:56:57 PM) erikos: tomeu: you mean different test cases for each distro?<br />
(04:57:14 PM) tomeu: erikos: different message for every distro, so we can reach more people<br />
(04:57:24 PM) tomeu: erikos: pointing to installation instructions, etc<br />
(04:57:32 PM) erikos: tomeu: ok, whenever the packages are ready<br />
(04:57:38 PM) tomeu: erikos: yes<br />
(04:57:45 PM) erikos: tomeu: the testing plans can be at a common place<br />
(04:57:54 PM) erikos: tomeu: at least the main ones<br />
(04:57:54 PM) tomeu: yup<br />
(04:58:08 PM) erikos: tomeu: distros can derive from it, if needed<br />
(04:58:35 PM) tomeu: hope it's identical enough not to need that<br />
(04:58:47 PM) erikos: yup, I would say so<br />
(04:58:50 PM) tomeu: they can link to the usptream release notes and that's all?<br />
(04:58:55 PM) erikos: yup<br />
(04:59:34 PM) erikos: next one?<br />
(04:59:43 PM) tomeu: something along the lines of: "hey, sugar 0.85.90 has been released and we have packaged it for our distro. sugar is a blah blah blah, testing appreciated, reporting bugs to ..."<br />
(04:59:53 PM) tomeu: and send one to each distro's main channel of communication<br />
(04:59:56 PM) erikos: yup, sounds good<br />
(05:00:19 PM) tomeu: get the triagers read?<br />
(05:00:32 PM) erikos: we really need a champion for that one<br />
(05:00:52 PM) erikos: who wants to lead a triaging crew for 0.86?<br />
(05:00:59 PM) erikos: duties:<br />
(05:01:16 PM) erikos: doing daily, or every second day meetings and triage bugs<br />
(05:01:24 PM) erikos: mainly being responsive<br />
(05:01:53 PM) erikos: the http://wiki.sugarlabs.org/go/BugSquad page has a lot of info about it<br />
(05:02:12 PM) erikos: and I can answer questions to how we did that back in the days ;p<br />
(05:02:27 PM) tomeu: too many volunteers, we'll need to hold a poll<br />
(05:02:46 PM) alsroot: ..we are the champions..<br />
(05:02:48 PM) SaschaSilbe-47b5: +1 for erikos :-P<br />
(05:03:31 PM) SaschaSilbe-47b5: or maybe garycmartin ?<br />
(05:03:47 PM) garycmartin: SaschaSilbe-47b5: -1 ;-b<br />
(05:03:57 PM) erikos: SaschaSilbe-47b5: I have more than enough duties already :/<br />
(05:03:58 PM) SaschaSilbe-47b5: <g><br />
(05:04:37 PM) dirakx: a call for help on sugar-digest might help ?<br />
(05:04:52 PM) tomeu: heh<br />
(05:05:00 PM) walterbender: I'll advertise it.<br />
(05:05:35 PM) erikos: ok, it is a critical position, would be nice to have someone<br />
(05:06:06 PM) SaschaSilbe-47b5: sorry for not volunteering myself, but i can't be responsive enough<br />
(05:07:25 PM) erikos: ok, let's ask widely<br />
(05:07:43 PM) erikos: next item<br />
(05:08:44 PM) garycmartin: erikos: Unofficially, I'll be keeping an eye on them and doing what I can.<br />
(05:08:44 PM) ***garycmartin reads all bugs anyway to help with his own testing cycles.<br />
(05:08:54 PM) tomeu: so, get the bugfixers crew ready<br />
(05:09:05 PM) erikos: bugfixers?<br />
(05:09:08 PM) erikos: garycmartin: ;D<br />
(05:09:09 PM) tomeu: now that we have alsroot fixing bugs, maybe we don't need any other people<br />
(05:09:18 PM) erikos: hehe<br />
(05:09:30 PM) SaschaSilbe-47b5: i'll help with sugar-datastore / sugar.datastore if anything comes up<br />
(05:09:39 PM) erikos: SaschaSilbe-47b5: nice<br />
(05:10:22 PM) erikos: tomeu: of course I am around for bug fixing<br />
(05:11:01 PM) garycmartin: tomeu: we passed a tipping point a few days back when alsroot was fixing faster than I was able to report them ;-)<br />
(05:11:17 PM) tomeu: heh<br />
(05:11:43 PM) tomeu: ok, so having alsroot helping out with this is certainly going to impact the robustness of 0.86<br />
(05:11:53 PM) SaschaSilbe-47b5: garycmartin: don't worry, there are still a few bugs i need to report... :)<br />
(05:12:02 PM) tomeu: but we need to make sure as may bugs as possible get filled in and triaged<br />
(05:12:05 PM) SaschaSilbe-47b5: tomeu: +1<br />
(05:12:19 PM) SaschaSilbe-47b5: (on both points)<br />
(05:13:29 PM) tomeu: so are we done with the plan?<br />
(05:13:38 PM) tomeu: sounds quite solid to me<br />
(05:15:01 PM) SaschaSilbe-47b5: what's the next topic?<br />
(05:16:05 PM) tomeu: fructose activities<br />
(05:16:30 PM) ***erikos has to go out for an hour in 5 minutes<br />
(05:17:07 PM) tomeu: so, we don't have new proposals, right?<br />
(05:17:25 PM) tomeu: but we have some that aren't actively maintained and aren't even functional in most screens<br />
(05:17:31 PM) ***alsroot for rethinking the whole idea of preinstalled activities in 0.88, but in 0.86 leave it as is(and coding orphaned activities)<br />
(05:17:44 PM) SaschaSilbe-47b5: tomeu: for additional fructose activities you mean?<br />
(05:18:30 PM) tomeu: SaschaSilbe-47b5: I mean that some activities that are listed currently as fructose, may not be a good fit for being there<br />
(05:18:42 PM) alsroot: s/coding/supporting/<br />
(05:18:42 PM) garycmartin: tomeu: "aren't even functional in most screens?" which ones?<br />
(05:18:51 PM) SaschaSilbe-47b5: is IRC part of fructose?<br />
(05:19:01 PM) alsroot: SaschaSilbe-47b5: nope<br />
(05:19:01 PM) garycmartin: tomeu: do you mean resolution issues?<br />
(05:19:18 PM) tomeu: garycmartin: yeah, pippy for example<br />
(05:19:33 PM) tomeu: it has hardcoded sizes everywhere<br />
(05:19:41 PM) garycmartin: tomeu: I'd love to fix up pippy :-) I think B Jordan is on the case though...<br />
(05:20:30 PM) tomeu: garycmartin: ok, we had an spontaneous contributor the other day on #sugar<br />
(05:20:39 PM) tomeu: but haven't seen him again<br />
(05:20:51 PM) tomeu: I also looked a bit at it, scrolled windows make it hard<br />
(05:20:52 PM) SaschaSilbe-47b5: tomeu: so you'd like to throw some activities out of Fructose?<br />
(05:20:57 PM) garycmartin: tomeu: (fix up pippy == new toolbars, move run/stop up into toolbar, resolve issue with left list view of examples, add warning if code will be lost).<br />
(05:21:11 PM) tomeu: SaschaSilbe-47b5: yup, or get people to fix them<br />
(05:21:49 PM) tomeu: garycmartin: ok, would be cool to read the progress in the ml<br />
(05:21:53 PM) tomeu: so people know what's going on<br />
(05:22:29 PM) garycmartin: tomeu: sure, I think it's trac ticket level stuff.<br />
(05:23:30 PM) tomeu: ok<br />
(05:23:57 PM) garycmartin: +1 for throwing some activities out of Fructose, should really only be there to support core.<br />
(05:24:07 PM) tomeu: so we have this list of modules in the wiki, that needs some updating: http://wiki.sugarlabs.org/go/Development_Team/Release/Modules<br />
(05:24:11 PM) befana left the room (quit: "Leaving.").<br />
(05:26:29 PM) tomeu: I tihnk I sent an email asking people to update it, but maybe I never got to send it<br />
(05:26:59 PM) tomeu: there's also the issue of the new toolbars, probably all activities in fructose should have the new toolbars<br />
(05:27:40 PM) garycmartin: tomeu: If I was to add new toolbars to Calculate (already suggested that to erikos) where do we stand on getting in included?<br />
(05:27:58 PM) ***garycmartin was hoping to be doing that today<br />
(05:28:05 PM) tomeu: I think calculate will be more appropriate<br />
(05:28:17 PM) tomeu: though as alsroot said, maybe we should define better what means to be in fructose<br />
(05:28:24 PM) garycmartin: +1<br />
(05:28:27 PM) tomeu: no rush on that, probably<br />
(05:28:59 PM) erikos: tomeu: yes, we did not announce the toolbars that much, actually<br />
(05:29:10 PM) alsroot: erikos: maybe we can rething fructose even in 0.86?<br />
(05:29:13 PM) erikos: tomeu: like: [ANNOUNCE] switch your toolbars<br />
(05:29:20 PM) alsroot: /srething/rethink/<br />
(05:29:49 PM) tomeu: so, what do people think: should we take out from fructose the activities that give a bad experience to our users?<br />
(05:30:03 PM) erikos: alsroot: I would be ok to take activities out (in 0.86)<br />
(05:30:16 PM) erikos: alsroot: the propper 'fix' we can do later<br />
(05:30:19 PM) erikos: alsroot: if needed<br />
(05:30:27 PM) SaschaSilbe-47b5: tomeu: +1 for 0.88, but -0.5 for 0.86<br />
(05:30:39 PM) erikos: tomeu: yup, I would be ok to take some out<br />
(05:30:47 PM) walterbender: which activities in Fructose give a bad experience?<br />
(05:30:58 PM) alsroot: tomeu: I'm not only for well suporrted acticities in fructose but for most needed<br />
(05:31:06 PM) tomeu: walterbender: in some common resolutions, pippy has no buttons<br />
(05:31:12 PM) SaschaSilbe-47b5: walterbender: Pippy at least (IMO)<br />
(05:31:18 PM) alsroot: so it could be Log, Terminal, Browse<br />
(05:31:48 PM) walterbender: maybe we drop it from Fructose for 0,86, but Pippy is an important activity. we should try to find a champion for it<br />
(05:31:57 PM) tomeu: alsroot: I would prefer to discuss this later, I have already too much stuff to do for 0.86<br />
(05:32:08 PM) tomeu: walterbender: sure<br />
(05:32:08 PM) erikos: alsroot: tomeu yup, me too<br />
(05:32:58 PM) SaschaSilbe-47b5: walterbender: would be great to find a champion for it. Pippy is a necessity for Sugar, but it doesn't match the Journal model<br />
(05:33:34 PM) garycmartin: tomeu: I'll make a clone to patch Calculate for the new toolbars, then at least it is there and done (and I'd obviously be responsible for any bugs I introduce).<br />
(05:34:07 PM) ***alsroot thinks that w/o rethink the whole fructose idea, just dropping some activities could make people frustrating<br />
(05:34:32 PM) erikos: thanks everyone for joining in - I am back in an hour<br />
(05:34:36 PM) tomeu: alsroot: well, but having pippy without a Run button isn't more frustrating?<br />
(05:34:42 PM) ***garycmartin waves to erikon<br />
(05:34:48 PM) tomeu: also, fructose isn't really user visible<br />
(05:34:57 PM) ***garycmartin waves to erikos as well :-)<br />
(05:35:03 PM) tomeu: is more for developers and packager to work together<br />
(05:35:04 PM) ***SaschaSilbe-47b5 is back in a biffy<br />
(05:36:41 PM) alsroot: tomeu: well, even if dont have full time maint for Pippy, we can still fix it from time to time<br />
(05:36:53 PM) alsroot: ..in 0.86<br />
(05:37:09 PM) garycmartin: tomeu: fixing Pippy now is still too late for 0.86, right?<br />
(05:38:04 PM) garycmartin: tomeu: that's the price of being in Fructose?<br />
(05:38:08 PM) tomeu: garycmartin: don't think so, it's a bugfix<br />
(05:38:22 PM) tomeu: alsroot: sure<br />
(05:38:48 PM) tomeu: if it delivers the basic functionality to most of our users, I'm happy to leave it there<br />
(05:39:00 PM) tomeu: as long as it follows the rules of respecting the freezes, dates, etc<br />
(05:39:19 PM) garycmartin: tomeu: bugfix, true. So should I try and have a look at Pippy today instead of calculate?<br />
(05:39:35 PM) tomeu: garycmartin: sounds good to me<br />
(05:39:37 PM) ***SaschaSilbe-47b5 is back<br />
(05:40:05 PM) tomeu: if alsroot and garycmartin have interest in pippy staying in 0.86 and will do the minimum work to keep it functional, then I don't have a reason to take it out from fructose<br />
(05:40:14 PM) garycmartin: tomeu: I can ping bjordan as well via email as he has acknowledged this recently for fixing up.<br />
(05:40:16 PM) alsroot: +1<br />
(05:40:19 PM) walterbender: garycmartin: I think as SaschaSilbe-47b5 suggestes, fixing Pippy is more than a bug fix<br />
(05:40:22 PM) tomeu: and I'm happy to see such an important activity reviving<br />
(05:40:33 PM) tomeu: garycmartin: even better, to involve other people<br />
(05:41:22 PM) dirakx: Ceibal jam is developping a library with examples to pippy. ;). btw.<br />
(05:41:52 PM) tomeu: oh, true<br />
(05:42:01 PM) dirakx: we can ask for a champion there also..<br />
(05:42:02 PM) tomeu: and they had some improvements to it<br />
(05:42:11 PM) tomeu: dirakx++<br />
(05:42:23 PM) dirakx: i can do it. ;).<br />
(05:42:35 PM) dirakx: ask for help there.<br />
(05:42:36 PM) tomeu: nice! ;)<br />
(05:42:42 PM) SaschaSilbe-47b5: dirakx: shouldn't be too hard to convert those to a new, "Journal-based" Pippy version<br />
(05:43:17 PM) dirakx: ok i have a to-do then.<br />
(05:44:26 PM) dirakx: SaschaSilbe-47b5: kk.<br />
(05:44:32 PM) tomeu: ok, any other topics?<br />
(05:44:39 PM) SaschaSilbe-47b5: tomeu: yep<br />
(05:45:02 PM) SaschaSilbe-47b5: i'd like to propose alsroot as developer/volunteer/whatever of the month<br />
(05:45:04 PM) bemasc: I have some familiarity with the pippy codebase, but I don't really know what te bug in question is.<br />
(05:45:18 PM) dirakx: SaschaSilbe-47b5: ++1<br />
(05:45:29 PM) alsroot: who said that we dont have pippy maints ;)<br />
(05:45:30 PM) SaschaSilbe-47b5: for taking on a crusade against bugs<br />
(05:45:33 PM) garycmartin: SaschaSilbe-47b5: +1 :-)<br />
(05:45:36 PM) tomeu: SaschaSilbe-47b5++<br />
(05:45:43 PM) tomeu: how can we properly announce it?<br />
(05:46:09 PM) SaschaSilbe-47b5: walterbender's digest?<br />
(05:46:26 PM) dirakx: and what is the prize ? ;)<br />
(05:46:40 PM) alsroot: another dozen of bugs to fix, I guess<br />
(05:46:43 PM) dirakx: a cookie?.<br />
(05:46:47 PM) walterbender: maybe his picture in conic form on the home page of every Sugar downloaded this month?<br />
(05:46:50 PM) SaschaSilbe-47b5: dirakx: honour is prize in itself :-P<br />
(05:46:57 PM) dirakx: hehe,<br />
(05:47:12 PM) alsroot: walterbender: -1 for pictures<br />
(05:47:26 PM) garycmartin: alsroot: LOL :-)<br />
(05:48:09 PM) tomeu: conic form?<br />
(05:48:42 PM) tomeu: digest++<br />
(05:48:47 PM) walterbender: we used to have an About example in Pippy with ACKs to the developers...<br />
(05:48:47 PM) walterbender: we could add a dictionary entry for heros<br />
(05:48:59 PM) tomeu: heh, ok<br />
(05:49:04 PM) walterbender: ^conic^iconic<br />
(05:49:36 PM) walterbender: tomeu: you can use Inkscape to make nice Sugarized SVGs from bitmaps :)<br />
(05:50:04 PM) SaschaSilbe-47b5: maybe FGrose can add some wikipedia-style honour badge/banner for him as well and mention it on the start page<br />
(05:50:31 PM) dirakx: SaschaSilbe-47b5: good idea.<br />
(05:51:10 PM) garycmartin: walterbender: I could do a 3d caricture of alsroot (if I knew what he looked like ;-) but likely would end up as some cute cartoon character :-p<br />
(05:51:35 PM) homunq [n=chema@187.143.7.77] entered the room.<br />
(05:51:35 PM) alsroot: garycmartin: you can use my icon from git.sl.o :P<br />
(05:51:39 PM) SaschaSilbe-47b5: garycmartin: that would probably not be a bad match for Sugar :)<br />
(05:51:59 PM) walterbender: garycmartin: we don't want to frighten the little children :)<br />
(05:52:04 PM) ***garycmartin goes looking...<br />
(05:53:19 PM) ***alsroot goes looking as well<br />
(05:53:30 PM) garycmartin: SaschaSilbe-47b5: I'd love to to 3d animal/cartoon characters for Sugar, but the UI is just not in that style ;-) Maybe some will make it in a spcific Activities.<br />
(05:54:15 PM) SaschaSilbe-47b5: garycmartin: i meant that a cartoon-style image for alsroot would be a good match to our current UI<br />
(05:54:26 PM) SaschaSilbe-47b5: not that we should introduce new icons<br />
(05:54:31 PM) sdziallas [n=sebastia@fedora/sdziallas] entered the room.<br />
(05:54:59 PM) alsroot: looks like its a competition for alsroot's best avatar<br />
(05:55:02 PM) garycmartin: SaschaSilbe-47b5: (like the use of the grasshopper in the hop-around maths activity)<br />
(05:55:40 PM) walterbender: garycmartin: there is the fable of the ant and the grasshopper... better an ant icon.<br />
(05:55:41 PM) SaschaSilbe-47b5: yeah, let's have a logo competition for alsroot ;)<br />
(05:56:08 PM) SaschaSilbe-47b5: but getting serious now, is there anything left to discuss?<br />
(05:56:47 PM) tomeu: we can call the next soas release "alsroot" instead of blueberry :p<br />
(05:56:52 PM) tomeu: sean will love it<br />
(05:57:06 PM) SaschaSilbe-47b5: what flavour is he?<br />
(05:58:17 PM) walterbender: Isn't that the flavor between vanilla and chocolate in a Neoploitan?<br />
(05:58:17 PM) SaschaSilbe-47b5: ok, seems like nothing left, going to fetch some food now<br />
(05:58:42 PM) garycmartin: thanks all for the productive meeting!<br />
(05:58:45 PM) tomeu: SaschaSilbe-47b5: wait, have we decided how to announce alsroot's honour?<br />
(05:59:10 PM) SaschaSilbe-47b5: tomeu: digest and wiki (asking FGrose) i think<br />
(05:59:25 PM) tomeu: ok, thanks<br />
(05:59:29 PM) tomeu: we can close the meeting now<br />
(05:59:37 PM) tomeu: thanks a lot for coming, etc<br />
</pre></div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Meetings/Logs/September_01_2009&diff=45140Development Team/Meetings/Logs/September 01 20092010-02-21T22:22:36Z<p>Anal bleaching: moved Development Team/Meetings/Logs/September 01 2009 to Anal bleaching 15/Meetings/Logs/September 01 2009:&#32;Anal bleaching</p>
<hr />
<div> (06:03:08 PM) tomeu: hi all!<br />
(06:03:25 PM) garycmartin: tomeu: Hi!<br />
(06:04:20 PM) silbe [n=silbe@cl-1285.dus-01.de.sixxs.net] entered the room.<br />
(06:04:29 PM) tomeu: so, we have quite a bit of people already<br />
(06:04:34 PM) tomeu: but we miss our release manager<br />
(06:04:41 PM) tomeu: hi silbe<br />
(06:04:48 PM) silbe: hi all :)<br />
(06:07:23 PM) tomeu: let's give erikos 5 minutes more?<br />
(06:07:36 PM) tomeu: are alsroot and mtd with us?<br />
(06:07:38 PM) garycmartin: tomeu: sure, good for me.<br />
(06:08:00 PM) ***alsroot here<br />
(06:11:53 PM) tomeu: hmm, I'm going to sms him because we are going to talk mainly about the release process<br />
(06:14:04 PM) erikos [n=erikos@g225069124.adsl.alicedsl.de] entered the room.<br />
(06:14:09 PM) ***erikos is here<br />
(06:14:17 PM) ***erikos apologize for being late<br />
(06:14:39 PM) garycmartin: erikos: Hi!<br />
(06:14:52 PM) erikos: garycmartin: good afternoon<br />
(06:15:18 PM) tomeu: nice, everybody is here<br />
(06:15:29 PM) ***erikos listens to the head of the department<br />
(06:15:53 PM) tomeu: Topics Feature freeze: what missed the train, pending exception requests, improving the process, ... Stability: worst issues, further testing, bugfixing, triaging, ... <br />
(06:15:59 PM) tomeu: any other topics for today?<br />
(06:16:51 PM) tomeu: so, with the first one, I think alsroot and silbe worked on substantial stuff during this cycle that didn't got into the release<br />
(06:17:11 PM) tomeu: how do you feel about that?<br />
(06:17:17 PM) tomeu: any ideas how we can improve the process?<br />
(06:17:23 PM) erikos: tomeu: yup, so those were bigger fishes<br />
(06:17:40 PM) erikos: tomeu: the versions one at least<br />
(06:17:54 PM) erikos: tomeu: and work on the thumbs for example, just did start a bit late<br />
(06:17:59 PM) silbe: tomeu: i think timing was just too tight - feature freeze right after gsoc. not enough time for the review process.<br />
(06:18:20 PM) tomeu: silbe: yeah, we actually thought about it when we set the dates, but the distro dates are important for us<br />
(06:18:28 PM) erikos: silbe: and summertime, with holidays etc as well<br />
(06:18:40 PM) tomeu: gnome has the same problem<br />
(06:18:50 PM) erikos: tomeu: I imagine so<br />
(06:19:02 PM) tomeu: and I guess the rest of the projects that have their releases synced with the main distros<br />
(06:19:05 PM) silbe: we'll just get a more polished version in 0.88 then :)<br />
(06:19:25 PM) tomeu: that's the spirit, there's always a next release<br />
(06:19:49 PM) tomeu: alsroot: what about you? should we have communicated better the restrictions of the feature freeze?<br />
(06:20:11 PM) silbe: just hope 0.88 will make it into Debian squeeze then - the next Debian release is supposed to take another 2 years after squeeze...<br />
(06:20:39 PM) erikos: silbe: absolutely!<br />
(06:20:39 PM) alsroot: tomeu: dunno, in my case I took a wrong way by adding thumbs to 0.86, it would be much better to implements just plugins first in 0.86<br />
(06:20:46 PM) Alphinux [n=alphinux@unaffiliated/alphinux] entered the room.<br />
(06:21:15 PM) tomeu: alsroot: ok, we should discuss plugins ASAP<br />
(06:21:25 PM) silbe: what plugins?<br />
(06:21:27 PM) tomeu: alsroot: perhaps we can add it to the topics list of today?<br />
(06:21:55 PM) alsroot: tomeu: hmm.. but it could be implemented on in 0.88<br />
(06:22:03 PM) alsroot: silbe: view plugins for Journal<br />
(06:22:12 PM) alsroot: *only<br />
(06:22:19 PM) tomeu: alsroot: sure, it would be in 0.88<br />
(06:22:50 PM) tomeu: ok, let's discuss that a bit later?<br />
(06:22:52 PM) silbe: alsroot: playing devils advocate: what's the advantage of Journal plugins over an activity that interfaces with the data store?<br />
(06:22:52 PM) alsroot: anyway its a good idea to discuss plugins asap<br />
(06:23:10 PM) silbe: ok, let's postpone that<br />
(06:23:31 PM) alsroot: silbe: we could have view for specific purposes eg books, viedeo etc<br />
(06:23:33 PM) tomeu: alsroot, silbe, anyone: any input on the release process and how it is communicated?<br />
(06:24:26 PM) silbe: tomeu: i think the release process is fine so far. code review could be improved, but we're already on it.<br />
(06:24:53 PM) tomeu: ok, forgot to add code review to the topics, we cna also talk afterwards about it<br />
(06:25:18 PM) tomeu: pending feature freeze exceptions: we have one<br />
(06:25:44 PM) tomeu: hamilton chua has proposed that we merge his code for registering with a school server<br />
(06:25:50 PM) garycmartin: tomeu: feature freeze seemed a little 'slushy' this time, still some (small) things outstanding even now right? (I'm thinking toolbar stuff)<br />
(06:25:57 PM) tomeu: it has already one +1, it needs one more<br />
(06:25:58 PM) alsroot: we missed chance to have library.sl.o(or so) in 0.86 to share .xol/jobjects -- i think the problem is we dont have committee<br />
(06:26:21 PM) tomeu: alsroot: ok, which kind of committee?<br />
(06:26:29 PM) tomeu: garycmartin: do we have pending feature work on the toolbar?<br />
(06:26:45 PM) erikos: garycmartin: what was slushy in concrete?<br />
(06:26:54 PM) alsroot: tomeu: Engineering committee<br />
(06:27:03 PM) garycmartin: tomeu: on the core Activities, yes.<br />
(06:27:08 PM) erikos: tomeu: yeah, to move all the activities (has done some work sitting on his harddrive)<br />
(06:27:38 PM) ***garycmartin has some more icons for erikos to be sent later today<br />
(06:27:38 PM) tomeu: alsroot: which would be the responsibilities of this committee?<br />
(06:28:03 PM) erikos: garycmartin: so personally, from my point of view, the issue is: that we all have limited time :(<br />
(06:28:08 PM) tomeu: garycmartin: but the freeze only affects sucrose<br />
(06:28:10 PM) alsroot: tomeu: we could discuss(hot or cold) some topics on ml but dont take any steps to implements this because there is no consensus<br />
(06:28:18 PM) erikos: garycmartin: and things take longer then they would need to otherwise<br />
(06:28:44 PM) erikos: tomeu: yeah, and sucrose activities have not been moved yet - I am working with gary on it<br />
(06:29:00 PM) tomeu: alsroot: and how would the engineering committee help there?<br />
(06:29:12 PM) tomeu: garycmartin, erikos: ok, so that's pending features<br />
(06:29:26 PM) erikos: tomeu: yup<br />
(06:29:28 PM) garycmartin: tomeu: sucrose only! oh my I though freeze was sucrose + fructose. Thanks, I'd missed that.<br />
(06:29:29 PM) tomeu: erikos: how risky is that kind of work?<br />
(06:29:50 PM) tomeu: garycmartin: sucrose includes fructose and glucose<br />
(06:30:33 PM) erikos: tomeu: from my findings the sucrose activities changes are not that risky<br />
(06:30:41 PM) alsroot: tomeu: it could be like features, someone proposes something, discussing in ml, if there is no consensus committee decides how it should be<br />
(06:30:59 PM) erikos: tomeu: but, if strict - it would not happen after our freeze :/<br />
(06:30:59 PM) garycmartin: tomeu: (where's that blasted wiki diagram when you need it ;-)<br />
(06:31:00 PM) tomeu: alsroot: sounds good<br />
(06:31:01 PM) bemasc: alsroot: the mailing list is the committee.<br />
(06:31:13 PM) tomeu: bemasc: yeah, but what means silence?<br />
(06:31:21 PM) bemasc: It means no one cares.<br />
(06:31:34 PM) tomeu: bemasc: that's not true, I may care but missed the thread<br />
(06:31:41 PM) alsroot: bemasc: I could care about lots of things but I can't since it affect core system<br />
(06:31:44 PM) tomeu: I didn't cared so much to reply in the moment I read it<br />
(06:31:55 PM) tomeu: but that doesn't mean I wouldn't like to see it implemented if someone has time<br />
(06:32:08 PM) tomeu: I cannot reply to every email in every interesting thread<br />
(06:32:12 PM) alsroot: bemasc: its ok if its only about separate activity but what about library.sl.o<br />
(06:32:37 PM) bemasc: alsroot: if you want to do it, do it.<br />
(06:32:55 PM) alsroot: bemasc: I need changes in glucose<br />
(06:32:57 PM) tomeu: bemasc: yeah, but the person wants some kind of assurance that the design of her work is more or less ok<br />
(06:32:59 PM) tomeu: before coding it<br />
(06:33:24 PM) tomeu: we'll get to this point when we talk about the review process<br />
(06:34:07 PM) tomeu: bemasc: I see what you mean and that was the initial idea, but I think I understand now what alsroot means<br />
(06:34:17 PM) erikos: I think sugar differs from other open source projects in the following way:<br />
(06:34:32 PM) erikos: we do not only code for the fun or to scratch our own itch<br />
(06:34:42 PM) erikos: we need a design process included<br />
(06:34:50 PM) erikos: and a pedagocical one as well<br />
(06:34:54 PM) bemasc: alsroot: is there a concrete case in which someone asked for design advice from the mailing list and didn't get any?<br />
(06:35:15 PM) bemasc: When I ask a question, I usually get lots of advice. Not necessarily very helpful advice, but lots of it.<br />
(06:36:20 PM) erikos: maybe we should discuss the commitee after 0.86?<br />
(06:36:35 PM) erikos: I think we have lots work to do on 0.86 first<br />
(06:36:38 PM) tomeu: erikos: well, such a thing needs to be discussed in the ml anyway<br />
(06:36:49 PM) erikos: tomeu: that too<br />
(06:36:58 PM) tomeu: yeah, certainly the committe is not going to help much with bugs, AFAICS<br />
(06:37:20 PM) erikos: right, we have bugs bugs bugs to fix<br />
(06:37:35 PM) alsroot: bemasc: in case of library.sl.o one thing was needed - take one particualar way(I personaly was for one way, someone was for others) -- so we need referee<br />
(06:37:41 PM) erikos: and we have a few things we want to fully land (toolbars)<br />
(06:38:37 PM) tomeu: bemasc: something very common is that someone proposes a project that person is willing to work on, then some bystanders point out some possible issues or propose some alternatives that nobody is going to implement<br />
(06:38:57 PM) garycmartin: bemasc: I see lot's of ideas that need design input float past, I try to grab and help where I can, but this is uaualy low hanging fruit only, or something I might have some work done on already, or if it's just really, really inline with something I'd like to see happen.<br />
(06:39:14 PM) tomeu: I think it would be good that those people can ask someone: what's your opinion: is this reasonable enough for me to start to code it or not?<br />
(06:40:50 PM) tomeu: in gnome, if someone doesn't contributes because of perceived lack of interest or gets its patch rejected about lots of work, nobody cares to lose a contributor<br />
(06:40:59 PM) tomeu: because there thousands of them<br />
(06:42:14 PM) tomeu: ok, we can discuss this further in the mailing list<br />
(06:42:19 PM) bemasc: I'm just trying to avoid the creation of more unnecessary committees, meeting, and IRC traffic.<br />
(06:42:30 PM) tomeu: alsroot: do you take the action item of starting this discussion?<br />
(06:42:35 PM) tomeu: bemasc: I understand that concern<br />
(06:42:50 PM) bemasc: Let's move on.<br />
(06:42:52 PM) alsroot: tomeu: I mailed to devel@<br />
(06:43:11 PM) alsroot: created Feature/ pages<br />
(06:43:23 PM) tomeu: alsroot: yeah, we need a committee to approve the creation of the committee ;)<br />
(06:43:58 PM) erikos: tomeu: ok, your opinion on the toolbars one, please?<br />
(06:43:58 PM) tomeu: alsroot: we need to give more power to contributors like you, right now we have power too concentrated on people with too much responsibilities<br />
(06:44:11 PM) tomeu: alsroot: that's why decisions stall sometimes<br />
(06:44:20 PM) tomeu: alsroot: for now, it's good to ping in those cases<br />
(06:44:29 PM) sdziallas left the room (quit: Read error: 110 (Connection timed out)).<br />
(06:44:43 PM) tomeu: erikos: well, I see the importance of the feature, but need to see the code first and see how invasive would be<br />
(06:44:47 PM) dirakx: i think the code review process is a major concern that the one of the comittee.<br />
(06:45:08 PM) tomeu: dirakx: they are related, but we'll get to it later<br />
(06:45:15 PM) dirakx: ok<br />
(06:45:19 PM) tomeu: we are 45 minutes in th emeeting already<br />
(06:45:21 PM) erikos: tomeu: ok<br />
(06:45:32 PM) ***erikos listens to tomeu<br />
(06:45:56 PM) tomeu: so, if we don't have more pending features nor suggestions about how to improve the release process...<br />
(06:46:09 PM) tomeu: we get to the next point: stability<br />
(06:46:22 PM) tomeu: how do we make 0.86 a release that is more stable than the previous ones?<br />
(06:46:44 PM) tomeu: I think in 0.84 we had less testing than in previous releases<br />
(06:46:52 PM) tomeu: that means we have some terrain to gain here<br />
(06:47:04 PM) tomeu: also, we have landed quite a bit of new code<br />
(06:47:19 PM) tomeu: that brings bugs, some known, most still to discover<br />
(06:47:29 PM) tomeu: I'm quite a bit worried about this<br />
(06:47:45 PM) garycmartin: tomeu: How about fix Metacity layering issues with a big stick, would be a good start ;-b<br />
(06:48:05 PM) tomeu: garycmartin: ok, today I fixed window positioning and sizing with a big stick<br />
(06:48:23 PM) erikos: tomeu: awesome!<br />
(06:48:28 PM) silbe: tomeu: cool, so Terminal works again on my XO? can't wait to try it out :-P<br />
(06:48:33 PM) ***garycmartin dances around the room, and spills his tea!<br />
(06:48:33 PM) tomeu: but haven't looked at layering yet<br />
(06:48:51 PM) tomeu: if we cannot fix that right, we'll need to go back to matchbox<br />
(06:49:15 PM) tomeu: looks like metacity doesn't like transient windows on the desktop window, but nautilus has popups there, so...<br />
(06:49:26 PM) silbe: tomeu: +1 on going back to matchbox if we don't get everything fixed till the release<br />
(06:49:30 PM) tomeu: garycmartin: any other big issues that may impede testing?<br />
(06:49:39 PM) tomeu: silbe: or even earlier, yeah<br />
(06:49:43 PM) sdziallas [n=sebastia@fedora/sdziallas] entered the room.<br />
(06:49:49 PM) bemasc: I think the most helpful thing would be to release up-to-date emulation images.<br />
(06:50:26 PM) bemasc: Nightly, even.<br />
(06:50:29 PM) garycmartin: tomeu: no obvious testing blocaker that come to mind just now.<br />
(06:50:45 PM) tomeu: bemasc: a .iso is not enough?<br />
(06:50:57 PM) silbe: tomeu: xephyr/xnest is a blocker as usual<br />
(06:51:25 PM) tomeu: silbe: yeah, the alt key is quite flaky right now :/<br />
(06:51:32 PM) tomeu: well, also in real X<br />
(06:51:34 PM) bemasc: tomeu: A .iso could be enough if it's tested and working read/write with qemu and virtualbox and vmware.<br />
(06:51:35 PM) silbe: tomeu: i have some issues with alt, but can only debug that on the XO because it's the only machine running sugar "native"<br />
(06:51:43 PM) garycmartin: tomeu: Once new toolbars are done, I'll switch into a testing mode (run through large number of activities, try to push all the feature buttons I can).<br />
(06:51:54 PM) silbe: tomeu: ok, so you know about that bug already ;)<br />
(06:52:20 PM) tomeu: garycmartin: that will be awesome, make sure to mention it in the thread of the freeze exception request<br />
(06:52:43 PM) tomeu: silbe: we may have to drop that one if we cannot fix it properly in a short time<br />
(06:52:55 PM) bemasc: drop what?<br />
(06:53:15 PM) erikos: tomeu: we should see as well, how we organize the bug work<br />
(06:53:16 PM) tomeu: bemasc: http://dev.sugarlabs.org/ticket/1129<br />
(06:53:38 PM) tomeu: erikos: yeah, you took care of that in the past, what we can do about it?<br />
(06:53:39 PM) silbe: tomeu: i'd hate to see it go, though :-/<br />
(06:54:03 PM) tomeu: silbe: debugging X takes time and normally it's me who does it :/<br />
(06:54:09 PM) erikos: tomeu: we need to schedule triage sessions, and fix bugs<br />
(06:54:22 PM) erikos: tomeu: and of course there should be builds for people to test<br />
(06:54:24 PM) silbe: tomeu: i know :(<br />
(06:54:46 PM) bemasc: I think it should be a high priority for all bugs in trac to be correctly prioritized and targeted.<br />
(06:54:57 PM) tomeu: erikos: yeah, do you think soas will work for that?<br />
(06:55:00 PM) bemasc: I also think that we need an explicit functionality target.<br />
(06:55:15 PM) tomeu: bemasc: +1 about triaging<br />
(06:55:19 PM) erikos: tomeu: I guess, I would argue to use F11-soas for that<br />
(06:55:24 PM) bemasc: IMHO, our target should be "ready for deployment by OLPC to hundreds of thousands of children on the XO-1.5".<br />
(06:55:31 PM) tomeu: bemasc: "explicit functionality target"?<br />
(06:55:46 PM) tomeu: erikos: yeah, though we need to maintain a private repo for that<br />
(06:55:49 PM) tomeu: erikos: takes some time<br />
(06:56:08 PM) erikos: tomeu: ok, I don't know about the F12 state, sdziallas ?<br />
(06:56:13 PM) bemasc: tomeu: a way to determine whether a release candidate is stable enough to release.<br />
(06:56:32 PM) tomeu: bemasc: I see a bit of a problem there for us to know what means ready for deployment<br />
(06:56:34 PM) garycmartin: bemasc: All the noises I've seen seem to suggest OLPC are picking up 0.84, unfortunately.<br />
(06:56:53 PM) tomeu: garycmartin: yeah, but we want them to want to pick up next releases<br />
(06:57:34 PM) erikos: garycmartin: which countries are those?<br />
(06:57:36 PM) tomeu: bemasc, garycmartin: this is a bit related to having a LTS cycle<br />
(06:57:40 PM) erikos: garycmartin: uruguay? peru?<br />
(06:57:43 PM) bemasc: garycmartin: right. They may start with 0.84, but we want to make sure that they _can_ upgrade to 0.86.<br />
(06:57:56 PM) dirakx: +1.<br />
(06:58:25 PM) bemasc: (Also, I'm not totally sure that 0.84 will survive OLPC's testing.)<br />
(06:58:25 PM) garycmartin: bemasc: +1<br />
(06:58:52 PM) tomeu: bemasc: do you know if OLPC has now a testing team?<br />
(06:59:12 PM) tomeu: bemasc: if they wanted, there could be bug fixes releases, but needs to be discussed in advanced<br />
(06:59:13 PM) bemasc: tomeu: no, I don't, but we can ask.<br />
(06:59:16 PM) erikos: bemasc: I don't think *we* need to make sure if it runs or not<br />
(06:59:29 PM) tomeu: to not get again in the situation of changing code in the last minute<br />
(06:59:36 PM) erikos: bemasc: we do not have resources for that<br />
(06:59:53 PM) dirakx: afaik OLPC doesn't have such a team.<br />
(06:59:59 PM) garycmartin: erikos: re: countries, well where ever the sales of XO-1.5s will be going. Looks like XO-1 support of 0.84 is mainly external side effect of the XO1.5 work.<br />
(07:00:01 PM) erikos: bemasc: and anyhow, I do not think it is our area<br />
(07:01:00 PM) erikos: garycmartin: yeah, I have not been following those discussions, so I really don't know ;p<br />
(07:01:19 PM) bemasc: erikos: We do have resources for that. We have XOs.<br />
(07:01:50 PM) tomeu: bemasc, erikos: there's some part that needs to be played by downstreams and some part that needs to be played by upstreams<br />
(07:01:56 PM) tomeu: nothing that one side can solve by it alone<br />
(07:02:14 PM) erikos: tomeu: right, so it does not happen just magically<br />
(07:02:21 PM) erikos: tomeu: that is my point<br />
bemasc bernie <br />
(07:02:48 PM) erikos: we do not even have the resources to manage our release sufficently, imho<br />
(07:03:01 PM) tomeu: bemasc: but we can do some testing, etc. would help having someone who wants to own that and coordinate the work<br />
(07:03:24 PM) erikos: how can I realistically say: yay I will make sure it runs fine on the xo?<br />
(07:03:27 PM) tomeu: silbe was interested in automated tests, for example<br />
(07:03:33 PM) bemasc: I agree. I'm just saying that I want 0.86, when it's released, to be ready for OLPC to do its integration work.<br />
(07:03:53 PM) tomeu: bemasc: I think we all here want that ;)<br />
(07:04:00 PM) bemasc: That means, for example, that screen rotation has to work.<br />
(07:04:19 PM) bemasc: It means that the keyboard system has to be ready for OLPC customizations.<br />
(07:04:42 PM) garycmartin: bemasc: FWIW, I have 3 XOs here, I'm using two currently to test 0.84.x builds (together with an 0.82 XO and 0.85.x sugar-jhbuild)<br />
(07:04:43 PM) walterbender: it would be nice to have a priorty list from OLPC (or deployments)<br />
(07:04:44 PM) silbe: bemasc: sorry for the ignorance, but isn't screen rotation a hardware / distro issue?<br />
(07:04:51 PM) bemasc: It means that the system has to respond well to unexpected Out Of Disk errors.<br />
(07:05:00 PM) tomeu: bemasc: ok, this is normally done downstream, but if someone wants to create a subproject in sugarlabs that takes care of that, I think people will agree with it<br />
(07:05:02 PM) bemasc: silbe: it's easy to build a GUI that crashes when the screen size changes.<br />
(07:05:24 PM) bemasc: silbe: Sugar tended to crash during rotation for a long time.<br />
(07:05:42 PM) sdziallas: erikos: hey, sorry... I'm here now. you pinged?<br />
(07:05:42 PM) silbe: bemasc: ok, so it's more about bugs than about a feature.<br />
(07:06:00 PM) walterbender: bemasc: if I had to guess, I would say screen rotation is a low priority for deployments...<br />
(07:06:01 PM) bemasc: It means that enormous memory usage is unacceptable.<br />
(07:06:08 PM) walterbender: not that it should be broken...<br />
(07:06:09 PM) tomeu: bemasc: perhaps we should move on, do you take the action item to start a discussion about how SLs can make sure its releases have enough quality to be deployed by OLPC?<br />
(07:06:11 PM) bemasc: walterbender: a "crash my XO" button is pretty bad.<br />
(07:06:18 PM) erikos: sdziallas: yup, wanted to ask you if F12-soas is usable for sugar testing<br />
(07:06:23 PM) tomeu: we have been 66 minutes from the start of the meeting<br />
(07:06:25 PM) walterbender: crashing is another matter.<br />
(07:06:47 PM) erikos: sdziallas: or in a state where we run in a lot of F12 and soas bugs?<br />
(07:06:48 PM) bemasc: tomeu: I don't think there's much of a discussion to be had. Who is the release manager?<br />
(07:06:55 PM) sdziallas: erikos: it will be *very* soon. but it will be a SL-only thing. since OLPC will - at least afaik - stick with F11 for now.<br />
(07:07:05 PM) tomeu: bemasc: erikos, not sure what it has to do<br />
(07:07:20 PM) bemasc: The release manager decides when the release is ready.<br />
(07:07:23 PM) tomeu: bemasc: I don't see clear at all how we can manage what you propose, so I would expect some discussion<br />
(07:07:23 PM) sdziallas: erikos: naw. I don't think it's state is too bad right now. However, I'll need to work with mtd to work some general (build) issues out.<br />
(07:07:38 PM) tomeu: bemasc: and how the release manager is going to know how things work on the XO?<br />
(07:07:42 PM) erikos: sdziallas: ok, awesome!<br />
(07:08:07 PM) tomeu: bemasc: we are having some discussion right now, btw ;)<br />
(07:08:07 PM) ***sdziallas runs for dinner, will be back in ten.<br />
(07:08:44 PM) tomeu: so, we have already talked about the worst bugs already known in 0.85<br />
(07:08:56 PM) tomeu: let me repaste the topic:<br />
(07:09:02 PM) tomeu: Stability: worst issues, further testing, bugfixing, triaging, ... <br />
(07:09:07 PM) tomeu: so, testing<br />
(07:09:14 PM) tomeu: how we can get the testing we need?<br />
(07:09:31 PM) tomeu: garycmartin has proposed his help on that, but we'll need much more<br />
(07:09:50 PM) tomeu: bemasc has pointed the need for emulation images<br />
(07:09:57 PM) erikos: tomeu: I would say - we need to propose a build on the ml and ask for testing<br />
(07:10:13 PM) erikos: tomeu: would be good to get the toolbars work in for that (if accepted)<br />
(07:10:13 PM) tomeu: erikos: will that be a soas build?<br />
(07:10:18 PM) tomeu: based on f12 or on f11?<br />
(07:10:26 PM) erikos: tomeu: yup, sdziallas says it is good to go!<br />
(07:10:37 PM) erikos: tomeu: F12, then I guess<br />
(07:10:52 PM) tomeu: ok so we should update the rpms, several fixes landed since the last ones<br />
(07:11:01 PM) erikos: yup<br />
(07:11:10 PM) tomeu: maybe I can do rpms tomorrow morning<br />
(07:11:12 PM) satellit: I can help here via vmware and usb/sd testing have f12 edu spin on sd now<br />
(07:11:15 PM) dirakx: i'll help withe testing, having the emulation images..<br />
(07:11:26 PM) erikos: tomeu: I will work with gary on toolbars<br />
(07:11:26 PM) tomeu: satellit, dirakx: excelent!<br />
(07:11:41 PM) tomeu: erikos: yeah, that's very important to do ASAP<br />
(07:11:51 PM) erikos: tomeu: tonight ;D<br />
(07:12:07 PM) tomeu: ok, so I own rpms, you two toolbars<br />
(07:12:12 PM) erikos: tomeu: I know - I am very unhappy how limited my time is those days ;p<br />
(07:12:18 PM) tomeu: yeah :/<br />
(07:12:31 PM) tomeu: next point: bugfixing<br />
(07:12:33 PM) garycmartin: tomeu: just remembered an outstanding feature (may be it's a bug?); the removal of the title/sort bars on the two list views (Journal and Home View), there's quite a bit of unusual behaviour cause by them (strange focus effects, odd highlights, etc).<br />
(07:12:41 PM) bemasc: dirakx: are you volunteering to help build emu images?<br />
(07:12:42 PM) tomeu: who is available to hunt bugs and squash then?<br />
(07:13:01 PM) dirakx: bemasc: nop just to test them when they are ready.<br />
(07:13:07 PM) tomeu: garycmartin: we may have to remove them instead of fixing the bugs, would be less invasive<br />
(07:13:13 PM) erikos: s/:p/:(<br />
(07:13:15 PM) satellit: f12 journal blocks popups on alpha sugar<br />
(07:13:24 PM) tomeu: garycmartin: maybe you can raise this issue in the mailing list?<br />
(07:13:45 PM) garycmartin: tomeu: understood.<br />
(07:13:50 PM) tomeu: satellit: do we have a ticket already?<br />
(07:13:54 PM) tomeu: that's an important one<br />
(07:14:00 PM) erikos: tomeu: I did sent once a list of those issues to the ml <- garycmartin<br />
(07:14:01 PM) tomeu: maybe it's the one about layering?<br />
(07:14:03 PM) satellit: not yet will do<br />
(07:14:04 PM) bemasc: tomeu: I think an official proclamation of a "Bug Hunt" on the mailing list would help, once we are ready. Maybe with periodic updates as to who has discovered the most bugs, and who has killed the most?<br />
(07:14:11 PM) bemasc: almost like a competition.<br />
(07:14:17 PM) garycmartin: tomeu: raise on mail-list? You think there may be someone who can fix?<br />
(07:14:18 PM) dirakx: bemasc: i cannot spend too much time on that because i'm focusing on deployments and local labs.<br />
(07:14:22 PM) tomeu: erikos: about the header?<br />
(07:14:33 PM) erikos: tomeu: not only the header<br />
(07:14:34 PM) tomeu: garycmartin: just to discuss if we drop them or not<br />
(07:14:42 PM) ***erikos looks for the thread topic<br />
(07:14:48 PM) tomeu: garycmartin: so designers are kept in the loop<br />
(07:14:58 PM) tomeu: bemasc: that's a very good idea<br />
(07:15:07 PM) tomeu: bemasc: similar to the hundred paper cuts?<br />
(07:15:14 PM) tomeu: they are exposing pretty well this work<br />
(07:15:44 PM) erikos: garycmartin: 'Journal Listview (gtk.treeview)'<br />
(07:15:47 PM) silbe: bemasc: good idea. we should also ensure bugs get actually fixed. it's quite frustating to keep reporting bugs and only see very few of them fixed (general observation, not limited to Sugar).<br />
(07:16:07 PM) bemasc: tomeu: yes. Also a bit like http://www.gentoo.org/news/en/gwn/20070910-newsletter.xml#bugs-closed<br />
(07:16:32 PM) tomeu: silbe: yeah, without triaging, trac is a big black hole<br />
(07:16:56 PM) silbe: bemasc: ah, seems i missed the last word - yeah, good idea :)<br />
(07:17:15 PM) dirakx: i also have a request, maybe of benifit to new contributors, when somebody close a bug it woulfd be nice to have a link to the commit like alsroot does ?.<br />
(07:17:35 PM) tomeu: dirakx: ok, I haven't been doing that always<br />
(07:17:47 PM) erikos: tomeu: yeah, you are doing well<br />
(07:17:53 PM) garycmartin: tomeu: erikos gtk.treeview, OK I will email the ml about aheads up on that one (may drop if bugs don't get squashed soon).<br />
(07:17:57 PM) dirakx: it's a minor request but could be helpful<br />
(07:18:08 PM) silbe: dirakx: it may already be in the guidelines, but some of us keep forgetting. helps to nag them about it :)<br />
(07:18:16 PM) dirakx: :)<br />
(07:18:37 PM) erikos: garycmartin: that was the title of the thread already open, would be interesting if you found more issues<br />
(07:18:40 PM) tomeu: bemasc: would you like to take that action item? or the action item of finding someone to improve the visibility of bugs and bugfixes?<br />
(07:19:37 PM) bemasc: tomeu: Maybe... I don't really understand trac very well.<br />
(07:19:48 PM) silbe: how about the doing a bug hunt contest and the winner gets their favourite feature in? ;)<br />
(07:19:59 PM) bemasc: We also need to triage all the bugs in trac, but only the release manager can really do this.<br />
(07:20:03 PM) garycmartin: erikos: if I found more issues, they'll be in trac ;-)<br />
(07:20:03 PM) tomeu: bemasc: I think you could get access to sql queries if you needed it<br />
(07:20:22 PM) tomeu: bemasc: why only the release manager? we have had triage teams in the past and worked quite well<br />
(07:20:33 PM) erikos: bemasc: nah, I don't think only the release manager can do this<br />
(07:20:55 PM) erikos: bemasc: if you want to do bug work without being the release manager look at:<br />
(07:21:06 PM) bemasc: erikos: ok. Then I will at least go through trac and start prioritizing bugs.<br />
(07:21:06 PM) tomeu: silbe: heh, you mean who fixes most bugs can invalidate the work of all the others? :p<br />
(07:21:20 PM) tomeu: bemasc: that would be really awesome<br />
(07:21:20 PM) erikos: bemasc: http://wiki.sugarlabs.org/go/BugSquad/Triage_Guide<br />
(07:21:37 PM) tomeu: we need to set the priority, check that the component is right, ask more more info when needed, etc, etc<br />
(07:21:38 PM) silbe: tomeu: no, just add some bugs to find in the next contest ;)<br />
(07:21:39 PM) erikos: bemasc: well, not priotorizing<br />
(07:21:48 PM) tomeu: silbe: oh, in the next release<br />
(07:21:54 PM) erikos: bemasc: look at the guide - it should be quite complete<br />
(07:22:11 PM) tomeu: silbe: well, if someone has been debugging and fixing bugs, I trust that person to have won an appreciation of maintainability<br />
(07:22:18 PM) bemasc: erikos: every bug in trac needs to have a target (0.86 or later) and a priority.<br />
(07:22:26 PM) erikos: Severity of the bug<br />
(07:22:26 PM) erikos: Verify that the severity of the bug is set correctly. What you should not try to set is the milestone and the priority of the bugs, this is the duty of the component maintainer.<br />
(07:22:48 PM) erikos: bemasc: ^^<br />
(07:23:17 PM) tomeu: erikos, bemasc: who else can help with triaging?<br />
(07:23:24 PM) tomeu: fgrose did so in the past? maybe satellit?<br />
(07:23:24 PM) silbe: tomeu: IIRC that's how i started getting into the data store :-P<br />
(07:25:13 PM) erikos: tomeu: ok, I have my action item, anything else?<br />
(07:25:14 PM) garycmartin: tomeu: triaging team, I used to help a little, though mainly seemed to do my own bugs ;-)<br />
(07:25:36 PM) tomeu: well, that;s quite a bit<br />
(07:25:46 PM) erikos: garycmartin: that is already more then most do ;p<br />
(07:26:04 PM) tomeu: we don't have new soas bugs in trac any more, so triaging should b eless work<br />
(07:26:17 PM) erikos: yes, that is very very cool<br />
(07:26:22 PM) tomeu: anybody here would like to lead the triaging sessions?<br />
(07:26:25 PM) tomeu: maybe bemasc?<br />
(07:26:44 PM) silbe: tomeu: yeah, splitting up upstream/downstream bug trackers is a great idea IMO. just hope we won't switch to launchpad for upstream as well...<br />
(07:27:12 PM) erikos: silbe: we can discuss this after 0.86 ;p<br />
(07:27:17 PM) tomeu: silbe: lfaraone sent email about it, maybe you can share with us your concerns in that thread?<br />
(07:27:28 PM) tomeu: but yeah, not something we would be doing now<br />
(07:27:29 PM) silbe: erikos: good :)<br />
(07:27:30 PM) garycmartin: erikos: Just looking at Journal Listview (gtk.treeview) thread, do remember it. Amazed no one replied at all :-( Maybe I can reply with the 'reature may be reverted soon of bugs go unficed' type chat.<br />
(07:27:49 PM) tomeu: garycmartin++<br />
(07:27:57 PM) erikos: garycmartin: cool ;p<br />
(07:28:21 PM) tomeu: ok, so we are done with the topics in the wiki<br />
(07:28:25 PM) satellit: bug 422701 F12 journal blocks popups entered in launchpad<br />
(07:28:27 PM) tomeu: which were the topics that were added?<br />
(07:28:38 PM) sdziallas: erikos: sorry, missed a ping again. one thing I'd like to raise is that we might need immediate packaging after 0.86 is out (since we might otherwise conflict with F12's feature freeze)<br />
(07:28:47 PM) tomeu: satellit: can you from LP push the ticket to upstream?<br />
(07:28:59 PM) tomeu: sdziallas: ok, please remember us<br />
(07:29:06 PM) satellit: how?<br />
(07:29:12 PM) sdziallas: tomeu: :)<br />
(07:29:13 PM) tomeu: sdziallas: we cna also give ACLs to more people<br />
(07:29:20 PM) tomeu: satellit: not sure it's possible, just guessing<br />
(07:29:34 PM) erikos: sdziallas: I think we gained already a week, by F12 slipping<br />
(07:29:45 PM) erikos: sdziallas: but yeah, we should do it right away<br />
(07:29:52 PM) sdziallas: erikos: yeah, you're right... I missed that<br />
(07:29:54 PM) sdziallas: tomeu: yup, +1<br />
(07:30:21 PM) tomeu: alsroot: plugins and engineering committee<br />
(07:30:38 PM) tomeu: alsroot: about the committee, will you ping the mailing list again about it?<br />
(07:31:00 PM) alsroot: tomeu: will do<br />
(07:31:23 PM) tomeu: alsroot: about journal view plugins, would those be extensions like the cp sections are?<br />
(07:31:40 PM) alsroot: tomeu: yup, and bundles like activities<br />
(07:31:47 PM) alsroot: *bundeled<br />
(07:32:20 PM) garycmartin: tomeu: just a note on naming, should it be extensions and not plugins, it's like the feature we have already, just for the Journal.<br />
(07:32:52 PM) alsroot: garycmartin: "feature we have already" what do you mean<br />
(07:33:01 PM) tomeu: alsroot: you mean to have extensions in bundles?<br />
(07:33:30 PM) alsroot: tomeu: deploy extensions like from ASLO, at the end<br />
(07:33:45 PM) bemasc: alsroot: insecure.<br />
(07:33:45 PM) garycmartin: alsroot: answered above :-) I meant like the device frame extension ability.<br />
(07:33:51 PM) tomeu: alsroot: ok, I have thought a bit about that and I'm not 100% convinced of it<br />
(07:34:03 PM) silbe: alsroot: so what's the advantage of Journal plugins/extensions of activities interfacing directly with the data store?<br />
(07:34:17 PM) bemasc: Frame devices and control panel plugins are not designed to be easily modified, because they have tremendous system access.<br />
(07:34:32 PM) garycmartin: silbe: Security?<br />
(07:34:40 PM) alsroot: silbe: the advantage is having custom view, and having them out of gliucose release cycle<br />
(07:35:06 PM) silbe: garycmartin: what do these plugins need that an activity isn't allowed to do?<br />
(07:35:29 PM) silbe: alsroot: you get that custom view with an activity as well.<br />
(07:35:47 PM) alsroot: silbe: "what do these plugins need that an activity isn't allowed to do" being as a regular journal view<br />
(07:36:03 PM) silbe: alsroot: can you elaborate on that, please?<br />
(07:36:22 PM) garycmartin: silbe: activities should not be allowed to access any entries without direct use action. Pippy scares me silly that it can do a slideshow of all images (though I think this is a security hole opened for Pippy?)<br />
(07:36:37 PM) garycmartin: (direct _user_ action)<br />
(07:36:58 PM) erikos: tomeu: ok, I will go and get some work done, if I may<br />
(07:37:08 PM) silbe: garycmartin: activities are allowed access to the whole data store by design (Bitfrost) - just not in conjunction with some other rights (e.g. network access)<br />
(07:37:17 PM) tomeu: garycmartin: no, we are not restricting activities to access the whole DS yet<br />
(07:37:18 PM) alsroot: silbe: for example in ObjectChooser -- like I want to sent my favorite book -- could be useful to use Books view for that<br />
(07:37:37 PM) bemasc: silbe: see http://lists.sugarlabs.org/archive/sugar-devel/2008-June/006598.html<br />
(07:37:38 PM) tomeu: erikos: actually, we still have the code review in the topics list :/<br />
(07:37:42 PM) ***garycmartin waves to erikos, will send more icons later (have a nice tools one for Log to replace the cog icon).<br />
(07:37:49 PM) tomeu: but I have to leave as well<br />
(07:37:55 PM) tomeu: we have been 1.5 hours<br />
(07:37:56 PM) silbe: alsroot: ok, so you're not just talking about the basic journal view, but about the object chooser as well?<br />
(07:38:08 PM) alsroot: silbe: as well<br />
(07:38:19 PM) erikos: tomeu: didn't work the code review well lateley?<br />
(07:38:29 PM) tomeu: erikos: people had some ideas<br />
(07:38:39 PM) aa__ [n=aa@r190-135-186-107.dialup.adsl.anteldata.net.uy] entered the room.<br />
(07:38:40 PM) alsroot: silbe: another reason, we cant package to glucose all possible(and valuable in some casess) views<br />
(07:38:43 PM) erikos: tomeu: people always have ideas ;p<br />
(07:38:49 PM) tomeu: anybody here wants to lead the rest of the meeting and afterwards sent the log and minutes to the ml?<br />
(07:38:59 PM) tomeu: erikos: I'm also not too happy about it myself<br />
(07:39:01 PM) erikos: tomeu: I was happy we actually got the code reviewed ;p<br />
(07:39:08 PM) ***garycmartin has to go work as well.<br />
(07:39:15 PM) tomeu: I wa snot too happy to have to review so much in such a short time :/<br />
(07:39:29 PM) erikos: tomeu: ok, that is a good point<br />
(07:39:31 PM) silbe: bemasc: interesting message, will talk about that one with Caspar as well (his work is more "data centric", as opposed to Sugars current "activity centric" design - your mail goes in the same direction he's already heading)<br />
(07:39:48 PM) erikos: tomeu: to be honest, most of the issues we have are lead by the fact that we are all volunteers<br />
(07:39:59 PM) erikos: tomeu: but have an amigious project<br />
(07:40:06 PM) garycmartin: erikos: +1 for tomeu code reviews. Scary as hell, but tough to argue against being a good thing.<br />
(07:40:14 PM) silbe: alsroot: if what we need can be done by an activity, it doesn't need to be bundled with glucose as well<br />
(07:40:48 PM) erikos: tomeu: and I am more and more unsure, what to do about it<br />
(07:41:07 PM) silbe: tomeu: how about just ending the meeting and continuing on list or just next week?<br />
(07:41:09 PM) tomeu: erikos: that's why would be good to hear people's ideas about it<br />
(07:41:15 PM) tomeu: silbe++<br />
(07:41:20 PM) silbe: tomeu: weekly meetings might be a good idea in any case<br />
(07:41:28 PM) alsroot: silbe: well, another reason shell integration, if I want to use only my view instead of Journal's<br />
(07:41:30 PM) silbe: tomeu: better than having few, long meetings<br />
(07:41:30 PM) tomeu: silbe: yup<br />
(07:41:32 PM) erikos: silbe: yeah, indeed if regular they are shorter<br />
(07:41:40 PM) erikos: silbe: and one can follow up on thing setc<br />
(07:41:58 PM) erikos: ok, looks like we at least agree on this one ;p<br />
(07:42:02 PM) tomeu: is evrybody ok with ending here the meeting?<br />
(07:42:08 PM) erikos: +1<br />
(07:42:15 PM) dirakx: +1<br />
(07:42:20 PM) garycmartin: +1<br />
(07:42:31 PM) silbe: +2<br />
(07:43:28 PM) tomeu: you can keep discussing, it's just that I need to start doing minutes, etc<br />
(07:43:51 PM) silbe: tomeu: what's up with the bot?<br />
(07:43:59 PM) tomeu: silbe: no idea, who took care of it<br />
(07:44:00 PM) tomeu: ?<br />
(07:44:13 PM) tomeu: let's add code review and journal view extensions to the next week meeting?<br />
(07:44:31 PM) silbe: tomeu: IIRC it's run by OLPC?<br />
(07:44:38 PM) garycmartin: tomeu: +1<br />
(07:44:49 PM) tomeu: silbe: dunno<br />
(07:45:04 PM) tomeu: alsroot: ok with that? you can of course bring the discussion to the ml if you wish<br />
(07:45:31 PM) alsroot: I'm ok w/ that<br />
(07:46:07 PM) silbe: alsroot: could you prepare some real-world example what journal plugins could achieve (and how, i.e. rough API draft) that cannot be done with an activity?<br />
(07:47:36 PM) alsroot: silbe: I'll going to start implementing it ofter 0.86 release<br />
(07:47:44 PM) tomeu: silbe: not sure it's matter only of what can and cannot be done, but also of user experience<br />
(07:48:29 PM) silbe: tomeu: maybe we should make the Journal feel more like an activity then? :-P<br />
(07:49:02 PM) tomeu: hehe<br />
(07:51:43 PM) garycmartin left the room (quit: Remote closed the connection).<br />
(07:52:32 PM) tomeu: so, thanks a lot for coming<br />
(07:52:44 PM) tomeu: we have a lot to talk about, sad we haven't been having weekly meetings<br />
(07:52:49 PM) tomeu: next week more</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Meetings/Logs/May_21_2009&diff=45138Development Team/Meetings/Logs/May 21 20092010-02-21T22:22:36Z<p>Anal bleaching: moved Development Team/Meetings/Logs/May 21 2009 to Anal bleaching 15/Meetings/Logs/May 21 2009:&#32;Anal bleaching</p>
<hr />
<div><pre>(04:07:23 PM) tomeu: hi fellow meetingers!<br />
(04:08:35 PM) erikos: hi meetingers<br />
(04:08:42 PM) erikos: roll call please!<br />
(04:09:07 PM) tomeu: and the room filled with silence...<br />
(04:09:19 PM) erikos: walterbender, is around<br />
(04:09:25 PM) walterbender: hi<br />
(04:09:32 PM) erikos: and sayamindu will be here in a few minutes<br />
(04:09:53 PM) erikos: alsroot, around as well?<br />
16:10<br />
(04:10:07 PM) alsroot: erikos: yup<br />
(04:10:15 PM) erikos: alsroot, nice<br />
(04:11:06 PM) erikos: so for today's meeting we want to talk about the Roadmap for 0.86<br />
(04:11:22 PM) erikos: current status of this discussion: http://erikos.sweettimez.de/?p=678<br />
(04:11:45 PM) erikos: and I am working on the schedule at http://wiki.sugarlabs.org/go/Development_Team/Release/Roadmap/0.86#Schedule at the moment<br />
(04:12:33 PM) tomeu: wonder if alsroot has any stuff to put into the shell and/or toolkit for 0.86<br />
(04:12:53 PM) erikos: tomeu, yup - that was my next question<br />
(04:13:15 PM) erikos: alsroot, do you have items in mind?<br />
(04:13:20 PM) alsroot: I'm planing Library for 0.82+, so it should be a honey<br />
(04:13:44 PM) erikos: alsroot, Library - an activity?<br />
(04:13:49 PM) alsroot: yup<br />
(04:14:22 PM) erikos: alsroot, can you describe that shortly?<br />
(04:14:26 PM) alsroot: erikos: in most cases it should be a new Journal(but w/o activity view)<br />
(04:14:41 PM) alsroot: erikos: http://wiki.sugarlabs.org/go/Activities/Library<br />
(04:14:45 PM) walterbender: erikos: I am planning to fork Turtle Art for 0.85 as per our discussion in Paris<br />
(04:14:52 PM) erikos: alsroot, thanks - /me looks<br />
16:15<br />
(04:15:33 PM) alsroot: erikos: "but w/o activity view" activity in meaning of objects/activity modes in Journal2<br />
(04:16:38 PM) erikos: alsroot, wow - this is really phrased out already<br />
(04:16:57 PM) erikos: walterbender, nice - I guess that makes sense to do<br />
(04:17:19 PM) alsroot: erikos: +1 week for v1 :)<br />
(04:17:45 PM) alsroot: and for making Libarry more effective I have ideas for ds http://wiki.sugarlabs.org/go/Talk:Version_support_for_datastore/Proposal#Features_that_could_benefit_Library_activity<br />
(04:17:52 PM) erikos: walterbender, so the list in my blog post is what we did on monday afternoon in paris (tomeu, gary, bernie, christoph)<br />
(04:18:14 PM) walterbender: erikos: I saw it. good stuff<br />
(04:18:30 PM) erikos: alsroot, I will read the page in detail later - sounds really nice<br />
(04:19:07 PM) erikos: alsroot, the good thing is - the core components are not effected - so you are independent of the schedule<br />
(04:19:21 PM) alsroot: erikos: exactly<br />
(04:19:23 PM) erikos: alsroot, at least we are not blocked when you are not in time for some reason<br />
(04:19:46 PM) erikos: alsroot, which of course will not happen ;p<br />
(04:19:53 PM) walterbender: erikos: I am confident that Lucian will have something for SSBs in time for 0.86<br />
16:20<br />
(04:20:13 PM) erikos: walterbender, what was SSB again?<br />
(04:20:17 PM) tomeu: walterbender: will he need any changes in the shell?<br />
(04:20:22 PM) walterbender: site-specific browser<br />
(04:20:37 PM) walterbender: tomeu: the current plan is no changes to shell<br />
(04:20:39 PM) tomeu: (or the toolkit)<br />
(04:20:59 PM) walterbender: probably not the toolkit<br />
(04:21:46 PM) unmadindu [n=sayamind@gnu-india/admin/unmadindu] entered the room.<br />
(04:21:53 PM) erikos: walterbender, is there a proposal already about the details?<br />
(04:22:13 PM) unmadindu: hello<br />
(04:22:17 PM) walterbender: erikos: getting close--maybe next week.<br />
(04:23:42 PM) erikos: walterbender, Lucian Branescu I guess?<br />
(04:23:51 PM) erikos: unmadindu, hey - you are just in time ;p<br />
(04:24:07 PM) walterbender: erikos: yes<br />
(04:24:21 PM) ***erikos has to keep up a bit :)<br />
16:25<br />
(04:25:14 PM) erikos: alsroot, some stuff you had in mind for the shell?<br />
(04:25:23 PM) alsroot: yupw, it could be nice to make Journal pluggable -- for example to replace Journal by Library<br />
(04:25:55 PM) erikos: unmadindu, we are just getting items up that are not on the list yet - http://erikos.sweettimez.de/?p=678<br />
(04:26:06 PM) ***unmadindu checks<br />
(04:26:20 PM) tomeu: alsroot: have you already looked into it? may be quite simple<br />
(04:26:34 PM) alsroot: tomeu: not yet<br />
(04:26:37 PM) erikos: unmadindu, feel free to throw in new ideas<br />
(04:26:42 PM) unmadindu: tomeu, erikos: did you get the chance to check out the metacity patch ?<br />
(04:26:44 PM) tomeu: alsroot: also, how much "pluggability" would you like?<br />
(04:26:51 PM) tomeu: unmadindu: not recently :/<br />
(04:26:59 PM) erikos: unmadindu, no :/<br />
(04:27:05 PM) tomeu: unmadindu: would love to see a custom soas image with it<br />
(04:27:12 PM) alsroot: tomeu: just run Library instead of Journal<br />
(04:27:16 PM) erikos: unmadindu, is it in a mail? or in trac?<br />
(04:27:27 PM) tomeu: alsroot: yeah, but having to patch code? or not?<br />
(04:28:11 PM) alsroot: tomeu: in my mind it should be like -- user download Library.xo and "old" Journal asks about replacing<br />
(04:28:32 PM) unmadindu: erikos: http://dev.sugarlabs.org/ticket/602<br />
(04:28:46 PM) alsroot: tomeu: because Library.xo has a special key in .info<br />
(04:28:50 PM) tomeu: alsroot: hmm, that makes me worry about support<br />
(04:29:05 PM) unmadindu: tomeu: ok, I'll try to do a spin of Soas, but right not I'm stuck with https://bugzilla.redhat.com/show_bug.cgi?id=499452<br />
(04:29:07 PM) tomeu: alsroot: imagine if some kids in nepal or uruguay use library and others use journal<br />
(04:29:28 PM) tomeu: alsroot: I would have thought that a deployer chooses to deploy sugar with library or with journal<br />
(04:29:49 PM) alsroot: tomeu: maybe option in context menu?(for this .xo)<br />
(04:29:59 PM) erikos: unmadindu, ok - i add it to the item<br />
16:30<br />
(04:30:15 PM) tomeu: alsroot: in which context menu? which option would that be?<br />
(04:30:44 PM) alsroot: tomeu: in context menu for Library.xo in the Journal -- "Make this activity a new Journal"<br />
(04:31:33 PM) tomeu: alsroot: yeah, but my worry about increased support costs still stands. if users can change the journal for the library, the people giving support will have much more work to do<br />
(04:31:33 PM) unmadindu: erikos: I plan to do a) a keyboard control panel extension (I would prefer to keep it as a seperate module, since everyone may not choose to go with XKB) and b) the dictionary during the 0.86 cycle. I also have plans with epub support in Read, but there's nothing definite yet<br />
(04:31:50 PM) tomeu: unmadindu: ok, I guess you are waiting for the rpm to reach some state?<br />
(04:32:18 PM) alsroot: tomeu: but yes, I geuess it demands more thinking<br />
(04:32:31 PM) befana left the room (quit: No route to host).<br />
(04:32:40 PM) alsroot: tomeu: I didnt think a lot about it<br />
(04:32:55 PM) erikos: unmadindu, ok, (a) we should add to the list<br />
(04:33:01 PM) tomeu: alsroot: I can help you find people to test Library if you want<br />
(04:33:09 PM) erikos: unmadindu, (b) can be live in honey I guess for the moment<br />
(04:33:16 PM) tomeu: then the community can decide about how to move forward<br />
(04:33:24 PM) erikos: unmadindu, oh, sorry<br />
(04:33:34 PM) erikos: unmadindu, no - is core functionality as well<br />
(04:33:51 PM) unmadindu: tomeu: oh, I did not see the new RPM - I'll download and check<br />
(04:33:51 PM) alsroot: tomeu: at first I should release it :) -- but yes I guess we should wait for comunity reply<br />
(04:33:51 PM) erikos: unmadindu, I will add it to the list<br />
(04:34:28 PM) erikos: unmadindu, what just come to my mind - is the language support in the control panel language section<br />
(04:34:40 PM) erikos: unmadindu, so that it is in each language<br />
(04:34:51 PM) unmadindu: erikos: ah yes, that needs to be fixed as well :)<br />
(04:34:53 PM) erikos: unmadindu, our old desire<br />
16:35<br />
(04:35:00 PM) unmadindu: please add it<br />
(04:35:05 PM) erikos: yup<br />
(04:36:24 PM) alsroot: unmadindu: btw about dictionary -- i guess dictd doesnt support dict files for example from StarDict, or not?<br />
(04:37:04 PM) alsroot: unmadindu: "dictd" if your code is based on dictd<br />
(04:37:39 PM) unmadindu: alsroot: yes (I think), though I plan to extend the thing a bit (eg: have some metadata about each dictionary in a XML file, so that we can do generic queries like getdef(term, fromlang, tolang))<br />
(04:38:59 PM) unmadindu: http://stardict.sourceforge.net/Dictionaries.php seems to link to dictd dumps (mostly)<br />
(04:39:16 PM) unmadindu: eg: http://stardict.sourceforge.net/Dictionaries_dictd-www.dict.org.php<br />
16:40<br />
(04:42:03 PM) alsroot: unmadindu: then ok -- but on my system(gentoo) I have just several dictd packages but tons for stardict<br />
(04:43:06 PM) unmadindu: alsroot: hmm, in the worst case, I think we will be need to write converters :-). I'll also try to look at the stardict code and see if we can reuse it<br />
(04:43:23 PM) erikos: alsroot, so the pluggable journal - we leave this out of the list for now?<br />
(04:43:32 PM) alsroot: unmadindu: or look at 300 dicts from http://xdxf.revdanica.com/down/index.php<br />
(04:44:15 PM) alsroot: erikos: well, in some way -- maybe it will be not pluggable journal but second/3rd/.. journal<br />
(04:44:49 PM) ***unmadindu checks<br />
16:45<br />
(04:45:29 PM) alsroot: erikos: my concern is that Library has all features(except "activity" view) of regular Journal + syncing(will do) with remote resources<br />
(04:46:50 PM) alsroot: so, users can benefit from easy way to use suck kinds of activities<br />
(04:46:57 PM) alsroot: s/suck/such<br />
(04:47:04 PM) erikos: hmm, yeah I see<br />
(04:47:22 PM) erikos: I mean it would make sense maybe in any case to make the journal pluggable<br />
(04:47:34 PM) erikos: like we plan to do for views<br />
(04:47:52 PM) alsroot: so Journal is viewer for ds :)<br />
(04:48:17 PM) erikos: maybe :)<br />
(04:49:57 PM) unmadindu: alsroot: thanks for the pointer. this will be useful. apart from the fact that the files references a dtd called xdxf_lousy.dtd ;-), I think this can solve a large part of our problems (I'll need to take a look at how the XML files are indexed though - chewing through megabytes of XML files to retrieve a single definition would not be a nice thing to do)<br />
16:50<br />
(04:50:23 PM) erikos: for the moment I add the ideas here - http://wiki.sugarlabs.org/go/Development_Team/Release/Roadmap/0.86#Proposal_Goals<br />
(04:50:37 PM) erikos: we can then trim down the list later<br />
(04:51:21 PM) erikos: what do others think we add as well the honey parts people try to work on?<br />
(04:51:39 PM) erikos: maybe under a special category<br />
(04:51:47 PM) erikos: but for a better overview<br />
(04:53:10 PM) alsroot: erikos: honey activities or honey reqs in sucrose?<br />
(04:53:35 PM) erikos: alsroot, honey activities<br />
(04:53:52 PM) erikos: like the library activity efforts<br />
(04:54:10 PM) tomeu: not sure<br />
(04:54:24 PM) tomeu: though I think we should advertise those efforts if the people involved think it's a good idea<br />
(04:54:27 PM) ***erikos is a bit torn on that<br />
(04:54:33 PM) ***alsroot started to like idea of decentraliszig of sucrose :)<br />
16:55<br />
(04:55:13 PM) tomeu: alsroot: can you elaborate on that?<br />
(04:55:17 PM) erikos: tomeu, maybe it should be in the activity team section<br />
(04:55:30 PM) andresambrois is now known as aa<br />
(04:55:31 PM) tomeu: erikos: oh, sounds good<br />
(04:56:16 PM) erikos: tomeu, ok - lets do this if nobody objects<br />
(04:56:37 PM) alsroot: tomeu: SL provide only "framework" - glucose -- wraps it to SP -- other parts is honey (+ deployer are free to build theirs own sets of sugar)<br />
(04:57:03 PM) erikos: tomeu, I just want a central entry place - so people can see what other people are working on<br />
(04:58:25 PM) tomeu: alsroot: but isn't that the original idea?<br />
(04:59:06 PM) erikos: unmadindu, a short translation team question: is it a good idea to have the freeze date for development be the same as the string freeze one?<br />
(04:59:23 PM) erikos: unmadindu, as we had to do quite a lot of exceptions this time<br />
17:00<br />
(05:00:00 PM) unmadindu: erikos: not really - I believe it would be a good to have a short period of "slushy freeze", where all string changes are announced, but you don't need to get permission. I think that preps the developers as well as the translators<br />
(05:00:03 PM) erikos: unmadindu, or maybe the issue is another one: and developers need to be more careful - or testing happens to late, or...<br />
(05:00:09 PM) alsroot: tomeu: original idea is making activities glucose version independent(as much as possible, or at least encourage developers to make these activities)<br />
(05:00:35 PM) erikos: unmadindu, that might be a good idea<br />
(05:00:45 PM) walterbender: alsroot: we need better guidelines for activity developers in this regard<br />
(05:01:30 PM) tomeu: alsroot: oh, I thought that by "decentraliszig of sucrose" you meant something different of how things have been to date<br />
(05:02:42 PM) alsroot: tomeu: nope just having the core(glucose) and the rest of sugar + deployers' sets<br />
(05:03:02 PM) alsroot: walterbender: well we should do it anyway :)<br />
(05:04:53 PM) nteon left the room (quit: "Leaving").<br />
17:05<br />
(05:05:35 PM) walterbender: erikos: I need to take off for a bit... thanks for organizing the meeting... ciao<br />
(05:06:13 PM) alsroot: back to decentralising of sucrose -- I'm sure 6months cycle is a bit much for activity<br />
(05:06:56 PM) erikos: walterbender, thanks for joining in<br />
(05:07:48 PM) erikos: unmadindu, how about a) 'slushy string freeze'<br />
(05:08:07 PM) erikos: unmadindu, after two weeks b) 'hard string freeze'<br />
(05:08:20 PM) erikos: unmadindu, after two more weeks c) release<br />
(05:08:23 PM) unmadindu: erikos: sounds good :-)<br />
(05:08:35 PM) erikos: unmadindu, ok, nice<br />
(05:09:28 PM) erikos: alsroot, so if I start to develop an activity today for example<br />
(05:09:39 PM) erikos: alsroot, I can develop it to work on 0.84<br />
(05:09:56 PM) erikos: alsroot, and it will work with 0.86 then as well - most likely<br />
17:10<br />
(05:10:18 PM) unmadindu: btw, while we are on the subject of "policy", is there any policy on external dependency ? eg, what if I add some code to Read which makes it depend on pywebkitgtk ?<br />
(05:10:23 PM) alsroot: erikos: in ideal case for 0.82+ -- I use sugar-port to wrap all diffs between sugars<br />
(05:10:45 PM) erikos: alsroot, yeah 0.82+ even better<br />
(05:10:56 PM) tomeu: unmadindu: all "good" activities depend only on SP<br />
(05:10:58 PM) valhalla [n=valhalla@81-174-24-165.dynamic.ngi.it] entered the room.<br />
(05:11:20 PM) unmadindu: SP ??<br />
(05:11:22 PM) alsroot: erikos: so with sugar-port i code the same code and it should work on 0.82+ (otherwise I'll patch sugar-port)<br />
(05:11:26 PM) tomeu: unmadindu: and I would say that core activities should not bundle any external code<br />
(05:11:28 PM) erikos: unmadindu, Sugar Platform<br />
(05:11:30 PM) tomeu: unmadindu: sugar platform<br />
(05:11:39 PM) ***erikos beat tomeu<br />
(05:11:40 PM) tomeu: http://wiki.sugarlabs.org/go/DevelopmentTeam/SugarPlatform/0.84<br />
(05:11:41 PM) unmadindu: ah ok.<br />
(05:11:45 PM) tomeu: ;)<br />
(05:11:54 PM) tomeu: unmadindu: we should have a policy, yeah<br />
(05:12:20 PM) unmadindu: I was thinking about having a set of "blessed external dependencies" like GNOME<br />
(05:13:02 PM) alsroot: so, back again to decentralising -- in my mind it should be: core(glucose) + sugar-port(to wrapp all diffs between sugars) + hoeny<br />
(05:13:04 PM) hpachas-PE [n=hpachas@200.37.120.18] entered the room.<br />
(05:13:13 PM) erikos: http://wiki.sugarlabs.org/go/Development_Team/SugarPlatform/0.84 now - mind the '_'<br />
(05:14:24 PM) erikos: alsroot, I think I do not understand the sugar-port exactly, yet<br />
17:15<br />
(05:15:25 PM) alsroot: erikos: I mean 0.82/0.84/0.86 have diff. API for ObjectsChoser(for example) -- activity have the same code and this code warks well on all versions(it proveds by sugar-port)<br />
(05:16:09 PM) alsroot: ..and more overs on 0.86 sugar-port gives activity chance to use all new features<br />
(05:16:33 PM) erikos: alsroot, so sugar-port is a wrapper code that is called to guarantie backwards compability<br />
(05:16:48 PM) erikos: alsroot, correct?<br />
(05:16:53 PM) alsroot: erikos: yup, + it supports all new features<br />
(05:17:43 PM) erikos: http://wiki.sugarlabs.org/go/Development_Team/sugar-port<br />
(05:17:50 PM) ***erikos is really outdated<br />
17:20<br />
(05:21:26 PM) erikos: alsroot, interesting<br />
(05:23:11 PM) erikos: alsroot, I would say - I add the decoupling to the list<br />
(05:23:25 PM) erikos: alsroot, and we should then discuss it in details<br />
(05:24:04 PM) tomeu: alsroot: isn't sugar-port a matter more of the activity team rather than the development team?<br />
(05:24:41 PM) alsroot: tomeu: well, its a bridge between DT and AT :)<br />
17:25<br />
(05:25:04 PM) erikos: alsroot, how does it technically work?<br />
(05:25:19 PM) alsroot: erikos: ifs/tryies/hasattr<br />
(05:25:20 PM) erikos: alsroot, let's take the json example<br />
(05:25:49 PM) erikos: alsroot, the activity calls 'from sugar import json'<br />
(05:26:06 PM) alsroot: erikos: http://people.sugarlabs.org/~alsroot/sugar-port/port.json-module.html<br />
(05:26:08 PM) erikos: alsroot, and then the code does decide which version to use?<br />
(05:26:18 PM) tomeu: well, I'd say that if it's a core component, then it should be part of sugar-toolkit. if it isn't, then it should be in the activity team namespace. though I don't find too important where it is in the wiki, it may be more clear<br />
(05:26:58 PM) erikos: alsroot, ok<br />
(05:27:30 PM) alsroot: tomeu: in that case sugar-port is outside of sucrose -- for example I just copy port/some-files to activity projects<br />
(05:28:04 PM) tomeu: yeah, that's what I meant by having it in the activity team. I think that way other activity authors may feel more encouraged to contribute to it<br />
(05:28:30 PM) alsroot: tomeu: yup, for example making new widgets<br />
(05:29:10 PM) erikos: alsroot, so it is a 'library' where the activity authors just grab whatever file is needed and dump it in their activity for using it<br />
(05:29:31 PM) alsroot: erikos: yup + backwards comp.<br />
(05:29:44 PM) alsroot: total backwards comp.<br />
(05:29:55 PM) alsroot: ..for sugar-port API<br />
17:30<br />
(05:31:10 PM) alsroot: maybe we can have several packages as sugar-port, but the major point of sugar-port is backwards comp.<br />
(05:31:25 PM) erikos: ok, i see that issue for things like json<br />
(05:31:50 PM) erikos: for widgets in sugar - there should be a policy for API backwards compability<br />
(05:32:01 PM) erikos: and actually there is<br />
(05:32:19 PM) erikos: if that is not good enough - I guess we fail here<br />
(05:32:33 PM) alsroot: erikos: yup, but w/o sugar-port devs have to write ifs/hasattr/etc<br />
(05:33:17 PM) alsroot: ..if they want to run activity on 0.82+(on 0.82 and use new features on 0.86)<br />
(05:33:54 PM) erikos: yup, I see that issue<br />
(05:33:59 PM) alsroot: like with http://people.sugarlabs.org/~alsroot/sugar-port/port.chooser-module.html<br />
(05:34:40 PM) erikos: but this case should maybe be handled in sugar itself then<br />
17:35<br />
(05:35:03 PM) alsroot: erikos: yes for 0.86, but what about deployed 0.82 :)<br />
(05:35:49 PM) erikos: alsroot, ok, good point<br />
(05:37:21 PM) erikos: how about - we add API work to our 0.86 goals<br />
(05:37:36 PM) erikos: and the sugar-port itself to the activity team<br />
(05:37:48 PM) alsroot: erikos: +1<br />
(05:38:34 PM) erikos: alsroot, ok, cool - definitely a good point we should be careful with<br />
(05:39:01 PM) erikos: tomeu, the CIA has discovered your non-meeting work<br />
(05:39:07 PM) erikos: tomeu, shame on you :)<br />
(05:39:09 PM) tomeu: arrgh<br />
(05:39:22 PM) tomeu: my brain has two hemispheres<br />
17:40<br />
(05:41:53 PM) erikos: ok, let's wrap maybe up here<br />
(05:42:06 PM) erikos: we are over time already<br />
(05:42:24 PM) alsroot: and lets code<br />
(05:42:27 PM) erikos: now that we have done brain strorming what needs to happen next<br />
(05:42:35 PM) erikos: regarding the roadmap<br />
(05:43:20 PM) erikos: a) I will clean up the schedule<br />
(05:43:29 PM) erikos: and ask for feedback on the ml<br />
(05:43:48 PM) erikos: b) release goals proposal<br />
(05:44:10 PM) erikos: let's add items to the list for the next days<br />
(05:44:24 PM) erikos: then we need to find owners of these items I guess<br />
(05:44:41 PM) erikos: I would propose to meet again next week<br />
(05:44:51 PM) erikos: and maybe trim down again the list<br />
17:45<br />
(05:45:11 PM) berserk [n=xxx@r200-40-149-210.static.adinet.com.uy] entered the room.<br />
(05:45:17 PM) erikos: and then each item should get a proposal by it's owner<br />
(05:45:25 PM) erikos: like alsroot has done<br />
(05:45:34 PM) erikos: or like the ones in fedora land<br />
(05:45:39 PM) erikos: sounds good?<br />
(05:45:47 PM) alsroot: +1 for me<br />
(05:45:49 PM) tomeu: sounds good!<br />
(05:46:36 PM) erikos: ok, nice - so add items to the list<br />
(05:46:47 PM) erikos: and I will follow up on the ml<br />
(05:47:03 PM) erikos: another point is to clean up the trac tickets<br />
(05:47:15 PM) erikos: maybe we can do that next wednesday<br />
(05:47:23 PM) erikos: I will send mail for that as well<br />
(05:47:51 PM) ***tomeu needs to go out, will be back in 30 mins<br />
(05:47:57 PM) erikos: thanks everyone for joining in<br />
(05:49:47 PM) erikos: and the fruitful discussions</pre></div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Meetings/Logs/August_28_2009&diff=45136Development Team/Meetings/Logs/August 28 20092010-02-21T22:22:36Z<p>Anal bleaching: moved Development Team/Meetings/Logs/August 28 2009 to Anal bleaching 15/Meetings/Logs/August 28 2009:&#32;Anal bleaching</p>
<hr />
<div> (06:05:11 PM) dirakx: gonzalo_: como va el grupo de tu universidad ?<br />
(06:05:16 PM) tomeu: gonzalo_: quizas puedes hacer una pequena presentacion del proyecto en que estas involucrado?<br />
(06:05:17 PM) gonzalo_: holas<br />
(06:05:32 PM) gonzalo_: va muy bien http://cixosfia.libreusmp.org<br />
(06:05:45 PM) gonzalo_: estamos avanzando<br />
(06:06:04 PM) gonzalo_: hay muchos que quieren apoyar al proyecto :)<br />
(06:06:23 PM) gonzalo_: bueno va la presentacion<br />
(06:07:11 PM) ***dirakx escucha con atención. <br />
(06:07:19 PM) gonzalo_: cixosfia "comunidad que investiga el proyecto OLPC", se formo en la universidad de San Martin de Porres en Lima Peru<br />
(06:08:01 PM) gonzalo_: venimos difundiendo el proyecto OLPC y SUGAR<br />
(06:08:43 PM) gonzalo_: dando taller fue una buena idea de dar de SUGAR asi damos a conocer la plataforma de aprendizaje :)<br />
(06:09:17 PM) gonzalo_: y ahora contamos con 16 miembros en la comunidad<br />
(06:09:24 PM) gonzalo_: hay cinco grupos<br />
(06:10:11 PM) gonzalo_: grupo web, desarrollo en python, soporte xo, voluntarios y logistica<br />
(06:10:22 PM) gonzalo_: para poder apoyar al proyecto en diferentes temas<br />
(06:11:20 PM) dirakx: gonzalo_: ok, de alguna manera ustedes trabajan con el despliegue de las maquinas, es decir las que van a las escuelas y demas?.<br />
(06:12:01 PM) gonzalo_: aun no<br />
(06:12:12 PM) tomeu: gonzalo_: hay algun otro proyecto similar en peru? o sois los unicos?<br />
(06:12:13 PM) dirakx: gonzalo_: es importante que tambien publiciten sus noticias en las listas de correo en OLPC-sur y OLPC-peru (creeria yo).<br />
(06:12:57 PM) gonzalo_: lo hare :)<br />
(06:13:08 PM) dirakx: gonzalo_: ok, veo tambien que se estan integrando con las comunidades floss de peru, esto es bien importante, tal vez tambien trabajar con otras universidades.<br />
(06:14:19 PM) gonzalo_: si ahora se va realizar el software freedom day peru<br />
(06:14:21 PM) gonzalo_: donde vamos a participar<br />
(06:14:39 PM) dirakx: gonzalo_: y bueno encontrar otros grupos que hagan lo mismo que uds tambien.<br />
(06:15:12 PM) gonzalo_: y el evento que se viene aqui en la universidad USMP el Freedom & Open source Day<br />
(06:15:34 PM) dirakx: ah sip en el que estuvimos el año pasado.<br />
(06:15:38 PM) gonzalo_: asi es<br />
(06:16:05 PM) gonzalo_: queremos ver la forma de seguir apoyando tal vez en algun tema en especifico<br />
(06:16:20 PM) gonzalo_: estamos preparandos en python<br />
(06:16:23 PM) tomeu: gonzalo_: me gustaria saber mas sobre los proyectos concretos que estais llevando a cabo en este momento<br />
(06:16:38 PM) gonzalo_: uno es el desarrollo de activiades para sugar<br />
(06:16:56 PM) gonzalo_: otro es el servidor escuela<br />
(06:17:12 PM) tomeu: interesante, tienes links?<br />
(06:17:50 PM) gonzalo_: estamos en proceso<br />
(06:18:12 PM) dirakx: gonzalo_: otra idea es tener un blog del grupo y anexarlo al planeta de sugar ;).<br />
(06:18:19 PM) gonzalo_: buena idea<br />
(06:18:21 PM) dirakx: gonzalo_: no importa que este en español .<br />
(06:18:32 PM) tomeu: si, seria estupendo leer sobre vosostros en el planeta<br />
(06:19:10 PM) gonzalo_: gracias<br />
(06:19:26 PM) dirakx: gonzalo_: tambien encontrar sitios donde documentar sus proyectos..estan los wikis de OLPC y los de SugarLabs, Sugarlabs colombia y Sugarlabs chile<br />
(06:19:57 PM) gonzalo_: estamos pensando desarrollar activiades para peru<br />
(06:20:02 PM) tomeu: gonzalo_, dirakx: creeis interesante crear una lista de desarrollo de sugar en castellano donde colaboren gente de toda latinoamerica?<br />
(06:20:26 PM) tomeu: o la existente sugar-devel en ingles sirve?<br />
(06:20:34 PM) dirakx: tomeu: lo habiamos pensado hace un tiempo, quizas sea este el momento de crearla..<br />
(06:20:48 PM) gonzalo_: puedo sugerir una lista para nuevos desarolladores?<br />
(06:20:55 PM) dirakx: creo que hay momentum.<br />
(06:21:13 PM) dirakx: gonzalo_: bueno, la de castellano puede servir.<br />
(06:21:19 PM) gonzalo_: claro<br />
(06:21:33 PM) gonzalo_: la comunidad esta con muchas ganas de apoyar<br />
(06:21:35 PM) tomeu: dirakx: me parece que si<br />
(06:21:36 PM) gonzalo_: :)<br />
(06:22:04 PM) tomeu: que nombre le damos? sugar-devel-es?<br />
(06:22:16 PM) gonzalo_: si me parece bien<br />
(06:22:44 PM) tomeu: bernie: can you create that list for us?<br />
(06:23:09 PM) tomeu: quien la va a moderar?<br />
(06:23:21 PM) tomeu: gonzalo_: quizas alguien de tu grupo se puede encargar de moderarla?<br />
(06:23:43 PM) gonzalo_: indicame el proceso y apoyamos :)<br />
(06:23:43 PM) tomeu: es basicamente consultar periodicamente la cola de mensajes y eliminar los que son spam y dejar pasar los que no<br />
(06:24:04 PM) tomeu: estupendo, voy a enviar un email a bernie pidiendole la creacion de la lista<br />
(06:27:01 PM) tomeu: enviado<br />
(06:27:54 PM) tomeu: gonzalo_: como os podemos ayudar desde Sugar Labs a conseguir vuestros objetivos?<br />
(06:28:43 PM) gonzalo_: queremos apoyar con el desarrollo de sugar<br />
(06:29:09 PM) gonzalo_: pero nos hace falta conocer mas por donde podemos apoyar en el tema de desarrollo<br />
(06:30:25 PM) gonzalo_: conocer los paquetes<br />
(06:30:33 PM) tomeu: gonzalo_: un primer paso seria saber que se tiene que mejorar o anadir a sugar para que sea mas eficaz en mejorar el aprendizaje en peru<br />
(06:30:46 PM) tomeu: teneis esa informacion?<br />
(06:31:42 PM) dirakx: tomeu: gonzalo_ les parece bien si trabajamos con bernie para ello y luego lo anunciamos en las listas ?.<br />
(06:31:42 PM) dirakx: como llamarla ? .<br />
(06:31:42 PM) dirakx: sugar-desarrollo ;) ?<br />
(06:31:58 PM) gonzalo_: no cuento con esa informacion<br />
(06:32:15 PM) tomeu: gonzalo_: sabes como podriamos saber mas sobre lo que se necesita mejorar en sugar?<br />
(06:32:35 PM) tomeu: dirakx: oops, ya he enviado el email, pero puedes responder corrigiendo el nombre<br />
(06:32:38 PM) gonzalo_: se necesitan reportes en el parendizaje en aula<br />
(06:32:43 PM) tomeu: dirakx: lo he enviado contigo y gonzalo en CC<br />
(06:32:59 PM) dirakx: tomeu: grx<br />
(06:33:10 PM) tomeu: gonzalo_: quizas vuestro grupo de soporte sabe de problemas en sugar que se encesita corregir?<br />
(06:33:16 PM) iltrix [n=thomas@88.197.185.177] entered the room.<br />
(06:33:19 PM) dirakx: como que me sali del irc lol :)<br />
(06:33:20 PM) gonzalo_: si<br />
(06:33:41 PM) gonzalo_: tengo u nreporte que esta semana se termino de sugar en xo<br />
(06:33:44 PM) gonzalo_: con pack peru<br />
(06:33:46 PM) tomeu: gonzalo_: estupendo!<br />
(06:34:01 PM) gonzalo_: estoy pasando a limpio<br />
(06:34:04 PM) gonzalo_: y las publico<br />
(06:34:11 PM) tomeu: eso sera excelente informacion<br />
(06:34:23 PM) dirakx: gonzalo_: que bien..despues podemos meter esas en el trac para seguir los inconvenientes.<br />
(06:34:32 PM) tomeu: gonzalo_: podemos identificar areas en las que se necesita trabajar, y pensar como podemos trabajar juntos<br />
(06:34:36 PM) gonzalo_: me gustaria saber el proceso<br />
(06:34:47 PM) gonzalo_: para poder mandar informacion<br />
(06:35:22 PM) gonzalo_: el reporte fue interesante<br />
(06:35:35 PM) gonzalo_: ya que probamos el pack peru en diferentes versiones de sugar<br />
(06:35:41 PM) gonzalo_: 8.2.0 y 8.2.1<br />
(06:35:56 PM) gonzalo_: por ejemplo error al cargar el wikipedia<br />
(06:36:05 PM) gonzalo_: creo que es una actividad importante<br />
(06:36:16 PM) tomeu: gonzalo_: para reportar defectos y pequenas mejoras: http://dev.sugarlabs.org<br />
(06:36:20 PM) tomeu: pues si<br />
(06:36:34 PM) Alphinux [n=alphinux@unaffiliated/alphinux] entered the room.<br />
(06:36:53 PM) tomeu: gonzalo_: para mejoras mas grandes, tambien se puede utilizar trac, pero es tambien conveniente enviar email a la lista de desarrollo<br />
(06:36:54 PM) gonzalo_: las versiones que esta para xo las reporto ahi tambien?<br />
(06:37:45 PM) dirakx: tomeu: extraño, no me llego tu mail.<br />
(06:38:00 PM) tomeu: gonzalo_: si es un problema que crees que solo tiene que ver en la OLPC, es mejor reportarlo en dev.laptop.org<br />
(06:38:13 PM) tomeu: gonzalo_: los otros los puedes entrar en dev.sugarlabs.org<br />
(06:38:42 PM) tomeu: dirakx: lo he enviado a dirakx@gmail.com<br />
(06:39:56 PM) gonzalo_: una pregunta hay algun modelo de hacer activiades para sugar?<br />
(06:40:04 PM) gonzalo_: por ejemplo cumplir con especificaciones?<br />
(06:40:12 PM) tomeu: dirakx: http://lists.sugarlabs.org/archive/iaep/2009-August/007986.html<br />
(06:40:19 PM) gonzalo_ left the room (quit: "Page closed").<br />
(06:40:35 PM) gonzalo_ [i=c86ba0c3@gateway/web/freenode/x-piiupdmrwnavgngm] entered the room.<br />
(06:40:59 PM) dirakx: tomeu: ok ya lo vi gracias<br />
(06:41:41 PM) tomeu: gonzalo_: aqui hay alguna informacion que explica como se ha disenado la experiencia de usuario : http://wiki.sugarlabs.org/go/Human_Interface_Guidelines<br />
(06:41:49 PM) tomeu: parte se aplica al desarrollo de actividades<br />
(06:42:18 PM) gonzalo_: tambien podriamos apoyar en el tema de hacer un manual en español de suagr<br />
(06:42:21 PM) gonzalo_: sugar<br />
(06:42:56 PM) tomeu: gonzalo_: estupendo, no se en que estado esta la traduccion del manual de sugar: http://en.flossmanuals.net/sugar<br />
(06:43:15 PM) gonzalo_: estuvimos apoyando<br />
(06:43:17 PM) gonzalo_: pero salia un error<br />
(06:43:24 PM) gonzalo_: al traducir en español<br />
(06:43:38 PM) gonzalo_: voy a ver<br />
(06:43:44 PM) tomeu: excelente, tenemos que corregir eso<br />
(06:45:33 PM) tomeu: gonzalo_: parece que hemos identificado algunas areas en las que podemos trabajar juntos<br />
(06:45:42 PM) gonzalo_: :)<br />
(06:46:08 PM) tomeu: gonzalo_: sera bueno conocer a otros miembros de tu grupo<br />
(06:46:13 PM) tomeu: gonzalo_: estas suscrito a olpc-sur?<br />
(06:46:17 PM) gonzalo_: si<br />
(06:47:04 PM) aa [n=aa@r200-40-114-26.ae-static.anteldata.net.uy] entered the room.<br />
(06:48:46 PM) tomeu: gonzalo_: vale, anunciaremos la lista ahi cuando se cree<br />
(06:48:53 PM) gonzalo_: claro<br />
(06:48:57 PM) tomeu: gonzalo_: y la gente ya se podra ir apuntando y presentando<br />
(06:49:48 PM) gonzalo_: mi pregunta es como podemos apoyar a sugar labs<br />
(06:50:14 PM) tomeu: gonzalo_: trabajando juntos!<br />
(06:50:23 PM) gonzalo_: :)<br />
(06:50:32 PM) gonzalo_: cuentan con nosotros<br />
(06:50:53 PM) tomeu: gonzalo_: vosotros sois los que mejor sabeis lo que necesita peru, asi que vosotros tendreis que liderar los cambios que necesitais<br />
(06:51:10 PM) tomeu: gonzalo_: pero tenemos voluntarios como dirakx y yo que queremos que tengais exito<br />
(06:51:18 PM) gonzalo_: gracias<br />
(06:51:26 PM) tomeu: y otra gente que usa sugar en otros paises se beneficiara de vuestro trabajo<br />
(06:51:47 PM) tomeu: y vereis como tambien encontraremos oportunidades de trabajar en otros proyectos juntos<br />
(06:51:50 PM) gonzalo_: la comunidad esta en una etapa de aprendizaje y quiere aportar de la mejor forma<br />
(06:52:08 PM) tomeu: es una pena que hasta ahora ha habido poca cooperacion entre los paises, pero tengo confianza que va a cambiar<br />
(06:52:09 PM) gonzalo_: estamos en una investigacion constante<br />
(06:52:16 PM) tomeu: nosotros igual ;)<br />
(06:53:11 PM) gonzalo_: de verdad gracias por el apoyo de todos ustedes<br />
(06:53:58 PM) tomeu: gracias a ti, los proximos meses van a ser divertidos<br />
(06:54:16 PM) dirakx: lol<br />
(06:54:37 PM) tomeu: bueno, ya ha pasado casi una hora<br />
(06:54:47 PM) tomeu: hemos avanzado bastante terreno<br />
(06:54:52 PM) tomeu: algun otro tema?<br />
(06:54:53 PM) dirakx: es aveces triste que los despliegues mas grandes esten trabajando casi como indepndientemente.<br />
(06:55:29 PM) dirakx: por ahora esta bien..<br />
(06:55:29 PM) gonzalo_: rafael tu si has participado de uno?<br />
(06:55:53 PM) tomeu: dirakx: la cooperacion internacional a la que estan acostumbrados los politicos es muy differente de como nosotros trabajamos<br />
(06:56:06 PM) dirakx: tomeu: si es lamentable.<br />
(06:56:15 PM) tomeu: llevara tiempo demostrar que se puede trabajar eficientemente sin crear consorcios, etc<br />
(06:56:26 PM) tomeu: pero estamos en buen camino<br />
(06:56:30 PM) dirakx: gonzalo_: solo en uno pequeño y no he podio colaborar..por razones burocraticas<br />
(06:56:32 PM) gonzalo_: creo que es importante la informacion de los despligues podemos aprender mucho de ellos<br />
(06:57:12 PM) dirakx: gonzalo_: solo me resta decirte que cualquier sugerencia para mejorar esto sera bienvenida.<br />
(06:57:50 PM) gonzalo_: hay alguna escuela piloto con sugar en usb?<br />
(06:57:51 PM) dirakx: tomeu: si en ese camino vamos, esperamos que en los proximos meses SL tome un rol mas preponderante en estos procesos..<br />
(06:58:13 PM) dirakx: gonzalo_: conocemos una en el colegio GPA en Boston<br />
(06:58:33 PM) gonzalo_: tienes algun link<br />
(06:58:36 PM) bernie: dirakx: I can 95% understand your discussion btw<br />
(06:59:13 PM) dirakx: bernie: el italiano es muy parecido al español!<br />
(06:59:43 PM) bernie: dirakx: sono sicuro che posso risponderti in italiano e anche tu non avrai nessun problema a capirmi<br />
(06:59:43 PM) dirakx: gonzalo_: http://wiki.sugarlabs.org/go/Gardner_Pilot_Academy<br />
(06:59:53 PM) bernie: dirakx: capire == entiendere<br />
(06:59:56 PM) dirakx: bernie: capito<br />
(07:00:34 PM) dirakx: io non posso ecrire mais io capito..;) hehe bad italian.<br />
(07:01:06 PM) dirakx: gonzalo_: creo que ese link te sirve.<br />
(07:01:10 PM) bernie: dirakx: I'm not even trying writing in spanish yet (btw ecrire -> scrivere)<br />
(07:01:24 PM) gonzalo_: si lo estoy viendo gracias<br />
(07:01:43 PM) tomeu: gonzalo_: tambien hay gente utilizando sugar con thin clients<br />
(07:01:59 PM) ***bernie configured his computer, cell phone and car GPS in spanish to prepare for uruguay<br />
(07:02:11 PM) dirakx: bernie: hmm right..i have a mixture of latin lenguagues in my mind. :)<br />
(07:02:24 PM) dirakx: tomeu: con resara ?<br />
(07:03:01 PM) dirakx: tomeu: o tienes un link? estamos trabajando en Colombia con algunos computadores del estado que son viejos y esa informacion podria servir.<br />
(07:03:03 PM) tomeu: dirakx: no, simon en berlin<br />
(07:03:20 PM) dirakx: bien. preguntare.<br />
(07:03:26 PM) tomeu: dirakx: http://erikos.sweettimez.de/<br />
(07:03:40 PM) tomeu: bernie: going to uruguay?<br />
(07:03:41 PM) gonzalo_: como se esta viendo el tema del bios que no cuentan con boot para usb en maquinas antiguas<br />
(07:03:58 PM) tomeu: gonzalo_: se puede utilizar diskettes o cds<br />
(07:04:01 PM) homunq_ left the room (quit: Remote closed the connection).<br />
(07:04:08 PM) walterbender left the room (quit: Remote closed the connection).<br />
(07:04:57 PM) tomeu: gonzalo_: caroline te puede dar mas detalles, ella esta llevando a cabo el piloto en boston<br />
(07:06:37 PM) tomeu: dirakx: que otros grupos trabajan con sugar y podemos tener conversaciones como la de hoy?<br />
(07:06:59 PM) dirakx: tomeu: quizas la gente de argentina..<br />
(07:07:05 PM) gonzalo_: eso tambien me gustaria saber<br />
(07:07:32 PM) dirakx: la gente de ceibal jam claro esta.<br />
(07:07:53 PM) tomeu: genial<br />
(07:08:02 PM) tomeu: bueno, damos la reunion por concluida?<br />
(07:08:08 PM) dirakx: y bueno no se la gente de chile, auqneu ellos estan enfocados mas en la parte pedagogica claro esta.<br />
(07:08:09 PM) tomeu: tengo que ir dentro de un rato<br />
(07:08:26 PM) dirakx: tomeu: claro..cerrada!<br />
(07:08:37 PM) dirakx: gonzalo_: alguna otra cosa que quieras comentar?<br />
(07:08:42 PM) tomeu: dirakx: quizas sl.cl podria hablar con algun grupo de usuraios de python local<br />
(07:09:10 PM) dirakx: tomeu:ok le escribire a werner y a pato.<br />
(07:09:26 PM) tomeu: gracias<br />
(07:09:37 PM) ***alsroot thinks we need #reunion-sugar<br />
(07:10:21 PM) dirakx: alsroot: there is sugar-reunion, ;)<br />
(07:10:21 PM) gonzalo_: bueno<br />
(07:10:24 PM) gonzalo_: agradecer ante todo<br />
(07:10:28 PM) gonzalo_: el apoyo<br />
(07:11:34 PM) dirakx: alsroot: but is too lonely now..<br />
(07:11:36 PM) tomeu: alsroot: got your spanish a bit more polished? ;)<br />
(07:11:46 PM) tomeu: gonzalo_: gracias a ti por tu interes<br />
(07:11:59 PM) tomeu: voy a subir los logs al wiki y enviare un email con un resumen a olpc-sur<br />
(07:12:04 PM) dirakx: gonzalo_: gracias esperamos mas noticias de tu grupo.<br />
(07:12:16 PM) gonzalo_: si vamos a estar mas comunicados<br />
(07:12:19 PM) dirakx: tomeu: +1<br />
(07:12:26 PM) gonzalo_: esta reunion ha servido de mucho de verdad<br />
(07:13:28 PM) gonzalo_: espero que nos reunamos algun dia todos en persona :)<br />
(07:16:27 PM) tomeu: sera bueno!</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Meetings&diff=45134Development Team/Meetings2010-02-21T22:22:35Z<p>Anal bleaching: moved Development Team/Meetings to Anal bleaching 15/Meetings:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{TeamHeader|Development Team|roadmap_link={{Upcoming Stable Release}}/Roadmap}}__NOTOC__<br />
[[Category:Development Team]]<br />
[[Category:Meetings]]<br />
[[Category:Meeting minutes]]<br />
</noinclude><br />
<br />
<div style="font-size: 1.0em; background: #daffd5; padding: 10px; border: 1px solid #cde7a8" align=left><br />
* The Development team holds regular, bi-weekly meetings on Mondays at 14 UTC (9:00 EDT) on irc://irc.freenode.net#sugar-meeting. Please add to the agenda below, and please join in with your ideas.<br />
* The Fedora development project for the OLPC XO and a Sugar distribution holds weekly meetings on Thursdays at 17:00 UTC (13:00 EDT) on irc://irc.freenode.net#fedora-olpc.<br />
* [[Development Team/Mini tutorials| Developer mini tutorials]] are scheduled for Thursdays at 18:00 UTC (14:00 EDT) on jabber.sugarlabs.org<br />
:(Hint: You can use an [http://www.timeanddate.com/worldclock/converter.html online time calculator] to convert from UTC to your local time zone or back.)<br />
The Sugar Labs Meetings calendar is available in a variety of formats at these links: [[File:XML.gif|link=http://www.google.com/calendar/feeds/h9cfuk10894em7a8moemquusmg%40group.calendar.google.com/public/basic]] [[File:ICal.gif|link=http://www.google.com/calendar/ical/h9cfuk10894em7a8moemquusmg%40group.calendar.google.com/public/basic.ics]] [[File:HTML.gif|link=http://www.google.com/calendar/embed?src=h9cfuk10894em7a8moemquusmg%40group.calendar.google.com&ctz=America/New_York]]<br />
</div><br />
<br />
==Upcoming Agenda==<br />
<br />
==About==<br />
<br />
* Quick update about what we have been working on and eventually the problems we have run into.<br />
* Discussion about the implementation details of tickets we are planning to work on. Figure out how to split up the work and who should be owning the various parts.<br />
* Questions from activity authors about specific aspects of the platform and more in general on how to better integrate their activity in Sugar. Report about problems they run into.<br />
* Help out new contributors to figure out where to start. Point out the tickets we need help with, discuss with them the implementation.<br />
<br />
==Who==<br />
<br />
The meeting is mainly targeted to Sugar core and activity developers, but everyone interested is welcome to join. It's primary purpose is to try to open the development up a bit, make it more transparent and allow the community to participate more easily. For when to join see 'When and Where'.<br />
<br />
==How to add topics==<br />
You can add the topics that you want to discuss during the week to the topics section for the meeting. They will be collected during the week and send out in the meeting announcement on Thursday morning.<br />
<br />
== Upcoming Meetings ==<br />
<br />
=== Monday 22 February 2010 14:00 UTC ===<br />
<br />
* 0.88 Release: bug database cleanup, fix bugs, etc<br />
* Activity Team: Move to new toolbar<br />
<br />
== Previous Meetings ==<br />
=== Monday 8 February 2010 14:00 UTC ===<br />
<br />
==== Logs ====<br />
[http://me.etin.gs/sugar-meeting/sugar-meeting.log.20100208_0908.html logs]<br />
<br />
[http://me.etin.gs/sugar-meeting/sugar-meeting.minutes.20100208_0908.html minutes]<br />
<br />
==== Topics ====<br />
<br />
* State of 0.88 release<br />
<br />
=== Thursday 10 September 2009 14:00 UTC ===<br />
<br />
==== Logs ====<br />
[[Development Team/Meetings/Logs/September 10 2009]]<br />
<br />
==== Topics ====<br />
<br />
* Improving testing, triaging and bugfixing<br />
** test plans<br />
** testing meetings<br />
** triaging<br />
* Fructose Activities: in/out<br />
<br />
=== Tuesday 1st September 2009 16:00 UTC ===<br />
<br />
==== Logs ====<br />
[[Development Team/Meetings/Logs/September 01 2009]]<br />
<br />
==== Topics ====<br />
<br />
===== Release process =====<br />
<br />
* Sascha: Schedule too tight for GSoC projects, no time for the review process.<br />
* Sascha: i think the release process is fine so far. code review could be improved, but we're already on it.<br />
* Tomeu: we have one pending feature freeze exceptions: Hamilton Chua has proposed that we merge his code for registering with a school server. It has already one +1, it needs one more.<br />
* Gary: feature freeze seemed a little 'slushy' this time, we still need to merge the new toolbars for some activities in Sucrose.<br />
* Aleksey: we missed the chance of having library.sl.o (or so) in 0.86 to share .xol/jobjects -- I think the problem is that we don't have an engineering committee. Aleksey will restart discussion on this in the mailing list.<br />
* Ben: the development mailing list is the engineering committee. I'm just trying to avoid the creation of more unnecessary committees, meeting, and IRC traffic.<br />
<br />
===== Stabilization =====<br />
<br />
* Gary: window layering bugs in our metacity usage block testing to some point<br />
* Tomeu: we'll have to go back to matchbox if we cannot fix that<br />
* Sascha: Issues with the Alt key<br />
* Ben: I think the most helpful thing would be to release up-to-date emulation images.<br />
* Simon: we need to organize the bug work: hold triaging sessions, fix bugs and produce images that people can test.<br />
* Ben: I think it should be a high priority for all bugs in trac to be correctly prioritized and targeted.<br />
* Ben: IMHO, our target should be "ready for deployment by OLPC to hundreds of thousands of children on the XO-1.5".<br />
* Simon: I would say - we need to propose a build on the ml and ask for testing<br />
* Tomeu: so we should update the rpms, several fixes landed since the last ones. I will do it tomorrow.<br />
* Thomas: I can help here via vmware and usb/sd testing have f12 edu spin on sd now<br />
* Simon: I will work with Gary on toolbars<br />
* Rafael: I'll help with testing, having the emulation images...<br />
* Ben: I think an official proclamation of a "Bug Hunt" on the mailing list would help, once we are ready. Maybe with periodic updates as to who has discovered the most bugs, and who has killed the most? Almost like a competition.<br />
* Sascha: how about the doing a bug hunt contest and the winner gets their favourite feature in? ;)<br />
* Sebastian: one thing I'd like to raise is that we might need immediate packaging after 0.86 is out (since we might otherwise conflict with F12's feature freeze)<br />
<br />
===== Journal view extensions =====<br />
<br />
* Aleksey: would be extensions like the cp sections are and bundled like activities<br />
* Aleksey: deploy extensions like from ASLO, at the end<br />
* Benjamin: insecure, frame devices and control panel plugins are not designed to be easily modified, because they have tremendous system access.<br />
* Sascha: so what's the advantage of Journal plugins/extensions of activities interfacing directly with the data store?<br />
* Tomeu: time ran out, let's discuss code review and journal view extensions to the next week meeting<br />
<br />
=== 28th August 2009 ===<br />
<br />
==== Logs ====<br />
[[Development Team/Meetings/Logs/August 28 2009]]<br />
<br />
==== Topics ====<br />
* Gonzalo Chevarria presented the project on which he works: http://cixosfia.libreusmp.org/<br />
* CIXOS-FIA is currently composed by 16 people and is organized in these groups: Web development, Python development, XO support, Volunteers and Logistics.<br />
* This group wants to work together in improving Sugar with other similar groups.<br />
* Has been proposed the creation of a mailing list to be used for development issues in spanish: http://lists.sugarlabs.org/listinfo/sugar-desarrollo<br />
* A report about usage of the XO in Peru is going to be published very soon, issues will be reported to the OLPC and Sugar Labs bug trackers.<br />
<br />
=== 2 July 2009 ===<br />
* [http://meeting.sugarlabs.org/sugar-meeting.minutes.20090702_1003.html Summary], [http://meeting.sugarlabs.org/sugar-meeting.log.20090702_1003.html log]<br />
<br />
=== 18 June 2009 ===<br />
<br />
* Topic: '''Sugarizing of Web apps (by Lucian Branescu Mihaila)'''<br />
* Calendar: [http://www.google.com/calendar/event?eid=YXNpcmFhaWZydm4zb2Z1NzU4bXVvYmhiaXNfMjAwOTA2MThUMTYwMDAwWiBoOWNmdWsxMDg5NGVtN2E4bW9lbXF1dXNtZ0Bn&ctz=America/New_York event]<br />
* [http://meeting.sugarlabs.org/sugar-meeting.minutes.20090618_1002.html Summary], [http://meeting.sugarlabs.org/sugar-meeting.log.20090618_1002.html log]<br />
<br />
=== Thursday May 21 2009 - 16.15 (UTC) ===<br />
<br />
==== Topics ====<br />
<br />
* Jeff Elkner will present the Sugar Labs, DC project: http://lists.sugarlabs.org/archive/iaep/2009-May/005689.html<br />
* Packaging subteam, re:http://www.mail-archive.com/iaep@lists.sugarlabs.org/msg04254.html<br />
<br />
=== Thursday May 21 2009 - 14.00 (UTC) ===<br />
<br />
==== Logs ====<br />
<br />
[[Development Team/Meetings/Logs/May 21 2009]]<br />
<br />
==== Topics ====<br />
0.86 roadmap discussion<br />
<br />
=== Thursday February 26 2009 - 16.00 (UTC) ===<br />
<br />
==== Topics ====<br />
a) Bug review. What bugs are hot in the 0.84 release?<br />
<br />
=== Thursday February 19 2009 - 14.00 (UTC) ===<br />
<br />
==== Logs ====<br />
Summary: http://meeting.sugarlabs.org/sugar-meeting.20090219_0909.html<br />
<br />
Transcript: http://meeting.sugarlabs.org/sugar-meeting.log.20090219_0909.html<br />
<br />
===Thursday January 22 2009 - 14.00 (UTC) ===<br />
<br />
====Logs ====<br />
http://meeting.sugarlabs.org/sugar-meeting.log.20090122_0921.html<br />
<br />
====Topics====<br />
a) February the 13th is the due date for our Sucrose 0.83 Release Candidate 1 ([[Development Team/Release/Roadmap#Schedule]]). What needs to happen in the next weeks to get there?<br />
<br />
b) Update [[Development Team/TODO]] list<br />
<br />
c) Auto-authentication for Browse when visiting web-based tools on the XS it has registered to (guest speaker Martin Langhoff)<br />
<br />
d) What about the activity updater?<br />
<br />
===Thursday January 15 2009 - 15.00 (UTC) ===<br />
====Logs ====<br />
http://meeting.sugarlabs.org/sugar-meeting.log.20090115_1006.html<br />
<br />
====Topics====<br />
a) Feature freeze: are we ready? what next?<br />
<br />
b) update [[Development Team/TODO|TODO]] list<br />
<br />
c) How long to support "old" versions of Sugar (Debian lenny might ship 0.82)<br />
<br />
===Thursday December 11 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
http://meeting.sugarlabs.org/sugar-meeting.log.20081211_0903.html<br />
<br />
====Topics====<br />
a) Schedule: adjust feature freeze<br />
<br />
b) create a short term TODO list of items (i.e. collaboration rock) and <br />
find owners and priorities<br />
<br />
c) developer items for the getting involved page (things/ideas that <br />
someone that have a bit of free time can help with, should be doable in <br />
a two weeks time frame)<br />
<br />
d) gitorious (which tags to use, proper naming policies etc)<br />
<br />
e) trac (add the needed milestones...)<br />
<br />
<div class="NavFrame collapsed"><div class="NavHead"><br />
<br />
==2008 Meetings==<br />
</div><div class="NavContent"><br />
===Thursday November 13 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
http://meeting.sugarlabs.org/sugar-meeting.log.20081113_0945.html<br />
<br />
====Topics====<br />
we want to get some items together for the Sugar Workshop on Saturday the [http://olpc-france.org/wiki/index.php?title=Sugar_Workshop_15nov 15th Nov in Paris]. Collect a set of bugs that people can fix or other item they can work on during that day. And we should collect some material that Daniel can use to make an introduction (if he has not done so yet).<br />
<br />
* Sugar version being used during the workshop<br />
<br />
* Introduction material <br />
<br />
* Work on the memorize activity: [http://dev.laptop.org/ticket/6549 #6549] [http://dev.laptop.org/query?status=assigned&status=new&status=reopened&component=memorize&order=priority&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component open bugs]<br />
<br />
===Thursday November 06 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar-meeting-Nov-06-2008.log<br />
<br />
====Topics====<br />
a) NM 07: patch for the Fedora 10 and Ubuntu rpm will be ready soon<br />
<br />
b) icon cache:<br />
* look into reusing the data from an old cache file (benzea)<br />
* look into scaling down the images<br />
* fix it up so it does not import GTK+ (or at least does not fail)<br />
* testing<br />
* get the code into normal builds<br />
<br />
c) activity maintainers<br />
* right down detailed steps to release a module (erikos)<br />
* come up with a proposal for SL infra (marco)<br />
* get more activity authors to next meeting! Pleas join discussing with Gary was very helpful today.<br />
<br />
===Thursday October 16 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar-meeting-Oct-16-2008.log<br />
====Topics====<br />
We will do another iteration on the Roadmap and will discuss API policy (http://lists.laptop.org/pipermail/sugar/2008-October/009199.html)<br />
and changes.<br />
<br />
===Thursday October 9 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar-meeting-Oct-09-2008.log<br />
====Topics====<br />
=====Roadmap=====<br />
* update and discuss the existing concrete items (i.e. icon cache)<br />
<br />
<br />
===Thursday September 25 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar-meeting-Sep-25-2008.log<br />
<br />
====Topics====<br />
===== Form the Sugar Labs Bugsquad =====<br />
At this meeting we want to form the Sugar Labs Bugsquad, the Quality Assurance (QA) team for Sugar. The squad keeps track of current bugs in the sugar software and try to make sure that major bugs do not go unnoticed by developers. You do not need any programming knowledge to be in the Bugsquad; in fact it is a great way to return something to the Sugar community if you cannot program.<br />
<br />
The squad is modelled on the gnome bugsquad: http://developer.gnome.org/projects/bugsquad/ <br />
<br />
More info about the sugar bugsquad can be found at [[BugSquad]]<br />
<br />
===== Questions =====<br />
* why a bugsquad?<br />
* why outside of olpc?<br />
* do we need a special mailing list (bugsquad@sugarlabs.org)?<br />
* do we need a special irc channel for the squad (#sugar-bugsquad)?<br />
* do we want a tracker at sugarlabs.org to keep track of bugs in non-olpc distributions (debian, fedora ...)?<br />
* How about bug days (a gathering on irc to find bugs and clean out the bug database) [http://live.gnome.org/Bugsquad/BugDays gnome-bug-days] ?<br />
<br />
===Thursday September 18 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
[http://dev.laptop.org/~erikos/meeting_logs/sugar-meeting-Sep-18-2008.log sugar-meeting-Sep-18-2008]<br />
<br />
====Topics====<br />
<br />
===== Roadmap =====<br />
* keep on reviewing the list we have at [[Development Team/Release/Roadmap/0.84#Goals]]<br />
** assigned owners and peers to all groups<br />
** started to assign owners to each feature<br />
<br />
You can find the orphaned items under ''Unassigned'' in each section. <br />
Give them a home!<br />
[[Category:Meeting minutes]]<br />
<br />
===Thursday September 11 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
[http://dev.laptop.org/~erikos/meeting_logs/sugar-meeting-Sep-11-2008.log sugar-meeting-Sep-11-2008]<br />
<br />
====Topics====<br />
<br />
===== Roadmap =====<br />
* keep on reviewing the list we have at [[Development Team/Release/Roadmap/0.84#Goals]]<br />
<br />
===== Sugarbot =====<br />
sugarbot is a GUI automation utility for the OLPC Project's Sugar GUI. It provides functionality for developers to write tests for their Activities, and monitor those tests in a similar manner to unit-tests. sugarbot supports continuous integration with buildbot, so that multiple platforms and host configurations may be tested seamlessly.<br />
<br />
- What does that mean?<br />
OLPC developers now have a GUI automation environment that they can use to perform regression testing on their Activities. This enhances code reliability, and lets developers spend more time developing, and less time bug-testing and bug-hunting.<br />
<br />
- Where can I see sugarbot in action?<br />
A screencast of Sugarbot is available [http://code.google.com/p/sugarbot/downloads/detail?name=ScreenCast2.mp4&can=2&q=#makechanges here]<br />
<br />
- Where can I get sugarbot?<br />
Sugarbot's package and documentation is available [http://code.google.com/p/sugarbot/ here]<br />
<br />
action items:<br />
* get sugarbot building/running into sugar-jhbuild<br />
* get it to work on the buildbot<br />
<br />
===== Mailing Lists =====<br />
<br />
* devel-announce? activities-devel? @sugarlabs or @laptop?<br />
<br />
===Thursday August 28 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
[http://dev.laptop.org/~erikos/meeting_logs/sugar-meeting-Aug-28-2008.log sugar-meeting-Aug-28-2008]<br />
<br />
====Topics====<br />
===== Update (Thrilling news of this week) =====<br />
<br />
===== Roadmap =====<br />
* review the list we have at [[Development Team/Release/Roadmap/0.84#Goals]] <br />
* do we finally agree on a 6 months cycle?<br />
<br />
===== Status of bugfixing =====<br />
<br />
===== Introducing the new developers =====<br />
<br />
===Thursday August 21 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
[http://dev.laptop.org/~erikos/meeting_logs/sugar-meeting-Aug-21-2008.log sugar-meeting-Aug-21-2008]<br />
<br />
====Topics====<br />
===== Update (Thrilling news of this week) =====<br />
No special news this week<br />
<br />
===== Roadmap =====<br />
What do we want to do for [[Development Team/Release/Roadmap/0.84]] ?<br />
* we aim for a 6 months cycle (another week to set this in stone)<br />
* please add your points to this page [[Development Team/Release/Roadmap/0.84#Goals]] - we want to discuss these next week<br />
<br />
===== Status of bugfixing =====<br />
* which bugs rest for 0.82<br />
** marco will review the open reviews and give his opinion about landing in 8.2<br />
** erikos has to do 7480 and 7871<br />
** everyone should work on blockers, until 8/27 we can push fixes we have code already for (even though they are high and no blockers) if we get marcopg, cscott, or micahel to okay them. michael is happy if other bugs get fixed; he just don't want other bugs getting fixed at the expense of the blockers (more details will follow in another email).<br />
<br />
* stable releases: 0.82.1 will be a stable coordinated release (which will help to resynchronise translations), we will rely on non-coordinated module releases until then, the packages for the non-coordinated releases should be announced on the mailing list that packagers can step in and do the packaging work for their distributions<br />
** release date for 0.8.2 will probably be September the 17th (more details from michael)<br />
** release date for 0.82.1 will probably be September the 5th (more details in another email)<br />
<br />
===== Introducing the new developers =====<br />
<br />
===== Control panel updater =====<br />
<s> Design, consequences, profit! We will have guest speaker Scott coming in to talk about the sugar-control-update module.</s><br />
<br />
===Thursday August 14 2008 - 14.00 (UTC) ===<br />
====Logs ====<br />
<br />
====Topics====<br />
===== Update =====<br />
<br />
===== Roadmap =====<br />
<br />
===== Status of bugfixing =====<br />
<br />
===== Introducing the new developers =====<br />
<br />
===== Better activity development communication =====<br />
<br />
including activity development mailing list<br />
<br />
===== Control panel updater =====<br />
<br />
Implications for activity developers: How to publish releases<br />
<br />
===Thursday July 31 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar_meeting_31_07_2008.log<br />
<br />
====Topics====<br />
===== Update =====<br />
The usual bugfixing for the upcoming release. Morgs and david spoke with the ubuntu and debian people in order to get the packaging processes going so potential developers have something to look at. Walter has been in discussion with GNOME and a few education groups - more on those topics in tomorrows sugarlabs meeting: http://lists.laptop.org/pipermail/sugar/2008-July/007508.html<br />
<br />
===== Roadmap =====<br />
action items:<br />
* triage squad <br />
* testing team<br />
* keep trac under control so that we have a good view of where we are<br />
* make sure to get the new release in Fedora<br />
* write down the points for the 9.1 release<br />
<br />
===== Status of bugfixing =====<br />
we need for more testing!<br />
<br />
===== Introducing the new developers =====<br />
Maybe next week :)<br />
<br />
===== Move meeting to an earlier time =====<br />
The next meeting will be at 14.00 UTC<br />
<br />
===== <s>Proposal: Mailing list for activity developers</s> =====<br />
<br />
<s>http://lists.laptop.org/pipermail/sugar/2008-July/007503.html</s><br />
<br />
:Will be discussed next week or via the mailing lists --[[User:Morgs|Morgs]] 19:52, 31 July 2008 (UTC)<br />
<br />
===== <s>Activity Update system in control panel</s> =====<br />
<br />
<s>Implications for activity developers: How to publish releases</s><br />
<br />
:Will be discussed next week or via the mailing lists --[[User:Morgs|Morgs]] 19:52, 31 July 2008 (UTC)<br />
<br />
===Thursday July 24 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~tomeu/sugar_meeting_24_07_2008.log<br />
<br />
====Attending====<br />
<br />
====Topics====<br />
===== Update =====<br />
<br />
People is working on bugs, Marco focused on Browse, he's back full time in the team. Tomeu on miscellanea bugs, worked with Riccardo Lucchese on performance (he's interning in OLPC this summer). Sayamindu is planning future work on the Read and Terminal activities.<br />
<br />
===== Change in the translation process =====<br />
<br />
After changes that break the string freeze get into git, the development team should notify the localization list, so the localization team can update Pootle.<br />
<br />
There are some worries about the frequent string freeze breaks, we hope translators will understand and things will get better for the next release.<br />
<br />
===== Roadmap =====<br />
<br />
David Farning suggested that some preliminary work happened on identifying the areas that will be worked on in the next releases. Benjamin Schwartz argued that people should focus completely on the current release instead, and let future planning for later.<br />
<br />
Three big areas of work that is sorely needed by deployments are collaboration, performance and datastore. How can we improve stability at the same time?<br />
<br />
Benjamin thinks that we should focus for two weeks on planning, and close all questions then.<br />
<br />
Walter wants to see documents about the architecture of the datastore and collaboration. Thinks that we should aim for 3 months of design work that end up on a roadmap.<br />
<br />
===== Status of bugfixing =====<br />
<br />
Two major surprises lately: arabic support and provisions for operating with full NAND.<br />
<br />
Arabic support includes taking in account RTL in the UI layout, may not land in 8.2.0.<br />
<br />
Being resilient to NAND full situations is very important in Uruguay, where machines that get full cannot boot until are reflashed. Several options are open here and we are trying to reach consensus.<br />
<br />
===== Introducing the new developers =====<br />
<br />
No new developers :( Maybe next week!<br />
<br />
===Thursday July 17 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar_meeting_17_07_2008.log<br />
<br />
====Attending====<br />
<br />
====Topics====<br />
=====The Meeting itself=====<br />
First we discussed how we can make the meeting even better. We want to have a fixed set of points we want to discuss each meeting.<br />
<br />
* update of the week (e.g. process changes)<br />
* roadmap<br />
* what are the latest bugs where can we need help on<br />
* introduction of new developers<br />
<br />
Additionally we have topics that can be decided by the developers. These can be added by the developers during the week. The complete process is described here: [[Development Team/Meetings#How_to_add_topics]]<br />
<br />
The mails:<br />
You can count on receiving these mails in the sugar mailing list.<br />
* monday: reminder to add_topics<br />
* thursday: meeting reminder<br />
* thursday: minutes from the meeting<br />
<br />
=====Creative commons licensing functionality in the journal=====<br />
* http://wiki.laptop.org/go/Creative_Commons<br />
* how to get that feature in:<br />
** eben will make mockup by Aug 15 (http://dev.laptop.org/ticket/7551)<br />
** starting Aug 15 paulproteus will port the xisting UI to Eben's mockup. <br />
** then he will send his code for review: [[Development Team/Code Review#Patch_submission]]<br />
** after review the feature can be included<br />
* We will meet for a status update on the cc the 14th of August in the sugar dev meeting<br />
<br />
===Thursday July 10 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
<br />
====Attending====<br />
<br />
====Topics====<br />
=====Topic=====<br />
<br />
===Thursday July 03 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
<br />
====Attending====<br />
<br />
====Topics====<br />
=====What let's left for the upcoming release=====<br />
[[Development Team/Release/Roadmap#Schedule]]<br />
<br />
=====Changes in the review process=====<br />
[[Development Team/Code Review#Patch_submission]]<br />
<br />
<br />
===Thursday June 12 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar_meeting_Jun_12_2008.log<br />
<br />
====Attending====<br />
<br />
====Topics====<br />
<br />
=====Update on the status of the ongoing features=====<br />
[[Development Team/Release/Roadmap#New_features]]<br />
<br />
=====How to announce a new release of an activity best?=====<br />
unmadindu looked into remora http://wiki.mozilla.org/Update:Remora. he noted that it's not well documented, and the look and feel needs to be changed significantly (it's primarily written for addons.mozilla.org), and we would need some PHP dev to modify it for our work<br />
<br />
Conclusion:<br />
Someone needs to step in and do it if he/she has time!<br />
<br />
=====Providing test plans along releases=====<br />
m_stone and QA are requesting that each release we get in the stable build is associated with a set of tests that they need to perform to verify that stuff works as expected. <br />
<br />
Basically we make mandatory to have a trac item associated with each news in the changelog and each trac item needs to have a testcase in it. We could use some keyword in the comment to mark it so that it can be extracted automatically. We need a ticket for each feature or fix - each item in the news basically.<br />
<br />
=====Documentation efforts for Sugar API and creating sugar activities=====<br />
fanwar's overall approach: One set of docs for high level functional design of sugar (Human Interface Guidelines), one set for how to's (almanac - which is what I'm working on), one set of apis from the actual code (which will be extracted through pydocs) and also some basic startup docs like those by Christoph in olpc austria. <br />
<br />
For the moment the place where the documentation can be found is: http://wiki.laptop.org/go/Sugar-api-doc<br />
<br />
fanwar requests: In the meantime, everyone continues to document code using pydocs and also please contribute to the almanac wiki yourselves.<br />
<br />
===Thursday June 05 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar_meeting_Jun_05_2008.log<br />
<br />
====Attending====<br />
too many to name :)<br />
<br />
====Topics====<br />
=====How can we improve the review process?=====<br />
action item: unmadindu/cjb setup review board http://www.review-board.org/<br />
<br />
1. Break your projects into small pieces that can be submitted for review independently. Submit for review as early as possible, by mailing list or review-board site or whatever other mechanism.<br />
<br />
More specific:<br />
* preferred way if possible: 1. code a small part, 2. submit to review, 3. get into joyride, 4. repeat<br />
* not talking about: 1. code everything, 2. split in patches, 3. submit<br />
<br />
2. If you want testing before review, make a topic build.<br />
<br />
3. Some new tools will be needed to make topic builds easier to make. (.img, .rpm, and .deb)<br />
<br />
=====Bundlebuilder: how to create the source tarballs best to not include unintentional files.=====<br />
We agreed to use an explicit MANIFEST but to provide tools to build it automatically. homunqlus is going to work on a patch for this. We need to try and freeze bundlebuilder to be able to include Develop in 8.2.<br />
<br />
=====How to announce a new release of an activity best?=====<br />
Deferred to next week meeting<br />
<br />
===Thursday April 17 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
<br />
http://dev.laptop.org/~morgan/sugar_meeting_Apr_17.log<br />
<br />
====Attending====<br />
<br />
====Topics====<br />
<br />
* Collaborative activities<br />
:* The collaboration framework<br />
:* [[Collaboration Central]]<br />
:* Adding collaboration to activities<br />
:* Upgrading to the new Presence Service API in Update.1<br />
:* API improvements required? (buddy<->handle tracking, reducing boilerplate code...)<br />
<br />
* New proposed collaboration API<br />
:* [[Cerebro#Collaboration]]<br />
:* other features? (now is a good time to add them)<br />
<br />
===Tuesday April 08 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/meeting_logs/sugar_meeting_Apr_08.log<br />
<br />
====Attending====<br />
eben, homunq, garycmartin, tomeu, bemasc, daf, morgs, erikos<br />
<br />
====Topics====<br />
* discuss eben's sugar todo list: http://lists.laptop.org/pipermail/sugar/2008-April/004909.html<br />
** We found out that eben's list is basically not controversial and that we 'only' need to prioritize the topics :p<br />
*** action item: prioritize the topics<br />
** Expose an avatar property for buddies in the ps<br />
*** daf stated that we have specific support for avatars in Gabble, which uses hashes, and therefore would reduce overhead.<br />
* AlertBox for use with palettes/notifications<br />
** mockup: http://wiki.laptop.org/go/Specifications/Object_Transfers#Preliminary_Mockups<br />
** sumup: <br />
*** an object transfer error occurs. <br />
*** create a new palette and embed an alertbox in it. <br />
*** create a notification object. <br />
** attach the new alert palette to both the notification and the transfer object in the frame. <br />
*** Then, upon the cancel/retry button callback: make sure that the notification is gone, reattach the old palette, take the appropriate action.<br />
** action items: <br />
*** a) create an AlertBox class (probably a subclass of alert or make alert more generic)<br />
*** b) add support for more complex layout to Palette class (ability to set the content before and/or after the menu independently)<br />
<br />
* Activity bundle format, autoupdate<br />
** Homunq has a proposal up at [[Talk:Activity_bundles#Proposals_for_update]]<br />
** two proposals: a philosophical one about where we want to get to, including activity threading with forks, and an implementation one, which only covers activities as long as the signing key stays the same.<br />
** Philosophically:<br />
*** Eben says any change of key should count as a different activity<br />
*** Homunq argues that still grouping them in the UI will allow tighter control of keys, and that the UI can give appropriate guidance on secure practices.<br />
*** Agree to disagree for now, because implementation is not urgent.<br />
** Implementation [[Talk:Activity_bundles#Signatures| Signatures]]<br />
*** morgs has minor comment about hash format (hex instead of base64, for easier comparison<br />
*** no further comments<br />
*** homunq will start work this week<br />
*** unresolved issue: how to store private key for signing an activity?<br />
**** we need to talk to m_stone .<br />
<br />
===Tuesday April 01 2008 - 17.00 (UTC) ===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/sugar_meeting_Apr_01.log<br />
<br />
====Attending====<br />
bemasc, homunq, tomeu, bertf, m_stone, garycmartin, erikos, eben, cjb<br />
<br />
====Topics====<br />
* Sugar-Control-Panel - timezone<br />
** handle root permissions for settings like timezone (can this be done in the background)<br />
*** What about using [http://hal.freedesktop.org/docs/PolicyKit/introduction.html#intro-about PolicyKit] made it's way in latest Gnome [http://library.gnome.org/misc/release-notes/2.22/ Gnome 2.22] for this?<br />
* Sugar-Control-Panel - language <br />
** how to generate the list of languages and their translation best)<br />
** desired output: current locale, language in language itself, territory<br />
** example: ingles/english, frances/francais, aleman/deutsch<br />
** do we make the same for the territory than what we do for the language?<br />
<br />
===Tuesday March 25 2008 ===<br />
("TTL-meeting") exceptional time: 15.00 (UTC)<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/sugar_meeting_Mar_25.log<br />
<br />
====Attending====<br />
[http://mindforks.blogspot.com/ David Bolter]<br />
<br />
[http://www.timthelion.com/ Timothy Hobbs, timthelion]<br />
<br />
[http://jsilva.komodoopenlab.com/ Jorge Silva]<br />
<br />
Arjun Sarwal<br />
<br />
Hemant Goyal<br />
<br />
Assim Deodia<br />
<br />
Alex Escalona (vergueishon on olpc [http://randomatom.blogspot.com/search?q=olpc&x=0&y=0 here] and [http://randomatom.blogspot.com/search?q=one+laptop+child&x=0&y=0 here])<br />
<br />
eben, tomeu, erikos<br />
<br />
====Topics====<br />
* Meetings in #olpc-meeting<br />
** Announce the meetings here: [http://wiki.laptop.org/go/Meetings Meeting]<br />
** action: send note about that to #devel-ml, #sugar-ml<br />
<br />
* TTS<br />
** Interfacing with Sugar<br />
*** Unitarian interface<br />
**** Screen readers, TTS engines, and any other text grabbing UI addons (Could that mean tty output, ssh ;)) should all be able to use the same interface.<br />
**** Discuss how [http://live.gnome.org/Orca orca] can possibly be used in the sugar environment. ([http://www.freebsoft.org/speechd speech-dispatcher] as a speech-synth backend is supported by orca)<br />
**** Discussion about speech-dispatcher, and how it can be used to interface with sugar activities.<br />
*** Discuss some UI considerations for speech synthesis configuration management in [http://wiki.laptop.org/go/Sugar_Control_Panel#GUI_for_the_command_line_tool Sugar Control Panel].<br />
*** Discuss the magic button for speech synthesis.<br />
** Support for multiple languages<br />
*** How should the process for including a new language work<br />
*** (This is copied up from the last meeting)<br />
**** santhosh and HFactor present [http://fci.wikia.com/wiki/Dhvani Dhvani], a text-to-speech system for indian languages.<br />
***** santhosh has already worked into integrating Dhvani into [http://www.freebsoft.org/speechd Speech Dispatcher].<br />
***** Dhvani will need to be packaged in Fedora.<br />
** Performance<br />
*** Ram use of any daemons.<br />
*** Fundamental CPU speed limitations(real time TTS?).<br />
** TTS as accessibility vs. TTS as a reading tutor.<br />
** Standardized bells.<br />
<br />
<br />
*'''Short Term Implementation Plans'''<br />
**Discussing feasibility of speech-dispatcher for the XO<br />
**Discussion of speech-dispatcher python API<br />
**Discussion of speech-dispatcher sugar configuration management<br />
**UI elements of speech synthesis control panel<br />
**Working on something like sugar.speech? <br />
**performance analysis of speech dispatcher for the XO<br />
*'''Long Term Plans'''<br />
**Development of Guidelines for using speech synthesis for developing self-voicing activities.<br />
**Expansion of ideas list and encouraging community developers to incorporate speech synthesis in their activities.<br />
**Streamlining speech synthesis projects in OLPC community<br />
**Community involvement/experimentation to improve quality of synthesized voice, as well as "localization" efforts to make speech sounds more natural-sounding relative to the user<br />
*'''Literacy Project'''<br />
**What points do we want to address?<br />
***Dictionary and eBook Projects<br />
***Teaching Tools that use speech synthesis<br />
***Tools for helping students learn new languages, improve their language skills<br />
<br />
<br />
* Links<br />
** [[Speech synthesis]]<br />
** [[Accessibility]]<br />
** [[Book reader feature set]]<br />
** [[Literacy]]<br />
** [[Accessibility Line Based Interface]]<br />
** [[Screen_Reader]]<br />
** [[Activities/Listen Spell]]<br />
<br />
===Tuesday March 18 2008 ("big")===<br />
====Logs ==== <br />
http://dev.laptop.org/~erikos/sugar_meeting_Mar_18.log<br />
<br />
====Attending====<br />
tomeu, bertf, erikos, eben, HFactor, shikhar, santhosh<br />
<br />
====Topics====<br />
Update on everybody's work<br />
* Redesign Home view (tomeu)<br />
** Eben has been contributing code to match the UI design.<br />
** Working now on visual notification for activity launch.<br />
** Anybody interested can build and run inside jhbuild the following modules:<br />
*** http://dev.laptop.org/git?p=users/tomeu/sugar;a=summary<br />
*** http://dev.laptop.org/git?p=users/tomeu/sugar-toolkit;a=summary<br />
* Control Panel (erikos)<br />
** Working now on providing a fade-out look around the dialog. Investigating the new matchbox that contains much improved composition support.<br />
* Develop (homunq): can't attend the meeting but check it out. Search/replace is a mess but anything else, go ahead and start posting bugs. http://dev.laptop.org/git?p=activities/develop;a=summary . To resume editing on the activity bundles it creates, you need to use the DoppelJournal activity (included in the git tree), which is a renamed copy of journal with the relevant bug fixed. [[User:Homunq|Homunq]] 09:43, 18 March 2008 (EDT) "git clone git://dev.laptop.org/activities/develop"<br />
* santhosh and HFactor present [http://dhvani.sourceforge.net Dhvani], a text-to-speech system for indian languages.<br />
** santhosh has already worked into integrating Dhvani into [http://www.freebsoft.org/speechd Speech Dispatcher].<br />
** Dhvani will need to be packaged in Fedora.<br />
** Would be good to have a meeting next week with all the people interested in TTS.<br />
<br />
===Tuesday March 11 2008 ("small")===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/sugar_meeting_Mar_11.log<br />
<br />
====Attending====<br />
garycmartin, eben, benzea, cjb, homunq, ChristophD, erikos<br />
<br />
====Topics====<br />
* meeting reminder<br />
** people can put topics on the wiki until Tuesday morning<br />
** erikos will send a message including these topics to the sugar-ml so more people read the topics and can join if it sounds interesting<br />
* sugar-control-panel <br />
** development: http://dev.laptop.org/git?p=users/erikos/sugar;a=shortlog;h=controlpanel<br />
** sugar-control-panel an activity?<br />
** Eben made an interesting remark: The new design for the Journal supports actions that aren't "activities" so you are able to keep record of changes you made with the control panel (e.g. you changed your colors today").<br />
* Lots of current activities don't have a bundle .xo for download on the Wiki<br />
** this got special attention due to the build core changes<br />
** how do we best address this issue? <br />
** encourage the activity authors to upload bundles and update the links on the wiki or provide a mechanism in bundlebuilder or at another place?<br />
<br />
===Tuesday March 4 2008 ("big")===<br />
====Logs ====<br />
http://dev.laptop.org/~erikos/sugar_meeting_Mar_04.log<br />
<br />
====Attending====<br />
* person, task, where<br />
* Homunq, Develop, Guatemala (UTC-6)<br />
* morgs, presence, ZA<br />
* [[User:Bert|bertf]], [[Activities/Etoys]], Germany<br />
* erikos<br />
* tomeu<br />
* eben<br />
* garycmartin<br />
<br />
====Topics====<br />
* Latest redesign mockups<br />
** http://wiki.laptop.org/go/Designs<br />
** new developments can be tracked at: http://dev.laptop.org/git?p=users/tomeu/sugar;a=summary<br />
* Sugar Control Panel (GUI)<br />
** mockup: http://dev.laptop.org/raw-attachment/ticket/6435/settings.png<br />
* Changes to sugar requested for Develop [[User:Homunq|Homunq]] 11:29, 4 March 2008 (EST)<br />
** action item: create tickets for "Journal should let activity bundles be started in Develop". Done: <trac>6639</trac>. Also discussed: <trac>4365</trac>, <trac>6557</trac>, and <trac>2892</trac>.<br />
* Speech synthesis: http://lists.laptop.org/pipermail/sugar/2008-March/004411.html<br />
** action item: eben reply to the thread<br />
* New LiveCD with updated sugar packages: http://meta.fuentelibre.org/trac/wiki/LiveCD<br />
** hardy packages + xubuntu in spanish<br />
* "Faster" branch speedups -- status? Anyone planning on working on these?<br />
** it is on the latest sugar roadmap so we want to work on it<br />
** action item: Michael can you comment on what is needed here regarding kernel changes http://dev.laptop.org/ticket/2276<br />
<br />
===Tuesday February 26 2008 ("small")===<br />
====Logs ====<br />
http://dev.laptop.org/~morgan/sugar_meeting_Feb_26.log<br />
====Attending==== <br />
tomeu, erikos, garycmartin, morgs<br />
<br />
====Topics====<br />
* eben's notes about the redesign wiki.laptop.org/go/Design<br />
** does the journal belongs into the shell or is it an activity, Eben?<br />
** added a [[Talk:Designs/Activity_Management|journal as core metaphor]] mock-up image --[[User:garycmartin|garycmartin]] 1:49, 29 February 2008<br />
* presence service<br />
** scalability issues for update.1<br />
** morgs does want to look into groups<br />
** groups would work like friending, there would be multiple groups, groups a teacher can add children to ad potentially multiple friend groups #4043<br />
** would be interesting to know how hard the deployment need this<br />
* webkit<br />
** try to compare webkit http://live.gnome.org/WebKitGtk (comes with python bindings http://live.gnome.org/PyWebKitGtk) with xulrunner<br />
* sugar<br />
** accelerators (http://lists.laptop.org/pipermail/sugar/2008-February/004344.html)<br />
** benzea fixed palette issues (http://dev.laptop.org/git?p=sugar-toolkit;a=commit;h=c9871633e3f3b38bcb8ae388ebeaaa81ad4123c9, http://dev.laptop.org/git?p=sugar-toolkit;a=commit;h=826bf9dd4caa07903346a756f34779da3c6c47b1)<br />
** browse: add right click and search<br />
** add control panel option to set delay before frame pops in<br />
** notifications: box containing an activity icon that pops up when someone is 'calling', could be used for notifications about devices, invitations and adding to the frame, <br />
** Eben you had something like that in one mockup that each corner was used for different notifications?<br />
<br />
===Tuesday February 19 2008 ("big")===<br />
====Logs ====<br />
http://dev.laptop.org/~tomeu/sugar_meeting_Feb_19.log<br />
<br />
====Attending==== <br />
tomeu, erikos, cjb, ChristophD, daja77, Ridderman<br />
<br />
====Topics====<br />
* roadmap: http://wiki.laptop.org/go/Sugar_Roadmap<br />
** Tomeu tried to describe the latest mockups for the ''New Home view and Frame design.''<br />
** UI for sugar-control-panel, ChristophD appearently did some work on this ([http://olpcaustria.soup.io/post/1214954 early screenshot and info])<br />
* Activity handbook:<br />
** "The purpose of the activity handbook is to provide you with all the information you need in order to get started with software development for the OLPC XO."<br />
** http://www.olpcaustria.org/mediawiki/index.php/Activity_handbook<br />
** currently working on chapters about GUI elements and Journal, next update should become available over the next 2 weeks<br />
* distribute/share activity<br />
** distribute Journal entries and activities<br />
** use ObjectChooser to choose the object to share<br />
** bemasc was not around to discuss his activity<br />
* Message Board activity<br />
** the idea is to have some way of providing a persistent message board without a school server or Internet access.<br />
** if you have a school server it could be a webpage on the school server<br />
** for example, every laptop could broadcast every message board note it's seen and the activity could know to collate them and remove duplicates<br />
** passing a USB stick with a portable mediawiki<br />
<br />
* Disconnected backups<br />
** http://lists.laptop.org/pipermail/sugar/2008-February/004318.html<br />
* Ridderman is working on focus bugs in Sugar / GTK. Kind of a nuts and bolts bug - http://dev.laptop.org/ticket/2045<br />
</div></div><br />
<div class="NavFrame collapsed"><div class="NavHead"><br />
==2007 Meetings==<br />
</div><div class="NavContent"><br />
===Tuesday October 30 2007===<br />
* http://dev.laptop.org/~erikos/sugar-dev-301007.log<br />
(all the meeting logs go here: http://www.pseudorandom.co.uk/tmp/freenode-olpc-meeting.log)<br />
<br />
* How do we log the meeting. (see above)<br />
* Quick status updates.<br />
* Reinier introduction.<br />
* #4022 browser cannot open files generated by view source.<br />
* #3239 Control Panel, user preferences<br />
* Correct way to get access to temporary file space during activity execution ?<br />
* Update1. Branching and trac.<br />
* Module maintainers. Distribute the release duties.<br />
* Managing the build system chaos. (idea: coordinated releases of the Sugar core. What is core?)<br />
* How do we bring back joyride into shape.<br />
* What API changes to expect before next milestone.<br />
<br />
Who is where:<br />
bertf: Germany<br />
Cassidy: BE<br />
daf: UK<br />
edsiper: Chile<br />
Erikos: Germany<br />
hmmmbird: SA<br />
marcopg: Italy<br />
morgs: SA<br />
rwh: NL<br />
Sjoerd: NL<br />
smcv: UK<br />
<br />
bertf: E-toys, implementing tubes<br />
Smcv: audit/improve tubes usage<br />
edsiper: developer console: stripping down, composed of 3 activities: Analyze, Log, Terminal<br />
http://wiki.laptop.org/go/Developer_Environment<br />
cassidy: finishing stream tubes in Salut<br />
morgs: working on PresenceService reliability improvements, Connect<br />
sjoerd: finishing <br />
hmmmbird: WorldWideWorkshop Joke Machine (waiting #3060)<br />
marcopg: had meeting with Ivan and Tomeu about backups, marcopg & Tomeu do sugar side, Ivan client/server<br />
(school server), fighting with build system<br />
erikos: works on control panel, functioning version<br />
tomeu: next to backups, screenshots<br />
uwogBB: Implement support for custom keybindings, develop AbiCollab debug tooling, Implement "find"<br />
support in Write (done)<br />
<br />
ACTIONS:<br />
bertf: talk to smcv about tubes<br />
marcopg: list of activities, list of modules, assign some sugar + activity tickets to rwh, drop the created xm branch and create an update1 one<br />
<br />
morgs: talk to jg about getting bot up for logs<br />
smcv: post logs at: http://www.pseudorandom.co.uk/tmp/freenode-olpc-meeting.log<br />
erikos: check for #4022 everything for 'Hint write about using txt with a view_source property' seems in place already<br />
<br />
erikos: control panel, user preferences:do not move olpc-update into script, fix radio on/off, restart sugar<br />
hmmmbird: Correct way to get access to temporary file space during activity execution ? should use use get_activity_root() instead of /tmp <br />
everyone: read Walter's mail for clarification of the names (Update1 etc)<br />
module_owners: module owners should create update1 branches as necessary (help: http://wiki.laptop.org/go/Git_Tips)<br />
<br />
<br />
* The branch/build procedure discussion is moved to the journal/tubes meeting<br />
</div></div></div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Manual/translations&diff=45132Development Team/Manual/translations2010-02-21T22:22:35Z<p>Anal bleaching: moved Development Team/Manual/translations to Anal bleaching 15/Manual/translations:&#32;Anal bleaching</p>
<hr />
<div>{{Translationlist | ko | origlang=en }}</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Manual/lang-ko&diff=45130Development Team/Manual/lang-ko2010-02-21T22:22:35Z<p>Anal bleaching: moved Development Team/Manual/lang-ko to Anal bleaching 15/Manual/lang-ko:&#32;Anal bleaching</p>
<hr />
<div>{{Translation | lang = ko | source = Development Team/Manual | version = 93961}}<br />
{{Developers}}<br />
<br />
<div style="margin: 20; padding-left: 30; padding: 10; border: black thin solid; background-color: #e0ffe0">XO용 활동에 대한 작업과 다른 OLPC용 코드에 대한 빠른 소개입니다. 자유롭게 설명서를 추가하고 갱신하십시오. 이것은 완성품이 아닙니다.</div><br />
<br />
이 설명서는 현재의 프로젝트에 참여하거나 또는 여러분 자신의 프로젝트를 새로 시작하는데 필요한 답변들을 제공하려고 합니다. 비록 이것은 주로 소프트웨어 개발 측면에 중점을 두고 있지만, OLPC는 아울러 [[Sugar_Labs/Getting_Involved|다른 분야의 참가]]를 이끌어내는 것에도 매우 관심이 있습니다.<br />
<br />
== 개요 ==<br />
{{anchor|Overview}}<br />
* [[Developers/Setup|개발자/구축]]<br />
** 어떠한 접근법이 가장 적합할 것인지에 관한 토론과 아울러 [[Sugar|슈가]] 개발 환경의 구축 방법을 서술합니다.<br />
* [[Developers/Stack|개발자/스택]]<br />
** 프로그래밍 환경을 형성하기 위하 결합된 하드웨어, 운영체제, 서비스, 라이브러리 및 활동의 조합인 OLPC [[Sugar|슈가]] 환경의 "운영 스택"을 기술합니다.<br />
* [[Developers/Issues|개발자/쟁점]]<br />
** OLPC 프로젝트에 종사하기 위하여 요구되는, 특히 대상 하드웨어 및 개발 환경에서 도출되는 특별한 고려 사항들을 기술합니다.<br />
* [[Developers/Projects|개발자/프로젝트]]<br />
** 이미 존재하거나 혹은 새로 시작할 특정 프로젝트를 선택하는 방법과 선택 후에 프로젝트 종사를 시작하는 방법을 제안합니다.<br />
* [[Developers/Communication|개발자/의사소통]]<br />
** 문제 발생시 도움을 얻는 방법과 프로젝트별 의사소통 통로를 구축하는 방법을 비롯하여 프로젝트에서 사용되는 다양한 지원 및 의사소통 통로를 설명합니다.<br />
* [[Developers/Documentation|개발자/문서자료]]<br />
** 프로젝트에서 사용할 수 있는 문서자료의 다양한 출처를 수집합니다. 코드의 문서화가 더 잘 되도록 돕는 것은 언제나 환영되는 공헌입니다.<br />
* [[Development Team/FAQ|개발자/FAQ]]<br />
** 개발자가 슈가 플랫폼에서 작업할 때 생기는 공통적인 물음에 대한 답변을 수집하여 회답합니다.<br />
<br />
== 배포 일정 ==<br />
{{anchor|Release Schedule}}<br />
2008년 1사분기 동안은 매달 업데이트하는 것으로 예정되어 있습니다. 그 다음에는 석달 간격 업데이트 주기가 적용되고, 최종적으로는 여섯달의 업데이트 주기가 적용될 것입니다. 또한 시간이 허용될 때, 각 활동 개발자들이 각자의 개발 주기를 유지할 수 있는 작성 환경으로 옮겨갈 것입니다.<br />
<br />
== 관련 문서와 설명서 ==<br />
{{anchor|Related docs and manuals}}<br />
* [[Simplified users guide|간이 사용자 설명서]]<br />
* [https://www6.software.ibm.com/developerworks/education/l-sugarpy/l-sugarpy-pdf.pdf OLPC 노트북용 응용프로그램 개발] (IBM의 Tim Jones)</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Manual/lang-ja&diff=45128Development Team/Manual/lang-ja2010-02-21T22:22:35Z<p>Anal bleaching: moved Development Team/Manual/lang-ja to Anal bleaching 15/Manual/lang-ja:&#32;Anal bleaching</p>
<hr />
<div>{{Translation <br />
| lang = ja <br />
| source = Development Team/Manual <br />
| version = 88714}}<br />
<br />
{{Developers}}<br />
{{Ongoing Translation}}<br />
<br />
This manual tries to provide you with the answers you need to get started either by contributing to existing projects or starting your own development project. Although this Developer's Manual focuses mostly on the software development side of the process, we are also very interested in encouraging the contributions of:<br />
<br />
*[[Design Team | Designers]]<br />
*[[Education Team |Educators]]<br />
*[[BugSquad|Testers]]<br />
*[[Documentation Team | Documenters]]<br />
*[[Translating|Translators]]<br />
<br />
Much of the material in the Developer's manual, particularly the Setup and Communications sections will be applicable to you as well.<br />
<br />
* [[Developers/Setup]]<br />
** Describes how to set up a [[Sugar]] development environment, with a discussion of which approach is likely to be the most appropriate for you<br />
* [[Developers/Stack]]<br />
** Describes the "operating stack" of the OLPC [[Sugar]] environment, the combination of hardware, operating system, services, libraries and activities that combine to form the environment in which you will be programming<br />
* [[Developers/Issues]]<br />
** Describes the special considerations required for working on the OLPC project, particularly those driven by our target hardware and deployment environments<br />
* [[Developers/Projects]]<br />
** Suggests ways to choose a particular project, whether one that already exists, or one of your own, and how to start working on the project once you have chosen it<br />
* [[Developers/Communication]]<br />
** Describes the various support and communications channels used by the project, including how to get help with problems, and how to set up your own per-project communications channels<br />
* [[Developers/Documentation]]<br />
** Collects pointers to the various sources of documentation available for the project. Helping us better document our code is always a welcome contribution.<br />
* [[Development Team/FAQ]]<br />
** Collects and attempts to answer common questions that developers have when working on the Sugar platform<br />
<br />
'''Release Schedule'''<br />
<br />
We expect to be doing updates monthly through the first quarter of 2008. After that, we will likely adopt a three-month update cycle. Eventually we will adopt a six-month update cycle. It should also be noted that we will be—when time permits—moving to a build environment that enables individual activity developers to maintain their own build cycles.</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Manual/Setup&diff=45126Development Team/Manual/Setup2010-02-21T22:22:35Z<p>Anal bleaching: moved Development Team/Manual/Setup to Anal bleaching 15/Manual/Setup:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude><br />
{{Developers}}<br />
[[Developers|Previous]] [[Developers/Stack|Next]]<br />
<br />
[[Image:Sugar.png|right|thumb|Sugar GUI Shell (Our Goal)]]<br />
The OLPC's software environment is a heavily modified [[Community/Distributions/Fedora| Fedora]] 11 Linux system running a custom [[Sugar|GUI shell]] (Sugar). To develop for the platform you will eventually need access to a platform which runs in a manner substantially similar to the OLPC environment. To put it simply, you will likely need to have Sugar running on a computer.<br />
<br />
There are two major approaches to running Sugar, running it natively on your machine, and running it in an emulated environment. Which approach you choose will depend on a number of factors, including:<br />
<br />
* whether you are just wanting to check the platform out, or are setting up for long-term development work (i.e how much time you want to invest in getting the best possible setup)<br />
* what type of hardware you have available to you<br />
* how comfortable you are with working with traditional Linux tools such as ssh, and vim/nano editors<br />
* what type of development work you are interested in doing<br />
<br />
=Recommended Environments=<br />
<br />
For Activity Developers:<br />
<br />
* if possible, use an [[Community/Distributions/Ubuntu]]<br />
* if you are using MS Win32 and do not want to dual-boot to Linux, use the [[OLPC:Emulating_the_XO/Quick_Start/Windows#Really_Quick_Start|QEMU Quicker Start package for Win32]] (~5 minute setup on XP, ~10 minutes on Vista)<br />
<br />
'''If you can use either of those environments''', you can skip down to the [[#Configuration and Usage|Configuration and Usage]] section once you've completed the installation.<br />
<br />
If you can neither run an emulated machine or run Sugar natively, it is still possible that you may be able to develop for the platform by [[#Cross Coding|Cross Coding]]. Even if this isn't possible, you could consider working on one of the [[OLPC:Software components|software components]] we use.<br />
<br />
= About Emulation =<br />
<br />
There are a number of tools which allow you to run an image of one operating system in a window on another system. If you have the hardware and want to get started as fast as possible, choosing an emulated approach is probably for you.<br />
<br />
Emulation is a computationally intensive operation, it requires a powerful (modern) host machine with lots of RAM and lots of storage space. Each official image you wish to use will require about 2GB of disk storage with ancillary files and unpacking requirements.<br />
<br />
Emulation is also a 90% thing, that is, it normally gets about 90% of the emulation correct, but things such as peripherals, sound, cameras, keyboards and the like can be "slightly off" in an emulated environment. You should always keep this in mind when working with a emulator.<br />
<br />
== Emulation Packages/Products ==<br />
<br />
Emulation is a hot topic these days, there are lots of emulation systems available, some no-cost, some Open Source, some commercial. We cannot hope to support all of these systems, so we have focused our efforts on small subset of systems:<br />
<br />
* [[OLPC:QEMU]] (with the KQemu Accelerator)<br />
** Our best-supported emulation system<br />
** With the KQemu package provides reasonably fast emulation<br />
** Open Source and runs well on Linux and Windows machines<br />
** Basic setup is reasonably easy<br />
** Allows for working in "overlays"<br />
** Command-line interface on Windows, Linux and Mac, GUI available for Windows and Mac<br />
** Works directly with offical builds<br />
* [[OLPC:VMware]] / [[OLPC:VirtualBox]]<br />
** Commercial emulation packages with no-cost "players" for images<br />
** Somewhat easier setup than Qemu, particularly for advanced networking on Linux hosts<br />
** Require converted images, which are not always kept up-to-the-minute and do not include experimental/testing builds<br />
** Beta version of VMWare (Fusion) available for Mac OS X<br />
* [[OLPC:Emulating the XO/Parallels|Parallels Desktop]]<br />
** Commercial emulation package<br />
** Extremely difficult setup<br />
** Mac friendly<br />
<br />
Which emulation system you choose is mostly a matter of preference and suitability for your system.<br />
<br />
See Also:<br />
<br />
* [[OLPC:Emulating the XO]] -- has a handy chart outlining which system has been reported to work with which type of emulation task<br />
<br />
== Emulation for Exploration ==<br />
<br />
Want to just see what Sugar is like? Want to play with the activities and kick the tires? Downloading a Qemu or VMWare/VirtualBox image and running it is normally a matter of a half hour or so.<br />
<br />
== Emulation for Development ==<br />
<br />
It is possible to code software on an OLPC-XO running Sugar. One of our long-term goals is to make this an easy and straightforward process. The "Gear" key on the keyboard of the OLPC-XO will eventually hook up to an [[Develop|IDE]] activity for altering and creating new code. That IDE is not yet finished, however.<br />
<br />
''Official Images''<br />
<br />
The only "normal" code editing environments present on the OLPC-XO are all command-line environments available through the [[OLPC:Terminal]] activity. Official Sugar images include both the vim and nano editors, so users who know these editors can use them to write and modify software within the images.<br />
<br />
Developers wishing to use the [[OLPC:Developers/Stack#Etoys|Etoys]] application stack can create new software from Etoys built-in development environment while running on an emulator.<br />
<br />
''Developer's Desktops''<br />
<br />
If you have a very powerful host machine, it is possible to run an entire "regular" Linux desktop with a sugar-jhbuild or package-based install of Sugar. This will tend to take a lot more memory, processing power and disk space than using an official image (which is, of course, intended to run on a relatively lightweight computer), but it gives you most of the benefits of the native Sugar approach.<br />
<br />
See [[#Native Sugar]]<br />
<br />
=== Emulation for Compilation/Experiments ===<br />
<br />
One very useful feature of emulation systems is their ability to "snapshot" or "overlay" images. This feature allows you to leave a base image untouched while performing some messy or dangerous operation. When you are finished the operation, you can return to the unmodified base image.<br />
<br />
For example:<br />
<br />
If you want to support a piece of hardware that requires a kernel module, you can mount a Qemu copy-on-write or VMWare snapshot into which you install the whole kernel-compilation toolset (likely getting quite close to filling up the whole storage).<br />
<br />
You can then [[OLPC:Kernel Building|compile the kernel]] and then the missing driver. When you are finished, you copy the driver to the host machine and can install the compiled driver into the base image.<br />
<br />
== Emulation for Testing ==<br />
<br />
If you are [[#Cross Coding]] or using a [[#Native Sugar]] environment, you will often want to use an emulated official image for testing. This is often far more convenient than loading the image onto a real XO and doesn't require hardware you might not have.<br />
<br />
For support operations, it is often handy to be able to load exactly the operating system image that a user is using in order to be able to duplicate a bug. You can use an emulated version of the system instead of a real XO to save "wear and tear" on the XO's flash storage.<br />
<br />
Emulation tools often have the ability to share folders with the emulated machines, this lets you work on your host machine, quickly see if the code works on the emulator, and only then package up and test on a real machine (or potentially have someone else test).<br />
<br />
It should be noted that emulators often have difficulties with sound support and graphics resolutions. They also can wind up being much faster or slower than the target hardware. See [[Development Team/FAQ|the Developer's FAQ]] below for some pointers on how to simulate the special hardware. Testing in emulation is valuable, but ''eventually'' the software needs to be tested on real hardware.<br />
<br />
== Getting Started (Emulation) ==<br />
<br />
<div style="border: solid black thin">For a detailed exploration of emulation issues with a focus on using the official images, see [[OLPC:Emulating the XO]], which includes setup and configuration issues, tips and hints, and a grid of known-working approaches to emulating an OLPC-XO laptop.</div><br />
<br />
You will need to install one of the emulation systems and download an image:<br />
<br />
* [[OLPC:QEMU]] + KQemu (recommended where possible)<br />
** [http://xs-dev.laptop.org/~cscott/olpc/streams/ship.2 Ship.2] -- patch releases for Official Releases<br />
** [http://xs-dev.laptop.org/~cscott/olpc/streams/joyride Joyride] -- Bleeding Edge/Development Releases<br />
** [http://pilgrim.laptop.org/~pilgrim/olpc/streams/update.1 Update.1] -- release candidates for the Update.1 refresh<br />
* [[OLPC:VMware]], [[OLPC:VirtualBox]] (good secondary choices, particularly if you already have one installed)<br />
** [http://dev.laptop.org/pub/virtualbox/ All Builds] -- collection of all the pre-converted images (the same images work on either system)<br />
<br />
More complete descriptions of the various [[OLPC:OS images#Build names and branches|Image Types]] are available. Follow the specific instructions on the emulation-system-specific pages linked to above to get started.<br />
<br />
See Also:<br />
<br />
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed<br />
<br />
= Native Sugar =<br />
<br />
If you are running a modern Linux Operating System (whether as your primary OS, as a Live CD, via dual-booting, or potentially even via emulation), it is quite possible that you can run Sugar directly on your Linux machine with its current OS.<br />
<br />
Core developers, as opposed to Activity developers, will likely need to set up a sugar-jhbuild environment. sugar-jhbuild uses the bleeding edge version of each component, often checked directly out of the source-code-control for each project. It allows you to work with developers across many different projects, and it tends to be fragile as a result.<br />
<br />
Activity developers without XO hardware can use pre-built sugar that is installed as packages. For Ubuntu and some other Linux distributions, developers can run the sugar emulator to create a separate, full screen X server.<br />
<br />
''Sugar as Your Shell''<br />
<br />
Sugar, though a bit exotic seeming compared to most GUI shells, such as KDE or Gnome, is really just a GUI shell. As such, you can run it either as the actual shell for a GUI login session, or in a virtual X session (that is, a window that mimics a whole X session/server).<br />
<br />
The official OLPC images, of course, run Sugar as the GUI shell for the primary X server. So if you are running an official image (for example because you are working directly on an OLPC-XO) you will be running Sugar as your GUI shell. Similarly, the [[#Live CD|Live Backup Live CD]], which is based on an official image, boots directly into the Sugar shell. On Fedora 11, you can also (with recent versions of Sugar) choose a Sugar session from your GDM/KDM/XDM-based login manager.<br />
<br />
''Virtual X Server''<br />
<br />
In most other cases, you want to run Sugar in a virtual X session. This allows you to have multiple Sugar desktops running and visible simultaneously to test networking and the like. The virtual X sessions can be quickly shut down and restarted without needing to log out and back in again. Most core developers are using this type of setup using sugar-jhbuild.<br />
<br />
== sugar-jhbuild ==<br />
<br />
This is what the core development team uses and is one of the most pleasant ways to work (once set up). Compared with using an Emulated XO, installing sugar takes more time and space to set up, and can be difficult to maintain, but results in a more flexible environment.<br />
<br />
The 'native' environment for sugar-jhbuild is [[Community/Distributions/Fedora|Fedora]], and this is by far the best supported development platform for sugar-jhbuild. [[Community/Distributions/Ubuntu|Ubuntu]] and [[Community/Distributions/Gentoo|Gentoo]] can also build the environment.<br />
<br />
Currently sugar-jhbuild requires about 2.5 hours to complete building on a modern workstation (AMD4800+).<br />
<br />
You can [[OLPC:Emulated Sugar-jhbuild|run sugar-jhbuild under emulation]]. This has the advantage of working on a wider range of Linux hosts (as well as Windows or Mac OS-X), and does not "pollute" your host machine with Sugar libraries. It requires a lot of disk space and processing power, however.<br />
<br />
See [[Development Team/Jhbuild]] to get started.<br />
<br />
See Also:<br />
<br />
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed<br />
<br />
== Native Sugar Packages on Linux ==<br />
<br />
As Sugar stabilizes and is ported to more distributions, it should be possible to use your Linux distribution's package management system to install Sugar. Distributions with ports so far:<br />
<br />
* [[Community/Distributions/Ubuntu]] -- These packages seem to work well and are extremely easy to set up. If you are running on Ubuntu Gutsy and are not working on Sugar's core software, this is very simple way to work.<br />
* [[Community/Distributions/Debian]]-- Note that we need more testing of this package-set, please let us know your experiences<br />
<br />
<br />
If you don't see your distribution here, ask your distribution maintainers, or if you have the skills, create the packages yourself and submit them.<br />
<br />
See Also:<br />
<br />
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed<br />
<br />
== A Real OLPC-XO Laptop ==<br />
<br />
Hardware Developer's Program - while there are only a small number of test units available for free, developers can [[OLPC:Contributors program|submit proposals]] to receive one of those units for testing and development.<br />
<br />
A large number of units were distributed in the Give 1 Get 1 program throughout the US or Canada. If you have sufficient funds, you can acquire a production-run machine from a secondary market such as EBay.<br />
<br />
If you would like to run a non-official (i.e. experimental, unstable) build on a Mass-Production/G1G1 machine you will need to acquire a [[OLPC:Activation and developer keys|developer key]] to allow your (locked) laptop to load the unsigned image. You probably ''do not'' need to run an experimental image for most activity development purposes.<br />
<br />
See Also:<br />
<br />
* [[#Emulation for Development]] -- discussions on the current limitations on using the official images as development environments<br />
* [http://laptop.org/start Getting Started] -- guide to using a new OLPC-XO Laptop<br />
<br />
=== Almost an OLPC ===<br />
<br />
The introduction of the OLPC-XO has ignited the low-cost computer market. There are a large number of low-cost machines with approximately the same performance level as an OLPC-XO. As of right now, we don't have any reason to recommend that you should buy one of these "almost an OLPC" machines, while they may be superficially similar to an XO, they are not likely to be any closer than an emulated XO running an official image.<br />
<br />
See: [[OLPC:Development Systems]]<br />
<br />
== Live CDs ==<br />
<br />
There are currently a number of projects underway to produce various types of [[OLPC:LiveCD]]. LiveCDs are not a "normal" part of the development process, normally being used for lightweight deployments, experimentation, testing, and potentially installation onto a dedicated machine to create a workstation.<br />
<br />
See [[#Emulation for Development]] for considerations regarding installing LiveCD's based on official images for development.<br />
<br />
= Cross Coding =<br />
<br />
If you can neither run an emulated machine nor run Sugar natively, it is still possible that you may be able to develop for the platform by developing your code on one machine and then porting it to the platform when you are finished.<br />
<br />
Cross coding generally works best when you are working in a relatively constrained and abstracted environment. Of the stacks available on the Sugar platform, the following are well suited to Cross Coding activities:<br />
<br />
* [[OLPC:Developers/Stack#Browser|Browser]] -- Mozilla/Firefox-derived web browser<br />
* [[OLPC:Developers/Stack#Etoys|Etoys]] -- Squeak/Smalltalk multimedia environment<br />
* [[OLPC:Developers/Stack#OLPCGames|Pygame]] -- raster-graphics game development framework<br />
* [[OLPC:Developers/Stack#Flash|Flash]] -- Gnash or Adobe-Flash engine<br />
<br />
You may be able to install just the software involved in that stack in order to test and develop your game. You can then have a development partner do porting and testing to a Sugar environment.<br />
<br />
= Configuration and Usage =<br />
<br />
Now that you have either a native or emulated Sugar environment, you are likely wondering how to use and configure it for your needs:<br />
<br />
* [[OLPC:Sugar Instructions]] -- how to get around inside Sugar (i.e. how to use it)<br />
* [[OLPC:Support]] -- how to get help with running Sugar (on an OLPC-XO)<br />
<br />
You can install new software in your Sugar environment in a couple of ways.<br />
<br />
* [[Activities]] -- can be downloaded using the built-in browser or installed from the command line<br />
* General Linux packages can be downloaded and installed using Yum (note, these changes will be wiped out on the next OS upgrade)<br />
<br />
== Jabber Servers ==<br />
<br />
By default your image may have been configured to connect to either an inaccessible or a non-existent Jabber server. You can see this by zooming out to the network view (Alt-F1 in an emulator). If there are no other XO icons in the view you are likely not connecting to a server.<br />
<br />
At the moment (2007-12-17) we are in the middle of rebuilding the Jabber servers to support the much larger loads seen during deployment. Ask on the #olpc IRC channel which Jabber server you should use, then open a [[OLPC:Terminal]] activity and use the following command:<br />
<br />
sugar-control-panel -s jabber jabber.server.url<br />
<br />
and then restart the X server, either restart the machine or use ctrl-alt-backspace (erase), but do '''not''' do ctrl-alt-backspace on an emulator, or you will kill your entire GUI session!<br />
<br />
== SSH Access ==<br />
<br />
You will often want to be able to use file-transfer and remote-login operations to access your Sugar environment. We generally recommend using ssh-based access for working with your Sugar environment remotely.<br />
<br />
Note: If you are using sugar-jhbuild you likely do '''not''' need to follow these instructions (since you're already using a running Linux desktop that shares its login and file-system with the Sugar instance).<br />
<br />
See:<br />
<br />
* ??? SSH user's guide<br />
** ??? SFTP user's guide and tools<br />
<br />
=== Password Based ===<br />
<br />
Password-based SSH authentication is convenient and simple to set up, but it is far easier to crack than key-based access. Consider using key-based authentication unless you are absolutely sure that no-one can reach your Sugar environment from untrusted networks (and maybe even then).<br />
<br />
Open a [[OLPC:Terminal]] activity and run:<br />
<br />
passwd<br />
<br />
which will prompt you to enter a password (and confirm it).<br />
<br />
Note: you can also set a password on the root account by doing:<br />
<br />
su root<br />
passwd<br />
<br />
in the terminal window. This is strongly recommended if you are going to allow remote access to your machine.<br />
<br />
=== SSH Key Based ===<br />
<br />
SSH Key based authentication provides strong public-key encrypted access control for your Sugar environment, but takes a bit more work than SSH Password base authentication.<br />
<br />
In summary, you create a private key which will be stored on your remote system and encrypted with a strong password. You transfer the public key (think of it as a lock) that corresponds to that key to the Sugar environment and install it as an "authenticated key" which can be used to log into the Sugar environment.<br />
<br />
On your remote system, install SSH (Linux and MacOS will already have it installed, on Windows use the PuTTY program) and generate a new ssh key pair (following is for Linux/MacOS, refer to PuTTY's documentation for details on Windows):<br />
<br />
ssh-keygen<br />
<br />
Usage notes:<br />
<br />
* Accept the defaults for key-type and size.<br />
* If ssh-keygen asks if you want to overwrite a key say '''No''', you are about to destroy your current ssh key!<br />
* Use a strong pass-phrase that you can remember easily (the pass phrase will need to be entered frequently unless you make use of an ssh-agent such as offered by PuTTY or Gentoo's keychain)<br />
<br />
This will normally create a file in your ~/.ssh/ directory named id_rsa.pub (if you accepted the defaults). You now need to copy this file to your Sugar environment and add it to the contents of your ~/.ssh/authorized_keys file (you may need to create the file).<br />
<br />
mkdir ~olpc/.ssh<br />
cat id_rsa.pub >> ~olpc/.ssh/authorized_keys<br />
<br />
add your key to your keychain/ssh-agent application and you can now use SSH with just a single sign-on for many concurrent actions.<br />
<br />
See: [[OLPC:Emulating the XO/Help_and_tips#SSH into qemu|SSH Into Qemu]] for Qemu-specific notes regarding port forwarding<br />
<br />
= See Also =<br />
<br />
* [[OLPC:Compiling C/C++ program for the OLPC]]<br />
<br />
* [[OLPC:Building custom images]] -- how to create entirely custom Sugar OS images using Pilgrim<br />
<br />
[[Developers|Previous]] [[Developers/Stack|Next]]<br />
<br />
[[Category:Emulation]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Manual&diff=45124Development Team/Manual2010-02-21T22:22:34Z<p>Anal bleaching: moved Development Team/Manual to Anal bleaching 15/Manual:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude><br />
{{Translations}}<br />
{{ Latest Releases <br />
| stable = inline<br />
| devel = inline<br />
| livecd = inline<br />
| firmware = inline<br />
| server = inline<br />
| extra = inline<br />
| extra_text<br />
}}<br />
<br />
<div style="margin: 20; padding-left: 30; padding: 10; border: black thin solid; background-color: #e0ffe0">This is a quick intro to working on activities for the XO, and other code for OLPC. Feel free to add to and update the manual; it is a work in progress.</div><br />
<br />
This manual tries to provide you with the answers you need to get started either by contributing to existing projects or starting your own. Although it focuses on the software development side of the process, we are also very interested in encouraging [[Sugar_Labs/Getting_Involved|Getting_Involved]].<br />
<br />
== Overview ==<br />
* [[Development Team/Manual/Setup]]<br />
** Describes how to set up a Sugar development environment on your PC or workstation. It discusses emulation, running Sugar OS natively or in a virtual machine, cross compiling, and some configuration options. It also includes a discussion of which approach is likely to be the most appropriate for you<br />
* [[Test Config Notes]]<br />
** If you have an XO, this page has many useful configuration tips for testing your application.<br />
* [[Developers/Stack]]<br />
** Describes the choices of programming languages and "software stacks" for developing code on the OLPC. It details the base stack of hardware, firmware, operating system and the Sugar environment. It then gives options for programming in Python, Squeak, C/C++ and other languages or activities.<br />
* [[Developers/Issues]]<br />
** Describes the special considerations required for working on the OLPC project, particularly those driven by our target hardware and deployment environments<br />
* [[Developers/Projects]]<br />
** Suggests ways to choose a particular project, whether one that already exists, or one of your own, and how to start working on the project once you have chosen it<br />
* [[Developers/Communication]]<br />
** Describes the various support and communications channels used by the project, including how to get help with problems, and how to set up your own per-project communications channels<br />
* [[Developers/Documentation]]<br />
** Collects pointers to the various sources of documentation available for the project. Helping us better document our code is always a welcome contribution.<br />
* [[Development Team/FAQ]]<br />
** Collects and attempts to answer common questions that developers have when working on the Sugar platform<br />
<br />
== Related docs and manuals ==<br />
* [[PyGTK/Hello World Tutorial]]<br />
* [[Beyond Hello World]]<br />
* [[Simplified users guide]]<br />
*[[Developer/GettingStarted | Getting Started]]<br />
* [http://www.olpcaustria.org/mediawiki/index.php/Activity_handbook Activity Handbook] -- a somewhat slower, more detailed tutorial-style presentation, assumes less knowledge of the project's background<br />
* [https://www6.software.ibm.com/developerworks/education/l-sugarpy/l-sugarpy-pdf.pdf Application Development for the OLPC Laptop] (Tim Jones of IBM)<br />
* [[Activation_and_Developer_Keys|Instructions for getting a Developer Key]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Low-level_Activity_API&diff=45122Development Team/Low-level Activity API2010-02-21T22:22:34Z<p>Anal bleaching: moved Development Team/Low-level Activity API to Anal bleaching 15/Low-level Activity API:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{Developers}}{{TOCright}}</noinclude><br />
<br />
Sugar activities are usually written in Python using the [http://api.sugarlabs.org/ Python Activity API]. This page documents the underlying mechanism that all activities need to conform to. Activities can be written in any language, as long as it can connect to D-Bus and provide an X11 interface. The discussion below tries to be language-agnostic.<br />
<br />
''This documentation effort was started by [[User:Bert|Bert]] on the [http://wiki.laptop.org/go/Low-level_Activity_API OLPC wiki] while implementing the [[olpc:Squeak|Squeak]]-based [[Activities/Etoys|Etoys]] activity. Please fill in missing pieces and correct mistakes!''<br />
<br />
See [[olpc:Activity Development Alternatives]] for an overview of various ways to develop activities.<br />
<br />
As Sugar evolves to become compatible with ordinary X11 programs, and as services like collaboration migrate into generic X11 desktops, this document will become less and less relevant. All the special rules for "Sugar Activities" will fall by the wayside, because any X11 program will be usable with Sugar. This will greatly simplify both the job of Activity authors, and the usefulness of Sugar-based computers (which will have access to thousands of X "applications" that have never heard of Sugar and never will).<br />
<br />
=Overview=<br />
An Activity is basically a regular X11 program which communicates with the special Sugar services via D-Bus.<br />
<br />
The [[Development Team/Almanac/Activity Bundles|Activity bundle]] specifies an executable. For each [[#Activity Instance|activity instance]], that executable is run with arguments specifying the bundle id (taken from the bundle) and activity id (generated by Sugar). The instance opens an X window, putting these ids into window [[#X Properties|properties]]. It also needs to provide a D-Bus [[#D-Bus Methods|service]] to receive messages from Sugar. An activity must retrieve and store its state in the [[#Datastore|datastore]], implement [[#Presence|sharing]] on the mesh network, and be [[#Security|security]] compliant.<br />
<br />
==Activity Life Cycle==<br />
Please see [[Human Interface Guidelines/Activities/Activity Basics|Activity Basics]] for the user's point of view. The programmer's point of view is outlined here, and detailed in the following sections:<br />
<br />
'''Start Up'''<br />
# The activity is executed.<br />
# It creates a D-Bus service to receive method calls from the Sugar shell. <br />
# It creates an X11 window with special properties so the Sugar shell can associate an activity with its window.<br />
# If an object id was passed on the command line, the activity loads that object from the Datastore. Otherwise, it creates a new Datastore object.<br />
# The activity asks the Presence Service to find out if it is shared. If so, it joins the shared activity.<br />
<br />
'''Operation'''<br />
# The activity continuously handles X11 user input, as well as D-Bus messages from the Sugar shell, or signals from other sources like the Presence Service.<br />
# Whenever the state of the activity was altered significantly, it should update its Datastore object to prevent data loss on an unexpected shutdown.<br />
# If the user indicates wanting to share the activity, it has to announce this to the Presence Service.<br />
# If the view-source key is pressed, some meta-action about the activity should be invoked, like showing its source code.<br />
<br />
'''Shut Down'''<br />
# When the activity window is closed, it updates its Datastore object with its current state.<br />
# It leaves the shared activity (if shared),<br />
# and then quits.<br />
<br />
=Activity Instance=<br />
<br />
When the activity instance is executed, the current working directory will be set to the bundle directory (e.g., ~/Activities/MyActivity.activity) so resource files can be accessed using relative paths. Also, its "bin" subdirectory is added to the PATH.<br />
<br />
==Command Line Arguments==<br />
<br />
The following arguments are passed to the executable:<br />
<br />
; -b, --bundle-id : Identifier of the activity bundle. Must be made available as [[#X Property|window property]].<br />
; -a, --activity-id : Unique identifier of the activity instance. Must be made available as [[#X Property|window property]], and is used to create the [[#D-Bus Methods|D-Bus service]].<br />
; -o, --object-id : (optional) Identity of the journal object associated with the activity instance. When you resume an activity from the journal the object id will be passed in (see [[#Datastore|datastore]]). <br />
; -u, --uri : (optional) URI associated with the activity. Used when opening an external file or resource in the activity, rather than a journal object (downloads stored on the file system for example or web pages).<br />
<br />
==Environment Variables==<br />
<br />
Some environment variables are setup before the activity is launched:<br />
<br />
SUGAR_ACTIVITY_ROOT<br />
<br />
Writable space for the activity, see [[#Security|security]]. Activities are prohibited from writing anywhere else in the file system.<br />
<br />
SUGAR_BUNDLE_PATH<br />
<br />
Path to the current activity bundle (e.g., /usr/share/activities/MyActivity.activity or ~/Activities/MyActivity.activity). This is also the current working directory when the activity is started, so relative paths can be used to access files inside the bundle, rather than constructing absolute paths using this variable.<br />
<br />
==X Properties==<br />
The activity instance needs to set some properties on its top-level window, '''before''' the window is shown on the screen (see [http://dev.laptop.org/ticket/5271 #5271]):<br />
<br />
_SUGAR_BUNDLE_ID <br />
<br />
The bundle id (e.g., <tt>my.organization.MyActivity</tt>) of type <tt>STRING</tt> as passed on the [[#Command Line Arguments|command line]].<br />
<br />
_SUGAR_ACTIVITY_ID <br />
<br />
The activity id (e.g., <tt>6f7f3acacca87886332f50bdd522d805f0abbf1f</tt>) of type <tt>STRING</tt> as passed on the [[#Command Line Arguments|command line]].<br />
<br />
:<small>The above properties need to be on the window before it pops up. This is easy when programming with raw libX11, but often difficult with high-level toolkits. E.g., in GTK you can use the "realize" event. The toolkit is likely to create and pop up the window in one operation, so you don't get a chance to set the properties. A workable solution is to piggyback on a function within the toolkit. For example, you can implement XChangeProperty in your activity. Using dlsym() with the RTLD_NEXT flag, you can obtain a function pointer to the normal XChangeProperty function in libX11. Your implementation normally just calls that. The first time your implementation is called though, it also sets up the sugar-specific properties. Essentially you are supplying a callback function to a toolkit that was never intended to call one. ''Once [http://dev.laptop.org/ticket/5271 #5271] is settled, this hack is not necessary anymore''</small><br />
<br />
Also, some Window Manager hints need to be set:<br />
<br />
_NET_WM_NAME<br />
<br />
should be set to the current activity title. It usually corresponds to the title which is displayed in the journal and advertised on the network for shared activities. See [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2511086 Freedesktop specification].<br />
<br />
_NET_WM_PID<br />
<br />
must be set to the activity's process id so the shell can associate memory usage with an activity. See [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2511925 Freedesktop specification].<br />
<br />
==D-Bus Methods==<br />
An activity instance needs to create a D-Bus service:<br />
<br />
Service name: org.laptop.Activity6f7f3acacca87886332f50bdd522d805f0abbf1f # no dot after Activity!<br />
Object path: /org/laptop/Activity/6f7f3acacca87886332f50bdd522d805f0abbf1f<br />
Interface: org.laptop.Activity<br />
<br />
(where <tt>6f7f3acacca87886332f50bdd522d805f0abbf1f</tt> is the activity id as passed on the cmd line)<br />
<br />
It must support the following methods:<br />
<br />
org.laptop.Activity.SetActive(b: active)<br />
<br />
Activate or passivate an activity. This is sent when switching activities, there is only one active activity at a time, all others are passive. A passive activity must immediately release resources like sound, camera etc. Also it should prepare for being killed without warning at any time in the future (see [[olpc:OOM|OOM]]) by auto-saving to the datastore.<br />
<br />
org.laptop.Activity.Invite(s: buddy_key)<br />
<br />
If not yet shared, share this activity privately because the user chose "invite" from the mesh view. Then, invite the buddy (see [[#Inviting|below]]).<br />
<br />
The following methods are '''optional''':<br />
<br />
org.laptop.Activity.HandleViewSource()<br />
<br />
The user wants to view the source. If this method does not answer an error, the activity will handle viewing the source code itself, otherwise Sugar will show the source.<br />
<br />
org.laptop.Activity.GetDocumentPath():s<br />
<br />
Answer the path of a document source file to view, in addition to the activity bundle itself. Sugar will delete that document when the view-source interface is closed. This method is only called when Sugar handles the source viewing.<br />
<br />
== Session ==<br />
<br />
To communicate to an activity when it needs to save data and quit, we use the [http://www.xfree.org/current/xsmp.pdf X Session management protocol]. The part of the protocol which deals with application restarting is not used and we don't plan to implement it.<br />
<br />
In the Glucose 0.84 release cycle we are planning do add support for a D-Bus based protocol which is currently being developed for the GNOME desktop. You can read about it on this [http://bugzilla.gnome.org/show_bug.cgi?id=535829 bugzilla report].<br />
<br />
=Datastore=<br />
<br />
An Activity instance must store its complete state in the central datastore so it appears in the Journal and can be resumed later. It needs to connect to the datastore service:<br />
<br />
Service name: org.laptop.sugar.DataStore<br />
Object path: /org/laptop/sugar/DataStore<br />
Interface: org.laptop.sugar.DataStore<br />
<br />
==Meta Data==<br />
An item in the datastore is referenced by an object_id, it has a dictionary of properties, and possibly a file. The properties have String keys but Variant values. Here are a few properties:<br />
<br />
'activity': 'my.organization.MyActivity' # bundle id (determines icon and default activity)<br />
'activity_id': '6f7f3acacca87886332f50bdd522d805f0abbf1f'<br />
'title': 'My new project' # as shown in journal<br />
'title_set_by_user': '0' # '1' if not default title<br />
'keep': '0' # '1' if marked as "favorite" (star)<br />
'ctime': '1972-05-12T18:41:08' # created (local time)<br />
'mtime': '2007-06-16T03:42:33' # modified (local time), deprecated but still used internally so must be present<br />
'timestamp': 1192715145 # modified (UTC), in seconds since the UNIX epoch, must be present<br />
'preview': ByteArray(png file data, 300x225 px)<br />
'icon-color': '#ff0000,#ffff00' # owner buddy or shared activity color<br />
'mime_type': 'application/x-my-activity'<br />
'share-scope': # if shared<br />
'buddies': '{}' # buddies in a shared activity as JSON<br />
'description': 'some longer text' # description editable in journal detail view<br />
'tags': 'one two' # tags editable in journal detail view<br />
'something:text': 'text I want to be indexed' # properties with key ending in ":text" will be searched in fulltext search<br />
'checksum': # md5 hash of file, created by DS, do not set or modify<br />
'my.organization.MyActivity.myProperty' # private property, prefixed with activity name to avoid name clashes<br />
<br />
''Due to bug [http://dev.laptop.org/ticket/4662 #4662] only some known properties are retained! The list is at the bottom of [http://git.sugarlabs.org/projects/sugar-datastore/repos/mainline/blobs/625c4f13624d52abdc9c1cc26f9b63342ac400c7/src/olpc/datastore/model.py#line379 datastore/model.py] (fixed in Sugar 0.83)''<br />
<br />
''And custom properties must have String values for now (bug [http://dev.laptop.org/ticket/5134 #5134]).''<br />
<br />
''And since Sugar 0.83 all former String values are now stored and returned as Arrays of Bytes. You can still set them as Strings.''<br />
<br />
==Keeping and Resuming==<br />
<br />
To create an item in the datastore, call create():<br />
<br />
object_id = datastore.create(properties, filename, transfer_ownership)<br />
<br />
The metadata properties are a dictionary (type "a{sv}") containing (at least) the entries mentioned above. If filename is not empty, the file will be moved or copied to the datastore, depending on the transfer_ownership flag. The activity should delete the file once the call completes (if transfer_ownership was false). Otherwise (if transfer_ownership was true) the datastore will remove the file. ''For this to work under rainbow you must place the file in the [[#Writable Directories|"instance" directory]].'' The returned id will be a string like '4543af91-7be9-404e-b2f1-3e27cb15a15d'. <br />
<br />
To update an item use update():<br />
<br />
datastore.update(object_id, properties, filename, transfer_ownership)<br />
<br />
Again, if a filename was given and transfer_ownership is false, the activity is responsible for deleting the file after the call returns. <br />
<br />
To retrieve an object's properties and file:<br />
<br />
properties = datastore.get_properties(object_id)<br />
filename = datastore.get_filename(object_id)<br />
<br />
The returned temp file should be deleted by the activity as soon as possible, latest when the activity quits.<br />
<br />
The metadata properties need to be preserved and stored again when updating an entry. An activity should also track updates to the properties made in the Journal while editing the datastore object. For this it should subscribe to the Updated signal:<br />
<br />
datastore.Updated(object_id)<br />
<br />
:<small>An efficient way to do this is registering a DBus match like <tt>path='/org/laptop/sugar/DataStore', member='Updated', interface='org.laptop.sugar.DataStore', type='signal', arg0='<i>objectId</i>'</tt> --[[User:Bert|Bert]]</small><br />
<br />
==Querying==<br />
<br />
Activities may query the datastore:<br />
<br />
(results,count) = datastore.find(query)<br />
<br />
It returns the results as array of properties and a count of matching items (the array may have fewer items if the query was limited). In addition to the usual metadata items, the properties will include the object id at key 'uid', the mountpoint of the item at key 'mountpoint', and possibly a 'filename' if requested.<br />
<br />
The query can be a:<br />
<br />
: <b>string</b>: fulltext search<br />
:: the given string is searched in all text properties<br />
: <b>dictionary</b>: structured query<br />
:: the key-value pairs in the dictionary specify the value (or array of values, or dictionary specifying range) for a specific property, e.g.:<br />
::: 'title' = 'First Project' <i>(but see note below)</i><br />
::: 'mime_type' = ['image/png', 'image/jpeg']<br />
::: 'mtime' = {'start' = '2007-07-01T00:00:00', 'end' = '2007-08-01T00:00:00'}<br />
:: also, there are a few specific keys to adjust the query:<br />
::: 'query': fulltext search term<br />
::: 'order_by': key (or array of keys) to order results by, to reverse order use '-key' <i>(but see note below)</i><br />
::: 'limit', 'offset': return only limit results starting at offset<br />
::: 'mountpoints': array of mountpoint ids to search (or all if not specified)<br />
::: 'include_files': if true, generate files as if get_filename() had been called for each item. In results, a property 'filename' will be added.<br />
<br />
<i>NOTE: Since Sugar 0.84 only very few keys are supported ('uid', 'activity', 'activity_id', 'mime_type', and 'keep', see [http://git.sugarlabs.org/projects/sugar-datastore/repos/mainline/blobs/master/src/carquinyol/indexstore.py#line32 here]). Other keys are ignored so you may get back more results than expected. Results are ordered by timestamp by default. Sort keys are limited, too (none in 0.84, in 0.86 'timestamp' and 'title', see [http://git.sugarlabs.org/projects/sugar-datastore/repos/mainline/blobs/master/src/carquinyol/indexstore.py#line266 here]).</i><br />
<br />
You can also retrieve an array of unique values for a field:<br />
<br />
values = datastore.get_uniquevaluesfor(property, query)<br />
<br />
<i>Note that currently (2007-07-25) the query is ignored in this call, it looks for all values in all entries.</i><br />
<br />
==Progress Display==<br />
<br />
To add a progress bar to a Journal entry (like the Browse activity does while downloading files), create an entry with a "progress" property in the meta data. The value is the percentage done (0 to 100). The file cannot actually be stored incrementally in the datastore, it needs to be saved to a temp file first. But the entry metadata can be updated continuously to inform the user of progress while creating the temp file (by not giving a filename yet in the update() call). Once the temp file is complete, it can be checked-in as usual. The user can cancel by clicking the x icon next to the progress bar. This deletes the entry, so you need to watch for the datastore's "Deleted(id)" signal.<br />
<br />
meta = ... # regular metadata<br />
meta["progress"] = 0<br />
id = datastore.create(meta, "") # create with progress bar<br />
while (done() < 100) {<br />
if (got_signal(datastore, "Deleted", id))<br />
return user_cancelled();<br />
write_to(tmpfile)<br />
meta['progress'] = done()<br />
datastore.update(id, meta, "") # update progress bar<br />
}<br />
meta.deleteKey("progress")<br />
datastore.update(id, meta, tmpfile.name) # check-in file, remove progress bar<br />
<br />
==Journal UI==<br />
The Journal activity provides a D-Bus service to allow activities to bring up an object chooser dialog, focus searches etc.:<br />
Service name: org.laptop.Journal<br />
Object path: /org/laptop/Journal<br />
Interface: org.laptop.Journal<br />
===Choosing Objects===<br />
Call this method to bring up the Chooser dialog (which looks like a small journal overlayed on your activity):<br />
chooser_id = org.laptop.Journal.ChooseObject(xid, what_filter)<br />
The xid should be your activity's X window handle, or <tt>0</tt>. The filter says what type of Journal entries is preselected in the drop-down menu (''this parameter was added in Sugar 0.83''). It's a string containing either a bundle id (e.g., <tt>'my.organization.MyActivity'</tt>), or one of the generic data types (<tt>'Text', 'Image', 'Video', 'Audio', 'Link'</tt> [http://git.sugarlabs.org/projects/sugar-base/repos/mainline/blobs/master/src/sugar/mime.py#line32 definition]), or an empty string for no filter. The call returns immediately with a string chooser_id. You need to watch these signals which get emitted when an item is chosen or the dialog is canceled:<br />
ObjectChooserResponse(chooser_id, object_id)<br />
ObjectChooserCancelled(chooser_id)<br />
The object_id received in an ObjectChooserResponse signal then can be used to open the corresponding [[#Keeping and Resuming|datastore object]].<br />
<br />
===Focusing Objects===<br />
The Journal activity allows an activitiy to "focus" an object, so the user can immediately open it (this is currently the only way to have one activity "launch" a different activity).<br />
<br />
org.laptop.Journal.ShowObject(object_id)<br />
<br />
Switches to the Journal activity and shows the selected object.<br />
<br />
This can be used to, e.g., open a URL (create a URL object in the journal then call this) or to view source code (store the source code as text file in the journal then call ShowObject() on it).<br />
<br />
<s>To focus on multiple objects: <code>org.laptop.Journal.FocusSearch(query)</code></s> ''Removed in Sugar 0.83''<br />
<br />
==Mount Points==<br />
Devices are represented as mount points in the datastore. If no mountpoint is explicitly specified, the main datastore (Journal) is used.<br />
<br />
mounts = datastore.mounts()<br />
<br />
Returns an array of mount point descriptors where each descriptor is a dictionary containing at least the following keys:<br />
:'id': the id used to refer explicitly to the mount point<br />
:'title': Human readable identifier for the mountpoint<br />
:'uri': The uri which triggered the mount<br />
<br />
Mount points can be specified when creating an object (using a 'mountpoint' key and id value in the properties), and when querying the datastore (by adding a 'mountpoints' query option).<br />
<br />
Large files to be stored on an external device should be placed at the uri of the mount point (see [[#External Media|external media]]).<br />
<br />
=Security=<br />
<br />
Activities are isolated from each other and from the "olpc" user. They do not have the same permissions as you would expect in a non-restricted Linux environment (see [[olpc:OLPC Bitfrost|Bitfrost]] and [[olpc:Rainbow|Rainbow]]). In particular, they can '''not''' write in the /home/olpc directory!<br />
<br />
== Users and Groups ==<br />
<br />
While Sugar runs as user "olpc", activities do '''not''' (the [[olpc:Terminal|Terminal]] activity as a maintenance tool is an exception).<br />
<br />
Instead, each activity instance is run with a unique user id. That is, a new anonymous user is created when the user clicks an activity icon, and the [[olpc:Rainbow|Rainbow]] demon runs the activity under that user. <br />
<br />
All instance of the same activity get the same unique group id. That is, a new anonymous group is created when the activity is run for the first time, each subsequent activity launch will use the same group id. This means files to be shared for all instances of an activity must be made group-accessible.<br />
<br />
== File Access ==<br />
<br />
=== Home Directory ===<br />
<br />
Since each activity is run as a different user, it gets a different home directory on each invocation. In release 8.2, the home directory for an activity equals the $SUGAR_ACTIVITY_ROOT/instance/ directory (see below). For data such as config files to survive and be accessible by all future activity invocations, they must not be stored in $HOME but rather $SUGAR_ACTIVITY_ROOT/data/ should be used.<br />
<br />
: <small>Hint: A trick to help porting legacy software which expects its config files to be in the home directory is to export HOME=$SUGAR_ACTIVITY_ROOT/data in an activity's launch script. --[[User:Bert|Bert]]</small><br />
<br />
=== Writable Directories ===<br />
All writing to the file system is restricted to subdirectories of the path given in the SUGAR_ACTIVITY_ROOT environment variable. This directory has three subdirectories with different policies:<br />
<br />
;$SUGAR_ACTIVITY_ROOT/data/: This directory is used similar to a traditional home directory, for persistent activity data such as configuration files. Make sure files in there are group readable and writable (see [[#Users and Groups|users and groups]]). The directory itself is group-writable. Files stored here will survive reboots and OS upgrades.<br />
<br />
;$SUGAR_ACTIVITY_ROOT/tmp/: This directory is used similar to a /tmp directory, being backed by RAM. It may be as small as 1 MB. This directory is deleted when the activity exits (specifically, as soon as all children of the activity's first process die). This directory is ''only'' accessible to the activity and its children; not even to Sugar.<br />
<br />
;$SUGAR_ACTIVITY_ROOT/instance/: This directory is used similar to a /var/tmp directory, being backed by flash rather than by RAM. It is unique per instance. It is used for transfer to and from the datastore (see [[#Keeping and Resuming|keeping and resuming]]). This directory is deleted when the activity exits (specifically, as soon as all children of the activity's first process die)<br />
<br />
As of version 8.2, all the activity root directories are created in /home/olpc/isolation and can be examined there with the Terminal activity. However, activities MUST use the $SUGAR_ACTIVITY_ROOT variable because the isolation directory layout is expected to change.<br />
<br />
=== Concurrency ===<br />
<br />
Multiple instances of an activity may communicate with one another through their shared 'data' directory; however, since each instance runs as a different user, [[olpc:Concurrent activity instances|some care must be taken]] ([http://dev.laptop.org/ticket/5476 #5476]) when sending messages to other activities through this shared medium.<br />
<br />
=== External Media ===<br />
<br />
External media (USB drives, SD cards) are auto-mounted by the Journal and appear in /media/*. No access restrictions are applied currently (up to release 8.2). If activities use these external media directly (rather than through the Journal, see [[#Mount Points|mount points]]), they need to take care of ensuring data integrity since the user may (and will) remove the medium at any time.<br />
<br />
== Signing ==<br />
<br />
An activity will have to be cryptographically signed to allow secure activity upgrades once they are on the machines. Tools for this will be provided soon. See discussion of [[Development Team/Almanac/Activity Bundles#Bundle Structure|contents.sig]].<br />
<br />
''to be detailed''<br />
<br />
== Permissions Declarations ==<br />
<br />
Permission declarations will enumerate which special permissions (camera access? microphone access? non-Tubes network access? etc.) your activity may need for its normal operation. See [[Development Team/Almanac/Activity Bundles#activity/permissions.info|permissions.info]] and generally [[olpc:OLPC Bitfrost|Bitfrost]].<br />
<br />
''to be detailed''<br />
<br />
=Presence=<br />
<br />
Collaboration plays a large role in Sugar. Still, the presence and sharing APIs are still somewhat rough. There are attempts to explain sharing, see [[olpc:Activity sharing|Activity sharing]]. The following are the bare essentials.<br />
<br />
==General==<br />
<br />
Activities must support sharing using the [[olpc:Presence Service D-Bus API|Presence Service]] (PS). It is accessible on the D-Bus:<br />
<br />
Service: org.laptop.Sugar.Presence<br />
Interface: org.laptop.Sugar.Presence<br />
Object Path: /org/laptop/Sugar/Presence<br />
<br />
===Sharing===<br />
<br />
If the activity was not yet shared but the user clicked the Share button, sharing is initiated by calling ShareActivity():<br />
<br />
activity = PS.ShareActivity(activity_id, bundle_id, name, properties)<br />
<br />
The bundle id is used for the icon and to launch the same activity when someone joins it. The name will be shown in the mesh view and should generally be the same as the title of the datastore object (see above). The properties argument is not used currently (but see [http://dev.laptop.org/ticket/4660 #4660]) and should be an empty dictionary.<br />
<br />
Note that sharing will be private (invitation-only) by default, that is, the icon will not be visible in the mesh. To share publicly, set the 'private' property to False:<br />
<br />
activity.SetProperties({'private': False})<br />
<br />
===Inviting===<br />
Another way of starting a shared session is by inviting a buddy from the mesh view. The Invite() method of the activity is called (see [[#D-Bus_Methods|above]]). Then the activity should be shared privately, and the buddy must be invited using the key that was passed to Invite():<br />
<br />
buddy = PS.GetBuddyByPublicKey(buddy_key)<br />
activity.Invite(buddy, message)<br />
<br />
===Joining===<br />
<br />
When launching, the PS must be consulted to see if this instance was shared by someone else, meaning it was launched by the user is trying to join it:<br />
<br />
activity = PS.GetActivityById(activity_id)<br />
<br />
This yields an error if this instance (identified by its activity id) was not shared, in which case a regular non-shared startup should be performed. Otherwise, the activity object held by the PS is returned, and this activity instance needs to join:<br />
<br />
activity.Join()<br />
<br />
It should continue by establishing a communication channel with the originating instance (see below)<br />
<br />
=== Leaving ===<br />
<br />
To leave a shared activity (e.g. because it is closing) you need to inform the PS:<br />
<br />
activity.Leave()<br />
<br />
==Buddies==<br />
<br />
The activity object created by either sharing the current activity or joining an existing activity is used to establish means of communication between these instances. The joined XOs can be accessed to start communicating with them:<br />
<br />
buddies = activity.GetJoinedBuddies()<br />
<br />
To get notified of buddies joining or leaving, listen to these signals:<br />
<br />
BuddyJoined (o: buddy)<br />
BuddyLeft (o: buddy)<br />
<br />
==Tubes==<br />
"Tubes" are the transport medium of choice on the XO, provided by the [http://telepathy.freedesktop.org/ Telepathy] framework. There are "D-Bus Tubes" allowing remote D-Bus calls, and "Stream Tubes" which forward sockets (similar to ssh forwarding). Tubes are collected in a "Channel", and channels are associated with a "room", one per shared activity instance.<br />
<br />
First, get the Telepathy connection from the shared activity object:<br />
<br />
(tp_service, tp_connection, channels) = activity.GetChannels()<br />
<br />
where tp_service and tp_connection is the D-Bus service name and object path for the Telepathy [http://telepathy.freedesktop.org/spec-0.16.html#org.freedesktop.Telepathy.Connection connection]. An array of [http://telepathy.freedesktop.org/spec-0.16.html#org.freedesktop.Telepathy.Channel channels] pre-created in the activity room is returned, too. There is at least a text chat and a tubes channel at<br />
<br />
Service: (tp_service)<br />
Object path: (channels[i])<br />
Interface: 'org.freedesktop.Telepathy.Channel'<br />
<br />
Use GetChannelType() to tell the channels apart:<br />
<br />
if (channel.GetChannelType() == 'org.freedesktop.Telepathy.Channel.Type.Tubes')<br />
...<br />
elseif (channel.GetChannelType() == 'org.freedesktop.Telepathy.Channel.Type.Text')<br />
...<br />
<br />
===Stream Tubes===<br />
A stream tube forwards a socket to a remote host (similar to ssh forwarding, but not encrypted). The activity can set up a listening socket by whatever means and then create a tube to forward it:<br />
<br />
tube_id = channel.OfferStreamTube( # sa{sv}uvuv -> u<br />
'service-name', # well-known TCP service name conforming to RFC 2782, see [http://www.dns-sd.org/ServiceTypes.html]<br />
{}, # dict of params<br />
2, # socket type (0=Unix, 2=IPv4, 3=IPv6)<br />
('127.0.0.1', 12345), # socket address (depends on type)<br />
0, 0) # access control & params<br />
<br />
You can forward Unix, IPv4, or IPv6 sockets. Access control is restricted to localhost by default.<br />
<br />
New tubes are announced by a signal:<br />
<br />
NewTube ( u: tube_id, u: initiator, u: type, s: service, a{sv}: parameters, u: state )<br />
<br />
and you can list all available tubes:<br />
<br />
tubes = channel.ListTubes() # -> a(uuusa{sv}u), same as in NewTube signal<br />
<br />
To connect to a tube:<br />
<br />
address = channel.AcceptStreamTube( # uuuv -> v<br />
tube_id,<br />
2, # socket type to return (0=Unix, 2=IPv4, 3=IPv6)<br />
0, 0) # access control & params<br />
<br />
which returns an address struct of the specified type, e.g., ('127.0.0.1', 45679). Then just connect a socket to that address and you are ready to share data.<br />
<br />
===D-Bus Tubes===<br />
''to be continued. In the mean time, see [[olpc:Presence Service D-Bus API]] and [http://telepathy.freedesktop.org/spec-0.16.html#org.freedesktop.Telepathy.Channel.Type.Tubes Tubes]''<br />
<br />
[[Category:API]]<br />
[[Category:Collaboration]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild/translations&diff=45120Development Team/Jhbuild/translations2010-02-21T22:22:34Z<p>Anal bleaching: moved Development Team/Jhbuild/translations to Anal bleaching 15/Jhbuild/translations:&#32;Anal bleaching</p>
<hr />
<div>[[Development Team/Jhbuild|english]] | [[Development Team/Jhbuild/lang-ja|日本語]] | [[Development Team/Jhbuild/lang-es|spanish]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild/lang-ja&diff=45118Development Team/Jhbuild/lang-ja2010-02-21T22:22:34Z<p>Anal bleaching: moved Development Team/Jhbuild/lang-ja to Anal bleaching 15/Jhbuild/lang-ja:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ProposedMoveFromOLPC}}</noinclude><br />
<br />
{{Translation<br />
|version = 62639<br />
|lang = ja<br />
|source = Development Team/Jhbuild}}<br />
<br />
{{Ongoing Translation}}<br />
<br />
[[Sugar]] のインストールで最も簡易な方法のひとつは [[Development Team/Jhbuild]] の使用です。<br />
<br />
Sugar-jhbuild は Sugar の依存関係ならびに Sugar 自体をソースレポジトリから自動的にダウンロードするので、古くなったソースパッケージに頼らないで済みます。次の一般的な方法に従って, sugar-jhbuild で Sugar が構築できます。<br />
<br />
'''注意:''' いくつかの Linux ディストリビューションは特有な操作が必要です。これらの操作に関しては[[:Category:Installing Sugar|installing Sugar]] を参照して下さい。<br />
<br />
==sugar-jhbuild をチェックアウトする==<br />
<br />
任意のディレクトリで、次のコマンドを実行する。<br />
<br />
git-clone git://dev.laptop.org/sugar-jhbuild<br />
<br />
== Sugar のベースシステムと依存をビルドする==<br />
<br />
ディレクトリを変えてビルドを始める。<br />
<br />
cd sugar-jhbuild<br />
git pull<br />
./sugar-jhbuild update<br />
./sugar-jhbuild build<br />
<br />
べースパッケージには、ソースからビルドする代わりにお使いの GNU ディストリビューションに含まれるバイナリパッケージか使用可能かもしれません。各ディストリビューションに関しては、[[:Category:Installing Sugar|Installing]] や [[:Category:Linux distributions|Linux]] のカテゴリを参照してください。<br />
== Sugar を実行する==<br />
<br />
次のコマンドで Sugar エミュレータが起動します。<br />
<br />
./sugar-jhbuild run<br />
<br />
エミュレータを終了するには Alt-Q を押します。<br />
<br />
== 複数のインスタンスの実行==<br />
Sugar の複数のインスタンスを実行するには、次の方法があります。<br />
<br />
SUGAR_PROFILE=2 ./sugar-jhbuild run<br />
<br />
== Run an individual activity ==<br />
<br />
Within the sugar shell (./sugar-jhbuild shell), this command launches an individual activity for testing (from the [http://mailman.laptop.org/pipermail/sugar/2007-March/001720.html mailing list]):<br />
<br />
sugar-activity [bundle name]<br />
<br />
== Configure the mode and resolution of Sugar ==<br />
<br />
You can make Sugar run in a window as well as specify a resolution. Within the sugar-jhbuild directory, backup, then edit the python program file '''sugar-emulator''':<br />
<br />
cp build/bin/sugar-emulator build/bin/sugar-emulator.backup<br />
nano build/bin/sugar-emulator<br />
<br />
Find this piece of code:<br />
<br />
<PRE><br />
cmd = [ 'Xephyr' ]<br />
cmd.append(':%d' % display)<br />
cmd.append('-ac')<br />
<br />
if gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900:<br />
cmd.append('-fullscreen')<br />
else:<br />
cmd.append('-screen')<br />
cmd.append('%dx%d' % (1200, 900))<br />
</PRE> <br />
<br />
Comment out the '''if''' and '''else''' instructions, and specify the screen resolution and mode you want (it's important to delete 4 spaces behind the "cmd.append" lines):<br />
<br />
<PRE><br />
cmd = [ 'Xephyr' ]<br />
cmd.append(':%d' % display)<br />
cmd.append('-ac')<br />
<br />
# if gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900:<br />
# cmd.append('-fullscreen')<br />
# else:<br />
cmd.append('-screen')<br />
cmd.append('%dx%d' % (800, 600))<br />
</PRE><br />
<br />
Sugar will now run on a 800x600 window.<br />
<br />
== Other commands ==<br />
<br />
JHBuild has several other commands that can be useful for development. You can get an overview with:<br />
<br />
./sugar-jhbuild --help-commands<br />
<br />
A useful sequence of commands for building Sugar, from the [http://mailman.laptop.org/pipermail/sugar/2007-February/001352.html Sugar mailing list]:<br />
<br />
./sugar-jhbuild update<br />
./sugar-jhbuild build<br />
./sugar-jhbuild run<br />
<br />
== Customize ==<br />
<br />
To customize the build create a configuration file, named .olpc.jhbuildrc, in your home directory.<br />
<br />
=== Write access to the repositories ===<br />
<br />
If you have write access to the repositories you can add:<br />
repos['gnome.org'] = ':ext:marco@cvs.gnome.org:/cvs/gnome'<br />
repos['mozilla.org'] = ':ext:marco%gnome.org@cvs.mozilla.org:/cvsroot'<br />
repos['dev.laptop.org'] = 'git+ssh://marco@dev.laptop.org/git/'<br />
repos['dev.laptop.org/projects'] = 'git+ssh://marco@dev.laptop.org/git/projects/'<br />
<br />
==External links==<br />
<br />
* [http://library.gnome.org/devel/jhbuild/unstable/ JHBuild manual]<br />
* [http://www.redhatmagazine.com/2007/02/23/building-the-xo-introducing-sugar/ Red Hat Magazine article: Introducing Sugar]<br />
* [http://learn.laptop.org/tinderbox/ Tinderbox] (see the "Sugar JHBuild" tab). The old [http://dev.laptop.org/~cjb/sugar-tinder/ sugar-jhbuild tinderbox].<br />
<br />
[[Category:Installing Sugar]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild/lang-es&diff=45116Development Team/Jhbuild/lang-es2010-02-21T22:22:33Z<p>Anal bleaching: moved Development Team/Jhbuild/lang-es to Anal bleaching 15/Jhbuild/lang-es:&#32;Anal bleaching</p>
<hr />
<div>{{Translation<br />
| lang = es<br />
| source = Development Team/Jhbuild<br />
| version = 27498}}<br />
<br />
{{ Translated text | Sugar-jhbuild will automatically download the latest of Sugar's dependencies as well as Sugar itself directly from their source repositories, rather than relying on source packages that may have become stale. Below are generic instructions on how to use jhbuild to get up and running with Sugar. | display = None }}<br />
<br />
Sugar-jhbuild descargará automáticamente las últimas versiones de las dependencias de Sugar, como también a Sugar mismo directamente de los repositorios fuente, en vez de confiar en paquetes de código que pueden haber haber quedado estancados. Debajo se encuentran instrucciones genéricas de como usar jhbuild y hacerlo funcionar con Sugar. <br />
<br />
{{anchor|Compatible platforms}}<br />
== Plataformas compatibles ==<br />
<br />
{{ Translated text | Jhbuild is quite demanding with regard to the packages and setup for the host Linux distribution. As a result there are only a few Linux distributions which are known to work with it.<br />
<br />
See the distribution specific instructions for information about whether your distribution is currently supported. Other distros which have a recent-enough release (e.g. including the latest stable GNOME release) can be supported if someone is willing to maintain the dependencies for that distro release (in config/sysdeps). | display = None }}<br />
<br />
Jhbuild demanda bastante en cuanto a los paquetes y la configuración de la distribución de Linux anfitrión. Como resultado solo hay unas pocas distribuciones de Linux que se conoce que funcionan con él. <br />
<br />
Vea las instrucciones específicas a su distribución para saber si actualmente está soportada. Otras distros que tienen una emisión suficientemente reciente (por ej. que incluyan la última versión estable de GNOME) pueden ser soportadas si alguien está dispuesto a mantener las dependencias para esa emisión de la distro (en config/sysdeps).<br />
<br />
{{anchor|Check distro-specific instructions}}<br />
== Consulte las instrucciones específicas a una distro ==<br />
<br />
{{ Translated text | Many distributions have some quirks that need to be catered for and there are different package managing tools in use, so please check the page for your distribution before proceeding: | display = None}}<br />
<br />
Muchas distribuciones tienen algunas mañas que necesitan atención, y hay distintas herramientas de manejo de paquetes en uso, así que por favor consulte la página para su distribución antes de proceder:<br />
<br />
* [[../Debian|Debian]]<br />
* [[../Fedora|Fedora]]<br />
* [[../Ubuntu|Ubuntu]]<br />
* [[../Mandriva|Mandriva]]<br />
<br />
{{anchor|Check out sugar-jhbuild}}<br />
== Checkout de sugar-jhbuild ==<br />
<br />
{{ Translated text| <br />
In a suitable directory, execute<br />
<br />
git clone git://git.sugarlabs.org/sugar-jhbuild/mainline.git sugar-jhbuild | display = None }}<br />
<br />
En un directorio adecuado ejecute:<br />
<br />
git clone git://git.sugarlabs.org/sugar-jhbuild/mainline.git sugar-jhbuild<br />
<br />
{{anchor|Build sugar base system and its dependencies}}<br />
== Construír Sugar y sus dependencias ==<br />
<br />
{{ Translated text | Change directory and start the build.<br />
<br />
cd sugar-jhbuild<br />
./sugar-jhbuild update<br />
./sugar-jhbuild depscheck<br />
./sugar-jhbuild build | display = None }}<br />
<br />
Cambie de directorio y comience la construcción:<br />
<br />
cd sugar-jhbuild<br />
./sugar-jhbuild update<br />
./sugar-jhbuild depscheck<br />
./sugar-jhbuild build<br />
<br />
{{anchor|Dealing with dependencies}}<br />
=== Ocupándose de las dependencias === <br />
<br />
{{ Translated text | sugar-jhbuild depscheck will print a list of required packages. They are part of the distribution you're using and should be installed using your favourite package manager (e.g. aptitude/synaptic for Debian, yum for Fedora). If you notice that there's a package missing from the depscheck output (i.e. it's required for Sugar to work properly and not installed, but depscheck does not mention it), please file a bug report (login required first, but currently no automatic redirection to login page) against the sugar-jhbuild Component in the Sugar Labs bug tracker. | display = None }}<br />
<br />
sugar-jhbuild depscheck imprimirá una lista de paquetes requeridos. Son parte de la distribución que está usando y deben ser instalados usando su manejador de paquetes favorito (por ej. aptitude/synaptic para Debian, yum para Fedora). Si nota que hay un paquete faltante en la salida de depscheck (es decir, un paquete requerido para el correcto funcionamiento de Sugar, que no está instalado, pero depscheck no lo menciona), por favor [http://dev.sugarlabs.org/newticket?component=sugar-jhbuild&version=Git%20as%20of%20bugdate&type=defect&summary=Need%20package%20%3cinsert%20name%20of%20package%3e%20on%20%3cinsert%20name%20of%20distribution%3e&description=%3cplease%20explain%20why%20you%20think%20the%20package%20is%20required%20%28e.g.%20error%20message%29%3e entre un reporte de bug] (se requiere que se identifique primero, pero actualmente no se redirige después de entrar al sistema) contra el componente sugar-jhbuild en el [http://dev.sugarlabs.org/ Sistema de seguimiento de bug de Sugar Labs]<br />
<br />
{{ Translated text | Some tips:<br />
* hulahop stopped building because I had installed a more recent version of xulrunner on my machine. The workaround was to <code>rm -rf ~/sugar-jhbuild/source/hulahop</code> and then run update and build again. | display = None }}<br />
<br />
Algunos consejos:<br />
* hulahop había dejado de construirse porque había instalado una versión más reciente de xulrunner en mi máquina. La solución fue <code>rm -rf ~/sugar-jhbuild/source/hulahop</code> y luego correr update y build nuevemante.<br />
<br />
{{anchor|Run Sugar}}<br />
== Correr Sugar ==<br />
<br />
{{ Translated text | This command launches the Sugar emulator:<br />
<br />
./sugar-jhbuild run<br />
<br />
To exit the emulator, press Alt-Q. | display = None }}<br />
<br />
Este comando lanza el emulador de Sugar<br />
<br />
./sugar-jhbuild run<br />
<br />
Para salir del emulador, presione Alt-Q.<br />
<br />
{{anchor|Running multiple instances}}<br />
== Corriendo múltiples instancias ==<br />
<br />
{{Translated text | To run multiple instances of sugar you can start it in the following way:<br />
<br />
SUGAR_PROFILE=2 ./sugar-jhbuild run<br />
<br />
This will create a new profile in ~/.sugar/, i.e. ~/.sugar/2/. You will find logs and configuration for this instance here. The default profile is ~/.sugar/default/ | display = None }}<br />
<br />
Para correr múltiples instancias de Sugar, puede lanzarlo de la manera siguiente:<br />
<br />
SUGAR_PROFILE=2 ./sugar-jhbuild run<br />
<br />
Esto creará un nuevo perfil en ~/.sugar/, o sea ~/.sugar/2/. Encontrará registros y configuración para esta instancia aquí. El perfil por omisión es ~/.sugar/default/<br />
<br />
{{anchor|Run an individual activity}}<br />
== Correr una actividad individual ==<br />
<br />
{{Translated text | <br />
Within sugar, e.g. in Terminal, this command launches an individual activity for testing:<br />
<br />
sugar-launch [bundle name]<br />
<br />
You will see debug output appearing in Terminal. | display = None }}<br />
<br />
Dentro de Sugar, por ej, en Terminal, este comando lanza una actividad individual para probarla:<br />
<br />
sugar-launch [nombre del bundle]<br />
<br />
Verá salida de depuración apareciendo en Terminal.<br />
<br />
{{anchor|Configure the mode and resolution of Sugar}}<br />
== Configurar el modo y la resolución de Sugar ==<br />
<br />
{{Translated text | You can make Sugar run in a window as well as specify a resolution. Within the sugar-jhbuild/install/share/sugar/shell directory, backup, then edit the python program file '''emulator.py''':<br />
<br />
cd sugar-jhbuild<br />
cp install/bin/sugar-emulator install/bin/sugar-emulator.backup<br />
nano install/bin/sugar-emulator<br />
<br />
Find this piece of code: | display = None }}<br />
<br />
Puede hacer que Sugar corra en una ventana como también especificar una resolución. Dentro del directorio sugar-jhbuild/install/share/sugar/shell, respalde y luego edite el programa python '''emulator.py''':<br />
<br />
cd sugar-jhbuild<br />
cp install/bin/sugar-emulator install/bin/sugar-emulator.backup<br />
nano install/bin/sugar-emulato<br />
<br />
Busque este pedazo de código: <br />
<br />
<PRE><br />
cmd = [ 'Xephyr' ]<br />
cmd.append(':%d' % display)<br />
cmd.append('-ac')<br />
<br />
if gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900:<br />
cmd.append('-fullscreen')<br />
else:<br />
cmd.append('-screen')<br />
cmd.append('%dx%d' % (1200, 900))<br />
</PRE> <br />
<br />
{{Translated text | <br />
Comment out the '''if''' and '''else''' instructions, and specify the screen resolution and mode you want (it's important to delete 4 spaces before the "cmd.append" lines): | display = None}}<br />
<br />
Comente las instrucciones '''if''' y '''else''', y especifique la resolución de la pantalla y el modo que desee (es ipmortante borrar 4 espacios delante de las líneas "cmd.append"):<br />
<br />
<PRE><br />
cmd = [ 'Xephyr' ]<br />
cmd.append(':%d' % display)<br />
cmd.append('-ac')<br />
<br />
# if gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900:<br />
# cmd.append('-fullscreen')<br />
# else:<br />
cmd.append('-screen')<br />
cmd.append('%dx%d' % (800, 600))<br />
</PRE><br />
<br />
{{Translated text | Sugar will now run on a 800x600 window. This file may be replaced next time you update sugar-jhbuild, and you'll have to do this again. Also note that 800x600 is not an optimal resolution for the window, because the activity circle will be vertically off center. 1024x768 is a more useable resolution.<br />
| display = None }}<br />
<br />
Sugar ahora correrá en una ventana de 800x600. Este archivo puede ser reemplazado la próxima vez que actualize sugar-jhbuild, y deberá hacer esto nuevamente. También note que 800x600 no es una resolución óptima para la ventana, porque el círculo de actividades quedará descentrado verticalmente. 1024x768 es una resolución más usable.<br />
<br />
{{anchor|Other commands}}<br />
== Otras órdenes ==<br />
<br />
{{Translated text | <br />
JHBuild has several other commands that can be useful for development. You can get an overview with:<br />
<br />
./sugar-jhbuild --help-commands<br />
<br />
A useful sequence of commands for building Sugar, from the [http://mailman.laptop.org/pipermail/sugar/2007-February/001352.html Sugar mailing list]: (Note that build will update first anyway, so run update separately if you want to see what changed more easily.)<br />
<br />
./sugar-jhbuild update<br />
./sugar-jhbuild build<br />
./sugar-jhbuild run | display = None}}<br />
<br />
JHBuild tiene varias órdenes más que pueden ser útiles para el desarrollo. Puede obtener una descripción general con:<br />
<br />
./sugar-jhbuild --help-commands<br />
<br />
Una secuencia de comandos útil para construir Sugar, de la [http://mailman.laptop.org/pipermail/sugar/2007-February/001352.html Lista de distribución de correos de Sugar]: (Note que '''build''' corre '''update''' de todas maneras, así que corra '''update''' separadamente si quiere ver que cambió más fácilmente.)<br />
<br />
./sugar-jhbuild update<br />
./sugar-jhbuild build<br />
./sugar-jhbuild run<br />
<br />
{{anchor|If build breaks after an update}}<br />
== Si la construcción se rompe luego de un update ==<br />
<br />
{{Translated text | <br />
The packages in sugar-jhbuild are the latest development versions, so you not only get the latest features, but also the latest breakages. The dependencies may change often, too, so be sure to run<br />
./sugar-jhbuild depscheck<br />
regularly and install the missing packages.<br />
<br />
If your problem persists for more than a day (and even though you installed all missing packages), please [http://dev.sugarlabs.org/newticket?component=sugar-jhbuild&version=Git%20as%20of%20bugdate&type=defect&summary=%3cPlease%20enter%20short%20summary%20of%20your%20problem%20here%3e&description=%3cplease%20copy%20exact%20error%20message%20and%20additional%20information%20here%3e file a bug report]. | display = None }}<br />
<br />
Los paquetes en sugar-jhbuild son las últimas versiones de desarrollo, así que no solamente obtiene las últimas prestaciones, si no que también los últimos errores. También, las dependencias pueden cambiar a menudo, así que asegúrese de correr<br />
./sugar-jhbuild depscheck<br />
regularmente y de instalar los paquetes faltantes. <br />
<br />
{{anchor|From within Sugar}}<br />
== Desde dentro de Sugar ==<br />
<br />
{{Translated text | Once you have Sugar running, here are some useful commands:<br />
*'''Alt+Shift+F''' makes the frame appear and disappear<br />
*'''Ctrl-Q''' quits an activity<br />
*'''Alt+Shift+Q''' quits Sugar<br />
*'''Alt+Shift+O''' opens the search<br />
*'''Alt+Shift+R''' rotates the screen | display = None }}<br />
<br />
una vez que tenga Sugar corriendo, aquí hay algunas órdenes útiles:<br />
*'''Alt+Shift+F''' hace aparecer y desaparecer al marco<br />
*'''Ctrl-Q''' sale de una actividad<br />
*'''Alt+Shift+Q''' sale de Sugar<br />
*'''Alt+Shift+O''' abre la búsqueda<br />
*'''Alt+Shift+R''' rota la pantalla<br />
<br />
{{anchor|Customize}}<br />
== Personalizar ==<br />
<br />
{{Translated text |To customize the build create a configuration file, named ''.sugar.jhbuildrc'', in your home directory. | display = None }}<br />
Para personalizar la construcción, cree un archivo de configuración, llamado ''.sugar.jhbuildrc'', en su directorio home. <br />
<br />
{{anchor|Write access to the repositories}}<br />
=== Acceso de escritura a los repositorios ===<br />
<br />
{{Translated text | <br />
If you have write access to the repositories you can add this (if your login name happens to be marco): | display = None }}<br />
<br />
Si tiene acceso de escritura a los repositorios puede agregar esto (si su nombre de usuario fuera marco):<br />
repos['gnome.org'] = ':ext:marco@cvs.gnome.org:/cvs/gnome'<br />
repos['mozilla.org'] = ':ext:marco%gnome.org@cvs.mozilla.org:/cvsroot'<br />
repos['dev.laptop.org'] = 'git+ssh://marco@dev.laptop.org/git/'<br />
repos['dev.laptop.org/projects'] = 'git+ssh://marco@dev.laptop.org/git/projects/'<br />
<br />
{{anchor|Useful Internal Links}}<br />
== Enlaces internos útiles == <br />
{{Translated text | * [[Development Team/Understanding the Code|Understanding Sugar Code]]<br />
* [[Taxonomy]] -- explains the components of Sugar (Glucose, Fructose, Sugar, Starches)<br />
* [[Sugar Instructions]] -- how to actually use Sugar once you have it running | display = None }}<br />
<br />
* [[Development Team/Understanding the Code/lang-es|Entendiendo el código de Sugar]]<br />
* [[Taxonomy/lang-es|Taxonomía]] -- explica los componentes de Sugar (Glucosa, Fructosa, Azúcar (Sugar), Almidones)<br />
* [[Sugar Instructions/lang-es|Instrucciones de Sugar]] -- cómo usar Sugar una vez que está corriendo<br />
<br />
{{anchor|External links}}<br />
== Enlaces externos ==<br />
<br />
{{Translated text | * [http://library.gnome.org/devel/jhbuild/unstable/ JHBuild manual]<br />
* [http://www.redhatmagazine.com/2007/02/23/building-the-xo-introducing-sugar/ Red Hat Magazine article: Introducing Sugar]<br />
* [http://learn.laptop.org/tinderbox/ Tinderbox] (see the "Sugar JHBuild" tab). The old [http://dev.laptop.org/~cjb/sugar-tinder/ sugar-jhbuild tinderbox]. | display = None }}<br />
<br />
<br />
* [http://library.gnome.org/devel/jhbuild/unstable/ Manual de JHBuild]<br />
* [http://www.redhatmagazine.com/2007/02/23/building-the-xo-introducing-sugar/ Artículo de Red Hat Magazine: Presentando Sugar]<br />
* [http://learn.laptop.org/tinderbox/ Tinderbox (Polvorín)] (ver la pestaña "Sugar JHBuild"). El viejo [http://dev.laptop.org/~cjb/sugar-tinder/ sugar-jhbuild tinderbox].<br />
<br />
[[Category:Installing Sugar]]<br />
[[Category:Jhbuild]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild/Ubuntu&diff=45114Development Team/Jhbuild/Ubuntu2010-02-21T22:22:33Z<p>Anal bleaching: moved Development Team/Jhbuild/Ubuntu to Anal bleaching 15/Jhbuild/Ubuntu:&#32;Anal bleaching</p>
<hr />
<div>== Supported versions ==<br />
<br />
Currently Intrepid (8.10), Jaunty (9.04) and Karmic (9.10) are supported.<br />
<br />
== Prerequisites ==<br />
<br />
In order to install sugar-jhbuild, you need git-core and svn.<br />
<br />
== Installing dependencies ==<br />
<br />
After installing and updating sugar-jhbuild according to the [[../|common instructions]], you can use this invocation to install all dependencies automatically:<br />
<br />
./sugar-jhbuild depscheck -s | sudo xargs aptitude -y install<br />
<br />
== Fixing RPATH (8.10 / 9.04) ==<br />
<br />
To work around a bug in the Gnome Python bindings shipped by Intrepid (8.10) and Jaunty (9.04), you need to issue the following commands after installing all dependencies:<br />
<br />
sudo aptitude install chrpath<br />
find /usr/lib/python-support/python-gnome2/python2.5/gtk-2.0 \<br />
/usr/lib/python-support/python-gconf/python2.5/gtk-2.0 \<br />
-name "*.so" | sudo xargs chrpath -d<br />
<br />
== Significant bugs ==<br />
<br />
Jaunty (9.04) and Karmic (9.10) have [http://dev.sugarlabs.org/ticket/310 a broken D-Bus security configuration] that prevents sugar-emulator from working (because Xephyr cannot work).<br />
On all versions [http://dev.sugarlabs.org/ticket/342 sugar-emulator doesn't work properly if the X server uses evdev as keyboard driver] (because of a Xephyr bug).<br />
<br />
== Potential pitfalls ==<br />
<br />
* gtk-recordmydesktop may prevent sugar-emulator from working properly<br />
* You may have some issues with penguintv, just interrupt the pull with a CTRL+C, open a shell, repeat the command manually, and accept the certificate permanently.</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild/OS_X/translations&diff=45112Development Team/Jhbuild/OS X/translations2010-02-21T22:22:33Z<p>Anal bleaching: moved Development Team/Jhbuild/OS X/translations to Anal bleaching 15/Jhbuild/OS X/translations:&#32;Anal bleaching</p>
<hr />
<div>[[Sugar on MacOS X|English]] | [[Sugar on MacOS X/lang-ja|日本語]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild/Fedora&diff=45108Development Team/Jhbuild/Fedora2010-02-21T22:22:32Z<p>Anal bleaching: moved Development Team/Jhbuild/Fedora to Anal bleaching 15/Jhbuild/Fedora:&#32;Anal bleaching</p>
<hr />
<div>==Supported versions==<br />
Currently Fedora 10 and Fedora 11 should both work. Fedora 10 will be phased out soon.<br />
<br />
To determine which version you are using, just run the following (you may need to install it first, see below for instructions):<br />
lsb_release -ir<br />
<br />
==Requirements==<br />
<br />
A full build using sugar-jhbuild will require about 3 Gig of disk space.<br />
<br />
==Prerequisites==<br />
<br />
yum install redhat-lsb<br />
<br />
Other than that and the packages mentioned by <code>./sugar-jhbuild depscheck</code> (please see the non-distro specific instructions) nothing else should be required.<br />
If you notice that any package is required, but not mentioned by depscheck, please [http://dev.sugarlabs.org/newticket?component=sugar-jhbuild&version=Git%20as%20of%20bugdate&type=defect&summary=Need%20package%20%3cinsert%20name%20of%20package%3e%20on%20%3cinsert%20name%20of%20distribution%3e&description=%3cplease%20explain%20why%20you%20think%20the%20package%20is%20required%20%28e.g.%20error%20message%29%3e file a bug report] (login required first, but currently no automatic redirection to login page) against the sugar-jhbuild Component on the [http://dev.sugarlabs.org/ Sugar Labs bug tracker].</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild/Debian&diff=45106Development Team/Jhbuild/Debian2010-02-21T22:22:32Z<p>Anal bleaching: moved Development Team/Jhbuild/Debian to Anal bleaching 15/Jhbuild/Debian:&#32;Anal bleaching</p>
<hr />
<div>== Supported versions ==<br />
Currently squeeze (testing) and sid (unstable) are supported.<br />
<br />
== Prerequisites ==<br />
In order to install sugar-jhbuild, you need to install git-core, lsb-release, python and subversion:<br />
aptitude install git-core lsb-release python subversion<br />
<br />
== Installing dependencies ==<br />
After installing and updating sugar-jhbuild according to the [[../|common instructions]], you can use this invocation to install all dependencies automatically:<br />
<br />
./sugar-jhbuild depscheck -s | sudo xargs aptitude -y install<br />
<br />
== Fixing RPATH ==<br />
To work around a bug in the Gnome Python bindings, you need to issue the following commands after installing all dependencies:<br />
<br />
sudo aptitude install chrpath<br />
find /usr/lib/pyshared/python2.*/gtk-2.0 -name "*.so" | sudo xargs chrpath -d</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild&diff=45104Development Team/Jhbuild2010-02-21T22:22:31Z<p>Anal bleaching: moved Development Team/Jhbuild to Anal bleaching 15/Jhbuild:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{Translations}}{{GoogleTrans-en}}{{TOCright}}</noinclude><br />
<br />
Sugar-jhbuild will automatically download the latest of Sugar's dependencies as well as Sugar itself directly from their source repositories, rather than relying on source packages that may have become stale.<br />
It can also run a Sugar session in a window on your desktop using the [[wikipedia:Xephyr | Xephyr]] nested X window server.<br />
Below are generic instructions on how to use jhbuild to get up and running with Sugar.<br />
<br />
==Compatible platforms==<br />
<br />
Jhbuild is quite demanding with regard to the packages and setup for the host Linux distribution. As a result there are only a few Linux distributions which are known to work with it.<br />
<br />
See the distribution-specific instructions for information about whether your distribution is currently supported. Other distros which have a recent-enough release (e.g. including the latest stable GNOME release) can be supported if someone is willing to maintain the dependencies for that distro release (in config/sysdeps).<br />
<br />
==Check distro-specific instructions==<br />
<br />
Many distributions have some quirks that need to be catered for and there are different package managing tools in use, so please check the page for your distribution before proceeding:<br />
<br />
* [[/Debian | Debian]]<br />
* [[/Fedora | Fedora]] (some [http://www.youtube.com/profile?user=pleabargain&view=videos&query=jhbuild videos of the Fedora jhbuild install process]). <br />
* [[/Ubuntu | Ubuntu]]<br />
* [[/Mandriva | Mandriva]]<br />
<br />
Distro packaging guidelines vary, so please don't worry if jhbuild requires twice/half the packages in one distro that it did an another.<br />
<br />
==Some general advice==<br />
<br />
Note: Like most other Unix applications, sugar-jhbuild should never be run as root. It may easily screw up your whole system and/or break in unexpected ways if you do. If you get any permissions error, there's something wrong with your installation that should be fixed.<br />
<br />
If you're stuck or if you get strange errors, feel free to ask for help on the [[Sugar_Labs/Contacts#irc.freenode.net_channels|#sugar IRC channel]] or the [[Sugar_Labs/Contacts#Developer_Lists|sugar-devel mailing list]]. Don't waste too much time chasing strange problems: usually it's caused by some basic, easy to fix problem. You might also want to check the [http://dev.sugarlabs.org/query?status=accepted&status=assigned&status=new&status=reopened&component=sugar-jhbuild bug tracker] to see if it's a known issue.<br />
<br />
<br />
==Prerequisites==<br />
; python<br />
: The sugar-jhbuild command is a Python script, so you need the Python interpreter.<br />
; git<br />
: To get the source code of sugar-jhbuild itself and many other Sugar packages you need the <code>git</code> command-line tool from the distributed version control system of the same name. In many distributions the minimal package you need to install is "git-core".<br />
; svn<br />
: A few packages (as of January 2010, only squeak and part of etoys) do not use git, and you need the <code>svn</code> command-line tool from the Subversion version control system to get their source code.<br />
<br />
These should be enough to run sugar-jhbuild itself on a typical Linux installation. Running <code>sugar-jhbuild depscheck</code> (see below) will probably list dozens of additional required packages.<br />
<br />
==Check out sugar-jhbuild==<br />
<br />
In a suitable directory (i.e. usually your user's home directory i.e. /home/yourusername/~), execute<br />
git clone git://git.sugarlabs.org/sugar-jhbuild/mainline.git sugar-jhbuild<br />
<br />
::Make sure you are in the _user's_ home directory<br />
:: video http://www.youtube.com/watch?v=Tdr1bs4rQ_s<br />
<br />
You'll know if it worked if you get something like this:<br />
<pre><br />
localhost ~]$ git clone git://git.sugarlabs.org/sugar-jhbuild/mainline.git sugar-jhbuild<br />
Initialized empty Git repository in /home/denny/sugar-jhbuild/.git/<br />
remote: Counting objects: 4688, done.<br />
remote: Compressing objects: 100% (1998/1998), done.<br />
remote: Total 4688 (delta 2759), reused 4488 (delta 2638)<br />
Receiving objects: 100% (4688/4688), 1.86 MiB | 197 KiB/s, done.<br />
Resolving deltas: 100% (2759/2759), done.<br />
</pre><br />
<br />
==Build sugar base system and its dependencies==<br />
<br />
Go into the directory you created and start the build. It takes about 30 minutes on a 1.6ghz machine with a wireless G connection.<br />
<br />
cd sugar-jhbuild<br />
./sugar-jhbuild update<br />
./sugar-jhbuild depscheck<br />
./sugar-jhbuild build<br />
::[http://www.youtube.com/results?search_query=pleabargain+jhbuild&search_type=&aq=f Here are videos of the process].<br />
<br />
And now run it.<br />
./sugar-jhbuild run sugar-emulator<br />
<br />
If it doesn't run or you have other problems read on.<br />
<br />
=== Dealing with dependencies ===<br />
<br />
''sugar-jhbuild depscheck'' will print a list of required packages. They are part of the distribution you're using and should be installed using your favourite package manager (e.g. aptitude/synaptic for Debian, yum for Fedora).<br />
<br />
If you notice that there's a package missing from the <code>./sugar-jhbuild depscheck </code> output (i.e. it's required for Sugar to work properly and not installed, but depscheck does not mention it), please [http://dev.sugarlabs.org/newticket?component=sugar-jhbuild&version=Git%20as%20of%20bugdate&type=defect&summary=Need%20package%20%3cinsert%20name%20of%20package%3e%20on%20%3cinsert%20name%20of%20distribution%3e&description=%3cplease%20explain%20why%20you%20think%20the%20package%20is%20required%20%28e.g.%20error%20message%29%3e file a bug report] (login required first, but currently no automatic redirection to login page) against the sugar-jhbuild Component in the [http://dev.sugarlabs.org/ Sugar Labs bug tracker].<br />
<br />
===Some tips===<br />
<br />
A useful sequence of commands for building Sugar, from the [http://mailman.laptop.org/pipermail/sugar/2007-February/001352.html Sugar mailing list]: (Note that build without -n will update first anyway, so run update separately if you want to see what changed more easily.)<br />
<br />
./sugar-jhbuild update<br />
./sugar-jhbuild build -n -a --clean<br />
./sugar-jhbuild run sugar-emulator<br />
<br />
The use of -a and --clean flags are needed when a file is removed so that autogen.sh is run. '''Note:''' Some packages, e.g., squeak and etoys, don't have a ''make clean''. Just ignore the error.<br />
<br />
=== known issue with hulahop ===<br />
<br />
* hulahop stopped building because I had installed a more recent version of xulrunner on my machine. The workaround was to <code>rm -rf ~/sugar-jhbuild/source/hulahop</code> and then run update and build again.<br />
*25 Aug 9: hulahop doesnt' build correctly. http://lists.sugarlabs.org/archive/sugar-devel/2009-August/018540.html The 'fix' is running autoconf.<br />
::Question. How do you run autoconf to fix this problem?<br />
::: when you get asked because of the error, choose the configure stage, or add "-a" to the build / buildone commands<br />
<br />
=== If build breaks after an update ===<br />
<br />
The packages in sugar-jhbuild are the latest development versions, so you not only get the latest features, but also the latest breakages. The dependencies may change often, too, so be sure to run<br />
./sugar-jhbuild depscheck<br />
regularly and install the missing packages.<br />
<br />
If your problem persists for more than a day (and even though you installed all missing packages), please [http://dev.sugarlabs.org/newticket?component=sugar-jhbuild&version=Git%20as%20of%20bugdate&type=defect&summary=%3cPlease%20enter%20short%20summary%20of%20your%20problem%20here%3e&description=%3cplease%20copy%20exact%20error%20message%20and%20additional%20information%20here%3e file a bug report].<br />
<br />
== Run Sugar ==<br />
<br />
This command launches the Sugar emulator in a nested X session:<br />
<br />
./sugar-jhbuild run sugar-emulator<br />
<br />
To exit the emulator, press Alt-Q.<br />
<br />
To set debug variables, modify <code>~/.sugar/debug</code> (this file will be created on first run of Sugar).<br />
<br />
Note that due to a [http://dev.sugarlabs.org/ticket/342 bug in Xephyr] your keyboard might not work as expected. A partial workaround is to run <code>setxkbmap &lt;keymap name&gt;</code> by adding this command line to <code>~/.sugar/debug</code>. Most "regular" keys should work fine after that, some "special keys" (e.g. cursor up/down) might still refuse to operate as intended.<br />
<br />
The "keymap name" usually is a two letter country code, e.g. "de" for german or "fr" for french.<br />
<br />
== Running multiple instances ==<br />
To run an additional instance of sugar, you can start the second instance in the following way:<br />
<br />
SUGAR_PROFILE=2 ./sugar-jhbuild run sugar-emulator<br />
<br />
This will create a new profile in ~/.sugar/, i.e. ~/.sugar/2/. You will find logs and configuration for this instance here. The default profile is ~/.sugar/default/<br />
<br />
== Run an individual activity ==<br />
<br />
Within sugar, e.g. in Terminal, this command launches an individual activity for testing:<br />
<br />
sugar-launch ''bundle_name''<br />
<br />
You will see debug output appearing in Terminal.<br />
<br />
== Configure the mode and resolution of Sugar ==<br />
<br />
You can make Sugar run fullscreen or specify a size (in pixels):<br />
<br />
./sugar-jhbuild run sugar-emulator --fullscreen<br />
./sugar-jhbuild run sugar-emulator --dimensions 1200x900<br />
<br />
The default size of 800x600 is currently the minimum that should work without issues. I.e. activities should be tested to work in this mode (and in others as well).<br />
<br />
== Other commands ==<br />
<br />
JHBuild has several other commands that can be useful for development. You can get an overview with:<br />
<br />
./sugar-jhbuild --help-commands<br />
<br />
== From within Sugar ==<br />
Once you have Sugar running, here are some useful commands:<br />
*'''Alt+Shift+F''' makes the frame appear and disappear<br />
*'''Ctrl-Q''' quits an activity<br />
*'''Alt+Shift+Q''' quits Sugar<br />
*'''Alt+Shift+O''' opens the search<br />
*'''Alt+Shift+R''' rotates the screen<br />
<br />
== Customize ==<br />
<br />
To customize the build you can modify the configuration file named <code>sugar.jhbuildrc</code> or create a copy of it and pass <code>--file /path/to/your/new/config</code> to sugar-jhbuild.<br />
<br />
=== Write access to the repositories ===<br />
<br />
If you have write access to the repositories you can add this (if your login name happens to be marco):<br />
repos['gnome.org'] = ':ext:marco@cvs.gnome.org:/cvs/gnome'<br />
repos['mozilla.org'] = ':ext:marco%gnome.org@cvs.mozilla.org:/cvsroot'<br />
repos['dev.laptop.org'] = 'git+ssh://marco@dev.laptop.org/git/'<br />
repos['dev.laptop.org/projects'] = 'git+ssh://marco@dev.laptop.org/git/projects/'<br />
<br />
==Useful Internal Links==<br />
* [[Development Team/Understanding the Code|Understanding Sugar Code]]<br />
* [[Taxonomy]] -- explains the components of Sugar (Glucose, Fructose, Sugar, Starches)<br />
* [[Sugar Instructions]] -- how to actually use Sugar once you have it running[http://en.flossmanuals.net/sugar]<br />
<br />
==External links==<br />
<br />
* [http://library.gnome.org/devel/jhbuild/unstable/ JHBuild manual]<br />
* [http://www.redhatmagazine.com/2007/02/23/building-the-xo-introducing-sugar/ Red Hat Magazine article: Introducing Sugar]<br />
* [http://learn.laptop.org/tinderbox/ Tinderbox] (see the "Sugar JHBuild" tab). The old [http://dev.laptop.org/~cjb/sugar-tinder/ sugar-jhbuild tinderbox].<br />
<br />
[[Category:Installing Sugar]]<br />
[[Category:Jhbuild]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Issues&diff=45102Development Team/Issues2010-02-21T22:22:31Z<p>Anal bleaching: moved Development Team/Issues to Anal bleaching 15/Issues:&#32;Anal bleaching</p>
<hr />
<div><noinclude></noinclude><br />
'''Note''': The [[olpc:Developers manual]] provides more comprehensive and up-to-date introductions to the issues described here.<br />
<br />
Here are a few of the most obvious development issues/questions/comments:<br />
* '''What language should be used to develop applications?'''<br />
:You can use C, C++, [[olpc:Python]], JavaScript, [[olpc:Flash]], or [[olpc:Smalltalk]]. Other languages are possible of course, but will require that any libraries and/or interpreter be included as part of your activity. Notably absent are Java, C#, Perl, Tcl, and Ruby. GTK is the primary GUI widget library in use on the laptop; it supports the theme.<br />
* '''What is the API?'''<br />
:The [[olpc:Low-level Activity API]] page attempts to cover this, but is frequently incomplete. Documentation help would be very useful.<br />
* '''Will the laptops and/or an emulator be available to developers interested in direct contibutions to OLPC?'''<br />
:'''Yes!!!''' See the [[olpc:Developers Program]] for details. Also read the [[olpc:Development Systems]] page for ideas of using other minimal systems to do your application testing.<br />
*'''What if I don't qualify for one of the development systems?'''<br />
:You can still build something as long as you are careful to isolate the GUI portions of your code and not do anything overly complex. Or, if you use [[olpc:PyGTK]], then you come very close to the real development environment in [[olpc:Sugar]]. If you will be programming in a compiled language or in assembly, make sure that you are aware (and respect) the [[olpc:Geode instruction set]]. It is about the same as the original Athlon instruction set. See the Geode data book linked in the [[olpc:Geode instruction set]] page.<br />
* '''Where can I find the sources?'''<br />
:If you are a skilled *IX user then the [[olpc:Sugar]] page should help. But most developers who will be working on OLPC will be using Python to develop educational applications.<br />
* '''Memory footprint of applications'''<br />
:It must be as small as you can make it. These are memory-constrained devices.<br />
::For Python development, don't import modules at the top. Instead, import them just where they are needed in the code and then unload the module. This will require some work with ihooks and imp to support unload() but for now, just use a dummy function in your code. If possible, implement optional components as a separate Python module and delete the .pyc file when a user chooses not to use that option. Remove objects when they are no longer needed using del.<br />
* '''Memory leaks'''<br />
: You need to measure the memory usage repeatedly while thoroughly exercising your program. Sample the memory size every minute and graph it. If there is a slowly increasing size, then you have a leak. A normal program will increase rapidly at the beginning and then remain perfectly flat or shrink and grow repeatedly. Remember that every leak, however small, counts!<br />
* '''Required flash footprint of the application'''<br />
:if it is big, there may not be space. However, [[olpc:JFFS2]] does data compression, so don't presume that the size of a file in a conventional file system corresponds to the actual amount of flash used. As a *rule of thumb*, expect a factor of 2 compression for text and typical data, expect no compression on already compressed content, but take actual measurements to understand what your actual flash usage will be.<br />
: If you test on a Unix system you can install [[olpc:JFFS2]] and test directly. Since [[olpc:JFFS2]] does block compression you can affect the amount of compression by reorganizing your code.<br />
* '''Your application should be engineered and packaged to make it easy to strip unneeded functionality.'''<br />
:For example, GAIM supports just about every IM protocol in existance, but we can only anticipate 3 being common. So the fact it uses plugins that we can choose to not package saves greatly on its footprint, whereas if everything were built in, both the memory and flash footprint would be much larger.<br />
* '''Ability to operate applications when running in black/white mode'''<br />
:Judicious use of contrasting colors will mean that your program automatically works in B&W mode.<br />
* '''The effective resolution''' in color mode is somewhat lower in color than grayscale: some applications will find this hard, even though the frame buffer will always be in high resolution. If your application does not honor the font resolution change-on-the-fly mechanisms, or hardwires fonts by pixel size, your application won't be able to switch modes gracefully and may require manual intervention to be usable. Please fix.<br />
* '''The hardware''' does support alpha blending (Porter-Duff compositing), so we expect to eventually support this well<br />
* '''No 3D hardware:''' we don't have shaded triangles or a geometry pipe; so any OpenGL used will be based on Mesa, and without hardware, will be very slow<br />
:Ideally, don't use OpenGL at all except for specialty applications which absolutely must and which can accept the slow rendering. For instance a design program could use OpenGL to provide a rendered view because most of the time the user will not be using OpenGL.<br />
:Remember that the [[olpc:Geode]] supports MMX and Enhanced 3DNow!, which can speed up some applications, such as 3D rendering, and should be appropriately used.<br />
* '''Choice of libraries and required applications:''' you may not have the dependencies you might need, or those dependencies might come at too high a memory cost. We will inventory what you can "count on" in the basic system as it becomes clear.<br />
: In the meantime, make sure you know your application's dependencies. For compiled code, run it with "ldd" to get a list of all the libraries being loaded. For Python code, run it with "python -v" to get a list of all modules imported.<br />
* '''Graphical activity that does not turn itself off quickly;''' we want to save power<br />
:This means avoid cute animated GIFs that do not add value to the educational experience. (That is one example of not letting the CPU be idle) Your users may have to exert themselves physically to provide the electricity to run their OLPC. Respect them and their effort.<br />
* '''CPU performance:''' the system is slow relative to current desktops, though fast relative to desktops at the turn of the millenium.<br />
* '''Power consumption:''' if your application is CPU bound for long periods (not letting the CPU be idle), or routinely requires itself to be run (can't be suspended well), this isn't good<br />
* While we are a great fan of '''interpreted languages''', key CPU bound kernels had better be in compiled code, or your performance and power consumption will be poor.<br />
:Python is an interpreted language, similar in operation to perl. It lacks a JIT, though it does use an intermediate code form rather than strictly interpreting the raw text as a shell script or makefile would. It is thus inherently slower than C# or Java, but not as bad as it could be. A more serious problem for Python is often memory consumption.<br />
* Remember that your '''slow code''' has a direct impact on power consumption (far more than on a desktop), and its usability. Applications that run slowly or don't let the processor idle will be very, very unpopular on battery powered machines that may be powered by children having to run a generator.<br />
* '''The file system''' is a flash file system, so its write performance is slow, while random access is actually very good. The performance is glacial if the file system is low on space and has to continually erase freed blocks before writing ([[olpc:JFFS2]] attempts to do this in the background, but if it can't....). Programs that continually write to the file system without need are anti-social; wear leveling helps flash longevity, but it certainly doesn't help, and burns power. Writable file mappings (via the mmap system call) may not be supported.<br />
* '''Looping waiting for events (or other busy-waiting) eats power;''' don't do it. Poll and select with timeouts are your friends. Don't gratuitously wake up at frequent intervals just to test if something has happened; design your hardware and software to be completely idle between events they have to respond to.<br />
:Right now this is a nice summary page. But items like this deserve some more explanation along with some sample code that uses select/poll/inotify/signals instead of busy-waiting.<br />
* '''Keep in mind that the OLPC wireless network is peer-to-peer.''' Design applications accordingly. We can presume at least some technology like mDNS (e.g. Avahi) is available for discovery.<br />
* '''Applications should be localizable.'''<br />
: If you will be using Python, start by reading these 31 slides about how to use Unicode in Python: http://downloads.egenix.com/python/LSM2005-Developing-Unicode-aware-applications-in-Python.pdf<br />
: Next, read the [[olpc:Gettext|page on gettext]] and it's [http://www.gnu.org/software/gettext documentation]. Become familiar with GTK+ and Pango features for I18N and L10N.<br />
: You can create a fake translation with lengthy text containing non-ASCII characters. It is common to do this with Cyrillic (Russian) and Greek characters that are shaped similar to English characters. Does the text get rendered? Are any graphical elements too small? East-Asian characters may need extra height, along with some of the double-accented characters used in Eastern Europe. Right-to-left scripts like Arabic should also be considered.<br />
* '''Read and comprehend Dave Jones' paper on "Why Userspace Sucks";''' a summary and pointers to the paper can be found at [http://lwn.net/Articles/192214/ LWN]. Note that most of those problems are now being worked on; please do not make similar mistakes!<br />
* '''What kind of applications are needed?'''<br />
:have a look at [[olpc:Sample Applications]] for some ideas. Or, release an early prototype of your own app as a sample application to help others learn the ropes of developping for this innovative, i.e. non-standard laptop.</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Getting_Involved&diff=45100Development Team/Getting Involved2010-02-21T22:22:30Z<p>Anal bleaching: moved Development Team/Getting Involved to Anal bleaching 15/Getting Involved:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{GoogleTrans-en}}{{TeamHeader|Development Team|roadmap_link={{Upcoming Stable Release}}/Roadmap}}</noinclude>{{TOCright}}<br />
==Summer of Code==<br />
See the [[Development Team/Project Ideas]] page, [[Summer of Code]], & [[Sugar Summer Program]].<br />
<br />
==Help Plan the Next Release==<br />
See [[{{Upcoming Stable Release}}/Roadmap]], [[Features/Policy]], and [[Development Team/Meetings]].<br />
<br />
== Contribute code ==<br />
<br />
Please have a look at the [http://dev.sugarlabs.org/query?status=accepted&status=assigned&status=new&status=reopened&component=!sugar&component=!journal&component=!sugar-datastore&order=priority&col=id&col=summary&col=status&col=owner&col=type&col=milestone&keywords=~sugar-love sugar-love tickets]. These are smaller patches that are a good way to learn sugar code and contribute something to the project. You can ask for help on the mailing lists, on the #sugar IRC channel, or directly on the ticket; when you are ready, submit your patch for [[Development Team/Code Review|code review]].<br />
<br />
== Write your own activity ==<br />
<br />
Found a tutorial here:<br />
*Part 1: http://www.redhatmagazine.com/2007/04/05/building-the-xo-porting-a-pygtk-game-to-sugar-part-one/<br />
*Part 2: http://www.redhatmagazine.com/2007/04/26/building-the-xo-porting-a-pygtk-game-to-sugar-part-two/<br />
<br />
<br />
[[Category:Development Team]]<br />
[[Category:Participate]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/FAQ&diff=45098Development Team/FAQ2010-02-21T22:22:30Z<p>Anal bleaching: moved Development Team/FAQ to Anal bleaching 15/FAQ:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{GoogleTrans-en}}{{TeamHeader|Development Team|roadmap_link={{Upcoming Stable Release}}/Roadmap}}<br />
<br />
:''This page contains many frequently-asked questions, along with some answers.<br>We encourage you to answer questions and keep these pages organized.''</noinclude><br />
<br />
: To ask the [[Development Team]] a new question, please '''[[Talk:Development Team/FAQ|post questions here]]'''. <br />
<br />
=== Are there regular developer meetings on IRC? ===<br />
: Yes there are, every Thursday at 17:00 UTC on irc://irc.freenode.net#sugar-meeting. (Please see [[Development Team/Meetings]] for more information.)<br />
=== Where can I find out more about being a Sugar Activity developer? ===<br />
: Visit our [[Activity Team]] page.<br />
<br />
===Where is the acitivities directory in sugar?===<br />
: It's in $HOME<br />
<br />
=== Where can I find out more about the Sugar GIT and the Sugar release process? ===<br />
: See [[Activity Team/Git FAQ|our GIT FAQ]] and [[Development Team/Release|our Release team pages]].<br />
<br />
<br />
<noinclude><br />
[[Category:Development Team]]<br />
</noinclude><br />
<br />
[[Category:FAQ]]</div>Anal bleachinghttps://wiki.sugarlabs.org/index.php?title=Development_Team/Environment&diff=45096Development Team/Environment2010-02-21T22:22:30Z<p>Anal bleaching: moved Development Team/Environment to Anal bleaching 15/Environment:&#32;Anal bleaching</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude><br />
== Developer Environment ==<br />
<br />
'''Analyze Activity'''<br><br />
An activity that get useful resources information as: memory usage by activities running, X Server mapped pixmaps, Network interfaces traffic, presence service, etc<br><br />
URL: [http://dev.laptop.org/git?p=projects/analyze-activity http://dev.laptop.org/git?p=projects/analyze-activity]<br />
<br />
'''Terminal Activity'''<br><br />
A Terminal-Shell activity, where the developer or kid can use the Linux shell<br><br />
URL: [http://dev.laptop.org/git?p=projects/terminal-activity http://dev.laptop.org/git?p=projects/terminal-activity]<br />
<br />
'''Log Activity'''<br><br />
Allow to see the activities log files and system logs as /var/log/messages. It will allow to send reports about a given activity or general system to a central server as reports.<br><br />
URL: [http://dev.laptop.org/git?p=projects/log-activity http://dev.laptop.org/git?p=projects/log-activity]<br />
<br />
[[Category:Development Team]]</div>Anal bleaching