Ciber Geek >

Desarrollo

Tecnologías para desarrollar un proyecto. Prohibido olvidar la productividad.

¿Producto o aprendizaje?

¿Querés crear un producto? Si las tecnologías que conocés son viables para desarrollar el producto, usálas. Sino aprendé aquellas que lo sean.

¿Querés aprender una nueva tecnología? Aprendéla.

¿Qué carajo estás queriendo decir? No estoy seguro, dame un minuto que todavía no sé si puse bien los acentos en los verbos.

La cuestión es la siguiente, los programadores pasamos mucho tiempo desarrollando por placer, curiosidad, dinero y fama, la gloriosa fama de crear el nuevo PopCorn Time o el próximo Snapchat. Probamos nuevas tecnologías y emprendemos nuevos proyectos, convirtiendo nuestras ideas en código.

Ahora, cuando queremos aprender una nueva tecnología lo mejor siempre es hacerlo programando algo de modo de trabajar con la misma, resolver un caso practico para ganar experiencia. Esa es una de las mejores formas de aprender en este rubro. Y en general consiste en realizar algún proyecto que realizamos con el solo objetivo de fijar conocimiento.

Lo que hay que resaltar del párrafo anterior es que el objetivo del proyecto es aprender esa nueva tecnología.

Seguramente se habrán dado cuenta de que no siempre el objetivo es aprender algo nuevo. Hay veces que el objetivo es llevar una idea al mundo real, y el proyecto es la forma de convertir nuestra idea en un producto, siendo éste ultimo el fin que perseguimos. Es en éste caso cuando al momento de plantear que tecnologías utilizar debemos considerar no solo la viabilidad de desarrollar el producto con un lenguaje u otro, un framework u otro, un stack u otro, sino también es fundamental considerar la productividad como una variable clave.

¿Y qué hago con la productividad? Yo solo quiero crear el Uber del contrabando ilegal por la frontera, y lo quiero hacer con el xJS, el nuevo framework/librería de moda. 

Con productividad me refiero a que si en las tecnologías x e y se puede desarrollar el producto sin mayores inconvenientes, y tenemos experiencia utilizando x, si nuestro verdadero objetivo es el producto debemos elegir la tecnología en la que seamos mas productivos, siempre y cuando sea factible para el alcanzar aquello que se persigue. Y si bien es algo trillado, y que prácticamente todos conocemos en el ambiente, no se debe perder tiempo realizando optimizaciones para un producto que ni siquiera sabemos si va a tener usuarios. Distinto sería el caso en el que estén trabajando en un producto que se sabe como requerimiento no funcional la posibilidad de soportar grandes cargas de trabajo.

Este post no soporta corner cases.

 

 

Trividuel, entrevista con uno de los miembros del equipo

El texto de éste post pertenece a una pseudo entrevista que le hice a Pau, de Trividuel, la cual tenía como objetivo no solo hablar del juego, sino del desarrollo del mismo, algo que resulta incluso mas interesante que el propio juego.

UPDATE: Trividuel parece haber desaparecido en el ciberespacio.

¿De qué trata Trividuel?

Trividuel es un juego de preguntas y respuestas con componentes sociales donde vas a poder jugar con tus amigos. Acertando preguntas en el menor tiempo posible te va a permitir ganar puntos y colocarte el primero en el ranking de usuarios mensual, lo cual es francamente complicado, hehe.

trividuel logo

Logo de Trividuel

La parte técnica

Trividuel está hecho con PHP , la librería Zend Framework y bastante Javascript (con jQuery) que gestiona el juego en sí. El diseño es completamente hecho por mí (basándome en el de foursquare.com).

Fuera de Zend, también tenemos algunas partes de código algo más complejas, como por ejemplo el auto-categorizador de preguntas, que es un componente que acepta un string de texto como input y te devuelve una categoría sugerida para ese texto. El auto-categorizador implementa el algoritmo Naive Bayes, muy popular en IA y Datamining.

Nace la idea de hacer el proyecto

La idea original fue de Mike, mi mejor amigo, el cual nos conocemos y andamos juntos desde el instituto. Él desarrolló una primera versión de doonish hace muchos años y la llamó Ask and Answer. La idea a mi me encantó y siempre le decía que deberíamos volver a desarrollarlo juntos, que triunfaría, y bueno al final lo conseguí convencer y nos pusimos manos a la obra con lo que hoy es doonish. La primera versión la desarrollamos en 6 noches de trabajo. Era muy simple pero ya funcional y siempre con la idea de tener un producto al que poder ir añadiendo mejoras poco a poco.

La conformación del equipo

Inicialmente empezamos Mike y yo (como ya dije arriba), pero eventualmente se unieron nuevos socios que aportaron grandísimas ideas de mejora para la mecánica del juego y para el desarrollo del negocio. Podéis ver el listado casi completo en la página del equipo. Falta Esteve, que se ha incorporado con nosotros hace dos semanas (y que lo tenemos añadido en la página de equipo en el entorno de staging).

Cuando entró el nuevo grupo de socios decidimos cambiar el nombre del proyecto por motivos marketing. Pasamos de llamarle “doonish” a llamarlo “Trividuel”, su nombre actual.

Herramientas que usaron para el desarrollo (incluyendo lenguaje y frameworks)

De lenguajes ya hablé anteriormente, así que me centro en otras herramientas útiles que hemos usado.

Además de MySQL, usamos Redis para guardar algunos datos puntuales y de carácter más temporal (o pre-procesados). Usamos un gran conjunto de nuevas herramientas / librerías que han salido para PHP, como composer, Pimple, monolog, predis, algunos componentes de Symfony 2 como el parser de yaml, switfmailer, twig y silex.

La arquitectura de la aplicación es sencilla, pero contiene algunos componentes especializados separados de lo que es el framework principal. Leer mas »

Taller de desarrollo de extensiones para Firefox con Jetpack

Taller de desarrollo de extensiones (plugins) para Firefox utilizando Jetpack

La modalidad va a ser una charla introductoria, seguida por una explicación más en profundidad y un taller. El objetivo del taller es realizar una extensión funcional al fin del día. Las mejores se llevarán un premio cortesía de Mozilla.

Registro (obligatorio)

Para poder asistir al evento, es necesario que te registres previamente.

¿Cuando? ¿Donde?

Entonces, la cita es el sábado 27 de noviembre a las 10:30 horas en el Laboratorio 5, Pabellón I de Ciudad Universitaria (Intendente Güiraldes 2160 – Ciudad Universitaria). Para información de cómo llegar, visitá la página del Departamento de Computación.

Requisitos

Los únicos requerimientos para empezar son saber un poco de desarrollo web: ¡HTML, CSS y JavaScript!

¿Que es Jetpack?

Jetpack es un proyecto que nació con la idea de facilitar el desarrollo de extensiones para Firefox utilizando HTML, CSS y JavaScript. Jetpack ofrece herramientas para el desarrollo y una API para simplificar la codificación de extensiones.

Por más info visiten ésta Web.