septiembre 17, 2012

Let's talk about Google Apps Script



Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

Esta es una pequeña y rápida introducción a como utilizar las Google Apps Script (GAS),  herramienta con la que construimos nuestro proyecto "Community OAuth 2.0 & Business" que compitió en el  Google Apps Developer Challenge 2012, en realidad no llegamos a las finales de la competencia ..pero uno de sus jueces dijo este comentario respecto a nuestro proyecto, y pensamos que resume muy bien y en muy pocas palabras nuestro concepto, y creemos que también el potencial de las Google Apps Scripts y el porque nos interesa el tema :

The app brings an opportunity for small business to create and control online selling. With little UX improvement the app can be use in scale by any micro business.

Nuestra experiencia en el desarrollo de aplicaciones cliente-servidor comerciales nos ha permitido observar la enorme dificultad que tienen las organizaciones y empresas para iniciar de una manera adecuada y ordenada el registro de sus movimientos ordinarios, más aún de una correcta administración y control de sus operaciones; o que los costos y tiempos de desarrollo para informatizarse escapen de sus presupuestos y no sean de fácil implementación (ERP, soluciones cloud computing, otros), a la par de la existencia de malas experiencias de implementación y desarrollos no satisfactorios .. lo mismo puede decirse de muchas empresas que recién empiezan.. y realmente las estadísticas respecto a las PYMES y fracaso empresarial es realmente impresionante y citamos algunos datos proporcionados por el portal Gestiopolis:

Las cifras disponibles de fracaso de las Pymes son abrumadoras en cualquier país que se analicen.. 4 de cada 5 no sobreviven 3 años; en España, para García Ordóñez de la Universidad de Cadiz, “el 80% de las empresas quiebran en los primeros cinco años"; para Francisco Yañez (México) "al cumplir 10 años, solamente el 10% de las empresas maduran, tienen éxito y crecen”; de acuerdo con Cetro-Crece, también de México, “el 75% de las nuevas empresas mexicanas debe cerrar sus operaciones apenas después de dos años en el mercado"; para degerencia.com: “la experiencia demuestra que el 50% de las empresas quiebran durante el primer año de actividad, y no menos del 90% antes de cinco años”..

En los Estados Unidos de América, según Samuelson y Nordhaus, “el promedio de vida de las empresas es de seis años y más de un 30% no llega al tercer año”.. La Asociación Argentina para el desarrollo de la Pequeña y Mediana Empresa afirma taxativamente que: “Sólo el 7% de los emprendimientos llega al 2º año de vida y sólo el 3% de los emprendimientos llega al 5º año de vida”.. y finalmente, para no abrumar con más cifras, en Chile, según informa Rodrigo Castro F., un estudio en el que se le dio seguimiento a 67.310 empresas creadas en 1996, indicó que el 25% de ellas desapareció en el primer año, un 17% en el segundo año, el 13% en el tercer año y un 11% en el cuarto año.. y el caso peruano pues aparte del fracaso empresarial habría que añadir el tema de formalización, pues miles y miles de "pequeños negocios" prácticamente no tributan, no registran las planillas de su personal contratado y se manejan sin mayor información y control de sus operaciones..

Por supuesto, el objetivo de nuestra entrada no es analizar las causas de esta situación, sino como técnicos informáticos tratar de contribuir en revertir estas cifras, y así como existen muchas personas que actualmente estan revisando y discuten respecto a  como evitar el fracaso empresarial, pues nosotros creemos que proporcionar una manera sencilla, practica y de alcance global para poder promocionar y administrar nuestros negocios y servicios, pues de hecho, también contribuye al mismo objetivo.. y parece que lo hemos logrado utilizando las   Apps Script  y la plataforma Blogger de Google en nuestro proyecto.

Para interesados en el tema hay aquí unos enlaces que pueden revisar (in English):



El potencial GAS



Como indicamos, con Google Apps Script podemos construir de una manera rápida y facilmente comprensible todas las operaciones que requiere el manejo de un negocio :
  • Registrar a nuestros clientes
  • Registrar los pedidos de nuestros clientes.
  • Registrar las compras (al contado, al credito), u otros gastos que requiera nuestro negocio y atender los pedidos de nuestros clientes.
  • Registrar las ventas (al contado, crédito), u otros ingresos de nuestro negocio.
  • sumarizar y analizar toda la información registrada para ver como marcha nuestro negocio..
y por supuesto, que el objeto de las Apps Script no solo es para negocios.. sino automatizar cualquier procedimiento que queramos realizar utilizando las  hojas de calculo de Google, y ahora también, utilizando una base de datos llamada ScriptDB; en ambos casos existe una limitación en la capacidad de almacenamiento brindada: las hojas de calculo de Google soportan tablas de hasta 400,000 celdas y nos permiten trabajar hasta con 200 hojas por cuenta google; las ScriptDB permiten hasta 50Mb por cuenta Google, 100Mb por cuenta de Google Apps, y hasta 200Mb por cuenta de Google Apps for Business/Education/Government.. estas limitaciones de almacenamiento de datos en las  Apps Script nos indican claramente que el enfoque de esta herramienta es automatizar operaciones específicas de una organización o empresa, pero se muestran suficientes para el caso de las PYMES (small and micro business), ó para cuando nos iniciamos en algún negocio o emprendimiento..

Que mas nos brinda GAS..



Debemos tener claro que Apps Script  nos permite el empleo de un lenguaje de programación: Javascript, y el acceso a varias fuente de datos: Google spreadsheets y ScriptDB principalmente, teniendo en consideración por supuesto la limitación de capacidad de almacenamiento de cada caso, pero vale resaltar que Apps Script tiene habilitado la capacidad de conectarnos a base de datos como MySQL, SQL Server u Oracle utilizando su servicio JDBC; y esto permite limpiar nuestra fuente de datos utilizando bases de datos mas escalables (programando cortes en nuestras operaciones cuando sea necesario: por falta de capacidad almacenamiento, por los ciclos normales de gestión de nuestra organización o negocio, vale decir cortes anuales principalmente).

las Apps Script nos permiten también aprovechar los servicios de Google App Engine y conectarnos a la  GAE datastore,  para lo que nos resulta conveniente revisar y seguir con detalle este tutorial.

Pero las Apps Script nos proporciona también habilidades realmente importantes :
  • Construir interfaces de usuario para desplegar nuestros desarrollos, y para lo que disponemos de los siguientes servicios :

    1. servicio UI, que nos proporciona elementos ó "widgets" tal como botones, radiobuttons, listbox, grids, paneles, entre otros para que a través de código javascript podamos construir nuestra pagina.
    2. Utilizando GUI Builder, que es una herramienta para la construcción de nuestra interface sin utilizar código y facilitar nuestro trabajo.
    3. y ahora también, utilizando el servicio HTML, que nos permite crear y servir una página HTML convencional a partir de nuestro código Apps script ..al mismo modo que cuando trabajamos con nodeJS por poner una referencia, y decimos esto porque de esta manera podremos trabajar con Javascript como Back-End y por el front-side dentro del entorno Apps Script.

  • Publicar nuestros desarrollos como aplicaciones web, y esta puede ser una página stand-alone (desplegada directamente a través de la URL proporcionada) ó embebida en una página de Google Sites; siendo tambien posible utilizar la misma hoja de calculo que aloja nuestro desarrollo.
  • Activar nuestro código GAS de acuerdo a los eventos de uso de la hoja de calculo que aloje nuestro desarrollo ó a eventos de tiempo (un día/hora específica, secuencias diarias, semanales, etc.)
  • y por supuesto, acceder a los diferentes servicios y API proporcionados por Google como los calendarios, gráficos, correos, mapas, manejo de las cuentas de Google, de las cuentas de Google Apps, entre otros..

Vale también destacar que Google como parte de su política de limpieza de verano (anunciado el 03 de junio pasado), esta cerrando algunos servicios importantes como la  Google Finance API, entre otras que puede consultar en  este enlace; lo que significa, en el caso de la información financiera, que ya no podremos acceder a dicha información a través de servicios de Google (debiéndose tal vez ahora utilizar el servicio YQL de Yahoo Developer Network u otros); pero resulta que, para este caso mencionado, la mayoría de la información de la Finance API ha sido cargada como una  funcion Google Finance en las hojas de calculo de Google, vale decir, podremos acceder a datos de bolsa y otros más específicos para nuestros desarrollos, como es el caso de la cotización del tipo de cambio de cualquier moneda del mundo a través de dicha función (lo que puede ser muy útil e imprescindible considerar en proyectos y aplicaciones multi-moneda).

Algunas conclusiones.



Todo lo anterior nos muestra un fuerte apoyo de Google a las Apps Script  y éste puede llegar a convertirse en un entorno de desarrollo de aplicaciones realmente bastante importante, vale pues tenerlo en cuenta y revisar con detenimiento los enlaces que nos detallan su funcionamiento, especialmente en lo que concierne al almacenamiento de datos en hojas de calculo (las librerías principalmente), y utilizando ScriptDB.

Es cierto también que, en estos momentos los desarrollos Apps Script como aplicaciones Web no tienen un perfomance lo bastante rápido que quisieramos, pero es algo que Google parece estar mejorando, por cuanto, al plantear algun problema al respecto en la  pagina de cuestiones de Google Apps Script, usualmente se nos solicita la ID de nuestra hoja de calculo que aloja nuestra aplicación y ésta mejora notablemente su rendimiento.. no nos sorprendería un mejor perfomance de Apps script en el tiempo, ni tampoco el incremento de las limitaciones de capacidad de almacenamiento actualmente vigentes.

En lo que se refiere a la perfomance de nuestros desarrollos Apps Scripts conviene revisar con detalle los siguientes enlaces:
  • UI service, poniendo especial atención a los temas referidos al uso de los ServerHandler y ClientHandler, por cuanto los primeros son de ejecución notoriamente más lenta que los manejadores del cliente; por supuesto, los ServerHandlers son obligatorios cada vez que se accede a nuestra fuente de datos u otras operaciones de lado del servidor.
  • clase createServerHandler, que corresponde al detalle de los métodos soportados de los ServerHandlers, y nos muestra un ejemplo sencillo de como se utiliza.
  • clase createClientHandler, que corresponde al detalle de los métodos soportados cuando utilizamos ClientHandlers, y también nos muestra un ejemplo sencillo de como trabaja.

Esta introducción a las Apps Script no puede terminar sin animarlos a  revisar la documentación  y probar los  tutoriales  referidos al tema y disponibles en la pagina web de esta herramienta.. quedando para una próxima oportunidad el detalle de nuestro proyecto y código utilizado, para lo cual les solicitamos su participación registrandose y probando nuestro  proyecto.. por supuesto, sus comentarios e impresiones son bienvenidos y muy importantes para la mejora y replanteo de nuestro modelo..





Aparte de seguir y probar los  tutoriales  de la pagina de Apps Script, conviene que revisemos estos codelabs :

Nota : continuaremos agregando enlaces y ejercicios a esta entrada.

saludos
@Mlaynes