Translate

lunes, 3 de diciembre de 2012

La Google Developers Academy está disponible en español

En realidad el titulo de la noticia es "La Google Developers Academy está disponible en España" pero lo que me importa a mi es que este en español. Por favor no se ofenda ningún español.

Google para potenciar el uso de sus plataformas ha decidido crear la Google Developers Academy donde ofrecerá clases online, tutoriales, ejemplos y en definitiva todo lo necesario para que usar sus distintas plataformas nos resulte fácil y atractivo.

Dejo la fuente: http://www.genbetadev.com/formacion/la-google-developers-academy-esta-disponible-en-espana

y dejo el link: https://developers.google.com/academy/?hl=es


Utilizando ExpandoMetaClass con Groovy




En el post anterior hablamos de categorías, ahora vamos a utilizar ExpandoMetaClass para agregar un método a una clase:

import org.apache.commons.lang.StringUtils

String.metaClass.capitalize = {
   StringUtils.capitalize(delegate)
}

assert "Groovy" == "groovy".capitalize()

Hemos agregado el método capitalize pero esto no es temporal como cuando usabamos "use". Este método va a quedar en la clase, dado que lo registramos. Con esta técnica se puede agregar métodos nuevos o sobrecargar métodos existentes.

ExpandoMetaClass incluye alguna extension / hooks que se puede utilizar para cambiar la forma en que se comporta una clase o un objeto, podemos hacer lo siguiente:

  • getProperty / setProperty: control de acceso
  • invokeMethod: podemos escribir este método y cada vez que necesite un método se va a llamar la función que necesitamos. Se puede implementar algo como AOP. 
  • methodMissing y propertyMissing: Podemos escribir escribir estos métodos para que se comporten de forma más amable.  


ExpandoMetaClass es una gran mejora sobre lo que ya ha proporcionaba Groovy pero también tiene sus peculiaridades, por ejemplo, la herencia no está activado por defecto (porque va a causar un impacto en el rendimiento)

Dejo link:
http://groovy.codehaus.org/ExpandoMetaClass

Metaprogramación en Groovy, hoy categorías


Groovy es un lenguaje estáticamente tipado por lo tanto no necesitamos definir los tipos; esta característica sumada a la metaprogramación puede ser muy potente.

Todos los objetos en groovy tienen una metaclass responsable de mantener la informacion de las clases. Siempre que llames a un método de un objeto, groovy utiliza un mecanismo de despacho que utiliza esta metaclass. Este mecanismo se puede modificar, groovy ofrece formas de modificarlo, por ejemplo categorías.

Las categorías es un mecanismo muy simple que sigue las siguientes reglas:

  • Los métodos estáticos son candidatos para ser métodos de categorías 
  • No es necesario implementar nuevas clases o interfaces
  • El tipo del primer parámetro, es el tipo del objeto que va a recibir el método.   

Veamos un ejemplo:

class Pouncer {
       static pounces( Integer self ){
                 (0..<self).inject("") { s, n -> s += "boing! " }
        }
}  

use( Pouncer ) {
       assert 3.pounces() == "boing! boing! boing! "
}

La magia sucede con la palabra clave use, donde decimos que la clase integer puede ejecutar pounces. El metodo se puede utilizar solo en scope de use.   Con este mecanismo podemos darle un metodo a una clase por un corto tiempo. Se podria utilizar pafra darle logica a objetos livianos.

sábado, 1 de diciembre de 2012

Calligra, suitte ofimática multiplataforma y libre!



Calligra es una suitte ofimática multiplataforma creada a partir de KOffice, es totalmente libre y de carácter Open Source, creada en un principio para KDE aunque es totalmente independiente de este.


Calligra Suite utiliza el formato de documento abierto y estándar OASIS OpenDocument de forma nativa. Además, incluye filtros de importación para poder trabajar con algunos formatos de fichero de otras suites ofimáticas.

Calligra Suite tiene en cuenta parcialmente la internacionalización: los documentos usan la codificación unicode y permite escribir textos en lenguas que escriben de derecha a izquierda (árabe o hebreo), aunque todavía no en lenguas que escriben de arriba a abajo.

Para automatizar procesos Calligra Suite permite hacer scripts en varios lenguajes de programación como Python, Ruby y JavaScript.


Calligra acaba de ser actualizada a la versión 2.5.4 la cual corrige errores de importancia de Calligra 2.5.3, así que se aconseja aplicar esta actualización lo antes posible.

Dejo link:
http://www.calligra-suite.org/

martes, 27 de noviembre de 2012

Cual es el próximo lenguaje java?

InfoQ realiza una encuesta preguntando, cual va ser el próximo lenguaje que va a triunfar en la JVM. A votar!

Que piensan? Cual es el próximo lenguaje? que lenguaje hay que ir estudiando?

Dejo link:
http://www.infoq.com/research/next-jvm-language?utm_source=infoqresearch&utm_campaign=lr-homepage

domingo, 25 de noviembre de 2012

Implementando la orientación a objetos con prototipos con Self




Self es un lenguaje orientado a objetos, pero sin clases. Self esta basado en el concepto de prototipos, es decir que un objeto se construye a partir de otro. Ya hablamos de IO un lenguaje prototipado, inspirado en Self. Conocen otro lenguaje prototipado? Si, javascript!

Pero continuemos con Self fue creado por David Ungar y Randall Smith en 1986  mientras trabajaban en la empresa Xerox Parc. Ellos siguieron su trabajo en la universidad de Stanford donde publicaron el primer compilador en 1990 para luego irse a la empresa Sun Microsystems. Self se puede considerar un dialecto de SmallTalk. También tiene un entorno de maquina virtual y esta basado en la simplicidad.

Self inspiro a todos los lenguajes basados en prototipos como NewtonScript, JavaScript, Io, Cel, Lisaac y Agora.

Tradicionalmente los lenguajes orientados a objetos definen clases que son como plantillas de objetos a partir de estas clases se van creando las instancias. En lenguajes dinámicos como Smalltalk las clases pueden cambiar en la ejecución del programa afectando las nuevas instancias. De esta forma si eliminamos las clases y tomamos este ultimo concepto podríamos crear objetos y dinámicamente agregándole métodos y propiedades.

Lenguajes basados en prototipos creamos un objeto a partir de otro objeto, es una copia y a esta copia se le pueden agregar o modificar métodos y propiedades de forma dinámica.  Todo es objeto y sin clases!

Dejo link: http://selflanguage.org


jueves, 22 de noviembre de 2012

Try Clojure


Una buena pagina para probar el lenguaje derivado de Lisp que corre en la maquina virtual java también en la clr de .net y compila a javascript!

Dejo el link: http://tryclj.com/

lunes, 19 de noviembre de 2012

Oracle cierra OSUM Community!



OSUM Community va ser clausurado este primero de diciembre, para el que no sabe OSUM Community era la apuesta de Sun por la comunidad educativa; era una plataforma web 2.0 con el objetivo de impartir cursos y que las universidades se sumen.

Con la muerte de Sun el proyecto se fue entibiando hasta perder fuerza, ahora Oracle quiere deshacerse de ese proyecto y quiere lanzar un sitio Oracle Academy en 2013.

Lo malo de esta movida es que no se va archivar nada de la comunidad OSUM, es decir lo van a eliminar completamente. La verdad es que me parece muy poco profesional, a una empresa como Oracle no le cuesta nada migrar foros, usuarios, post, etc. Otra movida mala de Oracle!!

Les dejo el mail que me llego con la noticia:

Dear OSUM Community,
We would like you to know that we will decommission the OSUM.sun.com community on December 1, 2012. The community content will not be archived.  Secure your content by saving it externally.
You can continue to tap into the current, industry-relevant educational resources on Java and other Oracle related topics by joining Oracle’s premiere developer communities: Oracle Technology Network (OTN) and Java.net.
As an Oracle Technology Network member, you can:
  • Choose from among hundreds of discussion forums comprising nearly 10 million messages to get crowd-sourced, actionable advice from Oracle engineers and other OTN members.
  • Download and use free software under our Developer License, with no limit. (Some downloads may have other license terms.)
  • Attend free hands-on workshops (physical and virtual): Oracle Technology Network: Developer Days, Architect Days and Admin Days.
  • Explore product and technology documentation, including the official Java APIs.
  • Get exclusive discounts and offers on books and other valuable resources.
  • And much more! 
Is Java more your main interest? Then, participation in Java.net is for you!
Java.net is a premier web-based, open community created to facilitate Java™ technology collaboration in applied areas of technology and industry solutions.
  • It is a central gathering place for Java™ technology enthusiasts and existing communities across industries, platforms, and interest groups.
  • Java developers can find and post material related to their specialized needs.
  • Access a variety of collaborative tools such as wikis, weblogs, discussion forums, mail lists, and RSS newsfeeds, as well as traditional open source tools like Subversion, Mercurial, Git, and JIRA.
  • It is the one place to find out the latest news and opinions, have conversations with other developers who share specific interests, and ultimately engage in efficient development efforts using Java™ technology.
Join Java.net today! https://java.net/people/new
Lastly, the Oracle Academy will be launching its new website in 2013, so be sure to visit www.oracle.com/academy to find out the latest Oracle and Java technology offerings for students worldwide.

Thank you for your support and continued participation!
The Oracle Academy
Visit Open Source University Meetup at: http://osum.sun.com/?xg_source=msg_mes_network
 

sábado, 17 de noviembre de 2012

Elementary Os, Linux con sabor a Mac OS X


En un post anterior hablamos de Linux Pear que era un linux que seguía el lineamiento de Mac OS X el sistema operativo de apple, ahora les presento Elementary OS. Que sigue el mismo concepto.

La principal diferencia de elementary OS en relación a la multitud de distribuciones derivadas de Ubuntu, más allá de su apariencia visual o configuraciones de escritorio, son las aplicaciones propias que se han creado: cliente de correo electrónico, gestor de archivos, calendario, reproductor de música… y unas cuantas más.

A grandes rasgos, elementary OS es una clon de Mac OS X a nivel de diseño, gratuito y libre.


Dejo un video:



Dejo link:
http://elementaryos.org/

miércoles, 14 de noviembre de 2012

Porque tantos cambios??

No se preguntaron porque tantos cambios climáticos o terremotos??


Si escribiésemos ensayos con lenguajes de programación


Apache se sube a la nube con CloudStack


Apache CloudStack es el caballito de batalla de Apache, como producto para hacer clouds privadas o publicas. Apache no tenia ningún producto de este tipo; me parece que esta llegando tarde dado que productos como Nebula o OpenStack, ya tienen un nicho en el mercado. Pero Apache es un sello de calidad.

Este proyecto es resultado de código que Citrix donó a Apache en abril de este año. Aunque se encuentre en la incubadora imagino que Apache le va a dar mucha fuerza; dado que la tecnologías relacionadas con la nube tienen mucho futuro.


Apache CloudStack es un software diseñado para implementar y administrar grandes redes de máquinas virtuales, como una alta disponibilidad, infraestructura altamente escalable como Servicio (IaaS). CloudStack es utilizado por un número de proveedores de servicios publicos y por muchas empresas para proporcionar un control sobre sobre servidores locales como una nube privada o como una solución híbrida.

CloudStack es una solución que incluye toda la "stack" de las características que esperan las organizaciones de una solución IaaS: compute orchestration, Network-as-a-Service, usuario y cuentas administradas, una API nativa completa y abierta, contabilidad de los recursos, y una interfaz de usuario (UI).

CloudStack es compatible actualmente con los hipervisores más populares: VMware, KVM, XenServer y Xen Cloud Platform (XCP).

Los usuarios pueden gestionar su nube con una interfaz Web  fácil de usar, herramientas de línea de comandos, y / o una API RESTful con todas las funciones. Además, CloudStack proporciona una API que es compatible con AWS EC2 y S3 para las organizaciones que desean implementar nubes híbridas.


Dejo link:
http://incubator.apache.org/cloudstack/