Translate

martes, 16 de julio de 2013

Draw Something creció de la mano de CouchBase

Normalmente no hacemos publicidad, jejeje... Me encontré con esta infografía y pensé en compartirla. Draw Something es un juego que utiliza couchbase y en la infografí se puede ver su crecimiento y esto habla muy bien de Couchbase:


Libros gratuitos de Android

Les dejo un link donde pueden descargar unos cuantos libro de android:

https://app.sugarsync.com/wf/D0341461_62427905_66703#cGFnZUlkPXdlYmxpbmtzJmlzV2VibGlua3NGb2xkZXI9dHJ1ZSZ1c2VySWQ9LTEmY3VycmVudE93bmVySWQ9NTg5NjkxNiZjdXJyZW50Rm9sZGVySWQ9MTc5NzI0NTBfMTEyNTgmd2VibGlua0lkPUQwMzQxNDYxXzYyNDI3OTA1XzY2NzAz

domingo, 14 de julio de 2013

Monitoriando la base con mongostat

mongostat es una herramienta de monitoreo similar a vmstat de linux. mongostat informa de las operaciones realizadas en MongoDB por tipo (por ejemplo, insertar, consultar, actualizar, eliminar, etc). Este formato hace que sea fácil de entender la distribución de la carga en el servidor. mongostat nos permite entender la distribución de los tipos de operación.

Si lo ejecutamos obtendremos esto:

./mongostat
connected to: 127.0.0.1
insert  query update delete getmore command flushes mapped  vsize    res faults  locked db idx miss %    
    *0     *0     *0     *0       0                1|0       0         80m     441m    38m          0     local:0.   0%    
qr|qw   ar|aw  netIn netOut  conn       time
  0|0     0|0      62b      2k       1   20:24:16

Otra cosa muy buena de mongoDB es la Api rest que nos da información de performance; si vamos a: http://host:28017/ donde host es el host, por ejemplo 127.0.0.1 vamos a ver la siguiente pagina:


Veamos que pasa con la performance de mi base MongoDB con mongotop


mongotop es un programa que provee la base MongoDB para poder saber como esta funcionando la base, si una consulta demora mucho, que colecciones se estan escribiendo, etc... Como podrán adivinar su nombre viene del top programa que en linus nos permite ver los procesos y el uso que hacen el cpu y la memoria.

Es muy facil de usar ponemos mongotop y la frecuencia que queremos que refresque por ejemplo:

mongotop 15

Tambien podemos indicarle el host que queremos conectarnos:

mongotop --host <hostname><:port>

o por ejemplo:

mongotop -h 192.168.12.6:8994

la salida es algo así:

$ ./mongotop 10
connected to: 127.0.0.1

                            ns       total        read       write              2013-07-14T23:09:36
             test.system.users         0ms         0ms         0ms
         students.system.users         0ms         0ms         0ms
             pcat.system.users         0ms         0ms         0ms
            local.system.users         0ms         0ms         0ms
          local.system.replset         0ms         0ms         0ms
             local.startup_log         0ms         0ms         0ms

Dejo link:
http://docs.mongodb.org/manual/reference/program/mongotop/



jueves, 11 de julio de 2013

Historia de los lenguajes en Java

Es interesante ver esta imagen, porque por ejemplo para mi Groovy era más viejo que scala y no es así; vean con sus propios ojos:

Y para la gente cual sera el próximo lenguaje, sin dudas que para mi no hay un ganador indiscutido, cada uno se adapta. Les dejo el link del resultado de la encuesta que organizo infoQ:

http://www.infoq.com/research/next-jvm-language

Scala with Style

Este video esta muy bueno se los recomiendo!



miércoles, 10 de julio de 2013

Koalite

El blog recomendado del mes es : koalite.com; es un blog de muy buena calidad y con mucha información y opiniones. Esta bueno! También cuenta con mucha información para la gente de .net

Free Ebooks for Designers and Developers


"Free Ebooks for Designers and Developers" es el titulo del post que nos brinda libros gratuitos sobre diseño y programación:

http://speckyboy.com/2013/06/10/free-ebooks-for-designers-and-developers/

martes, 9 de julio de 2013

Haciendo indices con MongoDB

MongoDB es una base de datos NoSQL muy conocida, es una base documental, sin esquema, lo que guarda es BSON que es un formato muy similar a JSON. En vez de tablas tiene colecciones, vuelvo a repetir; las colecciones no tienen un esquema determinado por ejemplo tenemos la colección friends:

> db.people.find()
{ "_id" : "Mike", "interests" : [  "chess",  "botany" ] }
{ "_id" : "Juan", "interests" : [  "chess",  "Boca Junior", "Linux" ], "facebook": "juanf", gplus:"juanPlus" }
{ "_id" : "Homero", "interests" : [  "beer",  "more beer" ], "facebook": "homeroS" }

Como podemos ver no hay muchos amigos, podrían ser millones o billones o más lo que haría que funcione muy lento. Si buscamos por algún campo, MongoDB hace lo que se conoce como un full scan, revisa todas las colecciones buscando. Es poco eficiente, y aqui es donde aparecen los indices, los indices le permiten encontrar algo a la base, sin recorrer toda la colección; es algo así como el indice de la guía telefónica con el podemos encontrar un número más rápidamente. Como podemos hacer un indice en MongoDB? 

db.collection.ensureIndex(keys. options)

Para nuestro ejemplo sería así:

db.people.ensureIndex({"facebook":1})

Podemos utilizar varios atributos para indexar y en mongoDB podemos indexar arreglos, ya se lo que estas pensando lleno mi base de indixes y todo va andar super rápido. Pero no es así los indices agilizan las consultas pero penalizan las modificaciones e inserciones, tenes que insertar o modificar en la colección y el indice. Por lo tanto no es recomendable generar indices que no se van a usar, no voy a buscar nunca a un amigo por su cuenta de google plus entonces no hago el indice. 

Con el 1 se especifica el orden 1 ascendente y -1 descendente. 

Que pasa cuando no existe siempre el campo? se indexa igual pero vas a tener problemas si el index es único, supongamos:

db.people.ensureIndex({facebook:1}, { unique: true })

Dejo link:


Apache Whirr

Apache Whirr es un conjunto de librerías para el funcionamiento de servicios en la nube. Pero eso que significa? que nos provee Whirr?

  • Ejecutar servicios de la nube de forma neutral. Usted no tiene que preocuparse acerca de la idiosincrasia de cada proveedor.
  • Un API de servicios comunes. Los detalles de implementación son particulares para cada uno de los servicio.
  • Provee una forma de conectarse rápidamente con la nube con una configuración por defecto que luego se puede cambiar. 
  • También puede utilizar Whirr como una herramienta de línea de comandos para el despliegue de clusters.
Si queremos instalar este producto en linux solo tenemos que hacer:

sudo apt-get install whirr

Esto es un debian compatible.

Y si somos más valientes bajamos el codigo y lo compilamos:

git clone git://git.apache.org/whirr.git
mvn install

Y luego lo agregamos al PATH

export PATH=$PATH:/path/to/whirr/bin

Y con esto lo tenemos andando!!

El objetivo de este producto es poder llevar a Hadoop a la nube de forma fácil,y de esta forma unir Big data con cloud.

Como podremos imaginar se distribuye con licencia Apache 2.

Dejo link:
http://whirr.apache.org/
http://whirr.apache.org/docs/0.8.1/quick-start-guide.html

Dentro de Google

Quiero compartir este documental bastante interesante sobre google:


Infografía de los proyectos más descargados de Github


Microsoft regala un monton de libros


La gente de Microsoft decidió regalar muchos libros sobre su tecnologías y eso es ta perfecto.

Dejo link:
http://blogs.msdn.com/b/mssmallbiz/archive/2013/06/18/huge-collection-of-free-microsoft-ebooks-for-you-including-office-office-365-sharepoint-sql-server-system-center-visual-studio-web-development-windows-windows-azure-and-windows-server.aspx

viernes, 5 de julio de 2013

Eclipse Kepler


Eclipse kepler es un nuevo release de mi IDE favorita, por lejos. Donde me siento cómodo. Fue muy esperado este release por mi, porque Eclipse Juno no funciona muy bien. La performance de Juno decayó mucho y hay varios bug, bastante grandes. Por lo tanto estoy muy contento con Kepler.

Entre las novedades que trae son:

  • Eclipse Web Tools Platform (WTP) 3.5 : soporte para el desarrollo Java EE 7.
  • Stardust 1.0 : provee un completo soporte para BPM (Business Process Management), 
  • Orion 3.0 : incluye características de usabilidad importantes y más fácil desarrollo de aplicaciones java para servidor. 
  • Business Intelligence and Reporting Tools (BIRT) : soporte para Big Data y bases NoSQL como mongoDB y Casandra. 
  • Mylyn : ahora incluye un mejor soporte para las revisiones de código a través del navegador y la integración con Gerrit.
  • Maven Integration for WTP: hace que ahora sea más fácil de usar Maven en proyectos Java EE con Eclipse.

Y espero que tenga mucho BugFixing y que le hayan dado bola a la performance.

Quien es Kepler?

Johannes Kepler, figura clave en la revolución científica, astrónomo y matemático alemán; fundamentalmente conocido por sus leyes sobre el movimiento de los planetas en su órbita alrededor del Sol. Fue colaborador de Tycho Brahe, a quien sustituyó como matemático imperial de Rodolfo II.
En 1935 la UAI decidió en su honor llamarle «Kepler» a un astroblema lunar.

Dejo link:
http://www.eclipse.org/kepler/


O'Reilly ofrece acceso gratuito online a 10 de sus libros

Leyendo javahispano me encontré con la grata sorpresa, de que O'Reilly  ofrece acceso gratuito a 10 de sus libros. No se sabe bien el porque; pero a disfrutar!!

Dejo link:
http://www.javahispano.org/portada/2013/7/4/oreilly-ofrece-acceso-gratuito-online-a-10-de-sus-libros.html
http://www.pixelstech.net/article/1372856157_Read_10_new_books_from_O_Reilly_for_free