Los geek actuales y sus metodologias

dilbert-agile_programming_0

Diego: Buenas noches profesor
Profesor: Buenas noches Ramirez
Diego: Profesor, queria ver con usted mi nota
Profesor: Ah si, hubo un error cuando la cargaron en la pagina.
Diego: Ah, me imaginaba. Que me saque?
Profesor: Un 2
Diego: Como un 2!!??
Profesor: Y.. si. Un 2 Ramirez. Su evaluacion no estaba nada bien.
Diego: Pero no puede ser! Si yo hice todo lo necesario! Mi evaluacion no merece menos que un 10
Profesor: Un 10 !!! ?? Usted no sabe lo que dice..
Diego: No profesor. Y se lo puedo demostrar. Mire, ve mi tarjetita: dice “Gerente de Desarrollo”. Y al otro lado dice “psicofxp.com” Sabe lo que significa?
Profesor: No, la verdad que no. Pero eso no cambia el 2 que se saco.
Diego: No, no, no. Usted no esta teniendo en cuenta que yo trabajo en una “punto-com”. Eso cambia todo
Profesor: No veo en que puede cambiar!
Diego: Espereme un segundo. Vamos a revisarla juntos, analicemos todos los puntos, cuantifiquemos el total de las consignas sugeridas, evaluemos cuanto tiempo usted nos dio para hacer el examen, y cuanto en realidad podia hacer yo. Y ahi llegamos al primer indicador
Profesor: Que indicador Ramirez? Usted tenia 8 ejercicios, e hizo 4. Y todos mal. El 2 en realidad se lo estoy regalando.
Diego: Bueno, ve: hice 4 ejercicios porque cuantifique que en este sprint no podia hacer mas. La semana que viene, en el proximo sprint hago los otros 4
Profesor: Ramirez, disculpeme pero no le entiendo.. Usted sugiere que esta bien que hiciera 4 puntos, cuando todo el mundo hizo 8?
Diego: Por supuesto. Mire: 8 puntos era el product backlog, pero en este sprint solamente podian entrar 4. Como soy proactivo hice mi propia estimacion. Ahi ya tengo un punto.
Profesor: Usted esta loco? y de todas formas, aunque aceptara que solo hiciera 4, los 4 están mal.
Diego: Porque mal? Fijese el primer ejercicio: “Ingresar las edades de 10 personas, determinar el máximo, el minimo y el promedio de edad. Imprimir los 3 resultados”
Profesor: Usted solamente hizo el calculo y la impresión. No hizo el ingreso de datos.
Diego: Claro, porque este calculo es invocado por un ajax que le pasa los parametros. El ejercicio esta perfecto. Ahi ya van dos puntos.
Profesor: Ramirez usted me esta tomando el pelo?
Diego: Para nada Profesor. Veamos el siguiente ejercicio: “Generar una matriz de 4×4 con los números de 1 a 16”
Profesor: Aca dejo un espacio vacio.
Diego: Pero claro: esta es la vista del HTML. Pero la tabla la dibuja el CSS
Profesor: Que!!? Y los datos?
Diego: Los escribe el JQuery!
Profesor: Ramirez, estoy a punto de perder la paciencia!
Diego: Eso por lo menos fueron dos puntos mas y van 4. Que sigue? Ah, si: “Comprobar que un numero de cédula sea correcto”
Profesor: Y usted solamente puso una direccion de pagina web
Diego: Error. Yo puse una invocación a un servicio RESTFUL del SAIME que me devuelve true o false. Un punto mas.
Profesor: Ramirez, estoy a punto de expulsarlo de mi clase
Diego: Profesor, ya terminamos: Miremos el ultimo ejercicio: “Realice un programa que solicite nombre y apellido e imprima el resultado”
Profesor: Ramirez: usted dibujo tres cuadraditos.
Diego: Son los dos campos del formulario, y el boton Submit
Profesor: Y la logica!?
Diego: Obviamente no esta aca! Usted no oyo hablar del patron MVC. Bueno, esta es la Vista. El modelo y el controlador lo hizo mi compañero, que es del otro team.
Profesor: Que compañero? Que team? De que me habla?!!
Diego: Que yo dividi las tareas con mis compañeros para poder terminar el sprint. Encima hice su trabajo de Scrum Master. Por lo menos dos puntos mas me merezco por eso.
Profesor: Ramirez, suponiendo que acceda a todas sus locuras, esta llegando a un 6. Y usted sabe que se aprueba con 7
Diego: Pero usted se esta olvidando que el examen valida, no vio que le puse “This exam is XHTML 1.0 valid” Ahi tengo un punto mas.
Profesor: Pero…
Diego: Y ademas, antes de entregarlo hice una copia para llevarme, con lo cual esta commiteado en el versionador. Otro punto. Si sumamos que el examen no ocupa mas de media carilla, quiere decir que esta minificado. Otro punto mas. Y finalmente antes de irme puse en Twitter y en Facebook “Acabo de terminar un examen de Programación. Me voy a comer una pizza y ver Lost. Hasta mañana followers”. Eso por supuesto, me suma otro punto y llego al 10
Profesor: Ramirez, sabe que? Me harto. Le voy a poner el 10 solamente para que se calle y se siente. Total esto es una universidad privada, asi que poco importa si usted aprende o no.
Diego: Gracias Profesor, pero no me ponga un 10. Mejor pongame un 9 y en la parte superior de mi examen pongame un circulito pintado de verde manzana que diga “Beta”. Así todos piensan que queda algo por mejorar.

Via: minimalart

Cifrar cadena en Base64 en Javascript

Gracias a mi amigo Gonzalo hace poco conocí las funciones atob btoa de Javascript que sirven para cifrar una cadena de caracteres de manera que podamos enviarla a través de cualquier mecanismo (post, get, ajax, restful, etc) evitando perdida de información por el tipo codificación de caracteres y/o hacer visible la información que enviamos a través de una url.

Para ver un ejemplo de la función pueden observar el siguiente bloque de código:

O hacer uso de la excelente documentación que pueden conseguir en http://www.w3schools.com/

Links de Viernes 22/01/2015

Les comparto los links de este viernes:

Qué es NodeJS? y como instalarlo en MacOS

Node.js es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la capa del servidor (pero no limitándose a ello) basado en el lenguaje de programación ECMAScript, asíncrono, con I/O de datos en una arquitectura orientada a eventos y basado en el motor V8 de Google.

Node.js ejecuta V8 JavaScript. Espere… ¿qué? ¿JavaScript en el servidor? Sí, leyó correctamente. El JavaScript del lado del servidor puede ser un concepto nuevo para cualquiera que haya trabajado exclusivamente con JavaScript del lado del cliente, pero la idea en sí no es tan inverosímil — ¿por qué no utilizar el mismo lenguaje de programación que usted usa en el cliente del lado del servidor?

Node.js es similar en su propósito a Twisted o Tornado de Python, Perl Object Environment de Perl, React de PHP, libevent o libev de C, EventMachine de Ruby, vibe.d de D y de Java existe Apache MINA, Netty, Akka, Vert.x, Grizzly o Xsocket. Al contrario que la mayoría del código JavaScript, no se ejecuta en un navegador, sino en el servidor. Node.js implementa algunas especificaciones de CommonJS.

Lo que Node.js definitivamente no es

Sí, Node.js es un programa de servidor. Sin embargo, el producto base de Node.js definitivamente No es como ApacheTomcat. Esos servidores básicamente son productos para servidor listos para instalar y que están listos para implementar aplicaciones instantáneamente. Usted podría tener un servidor estar listo y en operación en un minuto con estos productos. Node.js definitivamente no es esto. De forma similar a como Apache puede agregar un módulo PHP para permitir a los desarrolladores crear páginas Web dinámicas, y un módulo SSL para conexiones seguras, Node.js también tiene el concepto de módulos que se pueden agregar a su núcleo mismo. Literalmente hay cientos de módulos de los que se puede escoger con Node.js, y la comunidad es bastante activa en cuanto a producir, publicar y actualizar docenas de módulos por día. 

Dicho esto, ahora podemos entrar en los pasos para la instalación de Node.js en MacOS

Existen dos maneras fundamentales de hacer esto de forma sencilla:

La primera pasa por entrar en la página de Node.js y descargar la versión que quieras instalar (LTS o Stable), lo cual te bajara un archivo .pkg que podrás instalar mediante la interfaz gráfica.

Actualmente pueden descargar las siguientes versiones:

La segunda manera (y es la que recomiendo) es instalar a través de HomeBrew con los siguientes pasos:

  • Abrir un terminal de consola
  • Escribir el comando “brew install node”
  • Validar que se instalo correctamente con los comandos “node -v” (para ver la versión que instaló de Node.js) y “npm -v” (para ver la versión de NPM que se instaló)
  • En caso de querer actualizar la versión que tienes instalada de Node.js solo debes abrir la consola y ejecutar los siguientes comandos:
    1. brew update
    2. brew upgrade node

Para mas información puedes consultar la guía de Dave McFarland

Links de Viernes 15/01/2015

Les comparto los links de esta semana: