Google Scripts : Programando Facil una Planilla de Cálculo

Desde Google Docs, la empresa de la gran G, nos brinda una suite de soluciones increíbles e impensadas hasta hace poco. Tener una herramienta de ofimática colaborativa a costo de una conexión de Internet, parece ser el sueño de todo apasionado por la tecnología, sea un avanzado usuario o un interesado casual.

Ahora tenemos la posibilidad de agregar funcionalidades a nuestras planillas, al mejor estilo de los programadores.

GOOGLE APPS SCRIPTS, en adelante Google Scripts o GS, nos ofrece la oportunidad de crear soluciones para las mas diversas de nuestras necesidades. Y lo mejor de todo es que Google, sigue mejorando día a día esta tecnología. El lenguaje para aprovechar el poder ofrecido por la API de Google es, JAVASCRIPT. Un viejo amigo de los programadores y diseñadores web desde hace más de una década. Un poco olvidado en una época, pero resurgido de las cenizas con toda la movida de las Web 2.0, y navegadores web mas poderosos, como nuestro querido Mozilla Firefox. En la web, hay tutoriales a montones de como aprender esta tecnología.

Para empezar con ejemplos, suponemos que tenemos establecido al español nuestro perfil, y que para acceder al editor de javascript, usamos el menú HERRAMIENTAS > SECUENCIAS DE COMANDOS > EDITOR DE SECUENCIAS DE COMANDOS …

Vamos a establecer una lista de accesos a los ejemplos ahora mismo para los mas ansiosos:

1) Creando un Menú de Acciones Personalizado
2) Cuadro de Dialogo: Pidiendo e Informando
3) Dando valor a un Rango de Celdas
4) Conociendo quienes somos
5)

Publicado en General | Deja un comentario

PHP 6: Que hay de nuevo

La llegada de PHP6, esta cerca. La promesa de una mejor POO y el soporte UNICODE, es bien conocido.

Con Unicode, tendremos una referencia única a cada caracter, así como una lista mas completa… mas de 99000.

Una de las formas mas populares de apreciar el cambio, es cuando en el resultado del buscador, aparecen caracteres “raros” o expresiones en otro idioma, o frases en árabe, chino, etc

Una idea de lo que podremos lograr, es con un ejemplo del Unicode composition, que permitirá crear caracteres nuevos a medida que cada lenguaje o idioma evolucione.

unicode

La internacionalización será mas fácil, y la Transliteración, nos permite escribir en un idioma y convertirlo a otro, para que lo podamos pronunciar sin vergüenza ninguna. Con PHP6, solo lleva un par de lineas de código.

El TextIterator es una nueva característica de PHP 6, puedes iterar en cada punto, caracter, palabra o linea, y en ambos sentidos. Y poder cortarlos es mucho más fácil.

El ROADMAP, se esta actualizando pero imagino que pronto tendremos una release de PHP6, aunque ello no impida un PHP5.4

Fuente : http://blogs.zdnet.com/BTL/?p=9313

Publicado en General, Software Libre | Deja un comentario

Symfony 2 para phpBB4

En un reciente articulo de phpBB, se explica el porque se eligió Symfony 2, como base de desarrollo del nuevo phpBB4.

Sobre Symfony 2 : http://symfony-reloaded.org
Código http://github.com/symfony

¿Qué es Symfony 2?

Symfony 2 es una reescritura completa de su código original, el cual se enfoca en resolver los problemas de las anteriores versiones ( 1.0 a 1.4). Symfony, se convirtió en una herraminta apreciada por la comunidad PHP. Tiene una gran cantidad de plugins que resuelven distintos desafios y promete un mejor uso de los recursos que como lo hacia symfony 1.

¿Porque Symfony 2 para phpBB4?

La siguiente lista explica en cada punto las razones. La misma esta basada en los items de los Principios de Programación de phpBB4.

  • phpBB4: PHP 5.3+
    • Symfony 2 fue re-escrito en PHP5.3, consistentemente con el enfoque de phpBB4.
  • phpBB4: Hace uso de namespaces y de la autocarga standar.
    • Symfony 2 es el primer framework en seguir el autoloading standard de PHP5.3, mejorando la interoperabilidad del proyecto PHP.
  • phpBB4: Código limpio y modular orientado a objetos con clases desacopladas
    • Symfony 2 es un framework orientado a objetos. De arquitectura simple y fácil API.
  • phpBB4: Los Plugins pueden completamente reemplazar MODs sin ningun cambio en el código
    • Symfony 2: Como se menciono antes Symfony 2 esta en bundles que no necesitan de modificaciones. Symfony 2 hace uso de códifo generado.
  • phpBB4: Usar existentes librerias / frameworks en luhar de reinventar la rueda
    • Symfony 2: El uso de un framework como Symfony 2 ya casi permite esto. Además Symfony 2 digue de cerca al Zend Framework.
  • phpBB4: Fácil integración con software
    • Symfony 2: Usando Symfony 2 phpBB4 automaticamente podrá integrarse en un proyecto Symfony cualquiera. El diseño de Symfony 2 también requiere que hagamos phpBB de manera modular,.
  • phpBB4: Escalabilidad (ejecutarse sobre clusters)
    • Symfony 2: Symfony tiene una historia de ejecutar grandes services, y Symfony 2 esta diseñado para la alta performance.
  • phpBB4: Consistente con el uso de Dependency Injection
    • Symfony 2 esta construido alrededor de un Dependency Injection Container, usando Dependency Injection por todos lados.
  • phpBB4: Pruebas automatizadas: Pruebas Unitarias, integración de pruebas y pruebas funcionales con PHPUnit, Selenium
    • Symfony 2 tiene ya las pruebas automatizadas y permite a los proyectos usar cualquier framework de pruebas.
  • phpBB4: Un framework de desarrollo para phpBB (hacer aplicaciones basadas en phpBB, estandarizar nuestro framework en una libreria)
    • Symfony 2 es un framework y tiene mas sentido que hacer uno específico para phpBB. Partes de phpBB serán reusables.

Es absolutamente asombroso como Symfony 2 coincide con los requisitos de phpBB4.

¿Que otra cosa puede Symfony 2 dar?

Ya que su comunidad es muy grande, podemos contar con mas desarrolladores y mas aportes. Los clientes necesitan una integración de un foro dentro de un proyecto Symfony y es problema común para los programadores. En vez de crear un propio, se puede usar phpBB integrado. Los desarrolladores con esta necesidad pueden ayudar a phpBB.

Para conocer mas http://symfony-reloaded.org

Publicado en General, Software Libre, Symfony | Deja un comentario

Declaraciones, Redes Sociales, y Comisión de Informática CPCECBA

Pocas veces me encontré con dificultades para empezar a escribir un artículo en este Blog. Rapidamente me doy cuenta que la causa del mismo, es simplemente un triste hecho, ajeno a mis intereses y pensamientos, los cuales dependiendo del tiempo encuentran espacio en este Blog.

Desde hace un año, soy Presidente de la Comisión de Informática del Consejo Profesional de Ciencias Económicas de Córdoba. En dicha comisión se tratan temas de distinta índole informática y tecnológica. Se realizan eventos de alcance púbico, como lo fue la Conferencia-Debate Voto Electrónico. Personalmente, promuevo el software libre en la comisión, y debo decir que ya somos mayoría. Estamos asistiendo con consejos y trabajo gustosamente a otras comisiones del consejo, pues el trabajo conjunto y la buena fe, logran cosas que valen la pena luego declarar. La libertad de las ideas, es una premisa, aunque reconozco ser un verdadero cabeza dura en algunos temas, pero contar con profesionales en esta comisión, a sido motivo para  establecer verdaderas amistades.

Como dije, el software libre, es un tema primordial para mi trabajo en la comisión. Como sabrán seguramente, una de las garantías de estas libertades es similar a otros escritos. No se puede discriminar por el color, raza, país, preferencia sexual o religiosa, etc. a las personas en el uso del software.

Dicho esto, y considerando la diferencia existente entre la violación de una licencia, y la vida de una persona, es que ayer por la tarde un miembro de la comisión, me avisa de este artículo periodístico. El motivo del mismo, originó otros más.

Al principio, pensamos que se trataba de un ataque a la página de este diario. Sorpresa fue, cuando revise los dichos del VicePresidente de la Comisión, donde soy Presidente…

Inmediatamente me puse en contacto con el colega, para que me diera alguna explicación que pudiera explicar tales eventos. El colega Ebeling, manifestó su completo arrepentimiento, un arranque sin sentido que no pensó siquiera tuviera mas efecto que la respuesta comprensible de otros usuarios de Facebook.

Imagino que pensó, el colega, estaba en una tribuna de algún estadio de fútbol o en el patio de una escuela primaria. Pero no. El contador estaba muy equivocado. Lo pronunciado, así como el lugar donde lo realizo ( donde se aboga por la vida de un adolescente ) estuvo fuera de lugar. Y como lamentablemente todos sabemos, la palabra dicha es como la piedra lanzada… no hay forma de evitar el daño que causamos.

Hoy debo decir que el Contador Hugo F. Ebeling, no ocupa más el cargo de vice presidente de la comisión de informática y lamenta el daño producido a la Comisión, al Consejo, a su familia y allegados. Como también, a las personas que dañaron directamente sus dichos. Esto es a la Comunidad Gay y a la Comunidad Judía.

Esto último es hasta de pronto irrisorio, puesto que hasta no hace mucho tiempo un colega del consejo, miembro de la comunidad judía, fue de los integrantes de la comisión. Y nunca se dio un altercado de esta magnitud. Es más, una de mis pocas contribuciones a Wikipedia, fue en el artículo Pueblo Judío, de los que por cierto me siento ingenuamente orgulloso y algo aprobado por todos los miembros de la comisión.

De plano rechazo los dichos publicados en Facebook, un acto a mi entender sin sentido. Del que sé, el contador Hugo Federico Ebeling se arrepiente profundamente.

Como presidente de este grupo de profesionales, envío mis disculpas, a las personas afectadas, como así también a las personas que día a día, trabajan para las minorías, la igualdad de los derechos y en defensa de la memoria. Además como miembro de la comisión de informática ya desde hace algunos años, sé que el contador Ebeling a unas semanas de su retiro, desearía despedirse de la comisión y del consejo, en otros términos. Estoy convencido que su trabajo como profesional siempre ha sido su pasión y que la respuesta por parte de la sociedad le ha pesado a su espíritu.

Seguro es, la tristeza del colega de haber generado tantas reacciones y dejar su lugar en la comisión. Así como yo de haber experimentado tales eventos.

Cr. Roberto Germán Puentes Diaz
CPCECBA MP 10.12726.9

Publicado en General, Sociedad | 11 comentarios

Rendimiento Symfony = f(ORM)

Bueno siguendo con el tema de rendimiento, esta claro que el ORM, no es un elemento mas de nuestro framework.

La encuesta sigue en http://spreadsheets.google.com/viewform?formkey=dFVFLXdBcGNvcFEwdVZmN3ZLU193cmc6MA

Como recordaran por el benchmark que comente aqui http://groups.google.com/group/symfony-es/browse_thread/thread/6a6cc2ec5b1d0920/66bdce04bcd7a2b4?hl=en#66bdce04bcd7a2b4

Pronto publicare el resultado de usar SF1.3+Doctrine2 con el resto de los resultados existentes en  http://www.puentesdiaz.com.ar/blog/?p=167

Hasta ahora, el ranking del mas veloz, queda así

Symfony 1.3 ALPHA2 + Propel 1.4 BETA

supera a

Symfony 1.3 ALPHA2 + Propel 1.3 Final

supera a

Symfony 1.3 ALPHA2 + Doctrine 1.2 Final

Lo curioso es que Propel sigue siendo mucha mas rápido que Doctrine, e incluso a partir de las modificaciones que tiene PROPEL 1.4… es aun mas rápido… mucho mas rápido

Segun me comenta Francois Zaninotto en http://groups.google.com/group/propel-users/msg/8c512ae7c5f91059?hl=en
Si eliminamos los tiempos de carga propios de Symfony, es decir lo ajeno a los ORM. El verdadero rendimiento del ORM, se deja ver. Mostrando un rendimiento de casi el doble del calculado inicialmente.

Una explicaciones la expone aqui
http://groups.google.com/group/propel-users/msg/e1fa266179ae20da?hl=en

En pocas palabras, se puede decir que este es otro ejemplo de “sobreingenieria”. Doctrine es muy impresionante por todo lo ofrecido. Una fuerte OO, etc.

Sin embargo, la eleccion entre PROPEL y DOCTRINE, se me presenta como otro caso en que debemos determinar donde esta linea. Merece hacer tanta herencia de clases? Hasta cuanto podemos renunciar al rendimiento…

Hasta ahora la encuesta muestra unos votos a favor de Doctrine…. Yo por mi parte le doy mi voto a PROPEL

Publicado en Symfony | Etiquetado , , , , | Deja un comentario

Practical Symfony: Jobeet – 2° Edición

Desde hace ya unas cuantos días termine el proyecto de tener traducido a nuestro idioma la segunda edición del Libro Oficial de Capacitación Practical Symfony : JOBEET,  y esta vez no solo para Symfony 1.2 sino también para el nuevo Symfony 1.3. Como imaginarán es el mismo libro pero adaptado para la nueva versión.

El tutorial como es lógico está en constante cambio, revisando errores, y mejorando sus partes, con el finde dar un mejor recurso para los rrhh de las empresas. Con mejores versiones de cada una de sus partes así como el uso de las mejores prácticas del mundo profesional de desarrollo web
Y aunque esta muy bien realizado, se recomienda ver las últimos cambios en cada día del tutorial.

Como siempre, para nuestros dos más queridos ORMs

Symfony 1.3 + Propel:
http://www.symfony-project.org/jobeet/1_3/Propel/es/

Symfony 1.3 + Doctrine:
http://www.symfony-project.org/jobeet/1_3/Doctrine/es/

Symfony 1.2 + Propel:
http://www.symfony-project.org/jobeet/1_2/Propel/es/

Symfony 1.2 + Doctrine:
http://www.symfony-project.org/jobeet/1_2/Doctrine/es/

Publicado en Symfony | Deja un comentario

Performance Symfony : 1.3 : PROPEL & DOCTRINE


Castellano

English
Bueno, este prueba es muy inicial….

El planteo: Siguiendo Practical Jobeet con Propel y Doctrine, y usando Symfony1.3 ¿Cuanto demora interactuar con un simple ABM?

Well, it’s just very initial

The problem: Follow Practical Jobeet with Propel and Doctrine, and using Symfony1.3, How long takes interac with a simple CRUD?

Leyendo los Capítulos 1 y 3, para cada ORM, y envolviendo el controlador para el entorno DEV en un archivo benchmark estos fueron los tiempos.Los reportes tienen este formato:
0 _ORM_WEBDIR_URL-TIEMPO.BMK
Reading the Chapters 1 and 3, for each ORM, and warp to front controller for DEV enviorement inside a benchmark file, these is the resultsThe reports has this format:
0 _ORM_WEBDIR_URL-TIME.BMK
Luego de generar el projecto y la aplicación After generate project and application
0 _propel_web_benchmark.php-0.12712812423706.BMK

0 _doctrine_web_benchmark.php-0.1438159942627.BMK

Luego de cargar los datos iniciales After load data
0 _propel_web_benchmark.php-0.13877201080322.BMK

0 _doctrine_web_benchmark.php-0.1630699634552.BMK

Luego de la generacion del modulo y creacion del ABM After generate modele and create the CRUD
0 _propel_web_benchmark.php_job-0.16423082351685.BMK

0 _doctrine_web_benchmark.php_job-0.22494578361511.BMK
Otros test, note que “ORM_WEBDIR_URL”
tiene reemplazados los “/” por unos “_”,
asi sabemos que test ejecutamos
Others test, note that “ORM_WEBDIR_URL”
has replace the  “/” by “_”,
thus we know which test run
20/10/2009  16:48                 0 _propel_web_benchmark.php_job-0.18634295463562.BMK
20/10/2009  16:48                 0 _propel_web_benchmark.php_job-0.20151519775391.BMK
20/10/2009  16:58                 0 _propel_web_benchmark.php_job_create-0.21860218048096.BMK
20/10/2009  16:56                 0 _propel_web_benchmark.php_job_create-0.25584602355957.BMK
20/10/2009  16:55                 0 _propel_web_benchmark.php_job_edit_id_1-0.24364185333252.BMK
20/10/2009  16:56                 0 _propel_web_benchmark.php_job_new-0.22872591018677.BMK
20/10/2009  16:50                 0 _propel_web_benchmark.php_job_show_id_1-0.17427802085876.BMK
20/10/2009  16:48                 0 _doctrine_web_benchmark.php_job-0.22568798065186.BMK
20/10/2009  16:48                 0 _doctrine_web_benchmark.php_job-0.27266120910645.BMK
20/10/2009  16:57                 0 _doctrine_web_benchmark.php_job_create-0.29636907577515.BMK
20/10/2009  16:58                 0 _doctrine_web_benchmark.php_job_create-0.31708693504333.BMK
20/10/2009  16:50                 0 _doctrine_web_benchmark.php_job_edit_id_1-0.36150407791138.BMK
20/10/2009  16:56                 0 _doctrine_web_benchmark.php_job_new-0.27971601486206.BMK
20/10/2009  16:50                 0 _doctrine_web_benchmark.php_job_show_id_1-0.27344703674316.BMK
Probando ahora con Symfony 1.3 y el nuevo Propel 1.4 Testing with Symfony 1.3 and the new one Propel 1.4
22/10/2009  14:01-> 0 _sfFULL_propel_web_benchmark.php-0.13401699066162.BMK
22/10/2009  14:07-> 0 _sfFULL_propel_web_benchmark.php_job-0.16235113143921.BMK
22/10/2009  14:07-> 0 _sfFULL_propel_web_benchmark.php_job-0.16368754986478.BMK
22/10/2009  14:08-> 0 _sfFULL_propel_web_benchmark.php_job_create-0.21050310134888.BMK
22/10/2009  14:08-> 0 _sfFULL_propel_web_benchmark.php_job_create-0.21248616913548.BMK
22/10/2009  14:07-> 0 _sfFULL_propel_web_benchmark.php_job_edit_id_1-0.25051593780518.BMK
22/10/2009  14:08-> 0 _sfFULL_propel_web_benchmark.php_job_edit_id_3-0.24934816360474.BMK
22/10/2009  14:07-> 0 _sfFULL_propel_web_benchmark.php_job_new-0.24454116821289.BMK
22/10/2009  14:04-> 0 _sfFULL_propel_web_benchmark.php_job_show_id_3-0.17340588569641.BMK
22/10/2009  14:08-> 0 _sfFULL_propel_web_benchmark.php_job_update_id_3-0.14927196502686.BMK

