Conociendo Google Guava

27/03/2017
Artículo original

Guava  es la librería de Google para Java 1.5+ que fue lanzada al público durante el año 2009, luego de ser usada durante años en los proyectos internos de Google. La idea de Guava es proveer bloques constructivos basados en buenas prácticas que aumenten la productividad de los desarrolladores. Guava integra también lo que anteriormente era Google Collections, unificando las utilidades de entrada/salida, primitivas, concurrencia y colecciones en una única librería. Muchos se preguntarán por qué razón Google decidió hacer su propia librería para trabajar con collections en lugar de utilizar la provista por el proyecto Apache Commons. Las principales causas que motivaron el nuevo desarrollo fueron que la librería de Apache no utiliza Generics y que algunas clases violan […]

Monitoreando aplicaciones JAVA con jAMON y VisualVM

27/03/2017
Artículo original

Existen varias alternativas al momento de monitorear una aplicación java dependiendo de lo que se necesita monitorear, además hay que tener en cuenta que algunas soluciones son más intrusivas que otras y esto en algunos casos puede resultar interesante si es que se necesita mas precisión. En particular, si interesa monitorear el  tiempo de respuesta en todos los puntos de entrada de una aplicación mas una análisis del uso de los recursos, les presento dos soluciones complementarias: jAMON y VisualVM. jAMON es una solución libre (licencia BSD) que nos provee varias alternativas al momento de monitorear una aplicación pero de forma intrusiva, que quiero decir con “intrusiva”? Que es necesario integrarlo a la aplicación de alguna manera y esto va […]

Animaciones CSS3 en aplicaciones web para iPad/iPhone

27/03/2017
Artículo original

Después de finalizar un proyecto de un demo de videojuego para iPad, escribo este post para comentar un poco sobre los conocimientos adquiridos. Se utilizaron tecnologías web, porque uno de los requerimientos era que sea fácilmente portable a otra plataforma mobile. Ademas, gracias a los bondades de CSS3 y Webkit podemos crear animaciones para aplicaciones  para iPad/iPhone sin necesidad de escribir código objective-c. Atributos CSS3, Animations [crayon-58d926de48ff2556932946/] Como verán los atributos son bastantes auto descriptivos, y los podremos usar en combinación con atributos de transformación también: [crayon-58d926de48ff9185022125/] o bien aplicar múltiples transformaciones separándolas con espacios: [crayon-58d926de48ffb574366747/] Hasta acá nada muy nuevo… pero ahora conociendo estos atributos podemos definir keyframes, que en palabras sencillas, nos permiten definir un conjunto de atributos sobre las […]

Bases de datos NoSQL

27/03/2017
Artículo original

En el post de hoy se introducirá un movimiento que viene haciendo un poco de ruido en los últimos años, principalmente por los auges de las redes sociales como Facebook y los grandes sistemas distribuidos como Google App Engine. Existen varios problemas con los RDBMS actuales que pueden suponer una seria limitante para la construcción de aplicaciones, si bien la mayoría de las aplicaciones se centran mucho en las características del modelo relacional, para otras aplicaciones (las cuales se alejen un poco del esquema típico) se empiecen a notar distintos problemas inherentes al modelo. Estos problemas son en gran medida el motivo por el que surgió el movimiento NoSQL. Problema 1: Leer datos es costoso En el modelo relacional los […]

Bases de datos NoSQL – Parte 2

27/03/2017
Artículo original

En el post anterior vimos una introducción al movimiento NoSQL y algunas características y principios. En dicho post se mencionó que la fortaleza de NoSQL está en la diversidad, y esto está relacionado con los distintos tipos de bases de datos que ofrece. Para ver el post anterior hacer click aquí. En el post de hoy estaremos viendo de forma resumida los diferentes tipos existentes  y sus principales características. Almacenes key-value Estas son las bases de datos más simples en cuanto su uso (la implementación puede ser muy complicada), ya que simplemente almacena valores identificados por una clave. Normalmente, el valor guardado se almacena como un arreglo de bytes (BLOB) y no hay mas ciencia. De esta forma el tipo […]

