Maven

Si tienes un proyecto maven multi-módulo y quieres construir solamente uno de los submódulos, puedes utilizar las opciones avanzadas del reactor, más concretamente:

  • -pl, –projects
    Construye solamente los proyectos del reactor especificados en vez de construir todos
  • -am, –also-make
    Si se especifica una lista de proyectos, también se construyen los proyectos requeridos por la lista

Así, si nos situamos en el el directorio P del proyecto padre y ejecutamos:

mvn install -pl B -am

esto construirá B y los módulos requeridos por B.

via

adb-installation
NOTA: Para poder realizar estas acciones tu dispositivo debe estar rooteado.

Si olvidaste habilitar el modo desarrollador y el adb no está ejecutándose, realiza lo siguiente:

  • Reinicia tu dispositivo en modo recovery
  • Conéctalo al PC utilizando el cable USB
  • Abre un terminal
  • Si ejecutas adb devices deberías ver el dispositivo en la lista. Si es así, ejecuta:adb shell mount /system
    abd shellecho "persist.service.adb.enable=1" >> default.prop
    echo "persist.service.debuggable=1" >> default.prop
    echo "persist.sys.usb.config=mtp,adb" >> default.prop
    echo "persist.service.adb.enable=1" >> /system/build.prop
    echo "persist.service.debuggable=1" >> /system/build.prop
    echo "persist.sys.usb.config=mtp,adb" >> /system/build.prop

    Ahora, si reinicias tu teléfono android te dirá “oh, tu adb se está ejecutando pero, por favor, pulsa este botón Aceptar para que confiemos en tu PC“. Como no queremos siquiera que nos pregunte, haremos lo siguiente (asumiendo que ya hemos salido del modo shell de adb, sino, antes escribe exit):

    cd ~/.android
    adb push adbkey.pub /data/misc/adb/adb_keys

  • Listo! Ahora simplemente reinicia el teléfono y deberías ser capaz de tener acceso adb

vía

Terminal

Supongamos que queremos cambiar el UID (USER ID) y el GID (GROUP ID) para todos los ficheros y directorios de un usuario.  El procedimiento es muy sencillo:

  1. Primero, asigna un nuevo UID al usuario usando el comando usermod.
  2. Segundo, asigna un nuevo GID al grupo usando el comando groupmod.
  3. Finalmente, utiliza los comandos chown y chgrp para cambiar los antiguos UID y GID respectivamente.  Puedes automatizar este proceso con la ayuda del comando find.

Por seguridad, es importante hacer una copia de seguridad de tu sistema antes de hacer esto.

Supongamos que tenemos:

  1. Nombre de usuario: foo
  2. Viejo UID de foo: 1005
  3. Nuevo UID de foo: 2005
  4. Nombre de grupo de usuario: foo
  5. Viejo GID de foo: 2000
  6. Nuevo GID de foo: 3000

Comandos:

Para asignar un nuevo UID al usuario llamado foo, escribe:
# usermod -u 2005 foo

Para asignar un nuevo GID al grupo llamado foo, escribe:
# groupmod -g 3000 foo

Tan pronto como como escribes los anteriores comandos, todos los fichero ubicados en el directorio home del usuario tendrán el UID cambiado automáticamente.  Sin embargo, los ficheros que se encuentran fuera del directorio home del usuario tendrán que ser cambiados manualmente.  Para cambiar manualmente fichero con los viejos GID y UID respectivamente, escribe:
# find / -group 2000 -exec chgrp -h foo {} \;
# find / -user 1005 -exec chown -h foo {} \;

El comando -exec ejecuta el comando chgrp o chmod en cada fichero.  La opción -h pasada al comando chgrp/chmod afecta a cada enlace simbólico en vez de a cualquier fichero referenciado.

vía

javalogo

