martes, 30 de diciembre de 2008

La calculadora en las búsquedas de Google

Recién quería hacer una conversión entre unidades de superficie, quería saber cuantos metros cuadrados son 10.600 pies cuadrados.

Entonces, ¿que hice?. Lo que cualquiera hubiese hecho... Busqué convert square feet to square meters en Google, a ver si encontraba algún sitio que me permitiera hacer la conversión...

La respuesta de Google fue:



Entonces, ya que Google me da la conversión, lo siguiente que hice fue hacer la cuenta ahí mismo, busqué convert 10600 square feet to square meters.

La respuesta de Google otra vez fue correcta:


Quedé sorprendido... no esperaba que Google me diera el resultado.

viernes, 19 de diciembre de 2008

El hardware es barato, los programadores son caros

Recién estaba leyendo un artículo muy interesante de Jeff Atwood, titulado Hardware is Cheap, Programmers are Expensive.

Básicamente lo que dice el artículo es que antes de intentar optimizar código, siempre es mejor plantearse comprar más hardware, porque el costo es menor.

Hace un tiempo tuvimos un caso de estos. Era un proceso que en una instalación corría todas las noches, y demoraba toda la noche. Es más, había días que a la hora que los usuarios empezaban a trabajar seguía corriendo, por lo que enlentecía todo, y lo terminábamos matando.

Esta situación generaba desconformidad en el cliente, y mucho estrés en el grupo de trabajo, por no poder solucionar el tema. Se había intentado muchas veces optimizarlo, incluso pasó por varias personas, pero las mejoras que se le hacía en cada iteración no eran sustanciales.

Cuando el cliente cambió el servidor, el proceso pasó a correr en 3 horas...

No hice las cuentas, pero estoy seguro que salieron mucho más caras todos los intentos de optimización que lo que salió el servidor nuevo...

En general, creo que cuando se da una situación de estas, es necesario hacer un primer intento de optimización, porque en general siempre hay algo para hacer, pero llega un momento en que el costo de optimizar el programa no se justifica, y lo mejor es poner hardware más rápido.

lunes, 8 de diciembre de 2008

Configuración de seguridad del .Net Framework 2.0

Estábamos pasando una aplicación de la versión 1.1 del .Net Framework a la versión 2.0, que en la instalación de producción se tiene que poder ejecutar desde una unidad de disco de la red.

En general .Net es bastante restrictivo con el tema de los permisos, pero nos habíamos asegurado que poniendo FullTrust en las zonas Trusted Sites y Local Intranet funcionaba. Para eso .Net tiene una herramietna de configuración que se ejecuta desde las Herramientas Administrativas del Panel de Control.

El problema es que la herramienta de configuración no se instala con el Framework, sino que se instala con el SDK, por lo que en los PCs de producción no estaba...

Después de preguntar y de buscar un poco, encontramos que también se puede configurar por línea de comando...

El comando para listar los grupos con sus permisos es:
caspol -m -lg
El comando para asignar FullTrust a uno de los grupos es:
caspol -machine -chggroup 1.2. FullTrust
donde "1.2." es el número del grupo según aparece en el listado del comando anterior.

sábado, 6 de diciembre de 2008

More Joel on Software

More Joel on Software: Further Thoughts on  Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and ... Luck, Work with Them in Some Capacity (Pro)Ayer terminé de leer el libro More Joel on Software de Joel Spolsky, que es un rejunte de artículos del blog joelonsoftware.com.

Para quienes tengan oportunidad de leerlo, es altamente recomendable. También recomiendo el primer libro, Joel on Software.

En general prefiero leer los libros en papel, aunque en realidad este se podría leer on-line, porque son todos artículos escritos en joelonsoftware.com

Para quienes no tengan acceso al libro, o prefieran leer los artículos en pantalla, acá van algunos de los que me resultaron más interesantes (en el orden que aparecen en el libro):

jueves, 4 de diciembre de 2008

Mi experiencia con OpenOffice.org 3.0

Desde hace unos 15 días dejé de usar Microsoft Office y estoy usando OpenOffice.org 3.0.

Lo que más he usado es Calc como reemplazo de Excel, aunque también he usado algo de Writer como reemplazo de Word.

Debo aclarar que el uso que le doy a Office es bastante limitado, uso las funcionalidades más básicas.

En cuanto a la compatibilidad, no he tenido ningún problema al abrir documentos de Microsoft Office con OpenOffice.org. No se que nivel de compatibilidad tienen, pero para un usuario básico es totalmente razonable.

En cuanto a la funcionalidad, me sorprendió lo parecido que es en las opciones y la ubicación de las distintas funciones dentro de los menues. Eso tiene una ventaja, que cualquiera que quiera cambiar no va a tener mayor dificultad en encontrar las cosas que usaba antes. También tiene una desventaja, que siempre van a estar corriendo de atrás para copiar las funcionalidades de MS Office en vez de dedicarse a innovar. Pero bueno, ¿cuanta innovación puede haber en el mundo de las planillas electrónicas y los procesadores de texto? Casi todo lo que yo uso (si no todo), ya estaba disponible hace 10 años.

En general, OpenOffice.org me parece una alternativa más que razonable para quienes no quieran pagar los USD 400 que cuesta la licencia de MS Office 2007 Standard.

miércoles, 26 de noviembre de 2008

La aceleración de la tecnología

Estaba viendo un video que publicó un amigo en Facebook sobre el avance en las tecnologías de la información, que en cierto momento dice que:
The amount of technical information is doubling every 2 years...
No se donde salen estos números ni si son ciertos, pero haciendo un repaso por las tecnologías que he pasado, tiene bastante sentido.

Empecé a programar en Basic... En aquella época me alcanzaba con Basic y DOS, aunque no duró mucho, porque en seguida cambié por Pascal.

Ya en la facultad pasé de Pascal a C/C++, que tenía como ventaja que era un lenguaje que se usaba de verdad, pero que podía llegar a ser muy complicado con algunos temas como el de reservar y liberar memoria.

El siguiente fue Java, que me gustó mucho más que C/C++ porque era bastante más fácil hacer aplicaciones con interfaz de usuario, además que escondía muchos de los problemas que tiene C/C++. En su momento, más o menos por la versión 1.2 del SDK, llegué a dominar bastante el lenguaje y la parte de interfaz de usuario con Swing.

Cuando empecé a trabajar, el principal lenguaje pasó a ser GeneXus, y de la mano de GeneXus, SQL. GeneXus sigue siendo hoy en día el lenguaje que más uso, pero dista mucho de ser el único como en la época de Basic, Pascal o C/C++.

GeneXus tiene la posibilidad de consultar la base de conocimiento mediante GXPublic, con lo cual hice varias aplicaciones auxiliares en C#. Actualmente GeneXus X ya no tiene GXPublic pero tiene la posibilidad de desarrollar Extensions que también son en C#.

Pero no solo eso, porque para desarrollar aplicaciones Web, también hay que saber HTML y JavaScript, y más recientemente todo lo que tiene que ver con AJAX. Esas tecnologías también se necesitan para desarrollar user controls para GeneXus X, aunque habría que agregarles además Silverlight y Flash, para tener un espectro más amplio de posibilidades.

Lo bueno es que Silverlight y Flash también sirve para las aplicaciones RIA que parece ser lo que se viene.

Hago una pausa para aclarar que no me estoy quejando. Me gusta todo lo que tenga que ver con tecnología, si me quejo de algo es de la falta de tiempo...

Pero bueno, la tecnología no se queda ahí, porque desde hace un tiempo están de moda los mashups que usan servicios de varios proveedores para crear una nueva aplicación, por lo que es necesario conocer las APIs involucradas que no son pocas... Además de las APIs hay otras tecnologías en la vuelta como REST y JSON que me gustaría tener un poco más claro.

Y todavía no hablé de aplicaciones para sitios sociales como pueden ser Facebook o Open Social, que son plataformas totalmente nuevas y por suerte todas distintas.

Otro tema que se viene es el de Cloud Computing, del cual me gustaría poder investigar un poco más, especialmente los web services de Amazon. Además que también me interesa el tema de Semantic Web, aunque no he pasado de los conceptos básicos.

Así que, volviendo al principio, para mi la cantidad de tecnologías que necesito o me gustaría conocer, a aumentado muchísimo en los últimos años.

martes, 11 de noviembre de 2008

Traducción automática en Google Reader

Leo en el blog de Google Reader, que agregaron una nueva funcionalidad que permite traducir las notas de una suscripción a "mi idioma".

En mi caso, "mi idioma" para Google es el inglés. Lo elegí así porque es el primer idioma en el que están disponibles las funcionalidades nuevas, que en general siempre quiero probar.

La pregunta que me hago ahora es, ¿qué tan buenas son las traducciones?. Elegí traducir algunas suscripciones de español a inglés, a ver que daba...

Prueba 1
Versión original: ¿Es necesario instalar un antivirus en Android?
Versión traducida: Is it necessary to install an antivirus in Android?
Resultado: Excelente

Prueba 2
Versión original: La semana pasada la empresa SMobile presentó un nuevo antivirus (el primero) para Android.
Versión traducida: Last week the company introduced a new antivirus SMobile (the first) for Android.
Resultado: Malo. SMobile es el nombre de la empresa, no el nombre del antivirus, como quedaría en la traducción al inglés.

Prueba 3
Versión original: Tres ejemplos de cómo las bicis con RFID pueden evitar los robos
Versión traducida: Three examples of how RFID can bike to prevent theft
Resultado: Malo, pero el término "bicis" tal vez no ayude demasiado, que lo haya logrado traducir como "bike" ya es algo.

Prueba 4
Versión original: El plan de Al Gore para ‘el cambio’
Versión traducida: The plan for Al Gore 'change'
Resultado: Regular. Creo que la traducción correcta sería Al Gore's plan for "change"

Conclusión
Ya se que con cuatro casos no pruebo nada, pero me da una idea de como puede llegar a funcionar.

Como conclusión, creo que todavía no está del todo usable. En general, los traductores automáticos funcionan muy bien para traducir palabras sueltas, pero todavía les falta para poder traducir un texto completo.

sábado, 1 de noviembre de 2008

Material del taller de Extensions

Hoy fue el taller de Extensions en la reunión del GUG.

Creo que salió bien, había unas 10 o 12 personas, y casi todos habían llevado su notebook. Si bien algunos lo siguieron, hubo otros que prefirieron concentrarse en ver la demostración. En todo caso, todos se llevaron el documento con el instructivo, para poder hacerlo luego más tranquilos.

Tuve varios comentarios favorables, así que quedé contento con el resultado.

Para quienes no pudieron ir, subí la presentación y el instructivo para hacer el práctico.

Si alguien se quiere tomar la molestia de publicar algo de este documento en el Wiki de la comunidad, hay una página de How To's que se podría completar. La única condición es que pongan un link a este blog :)

A pedido de la gente del GUG voy a ver si subo algún video con el paso a paso, para complementar el instructivo, pero no prometo fechas...

La presentación también se puede ver online:
Taller GX Extensions
View SlideShare presentation or Upload your own. (tags: genexus extensions)

martes, 28 de octubre de 2008

Taller de Extensions en la reunión del GUG de noviembre

El próximo sábado, 1º de noviembre, es la reunión del Grupo de Usuarios GeneXus de Montevideo. En esta oportunidad voy a estar dando un taller sobre el desarrollo de Etensions para GeneXus X.

La idea es mostrar algunas cosas que se pueden hacer con una Extension, y lo que es más importante, mostrar como se hacen y que todos puedan hacerlo en la práctica.

El temario es más o menos el que aparece en la nota en el blog del GUG, puede ser que tenga algún cambio pero va a ser menor. Si alguien tiene algún tema que le interese, me deja un comentario y si tengo tiempo lo agrego...

Los requisitos para poder hacer el taller son:
  • llevar un PC o notebook (recomendado...), porque no hay máquinas disponibles.
  • tener instalado Visual Studio 2005 o superior, se puede usar la versión Express de Visual C# 2008.
  • tener instalado GeneXus X U2, puede ser la versión trial (hay que pedir las licencias que creo que las dan por 60 días)
  • tener insltado el GeneXus X SDK U2
  • tener conocimientos básicos de C#...
Quienes se quieran anotar, ponganse en contacto con la gente del GUG, porque no se como es el tema de los cupos.

lunes, 27 de octubre de 2008

Actualizaciones automáticas

Recién estaba trabajando tranquilamente, cuando me apareció este cartel:


Lo bueno es que me deja elegir si quiero reiniciar ahora...

Tengo configurado para que se descarguen las actualizaciones pero que no se instalen automáticamente. ¿Por qué instaló esta? ¿Por qué necesita reiniciar el equipo de forma tan urgente? ¿Qué fue lo que instaló?

Por suerte también se reiniciaron los servidores...

Lástima que GeneXus no funciona en Linux.

miércoles, 22 de octubre de 2008

miércoles, 15 de octubre de 2008

Crisis financiera…

Con todo lo que se ha hablado en estos últimos días de la crisis financiera y la especulación, me hizo acordar a un cuento de Eduardo Galeano, que leí hace no mucho.

Fundación de las agencias de noticias

  Napoleón fue definitivamente aniquilado por los ingleses en la batalla de Waterloo, al sur de Bruselas.

  El mariscal Arthur Wellesley, duque de Wellington, se adjudicó la victoria, pero el vencedor fue el banquero Nathan Rothschild, que no disparó ni un tiro y estaba muy lejos de allí.

  Rothschild operó al mando de una minúscula tropa de palomas mensajeras. Las palomas, veloces y bien amaestradas, le llevaron la noticia a Londres. Él supo antes que nadie que Napoleón había sido derrotado, pero hizo correr la voz de que la victoria francesa había sido fulminante, y despistó al mercado desprendiéndose de todo lo que fuera británico, bonos, acciones, dinero. Y en un santiamén todos lo imitaron, porque él siempre sabía lo que hacía, y a precio de basura vendieron los valores de la nación que creían vencida. Y entonces Rothschild compró. Compró todo, a cambio de nada.

  Así Inglaterra triunfó en el campo de batalla y fue derrotada en la Bolsa de Valores.

  El banquero Rothschild multiplicó por veinte su fortuna y se convirtió en el hombre más rico del mundo.

  Algunos años después, a mediados del siglo diecinueve, nacieron las primeras agencias internacionales de prensa: Havas, que ahora se llama France Presse, Reuters, Associated Press…

  Todas usaban palomas mensajeras.

del libro Espejos. Una historia casi universal.

viernes, 3 de octubre de 2008

Consumir web service con SSL y autenticación

Después de dos días de luchar con este tema, por fin logré que funcione. Podríamos decir que este es un post de descarga...

Escenario

En una aplicación generada con GeneXus 9.0, generador Java web, tenía que consumir un web service HTTP (no es SOAP), que se invoca a través de HTTPS y que además pide usuario y contraseña... El servicio está en un IIS, en .Net. Casi que trivial.

Problema 1: SSL

Con el primer problema que me encontré, obviamente, fue como acceder a una página web que está encriptada.

El primer intento fue con
&httpClient.Host = &host
&httpClient.Port = 443
&httpClient.Secure = 1
que por supuesto no funciona... El problema es que para usar SSL hay que encriptar los datos, para lo cual se necesita un certificado.

Por suerte encontré este documento en el Wiki que explica bien lo que hay que hacer.

Problema 2: Autenticación

Una vez resuelto el problema con el SSL, al consumir el servicio daba un error 401, not authorized.

La forma de configurar la autenticación en GeneXus es con 
&httpClient.AddAuthentication(&httpClient.Basic, &realm, &user, &pass)
El usuario y la contraseña que le estaba pasando estaban bien, eran lo que usaba al probar el servicio desde el navegador y ahí funcionaba.

Como no tengo acceso al servidor donde está corriendo el web service, y así se complicaba para hacer las pruebas, me configuré (en realidad le pedí a Alexander que lo haga...) el servidor local para que acepte conexiones HTTPS.

Después de un rato de probar con distintas configuraciones en el servidor local encontré el problema: el Realm que se le pasa al método AddAuthentication es importante...

Conseguí el Realm del servidor donde está el servicio, y logré que me devolviera un HTTP status 200, es decir OK.

Problema 3: Se conecta pero no trae datos

Si bien ahora pasaba por el SSL y la autenticación, y devolvía un OK, el resultado de
&httpClient.ToString()
era vacío. En el navegador me mostraba datos, pero al consumir el servicio desde GeneXus venía vacío.

Para ver que estaba haciendo el navegador, me instalé un add-on de Firefox, Live HTTP Headers, que permite ver que es lo que se le manda al servidor y la respuesta. No podía compararlo con lo que le manda GeneXus, porque como la conexión está encriptada, no tenía una forma fácil de hacerlo.

Así que le agregué todos los headers HTTP al procedimiento GeneXus con el método
&httpClient.AddHeader()
y ahí por fin funcionó todo espectacular.

Conclusiones

Así que, después de luchar bastante rato con esto, llegué a una solución que funciona...

El código completo es:
&httpClient.Host = &host
&httpClient.Port = 443
&httpClient.BaseUrl = ''
&httpClient.AddHeader('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
&httpClient.AddHeader('Accept-Language', 'en-us,en;q=0.5')
&httpClient.AddHeader('Accept-Encoding', 'gzip,deflate')
&httpClient.Secure = 1

&httpClient.AddAuthentication(&httpClient.Basic, &realm, &user, &pass)

&httpClient.Execute('GET', &url)
Fundamental para consumir un servicio que esté con SSL y autenticación:
  1. no olvidarse de importar el certificado del servidor, para que pueda encriptar los datos que manda
  2. averiguar cual es el Realm que hay que usar, y el método de autenticación (basic o digest)
  3. si no funciona, agregarle los HTTP headers que sean necesarios

jueves, 25 de septiembre de 2008

Reconocimiento

Ayer en el cierre del encuentro me entregaron un reconocimiento "por su Aporte a la Extensibilidad de GeneXus".

Gracias a Artech por el reconocimiento, y a seguir trabajando para el del año que viene ;)

Encuentro GX, día 3

Charla abierta con el equipo de Desarrollo

Como siempre, esta charla estuvo buena, se comentaron algunas cosas interesantes.

Fundamentos de la Web Semántica

El tema de la web semántica es algo que me interesa bastante, pero lamentablemente no he tenido tiempo de meterme mucho. Creo que se hizo una buena introducción del tema, que no es para nada sencillo.

Rich Internet Applications: El futuro del diseño visual en GeneXus

Presentaron lo que va a ser el nuevo editor de formularios en la versión Cardal, donde a partir de un mismo formulario se van a poder generar distintas presentaciones, como ser web (AJAX), win, Flex, Silverlight, etc.

Lo otro es que según la plataforma en la que se genere, la pantalla cambia, y por lo tanto cambia también la información que se puede mostrar y la forma de hacerlo. Lo que van a hacer para solucionar este problema es tener reglas que indiquen como se debe comportar la interfaz. Por ejemplo, en una grilla le voy a poder decir a las columnas cuales van siempre y cuales son opcionales, en el caso que el dispositivo no pueda mostrar todas las columnas.

La extensibilidad de GeneXus y la estantería sin fin

Fue una charla bastante comercial en el que se presentaron los distintos modelos de negocio posibles, se comentó sobre la GeneXus Gallery de donde se pueden obtener extensions y user controls, que en un futuro van a poner la posibilidad de que la persona que hace una extension o un user control cobre desde ahí por bajarlo.

Panel sobre la Industria del Software

Me gustó el formato de la charla con varios panelistas y un moderador...

GeneXus en el corto y mediano plazo

La charla de Nicolás Jodal fue más parecida a la charla deportiva de los lunes que a la que da habitualmente en el cierre del encuentro. Igual estuvo interesante, siempre vale la pena ver estas charlas. La del lunes no la pude ver, voy a ver si la miro por internet.

Keynote Breogán Gonda

Lo más interesante de la charla (para mi) fue cuando contó del Proyecto Guichón, que es un proyecto de capacitar gente de entre 18 y 22 años del pueblo Guichón durante un año, para que puedan trabajar desarrollando Bantotal (es un proyecto de de Larrobla & Asociados), y que queden trabajando en el pueblo. Esperemos que les vaya bien y que a futuro hayan más emprendimientos de este tipo en Uruguay.

Cierre del encuentro

Vean la próxima nota... ;)

miércoles, 24 de septiembre de 2008

Sobre números grandes y malas traducciones

En el encuentro GX fui a varias charlas que hablan de números "grandes", por ejemplo la población mundial.

El problema con estos números, es que cuando la fuente utilizada es una fuente en inglés, la traducción que se hace es generalmente incorrecta. No solo en el encuentro, en la vida en general también pasa, pero en estos tres días lo he visto bastante.

Cuando en inglés se habla de billions, en realidad estamos hablando de números del orden de 10^9, que en español serían miles de millones. En español, un billón son 10^12, que en inglés se dice trillion.

Claro, reconozco que no es muy feliz que dos palabras tan parecidas como billion en inglés y billón en español tengan significados distintos...

Esto es para inglés americano, pero para aumentar la confusión, en inglés inglés, la palabra billion se refiere a 10^12.

En conclusión, hay que tener cuidado con la traducción de estos términos, porque se presta a confusión.

martes, 23 de septiembre de 2008

Encuentro GX, día 2

Cardal, un paso adelante

Esta charla la vi por internet y medio de reojo...

Me quedé con dos conceptos:

  1. que están trabajando en un editor de Forms que es genérico, y a partir de ese form pueden generar en distintas plataformas, ya sea Web, Win, Flex, Silverlight o lo que venga.
  2. que están tratando de identificar los distintos escenarios en los que se usan procedimientos, para ver si se pueden resolver de manera más declarativa.

En la mira: módulos de conocimiento

Otra que tambien seguí por internet y prestándole más bien poca atención.

Lo que me resultó interesante es que parece que en GeneXus se van a poder definir módulos, y luego para cada objeto se va a poder decir a qué módulo pertenece y si es público o privado. Si lo hacen va a estar bueno, es muy necesario.

En las nubes

En esta charla se presentaron las distintas alternativas en cuando a Cloud Computing, se habló de Google App Engine y de Amazon Web Services.
Además en la versión Cardal se va a poder generar una aplicación y hacer el deploy en una AMI (no me acuerdo que es la sigla, pero básicamente es una máquina virtual hosteada en Amazon EC2), todo con un click.
Está bueno...

GeneXus Server, una alternativa para Desarrollo en grupo

Con GeneXus Server lo que hicieron fue poner una capa de web services encima de la capa de lógica de negocio y sustituyendo lo que es la capa de interfaz de usuario.
Con eso se puede hacer cosas como desarrollar la interfaz de usuario utilizando otras tecnologías, como por ejemplo usando una tecnología RIA (Rich internet application, en este caso creo que Flex).
También implementaron operaciones para Commit y Update de objetos, lo que facilita el trabajo en grupo. Por lo que vi, es bastante parecido a GXTend ...

Modelos semánticos

La charla estuvo muy interesante, la teoría de los modelos semánticos me pareció espectacular. Lo que faltó en la charla es bajar un poco la pelota al piso y ver como llevarlo al nivel de implementación, pero supongo que una presentación de 45 minutos no da para tanto.

La aceleración de la tecnología

Lo que me llamó la atención de esta charla, es que las premisas en las que se basa Grompone son muy parecidas a las que plantea Ray Kurzweil en su libro The Singularity is Near, pero las conclusiones son totalmente opuestas...
Las premisas:
  • la evolución de la tecnología y la evolución biológica se basa en el mismo ciclo, en el que se realizan pequeños cambios que son probados, y si sirven quedan como una mejora
  • la tecnología acelera a un ritmo exponencial
  • para el año 2050 la población de la tierra va a ser de unos 9.000 millones de personas.
La diferencia es que para Grompone, al llegar a esa fecha la tecnología sigue avanzando pero a un ritmo constante. Para Kurzweil, por esa fecha la aceleración va a ser exponencial y con una curva ascendente muy pronunciada, lo que llama "la singularidad".

¿Por qué la diferencia? Porque Grompone no considera un factor que Kurzweil de la una importancia fundamental: que la innovación no se da solo por el aumento de población, sino que la tecnología en si mismo produce innovación.

Por poner un ejemplo, la ley de Moore... Los procesadores no duplican la cantidad de transistores en un chip cada dos años porque haya más gente trabajando en ellos, sino que es porque hay máquinas que están mejorando el diseño de los chips.

En ese contexto, no importa que la población se estanque, porque la misma tecnología es que la va a mantener el ritmo aceleración exponencial.

No queda otra que esperar y ver que pasa...

Lo otro en lo que coinciden, es que la tecnología genera temor, y los dos coinciden en mencionar a la biología y la genética como el próximo campo de innovación donde este temor va a ser más notorio.

Encuentro GX, día 1

Empezó el XVIII Encuentro GeneXus, les dejo un resumen del primer día.

Apertura

En la charla de apertura lo más interesante fue el anuncion de Gonda que está liberado el primer CTP de GeneXus X Evolution 1, que trae algunas funcionalidades como ser generadores Win (con las mismas funcionalidades que en 9.0), GeneXus Server, que espero ver alguna cosa más hoy de tarde, y el Change Defender, que también hay una charla despúes de la de GX Server.

GeneXus X Overview

Fue una charla doble, en la que hicieron un repaso de las características de la nueva versión de GeneXus, estuvo interesante.

Viviendo conectados, los nuevos usuarios, las nuevas oportunidades

En general la charla no me resultó demasiado interesante, creo que iba esperando un perfil algo más técnico...

Lo que si me gustó fue el comentario que se hizo sobre el plan Ceibal y el uso que le dan los niños a las computadoras fuera del horario de clases. Había una foto de un niño subido a la caja de un camión, que era de metal, para amplificar la señal de una red inalámbrica.

Administrando el desarrollo de aplicaciones con GeneXus X

Mostraron todo el tema de versionado de GeneXus X, hicieron el paralelísmo entre modelo, environment, generator, etc entre la versión 9 y la 10, y comentaron algunas funcionalidades que va a tener el GeneXus Server.

Con respecto a la metodología, recomiendan que cada desarrollador tenga su KB local y su base de datos, y que envíe los cambios al servidor mediante el uso de GX Server. Es más o menos la misma metodología que propone GXTend.

Planificación y control de Gestión de proyectos GeneXus: GXTend X, Xfactory 2.0, Certus 2.0

¡Qué charla! Estuvo muy bien, la sala estaba llena, arrancamos en hora, terminamos en hora, funcionó todo lo que tenía que funcionar. Tendría que haber sacado una foto de la sala, pero en el momento no se me ocurrió.

Alejandro mostró un poco lo que es XFactory, Gonzalo contó los cambiós que se están haciendo en la nueva versión de GXTend, y a mi me tocó mostrar la integración entre GXTend y GeneXus X mediante una extension. No dio el tiempo para hablar de Certus, pero hay otra charla el miércoles en la mañana.

Recibí varios comentarios acerca de haber hecho la demo en vivo, parece que no es considerada una práctica recomendable ;) De todas formas me animé y salió todo muy bien.

Quería dejar el video de la demo, pero el sitio del encuentro está caido, en cuanto esté lo publico...

Cena

Para los oradores y la gente que viene del exterior siempre hay una cena el primer día, este año fue en Jacsonville.

Antes de ir no tenía muy claro que es Jacsonville, ahora que fuí tampoco tengo muy claro... Está pegado a Zonamérica, y aparentemente es un lugar para hacer fiestas. Yo tenía la idea que iba a ser un pueblo, pero no se en que quedó.

Dejo una foto de la iglesia que hay al entrar.


Lo que se viene

Para hoy martes hay varias cosas interesantes. Está la charla de Abstracta sobre GXTest. Está la de Cardal (la próxima versión de GX, ¿11.0?) que también tenía ganas de ir, pero no voy a poder. Está la de GX Server, a esa sí pienso ir, y varias más, no creo que pueda ir a todas las que tenía ganas.

miércoles, 17 de septiembre de 2008

Charla en el XVIII Encuentro Internacional GeneXus

La semana que viene es el XVIII Encuentro Internacional GeneXus, y este año voy a estar dando una charla junto con Alejandro García y Gonzalo Martinez de Accendo-IT.

La idea es mostrar los productos en los que está trabajando Accendo. En particular, lo que voy a estar mostrando yo es la extension para GeneXus X que integra GXTend al ambiente de desarrollo.

El título de la charla es "Planificación y Control de Gestión de proyectos GeneXus: GxTend X, Xfactory 2.0 y Certus 2.0" y va a ser el lunes 22 de setiembre a las 16:30, es decir, antes de la keynote de Jodal. Claro, en otra sala, pero una cosa no quita la otra ;). Es en la sala Renoir.

Quedan todos invitados...

jueves, 4 de septiembre de 2008

Acid3: compatibilidad con estándares web

A partir de un comentario en la nota anterior, me entero que hay un teste de compatibilidad que se llama Acid3 (conocía el Acid2…), que comprueba que tanto respetan los estándares web los navegadores.

Links con más información:

Usando este sitio, generé las imágenes para distintos navegadores, para ver como se comporta cada uno…

Imagen de referencia

Referencia

Internet Explorer 7

IE7

Internet Explorer 8

IE8

Firefox 2.0

FF2

Firefox 3.0

FF3

Chrome 0.2

Chrome0.2

Opera 9.6

Opera9.6

Safari 3.1

Safari3.1

miércoles, 3 de septiembre de 2008

Google Chrome


Todo el mundo está hablando de Google Chrome, así que no voy a ser la excepción :)

Lo instalé y lo estoy probando.

La primer impresión es que es rápido, muy rápido.

Comparé los tiempos de arranque de Firefox, Internet Explorer y Chrome, y la diferencia es notable. Abrí y cerré cada uno tres veces, midiendo el tiempo en cada uno. Firefox (con unos cuantos ad-ons instalados) demoró 15 segundos la primera vez y 5 segundos la segunda y la tercera. IE demoró 5 segundos la primera vez y 4 segundos la segunda y la tercera. Chrome abrió las tres veces en menos de un segundo.

No medí los tiempos que demora en abrir un link en otra pestaña, pero también es bastante más rápido que los otros.

En cuanto al uso de memoria, hice tres pruebas:

Prueba 1: solo Google Reader abierto
  • Firefox: 69Mb
  • IE: 57Mb
  • Chrome: 50Mb (repartido en 3 procesos)
Pruebas 2: después de un rato, con varios tabs abiertos
  • Firefox: 101Mb
  • IE: 90Mb
  • Chrome: 103Mb (repartido en 6 procesos)
Prueba 3: después de cerrar todos los tabs menos el de Google Reader
  • Firefox: 90Mb
  • IE: 74Mb
  • Chrome: 52Mb (repartido en 3 procesos)
En cuanto al uso inicial de memoria y el uso "incremental" parecen bastante parejos, lo que Chrome se destaca en la cantidad de memoria que libera al cerrar los tabs.

Lo otro que tiene es que aprovecha mucho más la pantalla. Tengo configurado el monitor con una resolución vertical de 960px, y lo que me queda disponible según el navegador es:
  • Firefox (tiene menú, barra de dirección, tabs, barra de estado): 780px disponibles
  • IE (tiene barra de dirección, tabs + menú, barra de estado): 809px disponibles
  • Chrome (tiene tabs, barra de dirección + menú): 847px disponibles.
Me gustó la pantalla que se muestra cuando se abre un nuevo tab, que muestra los sitios más usados. No es demasiado novedoso, pero está bueno que venga integrado al navegador.

Ahora lo malo... Soy usuario de Firefox de toda la vida (desde Netscape 2.0 en adelante pasando por Mozilla y un breve pasaje por Flock que está basado en Firefox...), así que lo comparo con Firefox.

Una de las grandes ventajas que tiene Firefox son los ad-ons. En Chrome por ahora no vi nada... estaría bueno que funcionaran los mismos que ya tengo en el otro navegador.

Los bookmarks o marcadores, en Chrome parecen ser locales. En Firefox hace tiempo que vengo usando un ad-on para usar los bookmarks de del.icio.us, con lo que comparto los mismos marcadores en todos los PCs.

Hay sitios que no se ven bien, por ejemplo los sitios desarrollados con GeneXus X, aunque acá explican como solucionarlo.

Como conclusión, me llevé una buena primer impresión. No creo que lo vaya a usar el 100% del tiempo todavía, me sigo quedando con Firefox, pero es bueno ver que hay otras alternativas. Habrá que seguir probándolo y viendo como evoluciona en las próximas versiones.

Un comentario adicional: Chrome al igual que Firefox 3.0 y a diferencia de Internet Explorer 7, pasa el Acid2 Browser Test, que determina si el browser respeta los estándares.

jueves, 28 de agosto de 2008

Buscando en GXSearch desde Ubiquity

Publiqué otro comando para Ubiquity, que permite buscar en GXSeach... El código está aquí.



Los pasos para instalarlo son los mismos que explicaba en la nota anterior:

1. Instalar Ubiquity, fundamental...
2. En la dirección del navegador, poner chrome://ubiquity/content/editor.html, eso abre el editor de comandos de Ubiquity.
3. Copiar el código del comando desde aquí y pegarlo en el editor.
4. Presionar Control+Espacio y escribir "gxsearch algo".

Para buscar en GXSearch, ahora hay varios métodos:

Método 1: yendo directamente a la página
  1. abrir una nueva ventana del navegador
  2. buscar GXSearch en los favoritos o ingresar la dirección (http://www.gxtechnical.com/gxsearch)
  3. esperar que cargue la página inicial
  4. ingresar la palabra a buscar y presionar ENTER
  5. esperar que cargue la página con el resultado
Método 2: usando el motor de búsqueda en Firefox
  1. abrir una nueva ventana del navegador
  2. elegir GXSearch en el combo de motores de búsqueda
  3. escribir la palabra a buscar y presionar ENTER
  4. esperar que cargue la página con el resultado
Método 3: usando el comando para Ubiquity
  1. presionar Control+Espacio
  2. escribir "gxs palabra" y presionar ENTER
  3. esperar que cargue la página con el resultado
O más fácil, se pueden combinar los pasos 1 y 2 en uno solo, si se está en una página web, seleccionando el texto a buscar y presionando Control+Espacio y luego ENTER.

Creo que la conclusión es obvia: con Ubiquity es mucho más económico :)

miércoles, 27 de agosto de 2008

Mi primer comando para Ubiquity

Ayer escribía sobre Ubiquity, que agrega la posibilidad de ejecutar comandos usando casi lenguaje natural en Firefox.

Estuve probando un poco más, y encontré un problema con uno de los comandos que trae por defecto. El comando weather, devuelve la temperatura en grados Farenheit...

Así que para tener un comando más útil, me hice mi propia implementación de un comando clima, que hace lo mismo que el weather, pero devuelve la temperatura en grados Celcius.

Para poder usar este comando:
  1. Instalar Ubiquity, fundamental...
  2. En la dirección del navegador, poner chrome://ubiquity/content/editor.html, eso abre el editor de comandos de Ubiquity.
  3. Copiar el código del comando desde aquí y pegarlo en el editor.
  4. Presionar Control+Espacio y escribir "clima Montevideo". Debería aparecer el estado del tiempo con la temperatura en grados Celcius.
Eso es todo.

Crear el comando no fue nada difícil:
  • Saqué el código del comando weather de chrome://ubiquity/content/builtincmds.js
  • Estudié un poco lo que hace, es bastante entendible
  • Copié el código al editor y cambié donde decía "temp_f" por "temp_c"...
  • Después cambié alguna cosa más, alguna traducción del inglés al español, pero nada sustancial.

martes, 26 de agosto de 2008

Ubiquity: nuevo prototipo de Mozilla Labs

Estaba leyendo sobre el nuevo prototipo de Mozilla Labs.

Ubiquity es una extensión de Firefox que agrega una especie de línea de comandos al navegador, que permite hacer cosas muy interesantes.

Realmente me gustó, ya lo tengo instalado. Ahora hay que acostumbrarse a usarlo, porque es un paradigma totalmente diferente a la navegación tradicional.

Les dejo un video con la demo.

jueves, 21 de agosto de 2008

2 años del blog, post número 100

Hace exáctamente dos años, el 21 de Agosto del 2006, escribía la primer nota en este blog. Además coinciden estos dos años con la nota número 100, así que hay dos motivos para festejar ;)

Y ya que estamos, dejo algunos datos relativos al blog… Los datos no están completos, porque no tenía Google Analytics desde el primer día, pero son bastante representativos.

Sitios de referencia

Del total de visitas recibidas, el 62% llegaron desde motores de búsqueda (la gran mayoría desde Google), el 29% llegaron desde otros sitios, y el 9% llegó de forma directa.

En total llegaron al blog a través de 3.766 palabras clave en los buscadores. Las 5 palabras claves que trajeron más visitas fueron:

  1. adinet tv (3,81%): post en el último lugar de la primer página de resultados
  2. mi biblioteca google (0,86%): post en el primer lugar!
  3. fotowoosh (0,75%): el post ya no aparece en la primer página de búsqueda…
  4. genexus rocha (0,71%): hay varios posts, pero ahora no aparece ninguno
  5. adinet.tv (0,64%): tampoco aparce

Los sitios que más visitas trajeron son:

  1. GeneXus Planet (10,78%)
  2. Blogger (1,71%)
  3. Blog de José Lamas (1,35%)
  4. GXTechnical (0,84%)
  5. Desarrollando desde la trinchera (0,78%)

Paises

En total llegaron visitas de 53 paises, incluyendo entre otros Suecia, Andorra y Tanzania. Los paises con más visitas fueron:

  1. Uruguay (31,42%)
  2. España (13,40%)
  3. Argentina (11,72%)
  4. Mexico (11,46%)
  5. Chile (5,75%)

Notas más vistas

Por último, dejo la lista de notas más vistas en estos dos años:

  1. GeneXus Extension: Open Command Prompt (5,14%)
  2. Adinet TV - Televisión uruguaya en Internet (4,63%)
  3. Implementando una progress bar en un web panel GeneXus (4,05%)
  4. Eclipse solar el próximo martes (2,82%)
  5. El origen de la vida (2,65%)

jueves, 14 de agosto de 2008

JIAP 2008: Charla: Introducción a la tecnología RFID



El miércoles pude ir a una charla de la JIAP 2008, sobre la tecnología RFID. Más allá de la charla en sí, me gustó el salón azul de la Intendencia.

La charla la dio Juan Enrique Goñi de IBM. Contó un poco las distintas tecnologías que hay para RFID (identificación por radio-frecuencia), mostró alguna cosa que habían hecho en IBM y después contaron como fue la implementación de la tecnología en Conaprole.

Con respecto a la tecnología, hay tres tipos de etiquetas RFID: pasivas (no tienen energía propia, usan la energía que reciben de la antena para transmitir), activas (tienen energía, transmiten continuamente) o semi-pasivas (tienen energía, transmiten solo cuando están en el rango de una antena). Además para cada una de estas clases hay varios tipos de etiquetas dependiendo de la frecuencia que usen y algún parámetro más.

Las etiquetas pasivas tienen alcance corto, según la PPT hasta 6 metros como máximo, y son muy baratas. Las etiquetas activas tienen mucho más alcance, como hasta de 100 metros, pero son bastante más caras.

Hay distintas formas de usar las etiquetas: poniendo la antena en la puerta para saber lo que entra y lo que sale; poner varias antenas dentro del recinto para que triangulen la posición; poner varias antenas para saber si una etiqueta está dentro del alcance de alguna (sin importar cual); etc. Mostró un video de una aplicación que muestra en tiempo real donde está cada persona y cada montacarga en un depósito, estaba buena.

A lo último contaron un caso de éxito con Conaprole, que están usando RFID en los camiones sisterna con antenas distribuidas por la planta, para saber en que sector está cada camión... Ya lo implementaron en una planta, creo que en Florida, y ahora están con la segunda que es San Ramón. En total lo van a poner en 5 plantas.

lunes, 11 de agosto de 2008

Jornadas informáticas de la administración pública y privada

Esta semana, del miércoles 13 al viernes 15 de agosto es la JIAP 2008, en el Centro de Conferencias de la IMM...

El año pasado me enteré que estaba el día que terminaba, así que ni fui, pero voy a ver si este año me doy una vuelta para ver que tal está el evento.

El evento es organizado por la Asociación de Informáticos de la Administración Pública y Privada (ASIAP), y se realiza desde 1992.

viernes, 8 de agosto de 2008

Sistema de transporte metropolitano

Hace tiempo que se viene hablando del nuevo sistema de transporte en Montevideo. A partir de agosto, se empezó a colocar en los ómnibus las máquinas que emiten boletos, y hoy me tocó el primer ómnibus con este sistema.

Con el nuevo sistema de transporte metropolitano van a venir varios cambios, como por ejemplo carriles exclusivos para ómnibus, boletos que duran 1 o 2 horas y se pueden usar varias veces, nuevos recorridos, etc. Creo que es algo necesario.

Pero por ahora lo que hay son las máquinas emisoras de boletos... Vienen con un GPS que por lo que pude ver funciona muy bien, ya que unos metros antes de llegar a la parada siguiente, muestra el nombre de la misma.

Esto puede llegar a permitir hacer varias cosas interesantes:
  • Una página web donde muestre en que parada está el siguiente ómnibus de un determinado número o una lista de números, y una estimación de cuanto demora. Si además fuera consultable desde el teléfono móvil sería maravilloso.
  • La misma información en las paradas, mostrando los próximos 3 o 5 ómnibus de los que paran ahí. No se muy bien que display se podría usar, porque cualquier cosa que sea aprovechable no va a durar ni dos minutos... pero estaría bueno.
  • Mostrar en el ómnibus cual es la siguiente parada, en algún lugar que sea visible (sugerencia de Federico).
  • Poder ver en un mapa todos los ómnibus de una determinada línea, para ver por donde andan.
  • Una API para que se puedan hacer los "mashups" que se le ocurran al que quiera hacer algo...
Además para pagar los boletos van a haber tarjetas "inteligentes", que por el aspecto de las máquinas van a ser de proximidad. No se como será el tema de elegir el boleto que quiero, a lo mejor eso lo va a seguir haciendo el conductor o el guarda.

martes, 5 de agosto de 2008

Las computadoras del Plan Ceibal

El otro día tuve la oportunidad de probar una de las computadoras del Plan Ceibal, las famosas XO.

Para los que no conocen, el Plan Ceibal es la implementación en Uruguay del proyecto One Laptop Per Child (OLPC).

Las computadoras parecen ser muy completas, con conexión inalámbrica a internet (aunque esto no le pude probar), cámara integrada, y a simple vista parecen ser muy resistentes, ideales como para niños.

Además por el tamaño del teclado se ve que son diseñadas para que las usen los niños, las teclas son bastante más chicas que un teclado normal.

En cuanto a las aplicaciones, creo que están bastante completas con editor de texto, navegador web, una aplicación tipo Paint, calculadora, y otras varias cosas.

Lo único que no me convenció demasiado es la interfaz de usuario. Si bien resulta fácil de usar (por lo menos para mi…), en general creo que les falta color, los menúes y casi toda la interfaz era de color gris. No se si esto se puede cambiar, o capaz que tiene algún objetivo como que gasten menos batería… No lo se.

Hacía tiempo que quería probar una para ver como eran, ahora ya me saqué las ganas.

viernes, 25 de julio de 2008

Una noticia preocupante: AOL vende XDrive en 5 millones


Una noticia preocupante para mi... XDrive es el sitio que uso para hacer respaldos de archivos, mayormente fotos y videos.

Que ahora lo estén vendiendo a 5 millones de dólares, cuando las aplicaciones web se venden en cientos o miles de millones, no es una buena noticia.

Hay más información en TechCrunch.

De los 5Gb que dan gratis tengo algo así como 1.5Gb en uso, y no quisiera tener que subirlos de nuevo a otro lado... pero como viene la mano, parece que no me va a quedar más remedio.

Hay otros sitios que dan espacio de almacenamiento gratis, seguramente me quede con Windows Live SkyDrive. Digo, ¿que probabilidad hay de que Micorsoft se funda en el corto plazo?

jueves, 24 de julio de 2008

Acceso offline a Google Docs

Hace unos meses Google anunció la posibilidad de acceder a Google Docs estando desconectado de la red.

Esta semana tuve la oportunidad de probarlo, y la verdad que me gustó.

En mi caso, en el trabajo estoy siempre conectado, pero en casa tengo un ADSL por tiempo, porque no lo uso tanto como para contratar el plan de tarifa plana.

Es en ese contexto que tiene sentido usar esta funcionalidad. Supongo que para gente que tiene mucho tiempo de viaje de ida y vuelta al trabajo, o que viaja mucho en avión, también le puede resultar útil.

Las planillas (Spreadsheet) se pueden ver estando desconectado, pero no se pueden editar. Además tienen otras limitaciones como que no se pueden ordenar las filas. La funcionalidad queda bastante reducida, pero igual es bueno poder consultar los datos.

Los documentos de texto (Docs) se pueden ver pero también se pueden editar. Cuando se empieza a editar un documento muestra un aviso que los cambios van a estar disponibles en el servidor la próxima vez que se sincronice. Del resto de la funcionalidad, lo que por ejemplo no tiene son las distintas versiones del documento.

En conclusión, aunque la funcionalidad que tiene estando desconectado es bastante más reducida que la que tiene estando online, creo que es usable y que puede servir en casos puntuales.

viernes, 18 de julio de 2008

Sincronización de contactos y calendario

Hace unos días leí en algún lado (que ahora no me acuerdo), que existe un protocolo llamado SyncML para sincronizar información entre distintos dispositivos.

Según Wikipedia:

SyncML (Synchronization Markup Language) is the former name (currently referred to as: Open Mobile Alliance Data Synchronization and Device Management) for a platform-independent information synchronization standard. Existing synchronization solutions have mostly been somewhat vendor-, application- or operating system specific. The purpose of SyncML is to change this by offering an open standard as a replacement. Several major companies such as Motorola, Nokia, Sony Ericsson, LG, IBM and Siemens AG already support SyncML in their products

Resulta que la mayoría de los teléfonos celulares ya vienen con la capacidad de usar SyncML incorporada, algo que no sabía.

Leyendo un poco más, llegué al sitio de myFunambol, que permite de forma gratuita respaldar la información del teléfono celular en el sitio web.

La configuración fue casi trivial, lo único que me dio un poco de miedo es que piden el número de teléfono… pero al final igual me cree una cuenta.

Luego de ingresar la información necesaria (país, número de teléfono, marca y modelo), mandan un mensaje SMS que ya deja configurado todo lo necesario para poder sincronizar con el servicio.

En teoría también se puede sincronizar con Outlook o algún servicio web de e-mail (como por ejemplo GMail), pero ahí sí no me animé porque me pide la contraseña de GMail… Sería más interesante si usara por ejemplo OAuth y no tuviera que darle la contraseña.

miércoles, 2 de julio de 2008

Pienso-pienso: subrutina que recorre la misma tabla que el código principal

Siguiendo con la línea de los pienso-pienso de Enrique, acá planteo uno:

Tengo el siguiente código
for each
where [condiciones]
do 'Promedio'
msg('Id = ' + str(id) + '; valor = ' + str(valor))
endfor

Sub 'Promedio'
&cantidad = 0
&total = 0
for each
where
[condiciones] // mismas condiciones que arriba
if valor <> 0
&cantidad += 1
&total += valor
endif
endfor
if &cantidad <> 0
&promedio = &total / &cantidad
endif
EndSub
Si en la tabla tengo los valores (id, valor) = {(1, 10), (2, 20), (3, 30)}, ¿qué imprimen los msg del programa?

a)
id = 1, valor = 10
id = 2, valor = 20
id = 3, valor = 30

b)
id = 1, valor = 10
id = 2, valor = 10
id = 3, valor = 10

c)
id = 1, valor = 20
id = 2, valor = 20
id = 3, valor = 20

d)
id = 1, valor = 30
id = 2, valor = 30
id = 3, valor = 30

Justificar la respuesta :)

miércoles, 25 de junio de 2008

De frustraciones y trámites en el estado

Nunca tuve demasiados problemas en hacer trámites. Siempre hice mis propios trámites ante la DGI (impositiva), el BPS (seguridad social), el Ministerio de Trabajo, etc.

En realidad siempre no… El año pasado con la reforma tributaria decidí tercerizar todo lo que tiene que ver con la DGI, porque con la confusión que hay y la falta de uniformidad de criterios, se convirtió en una tarea imposible.

Pero lo que me tiene frustado ahora es algo que debería ser mucho más simple: renovar el premiso de conducir…

Se me vence en julio, pero como soy previsor, quise empezar a averiguar un tiempo antes.

Hacer 3 semanas que estoy tratando de llamar a la intendencia para que me digan que tengo que llavar. Nada. Imposible. No es que haya intentado todos los días, pero sí probé varias veces, en distintos horarios. A veces da ocupado, a veces da libre y no atiende nadie.

Intenté por mail. La dirección que está en la página de la intendencia está mal, el mail rebotó.

Hoy fui al centro comunal… Llegué a las 17:15 y el hombre que estaba en la puerta, diciendo que no con la cabeza, me señaló el reloj. El diálogo fue algo así:

- ¿Está cerrado?
- Sí, cierra a las 5.
- Ah, bueno, pasaré mañana.
- No, mañana no, porque hay paro por asamblea.
- ¿Todo el día?
- Sí, todo el día.
- ¿Así que en la intendencia tampoco trabajan?
- No, es por asamblea.
- Bueno, entonces pasaré el viernes.
- No, el viernes no porque hay paro del PIT-CNT

No le pregunté más nada… pero lo digo acá: pasaré el lunes.

Todavía me cuesta creer que esto sea tan complicado. No me considero un inepto en estos temas, pero renovar el permiso de conducir se ha vuelto una misión imposible.

sábado, 14 de junio de 2008

Motores de búsqueda

Search

Cuando hablamos de motores de búsqueda hay un nombre que viene a la mente: Google. Y no es casualidad, ya que tiene algo así como el 62% del mercado y sigue creciendo. Además que los resultados que muestra en los primeros lugares resultan casi siempre relevantes.

De todas formas, hay muchos casos en los que es conveniente usar otro motor de búsqueda que podríamos llamar vertical.

La foto muestra los motores de búsqueda que tengo configurados en FireFox, paso a explicar cada uno…

Google

No necesita explicación, es el que viene con FireFox por defecto, es sin duda el que más uso y por lo tanto es el que está al tope de la lista.

GXSearch

Permite buscar en todos los sitios relacionados con GeneXus, como ser el Wiki de la comunidad, SACs, foros, etc. Muy útil.

Wikipedia (inglés y español)

Muchas veces cuando busco algo en Google la Wikipedia aparece en los primeros resultados, pero hay veces que ya se que la información que quiero está ahí, así que, por qué pasar primero por Google?

Real Academia de la Lengua

Busca en el diccionario de la Real Academia Española, algo así como el diccionario “oficial”.

Mycroft Proyect

Busca motores de búsqueda para agregar a FireFox…

Last.fm

Para buscar música.

MercadoLibre Uruguay

El mejor lugar que encontré para tener idea de precios.

YouTube video search

Busca videos de YouTube.

Technocrati Search

Este último es “expermiental” (para mi), supuestamente busca en blogs, pero por ahora lo he usado poco. Todavía no se si va a quedar.

Conclusión

A pesar que uso Google para buena parte de las búsquedas que hago, no es el único motor de búsqueda que existe, y para búsquedas verticales en general hay mejores alternativas.

¿Alguien usa algún otro buscador que valga la pena?

sábado, 31 de mayo de 2008

Abrir el "Servlet Directory" con Open Command Prompt y Open Windows Explorer

Hice un cambio en las extensiones Open Command Prompt y Open Windows Explorer para poder abrir el Servlet Directory directamente desde el IDE de GeneXus X.

Las instrucciones para bajar e instalar estas extensiones están aquí:
Este cambio funciona solo con el generador Java Web ya que es el único donde tiene sentido.

jueves, 29 de mayo de 2008

Algunos números sobre la telefonía móvil

Estuve leyendo este artículo que me resultó muy interesante: Communities Dominate Brands: When there is a mobile phone for half the planet: Understanding the biggest technology

La nota es de enero de 2008, así que probablemente los números hayan cambiado un poco...

Hay varias cosas que comenta que me impresionaron.

as of November 2007 there were 3.3 billion mobile phone subscriptions around the world. At 6.6 billion people globally, yes, there is a mobile phone subscription for half of the planet

En promedio hay un teléfono celular cada dos personas en el mundo. ¡No es poca cosa!

Comparando con otras tecnologías:

There are about 1.3 billion fixed landline phones. [...]Contrasting with internet use, about 1.3 billion people use the internet worldwide. Or the other major technologies we could consider and compare, there are about 850 million automobiles in use worldwide. There are 1.5 billion TV sets in use, and 1.4 billion people own at least one credit card globally.

También comenta sobre los ciclos de reemplazo de los teléfonos celulares, que en promedio es de 18 meses, mientras que por ejemplo para las PCs es de 3 años y medio.

Where the average replacement cycle for PCs is about three and a half years, the replacement cycle for mobile phones is 18 months and still shrinking

Pero eso es en promedio, hay países donde el ciclo de reemplazo es mucho menor.

But in the most advanced markets like South Korea, Japan and Hong Kong, the market has already adjusted so far that young adults replace phones every 6 months

Luego comenta sobre el uso de internet en los teléfonos celulares. Aparentemente el 72% de los teléfonos que hay en la vuelta tienen capacidad de acceder a internet.

So out of all 1.3 billion internet users, only 37% access exclusively by personal computers (desktops and laptops). [...] Another 33% of internet users access by both PC and mobile. And already 30% of all internet access in 2007 was exclusively from mobile phones.

¡Casi tantos usuarios acceden a internet solo por el móvil como los que lo hacen solo por el PC!

Otro dato que impresiona es que hay 59 países donde la cantidad de teléfonos celulares es mayor que la cantidad de gente.

today 59 countries have passed the 100% per capita subscrition penetration (Informa Nov 2007). Hong Kong, Taiwan, Israel, Italy etc have penetration rates of 130% and above and European aveage penetration is about 110%

Pero lo que más me impresionó es la cantidad de plata que mueve el envío de mensajes de texto...

The total annual revenues earned by SMS text messaging passed 100 billion dollars in 2007 according to TomiAhonen Consulting. Yes, that is as big as total Hollywood box office, total Hollywood DVD sales and rentals, total music industry revenues and total videogaming software revenues in 2007 - combined.

lunes, 26 de mayo de 2008

Phoenix aterriza en Marte

En la noche de ayer (23:53:44 UTC) el Phoenix Mars Lander aterrizó en el polo norte marciano con la misión de buscar agua en la superficie del planeta rojo.

Más información:
También dejo este video que explicaba (antes que aterrizara) como iba a ser el aterrizaje...


lunes, 12 de mayo de 2008

The Singularity is Near

Ayer terminé de leer un libro que me prestó Enrique, que tiene cosas interesantes. Se llama The Singularity is Near, de Ray Kurzweil.

El autor hace varias predicciones basándose en una hipótesis de que la tecnología acelera exponencialmente (doble exponencial, en realidad).

Algunas de las cosas que predice:

  • en las próximas décadas va a haber una revolución que llama GNR: Genética, Nanotecnología y Robótica.
  • la revolución en genética y en nanotecnología va a permitir extender la expectativa de vida, casi hasta la inmortalidad
  • la revolución en nanotecnología va a llevar a que el único valor (de los bienes materiales) sea la información necesaria para construirlos
  • la revolución en robótica (software y hardware) va a permitir el desarrollo de una inteligencia artificial que va a sobrepasar a la inteligencia humana.

Pero no solo hace las predicciones, sino que también les pone fechas:

  • para el 2025 va a existir una supercomputadora con la capacidad de procesamiento de un cerebro humano
  • para el 2035 va a existir el software para emular el cerebro humano, y el hardware con la capacidad para emularlo va a costar menos de 1.000 dólares
  • para 2045 la inteligencia artificial supera la capacidad de procesamiento de toda la humanidad, y sigue creciendo exponencialmente.

Por lo tanto, en el 2045 se produciría la singularidad... Suena a ciencia ficción y hasta cierto punto lo es, pero Kurzweil lo plantea de una forma muy convincente.

Como cosas interesantes que tiene el libro, aparte de las predicciones:

  • Cuando se hace una predicción a futuro no se puede hacer de forma lineal, porque la tecnología avanza a ritmo exponencial (léase la ley de Moore)
  • El tiempo que lleva adoptar una nueva tecnología decrece también de forma exponencial, pone como ejemplo la adopción de internet o de la telefonía móvil
  • Explica lo que considera el ciclo de vida de una tecnología, que graficado sería como una S. Al principio la tecnología es cara, solo unas pocas personas la usan, no funciona bien y el ritmo de adopción es lento. Cuando la tecnología madura se hace más barata (tendiendo a cero), funciona muy bien y pasa a ser común a todo el mundo. Por último, cuando llega a un punto de saturación, el ritmo de crecimiento vuelve a estancarse, el mercado está saturado y la tecnología funciona muy bien. Cuando esto ocurre (o antes de que ocurra) surge otra tecnología que la reemplaza y que también sigue una curva de tipo S. Pensándolo por ejemplo para la telefonía móvil creo que tiene sentido.
  • También plantea que el crecimiento exponencial no es solo para la tecnología, dice que la tecnología no es más que la continuación de la evolución biológica, que ya traía un ritmo exponencial y que para mantenerlo desarrolló la inteligencia con los humanos que a su vez crearon la tecnología. ¡Interesante! Para demostrarlo, gráfica algunos hitos en la historia evolutiva en una escala logarítmica donde se ve claramente la tendencia exponencial. Los hitos que gráfica son por ejemplo: comienzo de la vida, organismos pluricelulares, aparición de los reptiles, aparición de los primates, aparición del homo sapiens, agricultura, revolución industrial, computadoras personales, etc. La gráfica está en la página 17.

Creo que vale la pena. El link del principio apunta a una vista previa del libro donde se puede ver buena parte del mismo... (todo legal, creo).

viernes, 9 de mayo de 2008

Twitter: todavía no lo entiendo

Recién estaba leyendo una nota sobre las cosas que dice la gente en Twitter, y la verdad que sigo sin entender.

Básicamente lo que no me cierra, es por qué alguien querría publicar algo como "voy a tomar un café", o "estoy abriendo GeneXus", o "me voy a dormir, hasta mañana"...

Pero bueno, algo me debo estar perdiendo, porque según dicen en una semana hubieron unos 4 millones de "tweets" y 200.000 usuarios que mandaron mensajes. Si alguien sabe que es, que me avise.

Igual, la nota está interesante: What People Say When They Tweet - ReadWriteWeb

martes, 29 de abril de 2008

Mi primer user control: Star Rating

Hace un tiempo Gonzalo Cuiñas había anunciado en su blog un par de user controls, y tiró algunas ideas para hacer otros.


Yo estaba con ganas de hacer algún user control a ver como era el tema, y me gustó para hacer el Star Rating...


Básicamente lo que se tiene en GX es una variable de tipo Numeric que en ejecución se muestra como un conjunto de estrellas, donde el usuario puede hacer click para seleccionar el valor deseado.


Dejé un video en YouTube que muestra como se usa:




Gonzalo también publico un video que muestra como se ve el control en ejecución. Además creó una página en el Wiki de la comunidad que habla sobre este control.


Con respecto al desarrollo, me costó un poco más de lo que esperaba, por suerte Gonzalo me dio una mano... Lo que me di cuenta que para hacer este tipo de cosas, se precisa saber un poco más de JavaScript.


El control se puede bajar de GXOpen...

miércoles, 23 de abril de 2008

Cambio de dominio

A partir de hoy este blog se puede acceder desde http://blog.marcoscrispino.com. El sitio sigue estando en Blogger, por lo que la dirección anterior se mantiene así como todos las notas.

Hace tiempo que quería tener un dominio propio, y al final me decidí ;)

El dominio lo compré en 1and1.com por U$S6.99 al año... El proceso fue relativamente sencillo, pero más largo de lo que esperaba. En total demoraron 4 días, y me pidieron una foto del pasaporte para asegurarse de que yo soy yo. No se si todos los proveedores de dominios lo piden...

El hosting como ya comenté sigue estando en Blogger por lo que es grátis.

También hay un http://www.marcoscrispino.com que por ahora no es muy interesante. También está hosteado en Google con Page Creator, aunque todavía no se si va a quedar ahí.

Otro cambio que pienso hacer en los próximos días es poner AdSense, a ver como me va. Es algo que todavía no me convence demasiado, porque no quiero "ensuciar" el sitio con propaganda. Veremos que tal, y si paga el costo que implica tener los anuncios en el sitio.

Como comentario al margen, la tarjeta de crédito que use es una Alfa BROU, que funciona como una tarjeta de crédito internacional (VISA en mi caso), pero en realidad es una tarjeta de débito. Según yo lo veo tiene dos grandes ventajas sobre las tarjetas tradicionales: 1) para pedirla no se necesita recibo de sueldo, ni garantías, ni nada; y 2) puedo cargar en la tarjeta solo lo que voy a gastar, por lo que si me la llegan a robar no va a ser tan dramático como con una tarjeta común.

jueves, 17 de abril de 2008

Extensiones actualizadas

Quedaron actualizadas las extensiones:
  • Open Command Prompt
  • Open Windoes Explorer
  • View Related Files
  • Remove Files on Delete
para poder usarlas con la versión Release Candidate de GeneXus Rocha.

Se pueden bajar desde http://marcos.crispino.googlepages.com/genexusextensions

Increible que el humo llegue hasta acá

Dicen que el humo que se ve por la ventana viene de los incendios en Argentina...

Fuente: EO Natural Hazards: Fires Spread Smoke over Buenos Aires

sábado, 12 de abril de 2008

Tip: Mostrar la descripción de los atributos en el análisis de impacto (GeneXus 9.0)

El problema: Al DBA le llegan los análisis de impacto cuando hay que hacer una reorganización, donde aparecen los nombres de los atributos que no son lo suficientemente significativos. Lo que se pide es que además de los nombres de los atributos, aparezcan sus descripciones.

La solución: El HTML que se muestra en el análisis de impacto se obtiene a partir del XML de la navegación, aplicándole una transformación mediante el uso de templates XSL. Los XSL están en el directorio \gxxml debajo de la instalación de GeneXus 9.0. La solución entonces consiste en modificar estos templates para que muestre la información que quiero.

En este caso, solo quería que aparezcan las descripciones en el análisis de impacto, por lo que hubo que modificar solamente el archivo reorg.xsl.

Lo que tuve que cambiar en ese archivo fue la línea que dice:
<td valign="top" nowrap="yes"><xsl:apply-templates select="."></td>
por lo siguiente:
<td valign="top" nowrap="yes"><xsl:apply-templates select=".">
<xsl:if test="Description != ''">
<xsl:text> (</xsl:text>
<xsl:value-of select="Description">
<xsl:text>)</xsl:text>
</xsl:if>
</td>
El resultado:


Agradecimientos: A Fabian Bonilla de soporte de ARTech por la ayuda...

lunes, 7 de abril de 2008

GeneXus en la onda Web 2.0 revisited, o GeneXus en la onda RIA

Hace un tiempo había escrito una nota sobre la posibilidad de tener una versión "web 2.0" del ambiente de desarrollo de GeneXus. La idea era que con la versión Rocha, como estaba separada la capa de interfaz de usuario de la capa lógica, era algo factible.

La semana pasada, un amigo de un amigo me preguntó si se me ocurría alguna idea para hacer el proyecto de grado, así que le sugerí esto como una opción.

Por lo que sé, planteó la idea en ARTech y parece que gustó :)

Así que esperemos que salga el proyecto y podamos contar con esta versión, que probablemente no sea AJAX sino que sería usando alguna tecnología de tipo RIA.

¡Éxito a Martín y compañía con este proyecto!

martes, 18 de marzo de 2008

Bases de conocimiento GeneXus en SQL Server 2005

Llegó un mail de Gustavo Proto al foro de GeneXus Rocha, que dice:
As part of the GeneXus re-engineering process, we stopped Night Builds a few days ago to test a major change to GeneXus Rocha: Knowledge Bases can now be stored in SQL Data Bases. As usual, conversion from GeneXus 9.0 and Rocha B2 Knowledge Bases is automatic when a Knowledge Base is opened.

The Data Access layer in GeneXus Rocha is mainly built on GeneXus technology! Great, isn’t it? We are confident we will all enjoy the benefits of this move.
¡Maravilloso! Habrá que probar esta funcionalidad...

viernes, 14 de marzo de 2008

Vistas 360º en Google Moon

Hoy vi una noticia que Google Sky se puede ejecutar en el navegador.

En realidad lo que me resultó más interesante fue el video donde se muestra Google Moon, con una vista de 360º del sitio de alunizaje del Apollo 11, donde se puede hacer zoom y se ve hasta las huellas de los astronautas...

El video:

jueves, 6 de marzo de 2008

Google Calendar Sync

Google acaba de liberar un producto que permite sincronizar Google Calendar con Outlook. Es un programita que queda corriendo en el PC y cada tanto (2 horas por defecto) sincroniza.

Se puede sincronizar en los dos sentidos, o solo hacia Google Calendar, o solo hacia Outlook.

Era una funcionalidad que les estaba faltando... Ahora puedo tener sincronizados el calendario de Outlook de casa con el Outlook del trabajo y con Google Calendar, por si estoy en otro lado. Además, gracias a GooSync, también tengo sincronizado el calendario con el teléfono celular.

Más información: Official Google Blog: Google Calendar Sync

martes, 4 de marzo de 2008

PowerCommands para Visual Studio 2008

Hace un rato Armin me mandó un mail con un link a PowerCommands for Visual Studio 2008.

¿Cuál es el ejemplo que muestran de los "power commands"? Open command prompt y Open containing folders...

Por supuesto que esos comandos ya están dispobnibles para GeneXus Rocha aquí y aquí.

Gracias Armin por el dato ;)

viernes, 22 de febrero de 2008

Fotos del eclipse

Dejo algunas fotos del eclipse. No van a ganar un premio de fotografía, pero tienen el mérito de lo artesanal :)

22:23, un rato antes de empezar


23:55


0:46


1:04, eclipse total

domingo, 17 de febrero de 2008

Eclipse lunar

El miércoles que viene (20 de febrero de 2008) vamos a tener un eclipse lunar total. Esperemos que no esté nublado...

El ecilpse parcial empieza a las 23:42, y el total a la 1:00 del jueves 21 (hora de Montevideo, es decir UTC-2).

El siguiente eclipse total hay que esperarlo hasta diciembre de 2010.

Más información: http://science.nasa.gov/headlines/y2008/13feb_lunareclipse.htm

viernes, 15 de febrero de 2008

Creando formularios con Google Docs

Hace unos días publicaron una nota en el blog de Google Docs que explica como crear formularios usando Google Spreadsheet.

El proceso es bastante simple, alcanza con definir los títulos de los campos en una planilla, y luego publicarla como un formulario.

El resultado es bastante bueno, se puede ver un ejemplo acá.

Tiene algunas limitantes, como por ejemplo no parece haber una forma de decirle el tipo de datos de un campo, o una forma de validar lo que ingresa el usuario. Pero para formularios bien básicos, es razonable.

Igual por ahora me sigo quedando con Zoho Creator que tiene una funcionalidad bastante más avanzada...

sábado, 9 de febrero de 2008

Sobre la libre competencia y los monopolios

Primero que nada, quiero aclarar que no pretendo en este blog tratar temas de política o economía, pero a veces aparecen noticias como una de esta semana, que dan para pensar.

La noticia a la que me refiero, es la intención de Microsoft de comprar Yahoo! por algo así como 44.000 millones de dolares.

Se podría decir que en Internet hay tres grandes jugadores: Google, Microsoft y Yahoo!. Cualquiera de las tres ha comprado empresas más chicas que "molestaban" o que tenían un producto interesante. Eso hasta parece razonable...

Lo que no termino de entender es: ¿como puede ser que una de estas empresas compre a otra? ¿Qué sigue, Google compra Microsoft o Microsoft compra Google?

No es la primera vez que pasa, por ejemplo pasó en el mundo de los ERPs cuando Peoplesoft compró J.D. Edwards, y después Oracle compró Peoplesoft. Y no solo hay ejemplos en el área de informática, pasa en todos los mercados.

Entonces, planteo la siguiente hipótesis:

La libre competencia, a la larga, conduce al monopolio.

Por algo los mercados más importantes del mundo (léase Estados Unidos y Europa) tienen leyes que regulan la existencia de monopolios e intentan evitarlos. Es porque la libre competencia conduce naturalmente a estos.

El problema es que las empresas grandes pueden comerse fácilmente a las empresas chicas, y aunque parezca mentira como este negocio entre Microsoft y Yahoo!, pueden comerse también a otras empresas grandes.

Bueno, ahora solo me queda esperar a que me llamen para recibir el premio Nobel de economía ;)