Sigueme en Twitter

Archivo de artículos publicados en Mayo, 2009

Ir al inicio

Red Ring of Death

31/05/2009

Hoy compramos Guitar Hero World Tour y Guitar Hero Metallica. Pero apenas un par de canciones más tarde y ¡zas! Xbox 360 muerto.

Ya tiene como 3 años así que no creo que me tomen la garantía. Pero a la mejor y uno de esos métodos caseros ayuda :(

Actualización

Hoy ya estaba a punto de hablar al servicio cuando encendí el Xbox de nuevo, no se que habrá pasado pero ya prendió y no dejo de funcionar en 4 horas. Supongo que de todos modos va a morir pronto.

12 Comentarios

La cita del día #28

30/05/2009

long long ago; /* in a galaxy far far away */

1 Comentario

Unit Tests en PHP con SimpleTest

29/05/2009

Hacer pruebas automatizadas de tu código siempre es una buena costumbre, en especial cuando te llega el tiempo de tener que refactorizar.

Para este ejemplo vamos a hacer una clase que calcula las áreas de triángulos, rectángulos y cuadrados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Area
{
	function triangle($base, $height) {
		return ($base * $height) / 2;
	}
 
	function rectangle($breadth, $height) {
		return $breadth * $height;
	}
 
	function square($side) {
		return $side * $side;
	}
}

Y vamos a utilizar la herramienta SimpleTest para probar que nuestras funciones están trabajando bien. Para empezar a usarlo solo tienes que bajarlo y colocar la carpeta simpletest dentro de tu proyecto o algún directorio global de PHP.

Una vez instalado podemos comenzar a escribir nuestros casos de prueba.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require_once 'simpletest/autorun.php';
require_once 'area.php';
 
class AreaTestCase extends UnitTestCase
{
	var $area;
 
	function setUp() {
		$this->area = new Area();
	}
 
	function testTriangle()
	{
		$result = $this->area->triangle(6, 10);
		$this->assertEqual(30, $result);
	}
 
	function testRectangle()
	{
		$result = $this->area->rectangle(2, 5);
		$this->assertEqual(10, $result);
	}
 
	function testSquare()
	{
		$result = $this->area->square(4);
		$this->assertTrue(is_numeric($result));
	}
}

El incluir autorun.php nos da la habilidad de poder extender la clase UnitTestCase, permitiéndonos ejecutar las aserciones. Además el autorun.php se encarga de correr las pruebas sin necesidad de que tu tengas que instanciar nada y también es suficientemente inteligente para darte si cuenta si estas en la consola o directamente en el navegador.

La funcion setUp se ejecuta automáticamente antes de correr cualquier prueba. Aquí como todas nuestras pruebas hacen uso de la clase Area, entonces aprovechamos para hacer la instancia una sola vez.

Finalmente SimpleTest corre todas las pruebas que note comienzan con el nombre test y nosotros tenemos 3 de ellas:

  • testTriangle: Prueba que el resultado de la operación sea igual a 30.
  • testRectangle: Prueba que el resultado de la operación sea igual a 10.
  • testSquare: Prueba que el resultado de la operación sea un número.

Cualquier otro resultado nos arrojaría errores. Estas pruebas ejecutadas en el navegador se verían así, pero también puedes ejecutarlas en consola sin ningún problema.

Oh si, la confirmación del código perfecto

SimpleTest tiene muchas opciones más como el agrupar casos de prueba, escribir tus propias aserciones, mockups (simulaciones de escenarios) y pruebas web (aunque limitado). Así que no te dejes de llevar por el nombre no es simple, solo es fácil de usar.

Sin Comentarios

Herramientas básicas: Stack Overflow y Server Fault

28/05/2009

Desde hace mucho tiempo que Stack Overflow se convirtió en dieta básica cuando estoy programando. Puedo decir que ahora lo veo casi tan indispensable como Google.

Es un sitio donde puedes hacer una pregunta a un montón de programadores elitistas. Estupendamente bueno para enterarte sobre mejores prácticas, metodologías y en general cualquier forma de hacer mejor las cosas. Tiene apenas un año de ser público pero ya esta tan lleno de contenido, que a menos que sea un tema muy específico, raramente tendrás que hacer una pregunta nueva.

I-n-d-i-s-p-e-n-s-a-b-l-e

Y tiene un sitio hermano que se dedica a la administración de servidores (esa tarea maldita, tan ligada a los programadores). Server Fault (¿no son geniales sus nombres?). Este es muy nuevo y apenas lleva unos días abierto al público, pero con tan buenas referencias y prácticamente la misma comunidad lo voy a tener siempre en cuenta.

Google te sirve para saber como se hacer las cosas. Stackoverflow para saber como hacerlas mejor.

1 Comentario

Instalando Mac OS X sin una Mac.. pero legalmente

27/05/2009

¿Recuerdan mi afición a piratear Mac OS X? Pues resulta que hay un proyecto llamado boot-123, que básicamente es un disco de booteo con el kernel de darwin modificado, que te permite arrancar un disco de Mac OS X Leopard sin ninguna modificación, tal como sale de fábrica.

Esto es lo que hace legal el proceso ya que no modifica ningún software de Apple y darwin es software libre (aunque sinceramente es solo un juego de palabras) y mejor aún, las actualizaciones que salgan de Apple las podrás instalar sin ningún problema. Al contrario de instalar un Hackingtosh, donde tienes que estar atento de que respaldar a la hora de actualizar.

Para quién este interesado, el articulo es de OSnews.

2 Comentarios

Intentando llevar un control de gastos

26/05/2009

Desde que salio la beta pública de Mint se me metió mucho a la cabeza llevar un control de gastos online. Pero el hecho de que las cuentas de México no se pudieran sincronizar automáticamente siempre me hacía para atrás.

Un tiempo después salió Wesabe con la promesa que funcionaría con prácticamente cualquier banco del mundo y volví a emocionarme. Pero en vano, resulta que HSBC México nunca ha ofrecido la oportunidad de exportar los datos decentemente y no interactua con aplicaciones externas.

Ahora por fin me he hecho la idea de que si quiero llevar un control de gastos decente debo de hacerlo manualmente o de plano cambiar de banco (lo cual no es mal plan, pero no, todavía no).

Hoy buscando software para finanzas personales en Mac me he decidido por Squirrel, un proyecto muy joven pero muy prometedor. Y aunque aún tiene un par de defectos (el más importante, no soportar varias monedas) me ha encantado su simpleza.

Sino veo estadísticas para cualquier cosa, no me motivo :)