Desafortunadamente la JDK no está disponible como un zip portable para Windows.  Sin embargo, para tener una versión portable puedes seguir esto pasos:

  • Crea un directorio JDK de trabajo (en este caso C:\JDK)
  • Descarga la última versión de la JDK de la página de Oracle (por ejemplo jdk-7u7-windows-x64.exe)
  • Descarga e instala 7-Zip (o descarga la versión 7-Zip portable si no eres administrador)
  • Extrae con 7-Zip todos los fichero de jdk-XuXX-windows-x64.exe en el directorio C:\JDK
  • Ejecuta los siguiente comandos en cmd.exe:
    • cd C:\JDK\.srcs\JAVA_CAB10
    • extract32 111
  • Desempaqueta C:\JDK\.rsrc\JAVA_CAB10\tools.zip con 7-zip
  • Ejecuta los siguientes comando en cmd.exe:
    • cd C:\JDK\.rsrc\JAVA_CAB10\tools\
    • for /r %x in (*.pack) do .\bin\unpack200 -r "%x" "%~dx%~px%~nx.jar"
      (esto convertirá todos los ficheros .pack en fichero .jar)
  • Copia todo el contenido de C:\JDK\.srcs\JAVA_CAB10\tools a donde quieras que esté tu JDK
  • Establece manualmente las variables JAVA_HOME y PATH para que apunten a tu directorio JDK y su subdirectorio BIN

NOTA:  En las últimas versiones de la JDK, al descomprimir el dichero jdk-XuXX-windows-x64.exe con el 7-Zip, directamente nos aparece el dichero tools.zip (no hay que ir al directorio .srcs\JAVA_CAB10 y ejecutar el extract32).

vía

jpa-mini-logo

Introducción

Supongamos que tenemos las siguientes tablas con sus correspondientes relaciones:

tablas

Leer el resto de esta entrada »

jpa-mini-logo

Introducción

Cuando se introdujo JPA 2 en el 2009, incluía la nueva criteria API. El propósito de este API era alejarse del uso de los strings JQL (JPA Query Language) en tu código. Aunque JQL parece una buena idea para “apalancarte” en tus conocimientos de SQL, en el mundo de la OO (Orientación a Objetos) tiene una grave desventaja: no existe la comprobación de las query strings en tiempo de compilación. La primera vez que tienes constancia de algo mal escrito o sintácticamente incorrecto en tu query string es en tiempo de ejecución. Esto puede hacer que baje mucho el rendimiento si los desarrolladores tienen que corregir, compilar y redesplegar para continuar.

Los test unitarios pueden ayudar a solucionar este problema pero un área donde no ayudan los test unitarios es en la refactorización. La mayoría de las herramientas de refactorización no se llevan bien con las cadenas de texto y acabas teniendo que ejecutar de nuevo los test y teniendo que corregir manualmente cada string en cada iteración de test hasta que todo está correcto.

Con la JPA Criteria API es posible tener consultas type safe (con comprobación de tipado) que se comprueben en tiempo de ejecución y que permitan una refactorización mucho más eficiente.

Leer el resto de esta entrada »

hibernate_logo

Cuidado con usar SQL Queries con Hibernate

Como nuevo usuario de Hibernate, te puede sorprender agradablemente ver que soporta la ejecución de consultas SQL mediante el método createSQLQuery() del objeto Session de Hibernate.

Inicialmente parece beneficioso utilizar las viejas y sencillas sentencias SQL para generar las consultas en tus DAO’s. Después de todo, ya conoces SQL, así que porque perder el tiempo aprendiendo HQL (Hibernate Query Language) o el Hibernate Criteria API. Además, con SQL podemos probar fácilmente las consultas en herramientas de edición de base de datos como DBVisualizer y en el caso “raro” de que lo pudiera necesitar, un DBA no familiarizado con Hibernate podría mantener y mejorar mis consultas de un modo sencillo.

Parece la solución.

Leer el resto de esta entrada »

A %d blogueros les gusta esto: