miércoles, 29 de febrero de 2012

Ver la versión de PostgreSQL que usamos

Si queremos saber el número de versión que estamos usando  de PostgreSQL, tenemos que ejecutar el siguiente comando desde el promt:

psql --version
Veremos algo así, donde se nos indica el número de versión que estamos usando

lunes, 27 de febrero de 2012

Dar formato a un botón en #Android con un Shape Drawable

Mediante un shape podemos darle formato y manejar muchas de las propiedades de un botón. Entre ellas el color de fondo, de los bordes, la redondez de los bordes, el degradado del color de fondo, etc.

viernes, 24 de febrero de 2012

Perder una tarde por "R cannot be resolved" en Eclipse #Android

Posteo esto para que si le pasa a alguien que no pierda toda la tarde como me ha pasado a mi. Si de repente te sale un fallo en el Activity principal diciendo que no encuentra el main.xml, mostrando algo así como "R cannot be resolved" y un montón de petes el el archivo java principal, es por algún fallo dentro de los archivos .xml del /res. Buscar y revisar dentro de ellos que todos los "<", ">" y todas las letras están bien escritas.

El fallo en Eclipse muestra algo como en la imagen abajo y me pasó que no daba fallo en ninguno de los .xml. Pasé media tarde buscando lo que sucedía hasta que en la biblia http://stackoverflow.com pude encontrar un hilo hablando de ello.
http://stackoverflow.com/questions/885009/r-cannot-be-resolved-android-error



Espero que os sirva y no perdáis una preciosa tarde como me ha pasado a mi.

LIBRO RECOMENDADO PARA APRENDER ANDROID

Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier




martes, 21 de febrero de 2012

Como importar una máquina virtual .vmdk obtenida de una máquina física.

Si recordáis, en este post hacíamos una máquina virtual de un servidor Windows 2003 Server. Ahora lo que queremos es poner esa máquina en funcionamiento. Para ello no vamos a usar VMware sino que usaremos la herramienta de Oracle para virtualización. Esta es Oracle VirtualBox, también es de libre distribución y se puede descargar de aquí. Yo en mi caso, me bajé la versión para Windows. El proceso de instalación, sino queremos cambiar la ruta o no instalar todos los componentes, es el tipico siguiente, siguiente, etc.


jueves, 16 de febrero de 2012

Virtualizar una máquina física con Windows 2003 Server

Hoy me han pedido en el trabajo que haga una operación en el servidor con la que no me siento cómodo, así que voy a hacer una virtualización de la máquina física, en este caso Windows 2003 Server, para así instalarmela en mi ordenador, hacer las pruebas que tocan y si no se jode nada repetir el procedimiento en la máquina que tengo que hacerlo.
Para poder virtualizar una máquina física yo uso VMWare Converter. Actualmente la versión que te bajas de su web gratuitamente es la 5. La web es http://www.vmware.com/products/converter/, te descargas y dependiendo del SO que quieras virtualizar eliges una u otra. Para sistemas Windows, tenemos que seleccionar la que vemos en la imagen siguiente:


miércoles, 15 de febrero de 2012

Colecciones de iconos gratuitas para #Android

Buscando iconos para Android encontré un buen samaritano que tiene varias colecciones y que distribuye de forma gratuita. Se pueden usar tanto en aplicaciones gratuitas como en comerciales y en algunas de las colecciones no exige que se le enlace. Ese es el caso de las siguientes 12.


Tiene otras muchas colecciones y en ellas solamente pide que se le ponga un enlace  a su web. Echadle un vistazo, hay muchas colecciones, muy variadas y algunas espectaculares como estas o estas.

LIBRO RECOMENDADO PARA APRENDER ANDROID

Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier




Distribución de versiones de Android usadas actualmente

Google tiene una web donde nos muestra cuales son las versiones de Android que han accedido al Market en los últimos 14 días. En ella van publicando el tanto por ciento de cada una de las distintas versiones con respecto del resto.
A fecha 1 de Febrero de 2012 la más extendida es la 2.3.3, versión perteneciente al grupo llamado Gingerbread.
Debe de ser tenido muy en cuenta para la aplicación que intentemos desarrollar pueda ser empleada en el mayor número posible de dispositivos.
Los gráficos que muestran los pongo más abajo y el enlace a la web aqui.




LIBRO RECOMENDADO PARA APRENDER ANDROID

Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier




Página de Goolge para aprender sobre diseño en Android

Google nos ayuda a aquellos que estamos empezando a la hora de realizar el diseño de nuestras aplicaciones en Android con la creación de una página Web donde indican como orientar nuestros diseños para que sean los mas visibles y funcionales posible.
En ella explican como distribuir botones, el uso de pestañas, colores a emplear, tamaño de botones, tipo de unidades a usar para el tamaño y un sin fin de cosas más.
Es muy recomendable consultarla antes de subir nada al Market!
Aquí os dejo el enlace y unas capturas de pantalla.





viernes, 10 de febrero de 2012

Actualizar numero de secuencia a un valor deseado #PostgreSQL

Si tenemos que restablecer un número de secuencia en PostgreSQL en cualquier valor que deseemos, tenemos que usar la expresión ALTER SEQUENCE.
Si por ejemplo queremos cambiar la secuencia mi_seq al valor 69 usamos;

ALTER SEQUENCE mi_seq RESTART WITH 69;
Otro apunte que luego nunca me acuerdo de estas cosas! Y aquí el enlace a la documentación oficial.

jueves, 9 de febrero de 2012

#Chrome para #Android muy pronto en Beta

Muy pronto va a estar disponible en Beta Chrome para Android, el navegador de Google para la Web en versión móvil. Yo la verdad que uso Firefox en el PC, tanto en Linux como en Win. Lo tengo con el plug-in de delicious y la verdad que encantado. Pero las maravillas que cuentan de él los desarrolladores tendremos que probarlas en el móvil porque la verdad es que promete.

Según lo que comentan en su canal en Youtube destacan:
  • Múltiples (ilimitadas) pestañas que se cargan solo con desplazar el dedo hacia derecha o izquierda. Eso le da 100 vueltas al navegador que lleva por defecto mi HTC Desiree. Además, gracias a la aceleración por hardware, el cambio entre ventanas será mediante una animación que hará que el usuario no se pierda, no abriendo las pestañas de forma instantánea.
  • Solo con empezar a escribir ya empieza a cargar y renderizar las páginas que prevé que vas abrir. Argumentan que si empiezas a escribir en el buscador la letra Y y además visitas frecuentemente Youtube, antes de que pulses buscar el navegador ya ha comenzado la carga. Por lo tanto la respuesta del navegador parecerá mas rápida.
  • Empleará JavaScript V8, el mismo que se emplea para Chrome en PC. Es de código abierto y está escrito en C++.
  • Por lo que comentan, se podrá sincronizar Chrome en PC con Chrome Android. Argumentan algo así como "continuidad usando ambos". Pero un nivel de sincronización tal que las pestañas que tengas abiertas en el PC se puedan consultar de forma automática en el tablet o móvil Android. Imagina cerrar el portatil y que la pestañas que estás consultando lo puedas seguir haciendo desde el móvil.
  • Una de las diseñadoras habla de barra de herramientas mínima con acceso directo a todas las funciones importantes del navegador. Por la simpleza de diseño si que es de alabar a Chrome para PC, veremos la versión Android.
  • Documentos disponibles aunque se esté off-line. Esto estoy deseando ver como lo hacen ...
Lo malo es que por ahora solo está disponible para Android 4.0 (Ice Cream Sandwich) por lo que me tocará esperar...


LIBRO RECOMENDADO PARA APRENDER ANDROID

Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier




miércoles, 8 de febrero de 2012

Comparar dos String en Java

Cuando necesitamos comparar dos String en Java como por ejemplo en un if, no podemos usar el operador == ya que los objetos no van a ser iguales y por lo tanto no se va a cumplir nunca la condición.
Para poder comparar dos String tenemos que usar el método equals de String.
Por ejemplo:

String uno = "mi categoria"
String dos = "otra categoria"
if (uno.equals(dos)) nos comprobará el contenido de los String y dará false. Pero si inicializamos las variables:

String uno = "mi categoria"
String dos = "micategoria"

if (uno.equals(dos)) si que nos devolverá un true!
Otro apunte para recordar.

martes, 7 de febrero de 2012

Capturar evento click en lista ListView #Android

Si queremos capturar el evento cuando se pulsa un elemento de un ListView, tenemos que implementar el siguiente método:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
   // TODO Auto-generated method stub
   super.onListItemClick(l, v, position, id);
   Log.e("MeetingCost","Has seleccionado el elemento " + position);
}
Lo que hacemos es detectar el clik o pulsar con el dedo en dispositivos móviles y automáticamente tendremos la posición que estamos pulsando y el id del elemento para poder manipularlo y volver a escribir en él.


LIBRO RECOMENDADO PARA APRENDER ANDROID

Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier




Mostrar en lista lo devuelto por base de datos en #Android

En la entrada anterior del blog (aquí) lo que nos devolvía una consulta a la base de datos lo mostramos en un TextView. Pero es mucho mas elegante y funcional representar esos datos en una lista donde podamos hacer click en un elemento de la lista y manipularlos. Para ello están los elementos ListView. Es decir, vamos a hacer algo como esto:


Lo que vamos a hacer es una modificación del método showEvent(Cursor cursor), de modo que nos haremos un adapter que es empleado por los elementos ListView. Hay mucha documentación sobre el funcionamiento de los adapter, lo dejamos para otro día y vamos al grano.

Subrayado palabras con mala ortografía en Office 2007

El programa Word lleva una funcionalidad que te subraya las palabras que considera que están mal escritas. En mi caso lo suelo tener activado y he tenido que dar un par de vueltas para poder activárselo a un documento que no lo tenía. Para poder activarlo, tenemos que ir al círculo de Office y hacer click en Opciones de Word que se encuentra en la parte inferior de la pantalla que se nos ha abierto.
Luego seleccionamos el menú Revisión a la izquierda y en la parte inferior vemos el check "Ocultar errores de ortografía sólo en este documento". Ese check tiene que estar desactivado si queremos que nos subraye lo que él considera como faltas de ortografía.
Como una imagen vale mas que mil palabras, aquí la tenéis!

domingo, 5 de febrero de 2012

Leer de base de datos SQLite #Android

Si recordamos de otra entrada del blog donde hablábamos de introducir una persona en base de datos (aquí), ahora vamos a leer cada una de las personas que tenemos almacenados. Una solución que podemos hacer es la siguiente:

sábado, 4 de febrero de 2012

Fallo "could not get next sequence value"

Usando Hibernate he tenido un problema al intentar obtener un número de secuencia que me devolvía el error "could not get next sequence value". Lo solucioné actualizando los permisos de la secuencia y dándole permiso de actualización sobre ella al usuario postgres y PUBLIC. Para ello:
GRANT UPDATE ON mi_seq to PUBLIC;
GRANT UPDATE ON mi_seq to postgres;
Probablemente te ahorre un calentamiento de cabeza ;-)

Guardar información en Base de Datos #Android

Ahora vamos a almacenar lo que recogemos de la pantalla que hicimos en el otro ejemplo aquí y que os muestro a continuación y lo vamos a guardar en base de datos.

Android usa SQLite como motor de base de datos. Se trata de un pequeño motor de base de datos que es usado en muchas aplicaciones o dispositivos como iPhones, Skype, Solaris, Mac OS X, etc. Una base de datos de SQLite es simplemente un archivo que puede ser movido de máquina o de dispositivo y seguirá funcionando sin problemas

Para poder hacer que cuando demos al botón guardar se almacene en base de datos necesitamos varios archivos que vamos a ir explicando a continuación. Primero necesitamos una interfaz con el nombre que le queremos dar a la base de datos y alguna información más. En mi caso llamé a esta clase Constants.java:

Pasar de EditText a int en #Android

Lo que recogemos con el método getText() de un EditText nos llega con tipo EditText por lo que tenemos que pasarlo a String o a int o a lo que nos interese. Para convertir en int tenemos el método Integer.valueOf() del que ya hemos hablado en este blog.
Por lo tanto, podemos hacer algo así:
EditText costehora_edit;
int costehora;

costehora = Integer.valueOf(costehora_edit.getText().toString());
Seguimos avanzando!


LIBRO RECOMENDADO PARA APRENDER ANDROID

Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier



viernes, 3 de febrero de 2012

EditText con solo números en #Android. Validaciones

Si queremos que en un EditText solamente se puedan introducir números con decimales, tenemos que emplear la siguiente propiedad:
android:inputType="numberDecimal"
Esto hace que solamente podamos usar números y el símbolo del punto. Por lo tanto nos estamos ahorrando el tener que hacer validaciones con el texto recogido y comprobar que solamente hayamos puesto un número.
Espero que os sirva!



LIBRO RECOMENDADO PARA APRENDER ANDROID

Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier



Como introducir y leer el texto de usuario #Android

Si queremos recoger el texto que nos introduce un usuario en #Android tenemos que usar el componente EditText. Luego con el evento del botón podemos recoger el texto que hayamos introducido. Os dejo el código para hacer lo que se ve en la imagen: