CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 25 May 2018 16:06

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 20 mensajes ]  Ir a página 1, 2  Siguiente
Autor Mensaje
 Asunto: AGE sin JAVA
NotaPublicado: 23 Abr 2018 19:24 
Desconectado
Yiepp
Yiepp
Avatar de Usuario

Registrado: 27 Feb 2018 13:49
Mensajes: 76
AGE es un parser que como ya sabéis necesita JAVA.

Como seguro que ya sabéis también, JAVA ya no es la tecnología cool que se nos prometía que todos íbamos a tener instalada en nuestros frigoríficos en el futuro. Lo de los coches voladores también ha resultado ser un pronóstico ligeramente inexacto.

En la línea de las cosas que ya sabéis, la gente, yo especialmente, somos vagos por naturaleza y no nos apetece instalar cosas para probar una aventura. Como mucho, descargarla y jugarla (y si puede jugarse online para ahorrarme la descarga, mejor que mejor).

Ahondando aún más en ese acervo común de cosas que tanto yo como vosotros conocemos está el hecho de que una vez me instalaba JAVA, podía jugar aventuras hechas en AGE de dos maneras, descargándomela para jugarla en mi PC (windows, etc) o entrando en una página web en la que la aventura se cargaba mediante lo que los doctos sesudos llaman un applet de java, y que resumiendo era la aventura incrustada en el navegador para jugarla (siempre y cuando, repito, el visitante tuviera JAVA instalado).

Un ejemplo de aventura que puede jugarse de estas dos formas lo tenéis en Una de Dragones, versión AGE de nuestro bienamado Edlobez.

- Si no tenéis JAVA instalado en vuestro equipo y pulsáis la versión online, veréis un pantallazo blanco sin más :(
- Si no tenéis JAVA instalado en vuestro equipo y os descargáis la versión completa, no os funcionará, porque necesitáis tener JAVA instalado :(

Una lástima, especialmente siendo hoy mismo el día de San Jorge/Sant Jordi, que toda esa energía anti-dragoniana del día no pudiera ser redirigida a jugar una buena conversacional como esta por no tener JAVA instalado.

Así que buscando alternativas, he dado con una para el primer caso (el de descargarse la aventura y jugarla en el PC-windows). Existe un “apaño” de JAVA portable llamado jPortable, hecho de manera no-oficial cuya fiabilidad y nivel de virus insertado desconozco así que, úsese por su propia cuenta y riesgo. Yo le he pasado el antivirus y no me ha detectado nada raro, así que me he lanzado y he preparado un “pequeño” paquete descargable:

Una de Dragones V1.0 AGE - Autojugable sin instalar JAVA

Es un .rar (75Mb comprimido) con un directorio en su interior para descomprimir, dentro del cual tenemos lo siguiente:

Juego.bat (el archivo que ejecutará el juego)
/bin (la carpeta con todo el meollo)
/bin/jre (subcarpeta con el java portable, 162Mb)
/bin/age (subcarpeta con el motor de juego AGE que ejecuta la aventura, 2Mb)
/bin/game (directorio con la aventura en si, 22Mb, ya que esta trae gráficos y música. Podría ser un .agz o un world.xml, que son los archivos de juego de AGE)

La cosa como veis no tiene demasiada sustancia: Es un bat, que llama a la máquina de java en su subdirectorio, para que ejecute AGE con el juego en cuestión.
Son efectivamente 160Mb de más (aunque si tuviéramos que instalarnos JAVA igualmente sería necesario bajarlos). Puede ser discutible el beneficio de hacer todo esto, pero ahí queda, una versión de “Una de dragones” que no necesita bajar nada más para poder jugarse.

Para rizar el rizo, podría empaquetarse todo esto en un .exe en lugar de un .rar con alguna utilidad de las que hay por ahí, de manera que el usuario no necesitaría ni siquiera la acción de descomprimir, bastándole únicamente con descargarse el juego y hacer hacer doble click en el el archivo .exe.

Si todo esto no os ha parecido interesante, bajo ningún concepto miréis este enlace de la herramienta javapoly.js.

Seguiremos informando.


Arriba
 Perfil  
 
NotaPublicado: 23 Abr 2018 21:07 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5294
Ubicación: Coruña
¡Genial! Me parecen muy útiles estas aportaciones.

Efectivamente, la paulatina "caída en desgracia" de Java es un problema para AGE, y todo lo que facilite el acceso a las aventuras para la gente que por cualquier motivo no pueda, quiera o sepa instalar Java, es muy bienvenido.

Si un día tuvieses un rato, estaría bien que pusieras unas instrucciones sobre cómo crear un paquete ejecutable como el que has hecho en la wiki de documentación de AGE (http://www.caad.es/aetheria/doc/). Creo que el tema tiene el suficiente interés como para que esté disponible en la documentación que consulta la gente que quiere crear aventuras en AGE (este hilo a lo mejor no lo encuentran o saben que esté aquí, sobre todo cuando pase el tiempo).

Si te animas a hacerlo, te he creado ya la entrada en el índice (se titula "Distribución como fichero ejecutable (sin necesidad de Java)") para que la edites. (siento no mirármelo y hacerlo yo mismo, pero ahora mismo estoy en unos meses de muchísimo trabajo en la vida real... si dentro de unos meses aún no está hecho, tal vez me ponga a ello).

Otro paso interesante que se podría intentar sería automatizar el proceso de crear el paquete ejecutable, mediante una opción "Exportar" en PUCK (como la que ahora mismo existe para los applets). Esto lo podría crear yo cuando tenga tiempo, partiendo de la documentación. Aunque para ello habría que mirar si las licencias de JPortable lo permiten, para no hacer nada ilegal.

Una pena que no sea compatible (por lo que veo) con Linux y Mac, aunque por supuesto esos usuarios siempre pueden seguir jugando mediante su instalación de Java. Todo lo que sea añadir opciones sin quitar lo que ya hay, es bueno.

Lo de javapoly.js suena de lujo. Quien haga funcionar AGE en eso, será mi héroe.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 23 Abr 2018 23:51 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1655
Ubicación: Argentina
¡Gran hallazgo, As!

Lo acabo de probar en una máquina del trabajo sin Java y sí, ejecutar se ejecuta.
Ahora bien, con lectores de pantalla no es accesible, porque hay que habilitar JavaAccessBridge y esto, incluso con Java instalado, por defecto viene desactivado, pues implica una vía de comunicación (por mucho que su fin sea altruista) entre la máquina virtual y herramientas que en el sistema se ejecutan de forma nativa, lo que en teoría se podría aprovechar para lanzar algún ataque. En las carpetas que distribuiste encontré entre otras cosas la utilidad de línea de comandos para activar y desactivar JavaAccessBridge (jabswitch) pero, aunque dice haberlo activado al ejecutar jabswitch /enable desde la carpeta Bin, en realidad no parece activarse.

¿Saben tú o Al-K, desde un punto de vista de desarrolladores, dónde se asienta que está activado JavaAccessBridge y cómo se comunica este componente con los lectores de pantalla o la herramienta de accesibilidad que sea? De saberse algo de eso lo veo difícil con JAWS dado su carácter propietario, pero quizá se podría hacer algún invento con la librería para comunicación externa desde aplicaciones que tiene el lector de pantalla NVDA, este último sí de código abierto, licencia GPL y encima con capacidad para complementos que, en vez de en un lenguaje propio como en el caso de JAWS, se programan en Python.

Yo personalmente tengo Java instalado en mis máquinas y el JavaAccessBridge activado, pero no estaría mal que encontrárámos alguna manera para activar esto también en este tipo de portables.


Arriba
 Perfil  
 
NotaPublicado: 24 Abr 2018 11:46 
Desconectado
Yiepp
Yiepp
Avatar de Usuario

Registrado: 27 Feb 2018 13:49
Mensajes: 76
¡Gracias a vosotros por vuestro interés, Al-Khwarizmi y Fernando Gregoire!

En cuanto tenga un poco más de tiempo intentaré rellenar ese artículo de la Wiki que comentas, Al-Khwarizmi. Eso sí, me gustaría antes terminar de perfilar algunas cosas a ver si conseguimos dejarlo fino, como por ejemplo:

  • Echarle un ojo a esto que comenta Fernando Gregoire de la librería de accesibilidad (no sé si mi habilidad llegará a tanto, pero por intentarlo que no quede)
  • Hacer pruebas más exhaustivas con varios juegos AGE que utilicen alguna cosa que pueda resultar conflictiva.
  • Probar a embeber todo en un .EXE y ver si se pueden grabar partidas normalmente.
  • Indagar más sobre el tema de las licencias

Mientras tanto he seguido mirando un poco el tema de jPortable. Parece ser una copia con ligeras modificaciones (al parecer, prescindibles) del directorio del JRE privado que se instala en tu equipo al instalar JAVA.

Este directorio suele estar dentro de “Archivos de programa/jre”. Revisando la instalación en mi equipo en concreto, este directorio se llama:

C:\Program Files (x86)\Java\jre1.8.0_144

En mi equipo he hecho una prueba. Dentro de la distribución de Una de Dragones que proponía, he sustituido el directorio “jre” de jPortable por el directorio “jre1.8.0_144” de mi instalación de JAVA renombrándolo a “jre” (por comodidad).

Observo entre ojiplático y regocijado que todo parece funcionar también correctamente, por lo que os diría que se podría prescindir del paso de jPortable y poner ese directorio de la instalación de JAVA, que siempre parece algo más seguro y fácil que depender de un intermediario, y además abriría el camino a probar este mismo enfoque en Linux y Mac, que todo apunta a que también funcionaría.

Buscando información sobre todo esto he llegado a este enlace:

Enlace al JRE 8 Readme

Citar:
When redistributing the JRE on Microsoft Windows as a private application runtime (not accessible by other applications) with a custom launcher, the following files are also optional. These are libraries and executables that are used for Java support in Internet Explorer and Mozilla family browsers; these files are not needed in a private JRE redistribution. (…)


Lo que, a falta de confirmación concreta del archivo de licencia pendiente de leer y entender, parece indicar que se puede hacer una distribución de estos ficheros con un “custom launcher” que sería nuestro caso (si bien no permite hacerlo con las versiones beta o pre-release de este JRE, pero eso no es un problema, porque lo normal sería usar la última versión estable que haya publicada). Además de este link sacamos también que parece que existen algunos archivos que podrían eliminarse para aligerar aunque fuera un poco el tamaño de la distribución.

De la página de la propia ORACLE podéis descargar como archivos comprimidos:

JRE(SE) 10.0.1 para Windows x64

JRE(SE) 8u172 para Windows x32

Podéis descargar el JRE para Linux y Mac de la página de descargas de la versión 8 y de la versión 10.

Imagino que sería recomendable usar la distribución de 32 bits para que le funcione a todo el mundo, pero para la versión 10 no soy capaz de encontrarla (imagino que será que ya sólo hayan sacado la versión de x64).

Para ir acabando con este tocho de mensaje, estaría bien saber Fernando Gregoire qué versión de JAVA tienes instalada y funcionando con el JavaAccessBridge (si es sólo una versión JRE o todo el JDK, si es la versión SE de java o por ejemplo la EE, etc.). Todo lo que puedas aclarar sobre esto vendría bien, porque yo estoy un poco pez.


Arriba
 Perfil  
 
NotaPublicado: 24 Abr 2018 18:39 
Desconectado
Yiepp
Yiepp
Avatar de Usuario

Registrado: 27 Feb 2018 13:49
Mensajes: 76
Añado información: Respecto a la accesibilidad

He encontrado este enlace en inglés de Enabling and Testing Java Access Bridge.

En él se habla de que para activarlo bastaría con llamar por línea de comandos a:

    /jre/bin/jabswitch -enable

Al parecer también puede activarse desde el Panel de control de Windows, pero para nuestro caso sería por línea de comandos. Comentan ahí que para probarlo se puede hacer con alguna de los siguientes productos que soportan Java Access Bridge:

    • JAWS
    • NonVisual Desktop Access (NVDA)
    • SuperNova
    • Window-Eyes

Pudiera ser que en la distribución del directorio JRE que incluyo en el enlace del juego, que es la del jPortable, esto estuviera limitado de alguna manera. En todo caso, veo que al descargar el directorio JRE de la versión 10 directamente desde ORACLE (JRE(SE) 10.0.1 para Windows x64), se incluyen un par de archivos .exe más relacionados con la accesibilidad, que tienen la pinta de ser paneles de control para gestionar qué elementos de accesibilidad se activan y cuales no:

    jaccessinspector.exe
    jacceswalker.exe

He preparado para descargar este archivo JuegoAccesible.bat adicional (comprimido como JuegoAccesible.rar para poder descargarlo sin alertas de seguridad raras) para probar la llamada que habilita la accesibilidad con jabswitch, y sería un archivo que debería ir copiado en el raíz de la instalación, junto al Juego.bat que ya existe allí, de manera que el jugador decida qué versión arranca. Fernando Gregoire, si lo pruebas ya me dirás qué tal.

Cuando tenga un hueco probaré a instalarme yo alguna de esas herramientas de accesibilidad para probar por mí mismo, a ver si soy capaz de ponerlo a funcionar.

Por cierto, no sé si sabes que existe una opción en el menú desplegable de AGE que se llama “Modo accesible para lectores de pantalla”, por si el problema pudiera venir por ese lado.


Arriba
 Perfil  
 
NotaPublicado: 24 Abr 2018 23:54 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1655
Ubicación: Argentina
Hola, As.

En casa tengo instalada la última actualización de Java. Java AccessBridge ya viene incluido de serie (aunque desactivado por defecto) desde Java 7 Update 15.
Para versiones anteriores había en 32 bits un instalador muy cutre que agregaba este componente. En 64 bits, al no funcionar este instalador dada su antigüedad y que nunca llegó a actualizarse, había que hacer un arduo procedimiento manual de copiar archivos en distintas carpetas, tanto de Java como del sistema.
Cuando esté en casa probaré, aparte del comprimido nuevo que enlazas en un escenario sin Java instalado, veré a ver si en la página de Oracle sigue estando disponible ese instructivo tan extenso de antes que el AccessBridge se incluyera en la instalación principal de Java. Ahora que pienso en esto, dado que aparte de en la carpeta de Java había que copiar cosas en System32, lo veo difícil sin dejar rastros en el sistema, salvo que no impacte mucho en el uso de CPU agregar al .bat un comando wait para esperar a que finalice el proceso de Java a fin de lanzar comandos de eliminación de lo que se haya que agregar a System32. En cualquier caso, como estoy por irme del trabajo, veré todo esto en casa.

Respecto del modo lector de pantalla en AGE éste mejora la accesibilidad partiendo de la base de que el lector de pantalla pueda estarse comunicando con la MV de Java. Lo que hace es que el cursor no se mueva en el área de salida al pulsar ENTER después de cada comando, de modo que un ciego tras tabular a esta área no tenga que subir hasta la línea donde comienza el resultado del último comando para empezar a leerlo; la función es muy útil, teniendo en cuenta que al no ser AGE un programa nativo para Windows no se lo puede enganchar a una voz SAPI 5 o arquitecturas de GNU/Linux como SpeechDispatcher, infraestructuras ambas muy atadas a cada plataforma.

Por último, leí la licencia a que enlazas, de la que para lo que nos ocupa importan los términos suplementarios y, en ésts, las secciones C y H. Básicamente se puede redistribuir los binarios, pero completos y sin modificarlos más que para agregar funcionalidad, aparte de tener la obligación de agregar una notificación —que te dan exacta ellos— sobre que el uso de características comerciales o los binarios en entornos comerciales requieren una licencia distinta. Con esta notificación no habría problema, pues bastaría con poner en el .bat comandos echo que muestren ese texto y luego, para asegurarnos de que no pase rápido sin que el jugador lo haya visto aunque sea una vez, un comando pause de modo que antes de seguir procesando los demás comandos el sistema muestre Presione una tecla para continuar.

¡Un saludo y luego volveré con noticas de las pruebas!


Arriba
 Perfil  
 
NotaPublicado: 25 Abr 2018 05:34 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1655
Ubicación: Argentina
¡Hola, As!

Finalmente estuve haciendo pruebas tranquilo en casa.
La accesibilidad sin Java instalado, pese a que corregí un pequeño problema que había en tu .bat (nada importante, simplemente estaba escrito como si el archivo jabswitch.exe estuviera en la primera subcarpeta bin), no funciona, aun cuando esta utilidad por línea de comandos dice (le saqué el @echo off y le agregué un comando pause después de llamar a Jabswitch, para poder leer bien sin que se cerrara la ventana del símbolo del sistema o se abriera AGE) que Java AccessBridge se habilitó correctamente.

Aunque insisto que hace bastante la instalación estándar de Java ya incluye todo esto, he encontrado las instrucciones detalladas de Oracle para la instalación manual que había que seguir cuando AccessBridge no se incluía de serie. Para Windows de 32 bits había un instalador que lo hacía todo, pero para 64 ese instalador no funcionaba y es por eso que estaba, aparte de las instrucciones, disponible un .zip con los archivos que había que copiar. Por lo que veo en esta documentación, el problema en ejecutar AGE de este modo con accesibilidad radica en que, entre otros archivos en la carpeta de librerías del JRE, hay que copiar varias DLL en System32 y, en caso de Windows de 64 bits, también en SysWOW64, a saber, el equivalente de System32 adonde Windows redirecciona para buscar cosas a las aplicaciones de 32 bits.
La idea que se me ocurrió a la tarde de copiar en System32/SysWOW64 los archivos que hagan falta y borrarlos al cerrar parecía buena, pero después de escribírtela —pensando en Windows XP— me di cuenta de que tiene una contra: sería necesario ejecutar el .bat como administrador para poder copiar ahí. En Windows XP no hay tanto problema con eso, porque si el usuario inició sesión como administrador ya todo se ejecuta así. Pero Windows Vista y todos los superiores ya son otro cantar, porque si está activado el control de cuentas de usuario (UAC) hay que ejecutar expresamente como administrador para que no se deniegue el acceso a una carpeta tan «sensible» como las que comentamos.
Pero ahí te dejo la documentación detallada, por si te sirve para hacerte una idea de en qué consiste, máxime porque aborda la adición tanto al JRE como al JDK.

En cuanto a las herramientas de accesibilidad que comentas, todas lectores de pantalla y en el caso de Supernova además magnificador, yo te recomendaría que para hacer pruebas te instales el NVDA que, aparte de ser de código abierto y con licencia GPL que lo hace por completo libre, no invade para nada el sistema en tanto no modifica como los otros la cadena de controladores de video, permite ejecutarse de forma portable o incluso continuar la ejecución temporal desde el propio .exe del instalador, tiene buenas capacidades y niveles de logging para desarrolladores y, si que hable todo el día te vuelve estúpido (cosa muy fácil con la voz libre que incluye por defecto), trae una herramienta llamada Visualizador de Voz que, justamente, muestra en una ventana flotante una transcripción exacta de todo lo que va diciendo la voz, aun cuando elijas trabajar sin voz. Con todo creo que no hay duda de que, por más que muchos estemos acostumbrados al comercial y veterano JAWS, para pruebas de desarrollo no hay mejor alternativa que NVDA.

En cuanto a qué versión tengo, estoy usando Java 8 Update 171 (versiones de 32 y 64 bits) en Windows 10 Pro versión 1803, y activando Java AccessBridge con Jabswitch cuando Java está instalado funciona bien tanto con JAWS (2018.1804) como con NVDA (2018.1).

Por último, no quería dejar pasar la imposibilidad impuesta por licencia, por más que a la tarde algo insinué, de eliminar archivos para aligerar la distribución. Y es que una de las condiciones para la distribución es que ésta sea completa y sin modificaciones más que para agregar funciones, lo que implica que eliminar cosas —por innecesarias que sean para el caso— sin infringir la licencia no podemos. Sobre la notificación que tendríamos que poner estoy viendo y por suerte sí creo haberlo explicado con claridad hoy a la tarde.

¡Un saludo y perdón por lo largo del mensaje!


Arriba
 Perfil  
 
NotaPublicado: 25 Abr 2018 19:02 
Desconectado
Enano Maluva
Enano Maluva
Avatar de Usuario

Registrado: 21 Jun 2017 13:16
Mensajes: 37
Ubicación: Madrid
Acabo de ver el hilo y me resulta muy interesante lo que aquí se ha propuesto.
Sois unos genios de la programación.


Arriba
 Perfil  
 
NotaPublicado: 26 Abr 2018 16:14 
Desconectado
Yiepp
Yiepp
Avatar de Usuario

Registrado: 27 Feb 2018 13:49
Mensajes: 76
Gracias por la parte que me toque, coque_mad, aunque lo mío en este hilo sólo es una pequeña aportación a nivel usuario. Eso si, con lo que me gusta a mi recoger galardones ya estoy preparando un discursito :D

Fernando Gregoire, a ver si este fin de semana me da tiempo y me instalo el NVDA para hacer pruebas. He estado mirando los precios del JAWS y casi me luxo la muñeca de lo rápido que he hecho click para salir de la página. ¡Madre mía! :/

Un poco en la línea de la "ciencia ficción" (por temas del tiempo que llevaría probarlo, e implicaciones del cambio de lenguaje por ejemplo en las aventuras AGE que usen código Beanshell), aprovecho a dejar por aquí este enlace a la herramienta JSweet, que parece que convierte Java a Javascript. Simplemente es un hilo del que poder tirar por si alguien en algún momento se siente animado a cambiar AGE de lenguage. Por cierto, ¿Acabo de hacer una rima o lo ponuncias "eich" a lo inglés, en lugar de "aje" como hago yo?

Imagen


Arriba
 Perfil  
 
NotaPublicado: 26 Abr 2018 23:44 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1655
Ubicación: Argentina
Sí, el precio de JAWS siempre fue altísimo y, como si fuera poco, te cobran aparte la licencia para poder usarlo en acceso remoto y, aunque ahora dejaron de hacerlo, antes te cobraban más las licencias que permitían ejecutarlo en ediciones de Windows Professional/Ultimate/Enterprise etc. Hoy por hoy, a diferencia de lo que ocurría hace diez años, NVDA no tiene tanto que envidiarle a JAWS y perfectamente con NVDA hoy uno puede usar la PC sin necesidad de recurrir a otro lector sí o sí.

Si llegas a instalártelo —o armar un portable, pues la compatibilidad con Java no es de aquellas cosas que por cuestiones de permisos o requerir usar el registro de Windows se ven limitadas cuando la copia de NVDA es portable—, aquí te doy unos lineamientos básicos para que no te vuelvas loco:
  • Muchos de los comandos de teclado propios del lector tienen como tecla modificadora lo que llaman tecla NVDA, que según la configuración serán INSERT y/o BLOQ MAYÚS; algo aparece de eso en el «Diálogo de bienvenida», pero se puede configurar más a fondo en las «Opciones de teclado» que encontrarás en el menú Preferencias.
  • A diferencia de las versiones antiguas, el lector no aparece en la barra de tareas. Es por ello que para acceder al menú hay que pulsar NVDA+N o hacer clic con el botón derecho en el icono de la bandeja del sistema (a la derecha del reloj, junto al antivirus, el volumen, la red etc.).
  • Creo que por defecto lee cada cosa sobre la que colocas el mouse. Para desactivar esto puedes pulsar NVDA+M, o bien, en el diálogo «Opciones del ratón» al que se accede desde el submenú Preferencias, desactivar la casilla Habilitar seguimiento del ratón.
  • El Visualizador de Voz, una ventana flotante que muestra una transcripción de lo que dice exactamente la voz, se puede activar desde el menú Herramientas; por defecto, si bien es posible asignarle una, no tiene tecla rápida. En esta ventana puedes, si necesitas, seleccionar y copiar parte de la salida.
  • Independientemente del Visualizador de Voz, si quisieras desactivar la voz o usar una voz SAPI más agradable (p. ej. alguna de Loquendo o las que incluye Windows), puedes pulsar CTRL+NVDA+S para ir al diálogo «Sintetizador» y elegir allí lo que quieras. Si sólo quieres desactivar la voz temporalmente, puedes hacerlo con NVDA+S que conmuta el modo de voz entre Hablar, Pitidos y Desactivado. Lo bueno de NVDA en este sentido es que si quieres puedes desactivar la voz pero seguir usando el Visualizador de Voz, de modo que seguirías leyendo en pantalla qué diría exactamente la voz si estuviera activada.
  • El nivel de logging lo puedes cambiar en el diálogo «Opciones generales», al que se puede acceder desde el submenú Preferencias o pulsando CTRL+NVDA+G.
  • Para ver el log, ve al menú de NVDA, al submenú Herramientas y por último a la opción Ver registro. Además de seleccionar y copiar como en el Visualizador de Voz, en la ventana de log puedes, si te interesa, guardar con CTRL+S (ya me gustaría que tradujeran el atajo como en Word, pero bueno).
  • Para cerrar NVDA puedes elegir la opción Salir en el menú, o bien pulsar NVDA+Q.
Si quisieras ver el código fuente o documentación orientada a desarrolladores, hay un repositorio oficial en Github. Hay asimismo un sitio conducido por la comunidad de habla hispana (incluido un repositorio en Github), pero lo cierto es que no estoy muy al tanto de cuánta documentación orientada a desarrolladores se llegó a traducir.

Respecto de AGE supongo que sabes usarlo, de modo que no se me ocurre qué aconsejarte más que el hecho de que con TAB se pas entre el área de la salida y la de texto. Por alguna razón que no acierto a comprender, no es posible activar la barra de menú con ALT o F10, de modo que para acceder a los menús con el teclado es preciso apretar ALT+letra subrayada o usar técnicas de navegación por la jerarquía de objetos o simulación del puntero del mouse, tal como de lo primero NVDA ofrece una gran alternativa.

¡Un saludo y gracias por el trabajo que estás tomándote!


Arriba
 Perfil  
 
NotaPublicado: 27 Abr 2018 13:30 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5294
Ubicación: Coruña
Fernando Gregoire escribió:
Respecto de AGE (...) Por alguna razón que no acierto a comprender, no es posible activar la barra de menú con ALT o F10

Imagino que la razón será que esos atajos de teclado no vienen por defecto en las ventanas Swing de Java, habrá que programarlos explícitamente, y no lo hice (porque no era consciente de que eran útiles para la accesibilidad). Salvo problema técnico imprevisto, creo que no me debería costar mucho hacerlo. Me lo apunto para echarle un ojo este fin de semana y ver si lo puedo implementar.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 27 Abr 2018 20:53 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1655
Ubicación: Argentina
Al-Khwarizmi escribió:
Fernando Gregoire escribió:
Respecto de AGE (...) Por alguna razón que no acierto a comprender, no es posible activar la barra de menú con ALT o F10

Imagino que la razón será que esos atajos de teclado no vienen por defecto en las ventanas Swing de Java, habrá que programarlos explícitamente, y no lo hice (porque no era consciente de que eran útiles para la accesibilidad). Salvo problema técnico imprevisto, creo que no me debería costar mucho hacerlo. Me lo apunto para echarle un ojo este fin de semana y ver si lo puedo implementar.


¡Muchas gracias, Al-K! Si necesitas ayuda o testing, simplemente avísame.


Arriba
 Perfil  
 
NotaPublicado: 28 Abr 2018 09:30 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5294
Ubicación: Coruña
[AZ] escribió:
Un poco en la línea de la "ciencia ficción" (por temas del tiempo que llevaría probarlo, e implicaciones del cambio de lenguaje por ejemplo en las aventuras AGE que usen código Beanshell), aprovecho a dejar por aquí este enlace a la herramienta JSweet, que parece que convierte Java a Javascript. Simplemente es un hilo del que poder tirar por si alguien en algún momento se siente animado a cambiar AGE de lenguage. Por cierto, ¿Acabo de hacer una rima o lo ponuncias "eich" a lo inglés, en lugar de "aje" como hago yo?

Técnicamente el tema de BeanShell no debería dar en principio ningún problema, ni requerir cambiar nada en las aventuras y el lenguaje que usan. El código para interpretar BeanShell es código Java y viene incluido con AGE. Así que si ese software es capaz de traducir de Java a JavaScript, tendría que traducir también el intérprete BeanShell, y el resultado sería una versión de AGE en JavaScript que podría ejecutar código BeanShell igual que lo ejecuta la versión actual.

El problema creo que más bien puede venir por la parte de las ventanas (Swing). Para crear y manipular ventanas, uno llama a una API que está en Java pero por debajo la implementación no lo está, o no completamente (tiene que interactuar con el sistema de ventanas que uno tenga instalado). Así que haría falta una implementación de esa misma API en JavaScript. Hace bastantes años había mirado algún software de conversión de este tipo y no tenían esa API, o no completa, aunque tal vez desde entonces haya avanzado el tema y haya herramientas que puedan gestionar eso, ni idea.

Por supuesto, aunque no las haya, tampoco es nada que no se pueda solucionar a base de trabajo humano: convertir a JavaScript todo lo convertible (que probablemente debería incluir todo el "núcleo" lógico que lee y ejecuta las aventuras), y reescribir a mano en JavaScript lo no convertible (o sea, seguramente, las clases que gestionan las ventanas, y no sé si tal vez alguna relacionada con audio e imágenes y con sockets). A ojo de buen cubero podría suponer traducir a mano, no sé, tal vez el 15%-20% del proyecto, ya que lo restante sería el núcleo que nunca llama directamente a ventanas, sockets, etc. porque el código está bastante bien encapsulado y se trabaja con abstracciones. Por desgracia yo no lo voy a hacer, ni siquiera sé JavaScript (y ya no digamos librerías gráficas, etc. en JavaScript) y no tengo pensado aprenderlo ni tengo el tiempo para hacerlo; pero lo dejo dicho por si en algún momento del futuro alguien quisiese animarse.

Por cierto, yo pronuncio normalmente "eich" (ya que son siglas de palabras en inglés), pero me parece bien que cada cual lo pronuncie como quiera.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 28 Abr 2018 13:52 
Desconectado
Yiepp
Yiepp
Avatar de Usuario

Registrado: 27 Feb 2018 13:49
Mensajes: 76
Al-Khwarizmi escribió:
Técnicamente el tema de BeanShell no debería dar en principio ningún problema, ni requerir cambiar nada en las aventuras y el lenguaje que usan. El código para interpretar BeanShell es código Java y viene incluido con AGE. Así que si ese software es capaz de traducir de Java a JavaScript, tendría que traducir también el intérprete BeanShell, y el resultado sería una versión de AGE en JavaScript que podría ejecutar código BeanShell igual que lo ejecuta la versión actual.


...mmmmm... pues si que tiene sentido, si... :D

Respecto a lo de programar en Javascript:

Te diría que sabiendo Java, programar en Javascript no debería ser un problema, no por que se parezcan demasiado, sino porque enseguida se consiguen resultados y puedes hacer una programación "de andar por casa" sin demasiado problema a la que te hagas con un par de conceptos algo bizarrros (como que los objetos los haces con funciones X.X). Habiendo programado AGE, vas sobradísimo, ya te lo digo yo :D

Si quieres ya programar Javascript vestido con zapato bueno y dejar a un lado las zapatillas de andar por casa (cosa que seguro que es mejor pero que te llevaría más tiempo), la tendencia actual pasaría seguramente por utilizar algún framework del tipo Angular 2, programando en Typescript. Typescript viene a ser una especie de Javascript avanzado que te da muchas facilidades de programación, y que por si mismo "no funciona" (what! :D) pero que transpila a Javascript, es decir, que con las herramientas adecuadas genera código javascript válido que sería lo que se despliega, manteniéndose el código fuente en Typescript.

Pero vamos, ya imagino que lo peor de todo es el tiempo, y el bajón que da tener que reescribirlo todo :(

En todo caso recomiendo aprender Javascript a cualquiera que tenga tiempo. Yo hace muchos años lo odié, pero ya me he reconciliado con él ^.^ Es una herramienta importantísima, especialmente hoy que todo pasa por Internet. Con javascript puedes programar desde la parte cliente (en la página web, por ejemplo) a la parte servidor uilizando el server Node JS, que permite sockets de forma ultra sencilla y muy escalable (se habla de que soporta 10.000 conexiones sin mucho dolor Ö.Ö). En otros campos, como el desarrollo de videojuegos con el motor Unity, la programación se hace o bien con C# o bien con javascript.

Pero el mundo de la informática es así: Hoy soplan vientos de Javascript. Mañana Dios dirá.

En otro orden de cosas, Fernando Gregoire, me he montado ya el NVDA portable. Hay una señora muy maja que me dice cosas. Me llevará un tiempo hacerme con él, me parece, pero está muy interesante. El tema de la accesibilidad para jugar aventuras y como montar y usar las herramientas merecería su propio tema ultra-resaltado en el foro :)

Pues nada, yo sigo a lo mío y ya os voy comentando ;)


Arriba
 Perfil  
 
NotaPublicado: 28 Abr 2018 17:20 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5294
Ubicación: Coruña
[AZ] escribió:
Pero vamos, ya imagino que lo peor de todo es el tiempo, y el bajón que da tener que reescribirlo todo :(

Sí, la cosa es que tengo muy poco tiempo, y si dedico tiempo a aprender un lenguaje, tiene que ser o porque me guste, o porque me va a ser útil en el trabajo. Y me temo que Javascript no cumple ninguna de las dos cosas (aunque efectivamente se utiliza muchísimo hoy por hoy, en mi trabajo específicamente no se usa. El desarrollo web es un área de la que huyo activamente).

Seguiré dando mantenimiento a AGE dentro del tiempo que tengo, y añadiéndole características interesantes que la gente me pida. Tengo pendientes algunas otras cosas que espero hacer en algún momento, como por ejemplo soporte de hiperenlaces, crear o traducir alguna aventura decente en inglés decente para dar a conocer AGE en esa comunidad, etc. Pero ya decidí hace tiempo que lo que no voy a hacer es portarlo, ni a Javascript ni a Android. Sí que me ofrezco a dar toda la ayuda y "consultoría" que pueda a quien lo haga, pero no a hacer el trabajo de portarlo en sí. No es un proyecto que me motive, y creo que es algo que ya se sale del proyecto original de AGE y no me "corresponde" a mí, por así decirlo.

Si el proyecto tiene interés suficiente, supongo que alguien se animará a llevarlo a cabo en algún momento. Si nadie lo hace nunca, supongo que será porque simplemente no hay suficiente demanda o interés para que merezca la pena, y la tierra seguirá girando.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 20 mensajes ]  Ir a página 1, 2  Siguiente

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM