2010/01/13

Como acceder a información de tu base de datos desde un Google Spreadsheet

En mi empresa (HS Latin America) desarrollamos software y los programadores van registrando en los Work items del Team Foundation Server (TFS) las tareas que esta realizando cada uno desde el Visual Studio 2008.
Luego yo como manager del equipo llevo registro en un Google Spreadsheet los proyectos sus deadlines, estado, costos, facturación y ganancia por proyecto.
Y me encontre con la necesidad de acceder a datos almacenados en un SQL Server 2008 del TFS desde un Google Spreadsheet y paso a explicarles como lo resolví.
  1. Cree un usuario y un rol en el SQL Server 2008 (donde esta instalado el TFS) que tenga acceso solamente a la vista WorkItemsAreUsed
  2. Instale el SQLXML 3 en el servidor
  3. Cree un virtual directory llamado myvirtual con el SQLXML donde accede con el usuario creado en el paso 1 y que permita hacer querys desde la url
  4. Luego me fui a mi planilla de Google Spreadsheet y puse la siguiente formula: =ImportXML(A1,A2)
    Donde en A1 contiene: ="http://mydomain.com/myvirtual?sql=select+%27%3CWorkItems%3E%27;select+*+from+WorkItemsAreUsed+FOR+XML+AUTO,ELEMENTS;select+%27%3C/WorkItems%3E%27"&"+'"&MINUTE(NOW())&"'"
    Que significa que me trae todo los WorkItems (aca podemos agregarle WHERE clause si queremos traer solo algunos)
    Donde en A2 contiene: /WorkItems/WorkItemsAreUsed/Microsoft.VSTS.Scheduling.RemainingWork
    Que significa que trae solo el campo RemainingWork de todos los WorkItems
Problemas con los que me encontré antes de llegar al resultado de arriba:

Web Services de TFS
Primero quise utilizar el servicio de Web Services del TFS que estan ubicados en:
http://mydomain:8080/WorkItemTracking/v1.0/ExternalServices.asmx
y que hay muy poca documentación y me encontré con varios problemas, primero que no te aceptaba parámetros por URL por default, entonces le modifique el web.config ubicado en:
\\servidortfs\c$\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\WorkItemTracking\web.config
y le agregue en la sección de protocols dentro de webServices lo siguiente para que acepte parametros GET y POST:

add name="HttpGet"
add name="HttpPost"

Luego llame a http://mydomain:8080/WorkItemTracking/v1.0/ExternalServices.asmx/GetWorkitemXml?id=53&rev=1 y me funcionaba bien internamente pero me encontré con el problema de que por una restricción del TFS no te permite acceder a los WebServices del TFS desde el exterior, entonces lo descarte y fui por la opción del SQLXML.

Puertos distintos del 80
Otro problema que me encontré fue que inicialmente instale el SQLXML en un puerto distinto al 80 y cuando usaba el ImportXML en el Google SpreadSheet con una url con un puerto distinto al 80 no me funcionaba. Al cambiar al puerto 80 me funciono.

Refresh/Cache de ImportXML
En un momento llame a la función ImportXML con un parámetro de URL que devolvía un XML vacio y ImportXML me devolvía NA y luego modifique los datos en el SQL para que no devuelva vacio y el ImportXML me siguió dando NA por bastante tiempo, al otro día me funciono bien.
Googleando y probando un poco llegue a la conclusión de que la función ImportXML se refresca automáticamente pero no pude descubrir cada cuando tiempo, supongo que dependerá de algún proceso que pondrá en cola todos los refresh que tiene que hacer y dependerá del tiempo y la cantidad de procesos en cola pero es solo una suposición,.

Workaround de Refresh
Como les comentaba en el punto anterior no hay una manera de refrescar, simplemente hay que esperar que google refresque.
Un workaround que encontre es agregarle al final de la url basura que cambia cada un minuto.
Por lo tanto google se piensa que la url cambia entonces fuerza el refresco de la url cada 1 minuto
Este workaround esta en la linea que describi anteriormente al final:
Donde en A1 contiene: ="http://mydomain.com/myvirtual?sql=select+%27%3CWorkItems%3E%27;select+*+from+WorkItemsAreUsed+FOR+XML+AUTO,ELEMENTS;select+%27%3C/WorkItems%3E%27"&"+'"&MINUTE(NOW())&"'"

Espero que les sirve de utilidad

Saludos, AR

2009/07/20

XSubtitles v1.0

[Spanish]
Les dejo aca un script para bajar subtitulos directamente desde tu XBMC

http://www.xbmczone.com/plugin_details.asp?id=113

Te permite bajar subtitulos de Sublight y Opensubtitles, soportando los siguientes tipos de busqueda:
  • por pelicula que estas viendo
  • por Titulos de la pelicula
  • por nombre del archivo de la pelicula

Que lo difruten!

[English]

