Translate

miércoles, 4 de septiembre de 2013

La Biblia de Linux


Quiero compartir este libro que es un libro de la red users, que saco hace tiempo, es la biblia y hay que respetarla!!!

Dejo link:
https://docs.google.com/file/d/0Bx4oucvoagb0VTF4Y2V1X3UzdEk/edit

Effective Scala


Quiero compartir con ustedes este libro gratuito, que a simple vista parece muy bueno...

Dejo el link: http://twitter.github.io/effectivescala/

lunes, 2 de septiembre de 2013

DB-Engines Ranking

Existe un ranking de base de datos, en realidad de almacenes de datos porque hay del tradicional entidad-relación al NoSQL. Bien no se de donde toman los datos pero se ve coherente.

Dejo link:
http://db-engines.com/en/ranking

domingo, 1 de septiembre de 2013

Java to Scala cheatsheet



Quería hacer un post similar en español hace rato, o por lo menos traducir este, pero no me da el tiempo. Lo dejo para más adelante. Luego de la salvedad, quiero compartir con ustedes este post que nos muestra la forma de hacer cosas en Java y en Scala.


No me gustan las comparativas con Java, dado que Java corre con desventaja tiene muchos años de existencia, la realidad cambio y nuestras cabezas también. Y en mi opinión esta bien que Java no haya cambiado; mejor es que nazcan otros lenguajes. Si java va evolucionando según el mercado se forma un engendro, que tenes 10 formas de hacer algo y nunca sabes cual es la mejor.


Me gusta mucho el camino que esta siguiendo la plataforma Java.



Luego de enredarme demasiado, dejo el link:
http://techblog.realestate.com.au/java-to-scala-cheatsheet/

sábado, 31 de agosto de 2013

Leiningen, el maven de Clojure

Leiningen es como maven, nos permite crear nuestros proyectos clojure, manejar las dependencias, ejecutar una aplicación, etc...

Como lo instalamos en linux? Fácil abrimos una consola y escribimos:

wget https://raw.github.com/technomancy/leiningen/stable/bin/lein

Le damos permiso:

chmod +x lein

y luego ejecutamos:

./lein

Esperamos un rato...

Agregamos a lein al path:

export $PATH=/path/lein:$PATH

y luego si queremos creamos un proyecto así:

lein new app my-stuff

Bien para empezar, voy a seguir dando le rosca a leiningen en próximos post.

Dejo links:
https://github.com/technomancy/leiningen
http://leiningen.org/

martes, 27 de agosto de 2013

Principles of Reactive Programming

Como lo anuncio este blog, en un post anterior el señor Martin Odersky, estaba trabajando en otro curso. Se hizo esperar pero ya nos podemos inscribir a "Principles of Reactive Programming".

Que podemos aprender en este curso? Vamos a aprender a escribir aplicaciones basadas en componentes, orientadas a eventos, escalable y resistente a fallas.

Dejo el link:
https://www.coursera.org/course/reactive

Dejo un video:

 


domingo, 25 de agosto de 2013

Como empezamos con Clojure?


La idea es ve como podemos empezar con Clojure, yo también estoy empezando así que "esto puede fallar" veamos una forma fácil de empezar utilizando el zip que se encuentra en la pagina: http://clojure.org/downloads. Deszipiamos este archivo y ejecutamos:

java -cp clojure-1.5.1.jar clojure.main

Como ven van a necesitar java con la JDK 6 o superior funciona de maravillas.

y con esto ya podemos utilizar el RELP:

user=> (+ 1 2 3)
6
user=> (javax.swing.JOptionPane/showMessageDialog nil "Hello World")

Otra formas de generar nuestros proyectos Clojure es con Leiningen que es como el maven de Clojure, pero eso es otro post. Esto es solo una pequeña prueba para el hombre pero un gran paso para un desarrollador.

Clojure el lenguaje funcional para plataforma Java

Clojure nos da una manera rápida y fácil para acceder a la plataforma Java. Se puede llamar a cualquier API directamente con:

(System/getProperties)
-> {java.runtime.name=Java(TM) SE Runtime Enviroment
… etc...

Clojure agrega una cantidad de formas sintácticas de llamar métodos Java. Veamos un ejemplo:

// Java
“hello”.getClass().getProtectionDomain()

;Clojure
(.. “hello” getClass getProtectionDomain)

Clojure provee una forma simple para implementar Java interfaces y subclases de Java. También todas las funciones de clojure implementan Callable y Runnable. Esto se podría utilizar para llamar las funciones desde thread.

(.start (new Thread (fn [] (println “Hello” (Thread/currentThread)))))
->Hello #<Thread Thread[Thread-0,5,main]>

Como podemos ver Clojure es claro y simple y se puede llamar a clases java directamente.

Clojure es un lenguaje funcional

Clojure es un lenguaje funcional pero no es un lenguaje funcional puro como Haskell. Es un lenguaje funcional con las siguientes características:

  • Las Funciones son first-class objects, lo que sería que podemos crearlas, pasarlas como parámetros, guardarlas en variables, retornarlas, como cualquier otro tipo de datos.
  • Los datos son inmutables
  • Las funciones son puras, lo que significa que una función siempre devuelve el mismo valor con iguales parámetros; no mantiene estados.

La programación funcional es fácil de entender, es menos propenso a errores y mucho más fácil de reutilizar. Por que?

  • Es simple, sin loops, ni variables, ni mutables estados.
  • Es thread safe.
  • Es paralelizable, como las funciones no mantienen estados se pueden resolver de forma paralela, lo que aprovecha mucho más múltiples micros. 

Por que Clojure?


Las características más importantes de Clojure son la simplicidad y la potencia. Y esto es por sus características:
  • Programación Funcional: la programación funcional es simple y además es fácil de entender, fácil de mantener, fácil de testear
  • Clojure corre sobre la plataforma Java lo que lo hace potente, los beneficios de toda la plataforma java con sus frameworks y herramientas; podemos utilizarlos en Clojure.
  • Lisp es simple, lisp tiene una sintaxis sumamente simple y fácil de aprender.
  • Lisp es también potente, gracias a las macros de lisp, podemos fácilmente hacer DSLs y modificar el lenguaje para hacer mucho escribiendo muy poco.


Por todas estas características podemos afirmar que clojure es simple y potente.

viernes, 23 de agosto de 2013

Netis, Netty en Scala

Recuerdan a nuestro amigo Netty?, Netty es un framework de Jboss que provee un manejo asíncrono en aplicaciones web, un framework ideal para hacer comet o utilizar wesocket de HTML 5.

Netty es un cliente NIO infraestructura de servidor que permite el desarrollo rápido y sencillo de aplicaciones de red, tales como servidores de protocolo y los clientes. Simplifica y agiliza la programación de la red tales como TCP y UDP socket servidor.

Cuando lo usarían? Por ejemplo si quieren hacer un chat el cliente (browser) sabe cuando enviar un texto, pero es incapaz de saber cuando le contestan. Por lo tanto lo que se hacia antes (cuando era joven XD ) era tener un javascript que cada 1 minuto o menos pregunte al servidor si alguien le estaba hablando. Obviamente esto mataba al servidor si eran muchos usuarios; pero en esa época no quedaba otra.

Por suerte evolucionamos, se inventaron técnicas de comet y también websocket con html 5. Y todo más fácil con Netty!

Netis nos brinda una capa de abstracción para utilizar Netty desde scala, pero programando scala-like. Es un framework que nos permite utilizar fácilmente Netty desde scala.


Dejo link: https://github.com/prassee/netis

Scalapeño 2013 en parleys

Scalapeño es una conferencia sobre el lenguaje Scala y han subido vídeos de esta conferencia a parleys.

Que más decir?
Ha disfrutar!!

Dejo link:
http://parleys.com/channel/52013e6ce4b0354ac31ac5f7/presentations

miércoles, 21 de agosto de 2013

Programming Principles: Functions and Objects with Professor Martin Odersky

El próximo 17 de Septiembre comienza nuevamente Programming Principles: Functions and Objects con el profesor Martin Odersky, el creador de Scala. El que no haya hecho este curso se lo recomiendo se aprende muchísimo y no solo de Scala si no de programación funcional y orientada a objetos.

Dejo link:
https://www.coursera.org/course/progfun

Dejo video:

sábado, 17 de agosto de 2013

Debian cumple 20 años

Esta noticia es vieja, el día de ayer Debian cumplió 20 añitos, no quería dejar pasar la oportunidad para felicitar a mi distro preferida, he usado Debian hace ya bastante y siempre tuve buenos resultados. Por cuestiones laborales me he pasado a las distribuciones Red Hat pero siempre extraño al apt get y todas las características de este gran sistema operativo.

En servidores sin duda es el más confiable, no hay con que darle. Y es también el papa de grandes distros como Ubuntu, Mint, Elementary OS, knoppix, etc... Que más decir?

Feliz Cumpleaños!!

jueves, 15 de agosto de 2013

Peppermint Linux OS

Si pensamos en una distribución basada en Ubuntu, pero que prioriza los servicios en la nube, estamos pensando en Peper mint.

Peper mint en una distro basada en Lubuntu por lo que utiliza  LXDE desktop environment. Pero lo más importante es que es una distro que prioriza los servicios en la nube, por lo tanto espera que utilices google doc, gmail, dropdox, etc...

Trae de forma nativa las siguientes aplicaciones:

  • Chromium Web Browser
  • Dropbox
  • Guayadeque (Music Player)
  • Ice
  • X-Chat (IRC Client)
  • Transmission (Torrent Client)
  • Gnome-Mplayer (Media Player)

Y como aplicaciones en la nube:

  • Editor by Pixlr (Image Editor)
  • Express by Pixlr (Photo Editor)
  • Pixlr-o-Matic (Photo Filter App)
  • Last.FMSSB
  • Seesmic Web
  • The Cloud Player
  • YouTube
  • eBuddy
  • Google Calendar
  • Google Docs
  • Gmail
  • Google Reader
  • Peppermint Bug Tracking
  • Peppermint Forums

Dejo link: http://peppermintos.com/

Dejo algunas pantallas:





Smalltalk en el browser con Amber

Amber es un lenguaje inspirado en smalltalk (no es smalltalk) que compila a javacript. Amber compila eficientemente a javascript porque tiene una relación uno a uno con elementos javascript.

Está diseñado para que el desarrollo del lado del cliente sea más rápido y más fácil. Amber incluye un entorno de desarrollo, un framework para prueba de unidad, inspector de objetos y depurador.

Como lo podemos utilizar, muy facil importando la librería y corriendo una función:

<script src="js/amber.js" type="text/javascript"></script>
<script type="text/javascript"> loadAmber()</script>


Dejo link:
http://amber-lang.net/

Twitter University: Building a world-class engineering organization




A la gente de twitter se le ocurrio una gran idea, compartir el conocimiento que tienen con todo el mundo y para ello van abrir Twitter University. Donde obtendremos enseñanza y entrenamiento. Va a ser una plataforma en la cual podremos tomar cursos de desarrollo, html, css, escalabilidad, etc.


Espero con ansias!!


Dejo el link del anuncio:
https://blog.twitter.com/2013/twitter-university-building-a-world-class-engineering-organization

Elementary OS Luna Review

Sigo viendo Elementary OS y me gusta bastante, ahora les dejo un vídeo:



Otra cosa, muy bueno el canal InfinitelyGalactic de you tube.

martes, 13 de agosto de 2013

Linux Shell Scripting Cookbook



Quiero compartir un libro sobre scripting en el shell de linux. Que lo disfruten!!


Dejo link:
http://www.vaqueano.com/posts/ebooksytutoriales/246/Linux-Shell-Scripting-Cookbook-Sarath-Lakshman.html

Learn to Program: The Fundamentals

Me gustaría aconsejarles que hagan el curso "Learn to Program: The Fundamentals" de Cursera, la verdad es que esta muy bueno; y comienza la próxima semana. El curso es un curso básico de programación en Python, pero los conocimientos se pueden extrapolar a cualquier lenguaje.


Dejo links:

lunes, 12 de agosto de 2013

Tomcat 8.0.0-RC1 (alpha) Released


Tengo el agrado de comunicar el primer release de Tomcat 8. Que hay de nuevo viejo??
  • Soporte para Java Servlet 3.1, JavaServer Pages 2.3, Java Unified Expression Language 3.0 y Java WebSocket 1.0.
  • Soporte para Web socket
  • HTTP protocol upgrade
  • Soporte experimental para SPDY
  • y mucho más!!

Los cambios son muchos y la espera larga, pero se viene un producto que promete.

Dejo link:
http://tomcat.apache.org/
http://tomcat.apache.org/download-80.cgi

acamica.com


Gracias al amigo del blog Matías, pude conocer la pagina acamica.com; es un proyecto similar a
Coursera.org y Edx.org pero con el foco puesto en América Latina, con clases online y gratis de universidades de la región.

Lo probé y esta muy bueno y tiene cursos muy interesantes, me anote a varios!!

Dejo link:
http://acamica.com/

domingo, 11 de agosto de 2013

PyCursos


Quiero recomendarles la pagina PyCursos donde podrán encontrar varios cursos de Python en Portugués, como mi portugués no es muy bueno no pude hacer cursos, pero espero que crezca y podamos hacer cursos en castellano.

Dejo el link:
http://beta.pycursos.com/

Se acabo la esperás con nosotros Elementary OS Luna!!

Es una distro que estoy esperando hace rato, estaba en estado beta pero hace unos días han liberado su primera versión estable.

Elementary OS es un distro basada en Ubuntu, pero que basa su diseño en las MACs; les dejo un video:


Dejo links:

Dejo algunas pantallas:





Cierre de una instancia de Base de datos Oracle

En el post anterior hablamos como levantar un base oracle, ahora vamos a hablar de como bajar la base.


Existen diferentes modos de bajar la base de datos, cada uno tiene que ver como termina lo que esta haciendo.

ABORT: como podrán imaginar es el modo más rudo, se debe utilizar solo cuando es necesario, pero es la forma más rápida de terminar. Es como apagar el servidor, jeje...
INMEDIATE: Es la opción más utilizada, se realiza un rollback de las transacciones no confirmadas.
TRANSACTIONAL: para cuando tenemos tiempo, permite que finalice todas las transacciones y luego baja la base.
NORMA: cuando tenemos más tiempo aun, Espera que todas las sessiones se desconecten.

Como pueden imaginar ABORT es la más rápida y NORMAL la más  lenta.

Como levanta la base de datos Oracle??

Como sabrán este blog es de software libre y yo apoyo al software libre, pero en ocaciones no se puede elegir con que herramientas trabajar, por lo que tenemos que resignarnos a aprender herramientas comerciales. En este caso voy a hablar de la base de datos Oracle que digan lo que digan no hay con que darle, es muy buena pero la desventaja que tiene es que no es muy intuitiva en su uso.

Quiero contarles como levanta una base de datos Oracle, si han usado Oracle sabrán que se tiene que logearse al sqlplus y luego para levantar con el comando startup. De esta forma levanta la base de datos de forma normal y abierta lo que permite conectar a cualquier usuario a la base. Pero no es la unica forma de levantar la base de datos.



Oracle tiene diferentes estadios de actividad:
  • La base esta apagada, en este estadio no hicimos nada; solo podemos levantarla. 
  • Base de datos no montada este es el primer estadio de la base, en este modo se incluyen las siguientes tareas:
    • Búsqueda de archivos de industrialización pfile para los amigos; lo hace en el siguiente orden:
      • Primero busca el spfile con la siguiente estructura spfile<SID>.ora este archivo es compilado por nada en el mundo lo editen con el nano, vi o otro editor; lo van a romper; les digo porque me paso. 
      • si no lo encuentra busca spfile.ora
      • si no lo encuentra busca init<SID>.ora; este archivo es texto plano; editenlo con cualquier editor. 
      • Estos archivos contienen parámetros de industrialización por eso pfiles y cuando hacemos startup le podemos indicar que archivo usar startup pfile="/home/oracle/miPFile.ora"
    • Asignación SGA
    • Inicio de los procesos de segundo plano
    • Apertura del archivo alert<SID>.log y de los archivos de rastreo.
  • Base de datos Montada, en este estadio la base realiza las siguientes tareas:
    • Asociación de una base de datos con una instancia iniciada previamente.
    • Búsqueda y apertura de los archivos de control especificados en el archivo de parámetros. 
    • Lectura de los archivos de control, para obtener los nombres y los estados de los archivos de datos y de los archivos de redolog en linea. Sin embargo no se hacen comprobaciones para verificar la existencia de los archivos de datos y redologs.
  • Base de datos Abierta, es el estado "normal" de la base, donde los usuario pueden acceder; que hace en este estadio: 
    • Apertura de los archivos de datos en linea
    • Apertura de los archivos de redolog en linea.
Para que me puede servir levantar una base en un estado intermedio? Para muchas acciones, por ejemplo podemos montar la base y no abrirla para hacer un backup y así me aseguro que nadie inserte datos mientras dura el backup. Y seguramente si Oracle tuvo un problema al levantar quedo en un estado intermedio. 


sábado, 3 de agosto de 2013

Las personas detrás del lenguaje.

Sigo revisando la historia de los lenguajes Java y sus inventores, recuerden que vimos Scala, Clojure, Groovy, Jython, JRuby y Ceylon. Ahora vamos con Kotlin, Gosu, Fantom, Redline.

Kotlin es un lenguaje de la empresa Jetbrains, Jetbrains es la empresa dueña de la IDE java, IntelliJ. La idea era hacer un lenguaje estéticamente tipado, más evolucionado que Java que compile a bytecode y javascript. Quien esta detrás de este lenguaje?  Andrey Breslav es Language Engineer, entre otras cosas comenzó su carrera en Borland, donde trabajó en implementaciones de lenguajes. Tambien contribuyo con algunas librerías, James Strachan (este pibe esta en todas) y Evgeny Goldin. Si no se acuerdan James Strachan es el creador de Groovy.

Guidewire Software se le ocurrió hacer un lenguaje script llamado GScript, este lenguaje se utilizaba para escribir reglas de negocio, y fue mejorado por 8 años dando luz a Gosu, Gosu fue liberado a la comunidad con licencia Apache. Gosu esta inspirado en Java, C#, EMACScript y también Ruby.

Brian and Andy Frank (los hermanos Frank) querían resolver el problema de la portabilidad entre java y .net. Es decir querían escribir un programa y compilarlo para la plataforma java y la .net; para hacer esto se les ocurrió hacer un lenguaje nuevo, llamado Fantom. Oriiginalmente era un lenguaje que embebía a otros lenguajes, pero luego tomo protagonismo. Fantom es un lenguaje inspirado en Java y C#. Es de tipado estático y actualmente compila a bytecode, MIL (microsoft internal language) y javascript.

Redline Smalltalk, la idea es llevar Smalltalk a la plataforma java, Smalltalk real con imagenes y todo. No se bien a quien se le ocurrió, pero la idea es genial. En este proyecto están trabajando: Sean T. Allen, James Ladd y Rob Roland

Debería ver la historia de otros lenguajes...
...pero esa es otra historia y debe ser contada en otra ocasión...

Libros de linux


Quiero compartir unos cuantos libros de linux, unix y hacking ético, para quien les interese:

Dejo los links:
http://tuxapuntes.com/manual-hacking-etico/
http://tuxapuntes.com/aprenda-linux-como-si-estuviera-en-primero-2/
http://tuxapuntes.com/introduccion-al-sistema-operativo-unix-2/
http://tuxapuntes.com/sistema-operativo-gnulinux-basico-uoc/

jueves, 1 de agosto de 2013

Libros sobre Pharo


Pharo es un moderno IDE open source para el lenguaje Smalltalk-80. Smalltalk es un gran lenguaje; todo lo bueno fue hecho en smalltalk y esta IDE no permite utilizar el lenguaje de forma cómoda.  

Dejo unos libros:
http://rmod.lille.inria.fr/pbe2/
http://pharobyexample.org/versions/PBE1-2009-10-28.pdf

Y dejo link para bajar Pharo:
http://www.pharo-project.org/home

Un agujero en la memoria colectiva: cómo el copyright hizo desvanecerse medio siglo de libros

Este articulo no tiene una relación directa con el software pero si, con las ideas, con la creación y el software también es eso.

Resulta que la gente de cookingideas publico un interesante articulo que muestra a las claras lo mal que hacen las leyes de copyrigth a las ideas y al proceso creador.


Transcribo un parrafo del articulo:

"El gráfico que ilustra este artículo muestra el número de ediciones de libros disponibles por décadas en Amazon, la mayor librería del mundo. En él puede apreciarse cómo a partir de la segunda década de los años 20 el número de libros publicados se desploma brutalmente desde su cénit, a finales del siglo XIX, y no empieza a remontar hasta los albores del siglo XXI. La explicación de tan enorme hiato es la aprobación de la legislación de copyright en Estados Unidos en 1923, que retiraron de las estanterías miles de títulos que hasta entonces estaban disponibles para los lectores."

Dejo el link:
http://www.cookingideas.es/agujero-memoria-20130801.html

Infografia, la historia de Linux

Muy buena infografia sobre la historia del sistema operativo libre:

Infografia, la historia de Linux

miércoles, 31 de julio de 2013

Donde esta Linux?

Una muy buena infografía que nos muestra donde es más usado el Sistema operativo libre:


sábado, 27 de julio de 2013

Aprender Scala con Koans

Koans son pequeñas lecciones en el camino hacia la iluminación. El objetivo del proyecto Koans Scala es proporcionar un entorno de aprendizaje fácil para Scala. Con Koans podemos aprender Scala mediante ejemplos y utilizando test unitarios, que debemos intentar pasar.

El framework se puede descargar de la pagina de scala koans y viene para trabajar con sbt.

Dejo link:
http://www.scalakoans.org/

miércoles, 24 de julio de 2013

Desarrollo de aplicaciones y páginas web con Apache Tapestry


Otro libro gratuito esta vez de Tapestry, el framework web java; les dejo el link:

http://muko.eu01.aws.af.cm/plugin/

Libro Gratuito de Erlang




Quiero compartir el siguiente libro gratuito de Erlang en castellano; todavía no lo leí pero haya vamos!!!

Dejo el link:
http://erlang.bosqueviejo.net/

NoSQL Database Adoption Trends

InfoQ se le ocurrió una gran idea hacer una encuesta sobre bases de datos NoSQL y ya tiempo ha pasado desde que las bases NoSQL se convirtieron de una moda a algo de todos los días. InfoQ organizo la encuesta como una matriz de 2 dimensiones: propósito y adopción. Eso esta bueno, una base puede ser fácil de adoptar pero la mejora no es significativa.

Por ahorra va ganando MongoDB en adopción y Redis en propósito.

A votar!

 http://www.infoq.com/research/nosql-databases?utm_source=infoqEmail&utm_medium=WeeklyNL_ResearchContent&utm_campaign=072313news


domingo, 21 de julio de 2013

MongoDB for Node.js Developers

La gente de 10gen nos brindan un nuevo curso de su base de datos NoSQL MongoDB, esta vez es para los programadores node.js. Sin más...

Dejo el link:
https://education.10gen.com/courses/10gen/M101JS/2013_August/about

Dejo un video:


sábado, 20 de julio de 2013

Spring Batch & High Performance

Quiero compartir este video de Spring Batch, muy bueno:


Las personas detras del lenguaje

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.


martes, 16 de julio de 2013

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: