jueves, abril 19, 2012

Instalar y usar Subversion (SVN) en modo local en Windows e integración en Eclipse

Trabajando en casa en mis últimos proyectos de programación, echaba en falta un sistema de control de versiones para mi código fuente y usarlo de forma local en mi ordenador, es decir, sin disponer de un servidor externo que haga las veces de repositorio.

Como sabéis hay varios sistemas: CVS, Subversion, etc...

Me he decidido por Subversion (SVN). Como lo quiero instalar en una máquina Windows, he usado la versión binaria publicada aquí, desde donde se puede descargar.

Una vez descargada, la ejecutamos e instalamos. Ahora hay que crear los repositorios, para ello:

  • Abrimos una consola (Menú inicio -> Ejecutar -> CMD).
  • Creamos una carpeta de repositorio, yo por ejemplo la he creado en la raíz de la unidad C:
    • cd \
    • mkdir svnrepo
    • cd svnrepo
  • Ahora crearemos una carpeta en el repositorio para los proyectos. En mi caso como voy a guardar proyectos java, creo una con ese nombre:
    • svnadmin create java
Ya hemos acabado la primera fase. Ahora procedemos a realizar la integración con Eclipse. Yo utilizo la versión en desarrollo (4.2 M6), aunque esto también funciona para la última rama estable actual (3.7.x).

Necesitamos instalar el plugin Subclipse. Desde la web, en la sección Download and Install obtenemos las url necesarias para su instalación en Eclipse, vienen denominadas como "Eclipse update site URL". Pues bien, en mi caso, voy a instalar la última disponible, que corresponde a la versión 1.8.x, y su url es: http://subclipse.tigris.org/update_1.8.x

Con esa url, abro eclipse y hago lo siguiente:
  • Pincho en Help -> Install New Software.
  • Presiono el botón ADD
  • Pongo lo siguiente en los campos:
    • Name: Subclipse
    • Location: http://subclipse.tigris.org/update_1.8.x
  • Presiono OK
  • Marco los paquetes que se recuperan del servidor y procedemos a su instalación.
  • Eclipse se reiniciará.
Ahora ya podemos poner los proyectos que queramos en el repositorio. Para ello, pinchamos con el botón derecho en el título del proyecto que queramos dentro del navegador de paquetes de eclipse (en mi caso columna de la izquierda - Package Explorer) y seleccionamos: Team -> Share Project

Saldrá una ventana que nos ofrece la posibilidad entre usar CVS y SVN. Seleccionamos SVN y le damos a continuar (Next).

Ahora la aplicación nos ofrece la posibilidad entre usar un repositorio existente (si es que tenemos) o crear uno nuevo. En nuestro caso dado que estamos creando uno nuevo, optaremos por la crear uno nuevo (Create a new repository location). Le damos a Next.

Ahora nos pide la URL del repositorio. Como estamos usando un repositorio local, utilizaremos el protocolo file:// e introduciremos el path completo hasta el repositorio. En mi caso tengo que introducir: file:///C:/svnrepo/java

El proyecto se creará en el repositorio, puede que eclipse quiera cambiar el modo de vista a colaborativo; yo prefiero no cambiarlo.

Ahora hay que decidir qué carpetas introducimos. Por ejemplo la de las fuentes de las aplicaciones, en mi caso src. Para ello pincho con el botón derecho en la carpeta y le damos a Team -> Commit.

Ponemos un comentario y aceptamos el commit. Ya disponemos de esas carpetas en el repositorio y podemos agregar versiones nuevas, comparar con antiguas y todas las ventajas que ofrece un sistema de control de versiones como SVN. A partir de aquí recomiendo leer un poco la documentación de SVN para los que no hayáis trabajado con él previamente.



miércoles, septiembre 28, 2011

Capturas de pantalla en Android

Recientemente he averiguado cómo hacer capturas de pantalla en mi Samsung Galaxy S. Tengo Gingerbread, pero supongo que funciona también en Froyo. El sistema es simple: mantener pulsada la tecla de retroceso y presionar el botón home (el central).
Esto no es nuevo, pero lo pongo por aquí para tenerlo localizado.

domingo, septiembre 25, 2011

Facebook y los permisos para Android

No soy un usuario especialmente intenso de la red social Facebook, pero bueno, la uso algo como bastantes millones de persona para mantener cierto contactos.

Desde que tengo un teléfono móvil con el sistema Android me instalé la aplicación oficial de Facebook desde el Android Market. Eso lo hice cuando la versión publicada era anterior a la 1.6. De hecho, estuve actualizando hasta la 1.5.4.

La aplicación ha funcionado siempre bien, algunos usuarios han reportado ciertos problemas, pero no ha sido mi caso.

La versión 1.5.4 requería una serie de permisos que hasta cierto punto tenían cierta lógica, por lo cual me la instalé sin problemas.

Esto cambio con la llegada de la versión 1.6 hasta la actual publicada 1.7.1. Estas versiones solicitan permisos muy intrusivos, como son los siguientes:
SERVICIOS POR LOS QUE TIENES QUE PAGAR
ENVIAR MENSAJES SMS
Permite que la aplicación envíe mensajes SMS. Es posible que tengas que pagar por los mensajes que las aplicaciones malintencionadas envíen sin tu confirmación.
TUS MENSAJES
EDITAR SMS O MMS
Permite que la aplicación escriba en mensajes SMS almacenados en el dispositivo o en la tarjeta SIM. Las aplicaciones malintencionadas pueden borrar los mensajes.
RECIBIR SMS
Permite que una aplicación reciba y procese mensajes SMS. Las aplicaciones malintencionadas pueden controlar los mensajes o eliminarlos sin mostrarlos al usuario.
LEER SMS O MMS
Permite que la aplicación lea mensajes SMS almacenados en el dispositivo o en la tarjeta SIM. Las aplicaciones malintencionadas pueden leer los mensajes confidenciales.


Es decir, la aplicación solicita permisos para enviar mensajes sms o mms (que podrían tener coste) así como para recibir nuestros sms y leerlos.

¿Razones?: No se sabe. No han publicado para qué requieren esos permisos. Puede ser para nada o para recabar aún más información de los usuarios. Es decir, al tener conexión a internet, la aplicación podría estar enviando a las bases de datos de Facebook el contenido de nuestros mensajes, que dependiendo ya de cada uno le importará más o menos, pero afecta a la privacidad.

No estoy diciendo que la aplicación lo haga, pero tampoco que no, puesto que no lo aclara. Yo desde luego soy muy reticente a instalar aplicaciones que soliciten esos permisos, sean o no publicadas por fuentes oficiales como puede ser Facebook. Me parece una invasión a la privacidad y una falta de decoro con sus usuarios solicitar ese tipo de permisos, máxime sin explicar al menos para qué los requiere, puesto que no veo ninguna razón para ello más allá que extraer información adicional de sus usuarios.

Por tanto, llevo sin actualizar desde la versión 1.5.4, la última sin estos permisos que he comentado y que, por cierto, sigue funcionando correctamente.

Muchas personas que conozco le da poca importancia a los permisos. Yo en cambio se la doy, y me gustaría concienciar al resto de personas para que se la de y no instalen aplicaciones como ésta hasta que eliminen este tipo de permisos y prácticas. Así como exigir a los desarrolladores que se abstengan de realizar aplicaciones donde se abusen de los permisos y cuiden a sus usuarios.

Y lanzo una pregunta, ¿no le dais importancia a la gestión que puedan hacer de vuestros datos las aplicaciones? ¿Os parece bien que Facebook requiera estos permisos sin dar explicación?

sábado, junio 18, 2011

Compresores de ficheros

Llevo viendo durante bastante tiempo que mucha gente utiliza soluciones como Winrar y otros que son aplicaciones propietarias.
Esto no está mal en si. Lo único que normalmente estas aplicaciones si no pagas la licencia te muestran publicidad o mensajes recordándote contínuamente que compres el software.
Yo prefiero usar otras soluciones 100% gratuitas como el formato 7z que comprime tanto o más que el rar. Para ello utilizo la aplicación 7-zip que podéis descargar en http://www.7-zip.org. Admite casi cualquier formato comprimido para descomprimir. Comprime a 7z y zip.

miércoles, abril 13, 2011

Solución al error de instalación de KB2446704 en Windows XP

En la entrada anterior comenté que he tenido dos problemas con la última actualización para XP SP3 mediante Windows Update. Habiendo resuelto la primera, quedaba por resolver el problema correspondiente a KB2446704 (De Microsoft .NET 2.0 SP2 y 3.5).

Opero de la misma forma que antes. Descargo directamente el paquete KB2446704 desde los servidores de Microsoft, en mi caso el archivo NDP20SP2-KB2446704-v2-x86.exe.

Ejecuto el archivo y comienzo el proceso de instalación, que acaba en error, diciendo “Error grave durante la instalación”. Pincho de nuevo en el botón “Ver el archivo de registro” para ver el log de la instalación.

Abriendo el registro obtengo el siguiente error:

Returning IDOK. INSTALLMESSAGE_ERROR [El instalador encontró un error inesperado al instalar este paquete. Esto puede indicar un problema con este paquete. El código de error es 2721. ]

En el registro también aparece un enlace a un fichero de texto Msi Log, el cual abro. Buscando errores (Error, Failure,…) veo líneas que apuntan a errores aplicando parches, encontrando versiones de ficheros diferentes a las esperadas.

Al no encontrar errores de permisos u otros fallos obvios me decido a desinstalar los paquetes de .NET relacionados con la actualización. Por tanto, me voy al panel de control, agregar o quitar programas y busco todas las actualizaciones relacionadas con lo siguiente:

  • .NET 2.0
  • .NET 3.0
  • .NET 3.5

Las desinstalo todas, una a una.

Una vez concluida la instalación abro Windows Update de nuevo. Y me muestra una instalación para .NET 3.5. Esta vez se instala sin problemas.

Cierro Windows Update y lo vuelvo a abrir, me muestra ahora varias actualizaciones relacionadas con .NET, algunas de alta prioridad y otras opcionales.

Aplico las de alta prioridad, que son para los .NET que he eliminado y le doy a instalar. La instalación finaliza con éxito.

Vuelvo a reiniciar Windows Update para aplicar las actualizaciones opcionales de .NET, son básicamente para incluir ficheros de idiomas. Esta vez me muestra dos grupos de opcionales. El primer grupo es más moderno e incluye las actualizaciones del segundo, por tanto me decido por este. Le doy a instalar y lo hace correctamente.

Abro de nuevo Windows Update y compruebo que ya no hay más actualizaciones pendientes.

De esta forma he resuelto el problema de instalación.

Solucionando errores de actualizaciones de Windows

Hoy me he encontrado con una serie de actualizaciones disponibles para Windows XP. En fin, utilizo WindowsUpdate y comienza la instalación, sin embargo me devuelve un error de instalación en las siguientes:

  • KB2446708 : Actualización de seguridad para Microsoft .NET Framework 4
  • KB2446704 : Actualización de seguridad para .NET Framework 2.0 SP2 y 3.5 SP1 en Windows Server 2003 y Windows XP x86

El instalador de WindowsUpdate no devuelve ninguna información relevante sobre el error, y tras hacer varios intentos opto por realizar la instalación a mano y resolver los problemas uno a uno. Lo comparto por si es de utilidad a otras personas.

Investigo el log de la instalación, ubicado en C:\WINDOWS\, en un archivo llamado WindowsUpdate.log, donde encuentro una línea que hace referencia al paquete que estaba instalando avisando de Errer (Installation Failure) y con código de error 0x80070643. Pues bien, vamos a buscar una solución a ese error.

Empiezo solucionando el primer error, el de KB2446708.

Lo primero que hago es bajarme el paquete KB2446708 directamente de la web de Microsoft. Como tengo Windows XP, opto por el archivo NDP40-KB2446708-x86.exe.

Ejecuto la instalación y me devuelve el mismo error. Una vez que devuelve el error el instalador, aparece una pantalla en la que te da la posibilidad de acceder al log de registro (archivo de registro) de la instalación, que va a ser uno de los ficheros que le envíe a Microsoft para informarles del fallo en el caso de que decidamos enviarlo. Abro el archivo (que se abre en un navegador) y marco todos las opciones de Message Types (Errors, Verbose, Messages) y Message Details (Date Time) que ofrece. Desplazándome por el texto del log, encuentro un texto resaltado en rojo claro, el cual incluye el primer error. En este caso se puede leer lo siguiente:

