Semana 3 y 4

Semana 3

Parece que la idea educativa de la semana es hacer que el estudiante pueda convivir con niveles de frustración en extremo elevados sin caer en el abismo de la depresión… ¿cómo lo logran? Simple, evitando que haya tan siquiera un solo respiro. Mejor dicho, la semana tres del entrenamiento intensivo invernal empezó todos los días a las 9 y terminó a las doce , una. En ese intervalo nunca logré terminar ninguno de los programas del día porque… comenzamos con rails… los famosos rieles donde Ruby va, Ruby on Rails.

Rails es un [gem] que básicamente crea por default los controladores, views, modelos y routes de un proyecto, más que todo aplicaciones para celulares e internet. Cosa maravillosa que en un principio me encantó. Todavía lo sigue haciendo, pero soy consciente que tiene un ligero problema… Cualquier errorcito de sintaxis por pequeño que sea lo bloquea, así pues, el trabajo de toda la semana consistió en debugging intensivo, que lo que más hizo fue crecer mi frustración hasta cotas inesperadas. A Nhi, uno de los dueños de la academia, le pareció maravilloso que yo andara tan frustrado; al parecer eso es bueno para mi proceso educativo. A mi, por el contrario, me parecería más sabroso caminar por la vida feliz y sin preocupaciones, que andar bloqueado por la cantidad de letreros rojos que el developer me muestra y del importantísimo [pry] que siempre me muestra que voy como bien, pero no del todo.

En fin, ya sé como hacer un blog, como hacer apps sencillas que cumplen con todos los requisitos para acceder a bases de datos, procesar información y transmitirla entre módulos.

La semana entera se fue en hacer diferentes aplicativos que en sí, solo representaban el mismo modelo. La idea es que de repetirlos tanto, en algún momento podremos entenderlos y manejarlos a nuestro antojo. Por ahora esto está lejos de mi control y conocimiento, pero cómo la próxima semana tendremos lecciones de debugging, es posible que mi felicidad aumente.

El viernes tuve mi primer app en grupo. Me tocó con Alex, quien tiene mi mismo nivel y con compañero que no sabe ni forro. Lo triste de caso fue que haciendo el primer modulo el viernes por la tarde, nos quedamos bloqueados desde el principio. Normalmente yo logro en una tarde conectar tres módulos. El viernes no pudimos ni con el primero. Por eso el sábado nos vimos de nuevo las caras y hoy domingo, logré terminar de hacer el tercero. Debíamos además hacer el styling con Materialize. Yo nunca lo había manejado, pero no toma mucho tiempo en hacer cosas básicas con él. Eso sí, se ve bastante rígido pues usamos los templates estándares que Materialize provee. Queda la sorpresa de ver con qué nos salenuestro compañero, el cual quedó encargado de hacer el estilo del primer modulo y al cual no quisimos llamar el sábado (ni el domingo) porque de seguro nos frenaba un proyecto que de por sí, ya andaba atrasado desde el principio. (No entregó nada)

 

Semana 4

Esta semana continuó con el mismísimo Rails. En esta ocasión, lo visto requería el mismo proyecto que tantos dolores de cabeza nos había dado.

En orden de aparición, vimos la [gem] de [devise] para hacer autenticaciones de usuarios; lo que en castellano para no programadores serían las casillas donde uno se registra en un aplicativo común y silvestre. Login, Logout.

De paso aprendimos a conectar en este registro facebook, gmail, github o lo que sea, es decir, preguntarle al usuario si quiere hacer el proceso de registro y poner su propia password o por el contrario acceder a nuestra app con su cuenta de gmail o facebook. La cosa suena sencilla pero no lo es tanto. Todo se complica cuando uno tiene que autenticar ese usuario en los demás módulos del aplicativo para que los datos solamente le pertenezcan a él y que en su vista solo aparezca lo que a él le interesa.

Después pasamos a otros tipos de módulos con atributos llamados [has_many_through] y [accepts_nested_attributes_for]. Atributos que son facilísimos de manejar cuando se sigue el ejemplo del profesor pero que, una vez el alumno es dejado a su libre albedrío, este comienza a patinar por todos los lados. En fin, todos los días se creaba uno o dos apps por la mañana y por la tarde se seguía mejorando el grupal que venía de la semana anterior.

Usamos otras [gem] como [populator] y [faker] para llenar bases de datos con datos ficticios (para poder ver como funciona la propia app llena de datos); otras como [annotate] para tener los datos del [schema] dentro de los modelos, y otras como [paperclip] para que el usuario pueda subir fotos a sus cosas. Todo esto se ve muy bacano pero, el infaltable pero, después cuando se sube todo a [heroku], este no guarda las imágenes, entonces hay que armar una cuenta en [cloudinary] y la vida del programador principiante se vuelve un bololoi.

Tuvimos como todas las semanas un Brain Teaser, en esta ocasión, hacer un miniprogramita en Ruby que reconociera cuando una palabra o frase era un “palindrome”, me tocó ir a wikipedia para ver que era eso… en fin, hacer un programita que reconociera si una palabra o frase se podía leer de igual manera por delante o por detrás, algo como: kayak. o más complicado aún, “Was it a car or a cat I saw?”; en estas había que hacer que ruby ignorara los espacios y signos de puntuación. Como es obvio, estaban prohibidos los [helpers] tipo [.reverse]. Lo logré hacer en media hora. Quedé muy contento, hasta ASCCI art le puse (un totoro y no me pregunten por qué).

Vimos también como cuadrar los [backgroud jobs], para enviar mails, newsletters y cosas así, programadas de antemano.

Y por último, vimos como subir apps a Heroku, donde cualquier celular o computador los puede ver e interactuar con él.

La semana no terminó en viernes, sino en sábado, como en la anterior. Tuvimos nuestra primera hackathon. Aunque no gané, quedé contentísimo con el resultado. Era una especie de menú de restaurante con registro incluido muy montadita en heroku. La parte del front end quedó mas bien feíta, pero la del back end me dejó muy contento porque aunque sencilla, fue hecha en tan solo ocho horas y funcionaba tal como debía.

Anuncios

Un comentario en “Semana 3 y 4

  1. Logras expresar lo q piensas y haces.
    Q progreso.
    Yo leo y pienso q el sólo hecho q expresés y aún no yo no entienda nada del texto pero si tu trabajo y esfuerzo es maritorio.
    Best regatas.
    Pp

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s