Category Archives: Tecnología

Metodologías de desarrollo

Se entiende por metodología de desarrollo una colección de documentación formal referente a los procesos, las políticas y los procedimientos que intervienen en el desarrollo del software. En Ingles software development methodology (SDM) o system development life cycle (SDLC).

La finalidad de una metodología de desarrollo es garantizar la eficacia (p.ej. cumplir los requisitos iniciales) y la eficiencia (p.ej. minimizar las perdidas de tiempo) en el proceso de generación de software.

Los riesgos a afrontar y los controles a establecer varían en función de las diferentes etapas del ciclo de vida de desarrollo. De forma general podríamos encontrar las siguientes fases:
Continue reading Metodologías de desarrollo

Herramientas libres de monitorización de sistemas

A partir de un artículo de barrapunto y posts antiguos (Monitorización de servidores, Monitorización de redes), he llegado a recopilar varias herramientas libres para la monitorización de sistemas:

¿Teneis experiencia con alguno de ellos? ¿Cuál recomendaríais?

Actualización También puede ser interesante el uso de OSSEC como herramienta para el análisis automático de logs de los sistemas y snort para la detección de intrusos (IDS).

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

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)

Controlar la frecuencia de CPU desde applet (modo ahorro energía) en Ubuntu

Para el panel de gnome tenemos un applet llamado “Monitor de frecuencia de la CPU” que informa de los Mhz a los que va nuestro procesador. Lo que desconocía por completo era que si le damos permisos setuid, podremos también seleccionar la frecuencia fija a la que queremos que se mantenga la CPU y así poder ahorrar energía:

sudo chmod +s /usr/bin/cpufreq-selector