RESULTADOS

Symfony 1.3 + Propel 1.4 > Symfony 1.3 + Propel 1.3 > Symfony 1.3 + Doctrine 1.2

Comparando (%) Propel 1.4 y Doctrine 1.2 Comparation (%) Propel 1.4 and Doctrine 1.2
Sabiendo que Symfony 1.3 le toma 0.10 en carga todo, sin hacer uso de la DDBB Knowing that Symfony 1.3 take 0.10 autoload all, without use the DDBB
Propel 1.4 beta
22/10/2009  14:04            0 _sfFULL_propel_web_benchmark.php_job_show_id_3-0.17340588569641.BMK
Propel 1.3
20/10/2009  16:50            0 _propel_web_benchmark.php_job_show_id_1-0.17427802085876.BMK
Doctrine 1.2
20/10/2009  16:50            0 _doctrine_web_benchmark.php_job_show_id_1-0.27344703674316.BMK

Comparativa ORM Inicial ( Propel 1.4 / Doctrine 1.2 ) : ( 0.173 ) / ( 0.273 ) = 63%
Comparativa ORM Real ( Propel 1.4 / Doctrine 1.2 ) : ( 0.173 – 0.10 ) / ( 0.273 – 0.10 ) = 42%

Propel 1.4 beta
22/10/2009  14:08            0 _sfFULL_propel_web_benchmark.php_job_create-0.21248616913548.BMK
Propel 1.3
20/10/2009  16:56            0 _propel_web_benchmark.php_job_create-0.25584602355957.BMK
Doctrine 1.2
20/10/2009  16:58            0 _doctrine_web_benchmark.php_job_create-0.31708693504333.BMK

Comparativa ORM Inicial ( Propel 1.4 / Doctrine 1.2 ) : ( 0.212 ) / ( 0.317 ) = 66%
Comparativa ORM Real ( Propel 1.4 / Doctrine 1.2 ) : ( 0.212 – 0.10 ) / ( 0.317 – 0.10 ) = 51%

Sin querer ofender a nadie :), pero…

Propel es dos veces más rápido

I don’t want offend to anyone :), but…

Propel is twice faster

Publicado en Symfony | 1 comentario

Richard Stallman y Roberto Puentes Díaz en Córdoba

Ayer Domindo 23, el señor Richard Stallman, tuvo el placer de tomarse una foto con su servidor.

Cuando RMS me conoció
Cuando RMS me conoció

Bueno, saliendo del tono de humor/ego. Decir que la conferencia es todo un exito, Felicitaciones a la Fundacion Via Libre, UNC, y la Ciudad de Córdoba. Desde ayer RMS es visitante ilustre.

Publicado en General, Software Libre | Deja un comentario

Jobeet: Libro en Español

Desde hace ya unas cuantas semanas que nos encontramos llevando a cabo el proyecto de tener traducido a nuestro idioma el Libro Oficial de Capacitación Symfony : JOBEET.

El tutorial esta en constante cambio, revisando errores, y mejorando sus partes.
Por eso se recomienda ver las últimos cambios en cada día del tutorial.

Para Propel:
http://www.symfony-project.org/jobeet/1_2/Propel/es/

Para Doctrine:
http://www.symfony-project.org/jobeet/1_2/Doctrine/es/

Publicado en General | Deja un comentario

Factura Electrónica

Ahora, una de Contadores.

Como ya saben, nuestra buena amiga AFIP, nos ofrece la EFACTURA (http://www.afip.gov.ar/efactura/)

En el anterior enlace encontraremos mucha información al respecto.

Si desean ver los vídeos, pero tiene grandes inconvenientes de conexión, les dejo las descargas de los mismo:

  1. Presentacion
  2. RECE
  3. RCEL
Publicado en General | Deja un comentario