Re: Tentative Plans for Nepal's School Server and related infrastructure
Well, creating points which go 'INTO' your server is probably not a really good strategy. However, one could do it the other way with ssh keys (i.e. no login), 'from' the server. I've thought about this before... one solution... server has a webpage which allows the XO to see and logon, and user clicks 'back me up now'. The webpage detects the IP of the XO, writes it to a special file of 'XO laptops to backup'. A server cron job, checks for this file, and grabs a IP from the list, initiates a ssh request 'into' the XO laptop using previously shared keys, 'grabs' the needed files, then closes the connection. I think that this would be safer scenario, than having a bunch of random XO's connecting 'INTO' a server. *shrug* -ixo On Mon, Jan 28, 2008 at 3:05 AM, Luke Gorrie [EMAIL PROTECTED] wrote: Ivan Krstić [EMAIL PROTECTED] writes: On Jan 22, 2008, at 10:28 PM, Bryan Berry wrote: We really need the incremental backup feature. That is a core requirement that came up many times in last week's OLPC Learning Conference. I'll see about finishing it up for you, then. Please ping me from time to time to make sure this doesn't drop off my radar. Just out of curiosity: would having the XOs periodically (cron) rsync-over-ssh /home/olpc to the school server be hopelessly naive for some reason? ___ 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: Tentative Plans for Nepal's School Server and related infrastructure
I forgot to mention some 'dabbling' I did in this area too. :) Several scripts I created, some work better than others, http://wiki.laptop.org/go/User:Ixo/Script I also started a 'rsync' reference page, for others to expand upon. . . http://wiki.laptop.org/go/rsync Have fun, and good luck, --ixo 2008/2/16 Ixo X oxI [EMAIL PROTECTED]: Well, creating points which go 'INTO' your server is probably not a really good strategy. However, one could do it the other way with ssh keys (i.e. no login), 'from' the server. I've thought about this before... one solution... server has a webpage which allows the XO to see and logon, and user clicks 'back me up now'. The webpage detects the IP of the XO, writes it to a special file of 'XO laptops to backup'. A server cron job, checks for this file, and grabs a IP from the list, initiates a ssh request 'into' the XO laptop using previously shared keys, 'grabs' the needed files, then closes the connection. I think that this would be safer scenario, than having a bunch of random XO's connecting 'INTO' a server. *shrug* -ixo On Mon, Jan 28, 2008 at 3:05 AM, Luke Gorrie [EMAIL PROTECTED] wrote: Ivan Krstić [EMAIL PROTECTED] writes: On Jan 22, 2008, at 10:28 PM, Bryan Berry wrote: We really need the incremental backup feature. That is a core requirement that came up many times in last week's OLPC Learning Conference. I'll see about finishing it up for you, then. Please ping me from time to time to make sure this doesn't drop off my radar. Just out of curiosity: would having the XOs periodically (cron) rsync-over-ssh /home/olpc to the school server be hopelessly naive for some reason? ___ 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
OLPC News 2008-02-16
1. Lima: Ivan Krstić, Walter Bender, and Edgar Ceballos spent much of the week working closely with Oscar Becerra Tresierra's team within the Peruvian ministry of education on the details of the Peru deployment. 2. The Inter-American Development Bank announced that it will finance a pilot project to test whether one-to-one computing can improve teaching and learning in schools in Haiti (the poorest country in the Western Hemisphere). The IDB will make a $3-million grant for the pilot project, which will distribute XO laptops to 13,200 students and 500 teachers in 60 Haitian primary schools. The OLPC Foundation will contribute XO laptops to the project through the Give One Get One program. 3. Laptop hardware: We have approved an engineering change to a lower-cost stainless steel for the metal components of the laptop. This was done in response to a sharp rise in cost of the particular alloy we had been using. Drop tests and corrosion tests run by Quanta show no change from the current material. 4. Power: Richard Smith has been investigating what it is going to take to provide an off-grid solar system that will be able to run a school server for eight hours a day (the Peru challenge). With SJ Klein's help, he has engaged the community, where he is finding great interest this problem; we will leverage this interest by working with some community testing sites on the long-term testing of a solar-power systems. Specifically, the OLPC chapter at the Illinois Math and Science Academy is talking to Richard about testing solar panels and other materials through a green- energy project they have underway. The same project is already collaborating with a research group at Fermilab studying new energy sources. 5. Embedded controller (EC): Exercising the EC charging system with spiky input power has uncovered a bug: the EC seems to get confused. Although it turns on the charge light, the charging circuit is not enabled. Richard is investigating the root cause. 6. Multi-battery charger: Lillian Walter has made excellent progress on the firmware: it now detects battery insert and removal; it enables or disables the charging channels; and it is upgradeable via the USB and serial port. When the prototype hardware is ready, the firmware will be in good shape for testing. Bitworks received the first round of plastic parts off of the tooling and some of the smaller sheet metal parts. These parts are on their way to Gecko for inspection and approval. The new PCB with the design changes for a cooler-running charger is finished and sent out for fabrication. Unless the parts have serious fit problems, the end of February still looks good for the first complete mechanical assembly using these test parts. 7. School server: John Watlington doesn't have a new build to announce this week; however, he does reports that the build environment seems stabilized (Look for an announcement on [EMAIL PROTECTED] soon). There are three new groups using the server software in anticipation of deployments in Nepal, Pakistan, and South Africa; thanks for all of their help testing and improving the software. We are planning for a week-long network test and debug session in Cambridge starting on 25 February. The goal is to recreate some of the scenarios we are seeing in the field in order to prioritize the bug fixes that will make the biggest (positive) difference for our deployments. 8. Firmware: Mitch Bradley implemented a change to the secure-startup process so that it will continue booting even if there is insufficient power to reflash the firmware. This is in response to reports from the field as OLPC begins mass deployments; upgrades were leaving some machines stuck—they would not boot without upgrading the firmware, but did not have the redundant power sources (both battery and line power) required for upgrading the flash. 9. Schedules/releases: Release Candidate (RC) 2, Build 691 went through testing this week. We are already working on RC 3 as there were some important bugs found with mesh sharing, translations that are ready to go, and activity updates that need to get in. Build 693 is available this weekend for developer-only testing—it is not signed yet. At the same time we are trying to wrap up Update 1, we have already started collecting requirements for Update 1.1 based on feedback from our first deployments (Uruguay, Mongolia and Peru). We are looking for some help from the community for testing builds as the become available—especially as we get close to the final Update 1 release candidate. Please visit the test wiki pages (http://wiki.laptop.org/go/Test_issues) to get started. 10. Localization: Sayamindu Dasgupta spent the first part of the week testing the PO files of all languages for errors. The testing was followed up by a massive push of all translations to the master Git repository at dev.laptop.org in order to ensure that they are included in Update 1. This also required the involvement of the module maintainers,
Re: tonight's progress
Moving this thread to devel. SJ On Feb 16, 2008 11:54 AM, edward baafi [EMAIL PROTECTED] wrote: Hi Luke, It appears from your code snippet that you have a browse activity build which has pyxpcom enabled.. Is this built by default on Joyride? If not, how can you best get me access to your pyxpcom enabled environment? What I've discussed with SJ and Manu is a somewhat different approach than what you seem to be pursuing.. We're looking at wrapping core functionality we want access to from javascript (ex: launching journal to browse for or save a file) in xpcom interfaces.. Then one could simply write javascript code to manipulate the DOM with hooks into sugar stuff like journal, presence, sharing, etc.. I'm not sure how Mozilla's privileged code model will relate to bitfrost, but I think this route is worth pursuing.. Alternatively, if you are interested in using python to manipulate the DOM, this is also possible directly (http://developer.mozilla.org/en/docs/PyDOM).. This should be possible in your build or it is a simple config (--enable-extensions=python,default) change.. Looking forward, Ed On Feb 14, 2008 5:47 PM, Manusheel Gupta [EMAIL PROTECTED] wrote: Luke, Thanks for the update. I wish to introduce you to Edward Baafi, who has been working with PyXPCOM for a long time. Me, SJ, and Edward had a detailed discussion about JavaScript-Sugar integration yesterday. Komodo, a project from the ActiveState Community is an interesting use-case that can be very useful to the Spreadsheet project. Edward directed us to the following links: http://www.mail-archive.com/[EMAIL PROTECTED]/msg02285.html http://aspn.activestate.com/ASPN/Mail/Message/pyxpcom/3476506 Edward, Thanks a lot for your pointers. Regards, Manu Manusheel Gupta Technical Consultant and Adviser One Laptop Per Child Inc. http://laptop.org On Thu, Feb 14, 2008 at 3:25 PM, Luke Closs [EMAIL PROTECTED] wrote: Hello guys, So tonight I made some progress on the python - js communication, and I also better understand how activity load/saving should work. In my python code, when I set up the WebView object, I can addEventListener for the 'click' event. Then I create a python class that is called when I click on the HTML page. In the event listener, I can check for event targets with a certain id. I set this up for a certain span in a simple HTML page, and my python code could grab the content from inside the span, and change it! The code looks like this: class EventListener: _com_interfaces_ = components.interfaces.nsIDOMEventListener def handleEvent(self, event): t = event.target if t.id != 'count': return elem = t.queryInterface(components.interfaces.nsIDOM3Node); print elem.textContent elem.textContent = '42' web_view.window_root.addEventListener('click', EventListener(), False) With this bit of understanding, I need to start thinking about exactly how we'll integrate with the spreadsheet. I'll start thinking of the 2 main actions: save: * python fires event to say start saving * js runs code to create the content to be saved, sticks it into an element * js fires event to say ready to save on the element * python reads textContent from event target * python saves to disk load: * python reads from disk * python writes content into dom * python fires event to say ready to load I need to extend my simple test program to save/restore data between runs, and then to save into the dom. From what I read, my activity just needs to implement read_file and write_file... Anyways, I'm going to sleep on this. BTW, I'm going snowboarding at Whistler tomorrow evening, and taking Friday off. The weekend looks busy, so I can't promise any hacking. :) Cheers, Luke ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: using the browser as an activity platform : pyxpcom / hulahop / Gears
The core use here is being able to use the browser as activity platform -- letting web developers good at JS code and test on most any platform, and develop something that can be a first-class activity within Sugar. One example is Dan's javascript spreadsheet, anothe ris a dynamic library (see for instance http://wiki.laptop.org/go/Dynamic_library), another is an existing web service online that one might want to run locally. In addition to pyxpcom, let me add Google Gears as a useful piece of this platform, especially when offering local use of popular online tools. Off the top of my head, MediaWiki, MindMeister, I copy Ben Lisbakken, a gears maintainer, who reports that there is a Gears patch to make it work without extension support... Ben, I'll also introduce you to marcopg separately. SJ On Feb 16, 2008 12:36 PM, Samuel Klein [EMAIL PROTECTED] wrote: Moving this thread to devel. SJ Marco wrote: Hello, I'm really excited about this work. Hulahop is one of the things which I'd really to develop further but I never get time for it. So it's awesome you guys are looking into it. I agree with Tomeu, though. Please move the discussion on the public mailing list. Can someone take care to post a summary of the discussions and the work which has been done so far? Thanks! On Feb 16, 2008 11:54 AM, edward baafi [EMAIL PROTECTED] wrote: Hi Luke, It appears from your code snippet that you have a browse activity build which has pyxpcom enabled.. Is this built by default on Joyride? If not, how can you best get me access to your pyxpcom enabled environment? What I've discussed with SJ and Manu is a somewhat different approach than what you seem to be pursuing.. We're looking at wrapping core functionality we want access to from javascript (ex: launching journal to browse for or save a file) in xpcom interfaces.. Then one could simply write javascript code to manipulate the DOM with hooks into sugar stuff like journal, presence, sharing, etc.. I'm not sure how Mozilla's privileged code model will relate to bitfrost, but I think this route is worth pursuing.. Alternatively, if you are interested in using python to manipulate the DOM, this is also possible directly (http://developer.mozilla.org/en/docs/PyDOM).. This should be possible in your build or it is a simple config (--enable-extensions=python,default) change.. Looking forward, Ed On Feb 14, 2008 5:47 PM, Manusheel Gupta [EMAIL PROTECTED] wrote: Luke, Thanks for the update. I wish to introduce you to Edward Baafi, who has been working with PyXPCOM for a long time. Me, SJ, and Edward had a detailed discussion about JavaScript-Sugar integration yesterday. Komodo, a project from the ActiveState Community is an interesting use-case that can be very useful to the Spreadsheet project. Edward directed us to the following links: http://www.mail-archive.com/[EMAIL PROTECTED]/msg02285.html http://aspn.activestate.com/ASPN/Mail/Message/pyxpcom/3476506 Edward, Thanks a lot for your pointers. Regards, Manu Manusheel Gupta Technical Consultant and Adviser One Laptop Per Child Inc. http://laptop.org On Thu, Feb 14, 2008 at 3:25 PM, Luke Closs [EMAIL PROTECTED] wrote: Hello guys, So tonight I made some progress on the python - js communication, and I also better understand how activity load/saving should work. In my python code, when I set up the WebView object, I can addEventListener for the 'click' event. Then I create a python class that is called when I click on the HTML page. In the event listener, I can check for event targets with a certain id. I set this up for a certain span in a simple HTML page, and my python code could grab the content from inside the span, and change it! The code looks like this: class EventListener: _com_interfaces_ = components.interfaces.nsIDOMEventListener def handleEvent(self, event): t = event.target if t.id != 'count': return elem = t.queryInterface(components.interfaces.nsIDOM3Node); print elem.textContent elem.textContent = '42' web_view.window_root.addEventListener('click', EventListener(), False) With this bit of understanding, I need to start thinking about exactly how we'll integrate with the spreadsheet. I'll start thinking of the 2 main actions: save: * python fires event to say start saving * js runs code to create the content to be saved, sticks it into an element * js fires event to say ready to save on the element * python reads textContent from event target * python saves to disk load: * python reads from disk * python writes content into dom * python fires event to say ready to load I need to extend my simple test program
Re: Offer of help for Amharic
On 16 Feb 2008, at 00:04, Edward Cherlin wrote: I have got Amharic working on my G1G1 XO... Could you put that process on the Wiki? I'm assuming that you used SCIM, since there isn't an Ethiopian Unix keyboard. Hi Edward, Many thanks for providing me with a foothold! The process for getting Amharic to work was already in the Wiki. The problems I reported came from not following them :-( I have updated the page at: http://wiki.laptop.org/go/Ethiopian_Setup As you can see, I have added a section entitled Detailed instructions for the rest of us, which assumes that the reader knows little about Linux or Amharic. I hope you find this clear. Which activities permit Amharic input? I've been working with Write, but input for all activities gets set to Amharic. Even Terminal. This caused me some alarm, until Simon Schampijer pointed out that you can use ctrl-alt-neighborhood key to bring up a virtual console which is always set to use US-English. I spent some time today with a couple of Ethiopian friends, looking at the Amharic keyboard input and display. Do you know anybody who can help with Tigrinya or Ge'ez (for content, not UI)? What exactly are you looking for? My guess is that you want a text document in UTF-8 and a PDF or image file showing exactly how the text document ought to display, so that you can compare the OLPC output with the expected output. Or are you looking for something else? They encountered a number of issues both with the keyboard layout and with the way the characters were displayed. Is that a font issue or a rendering issue, or can't you tell? Amharic uses a different character for Y depending on whether it is a consonant (Yam) or a vowel (maY). My Ethiopian friend considers Power Ge'ez 2000 to be the standard for Amharic input, at least on Windows. This uses Shift-Y for the Y consonant and lowercase y for the vowel. The OLPC keyboard uses Y (with or without Shift) for the consonant and ee for the vowel. Having to type ee instead of y could be considered a bug, but it may conform to a different standard that I am unaware of. The Ge'ez characters are in fact syllables. Each individual character indicates a consonant-vowel pair. Set up the XO as instructed at http://wiki.laptop.org/go/Ethiopian_Setup , then try the following in the Write activity. 1) Type m to see the basic me syllable character 2) Type a: the character now changes shape and appears as the ma syllable character The following appear to be Write bugs as they do not occur in Pippy or Terminal: BUG 1) Type mespace: you get two m characters and a space. BUG 2) Type jee (to get the jy syllable): you get two characters - jejy The following bug appears to be activity-independent: BUG 3) Type Shift-S. This should bring up a rounded w character, as shown on the S key in the image at http://wiki.laptop.org/go/Image:Ethiopic-B3.png . Instead it shows the tse character which is shown on the [ key in the image. To get the Shift-S character you need to press (lowercase) s twice. (In fact, the character shown on the S key is Se, which requires you to type sse). BUG 4) Typing [ outputs [, and not the tse character which appears on the [ key in the Ethiopian keyboard. These issues arose almost immediately, with the result that we did not explore much further. I got a tip of the iceberg feeling. How should I report these issues, and to whom? Bug reports, without question. Can you summarize them on the Amharic Wiki page, with links to the bugs? There is a template for bug references. I will do this shortly, once I've understood the submission process. In the meantime, I have described the bugs at the foot of the page at http://wiki.laptop.org/go/Ethiopian_Setup I put the quite primitive and feeble Ethiopian examples on the Input Methods page. Here? http://wiki.laptop.org/go/SCIM#Ethiopic.2FAmharic The text came up as question marks in Firefox on my Mac Intel (OS 10.5) machine. I downloaded and installed James Kass's Code2000 shareware font from http://code2000.net/CODE2000.ZIP, then restarted Firefox and reloaded the page. Now the fidels display correctly. My knowledge of Amharic could be written on the back of a table napkin. Me, too. The OLPC initiative really challenges all our assumptions, including the assumption that only those who master a given field can make a difference in that field. It's both a humbling and an inspiring experience. James ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Re: tonight's progress
the firefox / whatwg already have a fleshed out model for how 'offline' mode should work for a web browser, including local document storage, etc. have you looked at that (before we invent our own ways to write web apps)? --scott On 2/16/08, Samuel Klein [EMAIL PROTECTED] wrote: Moving this thread to devel. SJ On Feb 16, 2008 11:54 AM, edward baafi [EMAIL PROTECTED] wrote: Hi Luke, It appears from your code snippet that you have a browse activity build which has pyxpcom enabled.. Is this built by default on Joyride? If not, how can you best get me access to your pyxpcom enabled environment? What I've discussed with SJ and Manu is a somewhat different approach than what you seem to be pursuing.. We're looking at wrapping core functionality we want access to from javascript (ex: launching journal to browse for or save a file) in xpcom interfaces.. Then one could simply write javascript code to manipulate the DOM with hooks into sugar stuff like journal, presence, sharing, etc.. I'm not sure how Mozilla's privileged code model will relate to bitfrost, but I think this route is worth pursuing.. Alternatively, if you are interested in using python to manipulate the DOM, this is also possible directly (http://developer.mozilla.org/en/docs/PyDOM).. This should be possible in your build or it is a simple config (--enable-extensions=python,default) change.. Looking forward, Ed On Feb 14, 2008 5:47 PM, Manusheel Gupta [EMAIL PROTECTED] wrote: Luke, Thanks for the update. I wish to introduce you to Edward Baafi, who has been working with PyXPCOM for a long time. Me, SJ, and Edward had a detailed discussion about JavaScript-Sugar integration yesterday. Komodo, a project from the ActiveState Community is an interesting use-case that can be very useful to the Spreadsheet project. Edward directed us to the following links: http://www.mail-archive.com/[EMAIL PROTECTED]/msg02285.html http://aspn.activestate.com/ASPN/Mail/Message/pyxpcom/3476506 Edward, Thanks a lot for your pointers. Regards, Manu Manusheel Gupta Technical Consultant and Adviser One Laptop Per Child Inc. http://laptop.org On Thu, Feb 14, 2008 at 3:25 PM, Luke Closs [EMAIL PROTECTED] wrote: Hello guys, So tonight I made some progress on the python - js communication, and I also better understand how activity load/saving should work. In my python code, when I set up the WebView object, I can addEventListener for the 'click' event. Then I create a python class that is called when I click on the HTML page. In the event listener, I can check for event targets with a certain id. I set this up for a certain span in a simple HTML page, and my python code could grab the content from inside the span, and change it! The code looks like this: class EventListener: _com_interfaces_ = components.interfaces.nsIDOMEventListener def handleEvent(self, event): t = event.target if t.id != 'count': return elem = t.queryInterface(components.interfaces.nsIDOM3Node); print elem.textContent elem.textContent = '42' web_view.window_root.addEventListener('click', EventListener(), False) With this bit of understanding, I need to start thinking about exactly how we'll integrate with the spreadsheet. I'll start thinking of the 2 main actions: save: * python fires event to say start saving * js runs code to create the content to be saved, sticks it into an element * js fires event to say ready to save on the element * python reads textContent from event target * python saves to disk load: * python reads from disk * python writes content into dom * python fires event to say ready to load I need to extend my simple test program to save/restore data between runs, and then to save into the dom. From what I read, my activity just needs to implement read_file and write_file... Anyways, I'm going to sleep on this. BTW, I'm going snowboarding at Whistler tomorrow evening, and taking Friday off. The weekend looks busy, so I can't promise any hacking. :) Cheers, Luke ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel -- ( http://cscott.net/ ) ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel
Salut and Suspend/Resume issues
There are a couple of important issues/bugs regarding Salut and Suspend/Resume. FIRST, there is a sugar issue, (or at least it seems so). When an XO resumes after long suspends, all icons(APs, XOs, but not the meshes) instantly vanish*(#6467)*. Then they slowly reappear. Although with the APs the situation is pretty straightforward, with the XOs we have several cases: - all XOs in the mesh return almost instantly - all or some XOs return slowly one by one - nothing returns, and avahi peer list is empty*(#6498)* It seems that although suspend should keep the previous situation frozen, in fact the avahi peer list is affected. SECOND, we have a network issue, which suggests a war between suspend/resume and avahi/salut Suspend will be interrupted only with unicast packets, but Salut/avahi rely on multicast packets. The result is that when an XO that appears in the mesh view is suspended, avahi will treat it just as if it has left the mesh. - When an XO is being used(not suspended), all other suspended XOs in the mesh will start failing 1 by 1 - From the moment an XO is suspended in about 10-30min the icon will vanish.*(#6282)* - If within this time new XOs join the mesh than the icon will vanish instantly!!*(#5501)* - If gradually several removed XOs start to resume, their icons will start returning *As you can see, the XOs have very little chance to even see each other** RESULT: A mesh of several XOs will avoid icons flashing here and there, ONLY if no XO has been idle for more 10min, which is rather unlikely. Considering the effects of the FIRST issue, you would practically have to restart sugar or switch channel back and forth to return to your original status. Salut/avahi are very sluggish in handling failed connections, and suspend resume enhaces this effect. ___ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel