[Olpc-uruguay] Proyecto de grado Goalbit+Ceibal

Flavio Danesse fdanesse en gmail.com
Dom Ago 15 17:59:38 EDT 2010


Sobre el ejemplo que te pasé, te paso lo mismo pero para ejecutar en la
terminal:
Copia este código en un archivo y lo guardas con el nombre navegador.py,
luego lo ejecutas con python navegador.py (en la xo funcionará sin
problemas).

#!/usr/bin/env python

import os
import hulahop
from sugar import env
hulahop.startup(os.path.join(env.get_profile_path(), 'gecko'))

from hulahop.webview import WebView

import gtk

ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)
ventana.set_size_request(800,600)
ventana.connect("destroy",gtk.main_quit)

navegador=WebView()
navegador.load_uri("http://google.com")
navegador.show()

ventana.add(navegador)

ventana.show()
gtk.main()

El modulo hulahop es un navegar mozilla para incrustar en aplicaciones gtk,
puedes ver más detalles en olpc => http://wiki.laptop.org/go/HulaHop
Sobre las librerías, se pueden precargar desde cualquier sitio, no es
necesario que estén instaladas en el sistema, para eso deben venir en la
actividad, puedes leer aca =>
http://en.wikipedia.org/wiki/Dynamic_linker(todavía estoy en debe con
esto, pero hay gente en la lista que sabe muy
bien como hacerlo).

Con respecto a la interfaz en python, yo me refería a que si quieren hacer
una interfaz en python, yo ayudo si quieren.
Si la aplicación está hecha en C, se puede enlazar a una interfaz python
mediante ctypes =>
http://docs.python.org/library/ctypes.html?highlight=ctype#module-ctypes(acá
tambien tienes info sobre precarga de librerias).

Además, si la aplicación es en C también pueden hacer una interfaz gtk
directamente.

Sea como sea que lo hagan andar, las librerías tienen que precargarlas a
menos que sean incluidas en la imagen del LATU, porque no podrán instalarlas
en las xo.




El 15 de agosto de 2010 18:23, Ernesto Dufrechou <dfrxxx en gmail.com>escribió:

> Gracias por responder tan pronto!
>
> Para empezar no tenemos conocimiento alguno sobre python, por lo que no
> supimos como utilizar el código que nos proporcionaste, aunque probamos con
> varias alternativas.
>
> Sin embargo tenemos una duda respecto al resultado que se lograria con la
> solución que nos planteas, porque nosotros contamos con que el browser tiene
> cargado el plugin necesario para correr goalbit y no estamos seguros que
> sucederia con lo que pĺanteas.
>
> Con respecto a las bibliotecas, no sabemos si quedó del todo claro que las
> mismas son utilizadas por una aplicación escrita en C la cual es invocada
> por el plugin (ambos corren en la XO). Debido a esto creemos que dichas
> bibliotecas deben estar necesariamente en donde la aplicación las va a
> buscar (osea en /lib y /usr/lib). No entendimos bien a que te refieres con
> precargar las biblios.
>
> Quizá no quedó claro tampoco que nosotros pensabamos que la actividad
> chequeara por la existencia de las biblios necesarias al iniciar por primera
> vez, y en caso de que no existan efectuaría la copia. Esto sería
> transparente al usuario.
>
> Disculpen nuestra falta de conocimiento respecto a estos temas.
> Saludos
>
>
> El 14 de agosto de 2010 18:54, Flavio Danesse <fdanesse en gmail.com>escribió:
>
> *Hola, bienvenidos !*
>>
>> Para hacer tu propio navegador web y meterlo como canvas en la actividad
>> sugar principal (mediante activity.Activity.set_canvas(NavegadorWeb)):
>>
>> import os
>> import hulahop
>> from sugar import env
>> hulahop.startup(os.path.join(env.get_profile_path(), 'gecko'))
>>
>> from hulahop.webview import WebView
>>
>> import gtk
>> import pygtk
>> pygtk.require("2.0")
>>
>> *class NavegadorWeb(gtk.VBox):
>>
>>     def __init__(self):
>>
>>         gtk.VBox.__init__(self)*
>>
>>         navegador = WebView()
>>         navegador.load_uri('http://google.com')
>>
>>         self.pack_start(navegador,True,True)
>>         self.show_all()
>>
>> Sobre las librerías debes empaquetarlas con la actividad y precargarlas.
>> Por experiencia te cuento que cualquier actividad que baje un instalador
>> de "algo más", no es buena idea.
>> División Especial de Detectives es un ejemplo, muchos niños no lo usan
>> porque han intentado instalarlo y da diversos problemas antes de quedar
>> funcionando, es preferible que demore más en bajar a que tengas que dar
>> varios pasos para que funcione.
>>
>> Sobre la interfaz web, porque no utilizar una interfaz python?
>>
>> Si necesitan alguien que meta mano al código, me animo, me a ofrezco a
>> ayudar en lo que pueda.
>>
>>
>>
>>
>>
>>
>> El 14 de agosto de 2010 15:08, Ernesto Dufrechou <dfrxxx en gmail.com>escribió:
>>
>>>  Hola a todos. Somos Ernesto Dufrechou y Alberto Almeida. Nos
>>> encontramos haciendo un proyecto de grado en la FING UdelaR que consiste en
>>> integrar Goalbit a Ceibal, lo cual implica adaptarlo para funcionar en las
>>> XO.
>>>
>>> Goalbit es un software desarrollado en la FING, fuertemente basado en
>>> VLC, el cual permite compartir video en tiempo real mediante un enfoque P2P,
>>> método similar al de bittorrent. Esto podría ser una solución al problema de
>>> ancho de banda que se enfrenta al querer manejar varios streams de video en
>>> las escuelas, algo que todavía estamos estudiando. Para más información
>>> sobre goalbit pueden consultar http://goalbit.sourceforge.net/.
>>>
>>> Desafortunadamente no tenemos demasiado conocimiento de SUGAR y Python
>>> por lo que queremos consultar un par de dudas con quienes tienen más
>>> experiencia en estos temas:
>>>
>>> 1) Se ha decidido que la interfaz de la aplicación sea enteramente web.
>>> Sin embargo, consideramos bueno que los niños tengan un ícono en sugar el
>>> cual levante la aplicación como ellos acostumbran, en lugar de abrir un
>>> browser manualmente e ir a la URL en la que se encuentre hosteada la app. A
>>> estos efectos desarrollamos una actividad en Python que lo único que hace es
>>> levantar el browser mediante un comando. Queríamos saber si es posible
>>> levantar el browser en una URL determinada, desde la consola. Disponemos de
>>> un workaround pero queremos saber si existe una forma "prolija" (por ejemplo
>>> pasando parámetros en la línea de comandos).
>>> El código que usamos actualmente para levantar el browser es el
>>> siguiente:
>>>
>>> import os
>>> ...
>>> os.system("sugar-launch WebActivity")
>>>
>>> 2) También queremos facilitar la instalación del software mediante un
>>> script que sea ejecutado por la actividad y que copie las bibliotecas
>>> necesarias para que funcione goalbit, osea las dependencias. El problema es
>>> que algunas son bibliotecas del sistema y debemos copiarlas a /lib. Para
>>> esto necesitariamos tener permisos de root, es por esto que se nos ocurrio
>>> que el script tenga el bit suid prendido y que el owner sea el root.
>>> Queríamos consultarles si hay algún problema en hacer esto (ya que las XO
>>> con las que probamos nosotros tienen liberado el root), y también si existe
>>> una forma más directa de hacerlo.
>>>
>>> Desde ya agradecemos cualquier aporte respecto a estos temas.
>>> Saludos!
>>>
>>> --
>>> Ernesto Dufrechou, Alberto Almeida
>>>
>>>
>>> _______________________________________________
>>> Olpc-uruguay mailing list
>>> Olpc-uruguay en lists.laptop.org
>>> http://lists.laptop.org/listinfo/olpc-uruguay
>>>
>>>
>>
>> _______________________________________________
>> Olpc-uruguay mailing list
>> Olpc-uruguay en lists.laptop.org
>> http://lists.laptop.org/listinfo/olpc-uruguay
>>
>>
>
>
> --
> Ernesto Dufrechou
>
> _______________________________________________
> Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20100815/164600bb/attachment.htm 


More information about the Olpc-uruguay mailing list