Translate
domingo, 3 de marzo de 2013
Libro gratuito sobre Erlang
Erlang es un lenguaje funcional y diseñado para la comunicación distribuida. Tiene muchas ventajas y su mayor logro es introducir la teoría de Actores para resolver el problema de la concurrencia. Es un gran lenguaje y les dejo un link a un libro que se puede leer online de forma gratuita.
Dejo el link:
http://learnyousomeerlang.com/
sábado, 2 de marzo de 2013
Por que aprender Clojure?
Por que aprender Clojure? Que gano aprendiendo este lenguaje?
Las repuestas a estas preguntas en el siguiente vídeo:
Las repuestas a estas preguntas en el siguiente vídeo:
Tutorial de Python en Español por Python Argentina
La gente de Python Argentina realizo un tutorial sobre Python, la verdad muy bueno!! Que grande cuando la comunidad quiere ayudarnos a aprender. Lo estoy bajando...
Dejo link:
http://docs.python.org.ar/tutorial/index.html
viernes, 1 de marzo de 2013
Google Annotations Gallery @anotacionesDivetidas
No te quedan chicas las anotaciones de java?? Tenes ganas de expresar más con anotaciones Java?? Entonces esta librería es para vos!!
Google Annotations Gallery esta librería contiene un conjunto de anotaciones para dar instrucciones más claras a los demás programadores y para ponerle más diversión al código.
Mira estas anotaciones:
@AhaMoment
@BossMadeMeDoIt
@HandsOff
@IAmAwesome
@LegacySucks
@Magic
@AnimalsHarmedDuringTheMaking
Es decir que tenemos anotaciones para expresarnos muy bien, y es bien completito. Se me ocurren otras anotaciones: @hayAlgoMalQueNoAndaBien, @seLeMamoLaBurra, @etc...
A ustedes se les ocurre alguna otra??
Dejo link: http://code.google.com/p/gag/
martes, 26 de febrero de 2013
Si todo el mundo sabría programar, seria mejor?
Si en todas las escuelas del mundo se enseñara a programar, tendríamos un mundo feliz? Existe un movimiento para intentar que se enseñe programación en todas las escuelas. Que piensan de esta idea? Yo creo que puede ser bueno para nuestra profesión y a la humanidad. Dado que la gente van a entender que hacemos. Y a la humanidad es bueno dado que es bueno enseñar a resolver problemas y es lo que hacemos cuando programamos.
Dejo link:
http://www.code.org/
Comienza nuevamente Functional Programming Principles in Scala
Según fuentes muy pero muy confiables comienza nuevamente el curso de Functional Programming Principles in Scala en coursera dictado por Martin Odersky. La verdad es muy recomendable, muy buen curso.
Dejo un video:
Dejo link:
https://www.coursera.org/course/progfun
Dejo un video:
Dejo link:
https://www.coursera.org/course/progfun
lunes, 25 de febrero de 2013
Hoy comienza el curso de MongoDB para javeros
Hoy comienza el curso de MongoDB para javeros, y no te anotaste? media pila. Yo ahora lo estoy viendo a ver que onda.
Les dejo el link:
https://education.10gen.com
Primeros pasos con Play! Part 4
Seguimos con Play!
Vamos a modificar el ejemplo, primero vamos a modificar la clase Application.scala de la siguiente manera:
package controllers
import play.api._
import play.api.mvc._
object Application extends Controller {
def index = Action {
Ok("Hola!")
}
}
Estamos devolviendo “Hola!” que es texto plano. Pero si nos equivocamos y ponemos así:
def index = Action {
Ok("Hola!)
}
Play nos ayuda, nos indica donde esta el error:
Bueno vamos a hacer un ABM de algo, primero vamos a modificar el archivo conf/routes de la siguiente manera:
# Algo page
GET /algo controllers.Algo.index
GET /algo/new controllers.Algo.new
GET /algo/:id/delete controllers.Algo.delete(id: Long)
Ahora vamos hacer el nuevo action llamado Algo.scala que va a ser así:
package controllers
import play.api._
import play.api.mvc._
object Algo extends Controller {
def index = TODO
def newAlgo = TODO
def delete(id: Long) = TODO
}
Dejamos los métodos en TODO, es decir que lo vamos a hacer más adelante. Si corremos el servidor y vamos a http://localhost:9000/algo vemos lo siguiente:
Para que se entienda TODO es un método que devuelve un action es así:
val TODO = Action {
NotImplemented[play.api.templates.Html](views.html.defaultpages.todo())
}
Por lo tanto cuando busca controllers.Algo.index devuelve al action TODO. Pero ahora rápidamente vamos a escribir el model de Algo. Pero esto lo vamos a ver en el próximo post...
domingo, 24 de febrero de 2013
Curso de linux para novatos, brutos y extremadamente torpes
Le quiero dejar un link de un curso de linux, que como dice el titulo es para la gente que empieza a usar el sistema operativo:
http://tuxapuntes.jorgedihe.netdna-cdn.com/wp-content/uploads/2012/02/Curso_Linux_ACastro_0.pdf
sábado, 23 de febrero de 2013
Primeros pasos con Play! Part 3
Siguiendo con los posts:
http://emanuelpeg.blogspot.com.ar/2013/02/primeros-pasos-con-play.html
http://emanuelpeg.blogspot.com.ar/2013/02/primeros-pasos-con-play-part-2.html
Tenemos que bajarnos Scala-IDE del siguiente link:
http://scala-ide.org/download/milestone.html y tenemos que bajar eclipse del siguiente link: http://www.eclipse.org/downloads/ (juno) y si no queremos usar la ultima versión podemos bajar Indigo : http://www.eclipse.org/downloads/packages/release/indigo/sr2
Descomprimimos el empaquetado y ya tenemos el IDE funcionando.
Ahora vamos a importar el proyecto. Para ello vamos a la carpeta raíz del proyecto y ponemos:
play eclipse
Entonces desde eclipse hacemos import... → “exiting projects into workspace” con esto tenemos nuestro proyecto en eclipse.
Ahora esta todo configurado, podemos programar libremente.
Vamos a ver como se muestra la pagina cuando corremos la aplicación. En conf/routes se define el punto de entrada de la aplicación; sería como un struts.xml en struts. En este archivo podemos ver algo como esto:
# Home page
GET / controllers.Application.index
Esto quiere decir que si vamos a / va a llamar al controlador Application al método index. Si vemos el action podemos ver lo siguiente:
package controllers
import play.api._
import play.api.mvc._
object Application extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
Como pueden ver este controller devuelve el objeto Ok que es un Action. Este action indica que todo salio bien, es decir que termino con código 200. Con el método views.html.index(message: String), se esta llamando a las vista index.scala.html. Si abrimos este archivo podemos ver:
@(message: String)
@main("Welcome to Play 2.1") {
@play20.welcome(message)
}
La plantilla permite mezclar contenido html con declaración de Scala, las declaraciones de scala comienzan con el @.
Por ahora no vamos a modificar nada pero en el próximo post, ya lo verán...
jueves, 21 de febrero de 2013
Webinar gratuito sobre MySQL
Me llego un mail de los chicos de oracle al parecer van a dictar un webinar sobre Mysql 5.6. en castellano. Que más queres? me inscribo, les dejo el mail:
"Regístrate gratis para este seminario web en vivo, donde conocerás de los expertos lo nuevo y asombroso de MySQL 5.6, la más reciente versión de la base de datos open source más popular del mundo. Participa en esta sesión interactiva para toda Latinoamérica y libera el potencial de MySQL 5.6!"
Try jQuery
Un nuevo curso gratuito de codeschool llamado "try jquery"... Como pueden sospechar es de jquery. Esto es muy bueno, voy a empezarlo yaaa!!!
Dejo link:
http://www.codeschool.com/courses/try-jquery
miércoles, 20 de febrero de 2013
Ubuntu for tablets esta aquí!!
Ubuntu for tablets esta aquí!! Sip, luego de presentar ubuntu para celulares, ahora la versión para tablets. Creo que era un movimiento cantado, todas las empresas ven como la nueva generación de pcs, las tablets y los celulares. Que piensan?? Otras distribuciones linux se van a volcar a las tables?? Cual les gustaría?
Dejo el vídeo presentación:
Dejo el vídeo presentación:
martes, 19 de febrero de 2013
Que es List comprehension??
List comprehension seria en español como "Lista de comprensión" pero me suena raro la traducción. Más allá de la traducción, que sería List comprehension? Bueno antes que nada, se acuerdan de las definiciones matemáticas de por ejemplo números pares o múltiplos que veíamos en la escuela? por ejemplo la definición de los números pares mayores a 10 sería así:
s = { 2 * x | x € N, 2 * x > 10 }
Esto se lee como los números pares (2*x) que pertenecen (€) a los números naturales (N) y que sean mayores que 10. Esto define la lista de forma compresiva. Es decir se puede conocer el valor de la lista dependiendo de la posición sin enumerar sus elementos. Esto si lo definimos en Haskell sería así:
s = [ 2*x | x <- [0..], x*2 > 10 ]
Como vemos es muy similar a la definición matemática, lo que indica que Haskell es muy buen lenguaje funcional. Se ve que los se define los números naturales como [0..] lo que indica que esta lista es infinita; por lo tanto la búsqueda de cada elemento se hace de forma perezosa.
Otros lenguajes implementan las List comprehension, por ejemplo Python, Scala, Erlang, Ceylon, Clojure, F#, Groovy, Ruby, etc.
En resumen podemos decir que List comprehension es una característica de algunos lenguajes con lo cual podemos definir listas de forma comprensiva y algo importante es que se pueda resolver de forma perezosa, para no tener que calcular elementos que no usamos.
Dejo link:
http://www.haskell.org/haskellwiki/List_comprehension
http://www.erlang.org/doc/programming_examples/list_comprehensions.html
http://en.wikipedia.org/wiki/List_comprehension
lunes, 18 de febrero de 2013
Planet Mongo
Quiero recomendar un blog sobre mongodb, el cual engloba toda la info de mongodb. Es importante recalcar el esfuerzo que esta haciendo la comunidad y como esta creciendo esta base NoSQL.
Dejo link: http://planet.mongodb.org
Dejo link: http://planet.mongodb.org
Suscribirse a:
Entradas (Atom)