Planet Squeak es

blogs about Squeak, Pharo, Croquet and family
planet squeak - planet squeak es - planet squeak jp - planet croquet - planet squeak code - planet smalltalk

December 02, 2009

Historical - Diego Gómez Deck

Manifiesto en defensa de los derechos fundamentales en internet

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que...

1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.

5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Este manifiesto es obra de muchas manos, y propiedad de todos. Si te gusta, cópialo, pásalo, publícalo en tu weblog o haz lo que quieras con él.

by Diego Gomez Deck (noreply@blogger.com) at December 02, 2009 01:59 PM

March 18, 2008

Historical - José Redrejo

Mi primer paquete para Squeak

Después de un tiempo aprendiendo SmallTalk y como se usa en Squeak, por fin tengo mi primer paquete listo para usar a través de SqueakMap.Enlazar parejas El paquete se llama Classroom e incluye tres tipos de ejercicios para usar en clase. Estos ejercicios además importan ejercicios generados con HotPotatoes (lo he probado solo con Java HotPotatoes, lo siento no tengo windows para probar las otras versiones):- Enlazar parejas (importa Match) – Rellenar huecos (importa Cloze) – Contestar a preguntas (importa Quiz)Además he preparado la comunicación en clase entre el profesor y el alumno. El profesor arranca su conexión y Squeak le informa de cual es su dirección de red. El profesor da esa dirección a los alumnos. Éstos arranca su conexión y escriben la información que el profesor les ha dado. Entonces el profesor recibe automáticamente una lista de los alumnos que se han conectado a él. Desde ese instante cualquier objeto que el profesor arrastre encima de su conexión aparecerá automáticamente en todos los ordenadores de los alumnos. El objeto puede estar moviéndose o ejecutando un script y aparecerá exactamente igual a los alumnos.NOTA IMPORTANTE Para los usuarios de la imagen de Small-Land:El paquete se instala desde el Cargador de paquetes de SqueakMap, antes de ejecutar alguno d elos ejercicios es necesario cambiar el tipo de letra de e-Toys. El tipo prefijado en esa imagen se llama Komika y tiene un error al cambiarle el tamaño que hace entrar en un bucle infinito al cargar estos ejercicios.En los próximos días subiré la traducción a español de estos ejercicios y probablemente añadiré una pestaña que se creará al instalar el paquete para que sea más fácil su uso.

by José L. Redrejo Rodríguez at March 18, 2008 08:54 AM

Classroom en español y su instalación

Para que classroom sea más fácil de usar he subido una nueva versión que añade una pestaña al lado derecho de Squeak, desde el que se pueden usar sus componentes. He subido también la traducción a español.

Se puede instalar en cualquier imagen de squeak versión 3.8, incluyendo la versión de Small-land.

Para hacerlo son necesarios estos pasos (es importante seguir el orden):

1.- Traducción a español: En la imagen de Small-Land pulsar en el menú Configuración -> actualizar desde un servidor, con esto cargamos la traducción a español y actualizamos la imagen a la última disponible. Si no se usa la imagen de small-land se puede bajar el archivo de traducción desde aquí y cargarlo mediante el editor de idioma.

2.- Configuración -> Cambiar a modo experto -> Sí

3.- Configuración -> Apariencia -> Fuentes del sistema -> Fuente de los eToysescoger cualquier fuente distinta de la Komika, por ejemplo: BistreamVeraSans , 9 Point, Normal. La imagen de small-land tiene la fuente komika que tiene un fallo importante: entra en un bucle infinito al cambiarle el tamaño. Por eso hay que usar otra fuente.

4.- Sobre el mundo pulsamos la tecla escape, aparecerá un menú. Ahí pulsamos Abrir -> Cargador de paquetes de SqueakMap. Tardará un poquito en bajarse el listado de paquetes disponibles de internet. Una vez que esté el listado a la vista buscamos el paquete Classroom.

5.- En el árbol de paquetes de la izquierda, sobre la palabra Classroom hacemos clic con el botón central del ratón y aparecerá un menú, escojemos install, se quejará un par de veces de que esa versión no está garantizada, decimos que Sí para que lo instale.

Listo, para dejar todo como estaba, volvemos al menú Configuración -> Cambiar a modo principiante. Finalmente menú Squeak -> Grabar.

IMPORTANTE: Si usando la imagen de Small-Land se queda mucho rato con el mensaje de que está creando la pestaña nueva es porque no hemos cambiado la fuente komika como se dice en el punto 3. No hay posibilidad de hacer otra cosa que cerrar Squeak y volver a empezar.

by José L. Redrejo Rodríguez at March 18, 2008 08:54 AM

SqueakFest 2005

He tenido la suerte de asistir en Chicago a la celebración de la conferencia SqueakFest del 2005.

No voy a entrar en los detalles técnicos de las charlas que allí se dieron, que fueron muchos. El desarrollo de Squeak sigue imparable, abriendo nuevos flancos que atienden a distintas necesidades y nuevas ideas, siempre innovando en el uso del ordenador en la ayuda a la educación y el aprendizaje. Tan sólo quiero dejar constancia de la carcajada que me provocan aquellos que dicen que Squeak no sirve para esto, que si Macromedia Flash (marca registrada) hace esto otro mejor, que si la curva de aprendizaje es larga, etc. Después de lo visto allí tengo aún más claro que el que dice eso o está mal y poco informado o es totalmente tendencioso y descaradamente mentiroso.

Sólo algunos ejemplos:

Me tocó también dar una charla sobre el uso de Squeak dentro del proyecto gnuLinEx. Fue muy destacada la admiración que provocó entre gentes de la universidad y de institutos la imagen de Small-Land. Todos coincidian en que el entorno de Squeak era de muy fácil uso para los alumnos, pero que los profesores querían algo así. La enhorabuena a Diego Gómez-Deck por su trabajo fue unánime.

Pude charlar varias ocasiones y escuchar a Alan Kay. Un placer oirle en su conferencia en la que mezcló ideas muy interesantes sobre el futuro con multitud de anécdotas y antecedentes históricos. Uno no se cansá de oir hablar a este hombre. Está está ahora muy implicado en el proyecto del portátil de $100 para los alumnos de paises en desarrollo, interesante la respuesta que dió a una pregunta sobre su relación con Nicolás Negroponte, y que pude grabar en este pequeño vídeo con la cámara de fotos. Parece que el proyecto va adelante con donaciones de 1 millón de dólares por parte de empresas como Red Hat y Google. Las primeras pruebas serán en Camboya. Como es lógico, funcionará con Linux y es muy probable que ese portátil lleve Squeak o Tweak.

Hubo mucho más, como el placer de compartir horas con los desarrolladores principales de Squeak, aprendiendo todo el día de ellos, muchos estudios y ejemplo de uso de Squeak en el aula, en todas las edades, ver los desarrollos hechos por un buen puñado de japoneses, que iban desde lo más extravagante al análisis serio del uso de Squeak en el aula, el avance en el desarrollo de Tweak, las últimas aplicaciones hechas sobre Croquet, etc, etc. etc.

También hubo algo de tiempo (no mucho porque las conferencias eran todo el día) para hacer turismo por Chicago.

by José L. Redrejo Rodríguez at March 18, 2008 08:54 AM

Nueva imagen de Squeak para Educación

Después de unos meses con la imagen de Squeak para educación, ya tenemos la versión definitiva para usarse en el curso que viene.

Algunas de las novedades:

Es todo, no dejen de actualizarse y visitar http://squeak.educarex.es y http://proyectos.educarex.es donde se irán añadiendo más tutoriales, información y proyectos.

Los usuarios de linex2006 ya saben que sólo tienen que hacer clic aquí para instalárselo (si saben su contraseña de root, claro)

P.S. Se me olvidaba: para los reductos de windozeros, he hecho un instalador (guiado y ayudado por Germán Arduino). Como ejercicio de masoquismo lo he hecho usando wine, ya que no tenía ningún windoze a mi disposición, pero ya sé de gente que lo ha usado sobre Windows Original (TM) y les ha funcionado. Eso sí, el grado de masoquismo no ha llegado a hacer el plugin para el explorer, la imagen sólo se puede usar como una aplicación normal.

by José L. Redrejo Rodríguez at March 18, 2008 08:54 AM

CD live de Squeak

Por fin alguien ha realizado lo que algunos dijimos hace año y medio que íbamos a hacer y nunca empezábamos.Finally, somebody has dared to make what some others said more than a year ago we were going to do and never started.Ya puedes enseñarle Squeak a tus amigos en su ordenador sin que tengan que instalar nada.Enhorabuena a Darío por el trabajo técnico del live y a Diego por la nueva imagen de Squeak.El archivo iso para grabar el cd live está disponible en http://cvs.linex.org/linex2004/Squeak-3.8-LIVE.isoY el md5sum es: d47f405cd0fa4d4224cf0ac1e0347505.You can already show Squeak to your friends in their computers without needing installing anything.Congratulations to Dario for the live cd technical work and to Diego for the new Squeak Image.The iso file to burn the cd is available at http://cvs.linex.org/linex2004/Squeak-3.8-LIVE.isowith md5sum: d47f405cd0fa4d4224cf0ac1e0347505.

by José L. Redrejo Rodríguez at March 18, 2008 08:53 AM

April 28, 2007

Historical - Diego Gómez Deck

¡Ladran Sancho! Señal que cabalgamos...

¡Cómo me gusta que esta gente se ponga nerviosa!

Véanlo ustedes mismos, en barrapunto: Microsoft y Extremadura

by Diego Gomez Deck (noreply@blogger.com) at April 28, 2007 07:58 AM

March 12, 2007

Historical - Diego Gómez Deck

Vídeo de la charla “Squeak en la OLPC” - Conferencia Internacional de Software Libre 3.0 (Badajoz, Febrero/2007)

Haciendo un poco de egogoogling me encontré que, en el sitio www.archive.org, hay un vídeo con licencia creative commons de mi última presentación, en la conferencia de software libre de Badajoz.



Pueden bajar el vídeo desde esta página:

http://www.archive.org/details/FSWCOLPCSqueak



También podemos encontrar el audio de la edición especial del programa de radio “Red Babel”, que se emite los sábados en RNE 3 (Radio Nacional de España 3); sobre Software Libre en general, donde compartí mesa con Richard Stallman, Marcelo Branco, Paco Huertas, etc.


Pueden bajar el audio de las 2 horas de programa desde acá:

http://www.rtve.es/rne/r3/audios/prog/redbabel/red_20070210_a.mp3

http://www.rtve.es/rne/r3/audios/prog/redbabel/red_20070210_b.mp3


¡Qué lo disfruten!

by Diego Gomez Deck (noreply@blogger.com) at March 12, 2007 08:43 AM

March 08, 2007

Historical - Diego Gómez Deck

Webcam, en Squeak, en la OLPC, a 20 cuadros por segundo


Una cosa es hacer andar código viejo en la OLPC, y otra muy distinta es que ese código funcione de forma aceptable. En el procesamiento de vídeo es, tal vez, uno de los objetivos más ambiciosos sobre la OLPC.

Imaginemos que tenemos que procesar 20 cuadros por segundo, y que la imagen mide 320x240 píxeles. Cada píxel está compuesto por 3 datos (la parte Roja, la parte Verde, y la parte Azul) que se denominan RGB (Red, Green, Blue). Si tenemos que procesar cada punto de la imagen, tendremos que procesar 320x240 veces, por cada cuadro, las operaciones para la parte Roja, Verde y Azul.

Para lograr tener 20 cuadros por segundo, con una imagen de 320x240, tendremos que realizar:

320 (ancho) * 240 (alto) * 3 (RGB) * 20 (cuadros/seg) = 4.608.000 (operaciones/seg)

