He recibido de una empresa llamada Attune el siguiente mail y lo comparto:
Translate
martes, 1 de octubre de 2013
SugarJ, endulzando Java...
SugarJ el objetivo de SugaJ es hacer más natural escribir código en los lenguajes. Pongamos un ejemplo, si te toca escribir un XML en java, te vas a encontrar que java no fue hecho para eso; pero existen librerías que utilizan mecanismos que hacen más fácil, por ejemplo escribir un XML en java. Lo que pretende hacer SugarJ es agregar azúcar sintético por medio de librarías.
Las librerías que contienen azúcar sintáctico conservan la compatibilidad y auto-aplicabilidad de las librerías convencionales: azúcar sintáctico puede estar compuesta mediante la importación de múltiples librerías, azúcar sintáctico puede ser utilizado en el desarrollo de una librerías que exporta en sí azúcar sintáctico. De esta forma podremos generar DSL con librerías.
Este framework o libreía no solo existe para Java, también existe SugarHaskell.
Dejo link:
http://www.informatik.uni-marburg.de/~seba/projects/sugarj/
lunes, 30 de septiembre de 2013
Rest con PHP, más fácil imposible!!
Me toco diseñar una API REST con PHP y la verdad me da vergüenza decir que trabaje, porque es sumamente fácil,lo primero hacemos nuestra función PHP, para el ejemplo un listado de paises:
$db = new DB(); //Con este objeto me conecto a la base
$db->conectar();
$sql = 'SELECT * FROM `paises` ORDER BY `nombre`'; //Listo los paises por ejemplo
$consulta = $db->query($sql);
while ($fila = mysql_fetch_array($consulta)) {
$paises[] = $fila;
}
$data["paises"] = $paises;
echo json_encode($data); // lo imprimo formato json.
Y listo, claro que no es rest puro pero es util para publicar una función. Si quieren usar Rest puro pueden usar el metodo $_SERVER['REQUEST_METHOD'] y de esta forma saber el metodo, y si tenemos un controlador podemos hacer:
$method = $_SERVER['REQUEST_METHOD'];
// Dependiendo del método de la petición ejecutaremos la acción correspondiente.
switch ($method) {
case 'GET':
// código para método GET
break;
case 'POST':
$arguments = $_POST;
// código para método POST
break;
case 'PUT':
// código para método PUT
break;
case 'DELETE':
// código para método DELETE
break;
}
Y esto lo podemos consumir con javascript y si usamos jquery es una papa:
$.ajax({
type: "GET",
dataType: "JSON",
url: "listar_paises",
success: function(data)
{ //hacer algo
},
error: function()
{ alert("Error recuperando la lista de Paises");
}
});
Y listo!!
sábado, 28 de septiembre de 2013
GNU: 30 años de libertad
La noticia es un poco vieja pero no quiero dejar pasar la oportunidad de unirme al festejo de los 30 años de la organización GNU!
Y en los 30 años quiero recordar las palabras de Richard Stallman: '¡Unix Libre! A partir del próximo Día de Acción de Gracias comenzaré a escribir un sistema de software completo compatible con Unix llamado GNU (que significa 'Gnu No es Unix'), y lo distribuiré libremente para que todos puedan usarlo. Son muy necesarias las contribuciones de dinero, programas y equipos'.
Getting Started Apache CXF Web Service
Quiero compartir una guía para utilizar Apache CXF, el framework de apache para hacer web service. Que lo disfruten!
Dejo link:
http://www.attuneuniversity.com/ebook/getting-started-with-apache-cxf-web-service.pdf
miércoles, 25 de septiembre de 2013
Aprender de seguridad informatica con Python
Quiero dejarles estos 3 libros que están muy buenos sobre seguridad informática y como testearla con python.
Dejo link:
http://comunidad.dragonjar.org/f150/aprende-python-con-estos-3-libros-15131/
martes, 24 de septiembre de 2013
Ceylon 1.0 beta
Y con ustedes...
Pa ra ra ra ra...
Ceylon 1.0 beta. Con 3 añitos de desarrollo se libero una version beta del lenguaje Ceylon con todas las características. Lo que quiere decir que el lenguaje implemento toda la especificación. Tanto para la maquina virtual Java como a Javascript. Además de esta versión del lenguajes, también se libero un versión de su IDE. Con muchas nuevas características.
Dejo links:
http://ceylon-lang.org/blog/2013/09/22/ceylon-1/
http://ceylon-lang.org/documentation/1.0/spec/
Pa ra ra ra ra...
Ceylon 1.0 beta. Con 3 añitos de desarrollo se libero una version beta del lenguaje Ceylon con todas las características. Lo que quiere decir que el lenguaje implemento toda la especificación. Tanto para la maquina virtual Java como a Javascript. Además de esta versión del lenguajes, también se libero un versión de su IDE. Con muchas nuevas características.
Dejo links:
http://ceylon-lang.org/blog/2013/09/22/ceylon-1/
http://ceylon-lang.org/documentation/1.0/spec/
domingo, 22 de septiembre de 2013
Instalar oracle 12c en Open Suse 12.3
Open Suse me gusto mucho, es un sistema robusto y tiene varias herramientas para configurarlo; es un sistema ideal para instalar nuestra base de datos Oracle 12c.
Primero tenemos que bajar la base de datos de oracle: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html?ssSourceSiteId=ocomen
Luego hacemos un usuario llamado oracle
Luego creamos tres carpetas /oradata , /oracle y /oraInventory y le damos permiso al nuevo usuario.
Luego vamos al /etc/hosts y agregamos el nombre del servidor:
127.0.0.1 localhost oracle
Descoprimimos los 2 zips, podemos utilizar unzip o por interfaz gráfica, como quieran.
Oracle necesita que instalemos algunas librerías. Podemos usar la consola, pero yo voy a usar YAST2:
Tenemos que instalar estas librerías: (paciencia!)
binutils-2.21.1-0.7.25
gcc-4.3-62.198
gcc-c++-4.3-62.198
glibc-2.11.3-17.31.1
glibc-devel-2.11.3-17.31.1
ksh-93u-0.6.1
libaio-0.3.109-0.1.46
libaio-devel-0.3.109-0.1.46
libcap1-1.10-6.10
libstdc++33-3.3.3-11.9
libstdc++33-32bit-3.3.3-11.9
libstdc++43-devel-4.3.4_20091019-0.22.17
libstdc++46-4.6.1_20110701-0.13.9
libgcc46-4.6.1_20110701-0.13.9
make-3.81
sysstat-8.1.5-7.32.1
xorg-x11-libs-32bit-7.4
xorg-x11-libs-7.4
xorg-x11-libX11-32bit-7.4
xorg-x11-libX11-7.4
xorg-x11-libXau-32bit-7.4
xorg-x11-libXau-7.4
xorg-x11-libxcb-32bit-7.4
xorg-x11-libxcb-7.4
xorg-x11-libXext-32bit-7.4
xorg-x11-libXext-7.4
Luego vamos al directorio donde deszipiamos los instaladores y hacemos "sh runInstall" y seguimos el siguiente wizard:
y suerte!
Dejo link:
http://docs.oracle.com/cd/E16655_01/install.121/e17720/pre_install.htm#BABFDGHJ
Primero tenemos que bajar la base de datos de oracle: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html?ssSourceSiteId=ocomen
Luego hacemos un usuario llamado oracle
Luego creamos tres carpetas /oradata , /oracle y /oraInventory y le damos permiso al nuevo usuario.
Luego vamos al /etc/hosts y agregamos el nombre del servidor:
127.0.0.1 localhost oracle
Descoprimimos los 2 zips, podemos utilizar unzip o por interfaz gráfica, como quieran.
Oracle necesita que instalemos algunas librerías. Podemos usar la consola, pero yo voy a usar YAST2:
Tenemos que instalar estas librerías: (paciencia!)
binutils-2.21.1-0.7.25
gcc-4.3-62.198
gcc-c++-4.3-62.198
glibc-2.11.3-17.31.1
glibc-devel-2.11.3-17.31.1
ksh-93u-0.6.1
libaio-0.3.109-0.1.46
libaio-devel-0.3.109-0.1.46
libcap1-1.10-6.10
libstdc++33-3.3.3-11.9
libstdc++33-32bit-3.3.3-11.9
libstdc++43-devel-4.3.4_20091019-0.22.17
libstdc++46-4.6.1_20110701-0.13.9
libgcc46-4.6.1_20110701-0.13.9
make-3.81
sysstat-8.1.5-7.32.1
xorg-x11-libs-32bit-7.4
xorg-x11-libs-7.4
xorg-x11-libX11-32bit-7.4
xorg-x11-libX11-7.4
xorg-x11-libXau-32bit-7.4
xorg-x11-libXau-7.4
xorg-x11-libxcb-32bit-7.4
xorg-x11-libxcb-7.4
xorg-x11-libXext-32bit-7.4
xorg-x11-libXext-7.4
Luego vamos al directorio donde deszipiamos los instaladores y hacemos "sh runInstall" y seguimos el siguiente wizard:
Si tienen licencia deben llenar el mail.
Le pongo skip porque no quiero que se actualice.
Acá llenamos todos los datos, el password también!
y suerte!
Si todo va bien Oracle nos pedirá correr unos scripts:
Solo hay que logearse como root y correrlos.
Luego configuramos la instancia. Y listo!
http://docs.oracle.com/cd/E16655_01/install.121/e17720/pre_install.htm#BABFDGHJ
¿Qué es la CDPedia?
Que sucede con las escuelas o personas que no tienen acceso a internet? No pueden acceder a la wikipedia? En realidad si pueden acceder y gracias a CDpedia un proyecto de pyar. Trascribo lo que dice la pagina:
Es un proyecto de Python Argentina para acceder a la información de la Wikipedia en castellano aunque no tengas una conexión a Internet.
Toda la información incluída fue obtenida de Wikipedia durante Diciembre del 2012, y es una foto del contenido on-line en un momento dado. Te sugerimos acceder a la información directamente en la Wikipedia Web si es que necesitás información actualizada de uno de los temas.
Importante: la CDPedia es Software Libre, te recomendamos (y te agradecemos) que copies estos discos y archivos, y los regales a tus amigos, familia y conocidos. La información debe ser libre, así mejoramos la calidad de nuestra educación.
Dejo link:
Dejo video:
jueves, 19 de septiembre de 2013
MonoGame - Write Once, Play Everywhere!
Poco he escrito de Mono y de juegos; y poco se en verdad. Pero nunca es tarde para aprender. Sisi ya se han escuchado en otro lado: Write Once, Play Everywhere! pero es no es solo parte del marketing, mono permite llevar la plataforma .net a cualquier lugar. Y como sabrán el framework para hacer juegos en .net es XNA.Monogame es una implementación Open Source del framework Microsoft XNA 4 Framework. El principal objetivo es llevar la plataforma para hacer juegos para Xbox 360, Windows & Windows Phone a Linux, Mac, Android, etc.
http://monogame.codeplex.com/
lunes, 16 de septiembre de 2013
10 libros para aprender Python
Dejo una buena pagina para aprender Python, en ella se describen 10 libros muy buenos para aprender Python.Dejo link: http://www.leettips.org/2013/02/top-10-free-python-pdf-ebooks-download.html
Scala Tutorials
Sacarme el sombrero ante esta pagina es poco. muy buena pagina para aprender scala. Veanlo por ustedes mismos:
http://scalatutorials.com/
domingo, 15 de septiembre de 2013
Beginning Game Programming with C#
Estoy empezando el curso "Beginning Game Programming with C#", se ve bien y tengo curiosidad sobre la plataforma XNA. También quiero probar MonoGame, etc.. Muchas cosas que desconozco de el ámbito de .net y de vídeos Juegos.
Dejo link:
https://www.coursera.org/course/gameprogramming
Dejo el vídeo:
Dejo link:
https://www.coursera.org/course/gameprogramming
Dejo el vídeo:
jueves, 12 de septiembre de 2013
Try MongoDB
Dejo link: http://try.mongodb.org/
Manual formación online de Linux
Otro link interesante sobre Linux la comunidad se ha puesto las pilas, Dejo el link:
http://formaciononline.co/manual-formacion-online-de-linux/
http://formaciononline.co/manual-formacion-online-de-linux/
Ebooks gratis en español para descargar
Quiero compartir con ustedes un link donde se puede descargar libros de Linux de forma gratuita y en español.
Dejo link:
http://usandojava.blogspot.com.ar/2013/08/libros-y-manuales-de-interes.html
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
Clojure for the Brave and True
Quiero compartir esta pagina sobre clojure, muy completa la verdad.
Les dejo el link:
http://www.braveclojure.com/
Les dejo el link:
http://www.braveclojure.com/
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:
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
Como pasar de Mysql a Mongodb.

