Me he inscrito en el intenso campamento de programación informática, la Maker Academy, el próximo mes. Para conseguir una ventaja pensé que iba a trabajar a través de Zed Shaw’s Learn Ruby the Hard Way book.
El ejercicio 25 parece estar poniendo a prueba mis habilidades de resolución de problemas, así que pensé que iba a escribir un post documentando cómo trabajé y luego arreglé mis mensajes de error. Este post está dirigido a los novatos en el mundo de la programación ya que me imagino que son cosas muy básicas las que estoy haciendo mal.
Este fue mi primer intento de escribir el script del ejercicio 25 en mi editor:
Cuando ejecuté esto en la terminal obtuve el siguiente mensaje de error:
ex25.rb:2:in `<main>': undefined local variable or method `ex25' for main:Object (NameError)
Lo primero que hice fue buscar en Google el mensaje de error.
Resolver el mensaje de error con Google
Encontré una respuesta en Stackoverflow.
Me dijo que estaba escribiendo accidentalmente Alt + Espacio en mi Mac, por lo tanto, la creación de espacio sin romper. Esto es considerado por Ruby como parte de un nombre de variable en lugar del espacio en blanco que se pretendía ser.
Dio dos soluciones a este problema:
1. Reasignar Alt + Espacio a espacio para evitar que esta errata vuelva a ocurrir.
2. Resaltar los caracteres invisibles en el editor de texto para darse cuenta inmediatamente de las erratas.
La preferencia parecía ser la solución 2, así que pensé en probar esta forma primero. Parecía la más sencilla y rápida de solucionar. Quería descartar la cuestión de off-the-shelf a mi código roto.
Resaltar caracteres invisibles en mi editor de texto – Parte 1
Luego busqué en Google cómo resaltar caracteres invisibles con mi editor de texto, Sublime Text editor 2.
Resulta que esto se supone que es una característica por defecto de mi editor de texto.
Cada vez que resalto un texto se supone que puedo ver pequeños puntos blancos como los de la imagen de abajo (mira de cerca que están ahí en los espacios vacíos):
Así que resalté el texto y no pasó nada:
Decidí aparcar el problema de los espacios de ‘no ruptura’ aquí por ahora y tratar de resolver mi mensaje de error de una manera más fácil. Soy relativamente nuevo en la codificación, por lo que la siguiente solución para encontrar espacios ‘sin romper’; arreglar las preferencias o asignaciones de teclas por defecto en el editor Sublime Text, no parecía la forma más fácil de resolver mi problema.
Googleando el ejercicio en sí
Lo siguiente que hice fue googlear ‘Ex25 learn Ruby the hard way’ para ver si alguien más estaba teniendo los mismos problemas que yo. Encontré un blog con el ejercicio escrito. Comparé nuestros archivos palabra por palabra en mi pantalla.
No pude VER ninguna diferencia entre nuestros archivos (lo que indica que los espacios ocultos sin romper pueden ser la causa de mi error).
Sin embargo, necesitaba descartar la idea de que había un error tipográfico que no pude detectar en alguna parte, así que escribí el archivo completo de nuevo. Pensando que era una forma más rápida de llegar a la solución.
Mi segundo archivo funcionó cuando lo ejecuté en el terminal. No hay mensaje de error.
Aquí está el segundo archivo:
Estaba intrigado por saber dónde me había equivocado con el primer archivo, así que los comparé línea por línea.
Comparando el script que funcionaba con el que tenía un mensaje de error
Los comparé en mi pantalla y noté dos diferencias que arreglé de una en una.