Video plugin to download subtitles from OpenSubtitles or Sublight Websites
Supports:

  • Current video subtitle download from OpenSubtitle or Sublight2.
  • Filename subtitle download from OpenSubtitle or Sublight3.
  • Movie Title subtitle download from OpenSubtitle or Sublight

Thanks to Dan Dar3 the creator of this plugin, I just made a few modifications to integrate both plugins and support OpenSubtitles search by Title

Enjoy it!

2009/07/15

Las mejores aplicaciones para Nokia (Symbian S60 3er)

Aca les paso a describir cuales son a mi criterio las mejores aplicaciones para telefonos Nokia con sistemas operativos Symbian S60 3er o superior, en mi caso uso el E71 pero tambien estan el N95, N96, E71, E75, E68, E61, 5800, N97 y otros.
  • Garmin XT: Es el mismo software de mapas que los GPS Garmin para el auto, para navegacion offline por GPS
  • Mapas de proyecto mapear para el Garmin XT
  • Mail for Exchange: Sincronizar tareas, calendario, contactos y mails con el Microsoft Exchange
  • Google Latitude: Te permite ver donde estan tus amigos
  • Nimbuzz: IM que soporta Skype, MSN, Yahoo, otros.
  • TTPod: MP3 Player con fade
  • Shazam ID: Escucha por el microfono una cancion y te dice de quien es. Buenisimo!!
  • Midomi: Igual que el Shazam pero en vez de escuchar una cancion, la cantas y te detecta de quien es.
  • YouTube: Para ver videos de YouTube
  • Nokia Internet Radio
  • irRemote: Control remoto para dispositivos infrarojos
  • AccuWeather: Ver el clima
  • Shozu: Postear y ver items en diferentes social networks (Facebook, Twitter, etc)
  • WiPresenter: Pasar las diapositivas de un powerpoint de la PC desde el telefono y te permite ver las notas de cada slide.

2009/07/02

Desayuno de Plan de Negocios en Palermo Valley

Hoy fui a un desayuno sobre Plan de Negocios que organizo Pallermo Valley en AreaTres. El lugar estaba bueno, el presentador fue Agustin Badano co-founder de Empreware (una empresa que hace un soft para armar plan de negocios) y Gerente del Fondo de Innovación Tecnológica del Banco Santander Río.
La charla estuvo muy buena, les paso los tips que más me quedaron:
  • Primero debemos enfocarnos en hacer un Plan de Negocios que requiera los fondos mínimos necesarios para testear/validar el modelo en un mercado pequeño y una vez que se cumple esto ahí si nos enfocamos en conseguir más capital sobre un modelo ya validado.
  • Microgestion del Riesgo: Se puede especificar una clausula en el contrato con el inversionista que por ejemplo de lo que se vaya sacando de ganancias el inversionista cobre primero esto le permite al inversionista bajar el riesgo y que tenga mayor posibilidad de invertir en tu negocio.

Me encontré con Fernando Aguilar, ex companiero mio de la UTN, que es el socio de Agustin en la empresa Empreware, el cual me comento de Naves un centro de entrepreneurship que organiza el IAE.

2009/06/24

Ver Televisión desde Internet o desde tu Media Center (XBMC)

Este fin de semana me instale el Orb, un programa que te permite retransmitir webcams, video, música y la señal de televisión que te llega a tu casa (Cablevision, DirecTV, Antina, etc) hacia Internet (computadora o telefono) o hacia tus media center (XBMC, Windows MCE, etc) a través de tu red local (UPnP).

Claramente es la mejor combinación para recibir TV en el XBMC

Para retransmitir la señal de televisión se necesita:
  • una computadora con el orb.com instalado
  • una capturadora de video (interna o externa), en mi caso me compre una externa USB modelo TVGo A03-IPTV de Genius por U$S 60 en MercadoLibre
  • en el caso que tu señal de televisión venga con un decodificador, vas a necesitar un IR blaster para poder cambiar los canales. En mi caso cuando me compre el control remoto de windows MCE me vino con uno. El IR blaster es básicamente un aparatito que le manda señales infrarrojas al decodificador de tu proveedor de cable. Entonces cuando configuras el orb.com tiene un wizard que te configura el IR blaster de acuerdo al control remoto del decodificador y entonces cuando uno accede remotamente y le dice que quiere ver determinado canal el orb.com le manda la señal IR al deco y luego retransmite la señal del deco por Internet.

Para recibir la señal se necesita:

  • una computadora que accede a través de un explorador de Internet ya sea en forma local o por Internet
  • o un celular que accede a través de un explorador de Internet ya sea en forma local (wifi) o por Internet (3G/edge/wifi)
  • o un media center que accede través de tu red local y a través del protocolo UPnP, que puede ser el fantástico XBMC o el Windows MCE o cualquier otro con UPnP

2009/05/27

Video Llamada en Argentina

