blog de Sr. Negativo

Instalando lenguajes JVM usando SDKMAN!

Existe una herramienta llamada SDKMAN! que nos sirve para instalar lenguajes como Ceylon, Groovy, Scala, además de otros entornos o sdks de desarrollo como Grails, SBT, etc.

Desde Linux podemos teclear en nuestra consola de comandos:

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

Obtener ayuda:  sdk help
Que versión tenemos: sdk version
Listar lo que podemos instalar: sdk list

Comencemos instalando Ceylon, Groovy, y Scala:

sdk install ceylon
sdk install groovy
sdk install scala

Comprobemos que se instalaron adecuadamente:

ceylon --version
groovy -version
scala -version

Con esto tenemos instalados los lenguajes y la herramienta SDKMAN!.

Links
http://sdkman.io/

Aprender computación (y programación) sin computadoras


CS Unplugged es una iniciativa y una serie de actividades que tienen el objeto de enseñar computación sin necesidad de usar una computadora. En el sitio se ofrecen varios vídeos en los que se muestran diversas actividades que muestran "como funcionan las computadoras", el lenguaje que emplean para hacer "la magia" que vemos en las pantallas.

"CS Unplugged is a collection of free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around."

Habrá que echarle un vistazo.

Ceylon 1.2.2 ya está disponible

Ceylon 1.2.2 (Charming But Irrational)
http://ceylon-lang.org/blog/2016/03/11/ceylon-1-2-2/

A darle un vistazo.

Cuando no se sabe Java y dan cursos de Java

Encontré este vídeo de los cursos Java de Freddy Vega. Tan solo véanlo y analicenlo.

Aquí vídeo

¡Feliz año 2016!

Herencia e interfaces en Ceylon


Hace tiempo que no escribo nada y que mejor volviéndolo hacer sobre Ceylon.

Interfaces

Las interfaces son una colección de métodos y propiedades que permiten a una clase definir su implementación. Si en esa colección defino un método llamado  comer() la clase se encargará de implementarlo cuando corresponda a la lógica del problema. Por ejemplo, una clase llamada Animal y/o Persona pueden emplear ese método, sin embargo, una clase llamada Maquina y/o Turbina podría usarse un método más adecuado como encender(); o  apagar(); .

Ceylon: Interoperabilidad con Java

Ceylon nos permite la interoperabilidad con Java, podemos importar sus librerías e integrarlas a nuestro código. En este post haremos un ejemplo de como importar librerías de Java a nuestro código Ceylon.

En este caso no usaremos ningún IDE, usaremos la consola de comandos (en mi caso uso Linux). Crearemos una estructura de directorios similar a esta:

Tendremos estos tres archivos con la extensión *.ceylon:

  1. run.ceylon
  2. module.ceylon
  3. package.ceylon

Dentro de cada archivo escribiremos:

run.ceylon

shared void run(){
   print("Importando librerias de Java en Ceylon");
}

module.ceylon

module holaCeylon "1.0.0"{
    import java.base "7"; // se debe tener instalada la versión 7 del JDK
}

package.ceylon
shared package holaCeylon;

Ahora volvemos al archivo run.ceylon e importamos la librería java.util.HashMap de Java.

¿Por qué es dificil (aprender a) programar?

Falta de tiempo, poca o nula motivación, otras actividades a realizar ... un sin fin de excusas. Tal vez un poco de flojera. Para algunos realmente si es difícil aprender cualquier cosa. Para otros tan solo es necesario una buena taza de café, sentarse, leer y practicar un poco para iniciarse en el mundo de la programación.

Casi todos los lenguajes de programación se parecen o son muy similares. El problema es que muchas veces no existe la iniciativa, esperamos que las cosas nos caigan del cielo. No se estudia correctamente. Quieren aprender un lenguaje, pero desconocen los aspectos básicos: la lógica y las matemáticas(no necesariamente debe ser compleja).

Ej. 1 Operadores.

class Test{
   public static void main(String[] args){
       System.out.println(5 == 6); //false
       System.out.println(10 != 3); //true
       System.out.println(20 >= 19); //true
   }
}

Ej. 2 Operaciones booleanas.

class Test{
   public static void main(String[] args){
      int x= 20;
      if(x > 10 && x < 100){

James Gosling demanda a Oracle, pide le devuelvan el lenguaje Java


James Gosling ha demandado a Oracle para que le devuelvan el lenguaje de programación Java. Esto era de esperarse, ya que en los últimos meses no le ha gustado como el lenguaje ha ido evolucionando. Lenguajes dependientes de la Máquina Virtual Java (como Scala, Groovy, etc) también se verán afectados por esta demanda pues exige que Java es el único lenguaje de programación que él creó para esa implementación(sic).

En una entrevista para un diario inglés Gosling afirmo que: "no voy a permitir que sigan deteriorando el lenguaje, el lenguaje es puramente orientado a objetos no lo diseñé para implementar la programación funcional"

Todo parece que esta presionando a Oracle porque pretende vender el lenguaje a una empresa de Corea del Norte, puesto que los asiáticos desean modificarlo con fines militares y le ofrecen una gran suma multimillonaria.

Los abogados de Oracle le están ofreciendo una suma similar y un puesto vitalicio en la empresa, pero todo parece que Gosling no esta nada contento con ello.

Un ejemplo con NiconNotify OSD

Acaba de salir la nueva versión de la librería NiconNotify OSD , la cual provee clases para crear mensajes tipo "alert" de Java Swing.

Código

package org.javamexico.task;

import javax.swing.UIManager;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;

import nicon.notify.core.Notification;

public class TestNiconNotify {

    public static void main(String[] args) {
        try{
            UIManager.setLookAndFeel(new NimbusLookAndFeel());
            int respuesta=Notification.windowConfirmMessage(null, "Confirmacion", "Desea borrar Windows de sus sistema?");
            if(respuesta==1){
                Notification.windowMessage(null, "Respuesta", "Claro, quiero eliminar Windows de mi sistema");
            }else{
                Notification.windowMessage(null, "Respuesta", "No, todavia no.");
            }
           
        }catch(Exception ex){
            System.err.println("error: "+ex.getCause());
        }

    }

}

Ejecutando código:

Distribuir contenido