🎉 ¡Tecnología Digerida está de vuelta!

Después de un tiempo en pausa, Tecnología Digerida regresa con la misma misión de siempre: explicar la tecnología sin humo, sin jerga innecesaria y con los pies en la tierra.

Este blog nació en 2007 con una idea clara: que entender lo técnico no debería requerir un máster. Hoy, más que nunca, necesitamos claridad, contexto y criterio en un mundo saturado de hype, buzzwords y confusión innecesaria.

📌 Aquí vas a encontrar:

  • Tecnología explicada con sencillez, sin perder profundidad
  • Opinión honesta, basada en experiencia real
  • Reflexiones para quienes toman decisiones técnicas o simplemente quieren entender
  • Y sobre todo: contenido digerido, sin indigestiones tecnológicas

Gracias por volver, o por descubrir el blog por primera vez. Vamos a hacer que valga la pena.

Mejorando el rendimiento de WSL2 con zswap

Windows Subsystem for Linux 2 (WSL2) ha revolucionado la manera en que los desarrolladores y profesionales de TI interactúan con entornos Linux en Windows, ofreciendo una integración y un rendimiento excepcionales. Sin embargo, las tareas que consumen muchos recursos pueden, en ocasiones, superar los límites de memoria, lo que ralentiza el rendimiento del sistema.

¿Qué es zswap?

zswap es una función del kernel de Linux diseñada para mejorar el rendimiento del intercambio de memoria mediante la compresión de páginas antes de escribirlas en el espacio de intercambio (swap). En esencia, zswap minimiza las operaciones de entrada/salida (I/O) en el disco, lo que se traduce en una mayor capacidad de respuesta del sistema, especialmente en entornos con recursos de memoria limitados.

¿Por qué usar zswap en lugar de zram?

Aunque zram también comprime páginas de memoria, crea un disco RAM comprimido que ocupa directamente espacio en la RAM. En contraste, zswap complementa el archivo de intercambio existente en WSL2, comprimiendo páginas en memoria antes de escribirlas en el disco, reduciendo así las escrituras sin reservar grandes cantidades de RAM. Esto hace que zswap sea particularmente adecuado para WSL2, especialmente porque ya utiliza un archivo de intercambio basado en disco.

Ventajas de usar zswap con WSL2

  1. Reducción del uso de swap: Al comprimir las páginas, zswap reduce drásticamente la cantidad de datos que deben escribirse y leerse del disco, acelerando significativamente las operaciones de intercambio.

  2. Mayor rendimiento: Con menos operaciones en disco, los entornos de WSL2 se vuelven notablemente más rápidos, especialmente durante cargas de trabajo intensas y multitarea.

  3. Mayor vida útil del SSD: Reducir las escrituras en los SSDs ayuda a prolongar su durabilidad, ofreciendo beneficios a largo plazo para los usuarios.

  4. Mejor eficiencia en el uso de recursos: zswap gestiona eficientemente los recursos de memoria, lo que lo hace ideal para ejecutar múltiples aplicaciones simultáneamente sin degradación del rendimiento.

  5. Ideal para entornos virtualizados: WSL2 asigna dinámicamente una porción de la RAM del host, generalmente hasta la mitad de la memoria disponible en Windows. Al comprimir partes no utilizadas de programas y servicios que no están bien adaptados a WSL, zswap optimiza significativamente el uso de la memoria, permitiendo hacer más con menos recursos.

Configuración de zswap en WSL2

La versión actual de WSL2 (2.4.12 en el momento de escribir este artículo) no admite zswap ni módulos del kernel cargables de manera predeterminada. Por lo tanto, es necesario recompilar el kernel con zswap habilitado. Puedes encontrar instrucciones detalladas para la compilación aquí.

Alternativamente, hay un script automatizado que simplifica este proceso y habilita zswap automáticamente en todas tus distribuciones de WSL2:

curl https://raw.githubusercontent.com/dhanar10/wsl2-kernel-zswap/main/build.sh | bash

Después de ejecutar este script, obtendrás un kernel completamente compilado con zswap incluido y activado de forma predeterminada en todas las distribuciones de WSL2 que utilices.

Activación del nuevo kernel en WSL2

Después de recompilar el kernel o ejecutar el script automatizado, necesitarás activarlo.

  1. Usando .wslconfig:

Crea o edita el archivo .wslconfig en tu directorio de usuario de Windows (por ejemplo, C:\Users\TuUsuario\.wslconfig) y añade:

[wsl2]
kernel=C:\ruta\a\tu\kernel\compilado\bzImage

Luego, reinicia WSL2:

wsl --shutdown
  1. Usando la aplicación de configuración de WSL (si está disponible):

Si tu versión de WSL incluye una aplicación de configuración gráfica, puedes especificar la ruta del nuevo kernel directamente en la configuración.

Verificación de que zswap está activado

cat /sys/module/zswap/parameters/enabled

Deberías ver un resultado Y, lo que confirma que está activado.

Configuración recomendada de swappiness: 133

Para mejorar aún más el rendimiento, es beneficioso establecer un valor alto de swappiness. El valor recomendado al usar zswap en WSL2 es 133. Este valor indica al sistema que comprima activamente las páginas de memoria, priorizando la caché del sistema de archivos y optimizando el rendimiento incluso en situaciones de poca memoria.

Para establecer este valor de forma persistente en los reinicios, usa los siguientes comandos:

sudo bash -c 'echo "vm.swappiness=133" >> /etc/sysctl.conf'
sudo sysctl -p

Monitorización del uso de zswap y ahorro de RAM

Para comprobar cuánta memoria está ahorrando zswap, puedes usar el siguiente script:

#!/bin/bash
# Función para calcular el ahorro de RAM
calculate_zswap_savings() {
    local stored_pages=$(cat /sys/kernel/debug/zswap/stored_pages)
    local pool_total_size=$(cat /sys/kernel/debug/zswap/pool_total_size)
    local page_size=$(getconf PAGE_SIZE 2>/dev/null || echo 4096)
    local ram_uncompressed=$((stored_pages * page_size))
    local ram_saved=$((ram_uncompressed - pool_total_size))
    echo "Páginas almacenadas: $stored_pages"
    echo "Tamaño total del pool: $(numfmt --to=iec --suffix=B $pool_total_size)"
    echo "RAM sin comprimir: $(numfmt --to=iec --suffix=B $ram_uncompressed)"
    echo "RAM ahorrada: $(numfmt --to=iec --suffix=B $ram_saved)"
}
echo "Estadísticas de Zswap:"
echo "----------------------"
calculate_zswap_savings

Este script proporciona estadísticas en tiempo real sobre el uso de zswap y cuánta RAM se está ahorrando mediante la compresión.

Conclusión

Aprovechar zswap dentro de WSL2 ofrece beneficios de rendimiento tangibles, especialmente en cargas de trabajo exigentes. Para los usuarios que buscan maximizar su productividad y mantener un rendimiento óptimo en sus flujos de trabajo híbridos entre Windows y Linux, activar zswap es altamente recomendable.


¿Listo para experimentar un mejor rendimiento? ¡Prueba zswap hoy mismo!

Acelera tu laptop Windows con ReadyBoost

Si ya se que en muchos sitios, incluidos comentarios de gente de soporte de Microsoft, te dirán que es una tecnología para computadoras viejas con 512MB de RAM o menos. Que si tienes más de 2GB de RAM no hará ningún efecto.

Bueno en este post me propongo a demostrarte, no sólo que es mentira sino que además sí es útil en cualquier máquina de esta era. Mi intención es convencerte de que al menos lo pruebes y veas si te ayuda o no.

Vamos a tratar los siguientes temas:

  1. Invitarte a probarlo, con una pequeña introducción de como usarlo.
  2. En cuáles escenarios he visto que tiene mayor impacto.
  3. Un poco de explicación técnica para fundamentar los hechos.
  4. Un enlace en inglés donde la gente habla de los beneficios de la tecnología.
  5. Invitarte a probarlo una vez más.
Manos a la obra.

Usando ReadyBoost

Para usar Readyboost únicamente necesitas un Pen Drive o una tarjeta SD con al menos 1GB de espacio libre.
  • Inserta el pendrive o la tarjeta SD.
  • Windows debería presentar una pantalla indicando entre las opciones Aumentar la velocidad del sistema con Windows ReadyBoost.
  • Si no aparece siempre puedes hacer clic derecho sobre la unidad en el explorador de archivos y escoger Propiedades
  • Ahí hay una pestaña llamada ReadyBoost. Marca o "Dedicar este dispositivo a ReadyBoost" o le dices cuánto espacio dedicar. Alrededor de 2GB estaría bien. Cuanto más espacio le dediques más cosas podrá guardar en el caché.
Y eso es todo deja que poco a poco llene el caché. Dentro de unas horas prueba mandarla a Hibernar y despiértala y ve si notas alguna diferencia. 

No te pido que me creas sólo que des el beneficio a la duda y lo pruebes. Seguro tienes por ahí un pendrive o una SD.

Probando el ReadyBoost

Hay escenarios donde se nota la diferencia al usar Readyboost. Algunos ejemplos:

  • Hibernar: Este proceso deja a Windows por un tiempo sin caché en la RAM y en ese tiempo va a usar el disco duro a menos que lo que esté buscando lo haya guardado en el Pen Drive. Se nota clara la diferencia al despertar de la Hibernación y tratar de abrir algunas aplicaciones como Google Chrome.
  • Aplicaciones que se tragan la memoria: Especialmente VirtualBox o cualquier tecnología de virtualización se le nota la diferencia al arranque si se tiene ReadyBoost. Varias personas afirman que los juegos trabajan mejor con ReadyBoost
  • Discos duros lentos: Como los de las laptops y de ahí viene el título del post, las laptops son las máquinas que más se benefician del Readyboost. Además mejora el rendimiento de la batería y la laptop se calienta menos (claro estas dos cosas son mucho más difíciles de medir).
  • Arranque de aplicaciones: Levantar cualquier aplicación como un navegador o aplicación de ofimática.


Explicación técnica

Un disco duro tradicional tiene una lectura secuencial mucho mayor que cualquier pen drive o tarjeta SD. Pero para lecturas aleatorias, es decir leer un pedacito de un archivo o un archivo pequeño, es extremadamente lento en comparación a las memorias. ¿Por qué? Porque para buscar algo específico tiene que mover el cabezal y eso toma tiempo. Si se necesitan leer muchos archivitos esparcidos por el disco, como cuando se abre una aplicación, pues la cosa se pone lenta.

Superfetch

Para minimizar esto Windows monitorea esos archivitos o pedacitos y los pega todos en unos archivos (una copia de ellos) en una carpeta llamada Prefetch. El asunto es más complejo de lo que digo. Pero es para que te hagas una idea. El objetivo es aprovechar que la lectura secuencial es más rápida y leer todo eso a memoria RAM de un sólo golpe. Luego las aplicaciones en lugar de buscar las cosas en disco lo hacen en memoria RAM.

ReadyBoost

Aquí es donde entra ReadyBoost. Si la tecnología está activada el caché de Superfetch se graba también en los dispositivos configurados para ReadyBoost. Es aquí donde la mayoría le pierde la fé a la tecnología por señalarla que sólo sirve si tienes poca memoria RAM. Ya que el Superfetch además de estar en el ReadyBoost está en memoria RAM. Obviamente la memoria RAM es más rápida que la memoria flash.

El problema es que no siempre se tiene el Superfetch en memoria RAM. No sólo eso sino que a veces no todo el Superfetch cabe en RAM así que Windows coloca ahí lo más usado y lo demás lo deja en el ReadyBoost y en el disco duro. Más adelante te mostraré cómo ver el tamaño del caché ReadyBoost y después de unos días de uso, pues no es factible tener todo eso en RAM.

El caso claro donde el Superfetch no está en RAM es cuando se vuelve de una hibernación. Windows únicamente guarda lo estrictamente necesario de la RAM en el archivo hiber.sys. Y eso no incluye el Superfetch. Cuando se vuelve de la hibernación la única manera de acceder al Superfetch es en el disco duro y en el ReadyBoost, el cual si se tiene activo será aprovechado inmediatamente.

Hay otros casos como levantar máquinas virtuales o aplicaciones pesadas como Outlook, navegadores, Office o juegos. Donde es útil tener un caché ReadyBoost bien poblado.

Yo tengo una laptop de 16GB y mi esposa una de 12GB y les digo se nota cuando por X o por Y el ReadyBoost no está activo.

Referencias

Aquí hay una discusión interesante. Son usuarios que se quejan porque cuando Windows cree que no hay ganancia por ReadyBoost lo deshabilita. Ellos dicen que debería darle la opción al usuario si quiere usarlo o no. En la mitad del foro aparecen quienes dicen que si tienes más de 2GB (incluida alguien de Microsoft) no te aporta ningún beneficio. Y aparecen los que sí le han encontrado utilidad y describen como.


Cito algunos:

"To all the people who continue to ask: "why do u need ready boost,YOU DON'T NEED IT ; if u have SSD or 4GB RAM you dont need ReadyBoot"
 WAKE UP PEOPLE!! Programs like 3Ds Max use ReadyBoost as actual RAM, ie if you render a large 3D model with 4GB RAM the program will definitely crash, but if you have another 8GB ReadyBoost it will run smoothly. The SSD does not solve the problem, Paging also doesnt solve it, and to all the people who are saying well why dont you just buy some extra RAMs, the new ultrabooks come with a fixed ammount of RAMs on the motherboard, YOU CANNOT ADD RAMs, and they come with SSDs... So technically its a dead end to people who want to use their i7 ultra books for something productive and not just Facebook...

Thank you" HazemJouzou

"I have W530 lenovo work laptop with an i7, 12GB RAM and a spinner HD.  I paid $10 to get a 24GB msata ssd just to use readyboost and it works well for speeding up the HDD access times. I dedicate 10GB of the msata drive to readyboost.  Savhp

"oh, and just my 2 cents for those people who say ready boost isn't needed.
I have 8Gb of memory. but get poor performance when I run some games. but when I use ready boost, I see an actual improvement in the games ability to run. one example would be BF4. when I am using ready boost (2x 32Gb drives) I don't get hiccups and frame rate issues when spawning.

another thing to consider is this, Memory is memory. regardless if it is called virtual memory, RAM, or Readyboost. having more memory, no matter how new your system is, can never, ever, be a bad thing." Cybot

"For those still arguing that ReadyBoost doesn't do much they should try a bit of testing first.  With the systems I work on (Win 7, Win 8, 2-8GB memory, etc.) I see at least a 50% and regularly 200% increase in random read speed (using for example Defragglers Benchmark).  This just makes the system more responsive and quicker to do system maintenance (updates, defragging, backups, installs/uninstalls, etc.).  It is not huge, but it is noticeable when working on a typical system. EcurbNosneb

Invitación a la prueba

¿Ya te convencí? Bueno puede que no, pero al menos no dirás que no vale la pena probarlo.

Adelante... sólo inserta un pendrive o una tarjeta SD y deja que la tecnología haga lo suyo.

Hasta la próxima...

Nota: Si esta información te es de utilidad o piensas que se puede mejorar, por favor deja un comentario con tus observaciones.

Tutorial rsync por ssh sin configurar servicio: Transfiere únicamente lo que cambió

Rsync es una herramienta muy potente para sincronización rápida de directorios y que se puede usar a través de ssh sin requerir ninguna configuración especial en el servidor. Aquí hablaremos de:

  • Tutorial para comenzar a usar rsync inmediatamente. Ejemplos.
  • Utilizar rsync a través de ssh.
  • Enviar únicamente los cambios realizados, para backup por ejemplo.
  • Comprimir la transmisión.
  • Transferir únicamente cambios en archivos grandes.

Rsync es una de las herramientas más útiles que he utilizado en los últimos tiempos y ahora lo uso a diario. Anteriormente siempre lo vi como un misterio que había que montar un servicio rsync para poder sincronizar dos máquinas remotamente. Bueno, recientemente descubrí que se puede transferir usando únicamente ssh.

Supongamos que queremos transferir el contenido de un directorio con sus subdirectorios desde una máquina local a una remota por ssh:
rsync -avz -e ssh /home/usuario/directoriofuente/ usuario@ipremota:/home/usuario/directoriodestino/ 
Ahora estudiemos la instrucción:

  1. La opción a nos dice que va a preservar los permisos y usuarios siempre que pueda.
  2. La opción v nos muestra que está haciendo.
  3. La opción z le dice a rsync que comprima mientras transfiere los archivos. Muy útil si el destino está en Internet.
  4. El comando -e ssh le dice que use ssh para transferir archivos, esto nos evita un servicio rsync y además transmite seguro.
  5. Es importante notar los / al final de los directorios, es necesario colocarlos para asegurarse que copie todo y no confunda las cosas con archivos.
Otras opciones interesantes:
  • --progress: Muestra el progreso mientras se copian archivos grandes.
  • --delete: Borra en el destino los archivos que no encuentre en la fuente. Muy muy útil para mantener directorios perfectamente sincronizados.

Transfiere únicamente lo que cambió


El gran poder del rsync es cuando se quiere transferir por segunda vez. Él únicamente transfiere lo que cambió y más aún si lo que cambió es un archivo muy grande de varios megas hasta gigas él únicamente transfiere las partes del archivo que cambiaron.
Ahora la gran utilidad de esto es poder mantener sincronizadas dos máquinas, para cambios en sitios web por ejemplo, o inclusive programas java ya que se puede extraer el jar en ambas máquinas, transferir y luego volverlos a comprimir. Únicamente se transferirán los cambios.

Al aprender a usar rsync en el día a día nos acelera bastante el hecho de mantener sincronizados los directorios con nuestros discos externos, backups, dropbox, etc

Hasta la próxima...

kde4 uso eficiente del plasma (uso no evidente)

Hola,

Hasta hace muy poco utilicé openSUSE con KDE 3 y una de las cosas que extrañé cuando definitivamente me moví a KDE 4 en openSUSE 11.2, es que en KDE 3 uno puede invocar el menú inicio (K menú) poniendo el cursor en la esquina inferior izquierda de la pantalla sin hacer clic. Una tontería, pero buscando una característica similar en KDE 4 me encontré con una muchísimo más poderosa.. el tablero de mandos del plasma.

Y es que combinando 3 cosas:

  1. El tablero de mandos del plasma.
  2. Los elementos gráficos.
  3. Los bordes de escritorio y los efectos de KWin.
Se puede tener una especie de mesa de trabajo (escritorio) con el menú K desplegado, una calculadora, un calendario, el selector de color, etc. Que está a sólo mover el ratón a una de las esquinas de la pantalla. Aquí unas imágenes de lo que estoy tratando de explicar:




Pasos a seguir:

  1. Asignar el tablero de mandos a una de las esquinas del escritorio (prefiero esquina inferior izquierda):



  2. Separar el tablero de mandos del escritorio. Ésto lo hago porque en el escritorio me gusta tener un fondo algo que haga juego con las ventanas y no herramientas de trabajo que haga que se parezca a mi escritorio real (un desastre).



  3. Invocar el tablero de mandos y agregar los elementos gráficos que más usemos. Yo en lo particular recomiendo el menú K (Lanzador de aplicaciones) ponerlo del mismo tamaño que el menú real (se puede presionar la tecla Ctrl mientras cambiamos su tamaño para mayor control; una calculadora; un conversor de unidades; un calendario y algunos iconos de los programas más usados. No recomiendo colocar alguno que nos mantenga más de unos segundos en el tablero (como un terminal).




Adicionalmente:


Asigno la Rejilla del escritorio y Presentar las ventanas a las otras esquinas del escritorio:





Conclusión

Por ensayo y error conseguí el increíble poder que tiene el plasma y de por qué se le da tanta fuerza dentro de KDE y openSUSE. Lamentablemente como me sucedió a mi, su uso eficiente no es tan evidente como se quisiera. Yo le recomiendo a la gente de KDE y openSUSE que saquen una configuración de plasma por omisión, para sacarle el mayor provecho sin tener que configurar.

Queremos escuchar tus experiencias, publica tus comentarios de como te fue con los tips o si ¿Tienes otros mejores? ¿Qué piensas del Plasma?

Hasta la próxima...

Validando xml con xsd usando msv

Hola,

Parte del proceso de utilizar xml para el intercambio de datos, por ejemplo importación y exportación de datos hacia y desde nuestro sistema respectivamente, es tener clara una definición del archivo xml que se va a utilizar. Para ello generamos un archivo xsd (XML Schema) con la definición de nuestro xml.

Ahora bien antes de intentar cargar una data en formato xml en nuestro sistema, es aconsejable primero verificar que el archivo está bien formado y luego si cumple con nuestra definición. Bueno hoy les enseñaré como hacerlo en Java.

Primero necesitamos una biblioteca llamada msv (Multi Schema Validator) se puede descargar desde aquí: https://msv.dev.java.net/ . Este paquete funciona de dos maneras:
  1. Como un programa de línea de comandos para validar xmls con un xsd que se especifique.
  2. Como una biblioteca que permite validar xmls con xsds directamente desde nuestro código en Java.
Para probar como funciona, vamos a descargar el zip del msv y expandirlo en cualquier directorio (tiene su propia carpeta) ahora para probarlo ejecutamos la siguiente línea de comandos:

java -jar msv.jar mi.xsd mi.xml

Si todo sale bien y el documento es válido debería soltar:
start parsing a grammar.
validating mi.xml
the document is valid.
Ahora bien para usarlo desde nuestro código Java lo primero que hay que hacer es incluir todos los jar de la carpeta msv en nuestro classpath (isorelax.jar, relaxngDatatype.jar, xmlParserAPIs.jar, msv.jar, xercesImpl.jar, xsdlib.jar). Luego el siguiente código nos permite validar nuestro xml:

/* Paso 1 creamos el fabricador de verificadores */
VerifierFactory factory = new com.sun.msv.verifier.jarv.TheFactoryImpl();

/* Paso 2 compilamos el esquema (nuestro archivo xsd) */
Schema schema = factory.compileSchema(new File("mi.xsd"));

/* Paso 3 creamos el verificador */
Verifier verifier = schema.newVerifier();

/* Paso 4 validamos */
if(verifier.verify(new File("mi.xml"))) {
// el documentos es válido
} else {
// el documento es inválido
}


Con ésto estamos listos. Algo muy importante si la verificación la estamos haciendo en una PC que no tiene conexión al Internet, vamos a tener que agregar el componente resolver de Apache XML Commons al classpath. Se puede descargar aquí: http://xml.apache.org.


Hasta la próxima...

Nota: Si esta información te es de utilidad o piensas que se puede mejorar, por favor deja un comentario con tus observaciones.

Utilizar wine para probar aplicaciones Java en ambiente Windows desde Linux

Actualizado: Revisado para wine 1.4 y Java 1.6.0u32, 4 de junio de 2012

Al leer este título, lo primero que viene a la mente es: ¿Para qué correr aplicaciones Java sobre wine si Java existe para Linux? Además las aplicaciones Java son multiplataforma. Ajá, paremos ahí y revisemos la última palabra de la frase: multiplataforma.

Muchas veces queremos verificar que tal corre nuestra aplicación en otra plataforma, para precisamente verificar que es multiplataforma. Hay varias cosas que pueden dejar de funcionar (o funcionar diferente) cuando se corre en otra plataforma:
  • Nombres de archivo: Los separadores de nombres de archivo es lo más cambiante entre plataformas.

  • Llamadas a comandos externos: Hay unos cuántos problemas que se solucionan fácilmente en Linux invocando comandos ¿Y en Windows?. Un ejemplo a éste respecto es el método listRoots() de la clase File. Si se quiere saber los volúmenes montados, en Windows funciona perfecto, pero en Linux únicamente retorna "/", entonces una de las maneras de resolverlo es invocando al comando df (entre otros) parsear su salida y obtener las unidades montadas.

  • Codificación de caracteres: Nuestras letras acentuadas comúnmente se ven mal en otras plataformas si no tenemos el debido cuidado.

  • Applets: Probar nuestros applets en navegadores que no corren en nuestra plataforma de desarrollo. Por ejemplo, Internet Explorer sobre Linux. No sólo estaríamos probando nuestra aplicación en otra plataforma sino además en otro navegador.
Para los casos antes mencionados y algunos otros, nos gustaría verificar que tal corre nuestra aplicación en otra plataforma. Específicamente si estamos desarrollando en Linux, poder correr la aplicación en Windows. Si tenemos dual boot, perfecto, reiniciamos la PC en Windows y listo. El problema es todo lo que tenemos que esperar para hacer una prueba. Para ésto podríamos usar wine.

Para utilizar java sobre wine, simplemente se instala la versión Windows de la máquina virtual de Java usando wine así:

wine jre-6u32-windows-i586.exe


Una vez instalado, simplemente corremos nuestro programa en "Windows" así:

wine java -jar ~/jdk/demo/jfc/SwingSet2/SwingSet2.jar


Fíjense que la única diferencia es colocar wine adelante. Si tienen problemas gráficos prueben deshabilitar Direct3D:

wine java -Dsun.java2d.d3d=false -jar ~/jdk/demo/jfc/SwingSet2/SwingSet2.jar



Les en va a impresionar lo bien que corre.


Por supuesto siempre tenemos la opción CrossOver para hacer lo mismo en unos pocos clics. Presiona aquí para instalar Java Windows en Linux: https://www.codeweavers.com/compatibility/browse/name/?app_id=3883


Applets

Uno de los usos más frecuentes para wine es correr Internet Explorer en Linux y así probar como se ven nuestros sitios web. Bueno si somos desarrolladores de Applets, podríamos usar Internet Explorer sobre wine para poder verlos sin tener que salir de Linux. Basta con tener instalado Internet Explorer antes de instalar java. ¿Y que tal un applet en Firefox sobre windows?

Aquí les presento las instrucciones para hacer correr applets en java 1.4 Internet Explorer 6.0 Windows 98, escojo esta configuración porque todo corre casi perfecto.
  1. Instalar Internet Explorer 6.0 en wine simulando Windows 98, en este paso no me extenderé ya que hay sin número de artículos que lo explican. Usen winetricks para ello. Si tienen Crossover (versión comercial de wine) es cuestión de unos clics.
  2. Instalar Java 1.4 para Windows 98 en wine. Aquí les dejo el enlace: https://java.sun.com/products/archive/j2se/1.4.2_19/index.html
  3. Hasta aquí los applets deberían correr perfectamente. Pues no, así como la versión 6 de java tiene problemas con Direct3D en wine, java 1.4 los tiene con DirectDraw, cosa que no es tan sencilla desactivar para los applets. Lo que hay que hacer es ejecutar a mano el panel de control de java en wine, desactivando el directdraw para poderlo mostrar y ahí desactivar el directdaw para los applets. Aqui el comando:
    cd ~/.wine/drive_c/Program\ Files/Java/j2re1.4.2_19/lib/

    wine java.exe -Dsun.java2d.noddraw=true -Xbootclasspath/a:plugin.jar sun.plugin.panel.ControlPanel

    Cuando se esté ejecutando el panel de control, se debe ir a la pestaña Avanzado y escribir -Dsun.java2d.noddraw=true en al campo Parámetros del entorno de ejecución y presionar Aplicar.
Con los pasos anteriores ya los applets deberían correr en Internet Explorer en Linux. Para versiones posteriores es posible que se necesite la misma técnica para deshabilitar el Direct3D en java. Cuando tenga una buena prueba actualizaré este post.

Hasta la próxima...

Nota: Si esta información te es de utilidad o piensas que se puede mejorar, por favor deja un comentario con tus observaciones.

Búsqueda