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/
Translate
sábado, 31 de agosto de 2013
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:
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.
(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:
La programación funcional es fácil de entender, es menos propenso a errores y mucho más fácil de reutilizar. Por que?
- 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
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
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:
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!!
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:
Y como aplicaciones en la nube:
Dejo link: http://peppermintos.com/
Dejo algunas pantallas:
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/
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
Suscribirse a:
Entradas (Atom)