Presentaciones en Squeak por Germán S. Arduino

Trabajo publicado originalmente en el sitio de Small-Land, Julio 2002.

 

Squeak, como medio de expresar ideas, también puede usarse para realizar presentaciones "a la Power Point" (o StarImpress, OpenOffice Impress o Freelance).

Obviamente que no es un producto pensado para hacer eso, es muchísimo más, es un ambiente de objetos que, eventualmente, puede ser usado para hacer presentaciones, por lo tanto no es de esperar encontrar aquí características específicas de un producto destinado exclusivamente a realizar presentaciones.

A cambio tiene el inmenso poder de los objetos subyacente en cada slide (cada hoja) con lo cual es posible incorporar objetos "vivos" permanentemente, así como hacerlos trabajar.

En este artículo veremos como armar presentaciones básicas en Squeak y la idea es que sirva como punto de partida a todos aquellos que deseen usar esta característica para presentar sus propios proyectos Squeak (ya sea programadores, educadores, técnicos, etc).

Para seguir este artículo es necesario un conocimiento básico de Squeak, se debe saber como crear un Proyecto y nombrar, el manejo de imágenes y nociones generales del ambiente. Con respecto a las versiones usadas, este tutorial se hizo usando una imagen 3.5 #5180 limpia, tal como se baja de Internet. Es muy importante tener en cuenta que presentaciones hechas en imágenes modificadas (por ejemplo con fonts especiales) pueden luego presentar dificultades al momento de desear cargarlas en imágenes que no tengan los mismos paquetes incluidos.

Es importante también destacar que debido a ser Squeak un entorno multiplataforma que usan de distinta forma el ratón, los botones pueden no ser los mismos en Windows, Linux, Macintosh, etc. Para unificar los tutoriales se ha decidido hacer una convención por colores que es la que se va a usar en este documento. Los botones se llaman "rojo", "amarillo" y "azul" y puedes ver su significado en Botones del Ratón.

Dentro de Squeak tenemos básicamente 3 formas diferentes de armar presentaciones. Podemos hacerlo usando un BookMorph, un StackMorph o Proyectos Morphic enlazados entre sí. Esta última alternativa es la que desarrollaremos en este artículo.

Una de las primeras cosas a tener en cuenta es que seguramente cuando tengamos varias presentaciones hechas vamos a desear tener agrupados todos los Proyectos que forman cada presentación, para lo cual es importante tener una forma de "sacarlas" de la Imagen. Caso contrario deberíamos estar manipulando la imagen, usualmente de muchos megas y totalmente impráctica para ello. Así que lo primero es crear un Proyecto morphic con el nombre de la presentación en cuestión, en este ejemplo: presentación1.. Para ello pulsamos con el botón rojo en cualquier parte libre de la pantalla de Squeak, con lo que se abre el "Menú del Mundo" y elegimos Open->Morphic Project. Para cambiarle el nombre pulsamos con el botón rojo sobre el texto Unnamed1, escribimos presentación1 y pulsamos intro. ¡Ojo! hay que pulsar sobre el texto Unnamed1 no sobre la Ventana porque entonces entrarás en tu nuevo Proyecto sin cambiarle el nombre.

 

 

Este será el Proyecto que usaremos para "agrupar" nuestra presentación y dentro del cual crearemos el resto de elementos de la misma.

Entramos al Proyecto presentación1 y con botón amarillo en el Mundo deschequeamos la opción show shared tabs (F) para evitar que se vean las Pestañas y dar un aspecto más elegante al escritorio.

El próximo paso es crear un "template", es decir un modelo de hoja que usaremos para cada una de las hojas de la presentación.

Creamos un nuevo Proyecto morphic (botón rojo,Open->Morphic Project) (dentro del presentación1 ) y le asignamos el nombre de template1. Entramos al Proyecto, (las Pestañas ya aparecen ocultas ahora) y utilizamos la opción Objects (o) del Menú del Mundo (botón rojo -> Objects) para armar nuestro template. Por ejemplo así:

 

 

De la categoría Basic 1 elegimos el Morph Text fancy) y lo arrastramos con el mouse hasta la esquina superior del Mundo. Yo elegí este Morph porque me gusta, pero puede ser cualquiera, cada uno con sus particularidades.

Con este Morph vamos a crear un área de títulos para la hoja. Pedimos los Halos del Morph (botón azul) y lo estiramos hasta que tenga el tamaño deseado, por el halo amarillo (los Halos son los distintos botóncitos que aparecen alrededor de un objeto cuando le hemos pulsado con el botón azul, el halo amarillo permite redimensionar).

Una vez con el tamaño deseado clickeamos el Mundo para que desaparezcan los Halos.

Clickeamos dentro del Morph para escribir el texto que deseamos, por ejemplo: Título de la Hoja. Para manipular ese texto, disponemos de varios tips, por ejemplo:

  • Si pintamos el texto ("Título de la Hoja") y vamos presionando Alt-1 al Alt-5 vemos como el texto va cambiando de tamaño.
  • Con Alt-6 obtenemos un menú con varias opciones, entre ellas cambiar el color, hacer DoIts, PrintIts, links, etc.

Otras combinaciones de teclas útiles son:
  • Alt-7 pone / saca el bold.
  • Alt-8 pone / saca el italic.
  • Alt-9 cambia el espaciado entre teclas.
  • Alt-0 resetea todo.

Si pedimos nuevamente los Halos del Morph del título (pulsando con el botón azul sobre él), tenemos debajo tres Halos que nos permiten también modificar la apariencia del texto, ellos son: Change font, Change style y Emphasis & alignment.

  • Alt-k también deja cambiar el font.

Es importante destacar que estas combinaciones pueden no ser las mismas en todos los sitemas operativos (Tenemos en cuenta que Squeak corre en una amplia variedad de plataformas y hay algunas diferencias entre ellas).

Ahora es el momento adecuado para que cada quien juegue un rato con su template hasta lograr el modelo que le guste. A mí me quedó así:

 

 

El texto del pie de página es un text Morph. (Yo lo coloqué a la derecha, pero es mejor colocarlo a la izquierda o en el centro de la Hoja, ya veremos más adelante porque).

Bien, ya tenemos nuestro template, es momento de guardarlo en disco, para recuperarlo cada vez que deseemos armar una nueva hoja de la presentación. Esto se hace desde el Menú del Mundo (botón rojo sobre cualquier lugar no ocupado por Morphs), save project on file, y aparece un cuadro llamado Publish This Project, desde donde elegimos la carpeta apropiada y tenemos dos opciones para guardarlo:

  • Save: Guarda el Proyecto en la carpeta elegida y en la carpeta Squeaklets situada dentro de la carpeta donde tenemos arrancado el Squeak.

  • Save on local disk only: Guarda el Proyecto en la carpeta Squeaklets dentro de la carpeta donde tenemos instalado Squeak.

Es importante destacar que cada vez que lo guardemos, no se sobreescribe el anterior, sino que Squeak va generando nuevas versiones con nombres como template1.001.pr, template1.002.pr y así sucesivamente.

Los Proyectos en Squeak tienen como extensión de archivos .pr.

Hecho lo anterior, ya tenemos nuestro template guardado en disco para usarlo como origen de cada nueva página de la presentación en cuestión.

Con botón amarillo en el Mundo conseguimos un menú que, entre otras, tiene la opción previous project, la elegimos y volvemos al Proyecto general de la presentación.

 

Nota 1: Esto (y otras opciones) también pueden lograrse si desocultamos las Pestañas y usamos las opciones de la Pestaña Navegador de la parte inferior, donde tenemos los botones Prev, Next, Publish, New y otros muy útiles. Es cuestión de costumbre y cada quién elegirá la que le quede más cómoda. Por ejemplo, podemos no ocultar las Pestañas y elegir desde ahí los Morphs y ocultarlos sólo cuando hayamos finalizado la Hoja en cuestión.

 

Bien, ya tenemos el Proyecto que agrupa a la presentación y el template, es momento de crear la primera hoja. Para ello desde el Menú del Mundo elegimos la opción load project from file, navegamos hasta la carpeta donde guardamos el template y lo seleccionamos, con lo cual el mismo es cargado en la imagen de nuestro Squeak y abierto como Proyecto actual.

Vamos un Proyecto atrás (con cualquiera de los dos métodos vistos recientemente) y tenemos algo así:

 

 

Seleccionamos el nombre del Proyecto recién cargado (template1) y lo cambiamos por el que deseemos, en este caso Hoja1 (no olvidar presionar tecla Enter luego de escribir el nombre, para que se haga efectivo el cambio).

Ya tenemos la primer hoja de nuestra presentación, la clickeamos y se transforma en el Proyecto actual, para que le demos contenido, por ejemplo algunos textos y por qué no, algo que NO pueden hacer otros programas específicos para crear presentaciones, es decir, alojar un objeto "vivo".

A mi me quedó así:

 

 

Hice lo siguiente:

  • Cambié el título.

  • Agregué un text morph con letras grandes.

  • Incorporé una flecha (Si usas squeak sobre Windows o Mac,un jpg cualquiera que se puede arrastrar desde otra carpeta de la computadora y soltar sobre el Proyecto Squeak. Si usas squeak sobre Linux tienes que abrir la Lista de Archivos (botón rojo->Open->File List), ir a la carpeta donde tengas la imagen, seleccionarla y pulsar el botón Open).

  • Desde el Catálogo de Objetos, categoría Useful agregué el reloj (watch) que está funcionando!.

Así tenemos la primer hoja de nuestra presentación. Volvemos atrás (con previous project o botón Prev de la Pestaña Navegador) y tenemos el Proyecto general de la presentación y las miniaturas del template y la hoja 1.

Con lo aprendido hasta aquí jugaremos un rato y la tarea es que tu, amigo que estás siguiendo este tutorial, desarrolles unas 3 hojas adicionales, para que luego podamos terminar de aprender cómo coordinar la presentación completa.

 

Nota 2: Es importante tomarse el tiempo necesario para jugar con todos los Morphs que se les ocurra, así como con imágenes y textos, para armar las próximas hojas de la presentación.

 

Nota 3: Es muy importante destacar que cada Hoja de la presentación, al ser un Proyecto Squeak tiene la posibilidad de albergar cualquier objeto y comportamiento que se desee desarrollar, por ejemplo podríamos hacer una presentación que enseñe el uso de un sistema desarrollado en Squeak y que vaya interactuando en tiempo real con el mencionado sistema. Esta es una condición excepcional que nos permite el maravilloso mundo de los objetos.

 

Luego que hayan hecho sus 3 hojas adicionales (en realidad, como ya vimos, cada uno es un Proyecto morphic), deberán contar con algo así (obviamente, con vuestro propio contenido en cada hoja adicional):

 

 

Bien, es momento ahora de relacionar las hojas entre si, para que todas juntas formen una "presentación".

Para ello clickeamos en el Proyecto Hoja1 (el que deseamos sea la hoja inicial de la presentación) y seleccionamos objects (o) del Menú del Mundo, vamos a la categoría Navigation y arrastramos el morph ThreadNavigator al Mundo.

Por defecto dicho morph va a la esquina inferior derecha, superponiéndose con nuestro pie de página, así que pedimos sus Halos y con el halo marrón lo llevamos hacia el centro de la página, como se ve a continuación
:

 

 

Cerramos el selector de objetos (por el circulo de arriba izquierda) y clickeamos con el botón rojo justo entre las dos flechas naranja del ThreadNavigator, lo que nos muestra un menú, del cual elegimos la opción edit this thread, lo cual nos mostrará una Ventana con todos los Proyectos morphic incluidos en la imagen (que son los que componen el thread por defecto).

En esa Ventana vamos eliminado todos los Proyectos que no queremos se incluyan en nuestra presentación, pedimos los Halos de cada uno y presionamos la cruz de la esquina superior izquierda, que envía el morph a la papelera (o aún más fácil, los arrastramos hasta el Cubo de basura de squeak).

El ambiente puede configurarse para que cuando eliminamos un morph, no vaya a la papelera, sino que directamente se elimine de la imagen, pero como el paso por la papelera es parte de la configuración por defecto de la imagen, así lo mostramos acá.

 

 

Cuando nos quedan solamente los Proyectos que deseamos compongan nuestra presentación, entonces presionamos el botón Okay el cual nos pedirá nombremos el thread, por ejemplo como presentación1, presionamos Accept y ya tenemos el thread tal como lo deseamos.

El ThreadNavigator se vuelve a su posición default, si no salvamos previamente la imagen, por lo cual lo volvemos a trasladar al centro de la Hoja y salvamos la imagen desde la opción correspondiente del Menú del Mundo (botón rojo -> Save)

Salvar la imagen es una práctica que todo squeaker (o smalltalker) debe conocer así como evaluar con qué frecuencia le conviene hacerlo.

Bien, nuestra presentación está lista!.

Si posicionamos el ratón sobre el ThreadNavigator se resalta el borde de la imagen de la derecha, mostrándonos una miniatura de la próxima hoja y su nombre en un globo de ayuda.

 

 
El ThreadNavigator aparecerá en cada "hoja" (Proyecto) de la presentación y nos servirá para navegar por la misma.

Nota 4: Trabajando con este tutorial encontré que el ThreadNavigator siempre se ubica en el extremo inferior izquierdo de la Hoja, aún cuando se haya configurado adhere to edge a otro valor. De momento no estoy seguro si es comportamiento normal o un bug, cosa que estoy tratando de averiguar. Por eso dije antes, que es mejor poner el pie de página en el centro o a la izquierda ;-)

 
Como último paso grabamos todos los Proyectos que componen la presentación como aprendimos antes para transportarlos y/o cargarlos en otra imagen.
 

Nota 5: Como un To-Do queda la posibilidad de hacer un botón que grabe automáticamente todos los Proyectos que componen la presentación.

 

Con esto finaliza el presente artículo, sin embargo, no duden en enviarme cualquier sugerencia que puedan tener para mejorarlo y/o ampliarlo.

 
Para más información sobre conceptos de Squeak en español, visite el sitio de Small-Land.
 

Germán Arduino (Sunchales, Argentina) es un Consultor Independiente que gestiona su propia compañía ArSol Software donde se dedica al desarrollo de software y a la venta de hosting y servicios internet. Tiene 20 años administrando sistemas desde IBM 360 hasta servidores Intel con Windows y Linux y productos asociados. Hace el mismo tiempo que también desarrolla todo tipo de aplicaciones para diferentes plataformas en lenguajes tan disímiles como Assembler, RPG, CSP, Cobol, FoxPro, Visual FoxPro, Visual Basic, JavaScript, PHP, ASP, Perl, Python y Smalltalk. Puede ver su página personal o contactarlo vía e-mail.