Hace muy poco me entere que la persona que creo Groovy, James Strachan dijo: "I can honestly say if someone had shown me the Programming in Scala book by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy." En crespense, si conocía Scala, ni me gastaba en crear Groovy.
La pregunta es quien es James Strachan? y que hace de su vida ahora? Quienes son las personas detras del lenguaje y cual es su opinión acerca de él.
James Strachan creador de Groovy, tiene un cv impresionante y una opinión muy particular de su lenguaje. Creador del lenguaje Groovy aunque no continuo el desarrollo. Se dedico a crear varios proyectos en Apache y uno más impresionante que el otro; además es commiter de otros proyectos como maven o Jakarta Commons. Actualmente trabaja en Red Hat. Y le gusta mucho Scala.
Martin Odersky creador del lenguaje Scala; profesor en EPFL de la materia métodos de programación. Martin trabajo en lenguajes de programación la mayoría de su carrera. Martin primero estudio la programación estructurada y orientada a objetos como estudiante de doctorado de Niklaus Wirth, luego se enamoró de la programación funcional, mientras trabajaba en IBM y Yale. Cuando Java salió, comenzó a agregar construcciones de programación funcionales. Esto lo llevó a estudiar los lengujes de programación pizza y GJ y eventualmente a Java 5 con los genéricos. Durante ese tiempo, también se desempeño como desarrollador en javac, el compilador de referencia actual de Java.
Entre otras cosas dicto un curso en cursera que se los recomiendo.
Rich Hickey creador del lenguaje Clojure, , Es un diseñador, consultor y arquitecto de aplicaciones de software que trabaja de forma independiente con más de 20 años de experiencia en todas las facetas del desarrollo de software. Rich ha trabajado en sistemas de programación, automatización broadcast, análisis de audio y toma de huellas digitales, diseño de bases de datos, gestión de rendimiento, sistemas de encuestas de salida y listeners de máquinas.
Rich Hickey describe el desarrollo de Clojure como la búsqueda de un lenguaje que no pudo encontrar: un lisp funcional por defecto, integrado sobre un entorno robusto en lugar de ser su propia plataforma, y con la programación concurrente en mente.
Gavin King es el creador de uno de los frameworks más famosos de lenguaje Java, Hibernate. También trabajo en el Java Community Process por parte de Red Hat (empresa en la que trabaja) en la definición de la especificación de EJB y JPA y también de CDI. Actualmente trabaja en el lenguaje Ceylon, lenguaje que compila a la plataforma java y a javascript.
Como el explica Gavin, el diseño de Ceylon parte de una pregunta, como sería java si fuera hecho hoy en día? Con esa idea diseña un lenguaje moderno de tipado estático parecido a Java. Ceylon que tiene como principal objetivo actualizar el lenguaje Java.
JRuby fue creado originalmente por Jan Arne Petersen, en 2001. En ese momento y durante los años siguientes, el código fue un porte directo del código 1.6 C de Ruby. Con el lanzamiento de Ruby 1.8.6, comenzó un esfuerzo para actualizar las características y semántica de JRuby. Desde 2001, varios contribuyentes han asistido el proyecto, si bien el equipo actual consta de cuatro miembros principales.
Los desarrolladores principales de JRuby son Charles Nutter, Thomas Enebo, Ola Bini y Nick Sieger. En septiembre de 2006, Sun Microsystems contrató a Enebo y Nutter para trabajar a tiempo completo en JRuby. En junio de 2007, ThoughtWorks contrató a Ola Bini para trabajar en Ruby y JRuby. En julio de 2009, los desarrolladores de JRuby dejaron Sun para continuar el desarrollo de JRuby en Engine Yard.
Jan Arne Petersen también participo de varios proyectos open source como: GNOME Control Center, GTK+, Nautilus, Totem, GPE, FreeCiv, GnuCash.
Jython se desarrollo por Jim Hugunin, Barry Warsaw, Samuele Pedroni, Brian Zimmer, y Frank Wierzbicki.
Jim Hugunin primero creo el lenguaje python luego trabajo en el proyecto jython y llevo Python a Java para luego trabajar en el proyecto IronPython y llevar python a .net. Luego que Microsoft abandonara IronPython Jim fue contrratado por Google, donde trabaja hasta ahora. También trabajo en el diseño de AspectJ.
Translate
sábado, 20 de julio de 2013
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
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
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
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
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
> 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?
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
- 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.
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
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/
Suscribirse a:
Entradas (Atom)