chau iolos
Después de 3 meses y más de 115 alumnos registrados, decidí cerrar el experimento de IOLOS
Lo hago para poder enfocarme en otro proyecto :)
taylor price

oozey mess
sheepfilms
Keni
we're not kids anymore.
will byers stan first human second
🩵 avery cochrane 🩵
occasionally subtle
he wasn't even looking at me and he found me
d e v o n

★
official daine visual archive

ellievsbear

PR's Tumblrdome
Aqua Utopia|海の底で記憶を紡ぐ

Discoholic 🪩
Game of Thrones Daily
todays bird
RMH
noise dept.

seen from Malaysia

seen from United States
seen from United States
seen from United States
seen from United States
seen from United States
seen from United States
seen from Malaysia
seen from United States
seen from Libya
seen from United States
seen from Venezuela

seen from Russia

seen from United States
seen from Canada

seen from Spain
seen from Spain
seen from France

seen from Italy
seen from Ukraine
@kevinjhanna
chau iolos
Después de 3 meses y más de 115 alumnos registrados, decidí cerrar el experimento de IOLOS
Lo hago para poder enfocarme en otro proyecto :)
iolos
El campus online de mi facultad es horrible. Entrar desde el teléfono es todavía peor.
A veces, estoy en la facultad y quiero ver una noticia de alguna materia, si cambiaron el aula, si había que hacer algo para hoy, o si suspendieron la clase. Con el campus esto me resulta imposible.
Por eso armé IOLOS, una forma mobile-friendly de ver las noticias de las materias que cursás.
Cómo funciona
IOLOS cada cierto tiempo entra al campus y guarda las noticias nuevas en un servidor propio. Lo bueno es que no ingresa por cada alumno-materia, sino que optimiza las consultas.
Es decir, si hay 20 alumnos cursando la misma materia, solo va a ir al campus una sola vez. Además, hay otras optimizaciones en juego para reducir la carga en los servidores del campus.
Tech
Mechanize (Ruby) para el scrapper.
Cuba (Ruby) como framework MVC.
Redis como DB.
Nada de javascript.
Bootstrap 3.
Hashtags en la linea de comandos.
Cuando estás trabajando con la terminal podés hacer una búsqueda reversa en tu historial de comandos para repetir algúna linea que no querés volver a escribir.
Apretás Ctrl + R y empezás a buscar escribiendo alguna parte que te acuerdes de la linea que querés repetir.
Bueno hasta ahí, nada nuevo.
Introducing Hashtags for the command line.
Después de cada linea importante que sabés que vas a querer repetir podés ponerle un # y alguna palabra clave. Por ejemplo,
$ git push && tele deploy production # deploy
Cuando quieras buscar vas a poder hacer Ctrl + R deploy y estás.
Cual es la magia? En bash los comentarios comienzan con #.
Esto lo ví en algún blog hace un tiempo y lo vengo usando bastante desde ese momento.
"Cuanto menos smart es mi teléfono, más productivo soy"
Se acercan los parciales/finales, es hora de ser más productivo y esto es lo que estoy haciendo:
Chau twitter en el télefono.
Chau Facebook en el teléfono.
Apagar 3G y wifi mientras estudio.
Es básico, pero me siento un guru de la productividad por haberlo hecho porque me ayudó bastante :)
Nuestra "metodología"
Ganamos el hackathon de MercadoLibre!
PERO esto no es "nuestra receta para ganar", sería cualquiera decir que yo conozco (o incluso existe) tal receta.
Lo que vas a leer ya lo pensaba antes del Hackathon, y es la metodología que usamos para armar algo simple, útil y lindo en 24 horas.
Contexto:
El 23 de Marzo nos encontramos con Fede en las oficinas de MercadoLibre junto a otros 48 participantes para el Hackathon de MercadoLibre 2013.
En 24hs armamos MercadoInsights, una herramienta para vendedores profesionales de MercadoLibre que quieren saber como van sus ventas, en comparación con la competencia.
Desde la mañana del Sábado hasta la del Domingo cada equipo estuvo concentrado en su proyecto y al finalizar las 24hs cada equipo tuvo que presentar su proyecto en 5 minutos.
OK, aca va nuestra metodología:
MSP (Minimum Showable Product)
Obviamente no nos mandamos de una a programar algo gigante. Además de planificar la aplicación en 5 etapas, pensamos en cada etapa el proyecto como un producto ya "mostrable".
Si 24 horas no nos hubieran alcanzado para terminar nuestra idea, por lo menos hubiesemos llegado tranquilamente a presentar un proyecto terminado.
Tuvimos ganas de implementar más ideas, pero decidimos recortar todo lo que sentíamos que estaba de más.
Por ejemplo, nuestras planificación en etapas fue:
Una url que le pasas un ID de item de MercadoLibre y te gráfica las ventas.
Que además compare productos entre si
Implementar autenticación de usuario de MeLi, y que obtenga los productos de ahi.
Una linda landing page.
Viejo vs Nuevo
Aprender lenguajes/frameworks nuevos puede no llevarte tanto tiempo, pero aprenderte los detalles prácticos tal vez si. Por eso a nosotros nos gusta usar herramientas que conozcamos como base de la aplicación, y mezclarla con técnicas nuevas para nosotros.
Por ejemplo, Fede se leyó el manual de d3.js para los gráficos y uso un framework para estilos diferente a Bootstrap (que lo sabe de memoria).
En mi caso yo jugué con Sequel, que nunca lo había usado desde cero (en educabilia usamos Ohm principalmente).
Usar Git
Y digo git, no github. Hubo muchos equipos que decidieron no usar ningún sistema de control de revisión de códigos (dropbox no cuenta). Usar git es super cómodo ya seas equipo de 1 o más.
Además de ayudarte a trabajar con más personas, te ayuda a organizar tu cabeza/código a vos mismo.
Y no nos pasó, pero si a las 5am se nos hubiese roto toda la aplicación sin saber porque podríamos haber ido atrás en el código para corregirlo.
Framework y librerias
Los frameworks (entre otras cosas) sirven para prototipar ideas rápido y no empezar todo el tiempo de cero. Nosotros usamos Cuba (backend), Zurb Foundation, jQuery y underscore (frontend).
Conocer mínimamente las APIs que vas a usar
Hubo muchas cosas que aprendimos de la APIs de mercadolibre en el hackathon, leyendo la documentación y preguntando a los chicos. Pero nos fue importante ya conocer de lo que eran capaz y como se usaban.
Nerd bonus: TDD
El título fue solo para llamar la atención, debe ser re pesado usar TDD en un hackathon. Pero eso no quiere decir no hacer tests. Nosotros hicimos tests unitarios para algunas cosas (por ej: el procesador de datos para generar el gráfico).
La más importante: El flow del pitch
Las 24 horas que trabajaste se van en 5 minutos. El pitch (la presentación) de tu proyecto tiene que resaltar porque ese día decidiste no dormir. Vale estar nervioso.
Con Fede, nos dedicamos por lo menos 15 minutos antes de presentar para pensar que es lo que ibamos a mostrar, que ibamos a decir y en que orden.
En fin...
El evento estuvo genial y muy bien organizado. Los chicos y las chicas de MeLi fueron muy buenos anfitriones y nos atendieron muy bien. Además, les agradezco por resolver nuestras dudas con buena cara incluso a las 5am.
Mi (primera) charla en barcamp 2012
Cómo armar tu primera web app en Ruby sin Rails
Presentación
Repo en github
Porque si trabajar en un startup mientras estudiás.
Y digo **trabajar** en un startup y no **fundar** uno. Depende de la carrera que hayas elegido, es muy probable que no puedas dedicarle el 100% de tu tiempo y energía a ejecutar tu propio negocio. Sin el compromiso de ponerle todo lo que tenés a tu proyecto no creo que puedas llegar muy lejos. Nunca trabajé para una empresa grande ni mediana así que no se nada sobre cuanta burocracia hay o cuanto gossip de oficina. Pero si puedo opinar sobre trabajar en un startup con un buen equipo de pocas personas pero copadas y con experiencia. Ventajas de trabajar en un **startup vs big corp**, sin ser cofounder mientras estudias: * Ya sea programar, diseñar, organizar o vender, lo que vos estás haciendo es lo que mueve a la empresa. Es increible la sensación de que tus acciones impactan directamente en la empresa en tiempo real. * Poder sentir que "esto lo hice yo". * Consecuencia de lo anterior: si te mandaste una cagada, la cagada es tuya; arreglalo o pedí ayuda. * Horarios flexibles, y esto es super importante cuando llegan los examenes o estás atrasado con algún TP. * Entender para que te sirve aprender cada cosa que ves en la facultad. * Poder aplicar lo que aprendés en la facultad en el startup, y al revés tambien. * Poder dormir a la noche con la cabeza tranquila (muchos founders al principio no pueden). * Conocer gente en "la industria" para cuando quieras fundar tu empresa. * Sentarte en la misma mesa que tus jefes, discutir ideas y aprender de ellos, conocer la situación exacta del startup. Obviamente es super importante elegir un buen startup (va para otro post) para el cual trabajar y no uno al azar o el que pague más. Último disclaimer: esta es mi opinion y mi experiencia, después de haber trabajado más de un año en [Educabilia](http://educabilia.com). No creo que trabajar en un startup sea lo mejor para todas las personas pero realmente lo recomiendo para el que quiera intentarlo. Si la idea te tienta un poco (y estás de Buenos Aires) anotate para [Conexion Startup](http://conexionstartup.com). Conexion Startup organiza recorridos a diferentes startups de Buenos Aires para que los estudiantes conozcan que startups hay en el mercado.
Bots en twitter y social media
Hace un tiempo escribí un par de scripts para jugar con una cuenta de twitter, buscaba personas que mencionaran un tema x, las seguía y les hacia un mention. Mi objetivo era [armar algo y aprender un poco](http://kevinjhanna.tumblr.com/post/23582996330/hackers) sobre el API de twitter. Mi métrica de que tan bueno estaba mi código era la cantidad de followers. A una empresa de marketing online pareció gustarle la idea y decidí transformarlo en una aplicación web más amigable y le agregué toda una sección para tomar métricas y ver el "success rate" de cada campaña. Al final, no pasó nada con esa empresa pero era el 2010 y se venía el mundial de fútbol en Alemania. Era un buen momento para poner en práctica todo lo que había armado. Solo tenía un problema: no se nada sobre fútbol. No importa, **SHIP**. Con el primer partido de Argentina empecé una campaña en twitter preguntando cosas como "Quien pensás que es el mejor jugador" o "Mirá el gol que hizo Messi" (via @mention) a gente que hablara de la selección o nombrara algún jugador. Para mi sopresa la gente empezó a responderle al bot, a retweetearlo y a seguirlo. Tambien hubo un par de #FF (recomendar el bot a sus seguidores). En un momento estuvo en casi 10 listas sobre fútbol y deportes. El bot llegó a un poco más de 280 followers. No es mucho, aunque más que @kevinjhanna ([seguime](http://twitter.com/kevinjhanna), no soy un bot), pero me llamó la atención como la gente podía darle tanta importancia a alguien que no sabía nada del tema. Algunos motivos que se me ocurrieron es que la gente recibía los tweets del bot en algún dispositivo movil y no tenía fácil acceso a ver sus tweets anteriores. Otra razón posible puede ser que a la gente le gusta que la sigan y sienten que tienen que devolver la cortesía. Yo creo que los gurus del social media, como se hacen llamar los "creativos sociales" en twitter, apuntan a esto último. Lo que tienen que hacer para generar followers es usar un algoritmo que podría ser algo similar a: follow(user) wait(one_week) if !user.follows_back() unfollow(user) Es decir, que **te siguen**, **esperan un tiempo** y **si no los seguís te dejan de seguir**. Por eso podés encontrar a estos *expertos* con 20.000 seguidores pero que siguen a 22.000 usuarios. Obviamente además tienen que tweetear links relacionados a la industria, aunque no es muy dificil, ya que casi nunca es contenido original de ellos. Se salvan de que no cite ejemplos ;) ### Para los curiosos (que sepan programar) La primera versión de la aplicación la hice antes de saber sobre complejidad de algoritmos y lenguajes **en serio** (estaba hecho en php), y era bastante lenta. Lo último que probé es usando esta [gema de ruby](https://github.com/jnunemaker/twitter). Otra cosa interesante es poder twitear desde la [terminal por linea de comandos](https://github.com/sferik/t). Tambien hay que tener en cuenta que poner en marcha el tipo de aplicación que hice en el 2010, que hacía muchos @mention en un corto tiempo, es más complicado ahora porque Twitter puso más filtros anti-spam y pueden deshabilitarte la cuenta.
"Hackers"
Para aclarar, cuando uso la palabra **hacker** la uso con el significado **hipster**, moderno "An enthusiastic and skillful computer programmer" según "la internet". No me refiero al flaco que intenta meterse en otras computadoras o fanático de los virus, clásica imagen del hacker de hollywood. Muchos no saben que la palabra hacker se usa para referirse a aquellos programadores que no son cuadrados, que **les apasiona crear**, que se las rebuscan para encontrar soluciones simples a problemas complejos, o soluciones interesantes a problemas simples. Son las personas que se sienten artistas, que **arman cosas solo por el placer de armarlas**, queriendo mejorar y aprender todo el tiempo. A veces, tambien les llama la atención poder tener un impacto positivo en el mundo; atrás de cada software open source hay hackers. En este sentido, al ser tan proactivos, los hackers están muy asociados al mundo de los startups, y por eso hay muchos encuentros y grupos con nombres como *hackers and founders*, *[hackhackers](http://www.meetup.com/HacksHackersBA)*, *[Random hack of kindness](http://www.rhok.org/)*, *hackernews*, etc. Teniendo en cuenta esto, la **idea de un hackathon** no es hacer cosas ilegales, entrar a la base de datos del FBI ni nada por el estilo. **Un hackathon** es un evento al que van hackers y diseñadores para **armar alguna aplicación**. Muchas veces la idea es usar datos públicos para armar aplicaciones que le sirvan tambien a la sociedad, cómo por ejemplo, [quepasariachuelo.org](http://quepasariachuelo.org.ar/) para visualizar el problema ambiental en el Riachuelo. **Más** * [Según Stallman](http://oreilly.com/openbook/freedom/appb.html) (gracias Dani!) * [Según Paul Graham](http://paulgraham.com/gba.html) * [Otro essay que está bueno](http://learntoduck.com/micah/hackers-hustlers/) ## Update Un hacker tambien podría ser una persona que no programa pero sabe encontrarle las vueltas al sistema para lograr algún objetivo.
HackDay
El fin de semana fue temporada de hackathons en Buenos Aires: la ciudad organizó uno sobre datos abiertos y Demian Bellumio ([@Bellumio](http://twitter.com/Bellumio)), un argentino viviendo en Miami organizó otro con más enfoque en startups. Yo me anoté para este último. El "hackday" duró 24 horas, desde las 11am del Sábado hasta las 11am del Domingo en las oficinas de Mercado Libre. Nos recibieron con medialunas en el comedor de las oficinas para que vayamos charlando entre los 45 participantes y armar equipos de trabajo. La mayoría se habían anotado de a dos o tres conocidos. Mi equipo lo armé con mi amigo Federico ([@FedericoBond](http://twitter.com/federicobond)), intentamos buscar un diseñador para que trabaje con nosotros pero no encontramos. Fede se calzó la camiseta de diseñador. De 13 a 15:30, hubo unos mini-workshops de DineroMail, Mercado Libre Inmuebles e Ideame, en donde propusieron tres desafíos. Decidimos armar una aplicación web usando el API de MeLi (Mercado Libre). El equipo que mejor uso hiciese de la API se ganaba un ipad para cada miembro ;) Nuestra aplicación era una especie de organizador de propiedades que te servía a la hora de mudarte. Todos los equipos ya se habían quedado con las diferentes oficinas, algunas con sillas extremadamente cómodas, y otras más pequeñas. Nosotros dos quedamos rezagados y no nos quedó otra opción que elegir la sala de conferencias (era la más grande). De todas formas, al rato vinieron otros equipos a compartir la sala con nosotros porque se dieron cuenta que era más cómoda. Empezamos a codear, Fede tuneando bootstrap y yo empecé con el login autenticado via MeLi. En nuestra sala había otro equipo de chicos que trabajan en MeLi (obviamente no participaron del workshop de inmuebles). Fue una experiencia genial haber compartido con ellos toda la noche, porque además de darnos una mano con el API nos llevamos bien. A la noche nos dieron de cenar y seguimos codeando. A las 6am Fede se saca las zapatillas y se queda dormido en una silla. Cuando lo vi me di cuenta que yo tambien necesitaba dormir un poco, fui a buscar algunos almohadones a otras oficinas. Para mi sorpresa, la mayoría estaban ocupados por otros participantes que tambien dormían. Por suerte encontré un almohadón con forma de colchón, lo tiré en el piso y me quedé dormido. A las 9am me desperté cuando Demian estaba limpiando la mesa porque iban a usar la sala de "SPA". Vinieron tres masajistas con sillas especiales y nos hicieron sesión de masajes a todos los hackers ;) Desayunamos, almorzamos y ya era hora de hacer las demos. Cada uno de los 17 equipos tenía cinco minutos para hacer un pitch y mostrar su producto. Nosotros pasamos septimos, hice un "elevator pitch" de dos minutos y después Fede mostró la aplicación. Estabamos nerviosos pero decididos a ganar un iPad cada uno. A las 15hs, se contaron los votos de los jurados y empezaron a repartir los premios. DineroMail entregó $5000 pesos (en un cheque gigante) a unos chicos que armaron un clon de Gumroad. Después tocó el turno de Mercado Libre y ganamos nosotros! Dijeron que les había encantado el proyecto y que nunca habían encarado a MeLi con nuestro punto de vista, fue lindo. A lo último eligieron los cinco equipos que van a presentar frente a VCs por una inversión de $4000US! Entre ellos hubo dos apps para pedir comida al mozo en un restaurant con un smarthphone, y una aplicación de gobierno abierto para que la gente pueda votar las leyes y ver si se sienten representados por los diputados. En fin, todo el evento estuvo genial. Aunque fue una competencia, todos fueron muy colaborativos. La organización de parte de Demian fue tremenda, no faltó nada y los tiempos fueron perfectos y las oficinas y el equipo de MercadoLibre estuvieron excelentes. Espero el próximo! Seguime en twitter [@kevinjhanna](http://twitter.com/kevinjhanna)
che, tengo un blog!