• Copiar y pegar una escena en el entorno html

    Una vez se ha accedido al código de una escena basta seleccionar ese código, copiarlo (Ctrl+C) y simplemente pegarlo (Ctrl+V), en un editor de código cualquiera (editor de texto o html), en la posición donde se desea que la escena quede incorporada.

    El criterio general es que donde puede copiarse código html podrá copiarse una escena ya que ésta sigue la estructura de etiquetas propia de html.

    Para el adecuado funcionamiento de la escena copiada han de tenerse en cuenta los siguientes detalles:

    A. Para que el navegador que abra la página en la que se ha incluido la escena pueda interpretarla es necesario que en el código esté incluida la llamada al intérprete. En particular para DescartesJS la llamada al intérprete a Internet requeriría incluir, si el código copiado no  la incluye ya, la línea

    <script type=’text/javascript’ src=’https://arquimedes.matem.unam.mx/Descartes5/lib/descartes-min.js’></script>

    B. Si la escena hace uso de imágenes, macros o ficheros será necesario indicar el lugar donde pueden encontrarse estos y por defecto se puede incluir la dirección desde la que se está copiando la escena. La forma de indicarlo es mediante el parámetro docBase:

     <param name=»docBase» value=»dirección web donde están esos ficheros«>

    y ubicar esta línea como primer parámetro del código de la escena.

    Por ejemplo, si deseamos copiar la escena de la tortuguita que utiliza imágenes y ficheros y que se incluye en la página de subproyectos de la web de RED Descartes: https://proyectodescartes.org/indexweb.html, el procedimiento sería el siguiente:

    1. Seleccionamos la escena que se quiere incorporar.
    2.Posicionamos el ratón sobre ella y pulsamos el botón auxiliar del ratón (derecho por defecto) que abrirá la ventana en la que aparece el botón «config». Pulsamos este botón y obtenemos el código de la escena.
    código escena

    Acceso al código de la escena

     
    3.Copiar el código y pegarlo en el soporte donde se desea incorporar dicha escena: por ejemplo una página html, o un blog, o una Moolde, o una wiki, etc. Como hemos indicado allá donde se pueda copiar código html se puede copiar la escena.
    Pegar código

    Pegar código en el soporte seleccionado, en este caso en una página html abierta en un editor

     
    4. Revisar si el código pegado tiene la línea de llamada al intérprete incorporada. Si no la tuviera habrá que incluirla. Por ejemplo:
    <script type=’text/javascript’ src=’https://arquimedes.matem.unam.mx/Descartes5/lib/descartes-min.js’></script>. En la imagen anterior puede observarse la escena copiada e incorporado el script indicado.
    5. Comprobar si en el código va incluida la referencia para localizar los ficheros auxiliares (imágenes, macros y ficheros), es decir el parámetro docBase. Si no fuera así, entonces incorporar este parámetro indicando en value la dirección web desde la que se ha copiado la escena. En este ejemplo sería  https://proyectodescartes.org/indexweb.html y la línea a incorporar:
     <param name=»docBase» value=»https://proyectodescartes.org/«>
    En la imagen anterior puede observarse esta línea incorporada en el código de la escena.
    6. Con estas acciones ya tendremos operativa la página en cualquier lugar siempre que se tenga conexión a Internet (dado que las referencias que se han puesto necesitan de ese acceso a Internet). 
     
    Es esencia y de manera simplicada: acceder a la escena, copiar código, pegar código y añadir la llamada al intérprete y al docBase si no estuviera. Eso es lo que se ha hecho aquí para que incorporar la escena citada a esta página de documentación:
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    Escena copiada y pegada en este blog de documentación
     
     
    Nota: Hay determinadas herramientas o servicios en las que el administrador puede incluir filtros o limitaciones a la hora de embeber código. Si no le funciona este procedimiento, cersiórese que el código que ha copiado no ha sido borrado por algún filtro de este tipo, para ello basta que vuelva a editar y compruebe que el código sigue ahí y que no ha sido cambiado. Si no estuviera o hubiera sido cambiado tendrá que ponerse en contacto con el administrador de su servicio para que cambie ese filtro.
     
  • Referencia, localización y ubicación de los intérpretes

    Para que una escena se pueda interpretar ha de referenciarse y ubicar el intérprete que se desea usar. El gestor de escenas incluye el código necesario de acuerdo a la opción seleccionada en el submenú «Opciones», pero puede modificarse si el usuario lo desea.

    1. En el intérprete Java la referencia va descrita en el parámetro de la escena denominado «jnlp_href» cuya sintaxis es:

    <param name=»jnlp_href» value=»https://arquimedes.matem.unam.mx/Descartes5/lib/Descartes5.jnlp«>

    En el ejemplo anterior se accede a una dirección de Internet para descargar el intérprete. En este caso se ha reflejado la correspondiente al directorio de distribución ubicado en el servidor arquimedes de la UNAM en México y se trata de una escena de Descartes5, si fuera un discurso habría que poner

     https://arquimedes.matem.unam.mx/Descartes5/lib/Arquimedes.jnlp 

    y para una escena de la versión 2 sería

     https://arquimedes.matem.unam.mx/Descartes5/lib/Descartes2.jnlp.

    Para una referencia local relativa a la ubicación de la página html que contiene a la escena basta cambiar el parámetro value. Por ejemplo:

    <param name=»jnlp_href» value=»./lib/Descartes5.jnlp«>

    indica que el archivo Descartes5.jnlp está en un directorio denominado lib al nivel de la página de llamada (en este mismo directorio habrá de ubicarse el archivo Descartes5.jar que es referenciado por el anterior). Análoga situación ha de contemplarse, cuando sea necesario, para discursos y escenas de la versión 2.

    2. En el intérprete DescartesJS es necesario incluir la llamada al archivo descartes-min.js  que contiene el código javascript del intérprete. Para ello, en cualquier posición de una página html y previamente al código de la primera escena a interpretar se incluirá:

    <script type=’text/javascript’ src=’https://arquimedes.matem.unam.mx/Descartes5/lib/descartes-min.js’></script>

    En este caso el intérprete se localizaría y descargaría desde el servidor arquímedes de la UNAM. Si se desea que la localización sea a nivel local podría ponerse:

    <script type=’text/javascript’ src=‘./lib/descartes-min.js‘></script>

    y se buscará en el directorio denominado lib ubicado en el árbol de directorios al mismo nivel donde está la página que incluye esta llamada. Obviamente ha de existir ese directorio y en él ha de estar el archivo descartes-min.js.

    ____________________________________________________________________

    Independiente de la modalidad del intérprete (Java o javascript) en:

     https://arquimedes.matem.unam.mx/Descartes5/lib/

    estará siempre la última versión del intérprete. Por tanto, si se utiliza esta referencia siempre se interpretará la escena con la última versión existente.

    Si se utiliza una referencia a un servidor propio obviamente se estará interpretando con la versión que se aloje ahí y que no tiene por qué coincidir con la última existente.

    Si se aloja en una librería local ./lib/descartes-min.js se ejecutará con la versión local ahí referenciada.

    Cada opción tiene sus ventajas y es decisión del usuario desarrollador optar por una u otra. Si se utiliza una versión local se tiene garantía que una escena que cuando fue desarrollada era bien interpretada por el intérprete ahí alojado, seguirá interpretándose siempre igual, es decir, no surgirán posibles incompatibilidades hacia atrás como consecuencia de nuevas versiones del intérprete. Si se utiliza un servidor propio se mantendrían todas las escenas que apuntan a él en la misma versión y si se usa el servidor arquimedes se accede siempre a la última que puede incorporar mejoras.

  • Editores de configuración de Descartes

    El diseño, escritura o modificación del código de una escena puede efectuarse de diferentes maneras:

    1. Si se conoce la sintaxis de los parámetros correspondientes a los objetos cartesianos que se quieren incorporar basta usar un editor de texto plano, es decir, que éste no incorpore códigos de formato ajenos a los caracteres a registrar, o bien usar un editor de páginas html en la modalidad de edición de código. Se incluirán o modificarán los parámetros deseados y el código de la escena resultante habrá de incluirse o estará incluido en el cuerpo de una página html, es decir, entre las etiquetas <body> y </body>. También tendrá que incorporarse la referencia para localizar el intérprete de Descartes que se desea usar.

    Para las escenas a interpretar con Java el código de las mismas estará comprendido entre la etiqueta <applet> y </applet> y para el intérprete DescartesJS las etiquetas son <ajs> y </ajs>.

    Página html con una escena

    Página html con una escena y esquema conceptual

    2. Se puede partir de una escena y usar el editor de configuración que está integrado en el propio intérprete,  a él se accede posicionando el ratón sobre la escena y pulsando el botón auxiliar del mismo (el derecho para configuraciones diestras) se mostrará una ventana que contiene un botón etiquetado como config (ver acceso al código de una escena). El editor integrado es:

    acceso al código

    Acceso al código desde el editor de configuración integrado en el intérprete de Descartes Java

    Los cambios que se realicen a la escena pueden aplicarse y observarse en el navegador, pero no hay posibilidad de grabación directa de ellos, es decir si se cierra o recarga la página se perderán. Para poder guardar los cambios es necesario copiar el código de la escena (en el editor Java hay que pulsar el botón código y en el de javascript el código es sobre el se está trabajando directamente) y utilizar un editor de textos, como se ha indicado en la opción anterior, para pegarlo y guardarlo en un archivo html.

    3. Utilizar el gestor de escenas desarrollado en Java.

    4. Optar por el  editor interactivo desarrollado en javascript.

  • Intérpretes de Descartes

    Conceptual y prácticamente un intérprete de Descartes lo que hace es leer el código de una escena de Descartes y lo transforma en otro código que es el que efectúa la representación y aporta la interactividad de los objetos cartesianos en el software y hardware del usuario.

    Descartes cuenta con dos intérpretes del código de una escena.

    • Uno en Java al que denominamos Descartes y que se distribuye en un archivo de extensión jar que según la versión o utilidades que incluye tiene diferente nombre (ver las librerías de Descartes en este enlace).
      • Si este intérprete no se localiza el navegador informará de que no se han encontrado las clases Java referenciadas.
      • Desde la versión 7.13 de Java, Oracle como desarrollador de este producto ha introducido filtros de seguridad que pueden bloquear las escenas en Windows y en Mac. En Linux con Open Java esto no acontece.
      • Descartes en su versión 5 es un applet firmado y con certificación, por tanto, las escenas desarrolladas con esta versión no deberían bloquearse, pero en la web pueden encontrarse miles de escenas que están en versiones anteriores.
      • Por limitaciones de Android e iOS, Java no es ejecutable en tabletas y smartphones, por ello el intérprete de Descartes en Java no permite ver las escenas de Descartes en esos dispositivos.
      • El intérprete y el software del editor de configuración de Descartes en Java es software libre, está bajo la licencia EUPL v.1.1. El código fuente se encuentra en : https://arquimedes.matem.unam.mx/Descartes5/
    • Uno en javascript al que denominamos DescartesJS y que se distribuye en un archivo nombrado descartes-min.js que puede enlazarse o descargarse desde el directorio de librerías de Descartes.  En el nombre de ese archivo el prefijo descartes es obvio, la extensión es js porque es código en javascript,  y el sufijo min es de minimizado, es decir que el código previamente a la distribución se ha compactado quitando espacios y denominaciones más extensas que son necesarias en el desarrollo, pero no en la ejecución.
      • Si éste intérprete no es localizado el navegador omitirá ese código, no se observará la escena y no habrá ningún rastro de esa omisión en lo que muestra el navegador.
      • El intérprete DescartesJS, software desarrollado en JavaScript y HTML5, está bajo licencia LGPL. El código fuente se encuentra en https://github.com/jlongi/DescartesJS.
      • DescartesJS lee el código de una escena de Descartes y lo transforma en un código javascript que es ejecutable sobre cualquier navegador compatible HTML5. HTML5 que es el actual estándar del lenguaje de marcas para páginas web y al que progresivamente van adaptándose todos los navegadores en todos los sistemas operativos, pero hay que ser conscientes que cada navegador tiene diferente nivel de estandarización y que pueden encontrarse comportamientos distintos dependientes no sólo del navegador que se esté usando, sino también de la versión del mismo en cada sistema operativo, de la versión de éste e incluso del fabricante que lo distribuye. Ello ocurre especialmente en las tabletas y smartphones. ¡Ciertamente es un handicap usual en la informática!, pero es de esperar que vayan confluyendo todos hacia lo establecido.
      • La compatibilidad HTML5 permite que las escenas se vean en cualquier ordenador, tableta y smartphone  independientemente del sistema operativo que porte.

    A priori, en lo que atañe a la eficiencia, ambos intérpretes se ubican en igual estatus inicial. Experimentalmente puede comprobarse que la carga de una escena con el intérprete en javascript suele manifestarse como más rápida que el intérprete en Java. Ello es consecuencia de que Java opera con un JIT (just in time compiler) que en principio retrasa un poco el inicio de la ejecución para conseguir que ésta sea después más rápida, pero nada impide a javascript funcionar de la misma manera, y seguramente irá mejorando.

    La ventaja mayor de DescarteJS se encuentra en que todo el proceso de interpretación e interacción con la escena se realiza exclusivamente en el navegador sin utilizar ningún software adicional. Adicionalmente, es bien conocida la dificultad que a los usuarios siempre le ha supuesto la instalación de Java y los problemas de compatibilidad con los complementos en los navegadores, si bien últimamente los sistemas operativos de ordenadores suelen incorporarlo y esa dificultad ha ido disminuyendo, pero las continuas actualizaciones en las que se ha ido embarcando Oracle (actual desarrollador de Java) han generado problemas adicionales en los applet Java y en Windows y Mac las escenas que usan la versión instalada (plugin de Descartes) a partir de la versión 7.13 de Java quedan bloqueadas y en la nueva versión de Descartes5 aún sigue ocasionando incompatibilidades a pesar de ser un applet firmado y certificado. Así pues, independientemente de reconocer la innovación que Java introdujo en los años 90 del pasado siglo y que a Descartes ha aportado muchísimo, en RED Descartes centramos nuestra labor en el intérprete DescartesJS.

    También hay que señalar que no hay una equivalencia exacta entre el tratamiento a bajo nivel que hace Java y el que hace javascript, consecuentemente determinados objetos cartesianos no se visualizan de la misma forma si se ejecutan en el intérprete Descartes Java o con DescartesJS. Por ello, aunque el equipo de desarrollo de Descartes ha tratado de minimizar estas diferencias no ha podido conseguirse la deseada equivalencia total. Eso es especialmente negativo para escenas que estaban ya desarrolladas y que ahora quieran interpretarse con DescartesJS, ya que ello requerirá una revisión y adaptación individual de cada escena, pero obviamente no lo es para escenas que se desarrollen en el nuevo entorno, más si éstas se desarrollan usando el editor en javascript.

    El intérprete de Descartes Java incorpora el editor de configuración estándar que cuenta con paneles de edición interactiva, sin embargo DescartesJS sólo incorpora un editor de líneas y por tanto, en este caso, si se desea esa edición interactiva hay que usar el gestor de escenas o el editor en javascript citado. El acceso a los editores integrados se realiza ubicando el ratón sobre la escena y pulsando el botón auxiliar del ratón (botón derecho, para ratones configurados como diestros).

  • ¿Qué es Descartes?

    Descartes es una herramienta de autor que permite elaborar recursos didácticos interactivos que se embeben en páginas html y, por tanto, puede interactuarse con ellos en todos los dispositivos donde una página web sea accesible. La primera impresión al ver un recurso de Descartes puede inducir a interpretar que es una imagen animada o una animación, pero basta aproximar el ratón o el dedo al recurso de Descartes para comprobar la esencia del mismo que se centra en la interactividad.

    Logo de Descartes

    Logo de Descartes

    Matemáticas interactivas

    Matemáticas interactivas

    Ésta es una imagen estática Ésta es una imagen animada
     Esto es una animación, pero generada con Descartes. Si paras la animación podrás interactuar modificando el valor de N o posicionándote en el punto rojo y desplazándolo. Esto es una pequeña muestra de lo que diferencia un recurso de Descartes.

    Esto es una animación de representaciones de cuerpos tridimensionales generada con Descartes. Si paras la animación podrás interactuar con los controles incluidos. Es otra muestra de lo que diferencia a un recurso de Descartes.

    Al recurso básico generado con Descartes se le denomina escena. Según el diccionario de la RAE las primeras acepciones de  escena son:

    Acepciones de escena según la RAE

     

    Primeras acepciones de escena según la RAE

    Y estos significados del ámbito teatral son los que se quieren trasladar al contexto educativo cuando a las actividades realizadas con Descartes se les denomina así, poniendo especial énfasis en que es algo muy diferente de una animación, si bien con una escena también pueden construirse animaciones. No es lo mismo ser un espectador viendo una película (animación) que ser actor en una obra de teatro. Descartes aporta el escenario, el decorado, la infraestructura técnica, y es el usuario, nuestro alumnado y nosotros mismos, los que en cada escena han de abordar su papel de actor protagonista. Y en el desarrollo de esa obra teatral habrá escenas en las que se verá guiado por el director, en algunas tendrá que descubrir el guión y en otras aportar su destreza e iniciativa para construir su propio guión, pero todo lo hará gracias a la interacción con Descartes. El escenario se adapta al actor y éste construye la obra. De esta analogía teatral surge la denominación de escena. Y en el esbozo anterior ya se está marcando la posibilidad de una utilización metodológica diversa. Las escenas pueden adaptarse desde metodologías expositivas en las que se pueden usar como apoyo gráfico en una explicación, hasta metodologías constructivistas en las que las escenas promueven la investigación y a partir de ella la construcción del conocimiento logrando un aprendizaje significativo. El director de escena (el profesorado) es el que marca la puesta en escena a su alumnado. El profesor es el arquitecto del aprendizaje y sus alumnos los protagonistas del mismo. A veces puede verse condicionado por el autor del libreto (autor de la escena), pero él es quien organiza el aprendizaje y si lo desea (y quiere formarse para ello) puede también modificar ese guión o adaptarlo a sus necesidades y gustos particulares.

    Pizarra interactiva

    Uso de una escena como una pizarra interactiva

    Pizarra interactiva

    Uso de una escena para un aprendizaje significativo guiado

    Pizarra interactiva

    Uso de una escena para evaluación formativa

    Lo anterior es la visión que el usuario tiene y adquiere de Descartes. Pero técnicamente una escena de Descartes no es más que una estructura de datos XML muy simple (un conjunto de parámetros: <param name=… >) en la que se vuelca toda la información que se requiere para que Descartes la interprete y para que muestre al usuario los objetos cartesianos codificados. (Vease código de una escena).

    Código de una escena

     

    Fragmento del código de una escena

    Si se conoce la sintaxis de ese código es posible escribir una escena directamente sin más que usar un editor de textos, pero Descartes cuenta con algunos editores de configuración que facilitan esa tarea.

    El código de una escena ha de embeberse en el código html de una página web, y consecuentemente allá donde sea accesible una página de este tipo, será accesible una escena de Descartes. Por defecto los editores de configuración aportan un archivo con esa estructura.

    Al abrir con un navegador una página web que contiene el código de una escena, para que ésta sea visible y se pueda interactuar con ella, es necesario que el navegador cargue un intérprete de la escena y para ello, en esa página, ha de indicarse al navegador dónde puede localizar dicho intérprete. Los editores de configuración aportan el código necesario para ubicar y localizar el intérprete deseado en tres modalidades a elegir por el desarrollador: Internet, portable y proyecto. Actualmente se dispone de dos intérpretes uno en Java (Descartes) y otro en javascript (DescartesJS).

    La documentación de este sitio se centra esencialmente en la versión DescartesJS que es el foco de atención de la RED Descartes, pero también se hace referencia a la versión Java.

    Tradicionalmente  a la herramienta Descartes, desde la RED Descartes, se la ha denominado «nippe Descartes» como acrónimo de «núcleo interactivo para páginas educativas» donde se sintetiza la capacidad de interactuar que ese núcleo (programa) aporta a una escena y la posibilidad de generar estas escenas también de manera interactiva, todo con un objetivo claro y preciso con foco en la Educación.