home

Nearsoft Academy is a place to share the knowledge produced by our most important co-workers at Nearsoft.


Recent Blog Posts

  • semana 4 El tema de esta semana me gusto mucho, aprendí cosas muy importantes y me gustaría comentar las que mas me gustaron, de las principales tareas de esta semana para nosotros ...
    Posted Apr 13, 2015, 3:10 PM by aarias@nearsoft.com
  • semana 3 Aprendí cosas increíbles esta semana, comentare de las que mas me tomo tiempo entender y las que mas me gustaron, Aprendí cosas interesantes sobre una aplicación que tuvimos que completar ...
    Posted Apr 13, 2015, 3:09 PM by aarias@nearsoft.com
  • Compilation of Tips from Pragmatic Programmer! 1. Care about your craft.  Think! About your work. ← mantra Provide options, don't make lame excuses Don't live with broken windows Be a catalyst for change Remember the ...
    Posted Apr 13, 2015, 3:03 PM by Rodrigo Alonso
  • Pragmatic Programmer and What I learned I found this book really helpful towards the view of programming. I don't have much experience with software development, although I'm well on my way to learning how ...
    Posted Apr 13, 2015, 3:02 PM by Rodrigo Alonso
Showing posts 1 - 4 of 48. View more »

Week 4 - It's all about science

posted Apr 13, 2015, 4:35 PM by Manuel Valle

Esta semana se enfocó en la ciencia y el testing, dos áreas que comparten mucho. Aquí el resumen del material ingerido durante esta semana:

Seth Lloyd on Programming the Universe https://www.youtube.com/watch?v=I47TcQmYyo4

Seth Lloyd: Quantum Machine Learning  https://www.youtube.com/watch?v=wkBPp9UovVU

El primer video habla sobre los progresos en la historia de la transmisión de la información y de cómo el mundo realiza cálculo. No me gustó mucho, en la parte histórica no me pareció que aportara mucho, y en la del universo como computadora me limitare a decir que no me parecieron consistentes sus argumentos.

En el segundo aterriza un poco más las cosas y argumenta en por qué creen que el impacto en el tiempo de cómputo es exponencial. La parte de machine learning per se no fue tan importante en el desarrollo, me parece que fue más que nada por que se escucha matón. Quantum Linear Algebra sería más descriptivo. Me pareció más interesante y mejor fundamentada que la primera, a pesar de no entender todo el contenido de la lecture.


Stephen Wolfram: Computing a theory of everything https://www.youtube.com/watch?v=60P7717-XOQ

No puedo tomar muy enserio a Stephen Wolfram. Su libro, el tan famoso/infame ANKOS (A new kind of science) ha sido el único libro que, literalmente, me ha hecho sentir nauseas. Y no por que fuera muy técnico (al contrario, carece inmensamente de rigor), sino por el tono insoportable con el que está escrito.

Lo que pude leer del libro fue repetitivo y díficil de leer debido a la enorme cantidad de paja que tiene; se puede palpar la finalidad implícita del autor de perpetuarse en la mente colectiva como un genio.. prácticamente es una larga alabanza a si mismo y al "nuevo" tipo de ciencia que inventó "el sólo", ignorando olímpicamente a la gran mayoría de personas que aportaron al desarrollo de los autómatas celulares durante los 40 años anteriores al libro.

["I have mostly ended up having to start from scratch—with new ideas and new methods that ultimately depend very little on what has gone before." - Stephen Wolfram]


En fin. En el video menciona sus términos de "irreducibilidad computacional" y "principio de equivalencia computacional", a pesar de que no haber definido (en el libro) ninguno de los dos en términos formales, lo cuál es sorprendente sobre todo en caso del segundo, pues es lo que más aclama como su mayor descubrimiento. Más que un principio es una conjetura, y una muy vaga.


[Sin embargo, los autómatas celulares son (a mi parecer) sumamente interesantes. El ejemplo clásico en dos dimensioneses el juego de la vida de Conway, un conjunto especifico de reglas en el que las celulas 'mueren' (por isolación/sobrepoblación) o 'viven' (por supervivencia/nacimiento) dependiendo de la cantidad de vecinos 'vivos'. Dicho autómata es turing completo (o en otras palabras, puede simular cualquier cálculo que realiza una computadora) y en el se pueden implementar desde una navecilla sencilla (https://www.youtube.com/watch?v=OSHgl1GPFpo), que resulta ser el emblema hacker (http://es.wikipedia.org/wiki/Emblema_hacker hasta ideas salvajes como representar de manera gráfica de una máquina de turing (http://rendell-attic.org/gol/tm.htm) ó algo que haría temblar a dos que tres fans de inception (https://www.youtube.com/watch?v=xP5-iIeKXE8)]


Mathematica y Wolfram Alpha por otra parte son algo más concreto. Del primero no tengo mucho que decir pues nunca lo he usado, pero se escucha mucho. El segundo, Wolfram Alpha si lo he usado varias veces, sobre todo en el pasado. No se si atribuirle eso a que últimamente me ha dado resultados muy malos o a que gran parte del uso que le daba era para revisar mis respuestas a ejercicios de cálculo diferencial, cálculo integral y ecuaciones diferenciales (venía con los pasos para encontrar la solución, lo cuál era bastante útil). Fuera de eso (y buscar cosas curiosas) tengo entendido que dicho sistema alimenta de conocimiento a siri.


Ambas son herramientas interesantes, pero de eso a predicar que está haciendo una revolución científica (sin dar un sólo resultado **concreto** de ello) hay una diferencia absurda.



Richard Feynman, The Great Explainer: Great Minds  https://www.youtube.com/watch?v=JIJw3OLB9sI

TEDxCaltech - Tony Hey - Feynman and Computation https://www.youtube.com/watch?v=9miKIWIYi4w

TEDxCaltech - Danny Hillis - Reminiscing about Richard Feynman https://www.youtube.com/watch?v=8CKW4A6jnJA

Feynamn on Scientific methods https://www.youtube.com/watch?v=EYPapE-3FRw

Las primeras tres cortas charlas (ya me estoy acostumbrando a videos largos) fueron un mini homenaje a Richard Feynman; el famoso físico-cuántico, gana-nobels, abre-bóvedas, estudia-bombas, toca-bongos. Fue un científico cool con rostro sonriente y espíritu aventurero.

La cuarta fue un extracto de Feynman ejerciendo su naturaleza: enseñando sobre el método científico. Las ideas las maneja con una asombrosa claridad y carisma de sobra.


Me acuerdo de una vez que vi un libro en una feria del libro que se llamaba "Lectures On Computation" y pensé en comprarlo pero no lo hice. Después un amigo me plático sobre las coloridas anécdotas de "Surely You're Joking, Mr. Feynman!" y fue donde conocí sobre el físico. Al tiempo supe que el libro que había visto era suyo, y me arrepentí un poco por no habermelo llevado. En uno de los videos mencionan unas lectures que dió en Caltech, y descubrí que son las mismas del libro. Y me arrepentí más :P


De Feynman siempre me resuena una anécdota de cuando él era niño, cuyo mensaje me parece que es oro: https://www.youtube.com/watch?v=05WS0WN7zMQ


Tools for Continuous Integration at Google Scale https://www.youtube.com/watch?v=KH2_sB1A6lA  

El primer video de testing habla sobre como es el sistema de integración sistema en Google.

Toca algunos problemas con los que se encontraron y cómo los resolvieron. También menciona algunas estadísticas de uso, y cómo, de acuerdo a la proporción de falsas alarmas, reconocen los tests más y menos confiables.


Testing Engineering@Google & The Release Process for Google's Chrome for iOS  https://www.youtube.com/watch?v=p9bEc6oC6vw

En el segundo abordan el proceso de desarrollo de la versión de Chrome para iOS desde un punto de vista de las pruebas que hicieron. Mencionan que el proceso de testing es colaborativo y no sólo responsabilidad de los QAs, y que el hecho de que gran parte de ese proceso sea automatizado es una de las ventajas que les permiten llevar un buen ritmo de innovación.

Menciona que es díficil competir con Safari en iOS debido a que éste tiene acceso a APIs nativas que chrome no.


GTAC 2014: The Testing User Experience https://www.youtube.com/watch?v=J7c0Bw840X8

El tercer video sobre testing aborda el asunto de que, si bien las pruebas automatizadas ofrecen muchas ventajas, la cantidad de esfuerzo necesaria para mantener dichos tests se está volviendo un problema para ellos. Menciona que en Google usan aprox. 60 años de tiempo de CPU al dia, ejecutando cerca de 100 millones de pruebas.

La propuesta es un sistema que analice los resultados de distintos sistemas usados en la cadena de desarrollo y ofrezca información útil. El link que dan del proyecto es https://github.com/google/rich-test-results


GTAC 2014: Test coverage at Google  https://www.youtube.com/watch?v=4bublRBCLVQ

El cuarto video habla del proceso de admisión de código. Todo el código es analizado automáticamente y, unicamente si pasa las pruebas, es revisado por otros desarrolladores (peer review).

Se me hizo muy interesante que una de las métrica que usan es el alcance de los tests en términos de porcentaje de lineas cubiertas. Si no está suficientemente 'cubierto' se pide que se realicen más tests. Apuntan a un 99% de cobertura en código nuevo y un 85% en código viejo.


GTAC 2014: I Don't Test Often ... But When I Do, I Test in Production https://www.youtube.com/watch?v=xkP70Zhhix4

Este último video fue el que me pareció más interesante de todos los de testing. Es un bato de Netflix hablando de algunas estrategias que usan para hacer pruebas de su sistema en producción.


La idea general detras de todas las técnicas que aborda es algo a lo que le llama 'Chaos testing', que es simular situaciones de caos en el sistema y si el sistema reacciona/se recupera de manera esperada.


Una de estas estrategias es la de el Ejercito de Simios. Un grupo de 'code monkeys' que se encargan de realizar tareas en el sistema de producción, la mayoría de ellas destructiva.

Los primero tres simios (Chaos Monkey, Chaos Gorilla y Chaos Kong) se encargan de simular la baja de servicios a diferentes niveles (simulan errores a nivel cluster, zona y región, respectivamente) y ver que el servicio de Netflix sea capaz de continuar operando a pesar de que una parte falle.

Otros monkeys son Latency Monkey, Conformity Monkey, Janitor Monkey, Security Monkey y Howler Monkey. Éstos son servicios que se encargan de revisar diferentes aspectos en producción (e.g. que el sistema no esté lento, que esté programado de acuerdo a sus estándares, que se haga un buen manejo de recursos, etc). Varios de estos changos los tienen disponibles en el github de netflix.


Otra es la cobertura de lineas de código. Algo parecido a lo que mencionaban  en el video de Test Coverage de Google, pero en lugar de enfocarse a la cobertura de los tests esta enfocado a la cobertura del código en producción, por usuarios reales. Menciona que para ello usan un sistema llamado Cobertura, que el impacto en su performance no es mucho y ésto les permite encontrar las rutas criticas del código, en las que deben de tener mayor cuidado, así como código muerto, que pueden borrar sin problemas.


La última técnica mencionada son los Canary Deployments, que consiste en que los cambios nuevos al sistema se mandan a una fracción de los clientes, dónde se verifica que no haya ningún problema con el código en un ambiente real.

La herramienta que usan se llama Asgard.

Es una extensión al clásico Move Fast & Fail Fast: Fail Small.



Week 3 - Fancy Topics

posted Apr 13, 2015, 4:26 PM by Manuel Valle

Esta semana, al igual que las anteriores, tuvimos una serie de videos y lecturas a analizar. Encima a eso tuvimos una tarea "fancy": implementar un sistema de recomendaciones aplicando un filtro colaborativo usando la información de las reviews de Amazon. La semana 2 nos dejó la lección de trabajar en equipo, así que esta tarea la abordamos de manera un tanto más organizada. Realizamos daily meetings y nos distribuimos las tareas para lograr al objetivo. Al final no conseguimos vencer el reto bonus que nos propusieron (que nuestro programa corriera en menos de X segundos), pero completamos la tarea como equipo y aprendimos en el camino.

Aquí está el resumen de las lecturas de la semana:

Manejo de dependencias

Fue interesante conocer que hay manejadores de dependencias especificos para front-end que procuran utilizar sólo una versión por librería (por cuestiones de eficiencia). También las alternativas que tiene windows para obtener un comportamiento tipo apt-get.


TDD / Testing

Las lecturas fueron un paseo por el mundo del Test Driven Development y las pruebas automatizadas en general. Un ejemplo inmediato del TDD fue la tarea de la semana, el recomendador de movies.

Parece haber mucha tela para cortar, muchos sabores de pruebas y estrategias, fue interesante. Está bastante interesante la idea, y sin duda conlleva a sistemas más confiables. Looking fordward to aprender más al respecto este mundo.

Me agradó las cosas que Martin Fowler tenía por decir, muy útiles y digeribles, pero sobretodo sentí que analizaba las cosas de una perspectiva critica. Debo admitir que no me topé con un video suyo y no pude evitar verlo. Es sobre NoSql, explica que es, de donde vino, y sus puntos fuertes y débiles. Fue bastante iluminador y me despertó la curiosidad por aprender a usar alguna document-oriented database. Recomendado para cualquier interesado: https://www.youtube.com/watch?v=qI_g07C_Q5I


Pale Blue Dot

Nos pone en perspectiva nuestros problemas y cómo a veces, muchas veces, nos ahogamos en un vaso de agua, o más aún, en un punto azul.


MapReduce

Habla del paradigma de programación presentado por google con la finalidad de procesar cantidades bestiales de información haciendo uso de clusters.  Consiste básicamente en dos etapas Map (en la que se procesa toda la información) y Reduce (en la que se obtiene un resultado conciso a partir de la información procesada). Estos conceptos son usados como analogía a las funciones homónimas del mundo funcional, aunque en la práctica no se aplique de igual manera.

Me pareció muy interesante, pero no terminé convencido con la corta explicación del video, aún no entendía bien la novedad. Chequé los videos de la primer semana de un curso en coursera sobre mineria de datos (https://www.coursera.org/course/mmds), donde si bien la explicación es mucho menos pedagógica, tocan puntos importantes que ponen en contexto la importancia de MapReduce.


Machine Learning

Una introducción a machine learning. No me gustó mucho, tuve problemas que van desde su definición (me quedo con la de Tom Mitchell, que es menos vaga) hasta su categorización (dividió los problemas como aquellos de 'clasificación, clustering y regresión'. me parece más significativa y general la distinción entre aprendizaje supervisado (cuando se tiene definido el resultado esperado) y no supervisado, con lo que hubiera quedado claro de entrada por qué la regresión se parece mas a la clasificación que al clustering). Algunas de las cosas que dijo (de las que ya conozco) me parecen misleadings, y eso me llevó a desconfiar en lo que dijo de aquellas que no conozco.


Los pros es que tiene un estilo digerible y ligero, y en los comentarios se aprecia que ha sido de utilidad para muchas personas, lo cual es fantástico.


En lo personal prefiero la introducción que da Andrew Ng en la primer semana de su curso de coursera (https://class.coursera.org/ml-008/lecture) y la justificación que da Yaser Abu-Mostafa en las primeras dos lectures de su curso de caltech (https://work.caltech.edu/telecourse.html)


Google X

Es el área secreta y experimental de google, dónde sueltan ideas con la intención de solucionar problemas gordos. Destaca el enfoque en hacer prototipos rápidos y en ensuciarse las manos. Me encantó el comentarió que hace un batito sobre como realmente no tienen ningún problema con las cosas que no resultan como lo esperaban, los "errores". La manera en la que lo dice suena bastante sincera. Me hace recordar las pĺáticas de Berkun dónde hablaba sobre ambientes que propician la creatividad, y sin duda esté cumple las características. "Each piece of knowledge creates acceleration"


Bastante inspirador el video de 'moonshot thinking', dónde la premisa es elegir hacer lo imposible. Explorar ideas, abordar los grandes problemas del mundo, o incluso aquellas cosas que ni siquiera son considerados problemas; algo por las lineas de lo que implicaba Ford cuando dijo "If I had asked people what they wanted, they would have said faster horses". El tip, bastante interesante, que nos dejan es "Choose to be bothered by those things".


IPv6

The internet of things is comming, better do some space.


La mejor presentación de tu vida

Tips para hacer presentaciones efectivas, entre ellos incluidos:

- Concentrate en el lado del público (i.e. su experiencia), no en el tuyo (i.e. como te ves / como te puedes equivocar)

- Haz que el público piense

   - Aporta algo útil

   - Da contexto (por qué lo que dices es útil)

   - Da estructura y hazla clara (usando repetición espaciada durante la presentación)

- Haz que el público sienta

   - Fomenta la participación

   - Haz preguntas (que no puedan responderse mal)

   - Emplea un lenguaje evocador (imágenes, objetos)

   - Gestiona el ritmo (usando énfasis)


Lo que  más deja impresión es como va usando las técnicas mientras las menciona y cómo mantiene a la audiencia involucrada y riendo.


Leading@Google Mashall Goldsmith

Está fue una plática bastante densa. El mensaje escencial es ser feliz, preocuparnos menos, hacer felices a los demás. Cosas fundamentales.

Se aborda el líderazgo de una manera tanto administrativa como familiar, tan externa como personal. Se mencionan varios errores comunes en la interacción con los demás, como el exceso de competitividad, o el no pedir feedback.

Algunos temas tratados son:

   - `The best way to change everything is not changing everything, just changing something`

   - On feedback: positive simple focus and fast

   - Don't focus on the past

   - "How can I improve?"

   - Ask, listen, think, thank, respond, involve, change, follow up

   - Be happy now

   - Go for it and have fun


Quantum computing

Se habla sobre la física, sobre cómo un electrón puede tener comportamiento de particula y de onda al mismo tiempo, y de cómo esto se ve afectado con la mera presencia de un espectador. Es algo bastante extraño que aún no termino de comprender, pero sin embargo es fascinante.

Ya había escuchado antes sobre la doble naturaleza del electrón, y de la influencia del espectador en el comportamiento cuántico (como en el experimento mental del gato de Schrödinger) pero no me había tocado ver una manera experimental de llegar a dichas conclusiones. En uno de los videos un batito hace el double slit experiment usando un lasser y unas puntas de lapiz pegadas con cinta, esto está nice.


También se habla sobre la superposición cuántica, por la cual una partícula puede estar en dos lugares al mismo tiempo, lo que da pie a que un qubit (quantum bit) pueda tener tres estados: 1, 0 y ambos (0 y 1) simultáneamente.


Otro punto de vista interesante son las implicaciones que se tienen el tema en el clásico dilema del determinismo/indeterminismo (e.g. el demonio de Laplace) y las implicaciones de ello en el libre albedrío. ¿Sómos seres genuinamente dueños de nuestras decisiones, o sómos una reacción en cadena avanzando en el tiempo? Los fenómenos cuánticos nos muestran que el indeterminismo existe, y si bien no resuelven discusiones filosóficas irresolubles, nos dan para pensar al respecto.



Eso es todo por esta semana, cambio y fuera.



Week 1 - Rethink the way you think

posted Apr 13, 2015, 3:09 PM by Manuel Valle

Esta semana se nos dió una serie de recursos para leer y procesar. Cosas variadas con un tema en particular, repensar la manera en la que pensamos las cosas.

Scott Berkun

✔ http://scottberkun.com/2013/ten­myths­of­innnovation/ @done ✔ How Progress Really Happens https://www.youtube.com/watch?v=f2QEUIX18Ik @done ✔ Scott Berkun Lecture: The Myths of Innovation https://www.youtube.com/watch?v=amt3ag2B ✔ Scott Berkun: Creative Thinking Hacks https://www.youtube.com/watch?v=lP8eqi4vSvY @don

Scott Berkun tiene videos en los cuales habla desde como ejecutar presentaciones efectivas hasta los problemas de tránsito en Seattle, siempre manteniendo un enfoque pragmático y ofreciendo tips aplicables de forma inmediata. La mayoría de sus charlas se basan alrededor de las ideas y las creaciones.

En cada video desarrolla un tema distinto relacionado con la creatividad, siempre orbitando alrededor de un concepto base: “La creatividad es un tipo de trabajo”.

Y es que la creatividad se suele romantizar de tal manera que se suele ver como algo heroico, algo bohemio. Y no es que elevar el concepto de creatividad sea malo per se, el problema es cuando se eleva al punto que se escapa del alcance de nuestras mortales manos; cuando lo creativo se deja a “los creativos”, como si la creatividad fuera algo que se tiene xor nunca se tendra. Lo que el autor logra en sus presentaciones es que Metódico y Creativo dejen de dejar un sabor de antonimos en la lengua.

Al final de cuentas, como dice él, creativo viene de crear, y crear es un verbo. Así como en el desarrollo de software tenemos patrones de diseño, que nos permiten facilitar nuestro trabajo, este humano nos sugiere algunos patrones de pensamiento que nos ayuden a propiciar la fauna mental y materializar nuestras ideas. Algunos puntos interesantes que toca;

.


“Ideas are made of other ideas”. O como diría Kirby Ferguson, “Everything is a remix” (Frase con la que titula a su serie de videos, la cuál recomiendo si no la han visto [ http://everythingisaremix.info/watch­ the­series/ (http://everythingisaremix.info/watch­the­series/) ], está bastante curiosa; va a fondo analizando casos de ‘remixes’ en la música, cine, tecnología y otras áreas, ofreciendo un panorama amplio del mestizaje de ideas, creo que incluso analiza como la idea de ‘everything is a remix’ es un remix por si misma. Meta­remix). Un ejemplo es el de Henry Ford. Tanto la linea de ensamblaje como los automoviles ya existían, pero uniendolas bajo su visión logró causar un impacto en la industria en general, propulsando los modelos de producción en masa que usamos actualmente. Reinventó el mundo con su remix.

“Give your subconscious a chance”. O como diría Barbara Oakley, “Use your diffuse mode”. La maquinaría que cargamos sobre las cejas trabaja de manera distinta cuando estamos concentrados (aka focus mode) a cuando estamos divagando (aka diffuse mode). Ambos modos de pensar son excluyentes y complementarios (no puedes estar en los dos al mismo tiempo, pero necesitas de ambos). Alejarnos de los problemas nos permite trabajarlos en segundo plano, desde otra perspectiva.

“Pay attention at your enviroment and the influence it has over you” Esto incluye descubrir cosas como las horas a las que eres más creativo o el volumen de música que mejor se te adapta. Incluso elementos aparentemente inofensivos de nuestra dieta pueden cambiar nuestros niveles de energía y drenarnos un poco.

“Start an idea journal” Es natural que olvidemos las cosas. Si todo lo que pasa por nuestra mente quedara grabado pues que chulada (not really), pero no es así. Algún escritor mencionaba que “el que no tiene memoria, se hace una de papel”, y por ahí va este tip. El chiste es tener un lugar donde vaciar las ideas, por mas vagas que sean. Ofrecer asilo a las ideas fugaces que suelen ahogarse entre el resto de las cosas.

Además está el argumento de que el solo hecho de escribirlas (de preferencia a mano) es transformar ideas abstractas en movimiento, y con ello capturarlas con otra parte del cerebro. Por otro lado, vaciar nuestra mente en papel nos sirve para despejar nuestra limitada memoria de trabajo sin sacrificar a ideas inocentes.

.


Como extra, podríamos apuntar la hora de cada entrada y quizá encontrar patrones en nuestro ritmo creativo. Un tip que agregaría a esto es comenzar con una libreta pequeña si te cuesta trabajo. En lo personal antes lo había intentado hacer con hojas de cuaderno y no me funcionó bien. La hoja era muy grande y yo creo que me intimidaba dejar tanto espacio en blanco. Luego probé una libretilla de bolsillo, y fue genial. Con una oración podía sentirme satisfecho, o usar varias hojas para ideas más largas.

Esto y las to­do lists pueden hacer maravillas, pero es díficil hacerlo un hábito. Al menos yo no lo he logrado.

También me parece útil escribir lo obvio. Cuando me encuentro divagando, escribir “Estoy procrastinando” en una libreta, por más simple que suene, me ha ayudado para sacudirme y actuar.

[Me acordé de una entrevista que vi hace mucho tiempo. Se la hacían a un tipo llamado medio (muy) excentrico. Lo que este humano hacia era irse al fondo de su alberca (se iba al modo difuso) y si brotaban ideas interesantes las apuntaba ahí mero, con una libreta resistente al agua (su idea journal) (creo que decía que el se había inventado la libreta). Quizá buscar quedarnos sin oxígeno para liberar la mente sea too much, pero cada quien funciona diferente.]

“Solve the opposite problem” Una manera muy interesante para fomentar la participación en equipo. Intentar resolver un problema opuesto (e.g. diseñar la peor interfaz). El chiste es plantear una situación en donde cuanto peor sea una idea, mejor. De esta forma las personas pueden responder sin miedo a equivocarse. Prácticamente crea una caja de arena en donde equivocarse es bueno, y eso es congruente con lo que comenta en otra de sus pláticas sobre como una administración poco tolerante ante los errores mata la creatividad.

También aborda la creatividad desde la perspectiva de la empresa, elaborando en la idea de que la innovación es más sociología que tecnología. Esto refleja que los chops técnicos no lo es todo, se necesitan procesos y acciones concretas para crear un ambiente propicio para las ideas.

­­­­ ✄ ­­­­­­­­­­­­­­­­­­­­­­­

The Pretotyping Manifesto:

.


✔ The Pretotyping Manifesto https://www.youtube.com/watch?v=t4AqxNekecY @done

Before building it right, make sure you are building the right 'it'.

Alberto Savoia nos trae una propuesta, y no es que el concepto de validación de mercado sea algo que a nadie se le haya ocurrido jamás, pero Savoia tiene las ventajas de que viene de Google, ‘Pretotyping’ suena mas matón y se enfoca a un nicho en especifico (la tecnología).

Ofrece una categorización de los distintos tipos de pretotypes, que los hace más fácil crear. Estaría divertido el reto de idear un pretotype que no encaje en ninguna de las categorias.

El manifiesto en sí me parece estar muy orientado a un contexto empresarial/administrativo, con puntos como ‘spot the innovator’. En particular me gustaron los siguientes elementos:

Data beats opinion Pretotypes beat productypes Now beats later Doing beats talking

Savoia hace un buen trabajo justificando el por qué las ideas están sobrevaloradas. Otro individuo (Oliver Emberton) lo pone de la siguiente manera: "Please forget all of the

terrible deluded nonsense you've heard about the value of ideas. Ideas are

cheap, fleeting things; by itself a business idea is worth less than a half­

eaten sandwich. At least you can eat the sandwich."

Otro video que aborda el tema de la validación, pero con un enfoque más quick n dirty es “How to Start a Business and insult Engineers by @NoahKagan”: https://www.youtube.com/watch?v=BwbtSPQ8jAY (https://www.youtube.com/watch? v=BwbtSPQ8jAY) ). El enfoque es validar la idea 1) rápido 2) obteniendo ingresos 3) gastando lo mínimo posible. Aborda como ejercicio la validación de dos modelos de negocio interesantes; el de Netflix y Airbnb. Me parece que vale la pena checarlo si a uno le interesan esos rollo. ­­­­ ✄ ­­­­­­­­­­­­­­­­­­­­­­­

Malcolm Gladwell:

.


✔ Malcolm Gladwell: Choice, hapvendepiness and spaghetti sauce https://www.youtube.c ✔ Malcolm Gladwell: The unheard story of David and Goliath https://www.youtube.com/w ☐ Malcolm Gladwell discusses tokens, pariahs, and pioneers https://www.youtube.com/

Hace tiempo (~6 eternos años) me topé con un ensayo interesante. En el abordaban los casos de varios individuos que lograron cosas fantásticas en sus áreas. Recuerdo que entre otros mencionaban a la beatlemania y a motzart rajandole al clavicordio desde los 5. El caso es que el autor sostenía que todos estos seres mitológicos habían invertido más de 10,000 horas practicando su oficio. Lo más fuerte de la conclusión era que mientras más se escarbaba, más se encontraban motivos para pensar que todos los grandes habían tenido que pasar por ahí. Todos. Repentinamente lo inalcanzable se redujo a un número. Yo lo interpreté como Practica lo suficiente y puedes lograr cualquier cosa.

La idea resonó mucho en mi. Aún lo hace. Fue el punto de partida que me llevó al convencimiento de que el esfuerzo supera al talento, de que el ‘talento nato’ esta sobrevalorado y de que uno puede hacer lo que se proponga (si se pone las pilas).

Son ideas quizá desgastadas y fáciles de leer, pero las siento, me causan calor y cosquilleo.

El caso es que después me enteré que lo que había leido era sacado de un libro llamado “Outliers” de Malcolm Gladwell. Nunca leí el libro, pero el tema que toca me parece importante.

Las charlas linkeadas arriba me parecieron interesantes, pero poco importantes. Claro que estoy siendo injusto con él porque las abordé teniendo altas expectativas, pero en fin. Igual y de todo se puede aprender y sacar sabiduria de todos lados.

En “Choice, happiness and spaghetti sauce” aborda lo que de forma refranizada se podría decir como que cada cabeza es un mundo, y para gustos hay colores. No hay una variedad de producto que satisfaga a todo mundo y lo ideal es segmentar el mercado que se analiza. Al final llega de manera un poco awkward a la conclusion de que ese es el camino seguro a la felicidad verdadera. Claro que la diversidad y el avance social trae consigo es importante, pero el autor no lo pone tanto en esos términos y llega a la conclusión de manera muy forzada y desacoplada al resto del video.

.


En “The unheard story of David and Goliath” aborda el famoso mito desde una perspectiva sugerente: Goliat estaba en desventaja ante David desde el comienzo. Quizá se aleja un poco de cualquier posible interpretación metafórica cuando lo lleva al extremo y analiza las posibles condiciones médicas de Goliat debido a su presunta altura, pero de cualquier manera es curioso. Es como una respuesta de Quora hecha video. Lo más evidente que se puede sacar de este video es el hecho de que hay más de una manera de interpretar las cosas (e.g. la perspectiva que el pequeño pastor tenía las de ganar en contra de un gigante de acero es contraria al sentido común); además es una muestra de que no hay que juzgar a las cosas (ya sean personas o situaciones) solo por su aspecto superficial y sin considerar primero todo el contexto (en este caso Goliat subestimó el arma de su oponente),

En un contexto de desarrollo podríamos decir que se asemeja en el hecho de que David tenía la habilidad adecuada (i.e. la honda) para enfrentarse a un problema que de haberlo abordado de otra manera (e.g. cuerpo a cuerpo) hubiese sido sumamente complicado. Además de tener la habilidad tuvo la astucia de reconocer la oportunidad y el coraje para ofrecerse como voluntario. Resalta por lo tanto la importancia de prepararnos y refinar nuestras skills tal que nos faciliten algunas tareas en particular, así como buscar activamente la ocasión para aplicarlas y encontrar el valor para proponerlo a los demás a pesar de que les pueda parecer alocado. Quizá esté estirando un poco la liga con la analogía, pero pues aplica. ­­­­ ✄ ­­­­­­­­­­­­­­­­­­­­­­­

Inbox Zero:

✔ Inbox Zero https://www.youtube.com/watch?v=z9UjeTMb3Yk @done

El trabajo intelectual nace de la atención y del tiempo. Hay cosas que nos quitan ambas (en concreto se menciona el correo, pero se puede generalizar). Crear sistemas simples para lidear con ellas. En el caso del correo es mantenerlo en cero. Y por cero no se refiere sólo a cero mensajes sin leer, sino cero mensajes sin procesar (“Processing is more than checking, but less than responding”).

“Convert stuff into action”. Ésto último es lo que más me deja la plática, junto a su versión alternativa, más gráfica y provocadora “Don’t let things become exploding cats”.

.


­­­­ ✄ ­­­­­­­­­­­­­­­­­­­­­­­

Professor John Ousterhout’s lessons:

✔ https://www.quora.com/What­are­the­most­profound­life­lessons­from­Stanford­Professor­

Esta pregunta de quora reune algunas de las enseñanzas de John Ousterhout, un profesor de sistemas operativos en standford que cada viernes le suelta a sus alumnos nuggets de sabiduría. Aborda temas más (inter­/intra­)personales que técnicos y lo hace con un estilo de escritura que te hace sentir como si fuera alguien cercano. A mi parecer son consejos de mucho valor.

A little bit of slope makes up for a lot of y­intercept La idea es que no importa tanto el estado actual en el que te encuentres (aplicable a prácticamente cualquier cosa, por ejemplo competencia, conocimientos o crecimiento personal), si no la velocidad con la que mejoras.

Esto lo ilustra con lineas rectas. Si tenemos dos lineas rectas, no importa cuál de ellas esté por encima en un momento dado, siempre llega un punto en el que la recta con mayor pendiente (la que crece más rápido) supera a la otra y de ahí en adelante mantiene la delantera (claro que estan las excepciones de que las rectas no coincidan en ningún punto (paralelas) o que coincidan en todos (colineales), pero el consejo se mantiene).

Algunas de las conclusiones son; Enfócate más en aprender (tener pendiente positiva) que en preocuparte por tu estado actual. De ser posible aumenta la velocidad a la que aprendes (aumenta tu pendiente)

Y aquí viene la pregunta, ¿se puede generalizar un poco más este consejo?... será posible que, además de enfocarnos en la velocidad en la que mejoramos, intentamos poner empeño en mejorar la velocidad a la que mejoramos nuestras mejoras? (yo dawg.)

El consejo, parafraseado, es

"Para alcanzar el mejor desempeño en [alguna habilidad] procura *aprender*

constantemente sobre [dicha habilidad]" Entonces, el consejo aplicado a si mismo (como si estuviesemos sustituyendo una relación de recurrencia) podría decirse que es:

"Para alcanzar el mejor desempeño en [*aprender*] procura *aprender*

constantemente sobre [*aprender*]. Si aprender es la primera derivada, aprender a aprender podría considerarse la segunda, por lo tanto, si constantemente estamos mejorando nuestro modelo de aprendizaje (y aplicándolo, desde luego) entonces nuestra segunda derivada es positiva, y nuestra habilidad crece de manera cuadrática.

Scar Tissues Make Relationships Wear Out En esta reflexión toca el punto de las relaciones interpersonales y cómo se van desgastando. Me gusta el hecho de que se refiera a todo tipo de relaciones, sin limitarse a las románticas. El punto que hace es una analogía entre el tejido que se crea cuando se tiene una herida, el cuál aparece para llenar huecos, pero sin embargo es débil. Ese tejido sensible es equivalente resentimiento que se va acumulando con la interacción diaria. La forma que sugiere de abordar estas situaciones es evitar la formación del tejido debil atendiendo de forma adecuada a las heridas en su momento. Por atenderlas se refiere a llevarlas a un punto de cero fricción, y esa es para mi la parte más importante del consejo. Si surge alguna especie de problema con otra persona, trabajar hasta lograr llegar a un punto de cero fricción que prevenga la formación de resentimientos. Me pregunto cuál sería la implicación de esta enseñanza en el área intra­personal, cómo aplicarla. Esta es una de las cosas que más me dejo pensando de todas las lecturas/videos, me pareció una analogía fascinante y he procurado tenerla presente al encontrar fricción de cualquier tipo. Creo que los resultados de aplicar esto de forma constante deben de ser inmensos.

The Most Important Component of Evolution is Death Habla de como es importante que las cosas viejas se vayan para que lleguen cosas nuevas y continuar con el ciclo de la vida. El ejemplo dado es el de las empresas de tecnología que han estado cayendo en la bancarrota en los últimos años, y como esto no es necesariamente algo malo.

Simpatizo con el punto de vista del autor. Frecuentemente me pregunto acerca de ĺas desventajas de la retrocompatibilidad y en como a pesar de ser muy práctica y cómoda para el usuario, es una carga tecnológica que venimos arrastrando. Me pregunto cómo sería la tecnología si un dia decidieramos hacer un borrón y cuenta nueva. Rediseñar empezando del hardware y para arriba, y dejar de arrastrar malas decisiones de diseño, aplicando desde luego las cosas aprendidas durante los años (si no no tendría sentido).

.


Aunque romper con todo lo establecido sería caótico y podría resultar en una experiencia muy desagradable si no se hace de forma correcta (podríamos acabar con un peor diseño, o perder las dulces ventajas de la lenta estandarización que hemos obtenido y terminar con un caldo de cosas distintas, como en los viejos días en los que el teclado de una computadora no podía funcionar en otra, o cuando cada celular tenía un cargador diferente). Ademas nunca llegaríamos a una versión perfecta, eventualmente se llegarían a trade­offs ineludibles en donde perderíamos alguna característica en pos de otra, y no podemos asegurar que la elegida sea la mejor (o que haya una mejor para empezar). Entonces, la retrocompatibilidad es desde luego práctica, pero deshacernos de ella puede ser igual de propositivo. Como usuarios deberíamos de mantener esto en mente y si alguna vez alguno de nuestros productos pierde retrocompatibilidad (con una respectiva mejoría que lo justifique y que no sea sólo por la cuestión de vender más) ser más comprensibles con ello, dejar que la tecnología avance, se renueve y evolucione.

Can you choose your personality? Habla sobre como la personalidad no es algo que se nos impone, si no algo que nosotros creamos. Si, seguramente muchos aspectos de nuestra forma de ser están condicionados por nuestro balance químico, pero una cuestión que a veces me cuestiona es, ¿es nuestra química la que define nuestra forma de ser o en realidad nuestras forma de ser regula gradualmente nuestra química? una cuestión medio huevo­gallinezca. Independientemente de la respuesta, lo que es un hecho es que podemos modificar (de preferencia mejorar) nuestra forma de ser. La sugerencia es tomar las cosas que nos agraden de las personalidades ajenas e integrarlas a nuestra propia idiosincracia. También funciona en sentido inverso, podemos detectar las cosas que no nos gustan de los demás y ver en que medida son actitudes que también tenemos.

Es algo de tremenda fortaleza, pero fácil de perder de vista, pues no ocupamos hacer ningún esfuerzo enorme para ‘usar’ nuestra personalidad, al grado de perder consciencia sobre algunos aspectos de ella. Me recuerda a una metáfora de David Foster Wallace en donde dos peces charlan, y uno de ellos no sabe que es el agua; estar tan inmerso en ella le hizo no darse cuenta de que existía.

­­­­ ✄ ­­­­­­­­­­­­­­­­­­­­­­­

The birth & death of Javascript:

.


✔ THE BIRTH & DEATH OF JAVASCRIPT https://www.destroyallsoftware.com/talks/the­birth­and

Gary Bernhardt entrega una plática con una narrativa interesante. Es el año 2035 y el 60% de los desarrolladores usan un lenguaje de programación llamado Metal. Dicho lenguaje ficticio no pudo haber nacido de no ser por un lenguaje con las fortalezas y debilidades de javascript. Además presenta una mejora del 4% con respecto a codigo nativo. Esto lo logra a partir de algunas mañas algo rebuscadas pero fundamentadas.

El argumento es que la seguridad del hardware produce demasiado overhead, que de ser abordado por software se vería disminuido en un 20~30%. Lo que me saca un poco de onda es que en lugar de solucionarlo rediseñando la base, la propuesta es sacarle la vuelta a esto corriendo una máquina virtual y en ella simular las cuestiones de seguridad y ahí obtener la mejora. A como lo veo es como si hubiera un problema en los cimientos y la solución sugerida fuera construir más alto. Seguramente estoy pasando por alto algo en su argumento, o quizá sólo fue una herramienta literaria, para darle más profundidad a la historia, como la buena ciencia ficción.

En fin, el rollo es que javascript es la lingua franca de la web y siendo turing completo en teoría es capaz de correr todo. El autor se basa en ello para ofrecer una historia interesante y bastante informativa. Mensaje (no tan) subliminal; javascript está maldito desde su nacimiento, pero aún así su impacto y útilidad son tremendas, lo que lo hace un bloque fundamental del presente y futuro cercano.

[El formato de la charla (la narrativa abordada desde el punto de vista de alguien que no es de esta epoca) me recuerda mucho a “The Future of Programming” de Bret Victor [http://vimeo.com/71278954 (http://vimeo.com/71278954)]. Es una plática buenísima sobre la evolución (y estancamiento) de los lenguajes de programación. Ese tipo, Bret Victor [http://worrydream.com/ (http://worrydream.com/)] es un crack. Sus pláticas, posts y proyectos son como magia, su manera de ver la interacción humana ya sea con ideas o con interfaces (sean físicas o virtuales) es bastante interesante. Hay algunos proyectos que toman sus ideas y se ven como un buen camino para el futuro de la interacción (e.g. light table, frogatto editor). Lo recomiendo ampliamente a cualquier fan de la programación, la inovación y las ideas meneadoras. Un buen lugar para empezar es en Inventing on principle [http://vimeo.com/36579366 (http://vimeo.com/36579366)]. Ahí les dejo el spam :P cambio y fuera!] ­­­­ ✄ ­­­­­­­­­­­­­­­­­­­­­­­


1-3 of 3