usage of usb sticks on the laptops
Hi all, we've recently added support for usb sticks in the datastore and the journal activity and I'm a bit worried about the kids pulling out the stick before the data has been fully written into the stick. Perhaps we'll need to do the same as is done everywhere and notify when a device that needs to be safely unmounted is mounted, and complain to the user when the stick is removed unsafely. But I wanted to ask first to more knowledgeable people if there's any way to reduce this problem, for example by mounting the sticks with the mount option 'sync'. Perhaps in some cases (small drives) we can exchange the perf hit for a bit more of safety. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] TamTam for Trial-2
Hi, On Mon, 2007-07-02 at 11:10 -0400, Jean Piché wrote: The following features will depend on Mesh and Journal stability/ usability over the next few days: Network synchronisation for TamTamJam (many machines can improvise/ play together on a shared pulse) Some Journal functionality to save and load TamTam tunes Regarding the journal support, if you can write to and read from a file on the fs (from python), then adding journal support will be trivial. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: XO offline content management strategy / tools
On Tue, 2007-07-24 at 03:36 -0700, Luke Hutchison wrote: PS anyone know why xbook doesn't support djvu-libre, when evince does? A lot of public domain scanned books are available in deja vu format. Evince needs to be compiled with dejavu support. I think it's only that. ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: #2633 NORM Trial-3: TamTam needs R/W access to home directory, not included in Rainbow
On Wed, 2007-08-15 at 20:28 -0400, Owen Williams wrote: What's the best way to implement this change and maintain compatibility? If SUGAR_ACTIVITY_ROOT exists, use it, but if not, use HOME? Well, SUGAR_ACTIVITY_ROOT should always exist when your activity is ran inside Sugar, regardless of rainbow. If you want to maintain compatibility with older versions of Sugar, I think you could just make a dir like ~/.sugar/[SUGAR_PROFILE]/[my_activity_service_name] and save your data in there. Regards, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Power manager specification... (request for comments).
Hi, On Wed, 2007-08-15 at 16:01 -0400, Jim Gettys wrote: When we are suspended, and the battery wakes us up because it is low, then: For now, graceful shutdown after journal has been notified May do hibernation if enough flash is available. I guess what we want here is to notify to each activity that they should save their state to the datastore. Correct? How much time do we have until the system really shuts off? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: external optical drives not showing up in the Journal
Hi Christoph, On Tue, 2007-10-16 at 14:45 +0200, Christoph Derndorfer wrote: Hey everyone, I was experimenting with an external optical drive connected via USB today and while it I had no trouble accessing it via the shell (well, at least after a friend helped me out) I was a bit surprised that it didn't show up in the Journal. When I connect my USB thumbdrive it shows up all right, I can copy/paste, view its contents, unmount, etc. Now I was wondering whether there are any plans to also integrate external optical drives like that? I think it might make sense in some situations, especially where contents might already be available in the form of optical media. It should have worked, but I have only tested with usb sticks, usb camera and sd cards. Could you please enter a ticket in trac about this defect and attach the output of lshal while the optical drive is plugged in? Thanks a lot! Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Journal integration doubt
On Sun, 2007-10-21 at 16:40 +0530, Arjun Sarwal wrote: I am trying to associate a simple text file with the journal object. Within a logging session of Measure activity, many logs are created and the file that I am trying to associate with the journal object would basically contain the file paths of the logs made in that session so that when the session is resumed from the journal those log files can be opened and displayed on the oscilloscope like interface. The seperate log files get created and written properly. However, I am facing problems regarding the main file that I try and associate with the Journal object. This file does get created but disappears when I quit the activity. I have attached relevant code portions below. Please point me to some code that might be doing something similar to what I am trying to do or let me know where I am going wrong. I see you case similar to what Record does, here is the code: http://www.mediamods.com/public-svn/camera-activity/tags/33/ Most python activities just have to implement the read_file and write_file methods in their Activity subclass. Record is a bit more complicated, because apart from the session data, it also creates an object in the journal for every photograph and every recording, so they can be dragged around or opened with other activities. In your case, if you don't need to make each individual log accessible to other activities, you could just write a zip file containing all your logs in the write_file method. In this case, see this example activity from Marco: git-clone http://dev.laptop.org/~marco/edit-activity/ Hope this helps, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] providing files to activities
On Wed, 2007-11-07 at 11:59 -0500, Albert Cahalan wrote: I'm hearing that files will be provided to activites as hard links. This is not good. It prevents atomic update via rename. Far better is to provide directories, one per file, so that updates can be made atomic. While you can't hard link a directory, you can bind mount it. This is essentially the same, with the extra benefit of not wearing out nand storage. The command line version: mount --bind srcdir dstdir You can even make the mount read-only, avoiding any need to mess with file permissions to block writes. Just read in http://utcc.utoronto.ca/~cks/space/blog/linux/BindMounts that this is not possible. Is that guy wrong? Handling groups of files together as a single unit also becomes possible; it happens that I actually need this. (think OSX forks) How relate bind-mounts to files with resource forks? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] secure /tmp and /var/tmp
On Thu, 2007-11-08 at 18:11 +0100, Bert Freudenberg wrote: On Nov 8, 2007, at 18:09 , Marco Pesenti Gritti wrote: Though applications backwards compatibility just doesn't make sense in this context. We consciously broke it with the high level design, both of the user experience and of the security framework. That's not the point. The point is how hard we make it for people to port their apps to Sugar. And in my opinion we should not make it unnecessarily hard. I think that by not reusing names for things that are different and making ambiguous situations being resolved by explicit actions, is precisely making easier the porting of apps to Sugar. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: DBus signature for gtk objects
On Tue, 2007-11-27 at 19:29 -0200, Rafael Barbolo Lopes wrote: Is it possible to exchange gtk objects (a gtk.gdk.Pixmap) thought DBus tubes? If it is, can someone help me to find a way to do this? I think it's necessary to create a BusObject, but I can't get it working using this quick tutorial: http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html#claiming-a-bus-name You cannot just use a remote object as if it was a gtk.gdk.Pixmap, they are just two very different pieces of code. My guess is that for doing this, you would need to get the Pixmap from the X server to the client side (Pixbuf), serialize it somehow, and pass it as a dbus.ByteArray or as a path to a temp file in disk (if that's possible in Rainbow). The other side would need to create a Pixbuf from it and send it to the server as a Pixmap. This process is not only convoluted, but will be also quite slow. Perhaps there is some way in X for two processes to share pixmaps, but I don't know about that. Why you want to do that? If you explain it, perhaps we'll be able to give better advice. Regards, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Active activities as Widgets
On Fri, 2007-11-30 at 06:51 -0800, Gerard J. Cerchio wrote: I have been reviewing the code in the chat application and given the abilities of the dbus do not feel that text messages will add all that much complexity to the application. My original query was not as much having a chat window in my activity but more of a Delphi like component that I could drop into the buddy panel weld into my existing tubes and be done with chat. I think it wouldn't be hard to provide a set of gtk widgets that provide that functionality so activities can embed. I have now become anxious about whether the 19x19 go board is feasible on the OLPC. The game does have 9x9 and 13x13 modes of play. But the Go world considers these less than optimal. There will be quite some time before I get my G1G1's and only have sugar-jhbuild to run on. Is it possible for anyone reading this to download the basic frame and report if the 19x19 grid is usable? You may find it at https://dev.laptop.org/git?p=projects/PlayGo;a=tree https://dev.laptop.org/~tomeu/playgo.png Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: olpc-update fails: When I attempt to update to ANY joyride, I get an error that Could not download update contents file from: rsync://updates.laptop.org/build-joyride-1364/contents I don't think t
On Tue, 2007-12-04 at 08:29 -0500, ffm wrote: When I attempt to update to ANY joyride, I get an error that Could not download update contents file from: rsync://updates.laptop.org/build-joyride-1364/contents I don't think the requested build number exists. updates.laptop.org is not a valid domain Am I doing somthing wrong here? I get something different: -bash-3.2# olpc-update -frvv joyride-1363 Downloading contents of build joyride-1363. @ERROR: unknown module 'build-joyride-1363': [Errno 28] No space left on device rsync error: error starting client-server protocol (code 5) at main.c(1383) [receiver=2.6.9] Could not download update contents file from: rsync://updates.laptop.org/build-joyride-1363/contents I don't think the requested build number exists. ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: olpc-update fails: When I attempt to update to ANY joyride, I get an error that Could not download update contents file from: rsync://updates.laptop.org/build-joyride-1364/contents I don't think t
On Tue, 2007-12-04 at 08:43 -0500, ffm wrote: On 12/4/07, Tomeu Vizoso [EMAIL PROTECTED] wrote: -bash-3.2# olpc-update -frvv joyride-1363 Downloading contents of build joyride-1363. @ERROR: unknown module 'build-joyride-1363': [Errno 28] No space left on device rsync error: error starting client-server protocol (code 5) at main.c(1383) [receiver=2.6.9] Could not download update contents file from: rsync://updates.laptop.org/build-joyride-1363/contents I don't think the requested build number exists. Yes, that is what I get as well. I just trucnutated part of the above. However, when you 'ping updates.laptop.org', you get no replies, so the adress is not the right one. Pinging works for me, could be a problem in your local network. Try with: 'rsync rsync://updates.laptop.org'. That returns the available builds? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
boot failed after updating MP to joyride-357 (activation?)
Hi, After rebooting, a sad face appeared, 'BOOT FAILED' was written at the top left and under the laptop icon was a lock. Booting the alternate image (pressing the 'O' button while powering on) worked fine. What did I wrong? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New joyride build 1432
On Sun, 2007-12-16 at 15:01 +0100, Pascal Scheffers wrote: I get lots of: modprobe: FATAL Could not load /bib/modules/2.6.22-2007...5831/ modules.dep: No such file or directory After a forced shutdown, it seems to have caused jffs2 corruption as boot stops at Starting HAL daemon with JFFS2 notice (1340): wrong data CRC in data node at 0x21353cf9: read 0x6e..., calculated 0xcb It halts for about 5 minutes (while writing this email) and now it continues. I can get to a prompt Running depmod doesn't seem to help, so I'm just going to flash a previous version from USB. Booting with the previous image doesn't work for you? For that you have to press the circle button while powering on. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Update of activities over the web
Updating activities have been just implemented: http://dev.laptop.org/ticket/4906 Tomeu On Sat, 2007-12-22 at 18:59 -0800, Gerard J. Cerchio wrote: I have noticed that PlayGo is listed as an activity on the Austria download site. I think this great, but I have one problem: Updating the activity. The browser called open routine that is connected to the open button does not update the activity to the latest version that is downloaded. In fact, before the the update happens I must remove the activity from the start bar, delete the activity directory and reboot in order to get the new version of the activity to install. Is the open button going to be more robust? Should the activity check the git repository for updates and update itself? Is there a library for this? -Gerard ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: B2s
On Wed, 2008-01-02 at 16:48 -0300, Ricardo Carrano wrote: I am trying to put some B2-1s in good use. I read that 406.15 is the recommended os version but I can't find it anywhere. Any idea of where can I get it? Thanks a lot! In my opinion, the current software should be able to run on the B2-1s fine after some work. We just haven't had time yet to work seriously in reducing cpu and mem usage, but I don't see any reason why the latest features couldn't run on the old version of the xo. So that's another path you can follow ;) You can find older releases here: http://olpc.download.redhat.com/olpc/streams/development/ Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: B2s
Yes, what I meant was that if we got, for update.2, sugar's cpu and mem usage where we want it, perhaps that would be enough to run on b2s. Volunteers could then do images combining a base system from 406 and the latest sugar components. I don't see how the sugar team could divert efforts into supporting b2 machines, but certainly we have some goals in common. Tomeu On Wed, 2008-01-02 at 15:01 -0500, Walter Bender wrote: The problems go a bit beyond cpu and memory usage: some drivers have changed: the camera for one. Maybe after Update.1 is out the door... -walter On Jan 2, 2008 2:58 PM, Tomeu Vizoso [EMAIL PROTECTED] wrote: On Wed, 2008-01-02 at 16:48 -0300, Ricardo Carrano wrote: I am trying to put some B2-1s in good use. I read that 406.15 is the recommended os version but I can't find it anywhere. Any idea of where can I get it? Thanks a lot! In my opinion, the current software should be able to run on the B2-1s fine after some work. We just haven't had time yet to work seriously in reducing cpu and mem usage, but I don't see any reason why the latest features couldn't run on the old version of the xo. So that's another path you can follow ;) You can find older releases here: http://olpc.download.redhat.com/olpc/streams/development/ Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Can't run applications on Sugar
Hi, could you please reply with the file in /home/olpc/.sugar/default/datastore/store/index/config attached? Could be also helpful if you attached the sugar debugging logs by following the instructions in http://wiki.laptop.org/go/Attaching_Sugar_Logs_to_Tickets . Thanks, Tomeu On Fri, 2008-01-04 at 14:01 -0500, [EMAIL PROTECTED] wrote: Dear all, I typed killall -9 python on Terminal and after rebooting XO, couldn't see Journal bundles on Sugar home. Also, I couldn't run other applications there. Is there anyone who kindly let me know how to deal with this problem? Thanks a lot in advance, Sung-Hyuck ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New joyride build 1509
Hi, perhaps updates.l.o is without disk space again? -bash-3.2# olpc-update -rfvv joyride-1509 Downloading contents of build joyride-1509. @ERROR: unknown module 'build-joyride-1509': Command '['/usr/bin/fakeroot', '-i', '/home/upserv/builds/[EMAIL PROTECTED]/fakeroot.state', '-s', '/home/upserv/builds/[EMAIL PROTECTED]/fakeroot.state', '--', '/home/upserv/upgrade-server/extract-build.sh', '/home/upserv/builds/[EMAIL PROTECTED]/tmp', '/home/upserv/builds/[EMAIL PROTECTED]/root', '/home/upserv/builds/[EMAIL PROTECTED]/build.tar.bz2', '/home/upserv/builds/[EMAIL PROTECTED]/contents']' returned non-zero exit status 2 rsync error: error starting client-server protocol (code 5) at main.c(1383) [receiver=2.6.9] Could not download update contents file from: rsync://updates.laptop.org/build-joyride-1509/contents I don't think the requested build number exists. Tomeu On Sat, 2008-01-05 at 04:00 -0500, Build Announcer Script wrote: http://xs-dev.laptop.org/~cscott/olpc/streams/joyride/build1509/ -rainbow.noarch 0:0.7.5.11.20080104git6c25f7-1.olpc2 +rainbow.noarch 0:0.7.6-1.olpc2 -sugar-presence-service.noarch 0:0.65-0.30.20071127git5650e153bd +sugar-presence-service.noarch 0:0.65-0.31.20080103git76984f3f28 -- This email was automatically generated Aggregated logs at http://dev.laptop.org/~bert/joyride-pkgs.html ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] Does anyone know Game Baker?
On Mon, 2008-01-07 at 00:05 +0100, Christoph Derndorfer wrote: Hello all, I recently stumbled across the Game Baker project (http://code.google.com/p/game-baker/) and apparently this is a visual game editor for children, and it's written in Python... Does anyone here happen to have any experience with it? I was thinking that this might come in handy either directly on the XO (of course it would need to be sugarized first) or at least as a tool for XO-centric game development. Seems like the authors are already thinking about this: http://code.google.com/p/game-baker/issues/detail?id=8 Certainly seems like an awesome activity to have in the machines. Regards, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Update.1 680 does not work for me
Hi, known issue, hope next build will be sane: http://dev.laptop.org/ticket/5949 Thanks, Tomeu On Thu, 2008-01-10 at 14:35 -0500, Mikus Grinbergs wrote: Downloaded build 680 two hours ago. Installed it (together with ROM Q2D08) on my G1G1, going by the directions on the wiki Autoreinstallation page. On boot, the Home screen comes up __without__ the Journal. None of the Activities will start (presumably because they need the Journal). [Don't have wireless, but this OLPC system *does* show up on my house ethernet - so Networking at least has started.] mikus ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Update to Terminal Activity
Have you talked with Eben about it? When I'm not completely sure about how to add a new feature to the UI, I use to explain him the problem. He uses to come up with solutions that surprise me. And this in most of one occasion has saved me having to reimplement the feature later. ;) Tomeu On Sat, 2008-01-12 at 01:27 -0600, Phil Bordelon wrote: Michael Stone and I added a 'become root' button to the Terminal tonight. It is now part of Terminal-8.xo. This consists of two parts: * a new minimalist script, 'become_root', as part of olpc-utils; * the button in Terminal. The button is on the primary toolbar, with a new SVG created by Michael and tweaked a bit by me. All it does is paste 'become_root\n' at the terminal; the become_root script then runs 'su -' or 'sudo' as appropriate. This is meant to help mitigate a major upcoming support issue: that of the flag-day switch between 'su -' and 'sudo' as the primary method of running privileged commands. We, of course, welcome any feedback on this additional feature. Phil B. ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New update.1 build 681
Hi, we have been using 1.0.2 since a long time. Your patch was developed and tested with that version so there's not problem. What happened here is that by some mistake the 1.0.4 got into the update.1 branch and, when we tried to roll it back, the bindings stayed. This caused the link error mentioned in the ticket below: http://dev.laptop.org/ticket/5949 Tomeu On Sun, 2008-01-13 at 03:31 -0500, Ivan Krstić wrote: On Jan 12, 2008, at 1:45 PM, Build Announcer Script wrote: +xapian-bindings-python.i386 0:1.0.2-1 -xapian-bindings-python.i386 0:1.0.4-2.fc7 Someone needs to make sure my patch for #5494 is not affected by this, since I haven't investigated how the bindings are packaged. Tomeu? -- Ivan Krstić [EMAIL PROTECTED] | http://radian.org ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New update.1 build 682
Hi, On Tue, 2008-01-15 at 16:05 -0600, Dennis Gilmore wrote: -Journal-82.xo +Journal-83.xo Please see http://dev.laptop.org/ticket/5984 . Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New update.1 build 682
Can you give some more details? Particularly, see http://wiki.laptop.org/go/Attaching_Sugar_Logs_to_Tickets and also /var/log/messages would be of interest. Thanks, Tomeu On Wed, 2008-01-16 at 07:18 -0800, [EMAIL PROTECTED] wrote: I can't get the journal to see the SD card with this build. I can see it from the command line just fine. David Lang On Tue, 15 Jan 2008, Build Announcer Script wrote: Date: Tue, 15 Jan 2008 15:00:03 -0500 (EST) From: Build Announcer Script [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: New update.1 build 682 http://pilgrim.laptop.org/~pilgrim/olpc/streams/update.1/build682/ -Paint-15.xo +Paint-17.xo -Read-38.xo +Read-40.xo -Record-49.xo +Record-50.xo -Terminal-5.xo +Terminal-8.xo -Web-83.xo +Web-84.xo +bash.i386 0:3.2-19.fc7 -bash.i386 0:3.2-9.fc7 -gnash.i386 0:0.8.1-1.olpc2 +gnash.i386 0:0.8.1-2.olpc2.20071226cvs -gnash-plugin.i386 0:0.8.1-1.olpc2 +gnash-plugin.i386 0:0.8.1-2.olpc2.20071226cvs -hulahop.i386 0:0.4.0-1.olpc2 +hulahop.i386 0:0.4.0-2.olpc2 -initscripts.i386 0:8.54.1-15.olpc2 +initscripts.i386 0:8.54.1-17.olpc2 -libabiword.i386 0:2.6.0.svn20071106-1 +libabiword.i386 0:2.6.0.svn20071127-1 -libabiword-plugins.i386 0:2.6.0.svn20071106-1 +libabiword-plugins.i386 0:2.6.0.svn20071127-2 -libxml2.i386 0:2.6.29-1.fc7 +libxml2.i386 0:2.6.31-1.fc7 -libxml2-python.i386 0:2.6.29-1.fc7 +libxml2-python.i386 0:2.6.31-1.fc7 -mingetty.i386 0:1.07-5.2.2 +mingetty.i386 0:1.07-9.olpc2 -ohm.i386 0:0.1.1-6.1.20080102git.fc7 +ohm.i386 0:0.1.1-6.3.20080102git.fc7 -olpc-utils.i386 0:0.63-1.olpc2 +olpc-utils.i386 0:0.63-2.olpc2 -pyabiword.i386 0:0.6.0.svn20071106-1 +pyabiword.i386 0:0.6.0.svn20071127-1 -rainbow.noarch 0:0.7.6-1.olpc2 +rainbow.noarch 0:0.7.8-1.olpc2 -sugar-evince.i386 0:2.20.0-4.olpc2 +sugar-evince.i386 0:2.20.1.1-1.olpc2 -sugar-evince-python.i386 0:2.20.0-4.olpc2 +sugar-evince-python.i386 0:2.20.1.1-1.olpc2 -sugar.i386 0:0.75.7-1 +sugar.i386 0:0.75.8-1 -totem.i386 0:2.18.2-11 +totem.i386 0:2.18.2-12 -totem-mozplugin.i386 0:2.18.2-11 +totem-mozplugin.i386 0:2.18.2-12 -totem-plparser.i386 0:2.18.2-11 +totem-plparser.i386 0:2.18.2-12 -xkeyboard-config.noarch 0:1.1-7.20071130cvs.olpc2 +xkeyboard-config.noarch 0:1.1-8.20071130cvs.olpc2 -xulrunner.i386 0:1.9-0.beta1.9.olpc2 +xulrunner.i386 0:1.9-0.beta2.1.olpc2 --- Paint-17 --- * Make the fix for #5586 work with security. (tomeu) --- Read-40 --- * Fix zoom-to-width (tomeu), #5866 --- Record-50 --- * #4525 updates * #5899 workaround * #5830 fix --- Web-84 --- * Use ellipsis, #5765 (rwh) * Implement can_close(), #5493 (rwh) -- This email was automatically generated Aggregated logs at http://dev.laptop.org/~bert/update.1-pkgs.html ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New update.1 build 682
Hi, looks like you have found http://dev.laptop.org/ticket/4013 . Could you check, please? Should work in latest joyride builds. Thanks, Tomeu On Sat, 2008-01-19 at 18:00 -0800, [EMAIL PROTECTED] wrote: sorry for the delay in responding (I've been traveling for the last week) attached is the messages file, it looks like the system is trying to unmount the SD card immediatly after boot (2 seconds) I'll enable the sugar debugging and go into the journal immediatly after boot and then see if there is anything interesting there. I'll be upgrading to a new build as soon as the RC is released. David Lang On Wed, 16 Jan 2008, Tomeu Vizoso wrote: Date: Wed, 16 Jan 2008 10:29:25 -0500 From: Tomeu Vizoso [EMAIL PROTECTED] To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: New update.1 build 682 Can you give some more details? Particularly, see http://wiki.laptop.org/go/Attaching_Sugar_Logs_to_Tickets and also /var/log/messages would be of interest. Thanks, Tomeu On Wed, 2008-01-16 at 07:18 -0800, [EMAIL PROTECTED] wrote: I can't get the journal to see the SD card with this build. I can see it from the command line just fine. David Lang On Tue, 15 Jan 2008, Build Announcer Script wrote: Date: Tue, 15 Jan 2008 15:00:03 -0500 (EST) From: Build Announcer Script [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: New update.1 build 682 http://pilgrim.laptop.org/~pilgrim/olpc/streams/update.1/build682/ -Paint-15.xo +Paint-17.xo -Read-38.xo +Read-40.xo -Record-49.xo +Record-50.xo -Terminal-5.xo +Terminal-8.xo -Web-83.xo +Web-84.xo +bash.i386 0:3.2-19.fc7 -bash.i386 0:3.2-9.fc7 -gnash.i386 0:0.8.1-1.olpc2 +gnash.i386 0:0.8.1-2.olpc2.20071226cvs -gnash-plugin.i386 0:0.8.1-1.olpc2 +gnash-plugin.i386 0:0.8.1-2.olpc2.20071226cvs -hulahop.i386 0:0.4.0-1.olpc2 +hulahop.i386 0:0.4.0-2.olpc2 -initscripts.i386 0:8.54.1-15.olpc2 +initscripts.i386 0:8.54.1-17.olpc2 -libabiword.i386 0:2.6.0.svn20071106-1 +libabiword.i386 0:2.6.0.svn20071127-1 -libabiword-plugins.i386 0:2.6.0.svn20071106-1 +libabiword-plugins.i386 0:2.6.0.svn20071127-2 -libxml2.i386 0:2.6.29-1.fc7 +libxml2.i386 0:2.6.31-1.fc7 -libxml2-python.i386 0:2.6.29-1.fc7 +libxml2-python.i386 0:2.6.31-1.fc7 -mingetty.i386 0:1.07-5.2.2 +mingetty.i386 0:1.07-9.olpc2 -ohm.i386 0:0.1.1-6.1.20080102git.fc7 +ohm.i386 0:0.1.1-6.3.20080102git.fc7 -olpc-utils.i386 0:0.63-1.olpc2 +olpc-utils.i386 0:0.63-2.olpc2 -pyabiword.i386 0:0.6.0.svn20071106-1 +pyabiword.i386 0:0.6.0.svn20071127-1 -rainbow.noarch 0:0.7.6-1.olpc2 +rainbow.noarch 0:0.7.8-1.olpc2 -sugar-evince.i386 0:2.20.0-4.olpc2 +sugar-evince.i386 0:2.20.1.1-1.olpc2 -sugar-evince-python.i386 0:2.20.0-4.olpc2 +sugar-evince-python.i386 0:2.20.1.1-1.olpc2 -sugar.i386 0:0.75.7-1 +sugar.i386 0:0.75.8-1 -totem.i386 0:2.18.2-11 +totem.i386 0:2.18.2-12 -totem-mozplugin.i386 0:2.18.2-11 +totem-mozplugin.i386 0:2.18.2-12 -totem-plparser.i386 0:2.18.2-11 +totem-plparser.i386 0:2.18.2-12 -xkeyboard-config.noarch 0:1.1-7.20071130cvs.olpc2 +xkeyboard-config.noarch 0:1.1-8.20071130cvs.olpc2 -xulrunner.i386 0:1.9-0.beta1.9.olpc2 +xulrunner.i386 0:1.9-0.beta2.1.olpc2 --- Paint-17 --- * Make the fix for #5586 work with security. (tomeu) --- Read-40 --- * Fix zoom-to-width (tomeu), #5866 --- Record-50 --- * #4525 updates * #5899 workaround * #5830 fix --- Web-84 --- * Use ellipsis, #5765 (rwh) * Implement can_close(), #5493 (rwh) -- This email was automatically generated Aggregated logs at http://dev.laptop.org/~bert/update.1-pkgs.html ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New update.1 build 682
Ok, the problem is that by mistake some unstable builds had a too new version of xapian. We reverted to the known-good older version but it cannot read the indexes created or modified by the later version. Just do this in the terminal with the SD card mounted: mv /media/2FD2-5097/.olpc.store /media/2FD2-5097/.olpc.store.bk After rebooting, the SD card should be correctly recognized by the Journal. Tomeu On Sat, 2008-01-19 at 18:24 -0800, [EMAIL PROTECTED] wrote: similar effects, but what I'm seeing is after a full power cycle. I'm not doing a suspend attached is the sugar logfile David Lang On Sat, 19 Jan 2008, Tomeu Vizoso wrote: Date: Sat, 19 Jan 2008 20:02:02 -0500 From: Tomeu Vizoso [EMAIL PROTECTED] To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: New update.1 build 682 Hi, looks like you have found http://dev.laptop.org/ticket/4013 . Could you check, please? Should work in latest joyride builds. Thanks, Tomeu On Sat, 2008-01-19 at 18:00 -0800, [EMAIL PROTECTED] wrote: sorry for the delay in responding (I've been traveling for the last week) attached is the messages file, it looks like the system is trying to unmount the SD card immediatly after boot (2 seconds) I'll enable the sugar debugging and go into the journal immediatly after boot and then see if there is anything interesting there. I'll be upgrading to a new build as soon as the RC is released. David Lang On Wed, 16 Jan 2008, Tomeu Vizoso wrote: Date: Wed, 16 Jan 2008 10:29:25 -0500 From: Tomeu Vizoso [EMAIL PROTECTED] To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: New update.1 build 682 Can you give some more details? Particularly, see http://wiki.laptop.org/go/Attaching_Sugar_Logs_to_Tickets and also /var/log/messages would be of interest. Thanks, Tomeu On Wed, 2008-01-16 at 07:18 -0800, [EMAIL PROTECTED] wrote: I can't get the journal to see the SD card with this build. I can see it from the command line just fine. David Lang On Tue, 15 Jan 2008, Build Announcer Script wrote: Date: Tue, 15 Jan 2008 15:00:03 -0500 (EST) From: Build Announcer Script [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: New update.1 build 682 http://pilgrim.laptop.org/~pilgrim/olpc/streams/update.1/build682/ -Paint-15.xo +Paint-17.xo -Read-38.xo +Read-40.xo -Record-49.xo +Record-50.xo -Terminal-5.xo +Terminal-8.xo -Web-83.xo +Web-84.xo +bash.i386 0:3.2-19.fc7 -bash.i386 0:3.2-9.fc7 -gnash.i386 0:0.8.1-1.olpc2 +gnash.i386 0:0.8.1-2.olpc2.20071226cvs -gnash-plugin.i386 0:0.8.1-1.olpc2 +gnash-plugin.i386 0:0.8.1-2.olpc2.20071226cvs -hulahop.i386 0:0.4.0-1.olpc2 +hulahop.i386 0:0.4.0-2.olpc2 -initscripts.i386 0:8.54.1-15.olpc2 +initscripts.i386 0:8.54.1-17.olpc2 -libabiword.i386 0:2.6.0.svn20071106-1 +libabiword.i386 0:2.6.0.svn20071127-1 -libabiword-plugins.i386 0:2.6.0.svn20071106-1 +libabiword-plugins.i386 0:2.6.0.svn20071127-2 -libxml2.i386 0:2.6.29-1.fc7 +libxml2.i386 0:2.6.31-1.fc7 -libxml2-python.i386 0:2.6.29-1.fc7 +libxml2-python.i386 0:2.6.31-1.fc7 -mingetty.i386 0:1.07-5.2.2 +mingetty.i386 0:1.07-9.olpc2 -ohm.i386 0:0.1.1-6.1.20080102git.fc7 +ohm.i386 0:0.1.1-6.3.20080102git.fc7 -olpc-utils.i386 0:0.63-1.olpc2 +olpc-utils.i386 0:0.63-2.olpc2 -pyabiword.i386 0:0.6.0.svn20071106-1 +pyabiword.i386 0:0.6.0.svn20071127-1 -rainbow.noarch 0:0.7.6-1.olpc2 +rainbow.noarch 0:0.7.8-1.olpc2 -sugar-evince.i386 0:2.20.0-4.olpc2 +sugar-evince.i386 0:2.20.1.1-1.olpc2 -sugar-evince-python.i386 0:2.20.0-4.olpc2 +sugar-evince-python.i386 0:2.20.1.1-1.olpc2 -sugar.i386 0:0.75.7-1 +sugar.i386 0:0.75.8-1 -totem.i386 0:2.18.2-11 +totem.i386 0:2.18.2-12 -totem-mozplugin.i386 0:2.18.2-11 +totem-mozplugin.i386 0:2.18.2-12 -totem-plparser.i386 0:2.18.2-11 +totem-plparser.i386 0:2.18.2-12 -xkeyboard-config.noarch 0:1.1-7.20071130cvs.olpc2 +xkeyboard-config.noarch 0:1.1-8.20071130cvs.olpc2 -xulrunner.i386 0:1.9-0.beta1.9.olpc2 +xulrunner.i386 0:1.9-0.beta2.1.olpc2 --- Paint-17 --- * Make the fix for #5586 work with security. (tomeu) --- Read-40 --- * Fix zoom-to-width (tomeu), #5866 --- Record-50 --- * #4525 updates * #5899 workaround * #5830 fix --- Web-84 --- * Use ellipsis, #5765 (rwh) * Implement can_close(), #5493 (rwh) -- This email was automatically generated Aggregated logs at http://dev.laptop.org/~bert/update.1-pkgs.html ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http
Re: [PATCH] RFC: ReadActivity fullscreen, paging changes
Hi, On Sun, 2008-01-27 at 17:42 -0600, Klaus Weidner wrote: On Sun, Jan 27, 2008 at 02:17:04PM -0500, Michael Stone wrote: While I can't say how your efforts will wind up being used, I very much want to thank you for stepping up to work on these issues and for submitting such clear patches. You're welcome, I'm happy if I can contribute something to such a cool project :-) Keep up the hard work, and let everyone know if you'd like help packaging your changes (to ease testing) or in working with the upstream maintainers of Read and Evince. I've bundled up the activity and library and put them on my web server, in case anyone wants to test them: http://www.pocketworkstation.org/xo/ The activity is a normal .xo bundle. For the shared library, extract it from the '/' directory: tar xvzf libevince-*.tar.gz Yes, I'd like help who to contact and how best to submit changes for the upstream code. In general, having the proposed patches attached to an existing ticket in trac is the best way. This puts the patches in context, help with tracking and will probably reach the maintainer faster. See http://wiki.laptop.org/go/Sugar_Patches . That said, I think it makes sense to post the patches to the mailing list if some discussion needs to happen. In this concrete case, we still miss a decision about how we want to express this new functionality in the UI. We have had already some discussion in this list about the different approaches we can take, but before we can accept an implementation, Eben should specify clearly how he thinks it should be implemented. If I understand it right, the evince library currently used is temporarily forked, and I'm not sure which parts of it are ready to be upstreamed. I can separate out the scrolling-backwards-in-noncontinuous-mode fix which I've reproduced in the desktop evince, so that could be submitted separately to the original evince project. Yes, I haven't looked in detail at your patches, but if it was possible to add this feature to Read without modifying evince, it would be much better. We don't want to maintain this fork of evince forever, so we try to maintain the differences to a minimum because at some point we'll need to merge with upstream. Have you already considered handling the key binding in ReadActivity._key_press_event_cb() instead? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Python Development
Hi, On Mon, 2008-01-28 at 16:25 -0500, 7150 wrote: I am sorry to bother you on this list, but answers seem not to becoming from elsewhere. You are welcome, questions like this are more than appropriate, but is better to have them in the sugar mailing list: http://lists.laptop.org/listinfo/sugar Also, feel free to drop by #sugar if you want more direct contact: http://wiki.laptop.org/go/IRC#irc.freenode.net_channels 1. I built a Fedora 7 Python development machine. Sugar-jhbuild runs just fine on it. I started the tutorial at: http://www.ibm.com/developerworks/edu/l-dw-linux-xo-python-i.html The process works fine until I try to create a package and the system cannot find sugar.activity. I cannot find it with find. What do you mean by create a package? Can you paste the exact commands? Sugar-jhbuild is located in a subdirectory of /home/olpc/. I am running as the olpc user. Jhbuild can be hard to set up by the first time, but once it works uses to last for at least one release ;) Being in F7 you should not have many problems. Good luck, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New joyride build 1591
On Tue, 2008-01-29 at 09:15 +0100, Reinier Heeres wrote: -sugar-evince-python 2.20.1.1-1.olpc2 +sugar-evince-python 2.20.1.1-2.olpc2 -bootfw q2d09-3.olpc2.unsigned +bootfw q2d10-1.olpc2.unsigned +desktop-file-utils 0.12-4.fc7 +djvulibre 3.5.18-2.olpc2 -sugar-evince 2.20.1.1-1.olpc2 +sugar-evince 2.20.1.1-2.olpc2 +xdg-utils 1.0.2-3.fc7 What's dragging in djvulibre, desktop-file-utils and xdg-utils? djvulibre is dragged in by Read, which in the current joyride also supports reading djvu files. Don't know about the other two... xdg-utils is dragged in by djvulibre, I think. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: flash usb drives not on journal
On Tue, 2008-01-29 at 22:50 -0200, Ricardo Carrano wrote: I apologize if this is intended and I missed the news, but usb sticks are not displaying in the journal anymore (joyride 1608). In order for usb sticks to appear in the journal, several components need to cooperate: at least the kernel, HAL, datastore and journal. Also, failure can happen due to many environment variables. Thus, without logs for each of these components the developers can't do much. Please attach /var/log/messages, the output of lshal -l, and sugar debugging logs as explained in http://wiki.laptop.org/go/Attaching_Sugar_Logs_to_Tickets . But, if your problem looks similar to the one described in the links below, then just do as Jani said and delete the .olpc.store dir in the usb stick: http://lists.laptop.org/pipermail/devel/2008-January/009800.html http://dev.laptop.org/ticket/6269 I'm sorry for the confusion that this has caused, hopefully people will stop using the offending builds and we won't see this again. In the future I'll be watching more closely the xapian releases we put in the builds. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New joyride build 1614
On Wed, 2008-01-30 at 23:22 +0200, Jani Monoses wrote: -sugar-presence-service 0.65-0.31.20080103git76984f3f28 +sugar-presence-service 0.75.0-1 The version number does not seem to have been bumped to 0.75.0 in git master. Where does it come from? I noticed the same with journal and web-activity a few weeks ago, the versions in configure.ac lag behind what the joyride logs show. Not sure about s-p-s, but the journal and most of sugar packages are being released from the update.1 branch. The idea is that we are not releasing anything from master until update.1 is released. I think/hope all this will change after update.1, when we review our processes. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
prevent data loss in running activities
Hi, as tracked in tickets #4088 and #6014, there are two situations where the user can loose data inadvertently: - user shutdowns from the system menu, - laptop shutdowns unexpectedly because the laptop runs out of power or the user pressed the power button. Most activities are saving their state in the background when the user switches to another activity, so in most cases the data loss will be limited to the current active activity, since the last explicit or implicit save. But this is probably not enough, as exposed by the reporter of #6014. In order for activities to save their state before the system cleanly shuts down, we could use XSMP. We really don't need all that is in that spec, specially the stuff about local and global state (our state is always global). http://www.xfree86.org/current/xsmp.pdf We would need a session manager that synchronizes how clients save their state and exit cleanly before the shutdown happen. That session manager, be in its own process, matchbox (if there is already one in there) or the sugar shell. We could use an existing implementation of XSMP like gnome-session, but people seem to agree in that its code is horrible and a complete replacement is needed. http://svn.gnome.org/viewvc/gnome-session Follow two tentatives at rewriting gnome-session: http://svn.gnome.org/viewvc/gnome-session-manager http://svn.gnome.org/viewvc/msm Also, there has been some discussion in freedekstop lists about ditching XSMP and establishing a new standard based on D-Bus. Has been suggested at some point that activities save before suspend. Is this really needed? Do we want to make longer the time we need for suspending? If OHM would wake up when the battery reaches a critical level in order to initiate a clean shutdown, then we wouldn't need to consider this as an special case. Summarizing, I see three possibilities: - Adopt a full-fledged implementation of XSMP and ask activities to support just the save-on-shutdown part of it. (Giving a nice wrapper at least for python activities). - Implement a subset of XSMP in a new session manager implementation. - Add a couple of D-Bus methods and signals to OHM/HAL, the sugar shell and the activity service enough to support what we need. Note that I'm talking about the short term here. What we should aim for given the scarce resources we have, not what we ideally would do. Comments? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: prevent data loss in running activities
On Fri, 2008-02-01 at 13:41 +0100, Tomeu Vizoso wrote: Summarizing, I see three possibilities: - Adopt a full-fledged implementation of XSMP and ask activities to support just the save-on-shutdown part of it. (Giving a nice wrapper at least for python activities). - Implement a subset of XSMP in a new session manager implementation. - Add a couple of D-Bus methods and signals to OHM/HAL, the sugar shell and the activity service enough to support what we need. One more possibility would be to autosave every X minutes. For activities using the high level API, we would also need a mechanism for these to tell the framework if they are dirty. In this way we minimize further the risk and seriousness of data loss. Perhaps this would be enough for Update.2? I understand this is something we want anyway. Eben, am I right? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: SD card errors on resume after suspend, joyride 1634 firmware q2d12
Hi, I think you have found http://dev.laptop.org/ticket/4013 . Thanks, Tomeu On Mon, 2008-02-04 at 17:16 -0600, Mark Bauer wrote: This happens maybe not every time, but at least 50% of the time, when I wake from suspend (or sleep), the SD card returns an error df: '/media/SD1': Input/output error Then it mounts in on /media/SD1_1 Any ideas It is a 2 GB sandisk. Thanks Mark ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Help for kick off!
On Tue, 2008-02-05 at 10:48 +0530, ASWATHY PRASAD wrote: Hi, How to get started with OLPC for developing a software? Is there any area which we require to know about in particular? How can we get to know more about the architecture of the OLPC? Also the OS of OLPC and the registers it use for various purposes. wiki.laptop.org is where all public information lives. If you cannot find something there that is important for your efforts, ask in IRC and please add it to the wiki. http://wiki.laptop.org/go/Communication_channels#IRC Is that all the activities developed in OLPC is in Python? Can't we go for any other language? Can't we use C for it? Activities can be developed in any language, but until this point we have focused in making life easier for python developers, as is the language that we expect to be more used by users. How do we get started with the kernel level programming in OLPC? Is it exactly the same way as in Fedora? Think so, there's some info in the wiki. I would recommend you and in general to all people looking for something to do, to send an email to this list presenting yourself, your current skills and the areas you have more interest. I'm sure the developers will try to find something fun and interesting for you to work on. Good luck, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: How to create a new MIME type for a Sugar activity?
On Mon, 2008-02-04 at 11:21 -0600, James Simmons wrote: I am writing a Sugar activity in Python. This activity will enable the user to navigate through a list of image files stored in a Zip file by using the arrow keys, and might support a slideshow feature too. There might be a hundred image files stored in the Zip file. Grouping the images in one file makes it much easier to deal with them in the Journal. The thing is, I want this Zip file to have its own MIME type, so that: 1). The Etoys activity does not try to open the file, at all, ever. EToys takes a long time to start up and shut down and it is really annoying when I open the file with EToys instead of my own activity. 2). My Activity *does* open the file. 3). The Zip files containing images show up in the Journal with my own Activity's icon, which looks like a slide projector. To accomplish this I have created my Zip files with the extension .slides and I'd like to be able to use the MIME type application/slides for such files. I'm also interested in creating a reader program for Gutenberg etexts. I'd like these files to have their own MIME type too so they don't get opened by the Write activity by mistake. I was thinking of using a file suffix of .book and a MIME type of text/book for these. I tried using a mimetypes.xml file in the bundle but that didn't work. I couldn't find an example of an Activity that used such a file so I'm not certain I'm doing it correctly. I'd appreciate any information on MIME types or on alternative approaches that would solve problems 1-3. Thanks much, I'm not sure what's exactly your problem. In principle, if the data from your activity can be reused in other activities, I would call that a good thing. If things work as they are supposed to, without doing anything about mime types your journal entries should be resumed by default in your activity and would use your activity's icon. This is not working? Can you provide a link to you activity source code? Regards, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
python activities startup
Hi, as we all know, activities that use the python API (most of them) start up very slow in the XO, a trivial one launching in 7 seconds. http://dev.laptop.org/ticket/5228 I don't know yet if performance work will land in update.2 or in update.3, but now may be a good moment to summarize what we know and see which are our options. By the data in #5228, looks like more than 50% of time is spent importing modules. dbus, telepathy and pygtk make for more than 30% of _total_ startup time. In that ticket is attached a file that lists the 161 modules imported at startup. I doubt most of those modules are actually used during startup, and many won't be used neither during the activity lifetime, they are just imported because one module we actually use *may* need it at some point. It's clear that we would prefer to not pay this price upfront at startup, but rather that the needed initializations happened during runtime as (if) needed. I would like to take the chance to ask to Guido what's his opinion on this, as I'm sure this has been discussed in the python community at some point. How could we move all these initializations from import time to use time? I see the following options: - Reduce the number of things that are done at startup. We probably could write to the datastore, initialize sharing and creating the D-Bus service at a later point after startup. These changes look to me as quite invasive and somewhat risky. The benefit from the user point of view is not clear, as we would like those things to happen as soon as possible after the activity window has been brought up. - Modify the modules that do significant initializations at import time so that code is executed lazily as needed. Those modules will be inside python itself, dbus, pygtk, telepathy, sugar, etc. The drawback of this approach is that we'll need to maintain forks for some time. - Hack the import logic in python so that the module-level code is executed only when some function or method from that module is called or a variable is set. I'm not sure if this is possible by just using the existing hooks or if we would need to patch python. In case this brings some incompatibilities, we could activate this fast mode through some flag. I wonder too if python 2.6 and 3.0 will bring some improvement in these areas? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] python activities startup
On Wed, 2008-02-06 at 15:20 +0100, Ryan Pavlik wrote: Tomeu Vizoso wrote: Hi, as we all know, activities that use the python API (most of them) start up very slow in the XO, a trivial one launching in 7 seconds. http://dev.laptop.org/ticket/5228 I don't know yet if performance work will land in update.2 or in update.3, but now may be a good moment to summarize what we know and see which are our options. By the data in #5228, looks like more than 50% of time is spent importing modules. dbus, telepathy and pygtk make for more than 30% of _total_ startup time. In that ticket is attached a file that lists the 161 modules imported at startup. I doubt most of those modules are actually used during startup, and many won't be used neither during the activity lifetime, they are just imported because one module we actually use *may* need it at some point. It's clear that we would prefer to not pay this price upfront at startup, but rather that the needed initializations happened during runtime as (if) needed. I would like to take the chance to ask to Guido what's his opinion on this, as I'm sure this has been discussed in the python community at some point. How could we move all these initializations from import time to use time? I see the following options: - Reduce the number of things that are done at startup. We probably could write to the datastore, initialize sharing and creating the D-Bus service at a later point after startup. These changes look to me as quite invasive and somewhat risky. The benefit from the user point of view is not clear, as we would like those things to happen as soon as possible after the activity window has been brought up. - Modify the modules that do significant initializations at import time so that code is executed lazily as needed. Those modules will be inside python itself, dbus, pygtk, telepathy, sugar, etc. The drawback of this approach is that we'll need to maintain forks for some time. - Hack the import logic in python so that the module-level code is executed only when some function or method from that module is called or a variable is set. I'm not sure if this is possible by just using the existing hooks or if we would need to patch python. In case this brings some incompatibilities, we could activate this fast mode through some flag. I wonder too if python 2.6 and 3.0 will bring some improvement in these areas? Thanks, Tomeu ___ Sugar mailing list [EMAIL PROTECTED] http://lists.laptop.org/listinfo/sugar Though it's not very elegant, you can import anywhere and I believe the import is then available everywhere (within that module). You might be able to just move the import statements to right before they are needed - I believe multiple imports are ignored, so if imported functions are needed in multiple places, import in each of those (or the first to execute if it is deterministic). Not really pretty, but it might do the trick I think... This would help only for the imports in sugar modules that are not actually used during startup. Sadly, none of the modules that appear in the profiles as significant fall into this category. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: python activities startup
On Wed, 2008-02-06 at 09:31 -0500, Benjamin M. Schwartz wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tomeu Vizoso wrote: By the data in #5228, looks like more than 50% of time is spent importing modules. dbus, telepathy and pygtk make for more than 30% of _total_ startup time. There has been much talk about fork()ing the python interpreter for each activity instead of starting a new interpreter. AFAIK, the python interpreter only does nontrivial work the first time a module is imported in each interpreter. By this logic, if we use a forked interpreter and import these modules at the root, it seems that the import will only have to happen once at Sugar startup, rather than once for each Activity. I would appreciate a comment on this from someone who knows more about the relevant issues, like the interaction of CoW memory and python modules. AFAIK, what is taking most of the time here is the code at the module level that is executed the first time that module is imported, and not the reading and loading of modules. I think Michael Stone can confirm this. If I understand correctly how that fork() would work, what we would be saving in that case is the reading of modules, but the python code at the module scope would need to be executed anyway. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: How to create a new MIME type for a Sugar activity?
On Wed, 2008-02-06 at 09:39 -0600, James Simmons wrote: Tomeu, The problem is that my application does not create the Zip files filled with images, it only reads them. Oh, now I see. I had noticed that when I put a flash drive containing hundreds of images into my XO that it thrashed for quite a bit and wouldn't let me open any apps until it was done. I would guess that it was creating journal entries for each one. Yup, we have some ticket about that. It seems to me that Sugar is better suited to dealing with individual files than collections of files, which is how I hit on the idea of putting the collections in Zip files. Yes, we don't have yet in the journal the concept of collection of objects. This is planned to be added soon. I use a separate Linux box to make the files using this command: zip filename.slides *.jpg Then I copy filename.slides to my flash drive so I can browse the images on the XO. I have a straight Python version of my app that I can run on the XO from the console, and an Activity version that works just fine from Xbuntu's Sugar Simulator when I use the MIME type of application/zip. (No Etoys is installed there). The problem is that it is all too easy to launch Etoys on my file on the XO, and that is a pain. I was hoping for a way to have the *.slides files linked only to my app, even though my app did not create them. I don't see how my app *could* create a Zip file containing a list of images. It doesn't seem like something an Activity could do. Ok, so what if your activity registers into the mime registry a new type like application/x-slide-activity associated to the *.slide glob? That can be done in the mimetypes.xml file. And then your activity should add this mime to the activity.info. In this way, the journal will recognize these files as that type, and will open them with you activity. I'd be happy to share the code for my activity with you, but I don't think it would shed any light on anything. Basically it uses pygtk to open a Zip file, navigate through the list of files in response to the arrow keys on the keyboard, extract the current file to a temp directory and display it resized to fit the current resolution of the screen. Then it deletes the temporary file. That way you can browse through the images in sequence. I had thought of putting in a slideshow feature too. The problem is getting the program to run by resuming the file from the Journal. I'm using my work email account and the application is at home. I can send it to you as an attachment later if you still think it would help. No problem, I was just confused about what you wanted to do. Regards, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: python activities startup
On Wed, 2008-02-06 at 09:59 -0500, Benjamin M. Schwartz wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tomeu Vizoso wrote: If I understand correctly how that fork() would work, what we would be saving in that case is the reading of modules, but the python code at the module scope would need to be executed anyway. I am no expert, but, without evidence, my current suspicion is the other way. Consider: import dbus import os def launch_activity(some_activity) if os.fork() == 0: import some_activity x = some_activity.SomeActivity() else: return - From the perspective of the child process, the modules have already been imported, and are even still in scope. It would be strange for the Python semantics if the imports were somehow forgotten in the child. You are right. I have hacked the rainbow service in the following way: - rainbow preimports pygtk, telepathy, dbus and some slow sugar modules. - after cloning, reconnect to X. - instead of execvpe sugar-activity, directly execute the code. Python activities have the expected speedup, from 7 seconds to 3. Haven't measured the memory usage improvement yet. The visible problems right now are that the D-Bus connection to the session bus is stale (how can we reconnect?) and that the activity uses the default gtk theme and not the Sugar one. These two should be quite easily solvable. I think Michael, Scott and Chris played in the past with this idea. What was your conclusion? Anybody saw any flaw with this approach? Security implications? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] Matplotlib vs PyCha
On Thu, 2008-02-07 at 02:20 -0500, Arjun Sarwal wrote: Hi, In continuation with my previous email[1] in which I had mentioned that I was looking for python packages that would enable me to do graphing/plotting of data in various formats. I searched through a series of packages. One that I really liked was gtksheet (or gtkextra?)[2] which had various plotting functions (and also a spreadsheet like interface, which I would eventually need) but there hasn't been any development on that since a long time and that package depends pygtk1 and python 2.4 so it seems I can't use it. Seems like gtkextra has continued to be developed and was ported to gtk2. It is also packaged in F7: http://koji.fedoraproject.org/koji/packageinfo?packageID=1987 But I think that doesn't include python bindings :/ If you decided to try, wrapping gtk widgets with pygtk uses to be quite straightforward. You could base those bindings on http://python-gtkextra.cvs.sourceforge.net/python-gtkextra/python-gtkextra2/ I'm not sure we want this lib in the platform, so you would have to include all these pieces inside your activity bundle. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: python activities startup
On Thu, 2008-02-07 at 16:46 +, Simon McVittie wrote: A better solution would be for Rainbow to avoid SessionBus() entirely, and instead use an instance of the superclass, dbus.bus.BusConnection. This does not have the weird caching behaviour at all (one call to the constructor = one instance = one D-Bus connection). The code that gets run after forking is still free to use the shared SessionBus. Rainbow is not using the session bus at all, just the system one. But when the child tries to instantiate a SessionBus object, I get this stack trace: /usr/lib/python2.5/site-packages/sugar/presence/presenceservice.py in __init__(self=PresenceService object at 0x86afbbc (sugar+presence+presenceservice+PresenceService at 0x86f1370), allow_offline_iface=False) 73 74 # Get a connection to the session bus --- 75 self._bus = dbus.SessionBus() self._bus = undefined global dbus.SessionBus = class 'dbus._dbus.SessionBus' 76 self._bus.add_signal_receiver(self._name_owner_changed_cb, 77 signal_name=NameOwnerChanged, /usr/lib/python2.5/site-packages/dbus/_dbus.py in __new__(cls=class 'dbus._dbus.SessionBus', private=False, mainloop=None) 211 212 return Bus.__new__(cls, Bus.TYPE_SESSION, private=private, -- 213mainloop=mainloop) mainloop = None 214 215 class StarterBus(Bus): /usr/lib/python2.5/site-packages/dbus/_dbus.py in __new__(cls=class 'dbus._dbus.SessionBus', bus_type=0, private=False, mainloop=None) 100 raise ValueError('invalid bus_type %s' % bus_type) 101 -- 102 bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop) bus = undefined global BusConnection.__new__ = function __new__ at 0x822733c subclass = class 'dbus._dbus.SessionBus' bus_type = 0 mainloop = None 103 104 bus._bus_type = bus_type /usr/lib/python2.5/site-packages/dbus/bus.py in __new__(cls=class 'dbus._dbus.SessionBus', address_or_type=0, mainloop=None) 123 124 def __new__(cls, address_or_type=TYPE_SESSION, mainloop=None): -- 125 bus = cls._new_for_bus(address_or_type, mainloop=mainloop) bus = undefined cls._new_for_bus = built-in method _new_for_bus of type object at 0x8256f44 address_or_type = 0 mainloop = None 126 127 # _bus_names is used by dbus.service.BusName! class 'dbus.exceptions.DBusException': org.freedesktop.DBus.Error.NoServer: Failed to connect to socket /tmp/dbus-7dk02BRXOZ: Connection refused This is the value of the DBUS_SESSION_BUS_ADDRESS env var: unix:path=/tmp/olpc-session-bus,guid=fdf37ebd35a585d12382a50047ac3034 unix:path=/tmp/olpc-session-bus is specified in /etc/dbus-1/session-olpc.conf: busconfig !-- Our well-known bus type, don't change this -- typesession/type listenunix:path=/tmp/olpc-session-bus/listen standard_session_servicedirs / ... Any ideas? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] python activities startup
On Fri, 2008-02-08 at 14:44 +0100, Tomeu Vizoso wrote: On Fri, 2008-02-08 at 13:41 +0100, Tomeu Vizoso wrote: On Thu, 2008-02-07 at 16:46 +, Simon McVittie wrote: A better solution would be for Rainbow to avoid SessionBus() entirely, and instead use an instance of the superclass, dbus.bus.BusConnection. This does not have the weird caching behaviour at all (one call to the constructor = one instance = one D-Bus connection). The code that gets run after forking is still free to use the shared SessionBus. Rainbow is not using the session bus at all, just the system one. But when the child tries to instantiate a SessionBus object, I get this stack trace: ... class 'dbus.exceptions.DBusException': org.freedesktop.DBus.Error.NoServer: Failed to connect to socket /tmp/dbus-7dk02BRXOZ: Connection refused This is the value of the DBUS_SESSION_BUS_ADDRESS env var: unix:path=/tmp/olpc-session-bus,guid=fdf37ebd35a585d12382a50047ac3034 unix:path=/tmp/olpc-session-bus is specified in /etc/dbus-1/session-olpc.conf: busconfig !-- Our well-known bus type, don't change this -- typesession/type listenunix:path=/tmp/olpc-session-bus/listen standard_session_servicedirs / ... When running inside rainbow, strace shows this: [pid 2370] connect(0, {sa_family=AF_FILE, path=@/tmp/dbus-XQcfxlvcoY}, 23) = -1 ECONNREFUSED (Connection refused) But on the console (works fine): connect(3, {sa_family=AF_FILE, path=/tmp/olpc-session-bus}, 23) = 0 I'm sorry about the noise. When Rainbow was started, the env var DBUS_SESSION_BUS_ADDRESS wasn't set until the clone() happened. By looking at dbus code, the bus addresses are initialized at startup, so it kept using the bad address. Setting DBUS_SESSION_BUS_ADDRESS before running Rainbow fixed this issue. So, no known D-Bus problems right now. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
status of startup speedup
Hi, attached is a patch to rainbow for executing python activities inside a forked child. This saves quite a bit of the initializing code, taking a 7s. activity to start in 3. Perhaps we could preload some more initializations. Haven't even looked yet at possible memory savings. The only remaining issue is that activities cannot update their journal entries. They are able to create the entries in the datastore, but the second call to the DS service fails. Tomorrow will look at this if nobody beats me to it. Thanks, Tomeu 0001-Some-hacks-for-preloading-some-modules-and-then-exec.patch Description: application/mbox ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: python activities startup
On Fri, 2008-02-08 at 13:41 +0100, Tomeu Vizoso wrote: On Thu, 2008-02-07 at 16:46 +, Simon McVittie wrote: A better solution would be for Rainbow to avoid SessionBus() entirely, and instead use an instance of the superclass, dbus.bus.BusConnection. This does not have the weird caching behaviour at all (one call to the constructor = one instance = one D-Bus connection). The code that gets run after forking is still free to use the shared SessionBus. Rainbow is not using the session bus at all, just the system one. But when the child tries to instantiate a SessionBus object, I get this stack trace: /usr/lib/python2.5/site-packages/sugar/presence/presenceservice.py in __init__(self=PresenceService object at 0x86afbbc (sugar+presence+presenceservice+PresenceService at 0x86f1370), allow_offline_iface=False) 73 74 # Get a connection to the session bus --- 75 self._bus = dbus.SessionBus() self._bus = undefined global dbus.SessionBus = class 'dbus._dbus.SessionBus' 76 self._bus.add_signal_receiver(self._name_owner_changed_cb, 77 signal_name=NameOwnerChanged, /usr/lib/python2.5/site-packages/dbus/_dbus.py in __new__(cls=class 'dbus._dbus.SessionBus', private=False, mainloop=None) 211 212 return Bus.__new__(cls, Bus.TYPE_SESSION, private=private, -- 213mainloop=mainloop) mainloop = None 214 215 class StarterBus(Bus): /usr/lib/python2.5/site-packages/dbus/_dbus.py in __new__(cls=class 'dbus._dbus.SessionBus', bus_type=0, private=False, mainloop=None) 100 raise ValueError('invalid bus_type %s' % bus_type) 101 -- 102 bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop) bus = undefined global BusConnection.__new__ = function __new__ at 0x822733c subclass = class 'dbus._dbus.SessionBus' bus_type = 0 mainloop = None 103 104 bus._bus_type = bus_type /usr/lib/python2.5/site-packages/dbus/bus.py in __new__(cls=class 'dbus._dbus.SessionBus', address_or_type=0, mainloop=None) 123 124 def __new__(cls, address_or_type=TYPE_SESSION, mainloop=None): -- 125 bus = cls._new_for_bus(address_or_type, mainloop=mainloop) bus = undefined cls._new_for_bus = built-in method _new_for_bus of type object at 0x8256f44 address_or_type = 0 mainloop = None 126 127 # _bus_names is used by dbus.service.BusName! class 'dbus.exceptions.DBusException': org.freedesktop.DBus.Error.NoServer: Failed to connect to socket /tmp/dbus-7dk02BRXOZ: Connection refused This is the value of the DBUS_SESSION_BUS_ADDRESS env var: unix:path=/tmp/olpc-session-bus,guid=fdf37ebd35a585d12382a50047ac3034 unix:path=/tmp/olpc-session-bus is specified in /etc/dbus-1/session-olpc.conf: busconfig !-- Our well-known bus type, don't change this -- typesession/type listenunix:path=/tmp/olpc-session-bus/listen standard_session_servicedirs / ... When running inside rainbow, strace shows this: [pid 2370] connect(0, {sa_family=AF_FILE, path=@/tmp/dbus-XQcfxlvcoY}, 23) = -1 ECONNREFUSED (Connection refused) But on the console (works fine): connect(3, {sa_family=AF_FILE, path=/tmp/olpc-session-bus}, 23) = 0 Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: status of startup speedup
On Fri, 2008-02-08 at 14:23 -0500, Michael Stone wrote: Tomeu, The only remaining issue is that activities cannot update their journal entries. They are able to create the entries in the datastore, but the second call to the DS service fails. Please publish the traceback so that I can help you debug the situation. Well, it just times out and the message doesn't arrive to the DS service. But I'll reproduce and attach the traceback tomorrow. Next, some notes and some questions about your patch: I guess I was not clear on this, but this patch is not something I would ask to be applied to upstream rainbow. I just intended to experiment with the idea of a launcher process and see which improvements and problems we would find. * In the second hunk, I'd like to replace the big os.environ block with something like: for key in (...): os.environ[key] = env[key] That being said, is there a good reason for selectively using values from os.environ instead of using everything? No, I just wanted to know which env vars were really needed. We can add all of those if you think it's better. * By convention, the first argument to log() should be a format string. * I think your patch breaks rainbow's strace support. Strace support can probably be fixed by forking a second time, then instructing strace to trace to the pid of the parent; however, this will lead to interleaved writes to the shared file descriptors. * Why is it necessary to import gtk twice? Well, we import first in the parent process so the initialization is inherited by all children. The second time is just because we need to reopen the connection to X (and need a gtk name in that scope). * I am extremely uncomfortable importing all of telepathy, sugar, dbus, and gtk into the main rainbow process before it has dropped privilege. Unfortunately, we must drop privilege after forking and the imports must be done before forking. (Also, unfortunately, all of sugar, telepathy, and the datastore have root access through sudo. I'll be trying to change this in coming weeks.) Of course. I guess we could have a launcher process that does the preloading of expensive modules and then fork? * Rainbow is currently made available under the MIT license. You offered your sugaractivity.py file under the GPL2+ license. Are you willing to offer it under the MIT license? That's not my code, it is mostly Marco's. I don't have any problem with having my work as MIT. Anyhow, thanks very much for your hard work, Thanks for your help. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: status of startup speedup
On Fri, 2008-02-08 at 14:23 -0500, Michael Stone wrote: Tomeu, The only remaining issue is that activities cannot update their journal entries. They are able to create the entries in the datastore, but the second call to the DS service fails. Please publish the traceback so that I can help you debug the situation. No traceback, we call this method async and get this message in the error handler: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. Any clues about what to check next? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Updating translations for release...
On Fri, 2008-02-08 at 22:38 +0530, Sayamindu Dasgupta wrote: 1) Can the activities be updated by you updating the packages, or will this require work by the activity developers? Yes one can simply do a git pull from dev.laptop.org and the latest translations will go in. Have updated the Journal pot and it has some new strings to translate. Can you pull it into Pootle? Tell me if you want me to do the Spanish and Portuguese translations, but I don't have an account in Pootle yet. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Updating translations for release...
On Sun, 2008-02-10 at 08:23 +0530, Sayamindu Dasgupta wrote: On Feb 9, 2008 10:49 PM, Tomeu Vizoso [EMAIL PROTECTED] wrote: On Fri, 2008-02-08 at 22:38 +0530, Sayamindu Dasgupta wrote: 1) Can the activities be updated by you updating the packages, or will this require work by the activity developers? Yes one can simply do a git pull from dev.laptop.org and the latest translations will go in. Have updated the Journal pot and it has some new strings to translate. Can you pull it into Pootle? Which branch is this ? Both update.1 and master, but I guess we only care now about update.1, right? Tell me if you want me to do the Spanish and Portuguese translations, but I don't have an account in Pootle yet. That would be great. Register in Pootle and send me your username - I'll give you translation access. 'tomeu' Thanks! ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: How to create a new MIME type for a Sugar activity?
On Tue, 2008-02-12 at 18:32 +, Ivo Emanuel Gonçalves wrote: On 2/12/08, Bert Freudenberg [EMAIL PROTECTED] wrote: So if any, it's made-up by those crazy freedesktop.org guys. Someone find and beat them into a pulp for leading other people astray. I think the mimes rpm in F8 has those types changed. Could be good to check if there are ok there. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: startup question
On Tue, 2008-02-12 at 08:37 -0500, Mikus Grinbergs wrote: I'm used to regular Linux, where I can access files from a command without having to go through the Journal. I have an SD card in my XO, on which I keep files regarding setting up / customizing the XO. Apparently, the XO goes out and scans my SD card, so that it can show me the SD content if I were to click on the SD icon in the Journal view. Is there a way for me to __inhibit__ this scan of the SD card -- the scan takes time, and it is unlikely that I will ever want to access these SD directories/files through the Journal view ? Hi, the following method in the journal decides whether to automount a device or not: http://dev.laptop.org/git?p=journal-activity;a=blob;f=volumesmanager.py;h=6147681653d4d29133239b65ceb7ff72877b63d9;hb=HEAD#l92 Good luck, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Items for update.1 RC3
On Wed, 2008-02-13 at 11:12 +0530, Sayamindu Dasgupta wrote: Hi, I have information about the releases of new packages (to pickup translations) for the following modules: acoustic measure calculate chat journal measure memorize pippy read record sugar web I believe we are still waiting for oficina tamtam write Note that some of the modules in the first list might not have got approval (or requested for approval) for inclusion in Update-1 yet. Have made a new release of Paint with updated translations: http://dev.laptop.org/ticket/6440 It is waiting for approval. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
repositories and releases
Hi, last terminal bundle was released from a private tree [0] instead of from the main repository [1]. http://dev.laptop.org/git?p=users/mstone/terminal-activity;a=summary http://dev.laptop.org/git?p=projects/terminal-activity;a=summary Am I wrong to think that this is bad and will cause confusion? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: help about helix libraries
On Fri, 2008-02-15 at 18:14 +0500, Waqas Toor wrote: Thanks Tomeu, My activity works fine but as i am using evince as a pdf document reader and helix as the libraries for mp3 decoding, the only problem is that when i play some sound the control is stuck between that run() method, i tried threading as well :( Sorry, no idea with that. If you wanted to use gstreamer, I know some people on this list that could help you. can you please point me to a developer who is working on hxplay I think the people involved where from real media and from osuosl.org. Google pointed me to: http://wiki.osuosl.org/display/DEV/OLPCMediaPlayer+Documentation Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: A modest proposal.
On Tue, 2008-02-19 at 15:45 -0500, C. Scott Ananian wrote: implementation details Clicking on a link of this form would add this person to your buddy list. Communicating with a this form of buddy would, in parallel, (a) attempt to contact the IPv6 Link-Local address formed from the lower 64 bits of the SHA-256 of the complete friend domain string (not including the URI scheme or colon) and (b) attempt to look up the hostname and contact the IPv4 or IPv6 address returned. (If the DNS responds, you SHOULD use this address for further communication in this session, since it may persist even if you roam off your current mesh.) A simple service at a well-known port would confirm status and list sharable activities. implementation details Scott, could you write a bit about the higher level use cases this would be useful in? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Is read_file() always called after an activity __init__?
On Thu, Feb 28, 2008 at 12:45 PM, Gary C Martin [EMAIL PROTECTED] wrote: Hi Tomeu, On 28 Feb 2008, at 09:40, Tomeu Vizoso wrote: Well, __init__ is too soon. Well before calling activity.Activity.__init__(self, handle) yes that would be a real bad idea for sure :-) but after that it 'should' be fine shouldn't it, as the activity class is all set up? I can certainly read the metadata in my main __int__ just after the call up to super, and all works well. You are right, though at some point we would like to defer the fetch of data from the datastore to a later point after construction. In this way some activities will be able to launch faster. AFAIK, the API docs say that you can safely access Activity.metadata in the read_file() and write_file() methods. read_file() is called when the user is resuming an existing activity and write_file() when sugar thinks it is a good time to save changes to the journal (probably several times during the life of an activity). It does seem like read_file() is only triggered if you have previously saved an actual file to filesystem, if you just have metadata, no call is ever made to read_file() so it's a rather bad place to pick-up the metadata. At least this is what I'm seeing here – I've just created a 0 size file in my write_file() and now a resume from that journal entry is triggering read_file() every time. You are right again. Perhaps we should add a read_metadata() method? An alternative would be to have a 'datastore-loaded' method, but that would be less consistent with the current API. Is very probable that the API documentation is lacking, can you point me to the docs you were following? Have you already read the HIG in the wiki? Not an officially maintained page I know, but: http://wiki.laptop.org/go/Beyond_Hello_World Not that we have many officially maintained pages about sugar docs :/ Same suggestion comes from the current pydocs: http://xo_running_pydoc-p8080:8080/ sugar.activity.activity.html#Activity-read_file http://www.vrplumber.com/sugar-docs/sugar.activity.activity.html#Activity-read_file (an online version) Would be nice to have a wiki bot that would update the API docs in the wiki from the sources. Anybody know something like that? I also went through a number of activity sources in git looking for examples, but I didn't find one that ONLY used metadata. They all seem to either not bother storing any UI state (so resuming or from new makes no difference), or they save actual files. I think at some point activities like those realize that they have some data that would be better saved in a file. But the determining reason would be that metadata properties other than the custom ones are not preserved across reboots :/ http://dev.laptop.org/ticket/4662 BTW: I'm quite happy with read_file() not getting called in file-less cases, just a matter of documenting it somewhere (if that is indeed the correct behaviour intended). Thanks for your input. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Metadata preserved across reboots?
On Thu, Feb 28, 2008 at 8:02 PM, James Simmons [EMAIL PROTECTED] wrote: Tomeu, As I've mentioned before, I'm working on an EText reading activity that uses metadata to save the current page number when the activity closes, kind of like a bookmark. When the activity is resumed the saved page number would be shown. This works just fine while the XO is turned on, but the page number metadata disappears when you reboot or turn the machine off and on. I'm using the same code that the Read activity does for this purpose, and I notice that Read has exactly the same problem. This is frustrating. The journal entry shows a screenshot of the page I left off on, but I don't go back to that page on opening. I have also noticed that if I open the document from a USB card or an SD card no metadata is saved at all. When is metadata not saved? Or you mean the metadata is saved but not retrieved? I had been assuming that this was a bug in Sugar that would be fixed at some point. Your text below makes it sound like this is an actual deliberate feature. Am I understanding this correctly? No, it's a big bug in the current implementation of the DataStore. Could be fixed in the current implementation, but there have been plans of rewriting it, so nobody has looked into this since a long time ago. See http://dev.laptop.org/ticket/4662 for more details. I also went through a number of activity sources in git looking for examples, but I didn't find one that ONLY used metadata. They all seem to either not bother storing any UI state (so resuming or from new makes no difference), or they save actual files. I think at some point activities like those realize that they have some data that would be better saved in a file. But the determining reason would be that metadata properties other than the custom ones are not preserved across reboots :/ ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Is read_file() always called after an activity __init__?
On Thu, Feb 28, 2008 at 10:56 PM, Gary C Martin [EMAIL PROTECTED] wrote: It does seem like read_file() is only triggered if you have previously saved an actual file to filesystem, if you just have metadata, no call is ever made to read_file() so it's a rather bad place to pick-up the metadata. At least this is what I'm seeing here – I've just created a 0 size file in my write_file() and now a resume from that journal entry is triggering read_file() every time. You are right again. Perhaps we should add a read_metadata() method? An alternative would be to have a 'datastore-loaded' method, but that would be less consistent with the current API. Hmmm, so if my activity needs it's preferences before it can display anything to the user, potential future lazy loading of the data-store (to try and speed up general activity start-up time) is going to leave folks watching my activity with a blank screen for a lazy while? Ouch. Well, metadata loading shouldn't be as slow as for the user to notice. But if you add this to all the other initializations, it is significant. Also, the user wouldn't see a blank screen, just startup will be (say) 100ms slower than for an activity that can start without reading the metadata. But the determining reason would be that metadata properties other than the custom ones are not preserved across reboots :/ http://dev.laptop.org/ticket/4662 Oooh thanks, double ouch, I hadn't spotted that gotcha yet! I'm getting the distinct feeling I should avoid current metadata interactions by an activity (too flakey and in transition just now) and just create a custom preference like file format, it only needs to store two key/value pairs at the moment, probably will eventually need only half a dozen at the most for future display options. Though I guess even that's still going to be a problem if lazy data-store loading is ever implemented (though every activity that needs to load a file for display will suffer there). Leave the metadata alone for the Journal and lower level activity class behaviours. Pity, metadata looked like a nice solution for storing simple custom activity state information, maybe in update. 2... Right, metadata in journal entries was thought exactly for that. Using some other kind of preferences file may be the best for now. Regards, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] Journal: two quick suggestions
On Fri, Feb 29, 2008 at 5:17 PM, Christoph Derndorfer [EMAIL PROTECTED] wrote: One can imagine that the subject of an activity is actually subjectively defined, and even when it's relatively clear, we might wind up with some for each of math, geometry, trigonometry, algebra, etc. To make a similar functionality available, though, we've chosen to allow developers to supply a list of tags within the .info file for any given activities, which could include several subject related words, as well as more abstract or general terms like game, simulation, or language. We hope that the ability to search by broad terms such as math or games will then turn up a list of appropriately related activities. Having just typed this and then reviewing the wiki, I notice that this part of the spec doesn't appear to be there yet! Can those familiar with this respond about the presence or absence of this capability? If this isn't there, it should get a ticket. It should be a pretty straightforward addition and simple to implement, it seems. Ahhh, that's indeed interesting, I hadn't been aware of this functionality before... Per Eben's question: Does anyone happen to know whether this is already implemented or not? Don't think that the implementation of this has been discussed before. Eben, can you enter a ticket pointing to a spec? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Accessing PenTablet coordinates from PyGTK
On Fri, Feb 29, 2008 at 6:08 PM, Patrick Dubroy [EMAIL PROTECTED] wrote: I'm trying to get access to the PenTablet from within a PyGTK application. Since the PenTablet isn't working in the current system, I had to modify xorg.conf to use the evdev driver (as in this example: http://dev.laptop.org/attachment/ticket/2198/new-xorg.conf). Doing this, I can get the PenTablet to work in relative mode to control the core pointer. But what I really want to do is to access the absolute position data from the PenTablet, to be able to draw in a GTK widget independent of the core pointer. I've tried setting SendCoreEvents to false, and then creating a GTK widget and registering for extension events. This allows to receive motion events from the PenTablet, but the x and y values in the event object are inf and nan. Anybody know why this would be? Any suggestions? Apparently there used to be a method gdk.Window.input_get_pointer that would allow you to query the location of the pointer for XInput devices. However, this method appears to be gone in the current version of GTK. Has it moved somewhere? I see it here in line 608: http://svn.gnome.org/viewvc/pygtk/trunk/gtk/gtk-types.c Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Is read_file() always called after an activity __init__?
On Sat, Mar 1, 2008 at 3:12 AM, John Gilmore [EMAIL PROTECTED] wrote: Hmmm, so if my activity needs it's preferences before it can display anything to the user, potential future lazy loading of the data-store (to try and speed up general activity start-up time) is going to leave folks watching my activity with a blank screen for a lazy while? Ouch. Ahem. The Grand Unified Theory of OLPC was that the datastore/journal were going to entirely replace the filesystem (as far as Activites are concerned). Activities aren't permitted to read/write the ordinary Linux filesystem, according to this theory. Not true. The datastore is for recording actions and storing the documents associated to those. In other words: for saving the child's work and allowing for efficient retrieval. Where have you found this theory? See the link below for an explanation of the suggested guidelines for writing to the fs: http://wiki.laptop.org/go/Low-level_Activity_API#Writable_Directories If the datastore isn't just as ready, just as fast, and just as available as the filesystem, e.g. for holding tiny little files that rapidly keep the Activity's configuation options, then there's something terribly wrong here. Can you elaborate? I'm certainly not happy with the current state of the DS, but would like to know more about which problems you see in the current implementation. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: storing Activity parameters
On Sun, Mar 2, 2008 at 1:51 PM, Gary C Martin [EMAIL PROTECTED] wrote: I'm having some indecision about my own (very simple) activity state saving. Just had a though that may add another possibility to this thread. What if both journal and file-system were used to store the activity state, with the journal settings overriding the file-system settings. This way a new activity start-up could inherit the last used activity settings, and a specific journal start-up would inherit the settings used for that specific entry. So in the case of Speak I could have separate favourite journal entries for '3 eyed alien' and another for 'Mr square eyes', then if I also just started the activity from fresh I'd pick-up whatever the last used setting were (picked up from the FS). I like this idea a lot. Thanks for sharing. [...] On 2 Mar 2008, at 01:29, Joshua Minor wrote: I implemented the save/load feature of Speak without fully understanding the other options. Now that I've seen the recent discussion about data vs instance vs the journal I think it would make more sense to have Speak save its state in a different way. On the other hand, the new frame redesign makes it much easier to resume an Activity, which would mean that parameters saved to the Journal, like Speak does now, would naturally be restored when you resume the Activity. A nice best practices document would be very handy. Yeah, storing some settings both in the fs and in the datastore would be suggested by these best practices document. Any activity author would like to start it? I'm sure many interesting discussions will come from this effort. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Need Help
On Tue, Mar 4, 2008 at 6:54 AM, Benjamin M. Schwartz [EMAIL PROTECTED] wrote: Waqas Toor wrote: | Hello All, | | I am having a problem and unable to find any solution regarding that, | I have written an activity in using GTK and glade, and have sugarized | it according to the hello world tutorial in wiki. but still i dont | know what is going on as the icon of the activity stays in the ring | and then disappears after some time, i have rechecked my code again | and again and cant find any thing that is of Coding error | | | can anybody please see the log i am attaching and tell me is rainbow | stoping it ?? You appear to have discovered a bug in Rainbow, which is dying with an assertion failure. Until Rainbow is fixed, you should do as Walter suggested and disable Rainbow. Ben is right. I think the problem is that your activity dir is world writable, you could try changing that and continue testing your activity inside Rainbow. Compare the permissions of your activity dir and contents with other activities. Can you enter a ticket about this? I don't know if Rainbow should abort the launch in these cases, but certainly should give a more helpful message. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Why is Terminal 'extra' ?
On Thu, Mar 6, 2008 at 7:39 PM, C. Scott Ananian [EMAIL PROTECTED] wrote: On Thu, Mar 6, 2008 at 11:37 AM, Mikus Grinbergs [EMAIL PROTECTED] wrote: Was not aware of the implications of the official builds from now on will contain only _base_ Activities (discussed in Ticket #6598), until I saw a recent post to the Sugar list. I happen to be a heavy CLI user. It appears the target countries for OLPC deployment have not insisted on CLI - hence Terminal is being omitted from the _base_ software distribution. I'm presuming not all users in the field will have a connection whereby to download 'extra' Activities omitted from the _base_. That leaves the text console as the approved OLPC CLI interface. Terminal, Log Viewer, and Analyze are not included in the core build, but they *are* included in the core *library*. That is, you can always install them, even though they may not show up by default in the toolbar. Now, there are people who feel strongly that Terminal should appear in the default toolbar. I don't have a strong personal opinion pro or con on this. But it *must* be (and is) *available* (even if not 'installed by default) because it is essential for OLPC to diagnose and fix problems in the field -- although it is probably not useful (and possibly even confusing) to many naive users. It is scheduled for update.2 some changes to the home view and the frame such that activities won't be launched from the frame. See more in the link below: http://wiki.laptop.org/go/Designs/Activity_Management With these changes, I wonder if all the activities that are shipped in the library should be installed instead (but not marked as favorites). Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Opening Browse programatically
On Sun, Mar 9, 2008 at 10:41 AM, Joshua Minor [EMAIL PROTECTED] wrote: I want to make a button in my activity that opens a particular URL with Browse. I found some code like this: activityfactory.create_with_uri('org.laptop.WebActivity', url) but that doesn't seem to work properly. It tries to open Browse, but throws an exception when trying to create a log file. Oddly, this does work if I run my activity via sugar-launch, but not from the frame. Is there another way to do this? As Marco said, we cannot do this currently. But perhaps you could explain what you are trying to do and perhaps someone could think of some alternative? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Accessing PenTablet coordinates from PyGTK
On Sun, Mar 9, 2008 at 8:18 PM, Patrick Dubroy [EMAIL PROTECTED] wrote: On Fri, Feb 29, 2008 at 1:38 PM, Tomeu Vizoso [EMAIL PROTECTED] wrote: On Fri, Feb 29, 2008 at 6:08 PM, Patrick Dubroy [EMAIL PROTECTED] wrote: Apparently there used to be a method gdk.Window.input_get_pointer that would allow you to query the location of the pointer for XInput devices. However, this method appears to be gone in the current version of GTK. Has it moved somewhere? I see it here in line 608: http://svn.gnome.org/viewvc/pygtk/trunk/gtk/gtk-types.c You're right, I see it there. But: python -c 'import gtk; print hasattr(gtk.gdk.Window, input_get_pointer)' returns False. And strings /usr/lib/python2.5/site-packages/gtk-2.0/gtk/_gtk.so | grep input_get_pointer doesn't find it either. Looks like that code got #ifdef'ed out 6 years ago :/ http://svn.gnome.org/viewvc/pygtk/trunk/gtk/gtk-types.c?revision=573view=markup I would ask in the pygtk mailing list and then probably open a ticket for pygtk. In the meantime, perhaps your best bet is to use ctypes to call Xlib directly. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: drawing, structured graphics
On Mon, Mar 10, 2008 at 3:09 PM, Victor Lazzarini [EMAIL PROTECTED] wrote: Hi all, what would be the best bet for going about implementing structured graphics a-la Tkinter's canvas class in XO activities? Would it be PyCairo? or PyGTK (gtk/gdk)? Pycairo looks best to me. There's not much info specific to pycairo, but between the C docs and the examples in the pycairo tarball you could get an idea of how things work. also could anyone point to a PyGTK custom widget tutorial somewhere? I had a look at one in http://www.learningpython.com/2006/07/25/writing-a-custom-widget-using-pygtk/ but the code wouldn't work. Are there others? Why is the code not working? Perhaps we could discuss it here so other interested people can participate, and perhaps someone will add a howto to the wiki? Here you can find other related articles: http://www.pygtk.org/articles.html Good luck, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Missing Dependency: xorg-x11-proto-devel = 7.2-12
On Wed, Mar 12, 2008 at 3:23 PM, Teus Benschop [EMAIL PROTECTED] wrote: See ticket http://dev.laptop.org/ticket/6650 When doing a yum install gtk2-devel, it errors on Missing Dependency: xorg-x11-proto-devel = 7.2-12. Any help would be appreciated to resolve this. Could I point yum to another repository, and if so, which one? I wonder how people compile their gtk2-based packages if such a dependency is missing. Googling on the error only give the above ticket, nothing else. Hi, I don't build anything on the XO, but I think you can tell yum to ignore that error and things will work. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Sugar jhbuild bug
On Wed, Mar 12, 2008 at 2:56 PM, James Simmons [EMAIL PROTECTED] wrote: I'm trying to set up sugar-jhbuild on my OpenSuse 10.2 computer. When I was satisfying all the dependencies reported by the build option I noticed one that seemed very odd. It wanted automake 1.7. Open Suse installs automake 1.9, and I would have thought anything 1.7 or greater would work. I satisfied all the other dependencies first, hoping this would go away, but it stayed to the end and build would not budge until I fixed it. I downloaded automake 1.7.9 source and installed it in /usr/local/bin, and that seemed to be enough to get sugar-jhbuild working again. Then I got this message: configure.ac:8: require Automake 1.9, but have 1.7.9 autoreconf: automake failed with exit status: 1 That's a Catch-22 if I ever saw one. I let the build keep running, skipping over the modules that won't compile. It's pretty obvious that I won't have anything workable afterwards, though. I would guess there are a lot of sugar-jhbuild users on this list, and I'd appreciate any suggestions. I can easily uninstall automake 1.7.9, the question is what to do after that. Hi, just in case it helps somehow in OpenSuse, here in ubuntu gutsy I installed automake 1.7.9 and 1.9 from the standard repos and things work fine. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Sugar jhbuild bug
On Wed, Mar 12, 2008 at 5:17 PM, James Simmons [EMAIL PROTECTED] wrote: Tomeu, The Suse repositories don't have RPMs for automake other than 1.9. However, you have given me an idea to try. I noticed that automake's executeable has a version number in it, and it is symlinked to automake. Maybe if I unlink automake in /usr/local/bin but leave everything else alone I can get the build to work. If it works I'll update the wiki page for Suse. I wasn't expecting to need two different versions of automake installed to do the build though. I've compiled a lot of source for Linux but I never ran into anything like this. In the hope it helps: [EMAIL PROTECTED]:~/sugar-jhbuild/source/sugar-tomeu$ ls -l /usr/bin/automake* lrwxrwxrwx 1 root root 26 2007-05-17 21:18 /usr/bin/automake - /etc/alternatives/automake -rwxr-xr-x 1 root root 270996 2006-06-26 13:01 /usr/bin/automake-1.7 -rwxr-xr-x 1 root root 221996 2006-12-06 16:55 /usr/bin/automake-1.9 [EMAIL PROTECTED]:~/sugar-jhbuild/source/sugar-tomeu$ ls -l /etc/alternatives/automake lrwxrwxrwx 1 root root 21 2007-05-17 21:18 /etc/alternatives/automake - /usr/bin/automake-1.9 I have another machine running xubuntu, which I believe is based on gutsy and has RPMs for Sugar. That has worked very well for me, but sharing with the Read activity is broken and since my app is a variant of Read and needs to do sharing I need a better test environment. I was hoping to get my openSuse box to be that environment, the build sugar-jhbuild on xubuntu after removing the sugar RPMs. You may want to run several instances of the sugar emulator in the same machine: http://wiki.laptop.org/go/Sugar_with_sugar-jhbuild#Running_multiple_instances Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Update.1 activities download script
On Mon, Mar 17, 2008 at 4:53 PM, Bert Freudenberg [EMAIL PROTECTED] wrote: On Mar 17, 2008, at 14:48 , Chris Hager wrote: Bert Freudenberg wrote: ... To save download time, do something like this first: cp -a /usr/share/activities/*.activity /home/olpc/Activities Maybe only make symlinks? ln -s /usr/share/activities/*.activity /home/olpc/Activities/ Err, the point of my script is to download activities that are deleted from /usr/share/activities once you upgrade to update.1-699 or later. There are no more pre-installed activities (except for the Journal). And finally, there is a trick in the script so it connects to the current Sugar session even if run from the console or via ssh - may be useful to somebody: if not 'SUGAR_PREFIX' in os.environ: Connect to running Sugar session cp = ConfigParser() cp.read(env.get_profile_path('session.info')) os.environ['DBUS_SESSION_BUS_ADDRESS'] = cp.get('Session', 'dbus_address') dbus.set_default_main_loop(dbus.mainloop.NULL_MAIN_LOOP) Thanks a lot, this is really useful for me already! Maybe also put it somewhere in the wiki... [[Programming Tricks]] :) I actually have no idea how evil that snippet really is ;) Wold be nice if some Sugar/DBus expert could comment. Don't really know why that file is there, but from this comment from the code that creates it, it's not something you can rely in the long term: http://dev.laptop.org/git?p=sugar;a=blob;f=src/main.py;h=e78570769e8138c827e04c1a6af820c6ce712955;hb=HEAD#l53 Perhaps in the xo you could rely on this hardcoded value? os.environ['DBUS_SESSION_BUS_ADDRESS'] = 'unix:path=/tmp/olpc-session-bus' Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Interested in the Google Summer of Code
Hi, if you are interested in hacking Sugar, please check the roadmap in the mail below and find something you would have fun working on: http://lists.laptop.org/pipermail/sugar/2008-March/004546.html I would recommend people interested in participating in the google summer code to send an email to the sugar mailing list presenting themselves and, most importantly, stating the mini-projects they would like to work on. Chances are high that, if the area to work on is in the roadmap, one core developer will offer his mentorship. Unfortunately, in this precise moment developer's time is very scarce and there's not much time for medium-term goals. But of course, everybody is free to work on whatever they want and I personally will try to answer as many questions as possible. Tomeu 2008/3/19 Blaine Booher [EMAIL PROTECTED]: I just signed up to the developer's list a few days ago (After seeing an XO live for the first time at SigCSE 2008 in Portland) and would love to work on the OLPC as a Google Code project. I look forward to seeing more information on this. In the mean time I'm going to continue figuring out how to get Sugar up and running and get my feet wet with the development platform. Thanks! Blaine 2008/3/18 Bobby Powers [EMAIL PROTECTED]: Hi, I'm a master's student at the University of Bergen and I'm interested in bringing System Dynamics to the XO. Before I start, if there is a better mailing list for this just let me know (I briefly looked through the other ones liked from the Wiki, and this seemed the most appropriate). System Dynamics (SD) [1][2] aims to help people understand the world by explicitly modeling how pieces of it work and then performing experiments in these models. It is used around the world, frequently in majority world countries, in development planning [3], for example. More formally, its a methodology for examining and describing the behavior of complex systems with an emphasis on the effects that feedback loops and time delays have. At a basic level you have to specify the mathematical equations for the different parts of your system. The same problems can be solved by writing code in a programming language (I had a course taught in Fortran a year ago...), but usually in SD the modeling is done using a visual editor where you can show causal relationships, stocks and flows graphically. I personally think the biggest short-fallings of the discipline are the barriers to entry: the current software is far from intuitive and all the major commercial offerings (there are no FLOSS products) [4][5][6] are very expensive (educational licenses alone are frequently $500 USD). Will Wright studied SD and used ideas from it when designing SimCity [7]. So I have several things I would like to work on: first is a core simulator that can transform equations into code (I'm currently working on this for my master's thesis, but don't have and funding. eesh): I'm using the JIT library from the LLVM project to be able to do this. Second I want to create a Sugar modeling interface that makes it easy and fun to create models and explore their results (collaboratively, I hope!), and third I want to hook this into Metropolis. I think it would just be so cool if you could click an icon in Metropolis and have the visual model that controls the Metropolis world pop up (in the aforementioned editor) and be able not only to fiddle with parameters, but change the structure! If all of this goes smoothly and there is more time, I would love to add the ability for models to interact with and manipulate geospatial data. I guess I am looking for people's reaction, is this something people like? I'm certainly willing to adapt myself to the collective needs and I wanted to get a discussion started before the application deadline. Oh I guess a little more background on me: I attended RPI in NY, USA for 2 years studying computer engineering, but transferred because I wanted to do something more applied. I studied environmental studies (at SUNY ESF) for a couple years, and got back into coding through classes on ecological modeling and GIS. I've been pretty heavily coding models, algorithms and interfaces for the past 2 years, mainly in C#, ObjC and some Fortran, but the past 3 months I've been using C++ for 8 hours a day and Python here and there. I've got a Mac with Linux (both FC8 and openSUSE10.3) and Windows, and I've just started over the past few weeks to pick up GTK, although I've used Cairo in a project for a couple months. I've only dabbled with the XO, but am really looking forward to developing bundles for it. I'm eager to hear what you think! yours, Bobby Powers [1] http://en.wikipedia.org/wiki/System_dynamics [2] http://www.systemdynamics.org/ [3] http://www.millenniuminstitute.net/ [4] http://www.vensim.com/ [5] http://www.powersim.com/ [6]
Re: Detecting MIME type of a shared file
On Wed, Mar 19, 2008 at 9:43 PM, Michael Stone [EMAIL PROTECTED] wrote: On Tue, Mar 18, 2008 at 09:18:05AM -0500, James Simmons wrote: how can I tell what kind of file I am receiving when someone shares a file with me? You might examine python's mimetypes module or the 'file' command. I think you can also add that mime type to the tube's metadata and read it from the receiving side? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Detecting MIME type of a shared file
On Wed, Mar 19, 2008 at 11:08 PM, James Simmons [EMAIL PROTECTED] wrote: Tomeu and Michael, It turns out Python has a method you can pass a filename to and it will identify if the file is a Zip file or not, based on the magic number, not the filename. It seems to do the trick. As a rule of thumb, I would first try to get a mime-type I can trust, and only if I cannot (I get for example application/octet-stream), I would try to sniff the type. But in your case you may be right by just sniffing it. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] OLPC Usability Testing Class Project
Hi, On Thu, Mar 13, 2008 at 11:24 PM, Frederick Grose [EMAIL PROTECTED] wrote: This note is a request for the broader community to consider potential topic areas that might be prime for some usability testing. (Here is a quick review of usability testing, http://en.wikipedia.org/wiki/Usability_testing.) Professor Keith Karn in the Information Technology Department, http://it.rit.edu/it/, of the Rochester Institute of Technology (RIT) in Rochester, NY will have 4-5 graduate students (from his class of 20) propose, and over the next 10 weeks, execute a usability testing consultation around the XO or OLPC project. The class met for the first time on Wednesday 12 March 2008, and will meet, as a whole, every Wednesday 6-9:50 pm EDT through 21 May 2008. This OLPC project team will be asked to review the wiki.laptop.org and then contact me as client representative. Because of the academic schedule, we need to review and select a testing topic area in the next 7 days and have a final testing plan prepared by 26 March 2008. What usability issue is currently most timely and significant to the project? Since OLPC is developing a new information and communication technologies platform, there are many possibilities for significant target users, subsystems, components, and activities. I suggest starting first with observing general usage of the Sugar shell and base activities (Browse, Read, Write, Paint and Journal) and move from there to other activities. At this point, I don't think more focused testing will be as useful. Please think about the project design needs, possibilities, and constraints, and suggest topics or issues here or to our wiki page, http://wiki.laptop.org/go/OLPC_Rochester%2C_NY#Project_ideas. We have a few G1G1 XOs in Rochester that we should be able to use for live testing with local children. Larger scale tests could be performed with emulated XOs or hosted Sugar in the RIT Usability Laboratories. The class will be expected to go through the human subject reviews as required. Because so many cultural variables may be important modifiers of understanding user interactions with the OLPC project, perhaps there may be some more basic or common psycho-physical aspects of usability we could address that would be timely and significant for the project. Or, we might be able to recruit user participants from one of the recently settled immigrant communities in the Rochester area to delve into the internationalization and cultural domains. Having different groups of children based on age and previous contact with computers may be more important than cultural differences, in my opinion. Some reviewers of OLPC have been critical of the shortage of reported usability testing results, so far, however, if we appreciate the pace and resourcing of the development, perhaps this is a chance to address any gaps or curiosities that you may have. We have already had some feedback from the pilot tests, but until now and because of time and other constraints, hasn't been as systematic as we need. Having your commented observations about which tasks are more problematic would already be extremely useful. We would welcome your thoughts (particularly on usability issues in the near term). Thanks to everyone for all their efforts! I'm afraid now is not a good moment to ask a big involvement from the Sugar developers, but I'm sure we'll make our best at answering more concrete questions that you have. Thanks and good luck, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Call for Papers/Talks/Ideas! Update.2 Mini-Conference
Is still the plan for Update.2 to be about the most urgent needs from the deployments? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Call for Papers/Talks/Ideas! Update.2 Mini-Conference
On Fri, Mar 21, 2008 at 6:50 PM, NoiseEHC [EMAIL PROTECTED] wrote: Could somebody answer these questions? 1. What is the status of zlib - lzo transition in jffs2? 2. What is the status of the new X architecture? (The name is DRM but I am not sure.) 3. What is the status of the shared page python stuff? Will the reference count problem will be solved in Python 3.0? Will it be released in the foreseeable future? Can you explain what's that reference count problem or give any pointer? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Call for Papers/Talks/Ideas! Update.2 Mini-Conference
Hmm, yesterday I executed free after launching some activities and got this results: http://lists.laptop.org/pipermail/sugar/2008-March/004650.html Am I very wrong to think that we can save 3.6MB per python activity instance? Tomeu On Fri, Mar 21, 2008 at 7:21 PM, NoiseEHC [EMAIL PROTECTED] wrote: It is the problem that every page will be modified (and so copied) if it contains a reference count so the metadata effectively cannot be shared. http://lists.laptop.org/pipermail/devel/2007-September/006617.html Also mentioned in (point 9.) http://lists.laptop.org/pipermail/community-news/2007-February/43.html Tomeu Vizoso wrote: On Fri, Mar 21, 2008 at 6:50 PM, NoiseEHC [EMAIL PROTECTED] wrote: Could somebody answer these questions? 1. What is the status of zlib - lzo transition in jffs2? 2. What is the status of the new X architecture? (The name is DRM but I am not sure.) 3. What is the status of the shared page python stuff? Will the reference count problem will be solved in Python 3.0? Will it be released in the foreseeable future? Can you explain what's that reference count problem or give any pointer? Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Interest in GSOC 2008
2008/3/21 Alex Escalona [EMAIL PROTECTED]: Hi, I am writing to express interest in the GSoC 2008 mentorship offered by the One Laptop Per Child association. I am a first-year graduate student in computer science at the Illinois Institute of Technology's MSCS program. My disciplinary interests include general topics in the broad field of computational-linguistics, social issues in computer science, open-source software, and programming in general. I have closely followed the development of the OLPC's mission to make laptops available to children around the world. In fact, I have blogged on a few opportunities on issues related to the OLPC's work (see here and here, for posts on these topics at http://randomatom.blogspot.com). In particular, I would be interested in helping further development in the areas of speech-synthesis/TTS, especially as concerns localization of languages and dialects, as well any general language-learning efforts at OLPC, including eSpeak (TalknType and Speech Server), among others. I completed numerous courses in Linguistics in my undergraduate studies in Anthropology and Latin-American studies at the University of Chicago, including a full year of introductory courses in semantics, phonetics, morphology, syntax, and other general topics in linguistics. I have also studied German, Russian, and Romani (a SE European language spoken by the Roma people), and am a native-speaker of Spanish, my mother tongue. In addition, I am versed in Java, and have programmed in C#, OCaml, C, C++, SQL, MySQL. I have used SVN on several projects, including as a collaborative version-control system. Moreover, I am currently enrolled in a course on programming languages and translators which covers topics in scanning, parsing, compiler design, and other topics of interest in language-related applications. In conclusion, I would welcome the opportunity to speak more about my interests in these areas, as well as to hear more about the OLPC's efforts in general linguistic and socio-cultural applications. Hi, please consider joining us at the next sugar meeting that will have a special focus on TTS: http://lists.laptop.org/pipermail/sugar/2008-March/004624.html Would be good if you could add to the topics in the wiki page mentioned there. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: JS-Python Communication using PyXPCom
Hi, thought I already had suggested this a long time ago, but anyway: - Create a XPCOM service in JS that exposes the spreadsheet functionality implemented in JS. - Create another XPCOM service in python that exposes the needed Sugar functionality. Shouldn't this allow you to integrate SocialCalc in any way you wish? Creating these two components shouldn't be too hard. Please feel free to ask in this mailing list any doubts you have. Example of JS service: http://dev.laptop.org/git?p=sugar;a=tree;f=browser/components/sessionstore;h=8f894b116ad745b0f7bc7c89e4787c89e60a9eb2;hb=309ddec8b769af42f577229bc5e3278c0328f1c4 Good luck, Tomeu 2008/3/22 Manusheel Gupta [EMAIL PROTECTED]: FYI Regards, Manu Manusheel Gupta Technical Consultant and Adviser One Laptop Per Child Inc. http://laptop.org -- Forwarded message -- From: Luke Closs [EMAIL PROTECTED] Date: Fri, Mar 21, 2008 at 1:27 AM Subject: Re: hello To: Joshua McKenty [EMAIL PROTECTED], [EMAIL PROTECTED] On Thu, Mar 20, 2008 at 10:27 AM, Joshua McKenty [EMAIL PROTECTED] wrote: Luke, Good to hear from you. (I thought it was OLPC laptop, though). What questions have you got? Joshua Hey Joshua, I've cc'd Manu Gupta, who is collaborating with me on this OLPC spreadsheet activity. (OLPC is the non-profit organization, XO is the laptop) So I'm kinda at a standstill on this project b/c I'm not sure how to proceed technically - so I'm hoping you can help here, based on the discussion we had at Northern Voice. As I mentioned in person, I've got events going back and forth between python and javascript via pyXPCom. This should work okay for most of the interactions I need to do, except one. (I'm not tied to the EventObserver, but it seems to get the job done - I'd consider using another mechanism too). The one thing where events will not work is when we need to save the spreadsheet. For instance, the user may quit the program, in which case my python method write_file() will be called, and I need to (synchronously) tell javascript to calculate the string that should be saved and give it back, so I can write it to disk. I don't think an event passing model (asynch) would work in this case. I've looked into how Javascript could define a XPCom interface, that the python code could call, but this seems to require additional steps for compiling that interface, and I'm not sure how I would end up packaging those into the sugar app. So basically, I need your help to figure out how my python code can make a synchronous method call to javascript to calculate and return stuff. Thoughts? Cheers, Luke ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Mini-Conference Proposal: desktop applications
On Sat, Mar 22, 2008 at 1:02 PM, Marco Pesenti Gritti [EMAIL PROTECTED] wrote: Sugar breaks with the standard desktop metaphor by design and doing so it introduces incompatibilities at several levels. The barrier between activities and standard applications proved to be a critical problem in practice. Fortunately most of the current code base is using GNOME and freedesktop libraries, formats and semantics. I'd like to present an analysys of the points of incompatibility. Discuss how to integrate desktop applications, beginning from the user experience requirements. Propose solutions and trade-offs to reconcile the incompatibilities in the window management and activity launching area. Things that we do differently and that clash with traditional apps: - Activities not applications: Traditional applications are more like tools that can be used to perform several different tasks. A central point of the Sugar UI is that activities are individual tasks instead that the user performs with the laptop and that can be stopped, resumed and shared at any point. - Sugar shell integration: the sugar shell performs some functionalities that traditionally were implemented inside each application. There needs to be some communication between the activity and shell processes in order to do so. - Security: activities run in their own space, isolated from the rest of the software. The security framework tries to give activities all the capabilities that may be needed, but not the ability to cause harm to the system or violate the privacy of the kid. - Small screen: the screen is small so it was decided that activities would have just one window always maximized. This also matches the goal of activities like single-tasks. - Modifiability: source code is interpreted, so the kid can study the code, modify it, and see the results without more fuss. Hope that clarifies things a bit, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: 1789 - sugar does not boot (1788 and 1790 either)
On Sat, Mar 22, 2008 at 7:37 PM, Mark Bauer [EMAIL PROTECTED] wrote: I also have had issues with builds 1788 and 1790. These would also not boot. I resorted back to 1784 to get it to boot. With 1788 it looked like it was locked up, but the power button still puts it in suspend and brings it out again. Ctl alt F1 to get to another screen did nothing until pressing suspend again a few times. It is like the keyboard isn't generating interrupts, The keystrokes are remembered and processed eventually by pressing power button several times. Waited until today and upgraded to 1790 and it didn't boot either. Anything else I can test to help??? Thanks, Mark On Mar 22, 2008, at 12:03 PM, Dennis Gilmore wrote: On Saturday 22 March 2008 11:52:47 am Michael Stone wrote: Examining http://dev.laptop.org/~rwh/announcer/joyride-pkgs.html I suspect kbd-1.12-22 - 1.12-23 since we know that 1.12-23 (accidentally) contains an html file describing a spanish keyboard map instead of the map itself. does 1788 work for you? im wondering if libnl 1.1-1.fc7 is to blame. Yes, the libnl update seems to have broken things. -bash-3.2# NetworkManager --no-daemon NetworkManager: info starting... NetworkManager: symbol lookup error: NetworkManager: undefined symbol: nl_handle_alloc_nondefault Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Mini-Conference Proposal: olpcfs
Hi, On Fri, Mar 21, 2008 at 5:53 PM, C. Scott Ananian [EMAIL PROTECTED] wrote: One major frustration with the existing datastore implementation is that is unfriendly to legacy applications: you can't easily use the command-line to browse through it, and you can't save a file from an unmodified linux application into the journal. I propose a filesystem design, called olpcfs for now, to address this deficiency, and provide versioning and synchronization mechanisms needed for the next-generation journal. It plays nicely with the upgrade mechanisms and Bitfrost, too! More information: (draft) http://wiki.laptop.org/go/Olpcfs thank you very much for devoting time to this. Some questions for now: - Do you think that the POSIX API is very much tied to the underlying implementation or should be discussed separately? - This POSIX API would be the main way to access the data? Or just one more way? If so, have you already thought about the main API? Anything better than D-Bus? In general, I would like to know first more details about your motivations for redesigning the DS. Mine are the following: - add versioned entries and delta-based storage, - get a saner way of passing files from activity side to the DS-managed side, - make it more maintainable, perhaps add one lawyer of abstraction so we can switch later to a different full text engine, metadata storage, etc, - increase scalability and raw performance. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Mini-Conference Proposal: sugar performance
What I see we can do in the short/medium term: - Launch python activities in a preinitialized python interpreter, may save memory too. - Move datastore and sharing initialization later after the UI has been launched, the user won't be able to start working sooner, but will be given a better idea of the launching process (will feel faster). - Use composition, so we save some redraws that currently make the UI to feel sluggish. Also will allow to take previews of hidden windows and that will improve considerably the switching from one activity to another. Will take some more memory. - Datastore: is currently indexing much more information than the really needed, this slows indexing, searching and retrieving. Also, the metadata is stored in a pickled dictionary inside a b-tree. Having to unpickle the whole dictionary for retrieving just a couple of properties is surprisingly costly. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Mini-Conference Proposal: sugar performance
On Sun, Mar 23, 2008 at 7:01 PM, Gary C Martin [EMAIL PROTECTED] wrote: On 23 Mar 2008, at 17:13, Tomeu Vizoso wrote: - Move datastore and sharing initialization later after the UI has been launched, the user won't be able to start working sooner, but will be given a better idea of the launching process (will feel faster). I think we spoke a little about this a few weeks back. What happens if the UI needs access to datastore, metadata, or sharing details to actually present it's UI for the task at hand? For example, launching Speak activity from the Journal requires the face to be drawn with preference data from the datastore (number of eyes, eye shape, mouth shape, spoken language). Currently most UI layout is just done in the activities main __init__ and this is already a limitation if the activity needs datastore information before drawing the UI. If the activity is started from Journal, then a read_file() method can catch the data availability and draw the required UI. If the activity is started from fresh then there is nothing other than the __init__ call. With Moon activity, I've had to put in an (arbitrary 50ms) event timer in my __init__ so I do not draw the UI right away. Then, if read_file() is triggered, I remove the event timer and draw the UI for the data that just became available. If read_file() is not called, or not called within my event timer delay, then the timer eventually fires and triggers a default UI draw. Not an idea solution. It would be useful to have 3 methods called during activity set-up: __init__ # set-up what you can then either: read_file() # for when there is journal data xor: clean_start() # for when there is no journal data Well, what I expected from activities is something like what happens in Read and Write. Both use a quite complex widget as their meat: Abiword's abiwidget and Evince's view. Both these widgets can be inserted in the hierarchy and will be drawn empty. If you set a PDF or ODT document, that document will be displayed. Basically, we can summarize this issue as moving things to be async. If everything is synchronous, the result of the user actions will last longer to appear on the screen, and the users thinks that nothing is happening and that something wrong happened. The idea is that, instead of waiting 5 seconds for the full UI to appear, the activity window would appear after, say, 3 seconds, half a second later the document will get loaded, and half a second later the user will be able to share the activity or invite somebody. Can your activities do something about this? Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: JS-Python Communication using PyXPCom
On Sun, Mar 23, 2008 at 7:06 PM, Luke Closs [EMAIL PROTECTED] wrote: On 23-Mar-08, at 3:03 AM, Tomeu Vizoso wrote: thought I already had suggested this a long time ago, but anyway: - Create a XPCOM service in JS that exposes the spreadsheet functionality implemented in JS. - Create another XPCOM service in python that exposes the needed Sugar functionality. Shouldn't this allow you to integrate SocialCalc in any way you wish? Creating these two components shouldn't be too hard. Please feel free to ask in this mailing list any doubts you have. Example of JS service: http://dev.laptop.org/git?p=sugar;a=tree;f=browser/components/sessionstore;h=8f894b116ad745b0f7bc7c89e4787c89e60a9eb2;hb=309ddec8b769af42f577229bc5e3278c0328f1c4 Thank you very much for this link, it's exactly the kind of example I was looking for. I may have a followup question or two. Forgot to mention that perhaps we'll need to add to hulahop a function for setting the dir from which the components need to be loaded (probably a subdirectory inside the activity bundle). Should be quite easy. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: New faster build 1794
Hi, looks like updates.l.o ran out of disk again. Tomeu On Mon, Mar 24, 2008 at 3:04 AM, Gary Oberbrunner [EMAIL PROTECTED] wrote: Michael Stone wrote: The updates server pulls down builds lazily on request. In other words, rsync'ing against it only tells you what builds it has _cached_, not what builds it can provide. ok, makes sense. Is there anywhere I can go to see what builds are actually available? I tried today to get faster-1795, joyride-1795 and a few others I don't remember anymore; the only the one I could get was the one already cached (1788 I guess). Just tried again to get faster-1795 and after about 60 sec it times out and says no such build exists. -v -v -v doesn't give any more info. Is it just me? My XO's connection is pretty weak most of the time, but not *that* weak. I can ping updates.laptop.org with no packet loss. Still, please let us know when you're unable to update to builds with olpc-update, and file bugs if necessary. It just said it didn't think such a build existed. -- Gary Oberbrunner ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Mini-Conference Proposal: hand-key scrolling
Hi, our UI was designed taking in account that we would have this feature, but we haven't until now and it's not clear when we'll get it nor which amount of modification will be needed to activities that wish to use it. I think we should discuss the alternatives we have here, including forgetting about it and redesigning the UI to take in account the lack of scroll key support. http://dev.laptop.org/ticket/447 Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Mini-Conference Proposal: sugar performance
On Sun, Mar 23, 2008 at 9:01 PM, Gary C Martin [EMAIL PROTECTED] wrote: On 23 Mar 2008, at 18:32, Tomeu Vizoso wrote: The idea is that, instead of waiting 5 seconds for the full UI to appear, the activity window would appear after, say, 3 seconds, half a second later the document will get loaded, and half a second later the user will be able to share the activity or invite somebody. Can your activities do something about this? I have just one activity at the moment, Moon, the difficulty I'd face is that I really don't want multiple redraws at start-up for what you're calling the document area, it's quite cpu expensive in my case (at least a second or so per refresh). And I have a planned activity where it may be even worse (a lon/lat tag sharable 3D Earth view). Currently there is no way an activity can know (in its __init__) if read_file() is going to be called handle.object_id is not enough? If no value is in there, the activity was started anew. If there's a value, that's the object id of the journal entry that the activity should be resuming. so with your proposed changes, yes I can (and do) set-up the default tool bar, a black screen and my text panel early, but I'd then need to have my __init__ set-up a timer to arbitrarily ~0.5 or more sec, just incase a read_file() call arrives. So every fresh launch will twiddle it's fingers for an extra unnecessary ~0.5 sec, and if after a Journal launch and the ~0.5 sec was not long enough, the user will get a nasty double redraw of the main cpu expensive widget refresh, slowing things down even more (and looking bad as well). Letting the activity know data is, or isn't, expected from the Journal is the missing feature here. Always having a read_file() xor a clean_start() call would resolve this. Other options could be to just always call read_file() data or no data and let the activity deal with perhaps a file_name = None, but that will likely break some existing activities. Regards, Gary P.S. clean_start() is just a stand-in name, sure you'd have a better name for it, maybe no_file()? On OS X under Cocoa we have the usual init method to get the base things going, and then later an awakeFromNib method is called so that an application knows its resource files have been dealt with by the runtime – that's when we can start parsing preference settings etc and tweaking the UI to match. There's even then a final applicationDidFinishLaunching method you override to kick things off once the set-up is all over. This Mikus' post explains much better what I was trying to: http://lists.laptop.org/pipermail/devel/2008-March/012094.html Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Mini-Conference Proposal: olpcfs
On Mon, Mar 24, 2008 at 5:35 PM, C. Scott Ananian [EMAIL PROTECTED] wrote: On Sun, Mar 23, 2008 at 12:20 PM, Tomeu Vizoso [EMAIL PROTECTED] wrote: - Do you think that the POSIX API is very much tied to the underlying implementation or should be discussed separately? I have at least three different implementation ideas. I plan to use FUSE for the crappy first draft implementation; it may turn out that the crappy first draft is actually good enough for real use, but there are certainly lots of other alernatives, both for flash and for disk-based filesystems. Martin seems to be arguing for using git under the covers; that's a fine implementation. - This POSIX API would be the main way to access the data? Or just one more way? If so, have you already thought about the main API? Anything better than D-Bus? The POSIX API should be the main way to access the data. Complex compound queries may be more efficient if they use a special-purpose API, and there might be special hooks for the garbage-collector and maybe import/export tools, but fundamentally data store objects should be just files. In general, I would like to know first more details about your motivations for redesigning the DS. I outlined these at the top of the olpcfs wiki page. Sure, I was asking you to extend your self a bit on that. Mine are the following: - add versioned entries and delta-based storage, Delta-based storage is an implementation detail, certainly possible (I provided cites in the olpcfs page for how it would be done). I don't think it should be a visible part of the API. Of course it is an implementation detail, but one that is a major roadblock in the effort to implement the specified design. Versioning is definitely a motivation; the Journal might add extra versioning metadata to account for non-local versions; I'll try to find time to write that up more explicitly. Thanks. - get a saner way of passing files from activity side to the DS-managed side, My answer here: they are just files. All existing applications can open files, given a path. I was talking here about the other way, checking in files into the DS: during a Write session, what needs to do the activity in order to get a new version every time after the user clicks on the Keep button? Just close the file and open it again? In most cases, every time an activity saves the current state several files plus their metadata will be updated, can that happen atomically? - make it more maintainable, perhaps add one lawyer of abstraction so we can switch later to a different full text engine, metadata storage, etc, The proposed olpcfs is exactly the layer of abstraction. Lots of different implementations under the hood of the proposed API are possible. - increase scalability and raw performance. Not sure exactly what you mean here, but these seem to be implementation issues, not API issues. Unless you think that some of the proposed APIs are impossible to implement efficiently? Our existing Sugar activities don't heavily exercise the filesystem, so I think that raw performance is not an important metric for our first implementations. I'm much more concerned with the transparency and interoperability of the API. I was just stating my motivations for wanting to replace the existing DS, nothing directly related to olpcfs. We do have performance problems with the current DS, even with relatively few entries. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Tkinter in olpc
On Thu, Mar 27, 2008 at 11:09 PM, Aaron Konstam [EMAIL PROTECTED] wrote: Does anyone have and opinion on whether python's Tkinter facility could be added to python on the XO by simply copying the contents of lib-tk from an f7 system? Don't know much about tkinter, but you could try shipping lib-tk inside your activity bundle. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
OLPC is hiring a Sugar developer
Hi all, as you may have already noticed, some days ago (so not an April fools' hoax) appeared a new job posting in the main laptop.org site: http://www.laptop.org/en/jobs.shtml#User%20Interface%20Developer%20for%20Sugar So, if you would like to become part of the core Sugar team and help to deliver a new platform for education, please apply! Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Mini-conference on Apr 3/4!
On Mon, Mar 31, 2008 at 4:44 AM, Jon Phillips [EMAIL PROTECTED] wrote: On Sun, 2008-03-30 at 23:40 +0200, Tomeu Vizoso wrote: - just have the talks via mailing list and IRC? I think that this will not work...if there is really a plan to have a conf., need to give like 1-2 months minimum for travel, esp. because so many are around the world. IMO, we should move the event to middle or end of may and then there will be a proper timeline and possibility for turnout. If we do this, then perhaps we should set now the goals for update.2 and talk about the future in a May conference? I don't think we have time to do much more for update.2, unless we want to end shipping it after the summer... Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Power Management
2008/4/2 Aswathy [EMAIL PROTECTED]: Hi We are trying to enhance the power management module in OLPC. We thought of developing the application using Gtk+ in C. We have tried one small program in OLPC. Built using gtk+ in C. It displays the battery details of the OLPC. We have run the program in Linux platform and got the required output. But when we tried in OLPC, the output that we expected is not shown. It will show up the details and all, but the window is not complete ie with no buttons and options that normally a activity in OLPC has. So we need to know how we can implement it in compatible with the OLPC. Looking forward for reply. Hi, you may want to explain the bigger picture of what you want to do, so we can give you better suggestions. In particular, it shocks me as a bit strange that you need a Sugar activity in order to enhance the power management module in OLPC. Good luck, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: Power Management
On Wed, Apr 2, 2008 at 12:54 PM, Aswathy [EMAIL PROTECTED] wrote: This is our whole idea. Do give suggestions on this. Also how we can make this application compatible with the OLPC. Actually we were really new to the OLPC. We just came to know about OLPC last year. We started thinking about our project this January. So we have very limited knowledge about OLPC. Please do give suggestions your valuable recommendations on this. For knowing more about OLPC, please consult the wiki: http://wiki.laptop.org As starters: http://wiki.laptop.org/go/Power_Management http://wiki.laptop.org/go/Sugar http://wiki.laptop.org/go/HIG I cannot help you on the system level, but regarding integration with sugar, I recommend you to install sugar-jhbuild on your F7 machine and work on modifying the Sugar shell. Don't worry if it's in python, if you already know C and Gtk+, you'll get it very quickly. And you'll have learned one more useful language ;) There are plans of doing some of the things you talked about, but hasn't been done yet because of lack of man power. If you wanted to contribute your work on that area, you'll find people happy to help you. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] Mini-Conference Proposal: Toolbars Tabs (or lack thereof)
On Thu, Apr 3, 2008 at 5:13 AM, Wade Brainerd [EMAIL PROTECTED] wrote: I wonder if the differences between Sugar and a regular window manager aren't so severe that it might be worth offering a simple desktop environment which runs within Sugar as a Activity? You would download and launch this Activity, and its interface would be a regular Linux desktop. It would support multiple windows, a taskbar, a start menu, etc. (I'm using Windows terms here). You could install and launch regular GTK+ applications in it, and they would not need to be sugarized at all. The GTK theme used by the Desktop would still match Sugar of course. If we did this, we would not be stuck with trying to shoehorn third party applications into a UI they were not designed for (one toplevel window, no menus) and would conceivably be able to launch any Linux app assuming the needed libraries were installed. I'm not an X windows expert, but does this sound like possible way to solve this issue? Someone wrapped Xephyr in an activity, so you get something similar to the Classic environment in OSX. You could run a full gnome or a single application inside that activity. But then the application would run in a different X server and wouldn't be able to copy paste, drag and drop, wouldn't be able to use hw acceleration, etc. Anyway, the problem here are not accidental incompatibilities as would be trying to run a KDE app in a GNOME-only installation. It was decided to part from the traditional desktop scheme because we aimed to offer a system that supports education, not office work. And I don't think that we should try to shoe-horn applications into activities. If an application's architecture separates the controller from the view and thus can expose a simple view component without controller stuff, then it's a relatively easy effort to wrap that view inside a widget and provide python bindings. Thus kids can modify and adapt all the python code around that black box immediately after receiving the XO. Regardless of that, I can understand how current application authors may feel frustrated by the additional effort required to port apps to activities, and of course welcome any contribution to make that easier. Apart from the debate of being easier or not to port apps with one or another architecture, I would like to point out the fact that if the project reaches its goals for the next year, there should be more developers for our platform than for Maemo or even the whole GNOME. So it's not like we are Apple, we'd have a much bigger potential in the not so long term. Also, GNOME apps are currently encouraged to provide those embeddable view widgets, as today do Abiword, Evince, Mozilla,... because of the GNOME Mobile initiative. Heard that someone was working on that for Gnumeric and I'd bet wouldn't be that hard for Inkscape. My point is that reusing all that code inside proper activities is not so hard, there are just too little hands yet. Please don't interpret my words as an opposition to increase compatibility with existing applications, take it as one more point of view on the problem. Thanks, Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: [sugar] Mini-Conference Proposal: Toolbars Tabs
On Thu, Apr 3, 2008 at 3:45 PM, Benjamin M. Schwartz [EMAIL PROTECTED] wrote: Perhaps, in the intervening decade, first-world computer users have convinced themselves that they cannot adapt, but they are wrong. Humans are very adaptable. A teacher who has learned one version of Sugar will not have to spend more than a few days or hours with the new version before understanding it. I'm sure they can adapt, but they need to be motivated to do so. What could happen if we don't make sure these changes are well-received? I think that's Gregorio's message. Tomeu ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel