En este vídeo se hace uso de un framework de google llamado TensorFlow (que ya hablamos ) y Python.
Translate
miércoles, 20 de abril de 2016
Haciendo un primer programa con Machine Learning Recipes
Quiero compartir este vídeo en el cual se hace un primer programa, usando Machine Learning Recipes.
En este vídeo se hace uso de un framework de google llamado TensorFlow (que ya hablamos ) y Python.
En este vídeo se hace uso de un framework de google llamado TensorFlow (que ya hablamos ) y Python.
viernes, 15 de abril de 2016
Classic Programming Paintings
Como me reí con este sitio, muy buena idea!
Por ejemplo:
Dejo el link:
http://classicprogrammerpaintings.tumblr.com/?soc_src=mail&soc_trk=ma
Por ejemplo:
Dejo el link:
http://classicprogrammerpaintings.tumblr.com/?soc_src=mail&soc_trk=ma
miércoles, 13 de abril de 2016
Probando Ubuntu 15.10
Tengo que formatear la Pc y quiero una distro fácil y basada en Debian, pensé en Mint pero lo use muchos años y tengo ganas de cambiar. Entonces me puse a probar la ultima versión de Ubuntu.
A simple vista 15.10 no trae grandes cambios, sigue siendo el querido ubuntu, solo unas pequeñas mejoras. Una excelente distro.
Lo malo es que unity, que siguen sin conversenrme.
Que otra distro puedo probar?
A simple vista 15.10 no trae grandes cambios, sigue siendo el querido ubuntu, solo unas pequeñas mejoras. Una excelente distro.
Lo malo es que unity, que siguen sin conversenrme.
Que otra distro puedo probar?
domingo, 10 de abril de 2016
Con nosotros Android Studio 2.0
Android Studio 2.0 ha sido lanzado en su versión final. Y que hay de nuevo viejo? Bueno, nuevas herramientas para la emulación, una nueva característica para las builds llamada “Instant Run”, integración Cloud Test Lab y muchas más...
Instant Run es la mejor novedad de todas las que se añaden a Android Studio y que permitirá que se puedan crear builds en un tiempo menor. Esta característica lo que permite es que los desarrolladores vean los cambios hechos en el código de sus apps de forma simultánea, incluso cuando esté ya lista en un dispositivo o en el emulador.
También Google ha actualizado el emulador con una nueva interfaz, controles de sensor y suporte a gestos multi-touch. Posee incluso una opción de arrastra y sueltar para las APKs y así sea más fácil la instalación.
Otra característica muy buena son la integración Cloud Test Lab, que permite probar la app en un gran rando de dispositivos; una nueva indexación, que ayuda a promocionar la visibilidad de la app en la Búsqueda de Google con URLs auto-generadas; un GPU Debugger Preview si se desarrolla bajo OpenGL ES; y una actualización a IntelliJ 15.
Uff, solo falta que programe...
Dejo link:
http://tools.android.com/download/studio/builds/2-0-preview
Eclipse OMR
IBM ha creado Eclipse OMR, un conjunto de herramientas de código abierto para máquina virtual java con el objetivo de crear entornos de ejecución para cualquier lenguaje. OMR pretende potenciar nuevos lenguajes en la jvm. Para lograr esto, IBM está generalizando su propia JVM, J9.
Aunque la JVM es cada vez más más políglota, su estrecha relación con el lenguaje Java significa que los lenguajes que corren en ella tiene que estar ligados a java. Esto causa problemas especialmente a los lenguajes de tipado dinámico, por ejemplo hasta la adición de InvokeDynamic en Java 7, lenguajes dinámicos tuvieron que hacer uso de soluciones ineficientes para superar la naturaleza de tipo estático de la JVM, que repercute notablemente en el rendimiento.
Aunque OMR no es un motor de ejecución en sí mismo, es un conjunto de herramientas para crear fácilmente los runtimes. OMR proporciona una implementación de JVM independiente de las características de Java y proporcionando las características más comunes de los runtimes.
Este proyecto esta en incubadora pero se espera un gran futuro. Otra cosa es opensource y con licencia eclipse 1 y apache 2.
Dejo link: https://projects.eclipse.org/proposals/omr
jueves, 7 de abril de 2016
Oracle Technology Network
Me llego este mail y quiero compartirlo con ustedes, al parecer tenemos videos para estudiar en castellano y gratuitos:
Ver este mensaje en un navegador Web
|
SEV100524063_LRT100524032 |
Oracle Corporation - Worldwide Headquarters, 500 Oracle Parkway, OPL - E-mail Services, Redwood Shores, CA 94065, United States
Su privacidad es importante para nosotros. Puede iniciar sesión en su cuenta para actualizar sus suscripciones a correos electrónicos o puede optar por no recibir los correos electrónicos de Oracle Marketing en cualquier momento. Sepa que desuscribirse de las comunicaciones de Marketing no afecta el envío de comunicaciones importantes de negocios en su relación actual de negocios con Oracle como Actualizaciones de seguridad, Avisos de registros para eventos, Administración de cuentas y Comunicaciones de Soporte/Servicios. |
C# 7 Previewed
Si puse el titulo en ingles, queda mejor "Previewed" que "una ojeada", jeje
C# cada vez se parece más a scala y en esta version trae pattern matching, toma tu torta:
case int x when x > 0:
case int y:
También descomposición por pattern matching:
Una de las cosas buenas que tiene pattern matching, es que se pueden descomponer elementos para poder analizarlos. En la próxima versión de C# testing.
if (person is Professor {Subject is var s, FirstName is "Scott"})
Que más tenemos? Bueno, tambien tenemos mejoras en el tipo tupas por ejemplo. Pero todos los ojos están puestos en pattern matching.
Dejo link: http://www.infoq.com/news/2016/04/CSharp-7
C# cada vez se parece más a scala y en esta version trae pattern matching, toma tu torta:
case int x when x > 0:
case int y:
También descomposición por pattern matching:
Una de las cosas buenas que tiene pattern matching, es que se pueden descomponer elementos para poder analizarlos. En la próxima versión de C# testing.
if (person is Professor {Subject is var s, FirstName is "Scott"})
Que más tenemos? Bueno, tambien tenemos mejoras en el tipo tupas por ejemplo. Pero todos los ojos están puestos en pattern matching.
Dejo link: http://www.infoq.com/news/2016/04/CSharp-7
domingo, 3 de abril de 2016
¡Quicksort en Haskell!
Me estoy robando un pedazo de código de : http://aprendehaskell.es/content/Recursion.html que es un excelente libro. No digan nada...
Básicamente me tiene obnubilado quicksort en Haskell, decir si les cuento lo que hace o leen el código, es lo mismo porque el código pinta exactamente el algoritmo, sin agregar nada.
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallerSorted = quicksort [a | a <- xs, a <= x]
biggerSorted = quicksort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted
Si no lo entendes por que andas flojo de Haskell te lo explico, las primera linea declara la función.
quicksort :: (Ord a) => [a] -> [a]
En la segunda dice, si viene una lista vacía ya fue, el resultado es una lista vacía.
quicksort [] = []
En la tercera linea utiliza pattern matching, para separar el primer elemento del resto. Es decir, lo que esta diciendo es: si no es vacía, separala en el primer elemento "x" y el resto "xs".
quicksort (x:xs) =
En las 2 lineas siguientes define 2 listas la de menores y mayores, para esto utiliza listas por comprensión:
[a | a <- xs, a <= x]
Es decir, aquí se esta diciendo: a tal que a pertenezca a xs (es decir al resto) y que a sea menor o igual que x. De la misma forma define el mayor pero con mayor (y claro!)
Y estas listas las ordena con el algoritmo quicksort utilizando recursividad.
Definidas estas listas devuelve la concatenación de la lista de elementos menores a x (ordenada), x y los mayores a x. Por lo que devuelve la lista ordenada.
Y listo!!!
Spring Data Programming Cookbook
Es bastante resumido, pero tiene varios ejemplos de spring data conectados con varios almacenes de datos, JPA, neo4j, mongoDB, REST, casandra, Solr, etc...
Dejo link:
jueves, 31 de marzo de 2016
SQL Server 2016 se viene con sorpresas
Si, es raro esta noticia aca. Esto es así porque no soy muy amante de sql server. Pero espero que la versión 2016 me haga cambiar de parecer.
Lo más notorio de la nueva versión es un cambio en el modo en que maneja las tablas en memoria, esto promete ser mucho más eficiente que la forma anterior.
Entre las mejoras podemos nombrar:
No vi si hay mejoras en linux, espero que llegue una versión estable tanto para windows como linux.
Dejo link:
https://www.microsoft.com/en-us/server-cloud/products/sql-server-2016/
Lo más notorio de la nueva versión es un cambio en el modo en que maneja las tablas en memoria, esto promete ser mucho más eficiente que la forma anterior.
Entre las mejoras podemos nombrar:
- Manejo optimizado de Constraints
- Mejoras en la compilación de Stored Procedure nativos.
- Mejoras en funciones y Triggers nativos.
No vi si hay mejoras en linux, espero que llegue una versión estable tanto para windows como linux.
Dejo link:
https://www.microsoft.com/en-us/server-cloud/products/sql-server-2016/
domingo, 27 de marzo de 2016
Learn You an Agda and Achieve Enlightenment!
Como todos tendemos a la iluminación les quiero recomendar esta pagina, en la cual nos enseñan sobre el lenguaje Agda. Para el que no leyó el post anterior Agda es un lenguaje funcional con dependently typed. A la vez esta muy emparentado con nuestro amigo Haskell. Por lo que es bueno tener nociones de Haskell antes de leer esta libro.
Sin más y esperando la iluminación, dejo link:
http://learnyouanagda.liamoc.net/
Sin más y esperando la iluminación, dejo link:
http://learnyouanagda.liamoc.net/
Dependently typed languages
Existe una lucha en la oscuridad que nosotros poco conocemos entre tipado dinámico y estático. En cualquier sitio de programación se ven tablas comparativas con ventajas y desventajas de cada uno.
En el plano de la investigación hubo un gran adelanto en este tema con las teorías de dependently typed languages, que expanden los limites del tipado estático.
Dependent type es un concepto de la programación pero también de la lógica; Dependent type es un tipo que depende de un valor. En la programación funcional se utiliza para prevenir errores, al permitir un sistema de tipo extensivo.
Dependent type añaden complejidad a un sistema de tipos. Es decir, para saber un tipo en algunos casos se deben realizar cálculos o ejecutar sentencias; esto hace bastante complejo el proceso de chequeo de tipos; y en algunos casos imposible. Pero algunos aspectos del comportamiento de un programa se pueden especificar con precisión en el tipo.
Entre los lenguajes que implementan esta tecnica tenemos:
Agda: Agda es un lenguaje funcional con dependent typed. Es similar a Epigram pero con una sintaxis más parecida a Haskell-like syntax.
Idris: Lenguaje de proposito general muy parecido a haskell pero con dependent typed
Cayenne: Este lenguaje fue influido por la teoría constructive type (pero eso es para otro post)
Que ventajas trae Dependently typed:
-Se pueden encontrar más errores en tiempo de compilación
-Editores que nos ayuden más
-Puede checkear que los elementos de tu programa estén bien.
Todo muy lindo, pero vamos con algo menos abstracto, vamos a ver una definición de tipo en Idris:
data Vect : Nat -> Type -> Type where
Nil : Vect Z a
(::) : a -> Vect k a -> Vect (S k) a
ufff, y yo pienso que mi vida es complicada...
Veamos, en la primera linea decimos, que definimos una familia de tipos que toman un Nat y retornan un tipo. Entonces le decimos cuando, en esta sentencia tiene que haber siempre al menos un verdadero. Es parecido a pattern maching pero con tipos.
Este tema es muy interesante voy a seguir con esto en futuros post.
Dejo link: https://wiki.haskell.org/Dependent_type
En el plano de la investigación hubo un gran adelanto en este tema con las teorías de dependently typed languages, que expanden los limites del tipado estático.
Dependent type es un concepto de la programación pero también de la lógica; Dependent type es un tipo que depende de un valor. En la programación funcional se utiliza para prevenir errores, al permitir un sistema de tipo extensivo.
Dependent type añaden complejidad a un sistema de tipos. Es decir, para saber un tipo en algunos casos se deben realizar cálculos o ejecutar sentencias; esto hace bastante complejo el proceso de chequeo de tipos; y en algunos casos imposible. Pero algunos aspectos del comportamiento de un programa se pueden especificar con precisión en el tipo.
Entre los lenguajes que implementan esta tecnica tenemos:
Agda: Agda es un lenguaje funcional con dependent typed. Es similar a Epigram pero con una sintaxis más parecida a Haskell-like syntax.
Idris: Lenguaje de proposito general muy parecido a haskell pero con dependent typed
Cayenne: Este lenguaje fue influido por la teoría constructive type (pero eso es para otro post)
Que ventajas trae Dependently typed:
-Se pueden encontrar más errores en tiempo de compilación
-Editores que nos ayuden más
-Puede checkear que los elementos de tu programa estén bien.
Todo muy lindo, pero vamos con algo menos abstracto, vamos a ver una definición de tipo en Idris:
data Vect : Nat -> Type -> Type where
Nil : Vect Z a
(::) : a -> Vect k a -> Vect (S k) a
ufff, y yo pienso que mi vida es complicada...
Veamos, en la primera linea decimos, que definimos una familia de tipos que toman un Nat y retornan un tipo. Entonces le decimos cuando, en esta sentencia tiene que haber siempre al menos un verdadero. Es parecido a pattern maching pero con tipos.
Este tema es muy interesante voy a seguir con esto en futuros post.
Dejo link: https://wiki.haskell.org/Dependent_type
viernes, 25 de marzo de 2016
Elixir School
Inspirados en scala school la gente de elixir creo Elixir school, básicamente una pagina para aprender elixir y lo bueno que entre los idiomas disponibles esta el castellano.
Que más decir, a estudiar!!
Dejo links:
https://elixirschool.com/es/
http://elixirschool.com/
lunes, 21 de marzo de 2016
Programación lógica con miniKanren
Siempre pero siempre pero siempre que escuchamos sobre programación lógica, relacionamos con prolog y hacemos bien. Pero prolog no es la única opción.
Con ustedes miniKanren.
miniKanren es un DSL (Domain Specific Language) para la programación logica.
miniKanren es muy simple, con sólo tres operadores lógicos y un operador de interfaz.
La primera implementación fue en scheme, pero ahora existen implementaciones en diferentes lenguajes y tecnologías como Racket, Clojure, Haskell, Python, JavaScript, Scala, Ruby, OCaml, PHP y algunos más.
miniKanren fue diseñado para ser simple y fácil pero a la vez fácil de extender.
Veamos un ejemplo:
(run* [q] (== q 1))
Esto parece una linea de codigo pero hace muchas cosas.
run* retorna la lista de comandos que se pueden ejecutar. q es una variable booleana.
Como podemos ver miniKanren es simple y open source!
Dejo link: http://minikanren.org/
Con ustedes miniKanren.
miniKanren es un DSL (Domain Specific Language) para la programación logica.
miniKanren es muy simple, con sólo tres operadores lógicos y un operador de interfaz.
La primera implementación fue en scheme, pero ahora existen implementaciones en diferentes lenguajes y tecnologías como Racket, Clojure, Haskell, Python, JavaScript, Scala, Ruby, OCaml, PHP y algunos más.
miniKanren fue diseñado para ser simple y fácil pero a la vez fácil de extender.
Veamos un ejemplo:
(run* [q] (== q 1))
Esto parece una linea de codigo pero hace muchas cosas.
run* retorna la lista de comandos que se pueden ejecutar. q es una variable booleana.
Como podemos ver miniKanren es simple y open source!
Dejo link: http://minikanren.org/
sábado, 19 de marzo de 2016
1bookcase
Les quiero compartir una muy buena pagina para bajar libros. La verdad que esta pagina me puso muy contento dado que encontré muy buenos libros y algunos que hace rato que le sigo la pista.
Dejo link: https://1bookcase.com/
Suscribirse a:
Entradas (Atom)