Antes había intentado llevar un control manual con aplicaciones en el iPhone (que por cierto Squirrel tiene versión para iPhone también) y nunca lo pude cumplir mas allá de un par de días. Falta de disciplina supongo. Espero que esta vez sea diferente.

3 Comentarios

MySQL Workbench reemplazará a MySQL Query Browser

25/05/2009

Siguiendo las noticias de MySQL Workbench (v5.1, v5.2) ahora anuncian oficialmente que además de funcionalidades para el modelado de bases de datos va a sustituir y mejorar las funciones de MySQL Query Browser.

Claro, que si habías probado la Alpha 5.2 seguro ya te has dado cuenta que esto iba para allá.

Workbench + Query Browser = Queworkser. Ese sería un mejor nombre, si señor.

4 Comentarios

Metros del mundo

24/05/2009

Me gustó mucho este comparativo de transportes masivos en el mundo. Siempre me he quejado de lo pequeñas que son las líneas del metro tren ligero en Guadalajara y este gráfico lo ilustra muy bien.

En cambio el autobús cubre muy bien la ciudad, pero ni les platico la calidad del servicio

3 Comentarios

La cita del día #27

23/05/2009

“Nada existe, excepto átomos y espacio vacío; lo demás es opinión

~ Demócrito de Abdera

1 Comentario

Libertad para trabajar, dulce libertad

22/05/2009

Si tienes problemas para concentrarte en lo que estas haciendo, en Mac existe una aplicación llamada Freedom que “te liberará de las distracciones del internet, dandote tiempo para programar, escribir o crear”.

Es una aplicación en la que simplemente indicas cuantos minutos quieres de “libertad” y te deshabilitará toda conexión de red por dicho tiempo. Lo interesante es que no hay forma de dar vuelta atrás sino es reiniciando tu máquina (claro que también puedes desconectar el cable de red, pero la cosa es ser nerd).

"They may take our lives, but they'll never take our FREEDOM!!"

Lástima que para mi trabajo necesite estar conectado 95% del tiempo, eso de la reclusión me ayuda mucho a concentrarme.

Enlace: Freedom

3 Comentarios