jueves, 27 de agosto de 2009

Escuchar música en Internet

En Internet hay unos cuantos sitios que permiten escuchar música on-line. Últimamente he usado unos cuantos de estos servicios, así que dejo acá una reseña de cada uno.

Pandora
Pandora fue el primer servicio que usé, pero lamentablemente ahora no está disponible en Uruguay, así que hace tiempo que no lo uso.

Uno podía elegir una canción o un artista, y reproducía música similar a la seleccionada. La coincidencia en su momento era muy buena, capaz que ahora lo comparo con los demás y no me parece nada espectacular.

FineTune
FineTune es un sitio que permite crear listas de reproducción eligiendo para cada una las canciones que quiero. Tiene dos restricciones: 1) las listas deben tener al menos 45 canciones, y 2) no pueden haber más de tres canciones de un determinado artista en la lista.

Este servicio todavía lo sigo usando, tiene la ventaja que hay una aplicación de escritorio, con lo que no es necesario tener el navegador abierto en este sitio.

Tiene una especie de recomendación, aunque siempre me pareció bastante malo, por la música que selecciona. La forma de obtener recomendaciones es crear una lista de menos de 45 temas, y pedirle que los complete.

Deezer
Deezer tiene la ventaja que con respecto a los dos anteriores, que se pueden elegir las canciones a escuchar sin ningún tipo de restricción, salvo la evidente de que la canción esté disponible.

Lo usé bastante poco porque me pasó varias veces seguidas que no encontré lo que estaba buscando, así que lo dejé de usar.

Last.fm

Last.fm es un buen servicio enfocado más que nada a la parte social de escuchar música. Lo usé un tiempo, pero tenía algunas restricciones en la versión grátis, y como en realidad FineTune era una buena alternativa, no lo seguí usando.

YouTube
Técnicamente YouTube no es para escuchar música, pero la realidad es que tiene mucha variedad, aunque para algunas cosas tiene restricciones de acceso.

En realidad la mayor contra que tiene es que consume más ancho de banda que los demás servicios porque también muestra el video, pero puede ser una buena opción si se busca una canción determinada.

Grooveshark
Grooveshark hace poco que lo estoy usando, unas dos semanas, pero es el mejor servicio que he encontrado hasta ahora.

Permite escuchar la música que quiera, en el orden que quiera, sin ningún tipo de restricción.

Además tiene una funcionalidad de recomendación de música que es muy buena, al menos en los casos que he probado.

No se cual es el negocio ni cuanto va a durar, pero por ahora, funciona muy bien.

Conclusión
Sin duda que hay muchas opciones para quienes quieren escuchar música en Internet, y seguramente van a haber muchas más y cada vez con menos restricciones.

Cada uno de los servicios mensionados tiene sus particularidades, algunos tienen cosas mejores que otros, pero todos son buenas opciones.

¿Alguien escucha música en Internet? ¿Qué servicio usan?

miércoles, 5 de agosto de 2009

Pasaje de parámetros entre objetos GeneXus

Acá dejo dos sugerencias con respecto al pasaje de parámetros entre objetos GeneXus:
  • parámetros opcionales
  • parámetros nominados
Parámetros opcionales

Muchas veces pasa que se agregan parámetros a un objeto GeneXus, porque se precisa pasarlos desde uno de los llamadores, pero no queremos que el resto de los programas llamadores cambien.

Lo que hacemos hoy es modificar todos los llamadores, agregando un nuevo parámetro con un valor que sería el valor por defecto.

Sería bueno tener la posibilidad de definir que un parámetro es opcional e indicarle cual es el valor por defecto. La definicón podría ser algo así:
parm(in:&par1, in:&par2=0, out:&result);
En este ejemplo el parámetro &par2 sería opcional, y si no se especifica el valor que se usaría en el objeto sería cero, que es el valor que se le da por defecto.

La invocación podría ser así, si se quiere usar el valor por defecto:
&result = Programa.udp(1)
o así, si se quiere especificar otro valor:
&result = Programa.udp(1, 2)
Parámetros nominados

Otra característica que tienen los parámetros en los objetos GeneXus  es que son posicionales.

Como está hoy no hay problema, pero si se permitiera tener parámetros opcionales, se podría plantear el problema que quiero pasarle solo uno de los N parámetros opcionales, lo que no se podría hacer a menos que justo le quiera pasar el primero de la lista.

Algo así:
parm(in:&par1=0, in:&par2=0, in:&par3=0);
¿Cómo hago para pasarle un valor distinto de cero solo a la variable &par2?

La solución podría ser indicarle el nombre del parámetro en la invocación. La sintaxis puede variar...
Programa.call(@&par2=1)
La @ es para indicarle que es el nombre del parámetro y no una variable en el contexto del programa llamador...