Bases de datos NoSQL : MongoDB

27/03/2017
Artículo original

En los anteriores posts se habló del movimiento NoSQL, en el día de hoy veremos una base de datos perteneciente a este movimiento y una de las que mas ruido hace y mas ventajas ofrece en el mercado actual. MongoDB es una base de datos orientada a los documentos open source desarrollada en c++  escalable y  de alta performance. El fuerte de esta base es una mezcla entre las tablas de hash (key-value) con ciertas características de las bases de datos relacionales (RDBMS). Modelo de datos Los datos son almacenados en documentos jerárquicos al estilo JSON, y estos en colecciones de documentos. [crayon-58d926de48bb1200870805/] A su vez, estos documentos pueden referenciar a otros y contener otros embebidos (jerarquía). Conectando Java con […]

Db4o

27/03/2017
Artículo original

Desde hace muchisimos años se habla que las bases de datos orientadas a objetos serían el reemplazo natural de las relacionales. Hasta ahora las bases de datos relacionales siempre han sido la forma mas eficiente y segura de persistir los datos, de hecho han tomado bastantes características del paradigma OO para seguir siendo la mejor opción, pero eso no quita el hecho que las bases orientadas a objetos tengan sus bondades y representan una muy buena opción al momento de pensar en persistencia. Db4o es un sistema de gestión de base de datos orientado a objetos que es desarrollado y distribuido por Versant Corporation. Es un proyecto de código abierto con una licencia dual, que ofrece GPLv3 para productos no […]

Google App Engine

27/03/2017
Artículo original

Google App Engine es una plataforma para desarrollo de aplicaciones web. La misma cuenta con la infraestructura “en forma de cloud computing” de Google y de las tecnologías que utilizan ellos mismos como BigTable y BigQuery entre otras.  El eje gira en torno a lenguajes que utilizan un intérprete de la JVM (Java, Ruby ó Groovy ) asimismo ofrece un entorno de tiempo de ejecución Python dedicado, que incluye un rápido interprete y su biblioteca estándar. Se puede empezar a utilizar gratuitamente disponiendo de 500MB de almacenamiento y prometen una capacidad de procesamiento y tasa de transferencia para que en un mes se produzcan 5 millones de visitas al sitio. Servicios de Infraestructura y entorno de la aplicación. Los beneficios de […]

Google Dev Fest: Android

27/03/2017
Artículo original

El 1ro y 2do de noviembre se llevó a cabo en la Ciudad de Buenos Aires el Dev Fest 2010, evento armado de forma impecable en el que Google difunde algunas de sus tecnologías más importantes. Para dejar clara su posición con repecto al mercado móvil, dedicaron todo el primer día al BootCamp y luego con sesiones de charlas técnicas para animar a los desarrolladores a introducirse en el mundo Android. En la primer charla se dedicaron a introducirnos en la evolución de Android y de su ultima versión Froyo (2.2), su arquitectura y estructura interna. Luego se vió los conceptos básicas de la programación en Android, como actividades y servicios. Para terminar con algunos tips de cómo evitar cuelgues […]

Apacheando Tomcat!

27/03/2017
Artículo original

Esta nota tiene como finalidad mostrar como bajar la sobrecarga de pedidos a un Web Server (léase Tomcat, Jetty) incorporando un HTTP Server (léase Apache HTTP Server) además de incentivar a la investigación y a la toma de conciencia de que desarrollar una aplicación implica también tener conocimientos del entorno que la rodea y como otras aplicaciones pueden ayudar a mejorar nuestra propia aplicación sin poner una línea de código adicional. Vamos por el principio, cual es la diferencia entre un Apache y un Tomcat? Básicamente Apache es un servidor HTTP, valga la redudancia, sirve pedidos HTTP. Por el contrario, Tomcat (también conocido como Apache Tomcat) es un Java Servlet y servidor JSP. Además, Tomcat tiene su propio HTTP Server […]

Página Anterior Página Siguiente