El otro dia hice mi primer video llamada con un amigo desde mi celular y me sorprendio y asombro muchisimo que bien que se veia. Les comento un par de conclusiones que sacamos:
  • Por ahora solo funciona entre celulares del mismo proveedor. Al igual que el MMS al comienzo las comunicaciones inter-proveedor son más complicadas y calculo que en poco tiempo ya las podremos realizar. En nuestro caso provamos entre Personal y Personal y funciono y entre Claro y Personal no anduvo.
  • Solo funciona si ambos telefonos estan conectados a redes 3G. Al realizar una Video Llamada el telefono chequea si el destinatario esta conectado a una red 3G y recien ahi comienza a realizar la llamada, sino tira el error "not supported by other phone of network" o "Video Call not supported by network". Obviamente ambos telefonos tienen que tener soporte 3G y en el caso particular del Nokia N95 tuve que forzarlo a que se conecte a la red 3G porque el N95 por defecto esta configurado en dual-mode y si tiene ambas redes disponibles se conecta a la red GSM (2G) en vez de a la red UMTS (3G). Entonces me fui a la configuracion de la red y en vez de dual-mode le setee UMTS y ahi funciono perfecto. Para el Nokia E71 no fue necesario.
  • Calidad de audio mala, el audio al igual que el video lo transmite por la red de datos y si bien el video no estan importante si se entrecorta, en el caso del audio se hace insoportable escucharlo entrecortado, en las conversasiones que realice hasta el momento el 50% eran aceptables y el otro 50% era muy mala la calidad de audio. Esperemos que en el futuro el ancho de banda de las redes nos permita tener una mejor calidad de audio, calculo que en otros paises esto ya debe funcionar mucho mejor.
  • Funcionalidades divertidas, tiene diversas funcionalidades divertidas mientras uno realiza una Video Llamada como ser: compartir una foto, utilizar la camara delantera o la camara trasera, hacer zoom in/out y compartir fotos.

Eso es todo por ahora esperemos que en el futuro funcione inter-proveedor y mejore la calidad para que pronto sea una funcionalidad standart en cualquier telefono

2009/01/24

Envío desde Asia hacia Latinoamérica a través de EMS

Como hacer el seguimiento de su pedido

  1. Conseguir el numero de envío origen del proveedor: Cuando nos envían un producto del exterior el proveedor nos enviara un numero de envío (tracking number). Este numero de envío corresponde al correo del país de origen y deberá ser algo similar a este numero: EA828827604CN.
  2. Verificar el estado del pedido en EMS Asia: Con este numero debemos ingresar a esta pagina para verificar el estado del mismo.
  3. Conseguir el numero de envío destino del correo oficial del país destino: En la mayoría de los casos esto no será necesario porque en el punto anterior encontrará toda la información necesaria. Pero si usted tiene algún inconveniente o desea tener más detalles de la entrega debe contactarse con la oficina de correo local y ahí proporcionales el numero de envío del país de origen y ellos le proporcionaran un nuevo numero correspondiente al numero de envío del país destino y será algo similar a este numero: EE276732788AR
    Correo Oficial de Argentina: 4891-9191
  4. Verificar el estado del pedido en país destino: Con el numero de envío del país destino deberá ingresar a la pagina web del correo oficial del país destino e ingresar este numero número de pedido y verificar en que estado esta su pedido.
    Correo Oficinal de Argentina

Posibles estados del pedido en EMS Asia

  • City of Shanghai Posting: Llego el pedido a la oficina postal del país de origen
  • XXX Despatch from Sorting Center: Se envío el pedido a la oficina central del país de origen
  • SHANGHAI Arrival at Sorting Center: Llego el pedido a la oficina central del país de origen
  • SHANGHAI Despatch from Sorting Center: Salio el pedido de la oficina central del país de origen hacia el país destino
  • REPUBLIC OF ARGENTINA BUE EMS Handed over to Customs: Entro en aduana. Muchas veces ni aparece este estado porque pasa directo.
  • REPUBLIC OF ARGENTINA BUE EMS Released from Customs: Salio de aduana y esta listo para ser entregado. Es posible que al pasar por este estado al entregarte el producto te cobren algún cargo adicional de aduana. Muchas veces ni aparece este estado porque pasa directo.
  • REPUBLIC OF ARGENTINA BUE EMS Arrival at Sorting Center: Llego a la oficina central del país destino.
  • REPUBLIC OF ARGENTINA ARSTD1 Attempted delivery: Se trato de enviar el pedido a la dirección destino y no se pudo por algún motivo, generalmente el correo tratará más de una vez de entregarlo.
  • REPUBLIC OF ARGENTINA ARSTD1 Delivery: El pedido fue entregado satisfactoriamente.
  • Your item was not delivred successfully(REPUBLIC OF ARGENTINA ARSTD1): El pedido no pudo ser entregado todavía. Generalmente el correo tratará más de una vez de entregarlo. Si intenta varias veces y no puede entregarlo el envío quedara en la oficina de correo local y deberá ir a retirarlo el titular o una persona con una autorización con el DNI del destinatario del envío.