martes, 28 de diciembre de 2010

Windows Azure DataMarket: el multiuso de los datos

12:45 by Rafael Flores · 0 comentarios

Últimamente mi trabajo ha derivado hacia temas fuera de lo técnico por lo que lamentablemente tengo poca capacidad para “tocar código” de la que he podido disfrutar hasta ahora, pero aunque este tema me pille un poco más de “refilón” me ha parecido lo suficientemente interesante para conocerlo y, ya puesto, explicarlo.

Microsoft, dentro de su estrategia de servicios para la nube de Internet denominad Windows Azure, ha incluido una plataforma de consumo y publicación de datos a través de OData llamada DataMarket.

image

DataMarket es una plataforma que realmente define en su nombre de qué se trata: “simplemente” es un mercado de datos. Y digo simplemente porque toda la complejidad técnica que esconde detrás de la fachada es admirable: cualquier empresa, institución o incluso persona puede exponer sus datos para consumo y uso por parte de un tercero en cualquier lugar de Internet, de una manera establecida o no, sin que esto suponga carga de proceso para el proveedor y con la posibilidad o no de conseguir beneficios económicos de esta “venta de datos”; pero es que también cualquier empresa, institución o persona puede disponer de manera inmediata de datos digitales de los que puede hacer uso como le plazca (salvo excepciones estipuladas en cada licencia de uso de los datos) en sus propias aplicaciones o mediante aplicaciones de terceros como Microsoft Excel PowerPivot, de manera gratuita o con un coste estipulado por uso (ojo con esto: es preciso comprobar cuál es el coste de los datos que usemos y bajo qué condiciones se nos tarifica por su uso ya que por ejemplo puede haber conjuntos de datos que por cada consulta, y esto incluye las previsualizaciones, nos cobre un acceso… – en general, esto es un consejo recomendable para cualquier uso en Windows Azure: ¡mucho ojo con la tarificación!).

Lo que esto nos proporciona básicamente es el poder acceder a datos y por tanto información que nunca antes hubiéramos podido usar. Esto nos permite pensar aplicaciones nuevas, completar las existentes… en definitiva: innovar, que ya es hora :) Además, al hacer uso de estándares reconocidos como OData, Microsoft esta vez nos ofrece un producto realmente “open” para Internet, que puede emplearse en cualquier plataforma y aplicación. Y, aunque muchos de los conjuntos de datos que se ofrecen en DataMarket son de pago, también hay otros muchos que son gratuitos y que podemos emplear ya, como el que veremos a continuación en el ejemplo que proviene de Naciones Unidas. Por cierto, sería de agradecer que Microsoft añadiera un filtro a su buscador de datos para mostrar sólo los gratuitos… aunque me imagino que eso va contra sus objetivos de ventas ;)

Vamos pues a entrar en arena con un pequeño ejemplo. Lo primero que hemos de hacer es acceder a la página de DataMarket y registrarnos con una Windows Live Id en https://datamarket.azure.com/

Una vez dentro tenemos varias pestañas en la parte superior que nos ayudarán a realizar nuestra labor:

  • Learn: aprender, que nos proporciona información sobre cómo desarrollar aplicaciones para Windows Azure DataMarket . En Microsoft se han tomado mucho esfuerzo en intentar que sepamos fácilmente cómo desarrollar aplicaciones para su plataforma, es algo que se ve en todo el portal de DataMarket y que es de agradecer.

image

  • Browse: para buscar fuentes de datos y la verdad es que hay muchísimas y cada día más! Eso sí, sobre todo norteamericanas pero es de esperar que esto poco a poco vaya mejorando para los habitantes del viejo continente (por ejemplo, empieza a disponerse de muchas fuentes europeas y de Gran Bretaña, a las que seguramente seguirán alemanes y franceses).

image

Aquí podemos buscar la/s fuente/s de datos que nos interese, o simplemente como es mi caso acceder a aquellas de organismos internacionales de carácter público ya que estos suelen ser gratuitos en un 95% de los casos (por ejemplo, los de United Nations).

  • Partners es la zona donde los socios que proporcionan datos en DataMarket se anuncian de manera pública además de donde podemos encontrar la información de los pasos a seguir si tenemos datos que queremos “vender en el mercado”.

image

  • My Data, aquí es donde está el “meollo” de la cuestión, donde encontraremos la lista de las fuentes de datos a las que nos hayamos subscrito, y desde esta lista acceder a la información sobre su uso (licencia, costes…), tipos de consultas que ofrece (fijas o flexibles) y clave de acceso. En mi caso estoy suscrito a una fuente de datos de UNData, la sección de datos de Naciones Unidas, que proporciona información muy interesante a coste 0.

image

  • Help, nuevamente una sección muy completa de ayuda sobre cualquier cosa que necesitemos en DataMarket, o para pedir ayuda si echamos algo de menos.

image

Vale, ahora vamos a ver cómo podemos usar estos datos. No me voy a dedicar a mostrar aquí cómo podemos usarlos mediante herramientas como Excel PowerPivot ya que me alargaría demasiado y eso está muy bien explicado en la propia ayuda de DataMarket. Lo que haré será desarrollar una mini aplicación para mostrar lo fácil que es acceder a estos datos mediante Visual Studio y OData.

Lo primero es volver al tab de “My Data”, donde haciendo drill down en el enlace al conjunto de datos que nos interesa podremos acceder a más información sobre ellos:

image Desde aquí podemos tener acceso tanto a la exploración de una vista previa de los datos (recordar que en este caso esto no tiene coste!) como a los enlaces para ver los datos con otras herramientas como Excel PowerPivot o TableauSoftware. imagePero en enlace que nos interesa es el de abajo “Learn How To Use This Data In Visual Studio“ que nos lleva a una sección en MSDN dedicada al desarrollo de soluciones para Windows Azure DataMarket muy completa.

image

Bien, manos a la obra. Lo primero que tenemos que hacer es averiguar si nuestro conjunto de datos es de tipo Flexible Query o Fixed Query. La diferencia es que los primeros nos permiten pasar una serie de parámetros y/o condiciones para la consulta de manera que los datos que esta devuelva sean flexibles, mientras que en el segundo caso el vendedor establece unos datos fijos que devolverá según una serie de consultas establecidas por él de antemano. Estos datos los podremos luego usar nosotros como queramos, pero siempre serán los que nos vengan dados.

En nuestro caso, si volvemos a la página de información de nuestro conjunto de datos, bajando un poco en la misma vemos que indica que se trata de una Flexible Query (acepta parámetros):

imageEn este caso lo que tenemos que hacer es crear una aplicación en VisualStudio a la que añadiremos una Service Reference para el acceso a los datos en Azure. Vamos a hacer lo más sencillo, una aplicación de consola, ya que una vez conseguido hacer este acceso bien modificar el UI para usar Windows Forms, WPF, Silverlight, ASP.Net o lo que queramos será una cosa simple.

Abrimos VS2010 y creamos un nuevo proyecto .NET Framework 4.0 (obligatoriamente) de tipo Aplicación de consola, que en nuestro caso será en C#, y nombraremos TestDataMarket.

image A continuación, tal y como indica la ayuda de MSDN, para crear una aplicación de tipo Flexible Query, http://msdn.microsoft.com/en-us/library/gg312152.aspx, añadimos la Service root URL a nuestro proyecto, que es la que tenemos en la página de información de nuestro conjunto de datos que hemos visto anteriormente. A continuación en nuestro árbol de proyecto, en References, pinchamos con el botón derecho y seleccionamos “Agregar referencia de servicio”. En el menú que nos sale, en Dirección pegamos la Service Root URL, y pulsamos “Ir” para que detecte los servicios disponibles. image

. Le proporcionamos un nombre con sentido y pulsamos Aceptar.Hecho esto, ya tendremos disponible el conjunto de datos para nuestro uso en la aplicación.image En nuestro código añadimos la referencia con una sentencia using que referencia al espacio de nombres de nuestra aplicación seguido del que hemos dado al servicio referenciado. En mi caso:

using TestDataMarket.UNEnergyData;  // Acceso a datos

A continuación hemos de crear una clase pública que nos proporcionará el acceso a los datos.

        public class GetElectricalData
        {
            Uri serviceUri;
            UnitedNationsEnergyContainer context;
            public GetElectricalData()
            {
                serviceUri =
                    new Uri("https://api.datamarket.azure.com/Data.ashx/UnitedNations/Energy/");
                context = new UnitedNationsEnergyContainer(serviceUri);
                context.Credentials = new NetworkCredential(" ", <CLAVE DE ACCESO>);
            }
            public IList getStats()
            {
                IEnumerable query;
                query = from c in context.Values
                        where c.CountryName == "Spain"
                        select c;
                return query.ToList();
            }
        }
Esta clase la he hecho muy básica, porque sólo quiero comprobar el acceso. Se trata de una query LINQ que devuelve una lista de enumerables que recuperan los valores de nuestra fuente de datos para España. Lo podríamos complicar todo lo que queramos, dentro de los valores permitidos por los datos, tal y como se hace en las consultas SQL de toda la vida. Destacar únicamente que donde indica ; habremos de introducir nuestra Account Key de DataMarket, que podremos obtener en la pantalla “My Data” (o “My Accounts” en la parte superior, es lo mismo), en la sección “Account Keys”.

Finalmente, en nuestro main mostramos los resultados por pantalla para ver que funciona:

        static void Main(string[] args)
        {
            GetElectricalData X = new GetElectricalData();
            IList stats = X.getStats();
            foreach (Values v in stats)
            {
                Console.WriteLine(v.Year + " : " + v.CommodityTransactionName + "  -> " + v.Quantity);
            }
            Console.ReadLine();
        }

Como vemos, este código no tiene nada de particular, por lo que no haré comentarios. Y nuestro resultado será este:

image

Como vemos, acceder a semejante volumen de datos y emplearlos en nuestras aplicaciones no tiene ninguna dificultad gracias a Windows Azure DataMarket. Lo siguiente será que vendamos nuestros datos a través de esta plataforma, rentabilizando por tanto de manera adicional nuestras aplicaciones. Una gran plataforma por parte de Microsoft.

Aprovecho para despedirme de las colaboraciones en el boletín de los Centros de Excelencia Software de Navarra, CESDigital, ya que aunque es posible que estos continúen, mi dedicación a este boletín ya no es prioritaria por tanto dudo mucho que vuelva a publicar nada en él. Eso sí, mi blog ha de seguir adelante.

Y, finalmente, ¡muy feliz 2011 a todos! Ojalá que podamos olvidarnos de este año 2010 en el que sólo han salido ganando los impresentables de siempre y ha traído tan poca alegría a la gente normal. Urte berri on!

sábado, 11 de diciembre de 2010

Prometo…

15:05 by Rafael Flores · 0 comentarios

Volver a escribir pronto. Ahora estoy en pleno momento “creativo” con mis socios para definir nuestro nuevo intento como Start-UP (en mayúsculas, hay que auto-animarse con esto siempre) que me deja poco tiempo, pero quiero escribir precisamente sobre eso: cómo es la “experiencia”. Tengo fe, creo que estamos en buen camino,

Mientras contaré una cosa buena y altamente recomendable O’Reilly,esa editorial que los que llevamos tantos años como yo metidos en la Informática (también con mayúsculas, la de los “ventas” de turno no, esa es la de mercadillo, de esa mejor no hablar…) hemos aprendido a adorar y a querer como si ese catálogo de animales de sus portadas fueran nuestros, tiene un programa estupendo, el Blogger Review Program: coges uno de sus libros, lo lees y escribes y publicas una crítica. Crítica que puede ( y debe, supongo) ser sincera, no “spanish style” rollito bienqueda, eso no. Así que los que queráis poneros las pilas en inglés IT mirarlo que es muy recomendable.

Agur!

viernes, 12 de noviembre de 2010

HOW TO: Get the Most From a Small Business Social Media Presence

10:38 by Rafael Flores · 0 comentarios

HOW TO: Get the Most From a Small Business Social Media Presence
Este es un muy buen artículo en lo relativo a aprovechar los medios Web2.0 de manera adecuada para un Small Business. No todo lo que nos cuentan por ahí es bueno. ¿Gastar por gastar en campañas Google AdWords o Facebook? Hoy en día no, eso no es posible ni conveniente. Y menos cuando un negocio pequeño carece de recursos.
El artículo nos indica qué cosas hay que tener en cuenta, qué debemos tener claramente representado en nuestro Agile Board. Aunque el cómo o con quién hacerlo no nos lo cuenta, una pena, aunque eso sería demasiado bonito para que nos lo contaran en un artículo :)

jueves, 4 de noviembre de 2010

Poco a poco

14:16 by Rafael Flores · 0 comentarios

Ya me voy haciendo con la configuración de Blogger para este blog, añadiendo enlaces a Feeds, Blogs y otros temas de interés. Me quedan algunas cositas más, pero no queda mucho para que me de por satisfecho. Y me empiece a dedicar a escribir aquí, que es de lo que se trata. Mientras, os recomiendo tanto el Alvin Ashcraft's Morning Dew como el blog de Mario López de Ávila. Cada uno en su especialidad son de un valor impresionante.

martes, 26 de octubre de 2010

Primera entrada

12:57 by Rafael Flores · 0 comentarios

marsupilamiBueno, hola, lo primero. Por fin me he decidido a comenzar este Blog, que llevaba bastante tiempo deseando comenzar, pero sin atreverme a hacerlo ya que uno siempre tiene el miedo de que lo que publique no le interese a nadie… salvo uno mismo. Y creo que, ya que como mínimo para mí sí que será interesante guardar estos apuntes o notas, para mi Knowledge Base personal, quizá pueda ser interesante para alguien más lo que publique, así que por eso lo hago. Sí, básicamente ese ha sido mi

Disclaimer: espero que quizá esta información pueda ser de utilizar para alguien aparte de mí. Si lo consigo, perfecto. Si no es así, lo lamento.

Y de qué va esto? Bueno, me voy a definir como un ingeniero informático con unos cuantos años ya de vuelo profesional (del 95 a hoy, unos 15 ya, cómo pasa el tiempo) por muchas plataformas (Unix-es, Linux-es, Windows-es… ) y soluciones (Oracle BBDD y Forms/Reports, Informix, DB2, Siebel CRM, IIS, Apache, Sharepoint, SQLServer…) y tecnologías (.Net, Java…). Partí del desarrollo (Cobol, C, C++…) hasta la arquitectura y optimización del rendimiento en consultoría especializada, de ahí pasé a la gestión de proyectos y más o menos en eso sigo a día de hoy. Pero me divierte todo, hasta programar para Google Android con Java Sonrisa y por eso me encanta "cacharrear” y “pringarme las manos” con el código. Sólo así se puede aprender de verdad, desde mi punto de vista. Recientemente he abrazado con fervor las Metodologías Ágiles, SCRUM en particular, e intento aplicarlas en todo lo que me meto, desde proyectos de desarrollo a gestión de equipos y tareas. Por último, he decidido finalmente afrontar el gran reto y llevo un tiempo intentando emprender mi propia aventura empresarial. Creo que es el camino lógico al que llega todo aquel con inquietudes y ganas, por un camino u otro, y si no lo intento sé que lo lamentaré siempre. El momento no es bueno, pero eso al final da igual: hay que creer en la idea y uno mismo.

Así que podría definirme como inquieto. Mi media laboral en cualquier empleo es de unos 4 años, tras los cuales mi cerebro pide caña y busco un cambio, de manera natural. Parece una tontería, y no es ninguna regla fija, pero hasta hoy así ha sido. Y considero que para bien. He trabajado con base en Londres, Madrid y Pamplona (mi ciudad natal), pero por muchos sitios: Inglaterra (up & down), España, Francia (me encanta Paris), Italia, Alemania, Holanda, Israel, Arabia Saudí, Dinamarca, Rep. Checa, Portugal… Y además de esto he tenido la suerte de viajar por bastantes lugares más gracias a mi mujer.

Bueno, creo que eso es todo. Por eso defino este blog como técnico, para emprendedores y sobre metodologías. Espero que más o menos estos tres pilares sean los que toque aquí. Muchas veces uno empieza algo con una idea y luego esta varía hasta ser otra distinta. Veremos.

Si has leído hasta aquí, gracias.

Por cierto, Zalakain es un personaje de novela de Pío Baroja, que por esas cosas de la memoria se me quedó grabado cuando leí el libro en el colegio, y hasta hoy me acompaña.

Y la imagen del blog es de Kanagawa: Great Wave. Me gusta especialmente porque me encanta Japón y esta ola simboliza el cambio profesional que tanto quiero, busco, necesito...