Pruebas unitarias estilo Volkswagen

(2 comentarios)

Tu objetivo como programador es sólo uno: producir más código. No hay necesidad de distraerse con nimiedades como las pruebas y el arreglo de bugs. Por eso, basándose en las buenas prácticas de la industria automovilística, Hugues Maignol ha creado una extensión para PHPUnit que permite hacer pruebas unitarias en PHP de la misma forma en que estas empresas comprobaban las emisiones de gases en sus coches: detectando entornos de integración continua y sustituyendo en ese caso las colecciones con los errores y fallos detectados por colecciones vacías.

¡Nadie lee las licencias de uso!

(6 comentarios)

Hace unas semanas el humorista John Oliver comentaba en un monólogo que Apple podría incluir el “Mein Kampf” de Hitler en sus términos de uso y nadie se daría cuenta.

No es de extrañar, ya que se calcula que necesitaríamos 76 días laborales para poder leer todas las licencias que aceptamos en 1 año.

Y tampoco sería tan insólito, porque más de uno ha vendido ya su alma literalmente a una empresa sin saberlo y, de hecho, la licencia de iTunes y Quicktime ya incluyen rarezas tales como la prohibición de su uso para la creación de misiles, armas nucleares o armas bacteriológicas.

Cómo forzar a una aplicación a utilizar una determinada interfaz de red

(7 comentarios)

En mi trabajo suelo utilizar dos redes distintas: una red WiFi, de velocidad aceptable, y una red de área local, bastante más lenta que la primera y con algunas restricciones, pero que es necesaria para conectarse a ciertos recursos y páginas de la organización. Harto de tener que activar y desactivar ambas conexiones según lo que estuviera haciendo, recurrí a Google en busca de una solución. Su nombre: ForceBindIP.

[Pulsa para continuar]

La Regla del Boy Scout

(13 comentarios)

A menos que seamos extremadamente cuidadosos la entropía siempre hará que la calidad del software se degrade con el tiempo. Quizás pensemos que tenemos cosas más importantes que hacer que modificar esta clase o esta función y salgamos del paso con un pequeño hack. Es posible que no recordemos muy bien cómo funcionaba el sistema, y que añadamos complejidad innecesaria con nuestros cambios. O que el código nos cause tal sentimiento de repulsión, que no nos importe ejercer un cierto vandalismo casi deliberado contra él.

[Pulsa para continuar]

Patentes de software

(13 comentarios)

Registramos patentes de software por la misma razón que los americanos compran armas. Los americanos compran armas porque otros americanos compran armas. Las empresas registran patentes de software porque otras empresas registran patentes de software.

~ Simon Phipps

Principios de diseño: fan-in y fan-out

(18 comentarios)

Fan-in (abanico de entrada) es un término utilizado en la Ingeniería del Software para referirse al número de clases que hacen uso de la clase que estamos estudiando. Por otro lado, fan-out (abanico de salida) hace referencia al número de clases que utiliza la clase que estamos estudiando. Estos conceptos, originarios de la electrónica digital, también pueden utilizarse en el resto de niveles del diseño conceptual, para hablar de subsistemas, paquetes o funciones.

Un buen diseño suele tener un fan-in alto, porque eso implica que estamos reutilizando código que de otra forma habría dado lugar a duplicidades en multitud de clases. El fan-in es una medida de reutilización.

Al contrario, un buen diseño cuenta con un fan-out bajo, idealmente de 7±2, que es, según George Miller, uno de los mayores exponentes de la psicología cognitiva, el número máximo de elementos que una persona normal puede almacenar en su memoria a corto plazo. Con un fan-out bajo nos aseguramos de que la clase es lo bastante sencilla para que no nos resulte difícil trabajar con ella. El fan-out es una medida de complejidad, muy relacionado con el Principio de Responsabilidad Única.

Los programas con las versiones más altas

(31 comentarios)

Tomando como ejemplo un artículo del blog de Guti, he recopilado algunas aplicaciones con números de versión realmente altos, junto al número de años que les ha costado llegar a dicha versión. Aquí tenéis el listado, acompañado de un pequeño gráfico con el número medio de versiones lanzadas por año.

¿Qué os parece el afán de Google con Chrome? ¿Se os ocurre algún otro programa digno de aparecer en esta lista?

[Pulsa para continuar]

No hay balas de plata

(7 comentarios)
Bala de plata

El folclore y la mitología moderna afirman que la manera más efectiva de acabar con un hombre lobo es utilizando una bala de plata. Esta creencia deriva de ciertos hechos acaecidos en la región francesa de Gévaudan entre 1764 y 1767. En este periodo, una bestia de gran tamaño acabó con la vida de más de 130 campesinos, en su mayoría mujeres y niños, que fueron despedazados brutalmente. Esta supuesta bestia sería abatida finalmente, según los relatos, utilizando balas de plata, obtenida tras fundir varias medallas de la Virgen María.

Actualmente, la frase “bala de plata” se ha convertido en una expresión popular para denotar una solución perfecta a un problema, casi milagrosa, que, además, puede aplicarse en casi cualquier contexto.

Por supuesto, en el mundo del desarrollo de software, sabemos que no existe nada parecido a las balas de plata. De ahí que Fred Brooks acuñara esta famosa frase en su célebre ensayo “No hay bala de plata” (No Silver Bullet) que podéis encontrar en la web de la Universidad de Nottingham, en Barrapunto (español) o en el mítico libro The Mythical Man Month

¿Cuáles son tus aplicaciones favoritas?

(83 comentarios)

Ayer estuve formateando mi portátil, cosa que suelo hacer periódicamente porque, aunque en la vida real soy un poco más caótico, en lo digital me gusta que todo esté limpio y ordenado. Después de formatear e instalar el sistema operativo y los drivers, llegó la hora de instalar las aplicaciones. En Windows suelo empezar con Firefox, porque todas las versiones IE se me hacen insufribles. Después vendría WinRAR, VLC, IrfanView, UltraEdit, FileZilla, uTorrent y todo lo demás.

¿Y en tu caso? ¿cuáles son tus aplicaciones favoritas? ¿cuáles son esos programas que instalas nada más formatear y sin los cuales no podrías vivir?

Manifiesto por la Artesanía del Software

(7 comentarios)

Si sueles leer libros sobre programación de forma habitual, seguramente hayas oído hablar alguna vez de las metodologías ágiles, tales como Scrum o eXtreme Programming, así como del Manifiesto por el Desarrollo Ágil de Software, que resume este rompedor modo de ver el proceso de desarrollo de software.

Lo que no es tan habitual es conocer la existencia de otro movimiento relacionado, resumido en el Manifiesto por la Artesanía del Software, y cuyos orígenes podemos encontrar en uno de mis libros favoritos de cabecera, “The Pragmatic Programmer“, ya recomendado en 10 libros míticos sobre programación que todo desarrollador debería leer.

Para aquellos que estéis interesados, a continuación tenéis mi pequeña traducción. Si os sentís identificados con este manifiesto y queréis firmarlo, podéis hacerlo en su página web.

[Pulsa para continuar]

Página 1 de 2312345...Último »