08 noviembre 2009

No me gusta el código comentado


Esta entrada trata sobre una mala practica de programación que afortunadamente esta quedando en desuso, al menos por los buenos programadores.

Me refiero al famoso código comentado, que no es lo mismo que documentar código, en términos prácticos el código comentado es basura, son líneas que a nadie benefician y que si perjudican mucho al momento de dar mantenimiento a un sistema.

Imaginemos que un escritor esta escribiendo (valida la rebuznancia) un nuevo libro, para llegar a la versión final tiene que pasar por numerables etapas, muchos ensayos, muchos borradores; tiene que pasar por la revisión de mucha gente antes de ser publicado. En este proceso creativo el escritor va a transformar su idea, escribir y reescribir una y otra vez líneas y líneas que se irán quedando en papeles hechos bola en la papelera.

Te gustaría comprar un libro y que traiga 3000 hojas, de las cuales solo la mitad sea contenido?, y que las otras 1500 sean anotaciones, versiones preliminares, apuntes, borradores, calis de ese libro que tanto esperas leer??

En lo personal no me gusta leer escritos que contengan mas basura que contenido, para ejemplo un boton.

El código comentado es así, son vagas ideas de un monstruo llamado código, que espera ser completado. Haciendo a un lado la poesía técnica, el código comentado es la punta del iceberg, si hay código comentado, significa que hay un problema de fondo mas grave.
Para algunos quitar el código comentado es mera estética, para otros(principalmente para quien no hizo el código) es una tarea necesaria antes de cada entrega (release), ya que es difícil trabajar con código basura.

Por lo general el desarrollador deja sus migajas en los programas por varias causas:
• Pereza
• Falta de profesionalismo
• Carencia de procesos de calidad
• Tiempos de entrega apretados
• Desconocimiento
• Y en algunos casos soberbia (El clásico “Yo si entiendo mi código”)

Como programador es tu responsabilidad generar buen código, recuerda que tal vez mañana (Sonó a canción) tus líneas, las va a leer Apu en Bangalore y al verlo dira: यह क्या है?

04 noviembre 2009

Me gusta el código comentado /* Y que */

//SIG=11dsqp54d\/*-//http:\/\/video.search.yahoo.com\/search\/video"},"shopping":{"button":"Shopping //Search","action":"http:

Esta entrada trata sobre una mala practica de programación que afortunadamente esta quedando en desuso, al menos por los buenos programadores.
/* Esto no es codigo, es solo un recordatorio de que hice algo mal y deje evidencia
Tambien es la evidencia de mi trabajo, es como la papelera de un genio que siempre
esta llena antes de que llegue a la conclusión de una gran idea. Solo que yo, acompaño la idea con la papelera.
Ademas debo dejar mis cambios anteriores y como no conozco herramienta para versionar el codigo, prefiero dejarlo comentado, por si se ofrece después
Incluso puedo poner la lista del mandado, mis conversaciones del Messenger, letras de canciones */
//Un limon, medio limon, 2 limon, medio limon,….
//
// Puedo dejar lineas en blanco comentadas, todas las que quiera
//
//
//Al cabo no importa, el compilador no las lee, las ignora cuando hace su trabajo
Me refiero al famoso código comentado, que no es lo mismo que documentar código, en términos prácticos el código comentado es basura, son líneas /*Incluso puede estar en cualquier lugar */que a nadie benefician y que si perjudican mucho al momento de dar mantenimiento a un sistema.

/* static void CopyObject(SampleClass original)
{
if (original == null)
{
throw new System.ArgumentException("Parameter cannot be null", "original");
}
}*/
Imaginemos que un escritor esta escribiendo (valida la rebuznancia) un nuevo libro, para llegar a la versión final tiene que pasar por numerables etapas, muchos ensayos, muchos borradores; tiene que pasar por la revisión de mucha gente antes de ser publicado. En este proceso creativo el escritor va a transformar su idea, escribir y reescribir una y otra vez líneas y líneas que /* Se pueden camoflajear como lineas validas */ se irán quedando en papeles hechos bola en la papelera.
/*{"props":{"crumb":"O2oDA5QWh6WWpHcTlLY3U.","libRoot":"http:\/\/l.yimg.com\////a\/lib\/","proxyUrl":"\/proxy","ultSpaceId":"2023538075","ultBeaconHost":"\/p.gif","re///questUrl":"\/js","comboRoot":"http:\/\/l.yimg.com\/a\/combo?","sdaRequestUrl":"\/sda2//","passthru":"","proxyTimeout":15000,"modChromeHtml":"_{view_name}\">{html} <\/div>\n */

Te gustaría comprar un libro y que traiga 3000 hojas, de las cuales solo la mitad sea contenido?, y que las otras 1500 sean anotaciones, versiones preliminares, apuntes, borradores, calis de ese libro que tanto esperas leer??
/* El concepto de culpa y de castigo, comprendida la doctrina de la gracia, de la redención, del perdón- todas las completas mentiras privadas de toda realidad psicológica- fue inventado para destruir en el hombre el sentido de las causas; fue un atentado contra la noción de la causa y efecto! */
El código comentado es así, son vagas ideas de un monstruo llamado código, que espera ser completado. Haciendo a un lado la poesía técnica, el código comentado es la punta del iceberg, si hay codigo comentado, significa que hay un problema de fondo mas grave.
Para algunos quitar el código comentado es mera estética, para otros (principalmente para quien no hizo el código) es una tarea necesaria antes de cada entrega (release), ya que es difícil trabajar con código basura.
Por lo general el desarrollador deja sus migajas en los programas por varias causas:
  • Pereza
  • Falta de profesionalismo
  • //Porque no afecta la funcionalida!!, de todos modos compila
  • Carencia de procesos de calidad
  • Tiempos de entrega apretados
  • Desconocimiento
  • Y en algunos casos soberbia (El clásico “Yo si entiendo mi código”)
  • //Porque si
Como programador es tu responsabilidad generar buen código, recuerda que tal vez mañana (Sonó a canción) tus líneas, las va a leer Apu en Bangalore y al verlo dira: यह क्या है?

24 octubre 2009

No te lo tomes Im-Personal (impersonate=true) Parte 1/2

Cuantas veces hemos escuchado que nos digan, ser dicha o decir la siguiente frase “No te lo tomes personal”
Por lo general esta gastada frase se aplica en el entorno laboral, familiar, fraternal, de pareja, es decir, en todos lados.
En una sociedad impersonalizada como la actual, es común ver mensajes, dedicatorias e invitaciones aparentemente “personalizadas”, nada mas falso que eso, para muestra basta un spam. Quien no ha recibido un mensaje como este:


O una tarjeta de felicitación electrónica por tu cumpleaños, de esas que llegan automáticamente por el simple hecho de que agregaron tu dirección electrónica a un servicio como Sonico. Son bienvenidas, pero no tanto cuando dicen: “Feliz Cumpleaños/Santo/Graduación/Boda Amigo(a) Fulano_De_Tal:”
La impersonalizacion es lo de hoy, los medios masivos, la aldea global (termino acuñado por Marshall McLuhan), nos orillan a ver cada vez mas normal este fenomeno social.
Creo que estamos en un tiempo de la historia que se podría definir como impersonate=true
Esta idea surgió porque hace tiempo vi una línea de código similar en un sistema al cual le doy mantenimiento. Pasando al tema técnico veamos cuando y para que se usa la impersonalización

18 octubre 2009

Al ritmo de Benny Benassi

Every single day, repitiéndolo una y otra vez Dhany, una muy buena rola, que tal vez no fue inspirada para inspirar sino para bailar, pero en este día de mis 30 años, me llego una breve corriente de inspiración.