Si bien el articulo esta en ingles me resulto muy interesante y útil, a ver que les parece...
Dejo link: http://tamaspiros.co.uk/2013/09/03/converting-your-data-from-mysql-to-mongodb/

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:
Dejo link: http://learnxinyminutes.com/
- 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
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:
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.
(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:
La programación funcional es fácil de entender, es menos propenso a errores y mucho más fácil de reutilizar. Por que?
- 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.
Por que Clojure?
Las características más importantes
de Clojure son la simplicidad y la potencia. Y esto es por sus
características:
- Programación Funcional: la programación funcional es simple y además es fácil de entender, fácil de mantener, fácil de testear
- Clojure corre sobre la plataforma Java lo que lo hace potente, los beneficios de toda la plataforma java con sus frameworks y herramientas; podemos utilizarlos en Clojure.
- Lisp es simple, lisp tiene una sintaxis sumamente simple y fácil de aprender.
- Lisp es también potente, gracias a las macros de lisp, podemos fácilmente hacer DSLs y modificar el lenguaje para hacer mucho escribiendo muy poco.
Por todas estas características
podemos afirmar que clojure es simple y potente.
viernes, 23 de agosto de 2013
Netis, Netty en Scala
Recuerdan a nuestro amigo Netty?, Netty es un framework de Jboss que provee un manejo asíncrono en aplicaciones web, un framework ideal para hacer comet o utilizar wesocket de HTML 5.
Netty es un cliente NIO infraestructura de servidor que permite el desarrollo rápido y sencillo de aplicaciones de red, tales como servidores de protocolo y los clientes. Simplifica y agiliza la programación de la red tales como TCP y UDP socket servidor.
Cuando lo usarían? Por ejemplo si quieren hacer un chat el cliente (browser) sabe cuando enviar un texto, pero es incapaz de saber cuando le contestan. Por lo tanto lo que se hacia antes (cuando era joven XD ) era tener un javascript que cada 1 minuto o menos pregunte al servidor si alguien le estaba hablando. Obviamente esto mataba al servidor si eran muchos usuarios; pero en esa época no quedaba otra.
Por suerte evolucionamos, se inventaron técnicas de comet y también websocket con html 5. Y todo más fácil con Netty!
Netis nos brinda una capa de abstracción para utilizar Netty desde scala, pero programando scala-like. Es un framework que nos permite utilizar fácilmente Netty desde scala.
Dejo link: https://github.com/prassee/netis
Netty es un cliente NIO infraestructura de servidor que permite el desarrollo rápido y sencillo de aplicaciones de red, tales como servidores de protocolo y los clientes. Simplifica y agiliza la programación de la red tales como TCP y UDP socket servidor.
Cuando lo usarían? Por ejemplo si quieren hacer un chat el cliente (browser) sabe cuando enviar un texto, pero es incapaz de saber cuando le contestan. Por lo tanto lo que se hacia antes (cuando era joven XD ) era tener un javascript que cada 1 minuto o menos pregunte al servidor si alguien le estaba hablando. Obviamente esto mataba al servidor si eran muchos usuarios; pero en esa época no quedaba otra.
Por suerte evolucionamos, se inventaron técnicas de comet y también websocket con html 5. Y todo más fácil con Netty!
Netis nos brinda una capa de abstracción para utilizar Netty desde scala, pero programando scala-like. Es un framework que nos permite utilizar fácilmente Netty desde scala.
Dejo link: https://github.com/prassee/netis
Scalapeño 2013 en parleys
Scalapeño es una conferencia sobre el lenguaje Scala y han subido vídeos de esta conferencia a parleys.
Que más decir?
Ha disfrutar!!
Dejo link:
http://parleys.com/channel/52013e6ce4b0354ac31ac5f7/presentations
Que más decir?
Ha disfrutar!!
Dejo link:
http://parleys.com/channel/52013e6ce4b0354ac31ac5f7/presentations
miércoles, 21 de agosto de 2013
Programming Principles: Functions and Objects with Professor Martin Odersky
El próximo 17 de Septiembre comienza nuevamente Programming Principles: Functions and Objects con el profesor Martin Odersky, el creador de Scala. El que no haya hecho este curso se lo recomiendo se aprende muchísimo y no solo de Scala si no de programación funcional y orientada a objetos.
Dejo link:
https://www.coursera.org/course/progfun
Dejo video:
Dejo link:
https://www.coursera.org/course/progfun
Dejo video:
sábado, 17 de agosto de 2013
Debian cumple 20 años
Esta noticia es vieja, el día de ayer Debian cumplió 20 añitos, no quería dejar pasar la oportunidad para felicitar a mi distro preferida, he usado Debian hace ya bastante y siempre tuve buenos resultados. Por cuestiones laborales me he pasado a las distribuciones Red Hat pero siempre extraño al apt get y todas las características de este gran sistema operativo.En servidores sin duda es el más confiable, no hay con que darle. Y es también el papa de grandes distros como Ubuntu, Mint, Elementary OS, knoppix, etc... Que más decir?
Feliz Cumpleaños!!
jueves, 15 de agosto de 2013
Peppermint Linux OS
Si pensamos en una distribución basada en Ubuntu, pero que prioriza los servicios en la nube, estamos pensando en Peper mint.
Peper mint en una distro basada en Lubuntu por lo que utiliza LXDE desktop environment. Pero lo más importante es que es una distro que prioriza los servicios en la nube, por lo tanto espera que utilices google doc, gmail, dropdox, etc...
Trae de forma nativa las siguientes aplicaciones:
Y como aplicaciones en la nube:
Dejo link: http://peppermintos.com/
Dejo algunas pantallas:
Peper mint en una distro basada en Lubuntu por lo que utiliza LXDE desktop environment. Pero lo más importante es que es una distro que prioriza los servicios en la nube, por lo tanto espera que utilices google doc, gmail, dropdox, etc...
Trae de forma nativa las siguientes aplicaciones:
- Chromium Web Browser
- Dropbox
- Guayadeque (Music Player)
- Ice
- X-Chat (IRC Client)
- Transmission (Torrent Client)
- Gnome-Mplayer (Media Player)
Y como aplicaciones en la nube:
- Editor by Pixlr (Image Editor)
- Express by Pixlr (Photo Editor)
- Pixlr-o-Matic (Photo Filter App)
- Last.FMSSB
- Seesmic Web
- The Cloud Player
- YouTube
- eBuddy
- Google Calendar
- Google Docs
- Gmail
- Google Reader
- Peppermint Bug Tracking
- Peppermint Forums
Dejo link: http://peppermintos.com/
Dejo algunas pantallas:
Smalltalk en el browser con Amber
Amber es un lenguaje inspirado en smalltalk (no es smalltalk) que compila a javacript. Amber compila eficientemente a javascript porque tiene una relación uno a uno con elementos javascript.
Está diseñado para que el desarrollo del lado del cliente sea más rápido y más fácil. Amber incluye un entorno de desarrollo, un framework para prueba de unidad, inspector de objetos y depurador.
Como lo podemos utilizar, muy facil importando la librería y corriendo una función:
<script src="js/amber.js" type="text/javascript"></script>
<script type="text/javascript"> loadAmber()</script>
Dejo link:
http://amber-lang.net/
Está diseñado para que el desarrollo del lado del cliente sea más rápido y más fácil. Amber incluye un entorno de desarrollo, un framework para prueba de unidad, inspector de objetos y depurador.
Como lo podemos utilizar, muy facil importando la librería y corriendo una función:
<script src="js/amber.js" type="text/javascript"></script>
<script type="text/javascript"> loadAmber()</script>
Dejo link:
http://amber-lang.net/
Twitter University: Building a world-class engineering organization

A la gente de twitter se le ocurrio una gran idea, compartir el conocimiento que tienen con todo el mundo y para ello van abrir Twitter University. Donde obtendremos enseñanza y entrenamiento. Va a ser una plataforma en la cual podremos tomar cursos de desarrollo, html, css, escalabilidad, etc.
Espero con ansias!!
Dejo el link del anuncio:
https://blog.twitter.com/2013/twitter-university-building-a-world-class-engineering-organization
Elementary OS Luna Review
Sigo viendo Elementary OS y me gusta bastante, ahora les dejo un vídeo:
Otra cosa, muy bueno el canal InfinitelyGalactic de you tube.
martes, 13 de agosto de 2013
Linux Shell Scripting Cookbook

Quiero compartir un libro sobre scripting en el shell de linux. Que lo disfruten!!
Dejo link:
http://www.vaqueano.com/posts/ebooksytutoriales/246/Linux-Shell-Scripting-Cookbook-Sarath-Lakshman.html
Learn to Program: The Fundamentals
Me gustaría aconsejarles que hagan el curso "Learn to Program: The Fundamentals" de Cursera, la verdad es que esta muy bueno; y comienza la próxima semana. El curso es un curso básico de programación en Python, pero los conocimientos se pueden extrapolar a cualquier lenguaje.
Dejo links:
lunes, 12 de agosto de 2013
Tomcat 8.0.0-RC1 (alpha) Released

Tengo el agrado de comunicar el primer release de Tomcat 8. Que hay de nuevo viejo??
- Soporte para Java Servlet 3.1, JavaServer Pages 2.3, Java Unified Expression Language 3.0 y Java WebSocket 1.0.
- Soporte para Web socket
- HTTP protocol upgrade
- Soporte experimental para SPDY
- y mucho más!!
Los cambios son muchos y la espera larga, pero se viene un producto que promete.
Dejo link:http://tomcat.apache.org/
http://tomcat.apache.org/download-80.cgi
acamica.com
Gracias al amigo del blog Matías, pude conocer la pagina acamica.com; es un proyecto similar a
Coursera.org y Edx.org pero con el foco puesto en América Latina, con clases online y gratis de universidades de la región.
Lo probé y esta muy bueno y tiene cursos muy interesantes, me anote a varios!!
Dejo link:
http://acamica.com/
domingo, 11 de agosto de 2013
PyCursos
Quiero recomendarles la pagina PyCursos donde podrán encontrar varios cursos de Python en Portugués, como mi portugués no es muy bueno no pude hacer cursos, pero espero que crezca y podamos hacer cursos en castellano.
Dejo el link:
http://beta.pycursos.com/
Suscribirse a:
Entradas (Atom)





































