your excuse: Increased sunspot activity.
CoffMan Weblog Linux category Java category wiki Image thx to Chenchu Ricochet Robot J2MESimon Says J2ME gameCoffMan WeblogJava stuffLinux stuffImage thx to ChenchuWickleMarihuana Category
   Victor Fariña Infante , info about my own projects and thoughts.
 
login



.:¿?-_-¿?:.
Anton tiene




Powered by

 



Technology, Java, thoughts and projects of Coffman, host of wickle dot com. feel free to make comments.
[Jul 25, 2008]

Este artículo trata de explicar como conseguir que 2 instancias del navegador firefox se ejecuten a la vez cada una de ellas con sus propias preferencias, extensiones, etc ...
Esto es útil para probar paginas con distintas versiones del navegador o para "logearte" 2 veces en una misma web con usuarios distintos.

Para conseguir esto debemos crear tantos "profiles" como creamos convenientes, cada uno de ellos nos permitirá abrir una instancia del navegador distinta sin que se toque con cualquiera de las otras. Yo tengo credas las siguientes:

  • default, el profile que trae por defecto firefox
  • dev, es donde tengo el navegador de pruebas de desarrollo
  • firefox3, es el profile que uso para lanzar la nueva versión de firefox

Creamos un nuevo profile

En esta página hay instrucciones precisas de como crear profiles en firefox, pero basicamente se reduce a ejecutar lo siguiente:

firefox -profilemanager -no-remote


este comando nos abre una interface gráfica para crear o eliminar las profiles que consideremos necesarias.

Ejecutando el navegador con una profile o con otra

Para ejecutar el firefox con una profile u otra tendremos que cambiar o crear el script que usamos para lanzar el firefox, indicandole en la linea de comandos que use uno u otro profile pues sino le indicamos nada emplea el profile "default" :

firefox -no-remote -P "dev"


Y si ejecutamos:

firefox3 -no-remote -P "firefox3"


lanzamos otra instancia del firefox (en este caso otra version distinta) que no comparte nada con la sesión anterior.

Referencias

http://blogs.cozi.com/tech/2008/04/multiple-firefo.html



by coffman - 16:05:12 |

[Jun 12, 2008]

Desde hace algún tiempo uso Mac OS X con frecuencia y suelo trabajar en multiples localizaciones (Oficina, Casa, Clientes, ...) cada uno de ellos tiene sus propias configuraciones de red (DHCP en Oficina, Wifi en casa, Manual en algún cliente ,...). Esto se resuelve facilmente en el Mac OS X con las ubicaciones con las que te permite cambiar las propiedades de red con un solo click.

Sin embargo hay una propiedad del sistema, la configuración del proxy, a la que el Firefox no le hace ni caso, éste usa su propia configuración de proxy con lo que al cambiar de ubicación tienes que acordarte de cambiar manualmente las preferencias de red en la configuración del navegador.
Casualmente acabo de encontrar la extensión System proxy para Firefox y Thunderbird que hace que se lean las configuraciones de proxy de las del Sistema Operativo. Increiblemente útil

La página de la extensión es ésta.
Lo podeis descargar en la página anterior.



by coffman - 11:53:08 |

[Sep 21, 2007]

El tortoiseSVN es un programa para Windows que añade acciones relativas al Subversion al menú contextual, por ejemplo "SVN Commit" ó "SVN Update", de modo que para realizar un Update o un Commit unicamente seleccionamos la carpeta o el archivo , botón derecho y ejecutamos ... Extremadamente sencillo !!! Me encanta ;)
Hasta ahora este era un privilegio de los usuarios de Windows, hace poco he descubierto como implementar esto mismo en Linux, necesitaremos el zenity (para los dialogos), el nautilus-actions (que se instala mediante apt-get fácilmente) y los 2 scripts que anexo (obtenidos de nautilus-scripts) y los 2 iconos que anexo (sacados del tema tango-blue-materia)
La idea es crear 2 acciones nuevas dentro del menu contextual, para ello ejecutamos el nautilus-action-config y creamos las nuevas acciones con las siguientes propiedades:
=======================
SVN Commit
Icon: /home/vic/fondos/iconos/edit-redo.png
Path: /home/vic/.scripts/Subversion/Commit
Parameters: %d/%m
File Pattern: *
Folders/Files: Both
Multiple: unchecked
=======================

=======================
SVN Update
Icon: /home/vic/fondos/iconos/edit-undo.png
Path: /home/vic/.scripts/Subversion/Update
Parameters: %d/%m
File Pattern: *
Folders/Files: Both
Multiple: checked
=======================

Creamos los siguientes scripts:
/home/vic/.scripts/Subversion/Commit :

#!/bin/sh
#
# Distributed under the terms of GNU GPL version 2
#
# http://marius.scurtescu.com/?p=102

LOGFILE=`mktemp -t svn_commit.XXXXXX`

ICONPATH="`dirname $0`/svn.xpm"
LOGMESSAGE=`zenity --entry --title="Subversion: Commit" --text="Enter log message:" --width=400 --window-icon="$ICONPATH" 2>&1`

if [ $? -eq 0 ] ; then
    svn commit -m "$LOGMESSAGE" "$@" > $LOGFILE
    cat $LOGFILE | zenity --text-info --title="Subversion: Commit" --width=600 --height=400 --window-icon="`dirname $0`/svn.xpm"
    rm -f $LOGFILE
fi

y el scripts para el Update /home/vic/.scripts/Subversion/Update :

#!/bin/sh
#
# Distributed under the terms of GNU GPL version 2
#
# http://marius.scurtescu.com/?p=102

LOGFILE=`mktemp -t svn_update.XXXXXX`

svn update "$@" > $LOGFILE
#zenity --text-info --title="Subversion: Update" --filename=$LOGFILE --width=600 --height=400 --window-icon="`dirname $0`/svn.xpm"
# Se sustituye la linea de arriba (que es la original) por la de abajo para evitar el error que da con las locales
cat $LOGFILE | zenity --text-info --title="Subversion: Update" --width=600 --height=400 --window-icon="`dirname $0`/svn.xpm"
rm -f $LOGFILE


Este es el resultado final:



Implementar el resto de acciones del Subversion es sencillo, lo dejo a vuestra imaginación ;)
Referencias:



by coffman - 13:01:11 |

[Aug 06, 2007]

No hace falta ser muy observador para darse cuenta de que el nuevo sistema operativo de Microsoft "Windows Vista" en cualquiera de sus ediciones no está teniendo el éxito esperado. Esto es debido a múltiples razones, que en mi opinión tienen una raíz común, La burocracia.
La burocracia en Microsoft ha sido el causante de los números retrasos en las fechas previstas de entrega del producto, en la complejidad del menú de apagado.
La burocracia también ha sido la causante de que la mayoría de nuevas funcionalidades de "Windows Vista" no sean de invención propia, sino que sean copias no mejoradas de características bien conocidas de Linux o de Mac OS X ya implementadas hace mas de 5 años.

Entonces, por que la gente sigue usando Windows ???
La pregunta tiene varias respuestas, la fundamental es que la cuota de mercado de la que dispone es lo suficientemente amplia como para que la gente "no cambie" de sistema operativo por miedo a perder compatibilidad con el software que ya dispone. Otra razón es que Windows es una plataforma de juegos importante, gracias a los acuerdos de Microsoft con las compañías desarrolladoras la gran mayoría de juegos salen únicamente para la plataforma Windows. Otra razón no menos importante, es que Windows te permite escoger entre numerosos PC's, puedes comprarte un clónico por 200€ o bien un DELL similar por 900€. Esta última es facilmente descartable pues con Apple tienes portatiles desde 1.000€ o un mac mini desde 600€. En cuanto a características técnicas los precios son muy similares, o sino, intenta encontrar un portatil similar al powerbook de 15" por menos de 1.800€ ... ;)

Microsoft siempre ha estado en contra del Open Source, quizás mas por cabezonería que por otra cosa, sin embargo en el futuro me gustaría ver como Microsoft separa su interface gráfica del núcleo, el nucleo lo podría convertir en un Unix y, conservando la compatibilidad con todo lo actual, permitiría a los usuarios disponer de un sistema operativo que fuese un Unix/Linux por debajo (equivaldría a estabilidad y robustez), por delante tuviese la interface gráfica a la que nos tiene acostumbrados Microsoft y funcionasen todos los juegos que hasta ahora lo hacen.

