Distribuyendo una app de escritorio en Java

Java es un gran lenguaje, y como todos tiene ventajas y desventajas. Al momento de distribuir nuestra aplicación, se pueden realizar (y mejor aún, automatizar) algunas adecuaciones para ofrecer un paquete fácil de usar, pues una de las desventajas en Java es la falta de una integración adecuada para cada una de las plataformas soportadas.

Impresión de algunos al recibir un JAR y sus librerías
Impresión de algunos al recibir un JAR y sus librerías

Siguiendo esta guía vamos a generar un proceso en Ant que construirá paquetes para Windows, OS X, Linux y multiplataforma. Los paquetes específicos para plataforma tendrán un ejecutable nativo, en tanto que el multiplataforma llevará el JAR optimizado. Los tres paquetes incluirán también archivos varios necesarios para la distribución como licencias o instructivos.

El JAR de la aplicación usado para las distribuciones será optimizado en tamaño, desempeño y código usando Proguard, que es una excelente herramienta para pulir un JAR a distribuir. Para generar el ejecutable de Windows se usará la herramienta Launch4j. Para la app de OS X se usará jarbundler.

Continuar leyendo «Distribuyendo una app de escritorio en Java»

Escritorio Terminator en OpenBox

Hace algunos días cambié de distribución a !#. Aprovechando que la distro no tiene DE y que mi escritorio siempre terminaba con basura decidí poner ahí algo más productivo y ligeramente geek: un Terminator. Con algo de información en los foros de la distro e insipiración he obtenido esto:

Escritorio tres veces más productivo (y sexy)
Escritorio tres veces más productivo (y sexy)

 
La siguiente guía explica como conseguir el Terminator de escritorio en OpenBox, aunque seguramente se puede hacer en otros gestores de ventanas sin mucho problema. La primera parte es definir un perfil específico para el Terminator del escritorio y agregar procedimientos para mostrarlo y ocultarlo. Esto es independiente del gestor de ventanas.

El siguiente es un ejemplo de configuración con un perfil para el escritorio:

[global_config]
  title_inactive_bg_color = "#000000"
  title_transmit_bg_color = "#000000"
  borderless = True
  handle_size = 0
  focus = system
[keybindings]
[profiles]
  [[default]]
    scrollbar_position = hidden
    palette = "#000000:#cc0000:#4e9a06:#c4a000:#3465a4:#75507b:#06989a:#d3d7cf:#555753:#ef2929:#8ae234:#fce94f:#729fcf:#ad7fa8:#34e2e2:#eeeeec"
    background_darkness = 0.8
    scrollback_lines = 5000
    background_type = transparent
    use_system_font = False
    cursor_color = "#d8d8d8"
    foreground_color = "#d8d8d8"
    color_scheme = custom
    font = Monospace 10
    background_color = "#2e3436"
    scrollback_infinite = True
  [[desktop]]
    scrollbar_position = hidden
    palette = "#000000:#cc0000:#4e9a06:#c4a000:#3465a4:#75507b:#06989a:#d3d7cf:#555753:#ef2929:#8ae234:#fce94f:#729fcf:#ad7fa8:#34e2e2:#eeeeec"
    scrollback_lines = 5000
    background_darkness = 0.0
    background_type = transparent
    use_system_font = False
    cursor_color = "#d8d8d8"
    foreground_color = "#d8d8d8"
    show_titlebar = False
    color_scheme = custom
    font = DejaVu Sans Mono 10
    scrollback_infinite = True
[layouts]
  [[default]]
    [[[child1]]]
      type = Terminal
      parent = window0
      profile = default
    [[[window0]]]
      type = Window
      parent = ""
[plugins]

Continuar leyendo «Escritorio Terminator en OpenBox»