Ahora que Google mejoró notoriamente los temas disponibles para blogger, decidí aplicar un estilo "oficial".
Creo que quedó bastante bien y casi con cero esfuerzo... se aceptan comentarios y sugerencias.
El último cambio de diseño había sido en enero de 2009...
Actualización, 13/3/2010 14:52
Enrique comenta que los links visitados no se ven bien por el esquema de colores, lo cual pude comprobar... Como lo importante es que se pueda leer más que el diseño en sí, volví a cambiar a un diseño mas "tradicional".
Este era el nuevo diseño originalmente:
Parece que tampoco gustó el fondo oscuro, así que este es el nuevo, nuevo diseño... más parecido al original.
viernes 12 de marzo de 2010
jueves 11 de marzo de 2010
Seguimiento de mails en GMail
GMail, como cliente de correo, es muy bueno. Es el que uso tanto para el correo personal como para el del trabajo.
Pero tiene (al menos) un problema... Cuando envío un mail, a veces ese mail es para que alguien más haga algo; y en general quiero asegurarme de que se haga.
El problema con GMail es que no puedo marcar el mail de ninguna forma en el momento que lo estoy escribiendo. Y al no poder marcarlo en el momento, después es altamente probable que se termine perdiendo.
La solución que encontré, que no me convence demasiado, es una vez enviado ir a "Sent items" y marcarlo con una etiqueta "Esperando respuesta". Pero me gustaría poder marcarlo antes de apretar el botón "Send".
¿Alguien tiene el mismo problema? ¿Lo resolvieron de alguna forma? ¿Cómo?
Pero tiene (al menos) un problema... Cuando envío un mail, a veces ese mail es para que alguien más haga algo; y en general quiero asegurarme de que se haga.
El problema con GMail es que no puedo marcar el mail de ninguna forma en el momento que lo estoy escribiendo. Y al no poder marcarlo en el momento, después es altamente probable que se termine perdiendo.
La solución que encontré, que no me convence demasiado, es una vez enviado ir a "Sent items" y marcarlo con una etiqueta "Esperando respuesta". Pero me gustaría poder marcarlo antes de apretar el botón "Send".
¿Alguien tiene el mismo problema? ¿Lo resolvieron de alguna forma? ¿Cómo?
lunes 8 de marzo de 2010
Versión movil del blog
MoFuse es un sitio que permite crear una versión móvil de cualquier sitio web.
En particular, puede crear una versión móvil de cualquier blog sin ningún esfuerzo, y además lo hace de forma gratuita. Lo único es que agrega publicidad, pero creo que es un precio que vale la pena pagar.
A partir de este momento, este blog puede ser accedido desde cualquier teléfono móvil con acceso a internet desde http://marcoscrispino.mofuse.mobi
Si acceden a esa dirección desde una computadora, muestra una página web con un emulador...
Así es como se ve en el iPhone:
En particular, puede crear una versión móvil de cualquier blog sin ningún esfuerzo, y además lo hace de forma gratuita. Lo único es que agrega publicidad, pero creo que es un precio que vale la pena pagar.
A partir de este momento, este blog puede ser accedido desde cualquier teléfono móvil con acceso a internet desde http://marcoscrispino.mofuse.mobi
Si acceden a esa dirección desde una computadora, muestra una página web con un emulador...
Así es como se ve en el iPhone:
domingo 7 de marzo de 2010
Infinidad de galaxias
Esta imagen es increible, no deja de sorprenderme:
Fue tomada por el Hubble, apuntando hacia una zona aparentemente "vacía" del espacio, una región que ocupa aproximadamente el ancho de 1/15 del ancho de la luna llena.
A ver si logro compartir mi asombro... Se necesitan 30 millones de imágenes como esta para cubrir todo el cielo, y esta imagen fue tomada en una zona del espacio que se consideraba prácticamente vacía!
Pero para que lo voy a explicar yo, si Phil Plait lo explica mucho mejor...
También me gustó este articulo que habla del tema, sobre todo la referencia de Carl Sagan al final sobre "the Pale Blue dot".
Nota: tener en cuenta que "one billion" es 109.
Fue tomada por el Hubble, apuntando hacia una zona aparentemente "vacía" del espacio, una región que ocupa aproximadamente el ancho de 1/15 del ancho de la luna llena.
A ver si logro compartir mi asombro... Se necesitan 30 millones de imágenes como esta para cubrir todo el cielo, y esta imagen fue tomada en una zona del espacio que se consideraba prácticamente vacía!
Pero para que lo voy a explicar yo, si Phil Plait lo explica mucho mejor...
También me gustó este articulo que habla del tema, sobre todo la referencia de Carl Sagan al final sobre "the Pale Blue dot".
Nota: tener en cuenta que "one billion" es 109.
Etiquetas:
astronomía
miércoles 3 de marzo de 2010
En busca de código repetido
Uno de los problemas que más me quitan el sueño en los últimos tiempos, es el código repetido.
¿Por qué tener código repetido es un problema? La respuesta creo que es conocida por todos. El problema es que eventualmente las distintas versiones que se tienen se terminan desfazando, y empiezan a aparecer errores por tocar solo una. Además después de un cierto tiempo, es muy difícil saber cual de todas las versiones es la correcta, porque en general los cambios no se hacen en todas parejo.
Entonces, ¿cuanto código repetido es aceptable? Esta pregunta indudablemente es más abierta, y pueden haber diferentes criterios. ¿Una línea de código duplicada está bien?
Por ejemplo, si tengo el siguiente código (GeneXus 9.0), ¿está bien?:
Haciendo algunos cambios al programa para eliminar estas repeticiones, llegamos a algo así:
Pienso que cuando se trata de 2 o más líneas de código es más fácil estar de acuerdo que no es bueno tener dicho código repetido.
Ahora, el problema, es como detectar esta situación.
Cuando el código repetido está dentro del mismo objeto, entonces es bastante fácil de detectar. No es trivial cuando se tienen programas grandes (más de 500 líneas por ejemplo), pero es posible.
El mayor problema es cuando el código repetido está en varios objetos. En esos casos no es para nada fácil de detectar.
Pienso que se podría automatizar, aunque no parece ser trivial. Algunas heurísticas que se me ocurre se podrían utilizar:
¿Por qué tener código repetido es un problema? La respuesta creo que es conocida por todos. El problema es que eventualmente las distintas versiones que se tienen se terminan desfazando, y empiezan a aparecer errores por tocar solo una. Además después de un cierto tiempo, es muy difícil saber cual de todas las versiones es la correcta, porque en general los cambios no se hacen en todas parejo.
Entonces, ¿cuanto código repetido es aceptable? Esta pregunta indudablemente es más abierta, y pueden haber diferentes criterios. ¿Una línea de código duplicada está bien?
Por ejemplo, si tengo el siguiente código (GeneXus 9.0), ¿está bien?:
if DocImpres = 'S'Nótese que los dos call al procedure GLog son idénticos... Además, los literales 'OC' y 'CMANUDOCOC' se usan varias veces en el código...
call(WGLLogDe,&msg1, &msg2, 'OC', 'CMANUDOCOC', &GlLogRef, '', &confirmo)
if &confirmo = 'N'
Call(PGLog, &msg1, &msg2, 'OC', 'CMANUDOCOC', &GlLogRef, '', &PedirDet)
endif
else
Call(PGLog, &msg1, &msg2, 'OC', 'CMANUDOCOC', &GlLogRef, '', &PedirDet)
endif
Haciendo algunos cambios al programa para eliminar estas repeticiones, llegamos a algo así:
&logGrabado = 'N'¿Es mejor que el código anterior? Yo creo que sí, pero seguramente para un caso tan simple haya discrepancias...
&GLLogSis = 'OC'
&TpoModId = 'CMANUDOCOC'
if DocImpres = 'S'
&logGrabado = udp(WGLLogDe, &msg1, &msg2, &GLLogSis, &TpoModId, &GlLogRef, '')
endif
if &logGrabado = 'N'
Call(PGLog, &msg1, &msg2, &GLLogSis, &TpoModId, &GlLogRef, '', '')
endif
Pienso que cuando se trata de 2 o más líneas de código es más fácil estar de acuerdo que no es bueno tener dicho código repetido.
Ahora, el problema, es como detectar esta situación.
Cuando el código repetido está dentro del mismo objeto, entonces es bastante fácil de detectar. No es trivial cuando se tienen programas grandes (más de 500 líneas por ejemplo), pero es posible.
El mayor problema es cuando el código repetido está en varios objetos. En esos casos no es para nada fácil de detectar.
Pienso que se podría automatizar, aunque no parece ser trivial. Algunas heurísticas que se me ocurre se podrían utilizar:
- Analizar las navegaciones de los objetos, para ver si hay navegaciones iguales. Esos objetos son candidatos a analizar. No necesariamente quiere decir que se pueda mejorar el código, pero sí vale la pena revisarlo.
- En general cuando se da que hay código repetido, el mismo está en el entorno de la llamada a un objeto, o en torno al uso de un determinado atributo. Por ejemplo, tengo un procedimiento que me devuelve un valor, y luego hago algo con dicho valor, pero en varios lugares lo que hago es exáctamente lo mismo...
Etiquetas:
desarrollo,
genexus,
reflexiones
miércoles 24 de febrero de 2010
Augmented Reality
La "realidad aumentada" (augmented reality en inglés) parece ser el tema del momento.
Básicamente, consiste en mostrar información obtenida de Internet sobre objetos reales: un edificio, un libro, etc.
Hoy vi una notica (en algún lado que ahora no me acuerdo) sobre un nuevo producto llamado Recognizr, que permite ver información asociada a una persona mediante una foto tomada con el teléfono móvil.
Otro producto que parece estar muy bueno es Google Goggles:
Creo que nadie puede dudar que en los próximos tiempos vamos a ver mucha innovación en esta área. Lo único que me precupa es que parece que todas las aplicaciones interesantes funcionan en Android...
Básicamente, consiste en mostrar información obtenida de Internet sobre objetos reales: un edificio, un libro, etc.
Hoy vi una notica (en algún lado que ahora no me acuerdo) sobre un nuevo producto llamado Recognizr, que permite ver información asociada a una persona mediante una foto tomada con el teléfono móvil.
Otro producto que parece estar muy bueno es Google Goggles:
Creo que nadie puede dudar que en los próximos tiempos vamos a ver mucha innovación en esta área. Lo único que me precupa es que parece que todas las aplicaciones interesantes funcionan en Android...
martes 23 de febrero de 2010
Índice de los arrays
Ayer empecé a leer Dreaming in Code
, que en una parte dice:
Cualquiera que haya programado un loop sobre los elementos de un array en C, C++, Java, C#, o cualquier otro lenguaje que tenga sus raíces en C, sabe que los elementos van de 0 a lenght-1. Algo así:
Toda una revelación :)
Maybe you noticed that I've called this Chapter 0. I did not mean to make an eccentric joke but, rather, to tip my hat to one small difference between computer programmers and the rest of us: Programmers count from zero, not from one. [...]Si bien no es del todo cierto, yo soy un programador y cuento desde el uno, es verdad que las computadoras cuentan desde el cero...
Why do programers count from zero? Because computers count from zero! And so programmers train themselves to count that way too, [...]
Cualquiera que haya programado un loop sobre los elementos de un array en C, C++, Java, C#, o cualquier otro lenguaje que tenga sus raíces en C, sabe que los elementos van de 0 a lenght-1. Algo así:
for (int i = 0; i < array.length; i++) { ... }Lo que nunca me había cuestionado, es por qué es así... Y después de pensarlo un poquito, la respuesta es bien simple: en C, los arrays son punteros a una dirección de memoria, que contiene el primer elemento. El índice es el desplazamiento con respecto al puntero. Así, para acceder al primer elemento del array, el desplazamiento a usar es cero, y por eso se accede con a[0]. Todos los lenguajes que vinieron atrás de C, aunque no manejen punteros directamente, mantienen la misma convención.
Toda una revelación :)
Etiquetas:
curiosidades,
desarrollo
Suscribirse a:
Entradas (Atom)





