Translate
sábado, 4 de julio de 2015
Community-driven documentation for Scala
Encontré un sitio muy interesante, tal vez es viejo y famoso, pero yo recién lo veo. Tiene un motonaso de recursos, hasta tutoriales en castellano.
Esta muy bueno!!
Dejo link:
http://docs.scala-lang.org/
miércoles, 1 de julio de 2015
Vert.x construyendo aplicaciones reactivas en jvm
Vert.x es un framework java para la construcción de aplicaciones asíncronas, basadas en eventos y no bloqueantes. Esto significa que con Vert.x podemos obtener aplicaciones concurrentes con un mínimo de complejidad, y un hardware mínimo.
Para ser más explicativo se compara Vert.x con Node.js, por lo que se puede inferir que Vert.x fue pensado para ser concurrente, asíncrono y barato.
Otra ventaja de este framework es que es poliglota es decir podemos escribir aplicaciones en varios lenguajes, veamos un ejemplo:
Java:
public class Server extends AbstractVerticle {
public void start() {
vertx.createHttpServer().requestHandler(req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8080);
}
}
Ruby:
vertx.create_http_server().request_handler() { |req|
req.response()
.put_header("content-type", "text/plain")
.end("Hello from Vert.x!")
}.listen(8080)
Javascript:
vertx.createHttpServer()
.requestHandler(function (req) {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8080);
Groovy:
vertx.createHttpServer().requestHandler({ req ->
req.response()
.putHeader("Content-Type", "text/html")
.end("Hello from Vert.x!")
}).listen(8080)
Como vemos Vert.x proporciona una API en varios lenguajes que da soporte.
Dejo link:
http://vertx.io/
http://vertx.io/docs/
Para ser más explicativo se compara Vert.x con Node.js, por lo que se puede inferir que Vert.x fue pensado para ser concurrente, asíncrono y barato.
Otra ventaja de este framework es que es poliglota es decir podemos escribir aplicaciones en varios lenguajes, veamos un ejemplo:
Java:
public class Server extends AbstractVerticle {
public void start() {
vertx.createHttpServer().requestHandler(req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8080);
}
}
Ruby:
vertx.create_http_server().request_handler() { |req|
req.response()
.put_header("content-type", "text/plain")
.end("Hello from Vert.x!")
}.listen(8080)
Javascript:
vertx.createHttpServer()
.requestHandler(function (req) {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8080);
Groovy:
vertx.createHttpServer().requestHandler({ req ->
req.response()
.putHeader("Content-Type", "text/html")
.end("Hello from Vert.x!")
}).listen(8080)
Como vemos Vert.x proporciona una API en varios lenguajes que da soporte.
Dejo link:
http://vertx.io/
http://vertx.io/docs/
lunes, 29 de junio de 2015
Introducción a la Programación con Python, Andrés Marzal & Isabel Gracia
Quiero recomendar el siguiente libro gratuito, con el siguiente me refiero a :Introducción a la Programación con Python de los autores: Andrés Marzal y Isabel Gracia.
A la vez aprovecho a recomendarles, el sitio www.freelibros.org que tiene muy buenos libros gratuitos, muy buenos.
Dado este consejo, les dejo el link:
http://www.freelibros.org/libros/introduccion-a-la-programacion-con-python-andres-marzal-isabel-gracia.html
A la vez aprovecho a recomendarles, el sitio www.freelibros.org que tiene muy buenos libros gratuitos, muy buenos.
Dado este consejo, les dejo el link:
http://www.freelibros.org/libros/introduccion-a-la-programacion-con-python-andres-marzal-isabel-gracia.html
domingo, 28 de junio de 2015
Por qué deberías aprender programación funcional ya mismo
Quiero compartir un excelente video sobre programación funcional:
viernes, 26 de junio de 2015
Esta disponible Eclipse Mars!!
Estoy bajando eclipse mars por lo que esta disponible!!
Entre otras cosas hay una mejora importante en la performance, sin más dejo los links:
http://www.eclipse.org/
https://projects.eclipse.org/releases/mars
miércoles, 24 de junio de 2015
ECMAScript 2015 esta aprobado
La Asamblea General de Ecma International ha anunciado la aprobación de ECMA-262 sexta edición, que es la especificación del lenguaje ECMAScript de 6 (ES6), también conocido como ECMAScript 2015.
JavaScript fue creado por Brendan Eich en el 95, pero necesitó 20 años para evolucionar algunas de las características que son populares en otros idiomas modernos. JavaScript no era un gran lenguaje para empezar, pero fue una gran idea: un lenguaje para el navegador. JavaScript llamar la atención de inmediato, que se somete a la estandarización del año siguiente, con la versión 1.0 que sale de Ecma en 1997, seguido por 2,0, con algunos cambios de menor importancia, en 1998, y luego 3,0, con algunas novedades, en 1999.
La noticia es porque se acaba de aprobar una nueva versión de este estandard, con lo que van a llegar nuevas funcionalidades a javascript.
dejo link: http://www.infoq.com/news/2015/06/ecmascript-2015-es6
JavaScript fue creado por Brendan Eich en el 95, pero necesitó 20 años para evolucionar algunas de las características que son populares en otros idiomas modernos. JavaScript no era un gran lenguaje para empezar, pero fue una gran idea: un lenguaje para el navegador. JavaScript llamar la atención de inmediato, que se somete a la estandarización del año siguiente, con la versión 1.0 que sale de Ecma en 1997, seguido por 2,0, con algunos cambios de menor importancia, en 1998, y luego 3,0, con algunas novedades, en 1999.
La noticia es porque se acaba de aprobar una nueva versión de este estandard, con lo que van a llegar nuevas funcionalidades a javascript.
dejo link: http://www.infoq.com/news/2015/06/ecmascript-2015-es6
sábado, 20 de junio de 2015
Cabal
Cabal es como maven pero para Haskell. Bien resumido...
Cabal es el sistema de paquetes estándar para el software de Haskell. Ayuda a la gente para configurar, compilar e instalar el software de Haskell y para distribuir fácilmente a otros usuarios y desarrolladores.
Es una herramienta de línea de comandos para trabajar con paquetes. Ayuda con la instalación de paquetes existentes y también ayuda a las personas que desarrollan sus propios paquetes. Se puede utilizar para trabajar con paquetes locales o instalar paquetes en línea, incluyendo la instalación de dependencias automáticamente. Por defecto está configurado para utilizar Hackage que es archivo paquete central de Haskell que contiene miles de bibliotecas y aplicaciones en el formato de paquete de Cabal.
Todo muy lindo pero como empezamos? bueno un buen comienzo es instalando cabal y luego cabal init ...
Dejo link:
https://www.haskell.org/cabal
viernes, 19 de junio de 2015
Traducción de Haskell a JavaScript de algunas partes de la mejor introducción a mónadas que jamás he leído
Que buen titulo!! y que real!!
Costo mucho conseguir esta explicación pero sin duda es la mejor. Si estas deseoso de saber que es un monad y para que se utiliza, por favor lee este articulo que lo deja más que claro.
Dejo link:
http://www.programania.net/diseno-de-software/traduccion-de-haskell-a-javascript-de-algunas-partes-de-la-mejor-introduccion-a-monadas-que-jamas-he-leido/
javascript.com
A la gente de codeschool, se les ocurrió hacer una pagina para promocionar javascript y así nació javascript .com
Que es una pagina para aprender este lenguaje, por ahora tiene un tutorial que se parece a un "try" pero seguramente que más adelante incorporen cosas más avanzadas.
Por ahora si no tenes ni idea de javascript y te gusta aprender este sitio es para vos!!
Dejo link:
https://www.javascript.com/
domingo, 14 de junio de 2015
Apache Parquet es Top-Level Apache Project
Leyendo infoQ, me entero que Apache Parquet es un top-level project. Para el que no sabe que es un top-level project, es como que la organización Apache nos aconseja que le demos importancia y que la organización le va a dar mayor prioridad.
Pero que es Apache Parquet? Básicamente es una base de datos o mejor dicho un almacén de datos basado en columna. Tiene la particularidad de que esta disponible para cualquier proyecto en el ecosistema Hadoop, independientemente de la elección del framework de procesamiento de datos, modelo de datos o lenguaje de programación.
Parquet está construido para soportar esquemas de compresión y codificación muy eficientes. Parquet permite esquemas de compresión que se especificarán a nivel de columna, y se pueden agregar más esquemas.
Dejo link:
sábado, 13 de junio de 2015
La belleza del código bien escrito
qsort1 :: Ord a => [a] -> [a]
qsort1 [] = []
qsort1 (p:xs) = qsort1 lesser ++ [p] ++ qsort1 greater
where
lesser = [ y | y <- xs, y < p ]
greater = [ y | y <- xs, y >= p ]
Cuando uno ve este algoritmo en Haskell nota claramente que programar de forma declarativa tiene sus recompensas. Este algoritmo (para el que no se dio cuenta) es el quicksort.
El algoritmo nos indica (usando pattern matching) que si viene una lista vacía, retorne una lista vacía. Si no es el caso, retorne una lista conformada por los menores del primer elemento ordenados con
quicksort, el primer elemento y los mayores al primer elemento tambien ordenados con quicksort.
Entre otros detalles podemos ver que se utiliza pattern matching, recursividad y listas por compresión.
Es muy claro lo que hace tanto que no es necesario documentar en lo más mínimo. No es necesario ningún comentario.
Comparto esto para que comulguen con mi idea que todo se puede mejorar y vale la pena seguir estudiando para hacer código bonito.
qsort1 [] = []
qsort1 (p:xs) = qsort1 lesser ++ [p] ++ qsort1 greater
where
lesser = [ y | y <- xs, y < p ]
greater = [ y | y <- xs, y >= p ]
Cuando uno ve este algoritmo en Haskell nota claramente que programar de forma declarativa tiene sus recompensas. Este algoritmo (para el que no se dio cuenta) es el quicksort.
El algoritmo nos indica (usando pattern matching) que si viene una lista vacía, retorne una lista vacía. Si no es el caso, retorne una lista conformada por los menores del primer elemento ordenados con
quicksort, el primer elemento y los mayores al primer elemento tambien ordenados con quicksort.
Entre otros detalles podemos ver que se utiliza pattern matching, recursividad y listas por compresión.
Es muy claro lo que hace tanto que no es necesario documentar en lo más mínimo. No es necesario ningún comentario.
Comparto esto para que comulguen con mi idea que todo se puede mejorar y vale la pena seguir estudiando para hacer código bonito.
viernes, 12 de junio de 2015
Learn AngularJS
Codecademy creo un curso de Angular.js. Angular esta tomando el lugar de todos los demás frameworks javascript, por lo que es casi obligatorio aprenderlo.
Dejo link:
http://www.codecademy.com/en/learn/learn-angularjs
jueves, 11 de junio de 2015
Opal el nuevo lenguaje Orientado objeto con aires Funcionales
Opal el nuevo lenguaje Orientado objeto (es nuevo para mi) que tiene como objetivo remplazar a C, C++, Java, C#, Eiffel, Simula, and SmallTalk, y tambien:
- Mejorar la implementación de la programación orientada a objetos
- Introducir ideas del paradigma funcional
- Ser de bajo nivel y de alto nivel.
- Usar técnicas avanzadas de compilación para hacer programas más eficientes.
Entre sus características podemos destacar que es un lenguaje multiparadigma (procedural, orientado a objeto y Funcional) se pueden utilizar inmutables, clausuras, object, ASAP Garbage Collection, ect.
Como se ve un programa en Opal? bueno veamos un hola mundo:
IMPLEMENTATION GCD
IMPORT Nat COMPLETELY
DEF GCD(a,b) == IF a % b = 0 THEN b
ELSE IF a-b < b THEN GCD(b,a-b)
ELSE GCD(a-b,b)
FI
FI
Dejo link:
http://www.cs.oberlin.edu/~jwalker/opal/
Swift 2.0, ahora es open source y con soporte para Linux
Si como lo escuchan Swift es open sorce. Como lo notan se están moviendo la cosa a para nuestro lado.
Swift es el lenguaje nuevo de apple que nos va a permitir escribir aplicaciones para IOS.
Dejo link:
http://www.applesfera.com/general/swift-2-0-ahora-es-open-source
JDK 8 Massive Open and Online Course: Lambdas and Streams Introduction
Oracle nos brinda un un curso masivo y gratuito basado en lambda y sobre Streams.
Lambda es la nueva característica más importante y al parecer oracle nos quiere capacitado en esta características.
Dejo link:
https://apexapps.oracle.com/pls/apex/f?p=44785:145:0::::P145_EVENT_ID,P145_PREV_PAGE:4887,143
Lambda es la nueva característica más importante y al parecer oracle nos quiere capacitado en esta características.
Dejo link:
https://apexapps.oracle.com/pls/apex/f?p=44785:145:0::::P145_EVENT_ID,P145_PREV_PAGE:4887,143
Suscribirse a:
Entradas (Atom)