4/13/2011, 11:57:44] Returning IDOK. INSTALLMESSAGE_ERROR [No se puede abrir la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security\ServiceModel 4.0.0.0. Compruebe que dispone de suficientes derechos de acceso a esa clave o póngase en contacto con el personal de soporte técnico. ]

Bien, ya tenemos identificado el error en ese paquete, se trata de un fallo de permisos en el registro de windows. La solución es sencilla:

  • Inicio->Ejecutar->regedit (esto último tengo que teclearlo)
  • En el registro voy buscando en el árbol la clave que cita el error: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security\ServiceModel 4.0.0.0.
  • Pincho con el botón derecho del ratón y selecciono la opción Permisos.
  • En la pestaña de seguridad, compruebo que el único grupo de usuarios que aparece es SYSTEM, lo cual indica que no hay permisos de administrador y es lo que causa el fallo.
  • Pincho en el botón Agregar y tecleo el nombre Administradores. Pulso aceptar.
  • Ahora en el panel de Permisos de Administradores marco los checkboxes de Permitor en los permisos “Control Total” y “Leer”. Pulso en aceptar.
  • Con esto ha quedado solucionado el error detectado y por tanto ya puedo cerrar la pantalla del registro.

Ahora vuelvo a arrancar el instalador de la actualización KB2446708. Esta vez la instalación acaba con éxito.

Más adelante publicaré cómo resolver el siguiente error.

lunes, enero 10, 2011

Insertar capturas de documentos PDF en el editor de textos

Si queremos insertar el contenido de una página de un pdf en un documento de texto (por ejemplo en OpenOffice o Microsoft Word) podríamos pensar en hacer sencillamente una captura de pantalla del documento, recortar y pegar dentro de nuestro editor de textos.

Si lo que estamos pegando es una imagen, el resultado es aceptable, sin embargo, si el resultado contiene textos, a la hora de imprimir los caracteres no se ven bien, obteniendo una impresión con una resolución pobre.

Para obtener un mejor resultado será necesario hacer una conversión a PostScript encapsulado (fichero eps).

Para ello se puede utilizar GIMP para realizar el procesado (aplicación que, para el que no la conozca, puede conseguir en www.gimp.org).

Después de instalarlo, es preciso configurarlo para habilitar su soporte a PostScript, para ello es necesario instalar GhostScript en el ordenador.

Yo en concreto he utilizado la versión 8.64 para Windows, que se puede descargar en la siguiente dirección: http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm

La versiones más modernas también deben funcionar correctamente siguiendo esta guía, aunque no las he probado.

Una vez descargado, lo instalamos.

Ahora es necesario configurar las variables de entorno para que Gimp tenga reconozca a GhostScript. En concreto hay que definir la variable GS_PROG apuntando a la ruta donde se encuentra el ejecutable de GhostScript.

Si estamos en Windows, lo podemos hacer así:
  • Abrir el panel de control
  • Doble Click en Sistema
  • Seleccionar la pestaña Opciones Avanzadas
  • Hacer click en el botón Variables de entorno
  • En el panel inferior (Variables de sistema) presionamos el botón "Nueva".
  • En nombre de la variable introducimos: GS_PROG
  • En valor de la variable introducimos la ruta de dónde se encuentra el ejecutable de GhostScript. En mi caso es el siguiente: C:\Archivos de programa\gs\gs8.64\bin\gswin32.exe
  • Presionamos en todos los botones de Aceptar hasta que volvamos al Panel de Control.
  • Ya está listo.
Ahora ya podemos arrancar el Gimp y abrir un fichero pdf. Si tiene varias hojas habrá que seleccionar cuál abrir.

Una vez hecho todo el procesado que queramos (cortar, alinear, etc...) basta con guardar los cambios como un fichero con extensión .eps.

Ese fichero ya puede insertarse en el editor de textos sin pérdida de resolución.

Nota: si en alguno de los pasos el programa solicita una resolución, recomiendo meter un valor al menos igual a 300, para tener una impresión de calidad.

Espero que os sea de ayuda.