En un procesamiento como ese, la poca velocidad de la OLPC se hace notar.


Bueno, el primer port del código Linux a la OLPC, fue prácticamente sin problemas PERO la velocidad de procesamiento obtenida era de lástima. Sólo procesaba 3 cuadros por segundo.

Después de algunos cambios en el código (evitar aritmética de coma flotante, loop unrolling, uso de bitmaps de 16 bits en lugar de 32 bits, etc) logramos 20 cuadros por segundo.


Una cosa a tener en cuenta es que el modelo y la filosofía de Squeak imponen mayores requerimientos al código. Dicho de otra forma: Procesar vídeo en Squeak no es SOLO mostrar un vídeo a pantalla completa, lo más rápido posible. Si sólo hiciésemos eso, podríamos obtener los mismos 30 cuadros x segundo con una imagen de 640x480 pixeles que logran la mayoría de los programas de control de cámaras de vídeo. Procesar vídeo en Squeak es integrar el vídeo como un ciudadano de pleno derecho dentro del mundo de objetos 100% manipulables y programables.

No sirve de nada poder ver vídeo si no podemos hacer nada con el. En Squeak el vídeo puede ser manipulado como cualquier otro objeto (se puede rotar, mover, cambiar de tamaño, etc). También puede ser programado desde guiones de eToys.

Este es el vocabulario del objeto de vídeo:


