Translate

domingo, 14 de julio de 2013

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

Documental Codigo Linux

Quiero compartir el siguiente documental sobre Linux, esta muy bueno!!


miércoles, 3 de julio de 2013

Fedora 19 esta aquí !!


El 2 de Julio se dio a conocer la versión 19 del sistema operativo Fedora, y ya lo estoy bajando!!

La novedades que nos trae son:

  • Diversas herramientas destinadas a mejorar el soporte para impresoras 3D y modelado en 3D 
  • El reemplazo de MySQL por MariaDB 
  • Mejoras importantes en el instalador Anaconda 
  • Nuevas versiones de software de desarrollo como OpenShift Origin, Node.js, NPM, Ruby 2.0 y Rails 4, entre otros.
  • GNOME 3.8, 
  • KDE 4.10, 
  • MATE 1.6,
  • kernel Linux 3.9, 
  • Firefox 22, 
  • LibreOffice 4  
  • un largo etcétera

Que más agregar? A probarlo!

Dejo link:
https://fedoraproject.org/es/get-fedora
http://download.fedoraproject.org/pub/fedora/linux/releases/19/Live/x86_64/Fedora-Live-Desktop-x86_64-19-1.iso
http://docs.fedoraproject.org/en-US/Fedora/19/html/Release_Notes/index.html

Software Engineering for Software as a Service!

La gente de EDX publico un nuevo curso muy interesante sobre software como servicio. En este curso nos enseñan a diseñar software como servicio, utilizando la plataforma ruby on rails.

Dejo link: https://courses.edx.org/courses/BerkeleyX/CS-169.1x/2013_Summer/info