Translate

lunes, 28 de enero de 2013

La programación Funcional puede causar problemas en Java?

La programación Funcional puede causar problemas en la plataforma Java? Es bueno utilizar Programación Funcional en la plataforma Java? es eficiente?

Un filosofo dijo una vez un lenguaje es bueno en cuanto podamos resolver problemas de la mejor manera, como el conjunto de problemas es grande, son muchos los lenguajes buenos para resolver diferentes problemas. Entre ellos de encuentran los lenguajes funcionales, los cuales son muy buenos para resolver algunos problemas. Pero esta bien incluir lenguajes funcionales en una plataforma que no fue  concebida para soportarlos?

En el siguiente link se encuentra un post que puede ser de gran ayuda para aclarar este tema:
http://java.dzone.com/articles/functional-programming-java-%E2%80%93

sábado, 26 de enero de 2013

Corre Linux Corre




El libro "Corre Linux Corre" es un proyecto desarrollado para la comunidad del software libre, dirigido especialmente a los usuarios de la distribución Ubuntu (Gnu Linux).

Este es un libro NO oficial. Se reconocen las licencias de las aplicaciones, que la marca Linux esta registrada por Linus Torvalds y la marca Ubuntu por la empresa Canonical.





Dejo link:
http://dl.dropbox.com/u/1084633/Corre%20Linux%20Corre%20Cap%C3%ADtulo%201.pdf


RIA con Lienzo y Flash4j



Emitrom es una compañía que ha tomado la iniciativa de trabajar con productos open source y sobre la capa de presentación. En este post quiero mencionar a Lienzo y Flash4j.

Lienzo es una librería GWT que permite dibujar en HTML 5 con el Canvas. Con Lienzo podemos generar animaciones, juegos, proceso de imágenes, etc. También podemos utilizar drag and drop,  transformaciones, rotación, escalar, filtrar y renderizar imágenes,  etc.  Lienzo fue liberado con licencia Apache 2.

Desarrollo en Flash se asocia típicamente con ActionScript, un lenguaje de scripting que podría ser  dificultoso para desarrolladores  Java que no están acostumbrados a lenguajes de script (una barrera similar a veces es JavaScript). Flash4j ofrece a cambio una completo; la API que provee Flash4j es totalmente Java y además es similar a la encontrada en Swing, GWT o Wicket. Flash4j ofrece integración con Apache Flex y Adobe Air. Flash4j también fue liberado con licencia Apache 2.

Dejo links:
http://emitrom.com/lienzo
http://emitrom.com/flex4j


viernes, 25 de enero de 2013

Groovy 2.1.0 Released!



Una buena noticias para todos tenemos un nuevo release de Groovy. Entre las características encontramos que ahora utiliza Dynamic Invoke que lo que permite es mejorar la performance cuando usamos clousers.   

También tenemos la anotación @DelegatesTo que permite el chequeo estático de tipos pensado para  DSLs. Además contamos con meta-anotaciones que nos permiten agrupar anotaciones. 

Muy buena noticia!!



miércoles, 16 de enero de 2013

Spring Framework 4.0


Del blog de spring framework al mundo, se anuncia Spring Framework 4.

Como explica en el blog, con Spring 3 se puede configurar todo spring con Java y se mejoro el desarrollo REST con lo que se centraron en Java 7 y Servlet 3.0

Ahora Spring 4 se va a centrar en cuestiones del desarrollo empresarial, lo que se espera de Spring 4 es:
  • Soporte para Java 8
  • Configuración e implementación de aplicaciones Spring con Groovy 2
  • Soporte para las tecnologías Java EE 7
  • Soporte para JSR-356 (aplicaciones con arquitectura basadas en WebSocket)
  • Actualización de dependencias. 
  • Mensajería dentro de nuestra aplicación. 
Todavía no probé a fondo Spring 3 y ya esta llegando el 4! 

Dejo link:
http://blog.springsource.org/2013/01/16/next-stop-spring-framework-4-0/


martes, 15 de enero de 2013

Mi nuevo Linux!!



Acabo de instalar Linux Mint 14 (Nadia) con interfaz cinnamon. Mi primera impresión fue buena se instalo todo muy rápido y no tuve problemas con restaurar mi perfil, archivos y otras cosas.  Mi segunda impresión no fue tan buena, con cinnamon no nos llevamos del todo bien. Tuvo un error feo  y se colgó. Luego hizo cosas extrañas, por ejemplo el menú por ahí es como que se borran items y luego vuelven. Como que me dio la impresión que no esta 100% estable. Pero bue, ya instale este y si veo que tiene más errores me vuelvo a mate.

A alguien le pasa esto? como lo puedo solucionar?

De igual forma estoy contento con mi nuevo Linux!!

lunes, 14 de enero de 2013

La resurrección de Qt


Qt es el corazón del entorno de escritorio KDE; Qt tuvo mucha mala suerte comercialmente. Pero técnicamente fue creciendo; la gente la creía muerta pero Qt nunca murió y ha estado muy presente en muchas de las aplicaciones que usamos normalmente como Skype, Google Earth, VLC…

Qt nos trae una nueva versión que tienen muchas novedades. Tenemos un aumento del rendimiento y un mejor aprovechamiento del hardware, soporte para C++ 11, HTML5 a través de QtWebKit 2, un aumento en el número de APIs que ayudarán al desarrollo, retrocompatibilidad con Qt 4 y sobre todo una fácil portabilidad entre plataformas.

Qt es una gran Api con una gran potencia, esperemos que el mercado retome su uso, y Qt vuelva con todo!!

Dejo un vídeo:




Dejo link: 



Oracle NoSQL Database



Oracle para ofrecer servicios relacionados a Big Data, ve un punto estratégico NoSQL. Por lo tanto creo un producto NoSQL el cual ya hablamos en este blog. Siempre hay que estar atento a los movimientos de esta empresa que algo sabe de datos.


Hace muy poco anuncio una nueva versión Oracle NoSQL 2.0, y se puede descargar 2 versiones una community (con licencia AGPL)  y otra enterprise (licencia comercial y soporte técnico).


Esta versión llega con una mayor integración con Oracle Database y la plataforma Hadoop, hasta tal punto que es posible gestionar estos entornos desde la misma pila de recursos de TI.

De entre las novedades destacables se encuentra la alta escalabilidad y la baja latencia para dar respuesta en tiempo real a las cargas de trabajo que se producen con los grandes volúmenes de información. Así, se mejoran las transacciones con grandes objetos no estructurados como documentos e imágenes, de tal forma que se puedan mover por los distintos recursos de almacenamiento disponibles en función de las necesidades concretas.


Es claro donde van todas las empresas, todos quiere posicionarse en el mercado de Big Data y vender servicios en la nube y Oracle no es la excepción.

Dejo link:
http://www.oracle.com/technetwork/products/nosqldb/overview/index.html

Nace Miríada X, una plataforma gratuita para cursos en Español



Se acuerdan de coursera, Miríada X es muy similar pero todos los cursos son en español. Su pagina dice lo siguiente:

"Miríada X ofrece una plataforma a los docentes o equipos docentes de cualquiera de las universidades iberoamericanas que conforman la Red Universia en la que poder crear e impartir Cursos Online Masivos en Abierto (más conocidos como MOOC's), accesibles para todo el mundo de manera gratuita."

Es una gran idea!!

Dejo link:
http://www.miriadax.net/


viernes, 11 de enero de 2013

Griffon 1.2.0 released!


Griffon es un framework similar a Grails pero en vez de ser una interfaz web, es una interfaz de ventana. Es decir utiliza Swing Application Framework (JSR 296); ahora soporta SWT y JavaFx. Al igual que Grails utiliza Groovy como lenguaje.

La Noticia es que se viene una nuevo release con importantes novedades. El framework me parece una gran idea, es el primero que conozco de este tipo. Esperemos que siga creciendo.

Dejo link:
http://docs.codehaus.org/pages/viewpage.action?pageId=230396594
http://griffon.codehaus.org/

jueves, 10 de enero de 2013

Software libre para una sociedad libre


Richard Stallman es el creador del sistema GNU y la GPL, pilares básicos del Software libre. En 2002, GNU Press publica la primera edición de su libro: Free Software, Free Society: Selected Essasys of Richard M. Stallman.

En el libro, Stallman intenta hacernos comprender como los fabricantes de software y sus prácticas monopólicas están retrasando la evolución de la informática.

El libro esta en español.

Dejo link:
http://www.gnu.org/philosophy/fsfs/free_software.es.pdf

El blog recomendado de la semana: Softwarez Live



Softwarez Live es un blog para los que empezamos en python, tiene vídeo tutoriales y muy buena info espero que crezca.

Dejo link: http://softwarezlive.blogspot.com.ar/

Strings y GString, Tratando cadenas con Groovy


Dado el ultimo post y que me gusta comparar lenguajes, veamos como Groovy trata los Strings. 


Groovy permite el uso de " y de ' similar a javascript. De esta forma podemos usar uno o el otro según nos convenga; por ejemplo:


"Hola me llamo: 'Pepe'" o 'Hola me llamo: "Pepe"'


Groovy permite concatenar strings con el + :



a = "world"
print "hello " + a + "\n"

""" permite tener string multilinea por ejemplo:



def text = """\
Hola Pepe!
Como estas?
"""

Es posible utilizar notación para literales de cadena que tienen otras ventajas como por ejemplo no se necesita barras invertidas adicionales para escapar caracteres especiales. Esto es especialmente útil con expresiones regulares o nombres de archivos de Windows.



def s = /.*foo.*/
def dirname  = /^.*\//
def basename = /[Strings and GString^\/]+$/

GString permite interpolación de cadenas similar a Velosity, JExl o JSP EL.  



foxtype = 'quick'
foxcolor = ['b', 'r', 'o', 'w', 'n']
println "The $foxtype ${foxcolor.join()} fox"

Internamente lo que pasa es que si una cadena contiene un ${...}  el compilador se da cuenta y instancia GString. GString trabaja la interpolación como lazy evaluation; lo que permite muchísimo. 


println new Date()



x = "It is currently ${ new Date() }"
assert x.values[0] instanceof Date
y = "It is currently ${ writer -> writer << new Date() }"
assert y.values[0] instanceof Closure
sleep 5000
println x
println y

GString también le permite usar clusures de la siguiente forma:


def deepest = {-> "deepest"}
def deep = {-> "deeper and $deepest"}
println "how deep is deep? $deep"

// which is equivalent to:

println "how deep is deep? ${{-> "deeper and ${{-> "deepest"}}"}}" // for demonstrating it is a nested usage only



Otro lenguaje y otra forma de hacer las cosas. Groovy permite manejar Strings fácilmente. 


Dejo Link: 

http://groovy.codehaus.org/Strings+and+GString