Reglas para comentar código

Hace unos días fuí a parar a un enlace bastante interesante donde se enumeran diversos consejos para comentar código de la forma más elegante posible (autor José M. Aguilar). Resumen:

  1. Comenta a varios niveles: Al inicio de una clase, de un método, etc.
  2. Usa párrafos comentados: No redactar lineas kilométricas, utilizar párrafos.
  3. Tabula por igual los comentarios de líneas consecutivas: Si tenemos 2 líneas de código de longitudes diferentes y en cada una añadimos un comentario, que estos se encuentren alineados el uno respecto al otro.
  4. No insultes la inteligencia del lector: No comentar las obviedades.
  5. Sé correcto: Los comentarios ofensivos o las bromas no tienen porque ser del agrado de todo el mundo, hay que limitarse a comentar de forma neutral.
  6. No pierdas el tiempo: Estilo directo, conciso y claro.
  7. Utiliza un estilo consistente: Definir quien va a ser el destinatario de los comentarios (programadores expertos, usuarios, etc.) y redactar en consecuencia a través de todo el código.
  8. Para los comentarios internos usa marcas especiales: Por ejemplo, utilizar la palabra TODO siempre que quieras indicar que falta por implementar alguna característica.
  9. Comenta mientras programas: No dejes para mañana lo que puedas hacer hoy, de lo contrario te costara el doble y tendrá la mitad de calidad.
  10. Comenta como si fuera para tí mismo.
  11. Actualiza los comentarios a la vez que el código
  12. La regla de oro del código legible: Deja que el código hable por si mismo, de esta forma podrás minimizar los comentarios a escribir.

Os dejo con otro artículo que también habla del tema (y otro más). ¿Añadiríais algún otro consejo?

Comparativa de redes sociales: Facebook, Linkedin, Myspace, Xing, Orkut, Neurona, eConozco

Después de recibir un par de agregaciones de compañeros de trabajo en la red social LinkedIn (donde me había registrado hacía tiempo pero nunca le había dedicado tiempo), decidí probar las diferentes redes sociales existentes.

En términos generales podemos encontrar redes sociales orientada al networking de negocios y redes sociales orientadas a las amistades. El elemento común en ambas es el concepto de red de contactos, que no es mas que la posibilidad de relacionar tu perfil de usuario con perfiles de conocidos o amigos que también se hayan registrado.

Para facilitarnos encontrar a nuestros conocidos registrados, habitualmente estas redes nos permiten:

  1. Buscar contactos por su nombre.
  2. Permitir que el sistema se conecte a nuestro correo electrónico* (yahoo, gmail, etc.) y acceda a nuestra libreta de direcciones automáticamente. Para esto nos solicitarán nuestra dirección de correo y la contraseña de acceso. En caso de utilizar este método, aunque aseguran que no guardan nuestra contraseña, lo mínimo que recomiendo es el cambio de contraseña del correo justo después de utilizar la funcionalidad.
  3. Exportar nuestra libreta de direcciones* (Evolution, Outlook, etc.) en un fichero formato CSV o VCF y subirlo a la red social.

* En los métodos de importar la libreta de direcciones siempre tendréis la posibilidad de seleccionar que contactos queréis agregar y cuales no.

Personalmente mantengo desde hace tiempo una libreta de direcciones en el cliente de correo Evolution (siempre he considerado fundamental no perder los datos de contacto de aquellas personas con las que hemos tenido algún contacto), esta información ha sido la que he utilizado para probar las diferentes redes sociales disponibles.

Cuando agregamos alguien a nuestra red de contactos, la adición no es automática sino que la otra persona debe aceptar nuestra invitación. A la hora de valorar las diferentes redes, he considerado que las mejores son aquellas en las que más personas han aceptado mi invitación. El motivo es sencillo, no sirve de nada que una red social tenga muchas personas registradas si luego estas no son usuarios activos y ni tan siquiera se molestan en aceptar o rechazar invitaciones.

A continuación comento las redes sociales que he probado (en todas he utilizado la misma base de contactos):
Continue reading Comparativa de redes sociales: Facebook, Linkedin, Myspace, Xing, Orkut, Neurona, eConozco →

¿Qué es la inflación/deflación? ¿Para qué sirve el euribor (precio del dinero)?

De una forma muy amena, el siguiente vídeo explica que significa la inflación/deflación y par que sirven los tipos de interés (e.g. euribor):

Quizás así comprendamos mejor que la subida de tipos de interés se hace por el bien de todos, aunque suponga una sobrecarga para aquellos que tienen ya contratados préstamos personales o hipotecarios indiciados al euribor.

Penetration Testing Framework

Thanks to a document written by my colleague Joan, I’ve discovered a great page about the steps that we can take when doing a penetration test. Maybe the web content is too large but it has several interesting resources that has helped me during our last project in Deloitte.

Additionally, today I’ve discovered an interesting place called Fake name generator, where you can get random information (name/surname/address/mastercard) of non-existent people. This data may be useful for implementing automated tests (filling forms) or masking data.

Rails’ Breakpoint does not work in Ubuntu Feisty (ruby version problem)

Ruby 1.8.5 is installed by default in Ubuntu Feisty, this version presents some problems when you try to program with Rails. If you want to debug your application using breakpointers, Webrick will abort showing the following message:

Breakpoints are not currently working with Ruby 1.8.5

RAILS_ROOT: script/../config/..
Application Trace | Framework Trace | Full Trace

vendor/rails/railties/lib/breakpoint.rb:21:in `of_caller'
vendor/rails/railties/lib/breakpoint.rb:543:in `breakpoint'
app/controllers/books_controller.rb:19:in `show'

In order to avoid this problem, I’ve downgraded my ruby version to the one used in Edgy (the previous version of Ubuntu). Concretely, it is necessary to downgrade this packages:
Continue reading Rails’ Breakpoint does not work in Ubuntu Feisty (ruby version problem) →

Auditoria i Programari Lliure des de la perspectiva de l’estàndard CoBIT

Amb motiu de les VI Jornades de Programari Lliure que es celebren aquest any a Girona, Joan (company de Deloitte i expert en seguretat) i jo mateix hem estat treballant en un paper sobre Auditoria i Programari Lliure.

Ho hem enfocat prenent com a base l’estàndard CoBIT, el qual defineix punts de control per totes aquelles tasques o processos vinculats a les tecnologies (e.g. adquisició de programari, manteniment, supervisió, etc.). L’objectiu d’aquests control és la millora de l’àrea tecnològica de les organitzacions, per tal de que donin un eficaç i eficient suport al negoci. En definitiva, la direcció de l’àrea tecnològica s’ha de trobar alineada amb l’estratègia empresarial.

A l’anàlisi hem pogut certificar que el Programari Lliure presenta avantatges importants que van des de la independència i llibertat de proveïdor com la millor auditabilitat del sistemes per tenir accés al codi font. Conseqüentment, es potencia la seguretat (integritat, confidencialitat i disponibilitat de la informació) i es facilita el compliment de la normativa legal corresponent al marc d’actuació de l’organització.

No obstant, hi han certs aspectes a on el Programari Lliure no te tanta força al món empresarial. Per exemple, quan parlem d’aplicacions molt especialitzades (e.g. el terminal financer d’una entitat bancaria) no existeixen alternatives lliures.

La conclusió final apunta a la possibilitat de construir un entorn hibrid amb aplicacions lliures i privatives, per tal de poder aprofitar totes les avantatges tecnològiques.

La presentació de l’estudi tindrà lloc el dissabte 7 de Juliol 2007 a les 13:30. Més informació a la web de les jornades. Esteu tots convidats! 😉