Luis Felipe Giraldo en Facebook Luis Felipe Giraldo en LinkedIn Suscribirse a este Blog

martes, 17 de marzo de 2009

No se puede copiar/mover 'XXX.svn-base' a 'XXX.tmp': El Sistema no puede hallar el archivo especificado.

Hoy tuve uno de esos problemas que te "sacan un ojo" porque son una tontería, y por lo mismo no encuentras solución fácilmente. Este error que en inglés es "Can't copy / move 'XXX.svn-base' to 'XXX.tmp': The system cannot find the file specified" y que te impide hacer checkout de tu proyecto, surge por la sencilla razón de que existen 2 archivos con el nombre igual, pero que uno de ellos difiere en mayúsculas y minúsculas. Como Windows no es "Case Sensitive", se genera este mensaje de error que nada tiene que ver la realidad.

Gracias a este post, pude hacer checkout y continuar con mi trabajo normalmente, claro, luego de perder unas cuántas horas.

viernes, 6 de marzo de 2009

Error con Xerces

Durante el desarrollo de Snoits, me encontré con el desagradable problema del error org.apache.xerces.dom.DeferredDocumentImpl.normalizeDocument()V al momento de utlizar Facebook Connect.

Mirando la documentación de Glassfish encontré que se podía solucionar agregando la siguiente línea en el archivo domain.xml

-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl


Efectivamente esto solucionó el problema con Facebook Connect pero generó otro con paypal. Luego de investigar un poco encontré que el error se produce por la librería "xerces.jar" que viene incluida en la distribución de paypal.

Luego de actualizarla con esta versión (2.9.1), se solucionaron ambos problemas.

jueves, 5 de marzo de 2009

X-Deep/32 y Putty

Muchas veces es necesario acceder remotamente a un servidor, sin embargo es normal que se pierda la práctica con las líneas de comandos.

Para muchos es más práctico configurar cosas por medio de interfaces gráficas. Pues gracias a Putty y X-Deep/32 es posible por medio de SSH.

En esta página está muy bien explicado.

Con esta "fórmula" pude solucionar el problema que se presentaba cuando intentaba instalar Glassfish por medio de una consola, pero la licencia se mostraba de forma gráfica y me generaba un error.

Instalar Glassfish para Linux en Modo Consola

Gracias a la amable ayuda que nos ha brindado Walmeric, hoy he tenido que instalar Glassfish en un servidor remoto por medio de SSH.

Lo primero fue obviamente descargarlo. Para ello solo basta escribir el comando

wget http://java.net/download/javaee5/v2.1_branch/promoted/Linux/glassfish-installer-v2.1-b60e-linux.jar


Una vez descargado, ejecuté el comando
java -Xmx256m -jar filename.jar


Esto genera una carpeta llamada "glassfish".

Posteriormente dentro de la carpeta generada hay que ejecutar el comando
ant -f setup.xml


Es posible que tu equipo no tenga instalado ANT. En la documentación de glassfish dice que lo puedes ejecutar directamente desde la carpeta con el comando:
% lib/ant/bin/ant -f setup.xml 


Esto no lo probé. Simplemente instalé ANT que ya explicaré cómo en una entrada posterior.

También tuve un pequeño problema al momento de instalar ya que la licencia me pedía interfaz gráfica. Para solucionarlo utilicé X-Deep/32 y Putty para acceder remotamente al X-server. También lo explicaré en una entrada posterior.

Esta ayuda la encontré en el blog de Ken Kranz y en Glassfish Community.

ACTUALIZACIÓN: Tuve un error de memoria con Ant que solucioné con el siguiente comando:
export ANT_OPTS=-Xmx256m

martes, 17 de febrero de 2009

TinyMCE: Botónes Básicos

TinyMCE es un gran editor WYSIWYG (What You See, Is What You Get) en javascript. Sin embargo, es posible que en nuestra aplicación no sean necesarias tantas funciones.

Un ejemplo de un editor de texto con funciones básicas sería el siguiente:





Aquí se puede ver que el "mode" es "exact". Esto quiere decir que solo incluirá los botones que le indiquemos, en este caso bold, italic, underline, etc.

De esta forma, es posible personalizar tanto como se quiera la barra, evitando que el usuario pueda llegar a perderse entre tanta función.

Gracias a Subesh por la información.

jueves, 15 de enero de 2009

Compilar Varios Módulos GWT con Netbeans

Al utilizar el plugin de GWT para Netbeans, se crean automáticamente los scripts de ANT para compilar y empaquetar la aplicación. Sin embargo, esto solo aplica para un módulo. Si se agrega un nuevo módulo, éste no es compilado. Luego de buscar un poco por la red, no logré encontrar una explicación de cómo hacerlo de forma automática desde Netbeans. Por tal motivo, tuve que "picar" manualmente los scripts con el fin de automatizar la tarea.

Para ello, agregué dos definiciones de variables en el archivo gwt.properties ubicado en la carpeta "nbproject".

Esta definición es la siguiente:


gwt.module2=com.snoofing.gwt.UserPrivateArea
gwt.output.dir2=/com.snoofing.gwt.UserPrivateArea


Luego en el archivo build-gwt.xml dentro del tag dupliqué las etiquetas de java, property y move. Es decir, como se muestra a continuación.


classname="com.google.gwt.dev.GWTCompiler" fork="true">















Como verán, el "build.web.dir" es el mismo, sin embargo, cambia el "gwt.output.dir".
Esto lo apliqué para los demás módulos nuevos.

Es importante recordar que este archivo se reconstruye cada vez que cerramos Netbeans. Por lo tanto, hay que reescribirlo a menudo. En mi opinión es una forma "chapucera" de solucionarlo, pero funcionó. Por lo menos, dejé de perder tiempo intentando hacerlo directamente con una función de Netbeans. :p

Si alguien conoce una mejor forma... bienvenida!!

Disminuir tiempo de compilación en GWT

Aquellos que programan en GWT, encontrarán que a medida que aumenta el tamaño de la aplicación también aumenta el tiempo de compilación.

Esto se debe a que GWT genera automáticamente los scripts necesarios para hacer compatible la aplicación con la mayoría de navegadores. Sin embargo, en tiempo de desarrollo normalmente se utiliza únicamente uno de ellos, en mi caso, Firefox.

Para disminuir sustancialmente este tiempo, basta con agregar la siguiente línea en tu archivo "nombreModulo.gwt.xml"

  


En"value" además puedes poner los valores: ie6, gecko, gecko1_8, safari, opera

Gracias a Yekmer por la información, que a su ves la tomó de Olivier