Translate

miércoles, 14 de octubre de 2015

Nuevos cursos en Coursera en español de Programación, Datos y más!

Me llego este mail de la gente de Coursera, y no puedo dejar de compartirlo:

100 cursos en español
Mis Cursos | Catálogo de Cursos

Sé un experto en Computación y Ciencias de Datos

Ahora Coursera tiene disponibles más de 100 cursos en español y diez Programas Especializados, todos ellos creados por líderes en educación. Modernízate y adquiere habilidades en programación IOS y desarrollo de videojuegos, entre muchas otras.

Desarrollo de aplicaciones iOS

TECNOLÓGICO DE MONTERREY
crear aplicaciones para iPhones

Aprende los fundamentos de desarrollo de aplicaciones iOS, incluyendo la programación con Swift, conceptos básicos de diseño UI, integración de contenido en iOS y prototipado.
 

Desarrollo y diseño de videojuegos

LA UNIVERSIDAD DE LOS ANDES
crear videojuegos

Aprende a diseñar y a crear videojuegos en 2D y 3D y conoce el mercado donde se moverán tus productos cuando estén acabados.
 

Analisis de Datos

Análisis de Datos para la toma de decisiones

TECNOLÓGICO DE MONTERREY

Explora y analiza datos, genera modelos que mejoran tu toma de decisiones y obtén mejores resultados.

innovación

Creatividad, diseño e innovación: Técnicas y herramientas

ASU Y LA UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO (UNAM)

Reconoce lo crítico que es el papel del diseño en la sociedad; conviértete en un líder creativo en tu campo.

diseno videojuegos

Diseño y creación de videojuegos

LA UNIVERSITAT AUTÒNOMA DE BARCELONA
 

Un punto de entrada al mundo del diseño y la creación de videojuegos con énfasis en la parte artística, de motor y game play.

Administración de Proyectos

Administración de Proyectos: Principios Basicos

UNIVERSITY OF CALIFORNIA, IRVINE EXTENSION Y TECNOLÓGICO DE MONTERREY

Aplica metodologías para gestionar actividades y recursos de proyectos, administrar presupuesto y controlar riesgo.

 

Descarga las aplicaciones

iphoneandroid

Centro de ayuda al estudiante
Favor no contestes directamente a este correo.

Conecta con nosotros

FacebookTwitterGoogle PlusLinkedIn

Coursera envía estos avisos con la finalidad de mejorar tu experiencia de aprendizaje. Para dejar de recibir correos electrónicos sobre nuevos cursos, herramientas y otras noticias de Coursera, cancelar duscripcion aqui.

© 2015 Coursera | 381 E. Evelyn Avenue | Mountain View, CA

Ubuntu + ChromeOS = Chromixium

Lo prometido es deuda, instale Chromixium y lo probé. En resumen muy bueno!

Ojo no es para tenerlo como sustituto total de un pc. Pero si se lo puede utilizar para acceso a Internet y aplicaciones online.

Dejo screenshots:








lunes, 12 de octubre de 2015

Ubuntu + ChromeOS = Chromixium


Si bien ChromeOS no llego a ser la revolución que se pensaba, llego a tener una relevancia en notebook y en usuarios que utilizan 100% Internet.

Si tomamos Ubuntu y lo transformamos en ChromeOS obtenemos Chromixium. Chromixium es un Ubuntu con el estilo de ChromeOS.

Chromixium es un sistema operativo de 32 bits (y una versión beta de 64 bits) basado en Ubuntu 14.04 LTS, utiliza el kernel de Linux 3.13 y el gestor de ventanas Openbox.

Chromixium ofrece varios beneficios adicionales sobre Chrome OS aunque conserva su ligereza y funcionalidad. Principalmente un rango de soporte para mucho más hardware, acceso a un disco duro convencional, y la posibilidad de instalar software adicional compatible con Ubuntu.

Voy a probarlo y les cuento!

Dejo link:
http://chromixium.org/
http://sourceforge.net/projects/chromixium/files/Unstable/Chromixium-1.5RC5-amd64.iso/download

GraphQL

GraphQL es un lenguaje de consulta de datos, diseñado y usado en Facebook para solicitar y entregar datos a las aplicaciones móviles y web desde 2012.

Cuando construían las aplicaciones móviles de Facebook, necesitaban una API de datos que buscara datos, lo suficientemente poderoso como para que funcione en todas las aplicaciones de Facebook, pero lo suficientemente simple para ser fácil de aprender y usar. Por lo tanto desarrollaron GraphQL en 2012 para cubrir esta necesidad. Hoy en día es la principal forma construimos aplicaciones cliente y los servidores en facebook.

A pesar de ser ampliamente utilizado en Facebook, de código abierto GraphQL es todavía una nueva tecnología de someterse a cambios. Muchas de las herramientas e integraciones con diferentes lenguajes y motores de almacenamiento de datos aún no se han construido, y en muchos casos ya están en construcción.

Dejo link:
http://graphql.org/

miércoles, 7 de octubre de 2015

Libro sobre el pasado, el presente y el futuro del Java para conmemorar su 20 aniversario



Quiero hacerme eco de la noticia que leí en javahispano, o'reilly publico un libro gratuito sobre el presente, pasado y futuro de java. El nombre del libro es Java: The Legend Past, Present, and Future
escrito por Ben Evans.


Dejo link:
http://www.javahispano.org/portada/2015/10/7/libro-sobre-el-pasado-el-presente-y-el-futuro-del-java-para.html
http://www.oreilly.com/programming/free/java-the-legend.csp

10 Libros sobre algoritmos que un programador debe leer


Quiero compartir este interesante articulo sobre algoritmo.  Los programadores siempre tenemos que reeveer los algoritmos y buscar las buenas soluciones

Dejo link:
http://java67.blogspot.sg/2015/09/top-10-algorithm-books-every-programmer-read-learn.html

SOAP vs REST

Mucho se a dicho de Rest y SOAP pero siempre es bueno aclarar las diferencias entre Rest y SOAP. A mi entender las diferencias son muchas, y no se mezclan, es decir el objetivos de su creación es totalmente diferentes.

Aprovecho y les dejo este cuadrito:


Dejo link:
http://javarevisited.blogspot.sg/2015/08/difference-between-soap-and-restfull-webservice-java.html

Scala Tutorial: Getting Started with Scala


Quiero compartir un pequeño tutorial sobre Scala que esta muy bueno de la gente de Udemy. Empieza muy fácil y es muy bueno para empezar.

Dejo link:
https://blog.udemy.com/scala-tutorial-getting-started-with-scala/

lunes, 5 de octubre de 2015

Reduce el riesgo a fallas con ELM


Ya he hablado de Elm, es un lenguaje funcional que compila a javascript. Bueno hace muy poco leo en infoQ un articulo sobre la reducción de fallas utilizando ELM.

Según este articulo una aplicación Elm, "una vez que se compila, por lo general trabaja en el primer intento sin regresiones o excepciones de tiempo de ejecución".

A la vez este articulo muestra que  ELM es más rápido que muchos frameworks javascripts:




Dejo link:
http://www.infoq.com/news/2015/09/elm-introduction-feldman

miércoles, 30 de septiembre de 2015

ionide una IDE para F#

Si adaptamos Atom para programar en F# que nos queda? Ionide es la respuesta. Un entorno de desarrollo para F# que nos ofrece:

  • syntax highlighting
  • error highlighting
  • autocompletion
  • tooltips
  • integración con F# de forma interactiva (como un RELP) 
  • Scaffolding

Dejo algunos gif:




Dejo link:
http://ionide.io/

Nuevo curso de Html 5

HTML5 XSeries Program – W3Cx

HTML5 XSeries Program from W3Cx
Master the most in-demand and fastest growing job skill today. Build new programming skills or sharpen existing ones in this two part XSeries Program from the W3C, creators of HTML5. For entrepreneurs, start-ups and large organizations, HTML5 knowledge is key to developing websites, mobile apps, video games and more. This hands-on course will teach you new techniques that you can start applying right away. Secure your future as a 21st-century developer and enroll today. 
Learn More

domingo, 27 de septiembre de 2015

Teoría de Categorías explicado por Erik Meijer

Erik Meijer es un groso, no voy a exponer su cv en este blog, solo voy a decir que le envidio mucho las remeras. Erik nos explica la Teoría de Categorías :


jueves, 24 de septiembre de 2015

Se viene GNOME 3.18

Hace varios post hable sobre Gnome y dije que no estaba bueno, bueno me equivoque. La verdad es que encontraron el camino, había que tenerles paciencia se esta poniendo muy bueno y si no mira este vídeo:



domingo, 20 de septiembre de 2015

Python 3.5 trae nuevas características

Recientemente se anuncio python 3.5 que trae nuevas características, nuevos módulos, mejoras en librerías estandar y seguridad.

Vamos a mostrar un poco la nueva sintaxis:

Corrutinas con sintaxis asincrónica-esperar: que permite a los desarrolladores escribir código como si fuera secuencial. De hecho, el compilador incorpora a través de una secuencia de corrutinas, por lo que es efectivamente concurrente. Veamos el siguiente ejemplo:

async def read_data(db):
data = await db.fetch('SELECT ...')
if (data...)
    await api.send(data ...')

Un operador que permite expresar multiplicación entre matrices:

S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r)
instead of:
S = dot((dot(H, beta) - r).T, dot(inv(dot(dot(H, V), H.T)), dot(H, beta) - r))

Desembalaje, que pretende extender el uso permitido del operador * y hacer posible el uso de múltiples veces en llamadas a funciones, o en el interior de tuplas:

>>> print(*[1], *[2], 3)
1 2 3
>>> dict(**{'x': 1}, y=2, **{'z': 3})
{'x': 1, 'y': 2, 'z': 3}


>>> *range(4), 4
(0, 1, 2, 3, 4)

Como primer pantallazo, son noticias muy buenas!!!


jueves, 17 de septiembre de 2015

10 tips para los que se inician en Python


Quiero compartir un post sobre tips para los que se inician en python. Esta muy bueno, fácil de entender y muy útil.

Dejo link:
http://www.techbeamers.com/top-10-python-coding-tips-for-beginners/


lunes, 14 de septiembre de 2015

Bazel


Bazel es la herramienta que Google utiliza para construir la mayoría de su software. Esta es de código abierto.

 Según Google, Bazel está dirigido a construir "código de forma rápida y fiable" y es "fundamental para la capacidad de Google dado que es una empresa grande y que crece rápidamente"

Antes de la construcción de Bazel, Google construía su software utilizando Makefiles que no le daba mayor confiabilidad. Además, en comparación con los Makefiles, Bazel ofrece conceptos de alto nivel, como "test", "C ++ binario", las nociones de "plataforma de destino" y "host plataforma ", etc.

Bazel soporta varios lenguajes en los que estan c++, java, rust, scala o groovy.

Dejo link:
http://bazel.io/

domingo, 13 de septiembre de 2015

Introducción a ScalaTest


Vamos a hacer algunos test con ScalaTest. Empecemos haciendo una clase:

case class Guest(name: String)

case class Room(number: Int, guest: Option[Guest] = None){ room =>

  def isAvailable(): Boolean = ???

  def checkin(guest: Guest): Room = ???

  def checkout(): Room = ???

}

/*
 * We will automatically create 10 rooms
 * if these are not specified.
 */
case class Hotel(
  rooms: List[Room] = (1 to 10).map(n => Room(number=n)).toList){

  def checkin(personName: String): Hotel = ???

}

Hemos hecho una clase Hotel que contiene 10 habitaciones. El ??? significa que el metodo no fue definido, pero me permite compilar. Vamos a trabajar bien TDD.

Antes que nada agregamos el framework al proyecto utilizando sbt:

libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.4" % "test"

Ahora vamos a hacer una clase común para reutilizar métodos comunes:

package org.me.hotel

import org.scalatest.{FlatSpec,Matchers}

abstract class UnitTest(component: String) extends FlatSpec
  with Matchers{

  behavior of component

}

Como se puede ver hicimos una clase padre o general para todos los tests, esta extiende de FlatSpec e implementa Matchers.

A la vez le pasamos por parámetro el nombre del componente a probar. Si quisieramos utilizar esta clase lo hariamos de la siguiente manera:

class MyClassUnitTest extends UnitTest("MyClass")

A la vez utilizamos Matchers dado que nos provee expresiones más cercanas a los humanos como:

(2+2) should equal (4)
(2+2) shouldEqual 5
(2+2) should === (4)
(2+2) should be (4)
(2+2) shouldBe 5

Bueno ahora definimos nuestro test:

package org.me.hotel

class RoomTest extends UnitTest("Room") {

  it should "provide info about its occupation" in {
    Room(1).isFree() shouldEqual true
    Room(1,None).isFree() shouldEqual true
    Room(1,Some(Guest("Bruce"))).isFree() shouldEqual false
  }

  it should "allow registering a new guest if room is free" in {
    val occupiedRoom = Room(1).checkin(Guest("James"))
    occupiedRoom.isFree shouldEqual false
    occupiedRoom.guest shouldEqual(Option(Guest("James")))
  }

  it should "deny registering a new guest if room is already occupied" in {
    an [IllegalArgumentException] should be thrownBy {
      Room(1,Some(Guest("Barbara"))).checkin(Guest("Bruce"))
    }
  }

  it should "deny checking out if room is already free" in {
    an [IllegalArgumentException] should be thrownBy {
      Room(1).checkout()
    }
  }

  it should "allow checking out if room is occupied by someone" in {
    val room = Room(1,Some(Guest("Carmine")))
    val freeRoom = room.checkout()
    freeRoom.isFree shouldEqual true
  }

}

Como se puede ver los test quedan escritos casi en lenguaje natural.

Si corremos los tests nos darán un error:

> test
[info] RoomTest:
[info] Room
[info] - should provide info about its occupation *** FAILED ***
[info]   scala.NotImplementedError: an implementation is missing
[info]   at scala.Predef$.$qmark$qmark$qmark(Predef.scala:252)
[info]   at org.me.hotel.Room.isFree(Room.scala:6)
[info]   at org.me.hotel.RoomTest$$anonfun$1.apply$mcV$sp(RoomTest.scala:6)
[info]   at org.me.hotel.RoomTest$$anonfun$1.apply(RoomTest.scala:5)

...

[info] Run completed in 699 milliseconds.
[info] Total number of tests run: 15
[info] Suites: completed 6, aborted 0
[info] Tests: succeeded 3, failed 12, canceled 0, ignored 0, pending 0
[info] *** 12 TESTS FAILED ***
[error] Failed tests:
[error]   org.me.hotel.RoomTest
[error]   org.me.hotel.HotelTest
[error] (test:test) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 6 s, completed 12-ago-2015 16:08:47

Ahora a hacer que nuestras clases pasen sus tests, Suerte!!!!


martes, 8 de septiembre de 2015

Este sábado 12 empieza el #HackathonLitoral2015 en Santa Fe. Inscribite!

Quería invitarlos al hackathon litoral: 
Traé tu idea al Hackathon Litoral 2015!  Santa Fe / Paraná
En la tercera edición del Hackathon Litoral, logramos algo que soñábamos: unir a las ciudades de Santa Fe y Paraná en dos eventos y así potenciar la comunidad.
 
Te invitamos a traer tus ideas para mejorar la vida en la ciudad. Primero nos encontramos en el GDG IOT DevFest, para aprender a armar prototipos funcionales y formar los equipos.
Sumate el sábado 12 de septiembre a las 8:30 am en la Facultad de Ingeniería y Ciencias Hídricas, Universidad Nacional del Litoral. [Ciudad Universitaria, Ruta Nacional N° 168 - Km. 472,4, Santa Fe]



 
Una semana después nos reencontramos en el Hackathon, para pasar las próximas 36 horas diseñando los prototipos. El evento se realizará en el Club Social en Paraná, desde el viernes 18 de septiembre a las 7:00 PM hasta el sábado 19 a las 10:00 am. [San Martín 958, Paraná, Entre Ríos]



¿Cómo me inscribo?
 
bit.ly/hack-litoral
 

¿Cuáles son los temas de este Hackathon?
 
• Comidas
• Cultura
• Ciudad Verde
• Transporte
• Educación
 
¿A quiénes se convoca?
 
Estudiantes, Tecnólogos, Desarrolladores, Emprendedores, Diseñadores, Curiosos, Inquietos, Creativos, Cocineros, Cerveceros, Amantes de los viajes, Hoteleros, Agentes de Viaje, Doctores, Organizaciones Sociales, Nutricionistas, Turistas, Bloggeros, Twitteros, Periodistas.
 
¿Cómo es la dinámica?
El objetivo del evento es armar equipos para presentar prototipos funcionales que solucionen problemas concretos usando tecnología y diseño.
Debido a la naturaleza colaborativa del evento no habrá ganadores, perdedores, premios o un jurado que evalúe las ideas.
Todos tienen la posibilidad de crear con la ayuda de los participantes el equipo de mentores.
 
¿Dónde encuentro más información?
 

  

¡Te esperamos!

Curso recomendado de Coursera

Me llego el siguiente mail de Coursera, muy buenos cursos:

Ready to learn something new?
   My Courses  Course Catalog
We have recommendations for you
We combed our catalog and found courses and Specializations that we think match your interests. Browse our recommendations below, and start learning something new today.

Recommended Specializations

Java Programming: An Introduction to SoftwareJava Programming: An Introduction to Software
Duke University • Available Now
Python for EverybodyPython for Everybody
University of Michigan • Available Now
Java Programming: Object-Oriented Design of Data StructuresJava Programming: Object-Oriented Design of Data Structures
University of California, San Diego • Available Now
Emerging Technologies: From Smartphones to IoT to Big DataEmerging Technologies: From Smartphones to IoT to Big Data
Yonsei University • Available Now
View All Specializations

domingo, 6 de septiembre de 2015

Haciendo fácil la minería de datos con Rapidminer

Si es raro un post de minería de datos en este blog. Les cuento que estoy haciendo un curso y me llamo la atención gratamente este producto.

Supongamos que necesitas saber reglas para un problema, por ejemplo que persona no debes darles créditos. Entonces que haces:

  • Te instalas, rapidminer
  • Importas datos históricos
  • Generas el árbol con algún algoritmo y tenes las reglas. Y listo!

Si bien estoy simplificando mucho la historia, en la herramienta es así. Luego al ser un trabajo empírico debes hace muchas comparaciones con la realidad.

Esas reglas las podes utilizar con algún motor de reglas como Jboss drools o programarlas.

Rapidminer trae muchas herramientas de diferente índole, para limpiar datos, generar reglas, hacer arboles de decisión, importar datos, etc.

Tiene una versión comercial y otra open source y gratuita.

Dejo link:
https://rapidminer.com/

Blog.scalac.io


Quiero compartir con ustedes una excelente pagina que contiene un montón de recursos sobre scala y Akka, tal vez ya la conocen scalac.io

Dejo link: http://blog.scalac.io/

Pequeña introducción a Wolfram

Bueno, si tomamos un lenguaje para navegar en el conocimiento y brindar conocimiento; sin duda; Wolfram es la respuesta.

Ente las características de Wolfram podemos nombrar:

  • Fue diseñado para ser utilizado de forma interactiva. 
  • Tiene alrededor de 5000 funciones incorporadas.
  • Expresiones simbólicas, por ejemplo podríamos pasar por parámetro un gráfico o guardarlo en una variable. 
  • Las listas se indican por medio de llaves, tiene listas por comprensión y maneja indices negativos. 

Les dejo un tutorial muy bueno!! Al final de cada ítem pueden validar si entendieron.

Dejo link:
http://www.wolfram.com/language/fast-introduction-for-programmers/
http://reference.wolfram.com/language/