Translate
viernes, 7 de junio de 2013
jueves, 6 de junio de 2013
Limitar un conjunto de datos agrupados
El problema es simple,queremos los 5 primeros mails de las personas, tenemos una tabla personas y una tabla mails. y la tabla mails conoce a la tabla personas. Algo importante es que queremos los últimos mails, es decir los más nuevos.
Como podemos solucionar esto? con oracle la tenemos fácil porque existe el rank, la función rank va rankeando los resultados de una query, los rankea por una condición; por ejemplo los mails por persona:
SELECT RANK () OVER (PARTITION BY persona_id ORDER BY fecha DESC) orden,
persona_id,
FROM emails
Ahora bien si queremos limitar la cantidad de mails debemos hacer:
select persona_id, email from
(SELECT RANK () OVER (PARTITION BY persona_id ORDER BY fecha DESC) orden,
persona_id,
FROM emails)
WHERE orden < 5
Se pueden hacer muchas cosas muy buenas con rank y over. Over se puede utilizar también con el count.
Y todo gracias a Facundo Torres!!
Dejo links:
http://www.techonthenet.com/oracle/functions/rank.php
http://www.orafaq.com/node/55
http://www.oracle-base.com/articles/misc/rank-dense-rank-first-last-analytic-functions.php
miércoles, 5 de junio de 2013
Spring Framework 4.0 fue anunciado
La gente de spring no para y anuncia una nueva versión de su framework; que al parecer va tener su primer release candidate en septiembre de este año. Y es sorprendente si tenemos en cuenta que es un cambio importante de versión, con soporte a Java 8 y JEE 7, más un plus de funcionalidad.
Spring sigue creciendo, que se viene? Soporte a Java 8 es decir:
Soporte a JEE 7 es decir:
Que más agregar? Esperamos con ansias esta nueva versión.
Dejo link:
http://blog.springsource.org/2013/05/21/spring-framework-4-0-m1-3-2-3-available/
http://www.infoq.com/news/2013/06/Spring_Framework_4.0_Announced
Spring sigue creciendo, que se viene? Soporte a Java 8 es decir:
- JSR-335 Lambda expressions.
- JSR-310 La nueva Api de fechas de java 8
- Y soporte al nuevo bytecode de java 8, para soportar Lambdas.
Soporte a JEE 7 es decir:
- JSR-343 JMS 2.0.
- JSR-338 JPA 2.1.
- JSR-349 Bean Validation 1.1.
- JSR-236 Java EE 7 Enterprise Concurrency support.
- JSR-356 Spring's WebSocket endpoint mode.
Que más agregar? Esperamos con ansias esta nueva versión.
Dejo link:
http://blog.springsource.org/2013/05/21/spring-framework-4-0-m1-3-2-3-available/
http://www.infoq.com/news/2013/06/Spring_Framework_4.0_Announced
martes, 4 de junio de 2013
Distro Picker, una gran idea para saber cual es tu distro ideal
Seguro que no sabes que instalar, te gustan todas las distros de linux. Algo que te puede ayudar es el Distro Picker. Es muy facil de usar, completas que escritorio te gusta más, que manejador de paquetes, para que lo vas a utilizar y listo. Te tira tu distro ideal.
Dejo link:
http://tuxradar.com/content/distro-picker-0
Manual de Ubuntu
Si instalaste ubuntu y no tenes idea de la vida, ni que es linux este manual es para vos. Un manual para principiantes y totalmente en castellano
Dejo link:
http://issuu.com/jarodriguez/docs/manual_ubuntu
99 Bottles of Beer
Como sabrán me gusta muchos los lenguajes de programación pero mucho más la cerveza. Por lo tanto quiero compartir el siguiente sitio que trata de lenguajes de programación aunque su nombre referencia a la cerveza.
En este sitio se recopilan ejemplos de un programa que debe imprimir la letra de la canción: 99 Bottles of Beer. Fácilmente en este sitio podemos comparar lenguajes de programación.
Dejo el link:
http://www.99-bottles-of-beer.net
domingo, 2 de junio de 2013
Processing
Processing es un lenguaje de programación y entorno de desarrollo de código abierto para las personas que desean crear imágenes, animaciones e interacciones. Desarrollado inicialmente con el objetivo de generar bocetos de software y para enseñar los fundamentos de la programación informática en un contexto visual, Processing se fue convirtiendo en una herramienta para la generación de trabajo real y profesional. Hoy en día, hay decenas de miles de estudiantes, artistas, diseñadores, investigadores y aficionados que utilizan processing para el aprendizaje, creación de prototipos de software y generación de software real.
Bueno pero que se puede hacer con Processing? Todo lo que tenga que ver con manipulación de imagenes, animaciones, etc. Les dejo unos vídeos:
Dejo link:
http://www.processing.org/
Bueno pero que se puede hacer con Processing? Todo lo que tenga que ver con manipulación de imagenes, animaciones, etc. Les dejo unos vídeos:
Dejo link:
http://www.processing.org/
sábado, 1 de junio de 2013
Los últimos avances en Neo4j
Leyendo InfoQ me encontré con un articulo sobre los avances de Neo4j. Neo4j anuncio su versión 1.9 y 2.0; y también anuncio un nuevo proyecto, Neo4j para Android.
Que trae de nuevo Neo4j 1.9?
- Mejora en tolerancia de fallos.
- El Cypher (Lenguaje de consulta de Neo4j) creo nuevas funciones: manejo de cadenas, REDUCE y TIMESTAMP.
- Mejor copia de seguridad para la versión empresarial, que ahora detecta si el total o una copia de seguridad incremental es necesaria.
- Mejora de la capacidad de memoria y el rendimiento.
Neo4j 1.9 necesita el jre 1.7 para correr.
Es grandioso ver como va creciendo esta base de datos NoSQL.
Dejo link:
http://www.infoq.com/news/2013/05/neo4j-1-9-2-0
http://blog.neo4j.org/2013/05/neo4j-19-general-availability.html
https://github.com/neo4j-contrib/neo4j-mobile-android
jueves, 30 de mayo de 2013
Tour de Go
Mirando GenbetaDev me tope con una nota de recursos de Go y el que más me gusto fue Tour de Go (igual dejo el link de la nota completa). El Tour de Go esta bueno porque es fácil y te explica con ejemplo como funciona el lenguaje. Recordemos que Go es el lenguaje de Google que esta creciendo día a día.
Dejo links:
http://go-tour-es.appspot.com/#1
http://www.genbetadev.com/lenguajes-y-plataformas/empezar-a-aprender-go-golang
Linux Mint 15 “Olivia” released!
Como sabrán me encanta Mint, y estoy orgulloso de presentales a Olivia la nueva versión de sistema operativo, que hay de nuevo, viejo?
- Mate 1.6
- Cinnamon 1.8
- Dos nuevas herramientas "Software Sources" y "Driver Manager"
- y un montón de mejoras y bug fixing!
Lo estoy bajando, espero que hagan lo mismo!
Dejo link:
http://blog.linuxmint.com/?p=2366
http://linuxmint.com/rel_olivia_whatsnew.php
http://www.linuxmint.com/
Dejo algunas pantallas:
Y también le dedico una canción:
martes, 28 de mayo de 2013
REFERENCE CARDS for MongoDB
La gente de 10gen nos dejo un resumen sobre su base de datos NoSQL, MongoDB y lo quiero compartir con ustedes.
Dejo link:
http://info.10gen.com/rs/10gen/images/mongodb_qrc_booklet.pdf
Rapid Prototyping with JS
Quiero compartir el siguiente tutorial, casi libro, sobre como hacer prototipos en javascript rápidamente. Utiliza jquery, Underscore.js y Backbone.js que los 2 últimos no los he usado.
Dejo link:
https://leanpub.com/rapid-prototyping-with-js/read
domingo, 26 de mayo de 2013
Continuamos con Erlang
Agner Krarup Erlang (1 de enero de 1878 – 3 de febrero de 1929) fue un matemático, estadista, e ingeniero danés que inventó los campos de Ingeniería de tráfico (Telecomunicaciones) y la Teoría de Colas. En su honor bautizaron al lenguaje de programación Erlang con su apellido.
Se acuerdan del post: http://emanuelpeg.blogspot.com.ar/2013/05/vistazo-erlang.html bueno vamos a seguir dándole un vistazo a Erlang.
Las variables en Erlang son un tanto diferentes que otros lenguajes; al ser un lenguaje funcional solo se le pueden asignar valores a varible solo una vez. Es decir que las variables no pueden variar :P
Si necesitamos asignar otro valor, necesitamos otra variable.
3> Integer = 4.
4
4> Integer = Integer + 5.
** exception error: no match of right hand side value 9
5>
Se acuerdan del post: http://emanuelpeg.blogspot.com.ar/2013/05/vistazo-erlang.html bueno vamos a seguir dándole un vistazo a Erlang.
Las variables en Erlang son un tanto diferentes que otros lenguajes; al ser un lenguaje funcional solo se le pueden asignar valores a varible solo una vez. Es decir que las variables no pueden variar :P
Si necesitamos asignar otro valor, necesitamos otra variable.
3> Integer = 4.
4
4> Integer = Integer + 5.
** exception error: no match of right hand side value 9
5>
Como se puede ver las variables en Erlang comienzan con mayúsculas y pueden contener letras y números. También es importante notar que no indicamos el tipo sino que el compilador lo infiere.
12> Double2 = 3.5.
3.5
13> Double4 = 3.5 + Double2.
7.0
14>
14> Texto = "hola".
"hola"
15>
Erlang nos ofrece una estructura de datos compleja para poder representar la realidad.
15> Programadores = [ {person,"Juan","Gomez",
15> {lenguajes, [java,python] }
15> },
15> {person,"Pedro","Gomez",
15> {lenguajes, [java,python,erlang] }
15> }].
[{person,"Juan","Gomez",{lenguajes,[java,python]}},
{person,"Pedro","Gomez",{lenguajes,[java,python,erlang]}}]
Hasta acá llegamos por hoy, pero continuaremos aprendiendo este fascinante lenguaje.
Suscribirse a:
Entradas (Atom)