IBM Lotus Symphony for free

Linux/Unix/FreeBSD, Software, Windows November 4th, 2008

Bueno, esta no es una una noticia nueva, desde hace ya varios meses IBM decidió liberar la descarga de Symphony.  Lo que no sabía es que Symphony ya no es sólo una hoja de cálculo sino que también incluye a un editor de textos y a un editor de presentaciones haciéndola toda una suite de oficina que compite con OpenOffice y con la otra.

Desafortunadamente no es opensource ya que no veo que se pueda tener acceso a las fuentes pero se pueden descargar distribuciones binarias para los diferentes sistemas operativos: Windows, MacOS X y Linux (RedHat, SUSE y Ubuntu).

Este es un software que hay que probar, sobretodo teniendo en cuenta su usabilidad, interoperabilidad, integración, uso de recursos y soporte para los formatos de archivos.

Enlace: IBM Lotus Symphony.

Tags: , , , ,

Instalación de OpenOffice 3 en Ubuntu

Linux/Unix/FreeBSD, Software October 22nd, 2008

Bueno, no me aguanté las ganas de probar al OpenOffice3 hasta que Ubuntu publicara la actualización en el repositorio oficial.

Para realizar la instalación manual seguí estos pasos.

  1. Desinstalar la versión anterior desde el Synaptic Package Manager, aunque es opcional porque se supone que pueden convivir las dos versiones.
  2. Descargué y descomprimí la última distribución disponible para Debian: OOo_3.0.0_LinuxIntel_install_en-US_deb.
  3. Desde la carpeta recién creada ejecuté los siguientes comandos.

    $ cd <RUTA>/OOO300_m9_native_packed-1_en-US.9358/DEBS
    $ sudo dpkg -i *.deb

  4. Listo.

La desventaja de este método es que no se crean automáticamente los íconos en el menú de usuario, sin embargo es fácil crearlos a través de System > Preferences > Main Menu para las siguientes aplicaciones que quedan instaladas bajo /opt/openoffice.org3/program/.

  • OpenOffice -> soffice
  • OpenOffice Base -> sbase
  • OpenOffice Draw -> sdraw
  • OpenOffice Impress -> simpress
  • OpenOffice Writer -> swriter
  • OpenOffice Calc -> scalc
  • OpenOffice Math -> smath

Tags: , ,

Historia gráfica en el tiempo: UNIX, Windows y Lenguajes de Programación

Desarrollo de software, Linux/Unix/FreeBSD, Windows October 14th, 2008

En el sitio de Éric Lévénez encontré algo muy interesante, los gráficos con la distribuciones de UNIX, Windows y los principales lenguajes de programación ordenados en el tiempo y con actualización frecuente!

Toda una joya documental e histórica.

Tags: , ,

Escogencia de sistema operativo

Linux/Unix/FreeBSD September 18th, 2008

No sabemos qué sistema operativo usa Dios, pero nosotros usamos Linux.
Hermana Judith Zoebelein, webmaster del Vaticano.

Tomado de Amén hermana.

Tags:

OpenArena con Ubuntu

Linux/Unix/FreeBSD, Videojuegos September 16th, 2008

OpenArena es la versión opensource (GPL) de Quake 3 Arena, con todos los recursos: gráficos, texturas, sonidos, etc. reemplazados por unos completamente libres.

Para probar OpenArena en Linux Ubuntu es necesario desactivar el Compiz, de lo contrario el ratón funciona incorrectamente con el rango de movimientos limitado.

Para solucionar se debe ejecutar a OA con el siguiente script que hace lo mencionado, desactivar Compiz, ejecutar la aplicación y activar Compiz nuevamente al terminar la ejecución.

#!/bin/bash
metacity --replace &
cd /{OPENARENA_PATH}/
./openarena.i386
compiz --replace &

Enlace: OpenArena FAQ.

Tags: ,

Obtener lecturas de un GPS USB desde Java/C#

Desarrollo de software, Linux/Unix/FreeBSD, Software geográfico, Windows September 10th, 2008

La tarea del día de hoy era obtener la posición actual desde un GPS utilizando Java o C#.  Para esto contaba con un GPS Garmin eTrex Summit HC que por supuesto cuenta con un puerto USB.

Extrañamente concluyo que no hay un método confiable ni portable para leer información desde los puertos USB para ninguno de los dos lenguajes.  Para Java encontré varias librerías pero aún inmaduras o con soporte para sólo un sistema operativo, prefiero el soporte para Windows y Linux por lo menos.  Para C# igual horizonte, nativamente aún no es soportado como si lo es el SerialPort y la mejor opción parece ser #usblib de los mismos creadores de SharpDevelop, sin embargo no pude encontrar un ejemplo que indicara su viabilidad.

Con este oscuro panorama terminé explorando un estilo de solución que no es de mi mayor agrado: el ejecutar aplicaciones de terceros para obtener y procesar su salida estándar.

Para esto instalé un software muy útil llamado GPSBabel el cual se puede descargar para Windows, Linux y Mac, incluyendo su código fuente escrito en lenguaje C.  La distribución de Linux está basada en RPM los cuales no fueron instalables en mi estación de trabajo basada en Ubuntu, sin embargo se encuentra disponible el paquete para instalarse desde la distribución de paquetes de Ubuntu.

El comando gpsbabel permite obtener desde línea de comando la información contenida en el GPS, incluyendo por supuesto, su ubicación actual.

$ sudo /usr/bin/gpsbabel.exe -i garmin,get_posn -f usb:

El resultado es algo de este estilo: (probado desde Armenia/Qundío)

4.536692N 75.669346W Position/Position

Extrañamente la distribución de Windows incluye además la fecha/hora de la ejecución, hecho que en Linux no sucede.

Wed Sep 10 22:42:46 2008
4.536692N 75.669346W Position/Position

La aplicación intermedia fue desarrollada en C# debido a la afinad de mi compañero de desarrollo con ese lenguaje.  Fue interesante para aprender algunos detalles particulares del lenguaje a los cuales nos vimos enfrentados durante el desarrollo.

Lo que hice fue crear un método estático (AccesoGPSBabel.obtUbicacionActual) que basado en la ubicación del comando gpsbabel retorna un Hashtable con la latitud/longitud actual o null en caso de suceder algún problema.

La ejecución del programa externo se realiza mediante un objeto System.Diagnostics.Process al cual se le indica la ubicación del archivo ejecutable, los argumentos de línea de comando y se le informa que estamos interesados en obtener su salida estándar.  La aplicación (o un enlace a) gpsbabel deberá estar ubicada en el mismo directorio del ejecutable de la aplicación principal, incluyendo el archivo libexpat.dll para la versión de Windows.

            System.Diagnostics.Process proc = new System.Diagnostics.Process();
 
            proc.EnableRaisingEvents = false;
 
            proc.StartInfo.FileName = aplicacion;
 
            proc.StartInfo.Arguments = "-i " + protocolo + ",get_posn -f usb:";
 
            proc.StartInfo.RedirectStandardOutput = true;
 
            proc.StartInfo.UseShellExecute = false;
 
            proc.Start();

Para recibir la información proveniente de la salida estándar se obtiene su StreamReader de la siguiente manera.

            String datos = proc.StandardOutput.ReadToEnd().Trim();

Su procesamiento no se aleja de la carpintería normal del manejo de cadenas con String.Split junto con un detalle adicional, la información aparece con el posfijo N/S, W/E; yo prefería que fuera un solo valor numérico siendo positivo o negativo según su ubicación con respecto a la referencia, tal y como lo maneja GoogleMaps y otros paquetes similares.

Para esto, al procesar las líneas recibidas de la salida estándar recorté la subcadena de manera que no tomara el último carácter de las coordenadas.

            latitud     = secciones[0].Trim().Substring(0, secciones[0].Length - 1);
 
            latitudDir  = secciones[0].Trim().Substring(secciones[0].Length - 1, 1);
 
            longitud    = secciones[1].Trim().Substring(0, secciones[1].Length - 1);
 
            longitudDir = secciones[1].Trim().Substring(secciones[1].Length - 1, 1);

Y después las multipliqué por su inverso aditivo en los casos en que correspondiera.

            Double Latitud = Double.Parse(latitud) * ((latitudDir.Equals("S")) ? -1 : 1);
 
            Double Longitud = Double.Parse(longitud) * ((longitudDir.Equals("W")) ? -1 : 1);

Sucedió un problema.  El método Double.Parse estaba convirtiendo erróneamente los valores porque el GPS los enviaba con el punto como separador decimal y la Configuración Regional de la máquina Windows que estabamos utilizando usaba la coma.

Como la intención era que la aplicación no sólo funcionara entre diferentes configuraciones regionales sino que lo hiciera también entre diferentes sistemas operativos (Linux con Mono) me dediqué a buscar una solución portable.

Para esto se obtiene al separador decimal basado en la configuración regional del sistema operativo.

            String separadorDecimal = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;

Se realiza la corrección de separadores (de punto al utilizado por la configuración regional local) antes de manipular los datos con el Double.parse.

            latitud = secciones[0].Trim().Substring(0, secciones[0].Length - 1).Replace('.', separadorDecimal[0]);
            longitud = secciones[1].Trim().Substring(0, secciones[1].Length - 1).Replace('.', separadorDecimal[0]);

Con esto se solucionó el problema.  Para terminar, se utilizó un Hashtable para almacenar la información y retornársela al objeto que la solicitó.

            resultado.Add("latitud", Latitud);
            resultado.Add("latitudDireccion", latitudDir);
            resultado.Add("longitud", Longitud);
            resultado.Add("longitudDireccion", longitudDir);

Esta no es la solución que pensaba darle al problema, sin embargo la implementación fue interesante y gracias a la flexibilidad que provee gpsbabel, espero que sea funcional con una amplia gama de dispositivos, no solamente con los de la marca Garmin.

De todas formas me queda pendiente la tarea de buscar la forma de acceder directamente al puerto USB para leer su informacion en forma de cadenas NMEA, la cual me parece la solución menos dependiente posible de su entorno.

Enlace: Distribución con las fuentes del proyecto (C# basado en MonoDevelop).

Tags: , , ,

Instalación rápida de OpenSUSE 11 en VirtualBox

Linux/Unix/FreeBSD September 8th, 2008

En la presente sesión se instalará el sistema operativo Linux OpenSUSE 11 bajo el software de virtualización VirtualBox para su posterior uso en las futuras sesiones de instalación, configuración y administración de servicios de red.

La utilización de VirtualBox permite realizar la instalación del sistema operativo dentro de un huésped (como Windows) sin necesidad de alterar sus particiones, sin embargo el proceso de instalación es prácticamente el mismo si se desea realizar su instalación completa.

  • Objetivo.
  • Herramientas.
  • Ejecución de VirtualBox.
  • Consola de VirtualBox.
  • Creación de la máquina virtual.
    • Tipo.
    • Memoria RAM.
    • Disco duro.
  • Ejecución de la máquina virtual
  • Instalación.
    • Configuración del idioma y distribución del teclado.
    • Tipo de instalación.
    • Configuración regional.
    • Selección de escritorio.
    • Particiones.
    • Creación del usuario.
    • Selección de paquetes.
  • Acceso al sistema instalado.
  • Enlaces de interés.

Tags: , ,

Convertir formatos de archivos con la ayuda de OpenOffice

Linux/Unix/FreeBSD, Software, Windows September 2nd, 2008

Me gusta mucho encontrar soluciones fáciles, rápidas y basadas en software libre que son, trivialmente, mucho mas flexibles que las provistas por el software propietario.

Hace poco tuvimos un problema, como convertir archivos de formato ODT a DOC.  La mejor solución sería una que evitara la necesidad de ejecutar OpenOffice y abrir manualmente a cada uno de los archivos, seleccionar Guardar Como, modificar el formato y ...

Esta es la mejor solución que encontré a ese problema basado en la aplicación JodConverter y Java (requiere al JRE por lo menos).  Ver los formatos soportados.

Descargue a JODConverter de la siguiente ubicación.

http://sourceforge.net/project/showfiles.php?group_id=91849

Descomprima y ubique al directorio /lib en un directorio de su preferencia.

Ejecute a OpenOffice como un servicio.  Sólo se debe ejecutar una única vez durante el procedimiento.

$ JAVA_HOME=/usr/local/java ; export JAVA_HOME
$ PATH=$JAVA_HOME/bin:$PATH ; export PATH
 
$ soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

Ejecute el convertidor invocando al siguiente comando.

$ java -jar lib/jodconverter-cli-2.2.1.jar ARCHIVO_ORIGEN.EXTENSIÓN ARCHIVO_DESTINO.EXTENSIÓN

Por ejemplo, para convertir al archivo tesis.odt a su correspondiente tesis.doc se deberá ejecutar el siguiente comando.

$ java -jar lib/jodconverter-cli-2.2.1.jar tesis.odt tesis.doc

Téngase en cuenta las particularidades de estarse utilizando la versión 2.2.1 de JODConverter y de estar situados en el directorio inmediatamente superior al sitio donde se descomprimió el directorio /lib.

Para Windows el procedimiento es similar.

dos&gt; SET RUTA="C:\Archivos de programa\OpenOffice.org 2.4\program"
dos&gt; %RUTA%\soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
dos&gt; java -jar lib/jodconverter-cli-2.2.1.jar ARCHIVO_ORIGEN.EXTENSIÓN ARCHIVO_DESTINO.EXTENSIÓN

Mejor aún, si se desea, es posible realizar una conversión en batch de múltiples archivos mediante el siguiente comando.

$ java -jar lib/jodconverter-cli-2.2.1.jar -f EXTENSIÓN_ORIGEN *.EXTENSIÓN_DESTINO

Por ejemplo, para convertir a todos los archivos ODT en PDF se debe ejecutar la siguiente instrucción.

$ java -jar lib/jodconverter-cli-2.2.1.jar -f pdf *.odt

Se podrá realizar una tarea similar, en batch y desde línea de comando con MS Word ? Voy a investigar.

Tags:

Cliente para MSSQL desde Linux

Bases de datos, Desarrollo de software, Linux/Unix/FreeBSD, Windows September 2nd, 2008

Uno de los proyectos que estoy desarrollando requiere de la conexión a una base de datos Microsoft SQL Server 7 cuya instancia de desarrollo se encuentra instalada en un equipo Windows XP.  Solucionado anteriormente la conexión desde el servidor web con OpenSuse, ahora el problema es como administrar la base de datos sin utilizar la consola que obviamente se ejecuta en Windows unicamente.

Para esto encontré la aplicación SQuirrel SQL que se encuentra desarrollada en Java y soporta por supuesto, conexiones con cualquier base de datos que tenga soporte por un controlador JDBC.

Después de instalada en mi escritorio, descargué al controlador JDBC para MSSQL y lo copié bajo el directorio /lib de la aplicación.  Para mi caso: /home/jimezam/SQuirreL SQL Client/lib.  Los controladores JDBC para MSSQL pueden obtenerse desde la siguiente ubicación.

http://msdn.microsoft.com/en-us/data/aa937724.aspx

Al ejecutar la aplicación aparece activo el Driver Microsoft MSSQL Server JDBC Driver con un chulito azul.  Con esto, se crea la conexión a la base de datos: Aliases > New Alias.

Name Nombre de la conexión o alias a la base de datos.
Driver Microsoft MSSQL Server JDBC Driver
URL jdbc:sqlserver://HOST;databaseName=NAME;
User Name Nombre del usuario de la conexión
Password Contraseña de conexión
Auto logon [seleccionado]
Connect at Startup [seleccionado]

Otra aplicación Java/JDBC que instalé fue ThinkUI SQL Client (free for personal) la cual me había funcionado bien hasta que empecé a notarle pequeños detalles que desenamoran como el hecho de no mostrarme todos los registros retornados por una consulta sino los primeros x.  Espero tener una mejor experiencia con este nuevo cliente.

Tags: , ,

Actualización de Pidgin

Internet, Linux/Unix/FreeBSD, Software August 20th, 2008

El Pidgin de mi Ubuntu se encontraba ya desactualizado (2.4.1) y al parecer Synaptic no se enteraba que ya había nuevas versiones (2.5.0 actualmente).

Estos fueron los pasos que se siguieron para actualizarlo gracias a los paquetes de GetDeb.

$ wget http://www.getdeb.net/download/3099/1
$ wget http://www.getdeb.net/download/3099/2
$ wget http://www.getdeb.net/download/3099/0
$ sudo apt-get install libsilc
$ sudo dpkg -i pidgin-data_2.5.0-1~getdeb1_all.deb
$ sudo dpkg -i libpurple0_2.5.0-1~getdeb1_i386.deb
$ sudo dpkg -i pidgin_2.5.0-1~getdeb1_i386.deb

Tags: