Line 1: |
Line 1: |
− | This is 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. It also includes dumping ground for less-explicitly-explained crazy ideas at the end. | + | <noinclude></noinclude> |
| + | ==Introduction== |
| + | 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]]'''. |
| | | |
− | '''Priorities''': see the [http://lists.sugarlabs.org/archive/iaep/2009-March/004592.html ongoing discussion of priorities] on our mailing list. You might find new project ideas in that thread, too.
| + | At the bottom of this page is a section for less-explicitly-explained & wild ideas. |
| | | |
− | * There is a similar project ideas page on the [http://wiki.laptop.org/go/Summer_of_Code/Ideas OLPC wiki] (and a related [http://wiki.laptop.org/go/Category:GSoC_proposals category]). OLPC-specific projects, including hardware and scoholserver-related projects, should go there. Feel free to add below relevant projects from that list - perhaps 80% of these could be appropriate Sugarlabs applications.
| + | ==[[Summer of Code]]== |
| | | |
− | '''See something that interests you?''' 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 [[DevelopmentTeam#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/TriageGuide|triage]], or actually helping fix some small [http://tinyurl.com/ctfkjl bug]. | + | '''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. |
| | | |
− | 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 shows the most feasibility, clarity, and creativity in their design ideas. Persistence should pay off.
| + | * 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. |
| | | |
− | '''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 hopefully 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. | + | ===See something that interests you? (steps to apply)=== |
| + | 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). |
| + | |
| + | 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/Communication channels#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. |
| + | |
| + | '''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/Communication channels#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. |
| | | |
| <div style="float:right;"> | | <div style="float:right;"> |
Line 15: |
Line 22: |
| </div> | | </div> |
| | | |
− | == Template for well-explained ideas == | + | ===Template for well-explained ideas=== |
| | | |
| 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). | | 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). |
Line 30: |
Line 37: |
| : * Skills needed: Experience with WikiCode and copy-paste. | | : * Skills needed: Experience with WikiCode and copy-paste. |
| | | |
| + | ==Project Ideas== |
| + | === Core Software === |
| + | ==== Versioned Datastore ==== |
| + | |
| + | * 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). |
| + | |
| + | 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. |
| + | |
| + | 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. |
| + | |
| + | *Priority for Sugar: High |
| + | |
| + | *Coolness factor:++ |
| + | |
| + | *Difficulty: Hard |
| + | |
| + | *Skills needed: primarily Python UI (pygtk); also FUSE/file systems (this part is mostly done); and Packaging and building. |
| + | |
| + | ====Implement existing UI design proposal==== |
| + | 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. |
| + | |
| + | *Priority for Sugar: Medium |
| + | |
| + | *Difficulty: easy-medium |
| + | |
| + | *Skills needed: Python, PyGTK |
| | | |
− | === Core Software ===
| |
| ==== Registry for people ==== | | ==== Registry for people ==== |
− | Extend the interaction model to include real people beyond the user–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 fun, instance-of-person creator and embellisher, by capturing an image or video of the person, and saving it in a new registry. | + | Extend the interaction model to include real people beyond the user–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. |
| * Integration of a person object into the Sugar architecture | | * Integration of a person object into the Sugar architecture |
| * Extension of the User/Group model to realistically capture the actual Person entity | | * Extension of the User/Group model to realistically capture the actual Person entity |
Line 43: |
Line 75: |
| * Skills needed: Data modeling, Core system programming | | * Skills needed: Data modeling, Core system programming |
| * Potential mentor: [[User:FGrose]] for data modeling, collaborators needed for Core systems and Internet architectures | | * Potential mentor: [[User:FGrose]] for data modeling, collaborators needed for Core systems and Internet architectures |
| + | |
| + | ==== Toolkit for dissimilar activity collaboration ==== |
| + | 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. |
| + | |
| + | The toolkit would encapsulate the low-level interface to allow activity developers to easily deploy distributed task collaboration. |
| + | |
| + | Extra extra credit for extending the model to general web browsers and web-enabled cell phones. Sugar web collaboration—a '''Honeycomb'''. |
| + | |
| + | * Value to Sugar: High |
| + | * Difficulty: Hard |
| + | * Skills: low-level API mastery |
| + | * Potential mentors: |
| + | See this thread for a discussion of the need and some issues, http://www.mail-archive.com/sugar-devel@lists.sugarlabs.org/msg02870.html |
| | | |
| ==== Speech Synthesis for Sugar ==== | | ==== Speech Synthesis for Sugar ==== |
− | Integrate speech synthesis with all activities, not just [[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 [[Same Language Subtitling]] for literacy to the XO. | + | 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. |
| | | |
| Desirable Features for Sugar Speech Synthesis Plugin: | | Desirable Features for Sugar Speech Synthesis Plugin: |
Line 59: |
Line 104: |
| | | |
| *Skills needed: Experience with GTK, decent Python ability, ability to integrate with existing code. | | *Skills needed: Experience with GTK, decent Python ability, ability to integrate with existing code. |
| + | |
| + | *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]. |
| | | |
| ==== Print Support ==== | | ==== Print Support ==== |
Line 73: |
Line 120: |
| | | |
| *Skills needed: Python programming, API design, some communications | | *Skills needed: Python programming, API design, some communications |
| + | |
| + | :comments |
| + | |
| + | :Suggestion: See [http://wiki.laptop.org/go/Printing_Culture Printing_Culture]. Oops, note screen-grabbing already exists - |
| + | |
| + | ::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) |
| | | |
| ==== Sugar Toolbar submenu support ==== | | ==== Sugar Toolbar submenu support ==== |
| | | |
− | The Sugar Human Interface Guidelines have a toolbar design that includes submenus (See [[DesignTeam/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]]. | + | 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]]. |
| | | |
| *Priority for Sugar: Medium | | *Priority for Sugar: Medium |
Line 84: |
Line 137: |
| *Skills needed: intermediate GTK and python skillz | | *Skills needed: intermediate GTK and python skillz |
| | | |
− | ==== Versioned Datastore ==== | + | ==== Port of Sugar to Pyjamas-Desktop ==== |
| + | |
| + | 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. |
| | | |
− | * To add [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/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).
| + | 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 |
| | | |
− | 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 pruning 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.
| + | The work involves: |
| | | |
− | *Priority for Sugar: High | + | * 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.) |
| + | * the Llpamies GTK browser port, containing the reimplementation of gtk and gobject, needs to be extended and improved |
| + | * 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. |
| + | * 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. |
| | | |
− | *Difficulty: Hard
| |
| | | |
− | *Skills needed: FUSE/file systems; Python UI; Packaging and building. | + | * Priority for Sugar: TBD |
| + | * Difficulty (as a GSoC project): Advanced |
| + | * Skills needed: JSONRPC, Web Framework(s), PyGTK, PyGobject, Python, HTML, CSS, [http://pyjs.org Pyjamas]. |
| | | |
| === Toolkits / Frameworks for developers === | | === Toolkits / Frameworks for developers === |
| | | |
− | ==== AJAX Sugar ==== | + | ==== AJAX Sugar aka [[Karma]] ==== |
| | | |
− | * Integrate some style of AJAX applications (for instance, Titanium-made apps) into Sugar. JavaScript Python Communication through the following strategies: PyXPCom, hulahop, and xulrunner. see also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012829.html the mailing list discussion].
| + | 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. |
| | | |
− | * Ideally, develop a demo activity which could be used as a template for sugarizing AJAX activities. | + | 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. |
| + | |
| + | * 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]. |
| + | * This demo should have the following features: |
| + | ** Simple interactive animation and audio using html5 tags like <canvas> and <audio> |
| + | ** An assessment section that stores results of student's progress and gives them suggestions on improvement. Assessment info should be persistent. |
| + | ** Has embedded pdf for lesson plan that can be viewed w/in the activity |
| + | ** Integrates with datastore |
| + | ** Navigation and Help elements, ideally reusing widgets from popular javascript libraries like Jquery, Prototype, Mootools |
| + | ** Some element of collaboration using telepathy (This could be really hard, depending on the state of javascript bindings to dbus) |
| + | |
| + | There is some discussion of the prior work on this question at [[User:Wade/Web_Activity_Spec]]. |
| | | |
| *Priority for Sugar: Very High ("never bet against the browser") | | *Priority for Sugar: Very High ("never bet against the browser") |
| | | |
− | *Difficulty (as a GSoC project): hard | + | *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 |
| | | |
− | *Skills needed: Javascript/Python integration (PyXPCom, hulahop) | + | *Skills needed: Javascript/Python integration (PyXPCom, hulahop), CSS, knowlege of SQL |
| | | |
− | *potential mentor: Wade Brainerd (wadetb at gmail dot com) | + | *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 |
| | | |
| ==== SWF Sugar ==== | | ==== SWF Sugar ==== |
Line 129: |
Line 199: |
| * 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. | | * 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. |
| * Integrate Sugarbot and auto-testing facilities. | | * Integrate Sugarbot and auto-testing facilities. |
− | * Integrate a debugger, based on pdb or other. | + | * Integrate a debugger, based on pdb or other (see also [[Development Team/Debugging]]). |
| | | |
| *Priority for Sugar: Medium-High | | *Priority for Sugar: Medium-High |
Line 141: |
Line 211: |
| ==== "Translate Activity" activity ==== | | ==== "Translate Activity" activity ==== |
| | | |
− | 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.) | + | 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. |
| | | |
| *Priority for Sugar: Medium-High | | *Priority for Sugar: Medium-High |
Line 150: |
Line 220: |
| | | |
| *potential mentor: Sayamindu Dasgupta (sayamindu at gmail) | | *potential mentor: Sayamindu Dasgupta (sayamindu at gmail) |
| + | |
| + | ==== SugarGames Pygame wrapper ==== |
| + | 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. |
| + | |
| + | * Priority for Sugar: Medium-High (Activity development is limited between the graphics limitations of PyGTK and the UI limitations of Pygame) |
| + | * Difficulty (as a GSoC project): Medium-Advanced |
| + | * Skills needed: Requires a fair amount of knowledge of both Pygame and PyGTK. |
| + | * Potential Mentor: Nirav Patel (nrpatel at gmail, nrp on freenode) |
| + | |
| + | ==== Generic linux application wrapper ==== |
| + | 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. |
| + | |
| + | 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. |
| + | |
| + | * Priority for Sugar: High-Very High |
| + | * Difficulty (as a GSoC project): Advanced |
| + | * 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.). |
| | | |
| === Stand-alone activities === | | === Stand-alone activities === |
Line 165: |
Line 252: |
| | | |
| *Potential mentor: Sayamindu Dasgupta (sayamindu at gmail) (already has some code to start with) | | *Potential mentor: Sayamindu Dasgupta (sayamindu at gmail) (already has some code to start with) |
| + | |
| + | ==== [[Activities/Listen Spell|Listen Spell]] activity ==== |
| + | |
| + | 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 |
| + | |
| + | * 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) |
| + | * Multi player game over mesh network |
| + | * User Defined word list. (Adding support to add new words to dictionary) |
| + | * Test Mode: A teacher can feed the pre-defined word list on the network and activity is being used to conduct test/exam |
| + | * Speaking sentences to make student learn grammar (this as a higher level) |
| + | |
| + | *Priority for Sugar: Medium |
| + | |
| + | *Difficulty (as a GSoC project): Medium |
| + | |
| + | *Skills needed: Python, GTK, Understanding of sugar mesh network |
| + | *Potential mentor: [[Summer_of_Code/Mentors#Assim_Deodia | Assim Deodia]] (assim.deodia at gmail dot com) |
| | | |
| ==== KDEEdu ==== | | ==== KDEEdu ==== |
| | | |
− | Sugarize any [http://edu.kde.org/ KDEEdu] activity, especially the ones which have no corresponding Sugar activity. This probably means recoding the C to use GTK instead of QT and to use Sugar conventions. | + | 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. |
| | | |
| *Priority for Sugar: High | | *Priority for Sugar: High |
Line 216: |
Line 320: |
| | | |
| *Skills needed: Python, GTK. the Sugar collaboration framework | | *Skills needed: Python, GTK. the Sugar collaboration framework |
| + | |
| + | |
| + | ==== EduKT ==== |
| + | |
| + | Simple content - history creation tool that needs: |
| + | * Re-design drag and drop features |
| + | * Add audio support |
| + | * Simplify the interface for little people |
| + | * Better the saving projects process. |
| + | |
| + | A lot of new features that simplifies to any level the building of interactive contents... |
| + | |
| + | *Priority for Sugar: Medium |
| + | |
| + | *Difficulty (as a GSoC project): medium |
| + | |
| + | *Skills needed: Python, Glade, GTK. the Sugar collaboration framework |
| + | |
| + | ==== Port [http://www.lopart.org LopArt] to Sugar ==== |
| + | |
| + | <pre> |
| + | Subject: humbly introducing... LopArt: a Visual Arts Software that would fit perfectly with the XO |
| + | Date: Tue, 29 Jan 2008 12:39:34 -0500 |
| + | From: ariel savion-lemieux <ariel@loplop.com> |
| + | |
| + | Hello, |
| + | |
| + | We have recently made the purchase of an XO Laptop. We believe in the |
| + | project and would like to contribute to it in our own way. |
| + | |
| + | LopLop Inc. has worked in the software industry for more than a decade, and |
| + | has developed a couple of drawing applications geared toward children. |
| + | |
| + | LopArt is a visual arts software that emulates real drawing strokes and |
| + | styles (it beats TuxPaint out of the water J). Those who work with children |
| + | are seduced by the simplicity of LopArt, as well as by the originality and |
| + | creativity it allows. Whether it is used during free-time or for structured |
| + | learning activities and projects, LopArt is a highly stimulating learning |
| + | tool. It is present in more the 500 schools in Quebec alone. Examples of |
| + | LopArt artworks can be seen on the LopArt Virtual Museum it contains more |
| + | than 40,000 artworks (www.lopart.org). LopArt was developed for all |
| + | platforms, and is in open-source on Linux. |
| + | |
| + | For these reasons and plenty more, we would like a chance to present LopArt |
| + | to XO members, since we believe it would be a great fit in the XO software |
| + | family. |
| + | |
| + | If possible, please direct our request to the appropriate party. If you have |
| + | questions or comments, do not hesitate to contact us. |
| + | |
| + | |
| + | Regards, |
| + | |
| + | The LopLop Team |
| + | |
| + | ---------------------- |
| + | |
| + | Ariel Savion-Lemieux, LopLop |
| + | Project Manager / Chargé de projet |
| + | Telephone: 514.543.5849 |
| + | </pre> |
| + | |
| + | *Difficulty: easy |
| + | |
| + | ==== Bug report activity ==== |
| + | |
| + | [http://dev.sugarlabs.org/ticket/340 activity for bug reports] |
| + | |
| + | *Priority for Sugar: High |
| + | |
| + | *Difficulty: Easy |
| + | |
| + | *Skills needed: Python, GTK, maybe some simple web forms from both client and server side (ie, PHP or similar) |
| | | |
| ==== Etc., Etc. ==== | | ==== Etc., Etc. ==== |
Line 227: |
Line 404: |
| | | |
| == Brainstorm / unexplained ideas == | | == Brainstorm / unexplained ideas == |
| + | |
| + | ==== Visual geometric (e.g. linear [http://en.wikipedia.org/wiki/Bar_code bar], [http://en.wikipedia.org/wiki/QR_code QR](matrix)) code recognition ==== |
| + | 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.) |
| + | |
| + | A "walk-around" solution: [http://mnav.gub.uy/q.php XO QR Reader on-line (Spanish)] ZBar based in Ubuntu server. |
| | | |
| ==== Sugar adaption for the Nasa ==== | | ==== Sugar adaption for the Nasa ==== |
Line 237: |
Line 419: |
| ==== Homework turn-in ====<!-- keep that title if you move the entry, there are inbound links. --> | | ==== Homework turn-in ====<!-- keep that title if you move the entry, there are inbound links. --> |
| * "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. | | * "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. |
| + | |
| + | [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: |
| + | |
| + | [10:18] <homunq> 1. figure out a plan for including sugar metadata in the html download links from moodle |
| + | |
| + | [10:19] <homunq> 2. when downloading an assignment, put metadata of "send this back to adress xxx in server" |
| + | |
| + | [10:20] <homunq> 3. When saving new, worked-on versions of the assignment, mark them for upload to the server |
| + | |
| + | [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. |
| + | |
| + | [10:22] <homunq> any questions, happy to clarify. |
| | | |
| ==== Research projects: unpolished code ==== | | ==== Research projects: unpolished code ==== |
Line 273: |
Line 467: |
| * Skills needed: C# programming, Linux programming | | * Skills needed: C# programming, Linux programming |
| * Potential mentor: Lionel Laské and/or Torello Querci | | * Potential mentor: Lionel Laské and/or Torello Querci |
| + | |
| | | |
| === Activities === | | === Activities === |
− | * See also ideas at [[ActivityTeam/ProjectIdeas]]. | + | * See also ideas at [[Activity Team/Project Ideas]]. |
| * A better, more fun, Paint option for small children - One way - Use eToys - http://lists.laptop.org/pipermail/etoys/2008-November/002770.html | | * A better, more fun, Paint option for small children - One way - Use eToys - http://lists.laptop.org/pipermail/etoys/2008-November/002770.html |
| | | |
Line 303: |
Line 498: |
| * Experience: some Python and C if the UCB Logo approach is taken | | * Experience: some Python and C if the UCB Logo approach is taken |
| | | |
− | ==== FoodForce2 Activity ==== | + | ====twext==== |
− | | + | <font size="+1" color="black" >Twext es un idea para ayudarnos a aprender lenguajes.</font> |
− | * Integrate story board into the game. | + | <font size="-2" color="silver">twext is an idea to help us to learn languages</font> |
− | * Make an extensible API to enable educators to add their own storyboards. | + | <font size="+1" color="black" >El software Twexter ya tiene un demo que maneja</font> |
− | * Add Speech Support into the project. | + | <font size="-2" color="silver">twexter software now has ¡alpha! that works with</font> |
− | * Optimise the speed and efficiency of the game. | + | <font size="+1" color="black" >el UniCode para que twexteamos en muchas idiomas.</font> |
| + | <font size="-2" color="silver">global text so that we can twext in many languages</font> |
| + | * [http://olpcnews.com/content/localization/learning_language.html kids teach kids] |
| + | * <font size="+1">[http://test.twext.com alpha demo]</font> |
| + | * [http://moodle.org moodle me] |
| + | * <font size="+1">[http://more.read.fm/wiki_test mediawixi]</font> |
| + | * [http://twext.com twext] |
| + | * <font size="+1">[http://github.com/tudisco/twexter code]</font> |
| + | <font color="silver">this fixed font twext 'roughly' aligns when you CTL+ or CTL- to adjust font size :)</FONT> |
| | | |
− | Link : http://code.google.com/p/foodforce/
| |
| | | |
| + | [[Category:Idea]] |
| | | |
| == Other ideas for improving Sugar Activities == | | == Other ideas for improving Sugar Activities == |
| | | |
| === Broad project ideas === | | === Broad project ideas === |
− | *See [[MarketingTeam/Events/Sugarcamp_Boston_2008/Minutes#Items_from_the_roadmap_brainstorm|a list of project ideas]] from a brainstorming session at Sugar Camp. | + | *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. |
| | | |
| === Activities Site (addons) === | | === Activities Site (addons) === |
Line 340: |
Line 543: |
| | | |
| [[Category:Participate]] | | [[Category:Participate]] |
| + | [[Category:GSoC]] |
| + | [[Category:Idea]] |