Android – Como solicitar los permisos en Android 6 y superiores

Las aplicaciones que desarrollas en Android que requieren permisos necesitan la declaración de estos en el archivo manifiest de tu proyecto. Por ejemplo  para acceder a la Camara de Fotos debemos incluir un  <uses-permission> en nuestro manifiest. de este modo. Si tu proyecto esta definido para para versiones anteriores targetSdkVersion 22 o menor solo basta con… Read More »

Android – Verificar si el almacenamiento externo esta disponible

Nuestro proyecto puede requerir acceder a la memoria externa ya sea para leer o guardar archivos. Por ejemplo una tarjeta de memoria extraíble (tarjeta SD) o una memoria interna (no extraíble). Antes de esto es necesario que verifiques si el almacenamiento externo esta disponible. Utilizando Environment.getExternalStorageState() obtienes el estado del dispositivo. Por ejemplo para verificar… Read More »

La importancia de iniciar con un “Producto Mínimo Viable”

Tengo una idea que me ronda la cabeza, pero no estoy totalmente seguro de si me resultará lo suficientemente rentable como imagino o si podría tener un buen posicionamiento en el mercado. Por otra parte, me pregunto si estoy dispuesto a hacer el experimento de lanzar el producto, invirtiendo mi capital y arriesgándome a que… Read More »

Java 8 Interfaces Funcionales

Desde versiones anteriores conoces las interfaces SAM (Single Abstract Method interfaces). Es decir, interfaces que tienen un solo método abstracto; ejemplo de ellas encontramos a java.lang.Runnable Usualmente utilizamos este tipo de interfaz de forma anónima Java 8 mantiene estas SAM interfaces pero las llama Functional Interfaces. Creando además una anotación específica @FunctionalInterface que le dará… Read More »

El rol del Product Owner en metodologías Agile

Agile promueve que el equipo trabaje manteniendo en forma continua el feedback con el cliente mediante un proceso iterativo dividido en sprints. Aquí, en el feedback, entra en juego el product owner (P.O). Su función principal es negociar desde la visión del cliente, tanto con el scrum master como con el equipo, cuáles son las… Read More »

Java 8 – Default Methods – Métodos Default

Java 8 ha hecho cambios en las interfaces, las que ahora podemos agregarles métodos default (default methods). Esto permite agregar métodos a las interfaces sin necesidad de implementarlos en las clases hijas. Este método default provee un comportamiento por defecto para el caso en que la clase concreta no lo especifique. Método Default: Sabemos que… Read More »

Cuáles son los artefactos de Scrum para organizar las tareas

Los artefactos de Scrum (prefiero llamarlos herramientas) que nos permiten organizar y visualizar nuestro plan de trabajo son muchos, pero aqui comentaré tres.  La lista de trabajos pendientes, la lista de trabajos que estamos ejecutando en un Sprint y la gráfica Burndown que nos muestra cómo vamos dentro del Sprint. Backlog de Producto Esto es la… Read More »

El camino a la metodología Agile (Scrum) desde un modelo en cascada

El método en cascada es un método lineal cuyo formato se distingue por la secuencia de sus acciones con diferencias a la metodología agile con pasos iterativos e incrementales dentro de ciclos cortos. Trato aquí de escribir una breve reseña sobre algunos puntos que observe al cambiar de un modelo a otro. Usando un modelo en cascada El modelo en cascada, nacido desde… Read More »

Términos básicos del SEO

Si tienes un sitio web seguramente escucharás cada tanto sobre “posicionar tu sitio” o escribir pensando en el “SEO” y muchas veces te llegarán términos de SEO (Search Engine Optimization / Optimización para motores de búsqueda), que por sí mismo suelen ser confusos o no nos dicen mucho. Quiero destacar aquí algunos términos básicos de… Read More »

Que es el SEO en Internet

La palabra SEO, viene a representar en ingles: Search Engine Optimization. Lo que en español es entendido como Optimización de Motores de Búsqueda. Para entender este concepto es necesario indicar que en los inicios del Internet cuando una persona buscaba contenido, los resultados que obtenía eran presentados de manera alfabética, cuestión que por lo mismo… Read More »

Java Spring Batch ejemplo

Como configurar Spring Batch Para configurar un proyecto de Spring Batch partiremos con las dependencias que necesitamos utilizando Maven, luego definiremos la configuración basica y algunos aspectos simples para conectarnos a una base de datos embebida. ¿Que es Spring Batch? Se trata de un framework destinado al proceso de grandes lotes de información.  Pero para… Read More »

Consejos para elegir tu nombre de dominio

Elegir el nombre de dominio de tu sitio es un tema delicado. Porque: Es el nombre al que se asociará tu marca y tu negocio durante mucho tiempo Influirá en tu posicionamiento en Internet, ya que es uno de los factores que Google valorará para mostrarte en las búsquedas Quieres que la gente se acuerde de tu sitio… Read More »

Observar cambios en directorios con Java

A partir de Java 7 contamos con la posibilidad de observar cambios en un directorio y de este modo supervisar determinados eventos tales como creación, modificación o eliminación ocurridos en alguna ruta de nuestro sistema operativo. La clase específica para monitorear directorios a partir de Java 7 es WatchService. ¿Cómo observar cambios en un directorio?… Read More »

Java Generar Codigo QR

Te explico como generar Código QR en Java utilizando esta librería zxing. Como siempre, nada es mejor que un ejemplo… Este simple ejemplo contiene dos metodos, uno para crear una imagen con el QR a partir de un texto y otro para leer el QR desde la imagen.

Instalar Maven en Windows

Instalar Maven en Windows requiere pocos pasos, tan solo descargar en alguna carpeta, establecerla en el path y definir la variable de entorno M2_HOME Resumen de pasos 1-Descargar maven https://maven.apache.org/download.cgi 2-Agregar carpeta \bin al path 3-Crea una variable de entorno M2_HOME con la ruta de maven 4-Verificar mvn -v Descarga la última versión de Maven… Read More »

Instalar Maven en Ubuntu

Para ‘instalar’ Maven en Ubuntu es necesario solamente descargarlo, descomprimirlo y que configures algunas variables de entorno y el path. Descargar Maven desde https://maven.apache.org/download.cgi Descomprime la carpeta en alguna ubicación de tu preferencia. En mi caso la he descomprimido y luego copiado en /opt/maven3/ de esta forma cp -r /home/gustavo/Downloads/apache-maven-3.3.3/ /opt/maven3/ Agrega el directorio de… Read More »

Android: Guardar Objetos en las Preferencias

Partimos de un ejemplo para explicar cómo podemos guardar un objeto en las preferencias de Android. 1- Lo que haremos es utilizar Gson para serializar el bean como un Json y guardarlo en las preferencias de tu app en Android. Necesitamos agregar esta dependencia com.google.code.gson:gson:2.3.1  en nuestro archivo  build.gradle Encontraras la última numero de versión… Read More »

Java Islands of isolation (islas de aislamiento)

Uno de los factores por los cuales el GC (garbage collector) elige los objetos que serán limpiados de memoria es cuando estos no tienen una referencia válida. Pero existe un caso particular en el que a pesar de tener referencias válidas los objetos pueden ser elegidos por el GC. Un ejemplo claro de esto es por ejemplo… Read More »

Git borrar todos los Branches excepto Master

Algunas veces al final de un proyecto o etapa del mismo queresmos eliminar todos los branches locales que ya no utilizamos. Nos ubicamos en nuestro master $ git checkout master Luego ejecutamos esta secuencia $ git branch | grep -v “master” | xargs git branch -D Ten cuidado antes de ejecutar este comando. Asegurate de tener… Read More »