Con este vocabulario (y el vocabulario de los demás objetos Squeak) se pueden hacer algunos experimentos interesantes.... Por ejemplo: Si hacemos una animación en Squeak, de las clásicas, pero si en lugar de llenar el Contenedor con dibujos hechos a mano, lo llenamos con 1 cuadro por segundo desde la webcam (usando la propiedad #lastFrame), obtendremos una animación que es un vídeo acelerado (como esos vídeo de crecimiento acelerado de las plantas que ponen en los canales de documentales, o una manzana que se pudre en 20 segundos, etc) de lo que esté capturando la Webcam.


Lo más interesante de esta opción es que, el vídeo acelerado, es una producción del niño. No usa la opción “mostrar vídeo acelerado” que hace todo por el, sino que tiene que enfrentarse a resolver el problema, usando conocimiento que ya tiene. Muy en la línea de Squeak.



Para terminar les dejo una pregunta:

¿Qué otros experimentos se podrán hacer con la Webcam y Squeak?


by Diego Gomez Deck (noreply@blogger.com) at March 08, 2007 11:35 AM

January 03, 2007

Historical - Diego Gómez Deck

Mis impresiones sobre la OLPC Prototipo BTest-1

De la misma forma en que se adelantó Papá Noel, los Reyes me trajeron el “prototipo B1” de la OLPC.


Debemos recordar que el proyecto OLPC no es un proyecto tecnológico, sino que es un proyecto educativo. Las diferentes decisiones que se fueron tomando, fueron siempre considerando que el objetivo es hacer una computa barata, portátil, fuerte y eficiente que será usada por chicos, para mejorar su educación, en lugares donde pueda ser difícil conseguir energía para las máquinas.

Para explicar rápidamente que es una OLPC, podemos decir que es una notebook “pequeña” pero lo suficientemente “potente” para lograr un gran impacto en los procesos educativos.


Pequeña:


Potente:


Todas las características en: http://wiki.laptop.org/go/Hardware_specification

Y algunas fotos:








by Diego Gomez Deck (noreply@blogger.com) at January 03, 2007 04:12 PM

December 21, 2006

Historical - Diego Gómez Deck

Charla de Squeak en GUADEC (22/Mayo/2004) - Almendralejo, España

by Diego Gomez Deck (noreply@blogger.com) at December 21, 2006 09:56 AM

December 20, 2006

Historical - Diego Gómez Deck

Conferencia Internacional de Software Libre 3.0

Los días 7, 8 y 9 de febrero de 2007, se celebrará la Conferencia Internacional de Software Libre 3.0, organizada en conjunto por los gobiernos regionales de la Junta de Extremadura y la Junta de Andalucía.

Estoy invitado a participar dentro de la Mesa de Creadores de Conocimiento Libre, el día 7 de febrero, de 18:00 a 19:30Hs; donde mostraré las novedades relacionadas con Squeak ocurridas durante el último año. Seguramente mostraré un Squeak funcionando en un prototipo de la OLPC, así como también los desarrollos relacionados con la Web 2.0, y alguna cosita más...

¡Están todos invitados!

by Diego Gomez Deck (noreply@blogger.com) at December 20, 2006 04:44 PM

December 17, 2006

Historical - Diego Gómez Deck

Video4Squeak funcionando en la OLPC

Ya había comentado que estaba trabajando para el Squeak que vendrá instalado en las OLPC (las míticas notebooks de 100USD.

Específicamente mi trabajo es lograr que el Video4Squeak (proyecto que yo ya tenía desarrollado para la imagen de Small-Land que usamos en Extremadura) funcione con la configuración de hardware que tienen las OLPC.

Sin más preámbulo, les dejo un screenshot del Video4Squeak funcionando en una OLPC (prototipo beta):



En la foto podemos ver a Bert Freudenberg y a Yoshiki Ohshima, dos de los hackers de VPRI.

by Diego Gomez Deck (noreply@blogger.com) at December 17, 2006 09:47 PM

November 30, 2006

Historical - Diego Gómez Deck

Squeak, muy pronto, tendrá una licencia MIT

No son desconocidos los “problemas” de licencia de Squeak. Por otro lado, hace poco hablábamos que Apple había acordado relicenciar el Squeak (versión 1.1) como APSL2.


Poco después, supimos que Apple nuevamente había acordado relicenciar Squeak, y esta vez lo hizo con una licencia Apache 2.

Ahora Viewpoints Research Institute está encargándose de contactar a todos los autores de código incluido en Squeak después de la versión 1.1 para relicenciar todo el Squeak con una licencia MIT.


Yo ya envíe, por correo normal y firmado en original, el acuerdo donde acepto relicenciar la parte que me corresponde.


by Diego Gomez Deck (noreply@blogger.com) at November 30, 2006 03:10 PM

November 29, 2006

Historical - Diego Gómez Deck

Fotos de un prototipo de OLPC (la Laptop de 100 dólares)

Debido a que estoy colaborando con la versión Squeak que va a correr en la OLPC (estoy haciendo que el Video4Squeak funcione bien con los limitados recursos de la OLPC), me convertí en uno de los felices poseedores de una placa alpha de la OLPC.


Por ahora sólo logré levantar un build 91, y dejar funcionando todo (actualicé el bios, anda la red wireless, anda el X, anda el Sugar, etc).








Próximo paso: Instalar Squeak... stay tuned!



UPDATE: Ya hay fotos del prototipo "B" en http://wiki.laptop.org/go/B1_Pictures

by Diego Gomez Deck (noreply@blogger.com) at November 29, 2006 06:08 PM

November 20, 2006

Historical - Diego Gómez Deck

Squeak en Extremadura y la OLPC: Ejemplos contra las patentes de software.

Hace algún tiempo que anunciábamos el vídeo que La Junta de Extremadura había producido sobre el uso de Squeak en la región.

Este fin de semana me enteré de esta nota:

http://www.groklaw.net/article.php?story=20061118091048997


La nota no tiene desperdicios, pero me quedo con estos fragmentos:


I enjoyed personally from the video the little girl who said Squeak introduced her to computers and she found out she likes them. Is that not what education is supposed to do for children?”


... so programmers can work to create masterpieces like Squeak that benefit society.

What a concept. Benefit society. ”


Please think it over, everyone, and decide just how much damage you are willing to let software patents do, just to benefit a few companies, who by the way made their billions at a time when there were no software patents to get in *their* way, and at the expense of everyone else on the planet with them.

And please look at the Squeak video and the children's faces as they talk about Squeak before you decide.”


by Diego Gomez Deck (noreply@blogger.com) at November 20, 2006 10:31 AM

October 24, 2006

Historical - Diego Gómez Deck

Web 2.0 en Smalltalk - Call for help!

Hola gente,

Hace algunos días les comentaba de los proyectos, relacionados con la web 2.0, que estoy desarrollando con Smalltalk.

Estoy en un punto donde puedo decir que podemos lograr bastante más de los browsers (de internet), y los ejemplos que fui generando (SocialShopping, Unnamed, LiveWiki, etc) lo prueban.

Hasta ahora fui desarrollando las herramientas conforme las necesite, así que el framework tiene un poquito de todo. Ese "poquito de todo" prueba que se pueden hacer muchas cosas, pero para que el framework se convierta en una herramienta posible debería hacer más que "un poquito" de todo.

Para completarlo necesito ayuda.

Hay bastante trabajo para hacer, desde traducir la documentación que estoy haciendo al Inglés, completar clases de “ayuda” (como Color, Rectangle, etc) y, sobre todo, completar en cantidad y funcionalidad los widgets.

Para dar el primer empuje, hice algo que no suelo hacer: Documentación ;-)

http://smalltalk.consultar.com/wiki/


Los proyectos en marcha son:

La documentación no está terminada todavía, pero (creo que) ya se ve bastante de las posibilidades.

También cree una lista de correo, en google, para coordinar el trabajo y discutir sobre el futuro del proyecto:

http://groups.google.es/group/web20-smalltalk


Espero que les guste y, que muchos, se animen a darme una mano.


by Diego Gomez Deck (noreply@blogger.com) at October 24, 2006 12:35 PM

October 18, 2006

Historical - Diego Gómez Deck

Web 2.0 - Un nuevo medio: LiveWiki (Un mejor Wiki)


Siguiendo con los ejemplos de posibles nuevos usos de la Web 2.0, ahora vamos a tratar de imaginar como se podrían mejorar los wikis actuales, usando la colaboración que nos permite el Web 2.0.

Les presento la primera versión de LiveWiki. LiveWiki es un Wiki vivo (de ahí su nombre ;)). Wiki en el sentido de ser un sitio modificable por muchas personas (http://es.wikipedia.org/wiki/Wiki), y vivo en el sentido que le venimos dando a la palabra, en las notas anteriores.

Para decirlo de otra forma: Nos olvidamos de tener que hacer “refrescar”, “recargar”, “reload” o “refresh” de la página para ver si cambió. Cuando la página cambia, todas las personas que estén viendo esa página verán el cambio en el mismo momento en que ocurre. De la misma forma, todos los usuarios conectados pueden modificar el contenido. Y, como en los ejemplos anteriores, el chat entre usuarios conectados sirve para coordinar el trabajo.

Esta versión es todavía muy simple... pero ya hace evidente las mejoras que pueden sufrir los wikis si logramos que estas tecnologías se masifiquen.

Esta es una lista de cosas que NO hace esta versión de LiveWiki, pero que pretendo incluirlas en las próximas versiones:

Y estás son algunas de las características que SI están incluidas en esta versión:

Y, para continuar con la auto-impuesta tradición, les dejo un screencast que muestra algunas de las características de LiveWiki.

http://www.consultar.com/trastero/LiveWiki1.htm

Como siempre, están todos los fuentes disponibles en SqueakSource.

by Diego Gomez Deck (noreply@blogger.com) at October 18, 2006 06:08 PM

October 12, 2006

Historical - Diego Gómez Deck

StrongTalk – ¡Ahora la VM también es open source!


Hace ya algunos días que Sun liberó la máquina virtual de StrongTalk.

Para los que no sepan que es StrongTalk, le cuento que StrongTalk es la prueba (en realidad es la segunda prueba, la primera es la máquina virtual del Self) de que los lenguajes dinámicos no tienen porque ser lentos.

Para los nostálgicos: Pueden leer la accidentada (por culpa del Java) historia del StrongTalk .

Ya es hora de que nos dejemos de hablar de si un lenguaje es rápido o no porque tiene (o no) un compilador a código máquina o si corre sobre una máquina virtual. Las cosas son un poquito más complicadas y el simple hecho de tener o no un compilador a código máquina es sólo una parte de la historia.

Si no creen que lo que digo es verdad, tómense un tiempito para leer los papers que están en::

http://research.sun.com/self/compiler.html

http://www.strongtalk.org/documents.html


Por supuesto que esta noticia no es buena sólo para los Smalltalkers, sino que las comunidades de Ruby y Python también puede beneficiarse mucho si implementan, en sus respectivas máquinas virtuales, las tecnologías que tiene la VM de StrongTalk. Miren las reacciones que produjo, esta noticia, en las comunidades de Ruby y Python:

http://www.google.com/search?q=strongtalk+ruby

http://www.google.com/search?q=strongtalk+python


UPDATE: Cobertura en Barrapunto.

by Diego Gomez Deck (noreply@blogger.com) at October 12, 2006 09:03 AM

September 20, 2006

Historical - Diego Gómez Deck

Web 2.0 - Un nuevo medio: Social Shopping

"Ahhhhhh" (con la boca abierta que muestra hasta las entrañas), ¡que sueño!


Otra noche que Nahuel no me deja dormir.... oops, ¡ahora se durmió! y yo, que me tomé 2 cafés super-cargados, no puedo pegar un ojo. Bueno, voy a escribir algo en el blog para combatir la oscura soledad de las 5:30AM (y para tratar de metabolizar el exceso de cafeína en mi cuerpo).


No es un secreto que me pasé los últimos tiempos tratando de buscar los límites que nos imponen los browsers de Internet actuales.

Puedo resumir lo que aprendí en este tiempo con la siguiente frase:

Los navegadores (de Internet) actuales son un asco,

pero pueden ser usados de mejor forma a la actual”.


Hoy es posible, no sin un esfuerzo considerable, sacar mejor provecho de los browsers. El punto de inflexión, creo, es la “masificación” de la nueva (bueno, de nueva nada) tecnología Comet (http://es.wikipedia.org/wiki/Comet). Para ser sinceros, “nueva” y “tecnología” son 2 palabras que no hacen justicia... a lo mejor podríamos decir: “viejo” “hack” y estaríamos más cerca de describir lo que es Comet.

De cualquier forma (con hacks y todo) hoy podemos hacer aplicaciones web donde, por fin, no todo es request/response (http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol).

Ahora, usando el hack^H^H^H^H^H^H^Hla tecnología Comet, podemos crear aplicaciones colaborativas. Ya es hora (en realidad ya lleva años siendo hora) que empecemos a buscar las verdaderas bondades de estar todos en red.

Hoy les quiero mostrar una de las pruebas que estuve haciendo: Social-Shopping.

Social-Shopping es uno de los ejemplos incluidos en el SWT. Básicamente, Social-Shopping, es un simple carrito de compras colaborativo. Más de 1 persona (puede ser más de 1 comprador, o compradores y vendedor, o compradores y asesores, etc) pueden interactuar, a través de Internet, en un único proceso de compra.

Social-Shopping, por ahora, luce así:


Sí, ya se... hablo de un “nuevo medio” y pongo un super-estático PNG. Mejor, les dejo un screencast donde se ve mejor la idea:

http://www.consultar.com/trastero/SocialShopping1.htm


Tengo algunos ejemplitos más en el tintero... pero no se los quiero muestrar todos juntos, para mantener la atención alta. ;-)

by Diego Gomez Deck (noreply@blogger.com) at September 20, 2006 01:27 PM

September 19, 2006

Historical - Diego Gómez Deck

Disponible Squeak eToys para la computadora de 100USD

Yoshiki anunció en la lista de Squeak la disponibilidad de la imagen de Squeak que se usará en la laptops de 100USD.

Pide comentarios, sugerencias, reportes de errores, etc.

by Diego Gomez Deck (noreply@blogger.com) at September 19, 2006 08:32 AM

September 15, 2006

Historical - Diego Gómez Deck

Web 2.0 - Un nuevo medio: Una hoja de cálculo mejor

Para ser franco, hace años que dejé de prestarle atención a la interminable lista de nombres y acrónimos fashion que genera nuestra industria. Sin embargo, con la intención de que la gente encuentre estas notas en google, hace varios posts que estoy usando términos “modernos” como Web 2.0, Ajax y esas cosas.


Quiero seguir mostrándoles ejemplos de, por supuesto es mi opinión (y para volcar mi opinión es que me puse un blog), posibles buenos usos de la interactividad que nos permite el Comet (oops, otra palabra fashion).

Este ejemplo, también, pretende mostrar otra cosa: ¡Qué feas y malas son las aplicaciones que estamos acostumbrados (o que nos obligan) a usar!

Hablemos un poco de las hojas de cálculo. Las hojas de cálculo llevan años sin evolucionar. No me refiero a pequeños cambios, que los vendedores hacen, para vendernos la versionActual+1, sino que me refiero a evolución (así, con letra grande).

Hace unos meses me encontré con Spreadsheet 2000. Les aclaro que yo no soy usuario de Apple, y que nunca vi ese producto andando. Me enteré de su existencia por un e-mail en la lista de Squeak.
Googleando me encontré, también, con este página que cuenta un poco más:

http://www.mactech.com/articles/mactech/Vol.13/13.04/Spreadsheet2000/index.html


Cuando me enteré de Spreadsheet 2000, no pude dejar de sentir esa nostalgia de quien extraña un presente que no fue. La verdad que usamos MUY, pero MUY mal las computadoras y nosotros (los programadores) somos bastante responsables de esa situación. La mayoría de las veces condenamos a los usuarios a experiencias rígidas y, sobre todo, aburridas.

Como no tengo una Apple, y estaba jugando al Comet y esas cosas, me decidí a hacer una especie de hoja de cálculo “en serio” y colaborativa copiando la idea de las cajitas conectadas y, agregando arriba, la colaboración que permite el Comet.
Esto es lo que logré:




Y, también, lo pueden ver en este screencast (otra palabra moderna más) donde se lo ve funcionando.

http://www.consultar.com/trastero/U1-Reducido.htm


by Diego Gomez Deck (noreply@blogger.com) at September 15, 2006 10:53 AM

September 12, 2006

Historical - Diego Gómez Deck

Fotos de Squeak corriendo en la computadora de 100USD


Vía: http://croquetweak.blogspot.com/2006/09/squeak-for-every-child.html

Podemos ver unas fotos de Squeak corriendo sobre las míticas computadoras de 100USD.

http://piumarta.com/photos/olpc/

by Diego Gomez Deck (noreply@blogger.com) at September 12, 2006 07:08 AM

September 11, 2006

Historical - Diego Gómez Deck

SWT (Squeak Web Toolkit) - Algo más para mostrar: Ping-Pong

Las cosas van tomando su fomar y ahora el framework (SWT) nos permite hacer algunos ejemplos divertidos. Les voy a mostrar uno de los ejemplos incluidos en SWT: Ping Pong.

El ejemplo Ping-Pong es, según creo, el caso más simple de uso del SWT que, a su vez, muestra las características interesantes del framework.

Uhhh... cuanta introducción... mejor vamos directamente al grano.

Para utilizar el framework empezamos creando 2 clases: SWTPingPongClientApplication y SWTPingPongServerApplication.

La primera (SWTPingPongClientApplication) es subclase de SWTClientApplication. La segunda (SWTPingPongServerApplication) es subclase de SWTServerApplication.

Según el SWT, una "aplicación" está partida entre su parte Client y su parte Server.
La parte Client (en nuestro ejemplo: SWTPingPongClientApplication) se traduce a código Javascript (usando el ST2JS) y se ejecuta en el browser de Internet. Por otro lado, la parte Server (SWTPingPongServerApplication) se ejecuta en el Squeak.

Por cada browser (de Internet) conectado, tendremos un par de instancias (la Server y la Client) que se mantienen "unidas" por el framework.

Cuando estamos en el Client, podemos enviar mensajes a la parte Server de la siguiente forma:

self serverSide foo.


De forma análoga, cuando estamos en el Server podemos enviar mensajes a la parte Client de la siguiente forma:
self clientSide bar.

La parte Client, al enviarle el mensaje #serverSide, nos devuelve un Proxy que reenvía los mensajes al Squeak usando JSON-RPC. Por otro lado, la parte Server, cuando le envíamos el mensaje #clientSide nos devuelve un Proxy que reenvía los mensajes recibidos, al Cliente, usando la conexión Comet.

Con esto ya sabemos lo suficiente para ver el código del ejemplo Ping-Pong.

La parte Client de nuestro ejemplo (SWTPingPongClientApplication) tiene sólo 2 métodos, veamos el primero:

initializeWidgets
"Initialize the receiver's widgets"

| root |

root := self rootWidget.

root addWidget: (SWTHeader level: 2 contents: 'Ping Pong').

root addWidget: (SWTButton caption: 'ping server' onClick: [:event | self serverSide ping]).


Allí vemos como se crean 2 widgets: Un Header y un Button. Si, lo sé... no es nada espectacular... pero lo interesante está dentro del evento #onClick del botón:
self serverSide ping

Cuando hagamos click sobre el botón, el mensaje #ping se evaluará, ¡pero del lado del servidor!. Veamos entonces la implementación de #ping en el Server (SWTPingPongServerApplication).

ping

Transcript show: 'ping!'; cr.

self clientSide pong.


Este método, además de mostrar algo en el Transcript, devuelve el "favor" a su contraparte Client en la última línea.

Ahora, para terminar, veamos la implementación de #pong en lado Client (SWTPingPongClientApplication).

pong

^ self inform: 'pong!'


Si les gustó, miren este Screencast

by Diego Gomez Deck (noreply@blogger.com) at September 11, 2006 04:19 PM

August 29, 2006

Historical - Diego Gómez Deck

SWT (Squeak Widgets Toolkit) - Algo para mostrar

Después de unos (pocos (muy pocos)) días de vacaciones, volví al trabajo con más fuerzas y, para probarlo, les muestro en que estado está el desarrollo del LiveWiki que prometí hacer.

Usando el JS2JS, ahora estoy desarrollando un juego de widgets para los navegadores de Internet. Esta primera versión es muy simple, pero ya tiene lo suficiente para ver la idea completa: Se escribe código Smalltalk y se ejecuta en los navegadores de internet (previa conversión ST > JS). Pueden descargar la versión actual en SqueakSource.

Esto es un método, de la clase SWTExampleApplication, que crea unos simples (y aburridos) textos.

SWTExampleApplication>>createSimpleTexts

| root |

root := self rootWidget.

root addHorizontalRule.
root addWidget: (SWTHeader level: 2 contents: 'Simple texts').
root addWidget: (SWTText contents: 'some plain text. bla, bla, bla, bla, bla.').

root addWidget: (SWTText contents: 'text in red').
root lastWidget
color: S2SColor red.

root addWidget: (SWTText contents: 'text in blue/green').
root lastWidget
color: S2SColor blue;
backgroundColor: S2SColor green.

root addBreak.


El método que está a continuación muestra como es el manejo de eventos. Se ve claramente el uso de los bloques de Smalltalk (que se mapean a funciones de JS):

SWTExampleApplication>>createButtons

| root button |

root := self rootWidget.

root addHorizontalRule.
root addWidget: (SWTHeader level: 2 contents: 'Buttons').
root addWidget: (SWTButton caption: 'inspect event' onClick: [:event | event inspect]).
root addWidget: (SWTButton caption: 'inspect root panel' onClick: [:event | root inspect]).

root addWidget: (button := SWTButton caption: 'button with several event handlers').

button onClick: [:event | event inspect].
button onClick: [:event | self inform: '2st handler: ' , event asString].
button onClick: [:event | self inform: '3rd handler: ' , event asString].

button
color: S2SColor blue;
backgroundColor: S2SColor blue muchLighter.

button onFocus: [:event |
event source
color: S2SColor red;
backgroundColor: S2SColor red muchLighter
].

button onBlur: [:event |
event source
color: S2SColor blue;
backgroundColor: S2SColor blue muchLighter
].




Si algo tiene de interesante esta primera versión es que ya estoy jugando con los widgets "Edit In Place" (Modificar en el Lugar) que usaré para la modificación en vivo del LiveWiki. Este es el método que crea algunos textos "EditInPlace" y, también, crea un botón para crear más textos editables.

SWTExampleApplication>>createEditableTexts

| root |

root := self rootWidget.

root addHorizontalRule.
root addWidget: (SWTHeader level: 2 contents: 'Edit-In-Place texts').

root addWidget: (SWTButton caption: 'add a new edit-in-place text' onClick: [:event | self addNewEditInPlaceText]).
root lastWidget backgroundColor: S2SColor yellow muchLighter.
root addBreak.


root addWidget: (SWTEditInPlaceText contents: 'One edit-in-place text, click on me to edit').
root addBreak.

root addWidget: (SWTEditInPlaceText contents: 'Another edit-in-place text (with background color), double click on me to edit').
root lastWidget
editOnDblClick;
backgroundColor: S2SColor blue muchLighter.
root addBreak.

root addWidget: (SWTEditInPlaceText contents: 'Just another edit-in-place text (with background color), move mouse over me to edit').
root lastWidget
editOnMouseOver;
backgroundColor: S2SColor red muchLighter.
root addBreak.

root addWidget: (SWTEditInPlaceText contents: 'And just another edit-in-place text (with background color), move mouse over me to edit').
root lastWidget
editOnMouseOver;
backgroundColor: S2SColor green muchLighter.
root addBreak.


Para los bagos de siempre (que no quieren instalar nada en sus Squeaks) les subí un HTML 100% autónomo que incluye todo el código Javascript generado desde Smalltalk (126Kb).

Los próximos pasos, en el desarrollo, es integrar los widgets con el Asteroid (Implementación de Comet para Squeak) para poder implementar un Observer Pattern (aka un MVC) distribuido entre el Squeak y los navegadores de Internet.

by Diego Gomez Deck (noreply@blogger.com) at August 29, 2006 07:11 PM

Proyecto LinEx presentado ante la ONU

Sí, ante la ONU.

Ver más información en el blog de Jesús Rubio.

by Diego Gomez Deck (noreply@blogger.com) at August 29, 2006 02:11 PM

La computadora se usa mal, ¡pero NO sólo en el aula!

Tuve la suerte de participar, por segunda vez, en uno de los cursos de veranos organizados por la Universidad Internacional de Andalucía. El curso fue organizado de forma impecable por Jordi Adell. Lamenté no poder grabar en video mi intervención, ya que es una de las pocas veces que tengo suficiente tiempo para mostrar la presentación completa.

No se bien porqué, el evento está muy cubierto por periodistas de diferentes medios (Además del curso de 3 horas, dí 3 reportajes a diferentes medios). Uno de los medios era Europa Press. La cobertura de Europa Press fue reproducida por diferentes medios (Extremadura al Día, Evidalia, El Periódico de Extremadura, Diario Granada, etc).

A modo del juego "Teléfono Descompuesto" (o, en España, "Teléfono Roto"), la transcripción de la entrevista no es exacta al 100%.

Cuando yo dije que las computadoras no se están utilizando bien, no me refería solamente al uso que se les da en el aula. Me refería al uso que se les da en general, dentro o fuera del aula. Por supuesto que tampoco dije nada sobre que una región u otra den mejor o peor uso de los ordenadores (tal como sostiene el Periódico de Extremadura , o La Red de Extremadura en el titular de la notas).

Lo que dije es lo que digo siempre en mis charlas: Las computadoras están siendo usadas (mayoritariamente) como si fuese un medio de expresión antiguo. La observación no es exclusiva del uso que se les da, a las computadoras, en el aula ni (todavía mucho menos) sobre el uso que se da por regiones.

Si les interesa conocer más en detalle mi opinión, puede leer el capítulo de introducción del libro "Squeak: Un Mundo para Aprender". La versión HTML del capítulo está en:

http://www.consultar.com/DiegoGomezDeck/papers/Squeak - Un mundo para aprender/

by Diego Gomez Deck (noreply@blogger.com) at August 29, 2006 09:22 AM

August 15, 2006

Historical - Diego Gómez Deck

¡La lista de correo de Small-Land ha resucitado!

¡La lista de correo de Small-Land ha resucitado!

No se si es debido al proyecto de la computadora de 100USD, en el cual Argentina es parte. O si es debido al caluroso verano en Europa.

La cuestión es que la lista está teniendo más movimiento... pero, sobre todo, lo importante es que ¡ahora son los profesores/maestros los que hablan!

Les dejo un link a un correo muy interesante publicado hoy:

http://groups.yahoo.com/group/small_land/message/1650

by Diego Gomez Deck (noreply@blogger.com) at August 15, 2006 10:22 AM

August 09, 2006

Historical - Diego Gómez Deck

ST2JS - Traductor de Smalltalk a JavaScript (Parte II)

¡Se va la segunda!

Ayer, después de publicar la primera parte de esta serie, logré "terminar" (¿se termina alguna ves de desarrollar el software?) una versión del paquete lo suficientemente completa y estable como para ejecutar un Test-Runner en un browser de internet, desde código JavaScript, completamente generado desde clases Smalltalk.

Para los más valientes publiqué, tanto en SqueakMap como en SqueakSource, un paquete Monticello que funciona tanto en la versión 3.8 como en la 3.9beta de Squeak. Al instalar el paquete se abrirán 2 Workspaces con algo de información sobre como probar el paquete.

Quizás lo más interesante de ver sea el St2jS - TestRunner:


El St2jS - TestRunner es, como su nombre indica, un TestRunner de un framework de UnitTesting. Lo particular de este TestRunner es que está completamente escrito en Smallltalk, y funciona completamente del lado del browser de internet. Además de los tests (que se ven en verde), se incluyen un conjunto de clases con objetos "de base" (Object, Boolean, Point, WriteStream, etc).

La misma herramienta nos permite ver los segmentos de código generado con las opciones: browse all (muestra todo el código JS generado, en un sólo archivo), browse library (muestra el código generado correspondiente a las implementaciones de #jsLibrarySource), browse class: (muestra el código de una clase completa) y browse (muestra el fuente del método test correspondiente).

También podemos re-ejecutar los tests del lado del browser de internet con las opciones run all (ejecuta todos los tests del lado del browser de internet) y run (ejecuta el test correspondiente en el browser de internet).

Y, también, podemos (desde el browser de internet) disparar funcionalidades del lado del Squeak con las opciones squeak: run (ejecuta el método test en Squeak) y squeak: browse (abre el browser de clases, en Squeak, apuntando al método test).

Otra funcionalidad ya implementada, y necesaria para cualquier programador que se digne de ser un Smalltalker, es el Inspector:


Para obtener un inspector, hay que descomentar la última sentencia del método S2SBaseTestCase>>testInspect y recargar el browser de internet. El mismo inspector nos permite abrir otros inspectores para las partes del objeto inspeccionado. En este caso, si presionamos el botón [inspect] que está a la derecha del punto, obtenemos:



¡Continuará!


UPDATE: Para los que no quieran quieran perder tiempo instalando nada, les dejo un HTML, con todo el código JS incluido, que debiera funcionar en cualquier navegador. Viendo el fuente del documento se puede ver el código generado. St2jS - Test Runner.html

UPDATE 2: Una versión más mueva del HTML independiente: St2jS - Test Runner.html.

by Diego Gomez Deck (noreply@blogger.com) at August 09, 2006 01:38 AM

July 27, 2006

Historical - Diego Gómez Deck

ST2JS - Traductor de Smalltalk a JavaScript (Parte I)

Hace tiempo que no publico nada en el blog, pero eso no fue debido a que estuve de vacaciones. Lo que ocurre es que sigo muy ocupado investigando sobre las posibilidades que brindan los navegadores de Internet actuales.

Live-Wiki

Para publicar los resultados de la investigación estoy haciendo un Live-Wiki. El Live-Wiki será Wiki sin modo edición, donde se se modificará el documento directamente (ver EditInPlace). Los cambios hechos en las páginas del wiki, serán enviadas al instante (usando Comet) a todos los usuarios conectados al wiki (y viendo esa página). También habrá un chat para los usuarios conectados a la página. Iré contando más del Live-Wiki conforme vaya avanzando en el desarrollo.

JavaScript

Para sacar beneficio de las prestaciones que ofrecen los navegadores de internet actuales es necesario escribir una buena cantidad de código JavaScript. El JavaScript es un lindo lenguajecito con algunos conceptos de objetos y funcionales que lenguajes supuestamente serios ni sueñan en tratar de proveer. Por otro lado, es un lenguaje basado en prototipos (no en clases) que permite jugar con diferentes políticas de herencia. Las funciones son, como corresponde, objetos y esto permite encapsular comportamiento de una forma similar a los bloques de Smalltalk. Para mejorar el panorama, las funciones en JavaScript son verdaderos block-closures.


ST2JS - Traductor de Smalltalk a JavaScript

Las características de JavaScript mencionadas anteriormente, usadas con picardía, permiten hacer un traductor de Smalltalk a JavaScript que respete toda la semántica del Smalltalk.

La semántica de las metaclases de Smalltalk podría lograrse utilizando un modelo similar al explicado en el paper "self includes: Smalltalk" (de Mario Wolczko).

Los bloques de Smalltalk se traducen más o menos directamente a funciones de JS. Sólo hay que considerar 2 diferencias: el this/self y la diferencia entre el return/^.

En Smalltalk, la pseudovariable self apunta al receptor del método donde se evalúa el bloque. En cambio, en JS, la pseudovariable this apunta al objeto función. Como las funciones de JS son verdaderos block-closures, este problema se resuelve fácilmente de la siguiente forma:

En Smalltalk:

SampleClass>>foo
    self collection do:[:each |
        each = 2
            ifTrue:[self bar: 1].
    ].

En JavaScript:

SampleClass.prototype.foo = function() {
    /* En este punto, this y self son lo mismo: El receptor del mensaje que activó el método */
    var self = this;
    self.collection().do_(function(each) {
     if (each = 2) {
         self.bar_(1); /* En este punto, this apunta a la función y no al receptor. Por eso usamos la variable self apoyándonos en los true-block-closures de JS */
     }
    });
}


La otra diferencia requiere un poco más de "magia" para resolverlo. El punto es que en Smalltalk, el ^ usado dentro de un bloque, hace terminar no sólo la evaluación del bloque, sino también del método donde se activó el bloque. En cambio, en JS, el return sólo sale de la función (es decir de 1 sólo nivel).

En Smalltalk:

SampleClass>>bar
    self collection do:[:each |
        each = 2
            ifTrue:[^ self bar].
    ].

En JavaScript:

SampleClass.prototype.bar = function() {
    var self = this;
    try {
        self.collection().do_(function(each) {
         if (each = 2) {
             throw new ReturnValue(self.bar_()); /* La excepción viajará hasta el catch(), es decir hasta el método */
         }
        });
    }
    catch (err) {
        if (err.constructor == ReturnValue) {
            return err.value;
        }
        else {
            throw err;
        }
    }
    return self;
}

by Diego Gomez Deck (noreply@blogger.com) at July 27, 2006 12:21 PM