Translate

miércoles, 11 de septiembre de 2013

Se viene, se viene la JDK 8


Ya es de publico conocimiento que Oracle esta trabajando en la versión 8 de su Lenguaje de programación denominado Java. Lo que tal vez no sabían es que ya esta la descarga el preview de esta nueva versión, la principal característica es lamda pero también hay muchas más les dejo un link:

http://openjdk.java.net/projects/jdk8/features

Y dejo un link de la descarga:
http://jdk8.java.net/download.html

lunes, 9 de septiembre de 2013

domingo, 8 de septiembre de 2013

Cuales son las carreras con mayor salida laboral?

Algo tiene que ver con el blog, este vídeo muestra como se esta eligiendo mal las carreras, es muy bueno, es bastante viejo también, pero creo que la situación no cambio o empeoro.

viernes, 6 de septiembre de 2013

Webinar Gratuito sobre TDD Avanzado

Me llego un mail de la gente de 10Pines sobre una invitación a un Webinar sobre Tdd avanzado, parece muy bueno. Ya me inscribí!!

Les transcribo el mail:

Descripción:

Si te interesa saber cómo aplicar TDD en un sistema existente, acoplado con la base de datos y que parece imposible de testear, entonces este Webinar te ayudará a lograrlo.
Para ello utilizaremos como ejemplo concreto un sistema existente, e iremos transformándolo paso a paso, por medio de la aplicación sucesiva de refactorings, en una aplicación testeable y entendible.
¡No dejes de anotarte! El Webinar es gratis y te aseguramos que aprenderemos mucho.

Fecha:

  • Martes 10 de Septiembre, 2013 - 19 hrs (Argentina - GMT -3)

Objetivos:

  • Mostrar cómo convertir un sistema que parece imposible de testear en un sistema testeable
  • Mostrar cómo mejorar el diseño de una aplicación aplicando una serie de refactorings para lograrlo
  • Aplicar técnicas y heurísticas de diseño que nos permitirán detectar problemas de diseño y mejorarlo

Duración:

  • 1 hora

Pre-Requisitos:

  • Tener cierto conocimiento sobre TDD
  • Tener experiencia desarrollando aplicaciones 

Lenguaje de Programación:

  • Se utilizará Java para el ejemplo, sin embargo todo lo que se mostrará es aplicable a otros lenguajes como C#, Ruby, Phyton, Smalltalk, etc.
  • No es necesario conocer Java a la perfección para entender lo que veremos.

Inscripción

¿Cómo te podés anotar?: Completá el formulario de inscripción indicando tu nombre, empresa y datos de contacto. 
¿Tenés preguntas?: No dudes en comunicarte con nosotros.

jueves, 5 de septiembre de 2013

miércoles, 4 de septiembre de 2013

Learn X in Y minutes

Una muy buena pagina para aprender lenguajes de programación, muestra un resumen de los lenguajes para que se puedan aprender rápidamente; entre otras cosas tiene:

  • Where X=c
  • Where X=clojure
  • Where X=coffeescript
  • Where X=Common Lisp
  • Where X=c#
  • Where X=dart
  • Where X=elisp  
  • Where X=elixir
  • Where X=erlang
  • Where X=F#
  • Where X=Go
  • Where X=Groovy
  • Where X=haskell
  • Where X=haxe
  • Where X=java
  • Where X=javascript
  • Where X=julia
  • Where X=LiveScript
  • Where X=lua
  • Where X=Matlab
  • Where X=Objective-C
  • Where X=perl
  • Where X=php
  • Where X=python
  • Where X=R
  • Where X=racket
  • Where X=ruby
  • Where X=Scala
  • Where X=Visual Basic
  • Where X=whip

Dejo link: http://learnxinyminutes.com/

La Biblia de Linux


Quiero compartir este libro que es un libro de la red users, que saco hace tiempo, es la biblia y hay que respetarla!!!

Dejo link:
https://docs.google.com/file/d/0Bx4oucvoagb0VTF4Y2V1X3UzdEk/edit

Effective Scala


Quiero compartir con ustedes este libro gratuito, que a simple vista parece muy bueno...

Dejo el link: http://twitter.github.io/effectivescala/

lunes, 2 de septiembre de 2013

DB-Engines Ranking

Existe un ranking de base de datos, en realidad de almacenes de datos porque hay del tradicional entidad-relación al NoSQL. Bien no se de donde toman los datos pero se ve coherente.

Dejo link:
http://db-engines.com/en/ranking

domingo, 1 de septiembre de 2013

Java to Scala cheatsheet



Quería hacer un post similar en español hace rato, o por lo menos traducir este, pero no me da el tiempo. Lo dejo para más adelante. Luego de la salvedad, quiero compartir con ustedes este post que nos muestra la forma de hacer cosas en Java y en Scala.


No me gustan las comparativas con Java, dado que Java corre con desventaja tiene muchos años de existencia, la realidad cambio y nuestras cabezas también. Y en mi opinión esta bien que Java no haya cambiado; mejor es que nazcan otros lenguajes. Si java va evolucionando según el mercado se forma un engendro, que tenes 10 formas de hacer algo y nunca sabes cual es la mejor.


Me gusta mucho el camino que esta siguiendo la plataforma Java.



Luego de enredarme demasiado, dejo el link:
http://techblog.realestate.com.au/java-to-scala-cheatsheet/

sábado, 31 de agosto de 2013

Leiningen, el maven de Clojure

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/

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:

 


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.

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:

  • 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.