Sobre el ejemplo que te pasé, te paso lo mismo pero para ejecutar en la terminal:<br>Copia este código en un archivo y lo guardas con el nombre <span style="color: rgb(153, 0, 0);">navegador.py</span>, luego lo ejecutas con <span style="color: rgb(153, 0, 0);">python navegador.py</span> (en la xo funcionará sin problemas).<br>
<br><span style="color: rgb(111, 168, 220);">#!/usr/bin/env python</span><br style="color: rgb(111, 168, 220);"><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">import os</span><br style="color: rgb(0, 0, 255);">
<span style="color: rgb(0, 0, 255);">import hulahop</span><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">from sugar import env</span><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">hulahop.startup(os.path.join(env.get_profile_path(), &#39;gecko&#39;))</span><br style="color: rgb(0, 0, 255);">
<br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">from hulahop.webview import WebView</span><br style="color: rgb(0, 0, 255);"><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">import gtk</span><br>
<br><span style="color: rgb(153, 0, 0);">ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)</span><br style="color: rgb(153, 0, 0);"><span style="color: rgb(153, 0, 0);">ventana.set_size_request(800,600)</span><br style="color: rgb(153, 0, 0);">
<span style="color: rgb(153, 0, 0);">ventana.connect(&quot;destroy&quot;,gtk.main_quit)</span><br style="color: rgb(153, 0, 0);"><br style="color: rgb(153, 0, 0);"><span style="color: rgb(153, 0, 0);">navegador=WebView()</span><br style="color: rgb(153, 0, 0);">
<span style="color: rgb(153, 0, 0);">navegador.load_uri(&quot;<a href="http://google.com">http://google.com</a>&quot;)</span><br style="color: rgb(153, 0, 0);"><span style="color: rgb(153, 0, 0);">navegador.show()</span><br style="color: rgb(153, 0, 0);">
<br style="color: rgb(153, 0, 0);"><span style="color: rgb(153, 0, 0);">ventana.add(navegador)</span><br style="color: rgb(153, 0, 0);"><br style="color: rgb(153, 0, 0);"><span style="color: rgb(153, 0, 0);">ventana.show()</span><br style="color: rgb(153, 0, 0);">
<span style="color: rgb(153, 0, 0);">gtk.main()</span><br><br>El modulo <span style="color: rgb(0, 0, 255);">hulahop </span>es un navegar mozilla para incrustar en aplicaciones gtk, puedes ver más detalles en olpc =&gt; <a href="http://wiki.laptop.org/go/HulaHop">http://wiki.laptop.org/go/HulaHop</a><br>
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 =&gt; <a href="http://en.wikipedia.org/wiki/Dynamic_linker">http://en.wikipedia.org/wiki/Dynamic_linker</a> (todavía estoy en debe con esto, pero hay gente en la lista que sabe muy bien como hacerlo).<br>
<br>Con respecto a la interfaz en python, yo me refería a que si quieren hacer una interfaz en python, yo ayudo si quieren.<br>Si la aplicación está hecha en C, se puede enlazar a una interfaz python mediante ctypes =&gt; <a href="http://docs.python.org/library/ctypes.html?highlight=ctype#module-ctypes">http://docs.python.org/library/ctypes.html?highlight=ctype#module-ctypes</a> (acá tambien tienes info sobre precarga de librerias).<br>
<br>Además, si la aplicación es en C también pueden hacer una interfaz gtk directamente.<br><br>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.<br>
<br><br><br><br><div class="gmail_quote">El 15 de agosto de 2010 18:23, Ernesto Dufrechou <span dir="ltr">&lt;<a href="mailto:dfrxxx@gmail.com">dfrxxx@gmail.com</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Gracias por responder tan pronto!<br><br>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.<br><br>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.<br>


<br>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.  <br>


<br>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.<br>


<br>Disculpen nuestra falta de conocimiento respecto a estos temas.<br>Saludos<br><br><br><div class="gmail_quote">El 14 de agosto de 2010 18:54, Flavio Danesse <span dir="ltr">&lt;<a href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a>&gt;</span> escribió:<div>
<div></div><div class="h5"><br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><b>Hola, bienvenidos !</b><br><br>Para hacer tu propio navegador web y meterlo como canvas en la actividad sugar principal (mediante <span style="color: rgb(102, 0, 0);">activity.Activity</span><span style="color: rgb(102, 0, 0);">.set_canvas(NavegadorWeb)</span>):<br>



<br><span style="color: rgb(0, 0, 255);">import os</span><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">import hulahop</span><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">from sugar import env</span><br style="color: rgb(0, 0, 255);">



<span style="color: rgb(0, 0, 255);">hulahop.startup(os.path.join(env.get_profile_path(), &#39;gecko&#39;))</span><br style="color: rgb(0, 0, 255);"><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">from hulahop.webview import WebView</span><br style="color: rgb(0, 0, 255);">



<br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">import gtk</span><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">import pygtk</span><br style="color: rgb(0, 0, 255);"><span style="color: rgb(0, 0, 255);">pygtk.require(&quot;2.0&quot;)</span><br>



<br><b style="color: rgb(153, 0, 0);">class NavegadorWeb(gtk.VBox):<br><br>    def __init__(self):<br><br>        gtk.VBox.__init__(self)</b><br style="color: rgb(153, 0, 0);"><br style="color: rgb(153, 0, 0);"><span style="color: rgb(153, 0, 0);">        navegador = WebView()</span><br style="color: rgb(153, 0, 0);">



<span style="color: rgb(153, 0, 0);">        navegador.load_uri(&#39;<a href="http://google.com" target="_blank">http://google.com</a>&#39;)</span><br style="color: rgb(153, 0, 0);"><br style="color: rgb(153, 0, 0);"><span style="color: rgb(153, 0, 0);">        self.pack_start(navegador,True,True)</span><br style="color: rgb(153, 0, 0);">



<span style="color: rgb(153, 0, 0);">        self.show_all()</span><br><br>Sobre las librerías debes empaquetarlas con la actividad y precargarlas.<br>Por experiencia te cuento que cualquier actividad que baje un instalador de &quot;algo más&quot;, no es buena idea.<br>



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.<br>



<br>Sobre la interfaz web, porque no utilizar una interfaz python?<br><br>Si necesitan alguien que meta mano al código, me animo, me a ofrezco a ayudar en lo que pueda.<br><br><br><br><br><br><br><div class="gmail_quote">



El 14 de agosto de 2010 15:08, Ernesto Dufrechou <span dir="ltr">&lt;<a href="mailto:dfrxxx@gmail.com" target="_blank">dfrxxx@gmail.com</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


<div><div></div><div>
<div class="gmail_quote">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.<br>





<br>
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 <a href="http://goalbit.sourceforge.net/" target="_blank">http://goalbit.sourceforge.net/</a>. <br clear="all">






<br>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:<br><br>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 &quot;prolija&quot; (por ejemplo pasando parámetros en la línea de comandos).<br>






El código que usamos actualmente para levantar el browser es el siguiente:<br><br>import os<br>...<br>os.system(&quot;sugar-launch WebActivity&quot;)<br><br>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.<br>






<br>Desde ya agradecemos cualquier aporte respecto a estos temas.<br>Saludos!<br><font color="#888888"><br>-- <br>Ernesto Dufrechou, Alberto Almeida
</font></div><br>
<br></div></div><div>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></div></blockquote></div><br>
<br>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></blockquote></div></div></div><br><br clear="all"><br>-- <br><font color="#888888">Ernesto Dufrechou<br>
</font><br>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></blockquote></div><br>