Esto ayudaría a que muchos de los que ahora usan Linux o Mac OS X cambiases (o al menos probasen) el "nuevo" sistema operativo de Microsoft. Yo al menos lo haría.



by coffman - 23:54:48 |

[Jul 29, 2007]

Esta semana para mi desgracia y la de mi hijo, alguien me ha contagiado la varicela con lo que estoy recluido en la casa de mi madre en un remoto pueblo de galicia. Como todos estos pueblos el acceso a internet es complicado cuando no imposible y para solucionar este grave (gravisimo diría yo) problema me he ido a comprar a una tienda de Orange uno de esos Modems USB que emplean tecnología 3G y/o GPRS, y es entonces cuando aparecen los problemas ....

Me planto en una tienda Orange de la localidad y solicito el pack de 6€ al mes con un máximo de 1GB de transferencia mensual, este pack viene con el aparato de Option GlobeSurfer i Con 7.2 que me enseñan y verifico que sea Mac OS X Compatible.

El primer problema lo encuentro en la misma tienda donde la señorita me informa que en su aplicación no le aparecen correctamente los datos de mi contrato de Orange, con lo que no puede hacer nada para tramitar mi solicitud, además resulta que el servicio de asistencia técnica de Orange cierra a las 21.00 con lo que la señorita de la tienda no puede hacer nada. (Todo esto tras prácticamente 2 horas en la tienda)
Vuelvo al día siguiente y le comento que lo hagamos a título personal con un nuevo contrato, y parece que así todo funciona correctamente en su aplicación. Me llevo el USB para casa y lo conecto ...

Segundo problema, se supone que cuando conectas el USB debe salir una pantalla de instalación, no sale.
Se supone tambien que debe traer el software para Mac OS X en el propio USB, sin embargo solo aparece el software para Windows.
La tienda ya está cerrada, de todos modos no creo que fueran capaces de darme el software que necesito. Me dispongo a llamar al Servicio de atención telefonica de Orange para que me digan donde me puedo descargar este software o de donde lo puedo bajar, tras 2 horas al teléfono y unas 6 operadoras distintas ... No saben darme esa información.

Me voy con el portatil a recorrer la localidad en busca de un punto de acceso abierto con conexión a internet para poder bajarme el software que me falta, lo encuentro en menos de 5 minutos.
A través de google busco el software Globetrotter Connect Mac, de la página del fabricante no me dejan bajar nada, pues  es un modelo rebranded y me redirigen a Orange.
En la página de Orange solo  te puedes bajar tonos para el móvil y fondos para el escritorio, tienen una web completamente inútil, nada de descarga de Software o Soporte para sus productos.
Al final encuentro el software en la página de soporte de AT&T, lo instalo y solo faltan los datos de la red, que tengo que pedir a Orange de nuevo ... Otras 2 horas y 6 operadoras distintas después consigo estos datos :

APN: internet
Usuario: orange
Pasword: orange

Y finalmente tras 2 días consigo la preciada conexión a internet, a favor tengo que decir que la conexión es bastante decente, aproximadamente 80 Kb/seg.
En definitiva Orange como proveedora de acceso a Internet deja mucho que desear y aun encima su soporte teléfonico es pésimo.



by coffman - 23:23:30 |

[Jul 21, 2007]

Introducción

Los que lean mi blog de vez en cuando, sabrán qe soy usuario de Linux desde hace bastante tiempo, y que me suele costar cambiar de entorno, tanto de trabajo como personal.
El sistema operativo Windows XP unicamente lo uso para jugar al WoW y, ocasionalmente, al Counter Strike. En Queres Tecnologías han optado por la compra de un Precioso portatil MacBook Pro, para las presentaciones y para lo que se tercie, y me ha tocado a mi evaluarlo y ponerlo a punto, así que este articulo lo dedicaré a explicar las virtudes y los defectos del portatil  del sistema operativo Mac OS X 10.4.10

Descripcion del portatil

El ordenador es un MacBook Pro de 15", con un procesador Intel Core 2 Duo a 2.2 Ghz, cuenta con 2 GB de RAM y disco duro de 120 GB,
La tarjeta gráfica es la NVIDIA GeForce 8600M GT, un cañón vamos ! además incorpora Gigabit Ethernet, Bluetooth, WIFI, 2 USBs, Firewire, DVD 8x, retroiluminacion para el teclado y sudden motion sensor y con todo esto, tan solo pesa 2'4 kg.
Y finalmente el sistema operativo es Mac OS X 10.4.10

A Favor

Una cosa que hay que tener muy en cuenta es que, por debajo, el sistema operativo es un unix, de modo que la interface gráfica es impresionante, pero disponemos de una consola bash para hacer y deshacer lo que queramos ;).
El sistema de actualizacion de sofware es bastante bueno y mantiene correctamente actualizadas todas las aplicaciones que instalemos en la maquina.
La interface gráfica es muy chula y además muy facil de usar.
Los juegos que echaba de menos en mi linux, funcionan el Mac !! ;)
El Sistema Operativo Mac OS X trae practicamente todo lo que puedo necesitar para el uso empresarial y personal.
El ordenador, literalmente vuelaaa ... es impresionante, pero la rapidez del mismo es una pasada.

En contra

El precio claramente es lo único en contra de este ordenador, aunque los precios de los portatiles de similares características son muy parecidos, hay bastante mas variedad en PCs y puedes irte a uno un pelin inferior en precio con similares características.
El atajo de teclado
EL maximizar ventana es "distinto" al resto de sistemas operativos que conozco y por eso desorienta un poco.  Aquí hay un interesante articulo sobre este tema.
El atajo de teclado para cambiar de aplicacion (el famoso ALT+TAB) es horrible, pues cambia entre aplicaciones que puede que no tengamos abiertas, y no cambia entre varias ventanas de una misma aplicación.

Acciones adicionales para acomodar el sistema a mi gusto

El sistema viene de fabrica con bastante software, de modo que practcamente no hace falta nada, pero aun así yo me he instalado las siguientes herramientas que considero imprescindibles:

  • Firefox ... sin comentarios
  • OpenOffice 2.x , aunque el sistema trae una version de prueba de Office para Mac, las OO son necesarias para abrir odt's y demas ...
  • freemind: software para realizar Mind Maps
  • DesktopManager es un gestor de multiples escritorios virtuales, indispensable si vienes del mundo Linux ;)
  • Adium, mensajeria compatible con MSN, Yahoo, Gtalk, etc ...
  • Textmate (editor de textos muy completo)
  • CocoaMySQL (Cliente MySQL con interface MacOS X)
  • Transmission (BitTorrent Cliente)

Para que el comando ls liste archivos en color y para que el vi edite documentos coloreando la sintaxis tuve que modificar estos archivos:
bashrc -> alias ls='ls -G'
.vimrc -> syntax on

Resumen

No tengo muy claro que vaya a seguir comprando PCs con Windows o para meterles linux, ahora tengo un Mac que es similar a un Linux en todo, con una interface gráfica acojonante y con los juegos que me proporcionaba el WIndows, no necesito más.
Además si voy a gastarme la pasta en un sistema operativo, elijo aquel que se gasta la pasta en innovación, y no aquel que se dedica a plagiar y copiar ideas.
No digo que Mac OS X sea mejor sistema operativo que Windows, sino que me encuentro mas comodo trabajando con Mac OS X; no pierdo el tiempo con el sistema operativo y so mas productivo.

Si quieres cambiar a Mac OS X, desde Windows, te recomiendo que antes visites esta página para acabar de convencerte ;).

Referencias

Estas son algunas páginas que me han sido de mucha utilidad



by coffman - 23:02:37 |

[Jun 23, 2007]

Ya llevo algo de tiempo sin postear, y como no, se debe a una buena razón ... La causa se llama Antón y es nuestro primer hijo, nació un poco antes de lo previsto, por eso nos ha pillado con lo puesto.

Nació el 15 de julio a las 12.45 de la madrugada, el mismo día que nació Rembrandt o Forest Withaker ;-) , Este día en españa se celebraba el 30º aniversario de las elecciones democráticas. Vamos, una fecha como otra cualquiera ...
Antón pesó al nacer 2.760 gr y midió 47 cm. Un poco alto y grande de más para haber nacido antes de tiempo.

El canijo ya tiene su propio blog, que está en plena evolución y espero que sea un regalo para él cuando tenga uso de razón, o al menos cuando sepa distinguir el blog del WoW. Y que iremos rellenando los padres mientras él no pueda ;).

También le hemos creado un album de fotos, como no ... su link está en el blog.



by coffman - 16:52:48 |

[Jun 21, 2007]

Un error común que nos asalta siempre que estamos iniciando un documento desde OpenOffice es que bajo determinadas cirsunstancias, los encabezados de los varios niveles del documento se desmadran en cuanto a la numeración que tienen asignados.
Esto se debe a un incorrecto uso del sistema de estilos de OpenOffice, que por otro lado puede resultar confuso a los usuarios que provienen de Microsoft Word.
El método correcto para empezar a crear un documento que consta de Encabezados de varios niveles puede ser el siguiente:

Escribimos un pequeño esquema de como sería el documento, por ejemplo:

Introducción
    Descripción
    Alcance
Situacion actual
    Area Sistemas
        Documentos
    Area Marketing
        Documentos
Requisitos de un SGD
    Requisitos Básicos
    Requisitos Legales
    Requisitos Funcionales


Esto contendría una estructura básica, ahora tenemos que aplicar estilos a cada linea, para ello:

  1. Seleccionamos Introducción y aplicamos "Encabezado 1" ,

  2. Seleccionamos Descripción y aplicamos "Encabezado 2",

  3. Seleccionamos Alcance y aplicamos "Encabezado 2",

  4. Seleccionamos Situación Actual y aplicamos "Encabezado 1",

  5. Y así con el resto ...

Ahora tenemos aplicados estilos, pero sin numeración, para lo cual seleccionamos una linea de Tipo "Encabezado 1" y Activamos la Numeración (con el botón de Numbering On/Off de la toolbar). Esto mismo lo repetimos para todos los encabezados a los que queramos aplicar numeración.
Nos debería quedar algo así:


A partir de aquí, podemos continuar escribiendo el documento con normalidad simplemente aplicado estilos "Encabezado x", en función del nivel que queramos.



by coffman - 11:56:54 |

[Jun 20, 2007]

Antes era imprescindible poder colgar las fotos en el blog, pero ahora estamos en la era el video, con lo que se hace necesario algun mecanismo para colgar nuestros videos caseros en nuestro blog.

La manera habitual es recurrir a Google Video o a YouTube que almacenan nuestro video y lo muestran con un visor flash que es agradable a la vista y permite cargar el video poco a poco sin necesidad de esperar a que baje el video entero (streaming de video).

Hacer esto por nosotros mismos en nuestro propio blog es cosa sencilla. Veamos como hacerlo ...

Qué necesitamos

  1. Video en formato avi, mpeg, ... ;)

  2. ffmpeg (version 3), software para la conversion del  video a varios formatos (flv en nuestro caso)

  3. Visor flv en flash para la pagina web. Hay varios, pero este funciona bien

Pasos necesarios
Lo primero que debemos hacer es transformar el video en formato avi a flv, con este sencillo comando:

$ ffmpeg -i video.avi video.flv


esto nos genera un archivo video.flv.

Seguidamente creamos una pagina web para visualizar el video:

<html>
<body>
<object type="application/x-shockwave-flash" width="320" height="260"
wmode="transparent" data="flvplayer.swf?file=video.flv&autoStart=false">
<param name="movie" value="flvplayer.swf?file=video.flv&autoStart=false" />
<param name="wmode" value="transparent" />
</object>
</body>
</html>

Ahora copiamos el visor flv (archivo flvplayer.swf) y el video (archivo video.flv) al mismo directorio que el archivo html creado y listo.

Referencias
http://ffmpegx.com/flv.html


Así de fácil ...



by coffman - 14:26:21 |

[Jun 10, 2007]

Hay una cambio de época con la aparición de Appfuse. Antes, en la programacion Java para la web todo era oscuro, para iniciar un proyecto tardabas dias en establecer el esqueleto de la aplicacion, y para añadir funcionalidad, replicabas cientos de lineas que ya tenías en librerías o guardadas en algun archivo de texto.

Con appfuse crear el esqueleto de una aplicacion web con Java es extremadamente sencillo, vamos a ver lo facil que es crear una aplicacion java con las operaciones basicas CRUD .

Instalamos Maven 2, Java 5 y Mysql .(creo que esto no hace falta explicarlo)

Instalamos appfuse en la modalidad mas sencilla empleando para la presentacion JSF (el resto de combinaciones se pueden ver aquí):

mvn archetype:create -DarchetypeGroupId=org.appfuse -DarchetypeArtifactId=appfuse-basic-jsf -DremoteRepositories=http://static.appfuse.org/repository -DarchetypeVersion=2.0-m5 -DgroupId=com.mycompany.app -DartifactId=myproject


Sustituimos com.company.app por el paqquete que queramos y myproject igual.
Ahora generamos con maven todo lo necesario para empezar a desarrollar desde eclipse, nos situamos en el directorio myproject recien creado:

$ mvn integration-test (nos bajamos los jars necesarios y pasamos los tests)
$ mvn jetty:run-war (probamos la simple aplicacion accesible a través de http://localhost:8080)
$ mvn install eclipse:eclipse (instala lo necesario para que el eclipse se entere del proyecto .project y .classpath entre otros)
$ mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo  (para que el eclipse reconozca la variable M2 del appfuse, es necesario ejecutar esto indicando el workspace de nuestro eclipse ~/workspace).Mas aquí.


Ahora que tenemos la base instalada, ya desde el eclipse importamos el proyecto:
File > Import > Existing Projects into Workspace

Empezamos a desarrollar un nuevo POJO llamado Persona con todo lo que le rodea (Modelo, Servicio y Web):
Creamos el paquete com.mycompany.app.model y dentro de el la clase Persona que extiende BaseObject:

package com.mycompany.app.model;
 
import org.appfuse.model.BaseObject;
 
import javax.persistence.Entity;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.Column;
 
public class Persona extends BaseObject {
    private Long id;
    private String firstName;
    private String lastName;
 
    /*
     Generate your getters and setters using your favorite IDE:
     In Eclipse:
     Right-click -> Source -> Generate Getters and Setters
    */
}


Sobre la persistencia tenemos toda la info aqui.
Añadimos anotaciones para Hibernate: Entity identifica la clase con la tabla:

@Entity
public class Persona extends BaseObject {

Ahora indicamos cual es la PK (Primary Key) y como se generará:

@Id @GeneratedValue(strategy = GenerationType.AUTO) 
public Long getId() {
    return this.id;
}


El resto de campos se declaran con la anotacion Column:

@Column(name="first_name", length=50)
public String getFirstName() {
    return this.firstName;
}
...
@Column(name="last_name", length=50)
public String getLastName() {
    return this.lastName;
}


Con esto ya tenemos creado nuestro Pojo Persona, ahora mapeamos esta clase dentro del archivo de configuracion de Hibernate (src/main/resources/hibernate.cfg.xml):

<mapping class="com.mycompany.app.model.Persona"/>


Ahora si ejecutamos el siguiente comando maven, genera la tabla de la base de datos asociada a este POJO:

$ mvn compile hibernate3:hbm2ddl


Finalmente para que se genere la capa de servicio y las paginas web ejecutamos:

$ mvn appfuse:gen -Dentity
$ mvn appfuse:install -Dentity

Y probamos la aplicacion en la pagina http://localhost:8080 publicando el resultado con Jetty:
$ mvn jetty:run-war


Como diría Matt Raible ...

Yeah Baby, Yeah:

BUILD SUCCESSFUL
Total time: 9 seconds



by coffman - 00:24:31 |

:: Next Page >>


CoffMan Site


Since July 2002
Victor Fariña Infante (aka CoffMan) creator of wIckle.com