Comentarios de código: algunos de los más divertidos

Comentarios divertidos de código fuente (Foto tomada de http://pokato.net)
Hace algún tiempo comenzó en Stack Overflow (sitio de preguntas y respuestas técnicas) unapregunta anónima que decía así:

¿Cuál es el mejor comentario de código que hayais encontrado?


Con esta pregunta tan simple hubo tal cantidad de respuestas que uno de los administradores del sitio, Jeff Atwood, tuvo que bloquear el hilo y poner una nota en la cabecera del hilo que decía:

Esta pregunta existe porque tiene importancia histórica, pero no se considera una pregunta relevante en este sitio web, así que por favor no la useis como prueba o evidencia para volver a hacer preguntas similares aquí

El resultado de dichas respuestas fue una avalancha de comentarios de código, muchos de ellos verdaderas obras de arte, bromas y situaciones en las que muchos nos hemos sentido identificados por nuestras experiencias personales. Aquí os dejo una selección de algunos de los mejores que hemos encontrado aunque os confieso que no los he podido leer todos. Si encontrais alguno que os guste sed libres de dejarlos en los comentarios.

/*  OK; before you read the following code know what I am trying to do.  I needed to get the list of child catagories from the root node so that  the root node didn’t appear in the selection box. But for some stupid  fucking reason the stupid fucking DBA wont let me access the items using  indices and I instead have to use their stupid fucking Iterator  implementation. So there. */
$firstList = $this->getRootNode()->getChildren();
foreach ($firstList as $node)
{ $nodes = $node->getChildren(); break; // wtf?
}

Traducción: “OK; antes de que leas el siguiente código fuente debes saber qué estoy intentando hacer. Necesitaba obtener la lista de categorías hijas del nodo raiz de forma que el nodo raiz no apareciese en la lista de selección. Pero por alguna estúpida jod*** razón el jod*** DBA no me dejó acceder a los elementos usando los índices así que tuve que usar su estúpida implementación de Iterator. Aquí queda.”

// if i ever see this again i’m going to start bringing guns to work

Traducción: “Si vuelvo a ver esto de nuevo voy a empezar a traer pistolas al trabajo”

//hack for ie browser (assuming that ie is a browser)

Traducción: “Truco para el navegador IE (asumiendo que IE es un navegador)”

/**
For the brave souls who get this far: You are the chosen ones,
the valiant knights of programming who toil away, without rest,
fixing our most awful code. To you, true saviors, kings of men,
I say this: never gonna give you up, never gonna let you down,
never gonna run around and desert you. Never gonna make you cry,
never gonna say goodbye. Never gonna tell a lie and hurt you. */

Traducción: (Realmente este es complicado de traducir sin que pierda la gracia) “Para las almas valientes que han llegado hasta aquí: Vosotros sois los elegidos, los caballeros valerosos de la programación que trabajais duro, sin descanso, corrigiendo nuestro peor código. A vosotros, verdaderos salvadores, reyes de hombres, os digo esto: (letra de Never Gonna Give You Up, de Rick Astley“, lo que viene a ser un Rickroll en toda regla)

// 
// Dear maintainer:
//
// Once you are done trying to ‘optimize’ this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 16
//

Traducción: “Querido mantenedor: Cuando hayas terminado de intentar “optimizar” esta rutina y te hayas dado cuenta de que hacerlo era un gran error, por favor, incrementa el siguiente contador como aviso al siguiente mantenedor que le toque: total_horas_desperdiciadas = 16”

// no comments for you
// it was hard to write
// so it should be hard to read

Traducción: “No hay comentarios de código para ti. Fue duro programarlo. Debe ser duro entenderlo.”

// I will give you two of my seventy-two virgins if you can fix this.

Traducción: “Te daré dos de mis setenta y dos vírgenes si consigues arreglar esto.”

// I am not responsible of this code.
// They made me write it, against my will.

Traducción: “No soy responsable de este código. Me hicieron escribirlo en contra de mi voluntad.”

//Dear future me. Please forgive me.
//I can’t even begin to express how sorry I am.

Traducción: “Querido yo en el futuro. Por favor, perdóname. No puedo siquiera empezar a expresar cuando lo siento.”

// I dedicate all this code, all my work, to my wife, Darlene, who will
// have to support me and our three children and the dog once it gets
// released into the public

Traducción: “Dedico todo este código, todo mi trabajo, a mi esposa, Darlene, quien tendrá que mantenerme a mi y a nuestros tres hijos y al perro una vez esto se libere al público.”
Fuente y más comentarios | StackOverflow y GenBetaDev

Bloatware – Cuando las nuevas versiones de nuestras apps ya no son mejores



En toda aplicación informática hay un momento en que una determinada versión alcanza el culmen. La aplicación ya hace lo que tiene que hacer, justo lo que tiene que hacer y nada más, y además, lo hace bien.

Es este momento debería pararse el desarrollo de la aplicación, congelarla y sólo tocarla para corregir bugs. Sin embargo, la tendencia del mercado es que los desarrolladores empiezan a hacer crecer la aplicación con funciones que no van a ningún lado, que enlentecen el arranque de la aplicación, que provocan que haya que hacer más clicks para llegar al mismo sitio, y que para la mayoría de los resultados no va a suponer ninguna mejora sustanciosa en cuanto a prestaciones(hablando en plata: con gilipolleces). Ese frenesí de algunos desarrolladores por hacer más completa su aplicación hace que su destello genial traducido a software se convierta en software-patata. Lo perfecto es enemigo de lo bueno, recordad.



Este fenómeno se llama bloatware o software inflado. Todos conocemos ejemplos, quizá los dos más famosos sean el de emacs (que parece más un sistema operativo que un editor, por la cantidad de cosas que se le pueden poner) o Netscape, que en su antigua etapa empezó a meter cosas que le hacían inestable (el paso de la 3.01 Gold a 4.0 Communicator).

Estas son las mejores versiones de algunos programas que he usado. Por supuesto, es cuestionable y subjetiva.



UltraEdit – versión 9

Las nuevas versiones tienen muchas toolbars y monerías, pero casi todo ello intrascendente y totalmente olvidable. Ultraedit brilla porque tiene soporte hexadecimal, modo columna, resaltado, coloreado y corrección de sintaxis, y expresiones regulares. Todo lo demás es prescindible.


Where is it – versión 3.57 y 3.96

Las nuevas versiones de este software catalogador de discos tienen un look & fell a lo Windows 7 … para quien le guste Windows 7. Mayor lentitud, mismas prestaciones. Iconos más gordos y todo desordenado.


The Bat – version 3

La nueva versión 4 no aporta practicamente nada, salvo que tarda mucho más en cargar, se congela sin motivo aparente, y hace lo mismo que la 3 pero mal.


Windows – XP

Las versiones posteriores añaden mucho colorido, mucho aero y mucha tontería, pero lo cierto es que el mismo software que se ejecutaba en XP se puede usar en 7 y viceversa. El soporte para hardware nuevo, 64 bits y todo eso se podía haber añadido al XP sin mayores problemas. No veo que aporte gran cosa ni al usuario ni al administrador, ya que a nivel de red y empresa sigue siendo lo mismo para dominios, active directorys y demás. Y todo ello con un equipo que al menos tenga 2 gigas de RAM y ligerito. ¿Cuándo se ha visto que el sistema operativo sea la principal justificación para cambiar de ordenador? El sistema operativo está ahí para dar apoyo al usuario y a las aplicaciones, no debe ser un fin en sí mismo.


Office – 2003

No puedo con el Office XP. Volvemos a lo dicho anteriormente: mismas funciones, mayores requisitos y mayor lentitud. Por no hablar de la usabilidad de la familia Office que es bastante mejorable. Y los nuevos formatos de Microsoft incompatible con casi todo (una de las mejores bazas de Office XP y 2003 es que era compatible hacia atrás con Office 2000).

Flv-viewer

La 1.03 hace justo lo que debe hacer. Las siguientes no me han gustado demasiado.


ACDSee 5

Esta versión permite ver fotos y explorar directorios. Desde la vista de exploración se pueden rotar fotos y realizar algunas tareas rutinarias. Rápida y estable. La versión 5 ya tiene soporte para video, que en mi opinión es un error. Yo quiero tratar fotos, no vídeos. El nuevo ACDSee es un monstruo


Nero – v8

Ultima versión en la que vino ImageDrive, una de las pocas cosas útiles que traía en esa super colección de software inutil que nos da Ahead. Nero es un programa que sólo debe quemar cds, y eso lo hacía muy bien. Luego le pusieron el Nero Express, un supuesto wizard para gente lerdita que no era capaz de usar el Nero normal, el cual es más simple que el asa de un cubo (un explorador de ficheros, y arrastrar y soltar). Ni más ni menos. Luego metieron el chisme para diseñar carátulas, el grabador de video, el convertidor de formatos de audio, el visor de peliculas y creo que actualmente están haciendo el juego «Nero in Wonderland» para incluirlo en la nueva versión.

Aplicaciones que actualmente integra:


* Nero Home
* Nero Scout
* Nero StartSmart
* Nero Burning ROM 7
* Nero Express 7
* Nero WaveEditor 3
* Nero SoundTrax 2
* Nero Vision 4
* Nero Recode 2
* Nero ShowTime 2
* Nero MediaHome
* Nero PhotoSnap
* Nero Cover Designer
* Nero Toolkit
* Nero BackItUp 2
* InCD 5
* Nero SoundBox
Casi ná.


Software que no se ha dejado llevar por el fenómeno bloatware y permanece tal y como era:

CD-Ex
Filezilla
RealVNC
PdfCreator




¿Y vosotros, qué más software bloatware conocéis? ¿Cuáles son vuestras versiones favoritas y las versiones que más detestáis?


Configuración Symbian N97 Mini

Recientemente cayó en mis manos este terminal. Me llamó la atención su teclado, que hace bastante cómodo escribir emails. Sin embargo, me decepcionó mucho la forma que tiene Nokia de descuidar el software de sus teléfonos. Yo nunca había tenido Symbian, y aunque inicialmente había oído hablar muy bien de él como SO, está claro que eso fueron tiempos mejores y que ahora mismo Symbian, además de ser un elefante muy pesado para los dispositivos de telefonía, no pasa por las suficientes pruebas de calidad ni de testeo, por lo que cuando un usuario recibe un móvil con Symbian, generalmente recibe una patata inservible, hasta que se le hacen algunos ajustes. Vamos a ver la forma en que podemos dejar nuestro teléfono útil.



La primera y gran jugarreta es que el móvil, si lo compramos con Yoigo o Vodafone, viene con una versión descafeinada de Symbian, y aún más hecha polvo si cabe. La tontuna más grande es haber desactivado la conexión por GSM como manera única, obligando a coger GSM/3G (modo dual) o directamente 3G. Yoigo va por 3G exclusivamente, pero tiene pocas antenas, y Movistar (de quien coge la antena cuando no tiene otra más a mano) va por GSM o 3G dependiendo de la antena, y generalmente tiene muchísimas antenas GSM por todo Madrid, lo que posibilita tener 100% de cobertura si uno obliga al teléfono a caminar por antenas GSM exclusivamente. Para ello no queda más remedio que desyoiganizar el teléfono (es decir, que deje de ser hoygan) para convertirlo en un terminal Symbian normal. Para ello hay que cambiarle el product-code. Esto no quiere decir que el teléfono pase a ser libre, no al menos de operador. Sin embargo, un poco más libre si será porque podremos meterle cualquier versión nueva de Symbian que aparezca, sin esperar a que nuestro operador nos ofrezca una. Estas versiones de Symbian de Nokia tienen más opciones que las que trae el teléfono.


En mi caso lo conseguí usando JAF. Me costó bastante cambiarlo porque JAF exige que esté instalado PC Suite 7 de Nokia (no vale ovi suite ni versiones posteriores) por lo que es casi obligado usa otra máquina que no tenga ningún software de nokia previamente, ya que aunque lo desinstalemos siempre deja cosas inútiles como el driver de cable usb y otras zarandajas que impiden usar JAF. Cuesta un poco, alguna tarde que otra, pero al final si uno insiste, lo consigue cambiar.

Luego uno se baja una versión Symbian bien original de Nokia o bien «cocinada» y configurada. Lo que uno quiera. Y la instala tal cual. Si uno se decanta por la primera opción, casi al final de la instalación dará un error, pero es igual, porque Symbian se queda instalado. Parece ser que dicho error le da a todo el mundo por lo que lo atribuyo a un problema de Symbian con el N97.

Un tema porculero a más no poder es la instalación de aplicaciones tipo Whatsapp. El móvil está todo el rato dando la vara con errores tipo «Certificado no seguro». Da lo mismo si aceptas una vez que si aceptas todas. El error persiste. Es más, si pulsas en «aceptar permanentemente», entonces en muchos casos te echa de la página que ibas a visitar (caso de los bancos). En este último caso, la solución es pulsar en «Aceptar una vez». Otra cosa que puedes probar a hacer es borrar todos los certificados del teléfono e instalarlos según vayas entrando en las diferentes páginas. Hay un caso particular, que es el de Gmail, que veremos a continuación.

Si uno inicia el asistente de configuración de cuenta de correo, si uno hace caso al wizard pondrá su email y la contraseña y el asistente hará todo sin dar opción a cambiar nada. Primer error, pues Gmail puede funcionar con pop y con imap, y puede que nos interese la primera opción. El segundo error es que el asistente coloca como puerto de smtp 465 cuando debe ser 587. El tercero, es que los servidores de Google son en realidad xxxx.googlemail.com en lugar de xxxx.gmail.com, ya que el certificado digital así lo indica. Para evitar el asistente tocanarices primo de Clippo, uno debe hacer lo siguiente:

Invoca el asistente, pero poniendo una dirección ACME, tipo a@b.com. Con eso conseguimos que el asistente no reconozca la dirección como de Gmail y nos deje colocar todas las opciones como queramos, ya que en caso contrario, nos coloca como servidor de correo entrante IMAP y ya no dejará cambiar a POP después (otra metedura de paga de Symbian, y van 4). Luego ponemos lo siguiente:



* Nombre de usuario: micuenta@gmail.com
* Contraseña: colocar la contraseña que usamos para esa cuenta
* Servidor de correo entrante: pop.gmail.com
* Punto de acceso en uso, elegir Definido por usuario:
* Seguridad de puerto: SSL/TSL
* Puerto: 995
* Acceso seguro APOP: desactivado

3) Luego vamos a EMAIL SALIENTE y configuramos lo siguiente:

* Mi dirección de e-mail: micuenta@gmail.com
* Nombre de usuario: micuenta@gmail.com
* Contraseña: colocar la contraseña que usamos para esa cuenta
* Servidor de correo saliente: smtp.gmail.com
* Punto de acceso en uso\ Definido por usuario:
* Seguridad de puerto: StartTLS
* Puerto: 587


Tengo pendiente arreglar lo del Whatsapp y los errores de certificado. Tan pronto vea como va lo pongo aquí.

Y del resto de cosas, comentar que si vamos a portar las fotos en el teléfono, conviene que tengamos los campos EXIF bien puestos o será una auténtica locura intentar navegar por los albumes de fotos, ya que el orden en que muestra las carpetas parece no obedecer a ningún criterio.

Los iconos de la pantalla principal no se pueden cambiar, ni se puede tener más de una pantalla de iconos como ocurre en iPhone. Nadie sabe el motivo, pero es otro bache de Symbian, pues esto no es útil. Para navegar, el navegador que trae el teléfono directamente es malo, por lo que recomiendo instalar Opera Mobile. De las aplicaciones de la Ovi Store que sirven para algo … he de decir que no son muchas. Lo único que he instalado ha sido el speech de voz en castellano (que para colmo no está disponible para N97, teniendo que engañar a Ovi Suite diciéndole que tenemos cualquier otro terminal), que funciona perfectamente en los mapas de GPS y para leer los correos. Nadie sabe por qué por defecto sólo viene en inglés. Otro éxito más del marketing de Nokia. La voz que tenéis que buscar es la de Lara. Por defecto viene la de Victor.

De momento lo dejo aquí, y más adelante continuaré con más cosas sobre Symbian.


Más artículos de este blog sobre Nokia N97 Mini:


Chrome – Error – No se pueden leer tus preferencias

A pesar de que Google Chrome ya lleva bastante tiempo de andadura, de vez en cuando da algún error sin cómo ni por qué. En mi caso, después de instalar algunas extensiones (como 3 o 4 días) de pronto empezó a dar un error cada verz que lo abría, tal que:

 

"No se pueden leer tus preferencias"

Después de bucear por Internet, ser llevado a los más oscuros rincones de Taringa donde cientos de lammers decían sufrir lo mismo, y tras subir de nuevo al mundo conocido, di con una solución, que a mí me funcionó, aunque como parece un error que tiene múltiples causas, puede que a ti también te funcione … o tal vez no. De todas formas te lo cuento y ya decides tú.

  • Fui a Herramientas – Extensiones y borré todas (no funcionó)
  • Fui a Privacidad y borré todo. A continuación desinstalé. Luego borré la carpeta donde estaba instalado (en datos de programa) y no dejé absolutamente nada. Ojo, que Chrome se instala para cada usuario (no como el resto de programas, que mete en "c:\archivos de programa" el ejecutable y la configuración en configuración local o en datos de programa). Es decir, que cuando lo borres, borrarás TODO.

Es una solución radical, pero en mi caso me valió la pena. Espero que Google solucione pronto este error, o por lo menos que dé algún error más descriptivo como hace Firefox.

Así es como me siento cuándo se trata de comprar aplicaciones



Ya estoy un poco harto de la gente que, como bien dice esta viñeta, son capaces de tirar el dinero en absurdeces como una bolsa de palomitas a precio demencial o un móvil al que no van a sacar ningún partido (sólo presumir delante del personal de que están a la última sin saber qué es lo último) pero luego se les cae el mundo encima cuando se les dice que deben pagar el software que consumen. Ya he hablado algunas veces de la tan excelente licencia de uso número uno en España, que no es otra sino la LMEMYLDLDEDT (Lo mío es mío y lo de los demás es de todos) que a veces intentan disfrazar de licencia CC o GNU, pensando que por alguna extraña razón, cualquiera puede relicenciar la obra de otro a posteriori y reconvertirla a dominio público por el artículo 33 en nombre del software libre y la paz del mundo.

Señores, el software cuesta dinero hacerlo y cualquiera tiene derecho a licenciar su obra como le parezca oportuno. Si te gusta ese programa, cómpralo y haz posible que el programador pueda seguir sacando versiones y si no te gusta, no lo uses. En cualquier caso, no digas que el software es caro cuando estás tirando el dinero cada día en cosas mucho más superfluas y efímeras.