Como buen dependiente de la tecnología, escucho la canción directamente de youtube, desafortunadamente mi laptop no tiene 2 monitores (como en el trabajo), de tener un monitor extra estaría con un ojo al gato (este escrito) y otro al garabato (viendo el video), y tal vez pecando de “multitasking”, leyendo la letra de la canción para tratar de cantarla. Pero como no es el caso, alternare con ALT+TAB para medio ver el video, medio escribir y medio cantar. Otra opción seria ordenar mis ventanas en horizontal o verticalmente, pero en lo personal creo que se pierde amplitud, en una ventana medio abierta nunca se ve bien, es como cuando la vecina se asoma por la cortina.

Y hablando del multitasking, sin meternos en cuestiones de doble core o aplicaciones multithread y pese a ser hombre (las mujeres tiene un cuerpo calloso mas grande), veo que el multiproceso es algo inherente al ser humano, esto debido a la forma en que se procesa la información en el cerebro. Sabemos que no hace un procesamiento rápido, pero si lo hace en paralelo, ahí radica la maravilla, millones y millones de neuronas comunicándose a cada instante, algo parecido a las nueva maravilla de procesamiento llamada Roadrunner de IBM, con la pequeña diferencia de que el cerebro piensa, tiene conciencia y millones de años de evolución de ventaja.

Y agrego una tarea mas a mi lista, ahora bailo en mi asiento al ritmo del Trance…

22 diciembre 2008

El futuro de C# (1/2)

Feliz decimo aniversario
Hace 10 años, mientras el lenguaje Java crecia sano y se posicionaba como un excelente lenguaje de programacion, Microsoft decidio no seguir perdiendo terreno y se  "inspiro", por decirlo de alguna forma, en java para sacar a la luz un nuevo lenguaje de programacion: C#.
En esta decada C# ha nacido, crecido y esta entrando en una etapa de madurez, su hermano mayor (java) le lleva buen camino recorrido y le va dejando sus experincias en el camino, las cuales habilmente Microsoft les ha puesto envoltura y las ha vendido como ideas originales.
Con lo anterior se establecen 2 bandos de desarrollo bien definidos: .Net con su estrella C# y Java, ambas ramificaciones provienen del mismo tronco, tiene un mismo origen, es escencia son hermanas y como en todo, hay veces que una de las hermanas es mas guapa, pero la otra es mas inteligente. En este caso la Orientacion a Objetos fluye por las 2 ramas.

De Pascal a C#
Nos han platicado que Blaise Pascal es uno de los padres que donaron su ADN para dar vida a la computacion actual. Y efectivamente, fue tal su influencia que hace algunos años (casi 50) se creo un lenguaje de programacion con su nombre, el Pascal, cobro mucha fuerza en las escuelas como herramienta para aprender programacion, y creanlo o no, al menos en Cd. Juarez, algunos maestros los siguen enseñando.

En la decada de los 80's en joven programador Anders Hejlsberg creo un compilador para Pascal, lo cual fue su carta de recomendacion para ingresar a Borland donde creo Turbo Pascal convirtiendose en el desarrollador insignia de Broland.

Dicho talendo llego a los oidos de Microsoft quien despues de hacer muchas ofertas le llego al precio a Anders, en 1996 se integro a las filas de Microsoft teniendo como primera asignacion la creacion del lenguaje J++. Actualmente es el arquitecto principal del lenguaje C#.

Queria platicar del futuro de C# y termine hablando de su pasado y origienes, pero como es regla y sin afan de sonar como el brujo mayor  "para entender el presente y predecir el futuro, es necesario conocer el pasado"

11 noviembre 2008

Google Chrome (2/2)




Goliat vs Goliat

Segun las guerra de los navegadores (browser wars) hasta antes de la liberacion de Chrome el pastel se repatia asi: 50.5% Microsoft 5.7% Apple 43.7% Mozila. Despues de Chrome segun W3Schools las cosas no cambiaron mucho 48.6% Microsoft 4.7% Apple 42.6% Mozila y Chrome se gano su 3.1%.
Se espera que Google compita con todo para quitarle una buena rebanada principalmente a Microsoft. Esta se antoja que sea una pelea de Goliat contra Goliat, ambos son gigantes y en veces algo torpes.
Algo que me llama la atencion es que despues de 2 meses de su lanzamiento, Google se ha mantenido muy discreto en cuanto a Chrome, sera que esta tramando algo??


Mas vales Beta... que malos comentarios
El 2 de Septiembre se lanzo en 43 idiomas la version Beta para Windows, las versiones para Linux y MacOS aun esta en desarrollo. Al parecer la politica de liberacion de software de Google implica que todo producto vaya acompañado por la palabra Beta. El grupo de CM (Configuration Management) de Google sabe muy bien que hacer un release de una version Beta tiene sus ventajas:
  • Si algo falla, no problema... es beta
  • Mantiene la espectativa constante en el usuario ("Si esta es la version Beta, imaginate lo que va a venir en la version buena")
  • Tener un ejercito de testers (usuarios) de a free reportandote animosamente los defectos encontrados.
  • Deslindarse de cualquier responsabilidad en caso de alguna falla, las versiones Beta se usan baja tu propio riesgo

Tambien hay que comentar que ha pasado los test Acid1 y Acid2 con buena calificación (un 79/100) comparada con otros navegadores, nada mal para el nuevo alumno de la clase. Todavía le falta pasar la prueba Acid3

Les dejo el video promocional, los mismo de la historieta, pero con los personajes reales

05 septiembre 2008

Google Chrome (1/2)

Saco el cromo Google



Hace algunos dias me entere de la liberacion del nuevo browser, ese que esta causando furor, como todo lo que saca google, viene acompañado con una buena estrategia publicitaria y respaldado por un equipo de talentosos desarrolladores. Lo primero que lei de Chrome fue la historieta publicitaria, aunque esta un tanto larga (40 hojas), te va explicando con monitos lo que pretendieron hacer, como lo hicieron, que innovaciones trae, se hechan muchas porras y te hacen creer que despues de Google Chrome no va a existir otro navegador.
Pero, como decia alguien "Tan malo es cree todo, como no creer nada"

Con que me quedo
Una vez instalado el susodicho programa, me puse en mi rol de tester, entre a leer noticias en la pagina de todos los dias y oh! desilusion, estaba mas lento que cuando tenia conexion por modem de 33.6 Kbps (alla en los 90´s). Sin mensionar que el estilo o skin de la pagina no se veia muy bien.


Pero bueno, pense, vamos a darle chance de que vaya "calentando", es su primer dia, veamos con otra pagina al azar, digamos ... youtube , ahora si cargo mas rapido, mejorando por mucho la velocidad del IE, solo unas pausas al cargar los videos pero en general muy bien.
En cuanto a la apariencia, se ve sencillo el diseño(minimalista, la palabra de moda), si eres de los que tienes muchos iconos o estas acostumbrado a exploradores con muchas toolbars, te va a parece que esta medio sola la pantalla, incluso vas a extrañar la casita para ir a tu pagina de inicio (por default no la trae).


De fondo Chrome propone varios cambios que van a ayudar a que los browsers sean aplicaciones mas robustas y estables, algunos de estos cambios:
  • Aislamiento de procesos (Sandboxing) Cada tab trabaja en su caja de arena para que lo que pase en un tab no afecte a los demas.
  • Javascript V8, no se trata del jugo de verduras, ni tampoco que tenga 8 pistones la maquina virtual para Javascript, lo que si, es que es muy rapida, incluso presumen que el doble de rapido que las de Mozilla y Safari.
  • TaskManager, te sirve para ver cual de tus sitios web esta consumiendo mas memoria, procesador, network, puedes tronar incluso plugins que esten alentando tu sistema.
  • Multihilo, asi como la bufanda que teje la abuela, el Chrome cuenta con varios hilos de ejecucion, que dicho de paso es una de las broncas de la mayoria de los browsers, todo se maneja en un hilo y si este se rompe adios todo lo que estas viendo, bajando, procesando, etc. Esto un buen paso ya que le agrega seguridad y estabilidad a la navegacion.

Continua...