Master on Libre Software Planet

February 06, 2016

Andrés Maneiro

Los mundos de Ursula K. Le Guin

Acabo de apoyar la realización del documental sobre la vida y obra de Ursula K. Le Guin. Si te han gustado sus novelas, no hay mejor momento que ahora para colaborar con este proyecto. Si todavía no la conoces, te recomiendo que le eches un ojo a Los desposeídos o La mano izquierda de la oscuridad.

by Andrés at February 06, 2016 12:08 AM

February 05, 2016

Andrés Maneiro

La mano izquierda de la oscuridad

Esta novela de Ursula K. Le GuinTheLeftHandOfDarkness1stEd fue publicada en 1969. Ambientada en el planeta Gueden (llamado también Invierno porque su superficie está siempre helada), la historia narra la visita de Genri Ai, un diplomático que tiene por objetivo conseguir la adhesión del planeta al Ekumen, algo así como una alianza interplanetaria para fomentar el libre comercio e intercambio de ideas.

Aunque en todo el planeta hay un cierto desarrollo tecnológico e industrial, las civilizaciones que lo habitan no han desarrollado conocimiento (ni imaginación) para volar y mucho menos saben de la existencia de otros seres en el universo más allá de sí mismos y los dioses que los acompañan. Las dos organizaciones más grandes del planeta son Karhide (un estado en fase tribal) y Orgoyen (un estado que está en fase de desarrollo de la capa funcionarial y burocrática).

Los habitantes de Gueden tienen varias características especiales, la primera de ellas es que son andróginos y hermafroditas: no tienen un sexo definido, sino que una vez al mes entran en celo y desarrollan un sexo. Cualquier persona puede ser un hombre en un ciclo y mujer al siguiente; de igual modo, cualquiera puede dar a luz. La segunda es que tienen un sistema muy sofisticado de orgullo personal (el shifgredor) pero no conocen la violencia organizada, las guerras y las luchas en grupo. El shifgredor vendría a ser algo así como la sombra de uno, su karma o capacidad de influir en los demás, también el respeto que le tienen. Han desarrollado por ello grandes habilidades diplomáticas y se puede decir que son incapaces de mentir, aunque juegan con las medias verdades.

A nivel narrativo, la tarea de Genri es doble: convencer a Gueden de las ventajas de unirse al Ekumen y sobrevivir a las intrigas que ponen en riesgo su vida. El personaje sirve, además, de conducto para que Le Guin nos presente unas cuantas ideas interesantes:

  • ¿Qué ocurre en una sociedad donde nadie es completamente hombre ni nadie mujer? Es sin duda un libro para darse cuenta de los costes sociales asociados al género: se habla de sexo, de cualidades masculinas y femeninas, de maternidad y paternidad, etc.
  • ¿Cuáles son los beneficios del libre comercio e intercambio de ideas? Genri, como diplomático del Ekumen que desea firmar algo así como un Tratado de Libre Comercio, está despojado de la visión colonialista de los humanos que llegan al mundo Bosque y la lógica extractiva de lo que hoy día conocemos como TLCs. Eso permite algunas conversaciones muy ponderadas sobre el desarrollo humano asociado al mercado, escondidas bajo la lógica de la liga internacional de mundos.

Tanto esta novela como Los desposeídos me parecen pequeños laboratorios humanos, ejercicios de investigación sociológica. Son obras que, a pesar de haber sido escritas en plena época hippie, han desarrollado de manera muy madura temas complejos como la anarquía, el rol del libre comercio en el desarrollo o la perspectiva de género. Me atrevería a decir que son novelas muy del siglo XXI. Son entretenimiento puro, que nos hace pensar sobre otros mundos posibles, en todas sus dimensiones, con sus problemas e incentivos, firmadas por la gran maestra en la creación de utopías ambiguas.

by Andrés at February 05, 2016 11:54 PM

February 01, 2016

Andrés Maneiro

Dangerous UI team

The dangerous “UI team”, de Havoc Pennington. Nos recuerda que, para hacer productos, necesitamos equipos que resuelvan problemas.

by Andrés at February 01, 2016 06:52 AM

January 30, 2016

Andrés Maneiro

En las PYMES hay futuro

En las PYMES también hay futuro es un artículo que pone sobre la mesa las ventajas de trabajar en pequeñas empresas (que aglutinan el 74% del empleo de España y son el bastión contra la crisis): mayor autonomía y perfiles pluriespecialistas, en un entorno que necesita la innovación continua para sobrevivir.

by Andrés at January 30, 2016 02:12 PM

January 29, 2016

Andrés Maneiro

Las raíces de la longevidad

Want Great Longevity and Health? It Takes a Village, presenta las cosas que tienen en común las poblaciones que él llama «blue zones», las regiones con mayor longevidad del planeta (que presentan además menor índice de enfermedades asociadas al envejecimiento: cardiovasculares, artitris, psiquiátricas, etc): actividad física moderada a diario, sentido de propósito en la vida, balance vida/trabajo, relaciones intercomunitarias fuertes, dieta basada en legumbres y verduras con baja presencia de carne.

También ha presentado alguna charla en TED:

by Andrés at January 29, 2016 06:55 PM

January 25, 2016

Andrés Maneiro

Spotify agile revisited

Una actualización de un viejo paper sobre cómo Spotify crea su producto de una manera ágil [PDF]. El proceso está orientado a minimizar su mayor riesgo: crear el producto equivocado.

Captura de pantalla de 2016-01-17 13:11:26

by Andrés at January 25, 2016 07:04 AM

January 20, 2016

Andrés Maneiro

Color practice

Color practice es una aplicación web y para móvil que contiene puzzles de color. Figuras que bien formadas son escaleras de colores en brillo y saturación.

color_practice

by Andrés at January 20, 2016 01:59 PM

January 19, 2016

Andrés Maneiro

Libro sobre desarrollo de software en una PYME

Estos días me he dado cuenta de que en 2015 he escrito sin proponérmelo un ensayo sobre la vida en una PYME de desarrollo de software del que me siento muy orgulloso. Está en las 7.400 palabras. Para convertirlo en librito convendría incluirle un glosario como anexo, para suplir la falta de enlaces complementarios. También hacer algo de trabajo para homogeneizar la lectura y eliminar la necesidad de los videos. ¿Algún consejo sobre edición, longitud, maquetación, las gestiones para conseguir el ISBN, etc?

by Andrés at January 19, 2016 09:30 AM

January 18, 2016

Andrés Maneiro

5 pasos para una navidad de la abundancia en 2016

Este post es una propuesta de actividad/proyecto para el club indiano a lo largo de 2016. Recupera una inquietud que me surgió hace un par de navidades y que tuve que dejar de lado en éstas. Me gustaría retomarla y me parece que es más divertido con amigos!

La idea fundamental es diseñar productos inspirados en la idea de la abundancia, que nos guste regalar o con los que decorar nuestras casas en navidad. Por ejemplo: árboles de navidad controlados por arduino, una serie de postales sobre la abundancia navideña, broches para vestir durante las cenas, etc. Las posibilidades son infinitas! Al igual que infinitas las maneras de implicarse o las herramientas que se pueden usar: escribir un post sobre los mitos navideños o enviar comentarios, hacer un sketch de arduino para controlar luces y sonido, diseñar una línea gráfica o música para el producto, dedicar un tiempecito a manualidades, etc.

Para organizar los esfuerzos, os propondría una serie de fases:

  1. Las raíces de la abundancia en la navidad (online)
    • Tiempos: hasta Abril.
    • Objetivo: entender la ritualidad y mitología navideña, el origen de los objetos que usamos (árboles, luces, postales, cenas, etc), con un enfoque en la investigación de la abundancia.
    • Qué se necesita:
      • persona/equipo que dinamice la búsqueda de referencias y escritura de posts públicos.
      • los demás, aportaríamos en forma de comentarios, nuevas elaboraciones sobre las propuestas del dinamizador, etc.
    • Resultado:
      • aprendizaje general.
      • un ebook con las investigaciones que le correspondería comercializar a la persona/equipo dinamizador.
  2. Los objetos de la abundancia I (online + encuentro)
    • Tiempos: Abril / Junio.
    • Objetivo: ideación de productos.
    • Qué se necesita:
      • persona/equipo que recoja las investigaciones de la anterior fase y explore ideas concretas de productos.
      • persona/equipo que organice un encuentro con uno o varios expertos a principios de verano, que ayuden a elaborar las ideas seleccionadas.
    • Resultado:
      • aprendizaje general gracias al encuentro con expertos donde todo el mundo puede participar.
      • catálogo navideño de ideas locas para la abundancia! :)
      • selección de 1 o varias ideas a desarrollar y formación de equipos para desarrollarlas.
  3. Los objetos de la abundancia II (online)
    • Tiempos: Junio / Otoño.
    • Objetivo: elaboración de los productos seleccionados.
    • Qué se necesita:
      • que los equipos desarrollen las ideas.
    • Resultado:
      • prototipo funcional, que le correspondería comercializar a cada equipo.
      • documentación para que pueda ser replicado por otros.
  4. Somero: presentación de prototipos (encuentro)
    • Tiempos: ¿Otoño?
    • Objetivo: presentar en sociedad los prototipos.
    • Qué se necesita:
      • que al menos alguien de cada equipo participe en el Somero!
    • Resultado:
      • recibir feedback sobre los prototipos de gente con muchas ideas
  5. Navidad: testeo en el mundo real! (online)
    • Tiempos: Otoño / Navidad.
    • Objetivo: completar los prototipos y/o tener una pequeña tirada para regalar/decorar nuestras casas.
    • Qué se necesita:
      • que los equipos desarrollen las ideas.
    • Resultado:
      • una navidad de la abundancia!

Una organización así requiere un poco de esfuerzo, es verdad. Pero me parece que es posible hacer algo de lo que nos sintamos orgullosos sin comprometer el resto de nuestra vida y trabajo. Además me parece modular, ya que uno puede tener interés y disponibilidad para participar investigando sobre los mitos (por poner un ejemplo), pero no en las siguientes fases -o viceversa. Aunque es una actividad cultural y de juego, a la vez permite ir generando proyectos que pueden ser comercializables a futuro.

Cómo yo podría participar

La propuesta implica 1 encuentro a principios de verano, a mayores del Somero (¿en Otoño?). Todo lo demás sería online. Creo que es compatible con otras propuestas, donde me veo más participando que dinamizando.

Considero que estoy flojo para hacer una buena fase inicial de mitología/ritos y estoy deseoso por oir que a alguien le apetece liderar esta parte! Para las siguientes fases, yo me puedo comprometer a tirar más, pero evidentemente hay espacio para mucha más gente y equipos.

¿Y vosotros, os véis colaborando en algo así?

by Andrés at January 18, 2016 02:22 PM

Cómo trabajan en Treehouse

Aumentar la productividad en jornadas de 32h/semana. Sus claves: eliminar los emails internos y las reuniones, prescindir de los managers y aceptar que los proyectos se hacen si hay gente interesada internamente en hacerlos.

by Andrés at January 18, 2016 05:52 AM

January 16, 2016

Andrés Maneiro

Arquitecturas para la participación

Este post cierra la serie que inicié hace unos meses sobre desarrollo de software en una PYME. En el primer post, escribría sobre cómo seleccionar tecnología; en el segundo, sobre un mecanismo para objetivar el diseño y reducir los costes de producción. En este último escribiré sobre cómo la organización del código que escribes habilita relaciones con otros.

Programar es una comunicación entre personas

«Programs must be written for people to read, and only incidentally for machines to execute»

Esta frase extraída del prólogo del mítico SICP es una de las perlas que, entre los hackers, define el buen hacer de la profesión y que pone sobre la mesa toda una declaración de intenciones por parte de Abelson y Sussman: la programación es un nuevo medio de comunicación y expresión de ideas entre personas. De este enfoque se deriva que lo fundamental a la hora escribir programas de software es hacerlo de tal manera que nuestros limitados cerebros puedan navegar rápidamente entre los múltiples detalles, con sus distintos niveles de complejidad.

Al escribir código, un primer nivel de comunicación se daría entre programadores (con otros o con nosotros mismos dentro de unos meses). La buena o mala comunicación de las ideas a través del código tendría un impacto económico que se observaría en los tiempos necesarios para la adaptación, mantenimiento y aprendizaje de un programa. Entender un programa es un acto intelectual donde entra en juego la experiencia previa, la capacidad de relación de ideas y la compresión lectora, pero también la buena maña del que lo haya escrito para hacerlo de un modo inteligible. Al igual que un ensayo, un programa requiere cohesión interna y ritmo para ser entendible.

Un segundo nivel de comunicación se daría entre programadores y analistas del dominio y/o clientes. Ese tipo de conversaciones modela cómo se comporta el sistema y se transmiten al código en forma de estructuras de datos y algoritmos.  Un programa no es más que la declaración de un proceso que tiene entradas y salidas.

El hecho de que el software refleje estas relaciones sociales es conocido desde hace décadas y cristaliza en una de las más populares leyes de la programación, la ley de Conway:

«Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.»

Es decir, las conversaciones, grupos y jerarquías existentes en el proyecto se trasladarán al código de manera inevitable. La arquitectura reflejará tu estructura de comunicación y poder, determinando el tipo de relaciones que puedes tener con tu entorno. Toda una profecía ciberpunk.

Pero … ¿cómo habilita o dificulta relaciones la arquitectura?

Una PYME pequeña funciona como una comunidad: aunque existen roles y división de responsabilidades (diseñador, programador, administrador de sistemas, analista), hay mucho de pluriespecialismo. Además, por el propio tamaño de empresa, en muchas ocasiones existen proyectos que se realizan con otros equipos. Existen arquitecturas o maneras de modularizar el código que te permiten que esa división del trabajo sea más efectiva. Veamos algunos ejemplos:

Diseño orientado al dominio

La programación es fundamentalmente la transcripción de las conversaciones entre programadores y analistas. Es necesario tener un un lenguaje común y existir entendimiento entre ambos para que la cosa salga bien. Una de las prácticas que más me ha ayudado a organizar el código es el diseño orientado al dominio, es decir: organizar el código en torno a la interacción de las entidades que se definen en la conversación analista-programador. Aunque parezca una obviedad, no lo es, tiene sus trampas y se hace menos de lo que parece. El impacto de esta práctica deriva de cómo facilita las conversaciones y el entendimiento del programa.

Separación de API e interfaz

Esta técnica, conocida ya por los pioneros, ha retomado fuerza en la era de la web ubicua y la arquitectura REST. Con este mecanismo de modularización, el API define el acceso a datos y acciones que permiten usar el sistema. El interfaz es un mero usuario del API. Además de beneficios técnicos, esta frontera tiene beneficios sociales: facilita una división del trabajo en aspectos muy distintos de la aplicación, que requieren conocimientos, técnicas y herramientas diferentes. Esto permite que la colaboración diseñador-programador sea más fluida.

Hay 2 ejemplos que ilustran muy bien mi experiencia. En ciertos proyectos donde creamos formularios para la introducción de datos con una aplicación de escritorio, aplicar este principio nos ha permitido que nuestros analistas (repito: analistas, no programadores ni diseñadores) hayan diseñado por sí mismos los formularios que luego los programadores integran en la aplicación. En otros proyectos, hemos contratado a empresas para que nos ayudasen a crear un API mientras nosotros nos centrábamos en el diseño de la interfaz (y viceversa). Ambas situaciones serían muy complejas de delegar (o casi imposibles) si no hubiésemos hecho un uso intensivo de este principio a la hora de desarrollar el producto.

Creación de plugins o módulos

Otra manera muy evidente de crear espacios para la colaboración es permitir añadir nuevas funcionalidades a tu software mediante la creación de plugins o módulos. Este tipo de arquitectura minimiza la barrera de entrada para que nuevos colaboradores puedan ser productivos muy pronto, ya que no necesitan conocer todo el proyecto antes de incluir una funcionalidad, sino que les basta con conocer sólo lo que necesitan.

En nuestra experiencia colaborando con un proyecto empezamos por el desarrollo de pequeñas extensiones o plugins con funcionalidades limitadas. Pasados unos meses, nos sentimos cómodos y con conocimiento suficientes de ciertas partes internas de la aplicación como para modificarlas y enviar mejoras. Los primeros plugins fueron exploratorios, nos permitieron familiarizarnos con el código y el producto; una vez confiamos, nos lanzamos a cosas mayores. Fue precisamente un aspecto técnico (la creación de plugins) el que nos habilitó para iniciar una relación comercial con el proyecto: de no existir esa posibilidad al principio, se nos hubiese hecho muy difícil como PYME invertir todo el tiempo necesario para entender un proyecto tan grande.

Estos son algunos ejemplos de cómo la arquitectura habilita o impide relaciones, pero existen otros miles de pequeños detalles. La modularización del código es fractal, influye en todas las capas de la aplicación.

Conclusión

El programador es, principalmente, un organizador de ideas y un ensayista. Necesita cierta capacidad lógica para analizar y diseñar un sistema, pero también para organizarlo de manera que habilite buenas conversaciones y una división del trabajo efectiva. Necesita entender a las personas con las que trabaja.

Por ello no me parece casual que Kent Beck, el gran recuperador de ideas de nuestra generación, apuntase que uno de los factores con más impacto a la hora de ser un buen programador es la empatía.

 

 

 

by Andrés at January 16, 2016 09:06 PM

January 15, 2016

Andrés Maneiro

Nacho Varela

Diferencias entre scripts Bash (gnu/linux) y Batch (windows)

Si estás acostumbrado a un lenguaje de scripting y tienes que trabajar en otro resulta muy engorroso y desesperante. 

Para echar una mano en este cambio, me ha sido muy útil el anexo de la guía "Advanced Bash-Scripting Guide" siguiente:


En ella, el autor Mendel Cooper expone mediante una tabla las equivalencias de palabras clave, sintaxis básica, variables y operadores. También se recogen equivalencias de programas o comandos básicos para mover y renombrar ficheros, listar un directorio, etc.

 Ánimo!

by Nacho Uve (noreply@blogger.com) at January 15, 2016 01:52 AM

January 14, 2016

Andrés Maneiro

William Morris para makers

William_Morris_age_53

«To give people pleasure in the things they must perforce USE, that is one great office of decoration; to give people pleasure in the things they must perforce MAKE, that is the other use of it.»
— William Morris, The lessert arts

Morris en el siglo XIX

William Morris vive entre 1834 y 1896, entre la primera revolución industrial y la segunda.  Es decir, un período donde los beneficios de la primera industrialización no eran visibles pero sí toda su dureza (horas interminables en trabajos alienantes, ciudades no preparadas para la masificación y que se convierten en cultivo para las epidemias, etc). Por entonces, el corazón de Inglaterra es el BlackCountry, donde se ambientan las novelas victorianas de Dickens. Las arterias, son las vías de tren, que estallan en la crisis a mediados de siglo.

Es por ello que la vida de William Morris puede leerse como un resumen de los debates y fuerzas que latían bajo el siglo XIX, una sociedad de incipiente capitalismo industrial y moral victoriana. A lo largo de su vida, trabajó dos ideas básicas: por un lado, una teoría del consumo fundamentada en dotar de sentido y belleza a los objetos de la vida cotidiana; por el otro, una teoría de la producción que se sustentase en la recuperación del placer en el trabajo.

Morris y el consumo

«I do not want art for a few, any more than education for a few , or freedom for a few.»

— William Morris, The lessert arts

A mediados de siglo, culminan los esfuerzos de Henry Cole por organizar la primera exposición internacional industrial y de comercio, «The great exhibition» en 1851, que fue todo un éxito: 14.000 expositores, 100.000 artículos en exposición, 6 millones de visitantes. Aunque la idea es francesa sólo un país con debates sobre libertad de comercio recientes como Inglaterra estaba preparada por entonces para llevarla a cabo. El mismo Cole, veía la exhibición como la muestra de que Inglaterra estaba preparada para el libre comercio y la primera globalización.

Pero para Cole la exposición era también un impulso a lo que él mismo había iniciado dos años antes con la publicación de la revista «Journal of design and manufacturers»: estimular el debate del diseño en la producción en serie. En este aspecto, la exhibición fue polémica. Muchos la consideraron un horror, la confirmación de que la deshumanización del trabajo que supuso la industrialización no podía producir cosas bellas. De fondo, lo que se estaba rumiando era un debate estético: ¿son las bellas artes (pintura, escultura, …) y las artes decorativas (orfebrería, cerámica, textiles, …) la misma cosa? ¿es posible que la producción en serie integre la belleza?

Owen Jones, uno de los pioneros del diseño, decía que la decoración de los objetos no era importante:

«Ornament must be secondary to the thing decorated, wallpapers and carpets must not have any patterns suggestive of anything but a level or plain.»

Era algo que se hacía a posteriori, una vez la pieza está acabada. El barniz.

Morris, sin embargo, consideraba que la búsqueda de la belleza trascendía el arte y las actividades artísticas (pintura, escultura, etc), que el diseño de los objetos importa. Esta declaración es lo que pone a Morris en el árbol genealógico del diseño industrial. Según él, el objeto en sí mismo porta contextos y la relación que tenemos con ellos debe tener significado. La felicidad no estaría en el número de objetos que poseemos, sino en la belleza y significado que tengan. Critica, además, cómo esa diferenciación entre bellas artes y artes decorativas favorece la creación de clases sociales: los artistas, que serían personas intelectuales, gentilhombres y profesionales; los artesanos, que serían mano de obra asalariada que cobran por semanas.

Se consolida así en Morris el deseo de producir objetos bellos, de calidad y duraderos que puedan ser asequibles para todos.

Morris y la producción

De formación arquitecto, la vida de Morris es en realidad la de un renacentista: diseñador de interiores, tipógrafo, poeta, traductor, escritor de novelas de ciencia ficción, pintor, fundador de la Sociedad por la Recuperación de edificios históricos, etc. Aunque quizás por lo que hoy en día más se le conoce es por haber sido uno de los fundadores del movimiento Arts&Crafts. Y todo empezó con una casa.

Con motivo de su boda, consigue reunir a sus amigos para construir una nueva vivienda familiar como regalo a su esposa, la Red House.Philip_Webb's_Red_House_in_Upton

Al acabarla, unidos por el sentimiento cooperativo y el juego que ha supuesto esa creación inician una empresa conjunta de diseño de interiores que todavía hoy existe, y que se consolida en los siguientes años como la Morris&Co. Es en esta compañía en la que Morris puede aplicar las ideas renacentistas del trabajo desarrollando una teoría organizativa que bebe de los gremios medievales:

  • orgullo por el trabajo bien hecho
  • una relación maestro/aprendiz en las relaciones internas
  • productos de calidad, duraderos y con sentido hacia el mercado

Aunque Morris no era un ludita, consideraba aberrantes las condiciones de trabajo industriales que ponían al hombre al servicio de la máquina, desconectaban al artesano de su relación con los objetos y desposeían de placer al trabajo mismo. Tampoco era ajeno a que la industrialización suponía que el capitalista era el que tenía la relación con el mercado, no el trabajador/artesano.

Es decir, la lectura que hace Morris de la industrialización es que supone una pérdida de independencia que la clase media había ganado en el medioevo.

Morris como activista y filósofo

Morris se define a sí mismo como un socialista constructivo, que ofrece esperanza frente al socialismo destructivo que piensa que la situación actual es insoportable y horrible y la manera de superarla es conmover la sociedad a golpes hasta que se tambalee y caiga. Su objetivo es la búsqueda de la abundancia para todos:

El progreso y victoria sobre la naturaleza para generar riqueza es clara en nuestra época. Todos deberíamos ser ricos. Sin embargo existe un gran masa social explotada que no puede acceder a los bienes más básicos y muchos otros que no pueden perseguir sus disfrutes y deseos para los que la civilización es mezquina y torturadora. Los frutos del progreso nos han sido robados, impidiendo el disfrute de las tres esperanzas.

A nivel político, plantea una visión muy moderna que desarrolla principalmente en «Cómo vivimos y cómo podríamos vivir»: la competencia comercial entre naciones lleva a la guerra, la colonización y al desaprovechamiento de recursos. Como alternativa, propone una aldea global con producción y distribución coordinada en calidad/cantidad, libre comercio y movilidad de personas y el renacimiento social basado en el empoderamiento e independencia de la clase media.

A nivel individual, considera que existen 3 facetas principales que nos harán personas plenas:

  • Esperanza del descanso, o de reposar lo suficiente: seremos mejor que las bestias.
  • Esperanza de obtener un buen resultado y disfrutar de lo realizado: seremos mejor que las máquinas.
  • Esperanza por tener placer en el propio trabajo: seremos hombres.

Su programa político podría definirse como la subordinación del trabajo y capital a las necesidades de la comunidad a la que sirve. No producir objetos inútiles o sin sentido, no crear tareas vacías o no gratas.

Morris en los albores del mundo maker

Hay varias lecciones que podemos aprender de la historia de Morris:

  • la clase media como esperanza: si el cambio productivo significa algo es ganar la capacidad de vender productos diseñados por nosotros mismos en un mercado global. Es decir: apostar por la globalización de los pequeños. El enfoque es recuperar la autonomía que se perdió en la industrialización.
  • el diseño en el centro: fue medio siglo después de que Morris apostase por el diseño en los objetos cotidianos, que las modernas escuelas de diseño rusa (Vkutemas) y alemana (Bauhaus) consiguieron imponer su legado. Hoy, como entonces, el diseño es el centro de la producción.
  • productos, no artesanía: si bien el movimiento Arts&Crafts acertó el diagnóstico (integrar el arte en la producción de objetos cotidianos), erró en la receta (quedar al margen de la industrialización y la producción en masa). Fueron empresarios como Thonet, con 50 millones de sillas vendidas entre 1859 y 1930, los que llevaron su arte a las clases populares, siendo la gran tragedia de Morris (y una de las razones por las que abandonó la empresa) que su base de cliente fuesen las clases adineradas. Aunque no eran luditas, sí tardaron en crear un discurso favorable al uso de tecnología e introducirlas en su trabajo, y eso impidió que sus ideas de organización del trabajo y la sociedad tuviesen mayor recorrido.

El mundo de Morris tiene muchas similitudes con el nuestro. Vivimos, al igual que él, en un futuro muy steampunk.

by Andrés at January 14, 2016 12:44 PM

January 12, 2016

Andrés Maneiro

2 historias para recordar la Alemania nazi

Hoy os quiero recomendar 2 películas basadas en hechos reales sobre la Alemania nazi:

Valkiria Los_falsificadores

Valkiria narra los hechos del atentado del 20 de Julio de 1944 contra Hitler por parte de cuadros del ejército alemán. Visibiliza parte de la resistencia alemana descontenta con las atrocidades del régimen, pero también con ciertas decisiones militares y el instinto de supervivencia de otros (que ven cómo el Reich está a punto de desmoronarse y no desean estar en el bando perdedor).

Los falsificadores es una película diferente. Ambientada en el campo de concentración de Sachsenhausen, cuenta la historia de un grupo de prisioneros a los que usaron para falsificar moneda con la que financiar la guerra en la llamada Operación Bernhard. El nudo de la película es el debate interno que tienen entre salvar su vida y privilegios en el campo continuando con la falsificación o poner trabas a la falsificación para minar otra de las fuentes de financiación nazi y acelerar el fin de la guerra.

Ambas nos recuerdan el peligro de la historia única. El hecho de que el monstruo haya sido tan grande y se haya construido sobre la inacción, nos hace olvidar lo atrevido que era rebelarse en un régimen como el nazi.

by Andrés at January 12, 2016 08:23 AM

January 11, 2016

Andrés Maneiro

December 30, 2015

Andrés Maneiro

The roles trilogy

La consultoría cooper, una de las referencias del sector, ha publicado un artículo que podría pasar desapercibido con facilidad: the roles trilogy. Dice que el diseño de un producto depende de la conjunción entre análisis de negocio, diseño y desarrollo.

by Andrés at December 30, 2015 04:50 PM

Una visita al Cooper-Hewitt

Aprovechando mi reciente visita a Nueva York para el CB15, hice una parada en el Cooper-Hewitt. Además de la mejor colección permanente de diseño de todo Estados Unidos, tenía un par de exposiciones que me interesaban: Pixar: the design of story y How posters work.

El Cooper-Hewitt

El museo nace de iniciativa privada, impulsado por las nietas de Peter Cooper bajo la tutorización de la Cooper Union for the Advancement of Science and Art, que nació como el primer club y luego universidad pública de Estados Unidos. La historia de este político, inventor e industrial es interesante por sí misma, al igual que la del Cooper Union.

Se dice que Sarah, Eleanor y Amy tomaron la inspiración del VAM londinense, fundado a mediados del siglo XIX, durante la revolución industrial y, al igual que éste, nace con el encargo de extender la cultura del diseño en el país.

El museo en sí es pequeño, aunque la colección se podría decir que tiende a infinito. Tienen, pues, un problema y las soluciones que han diseñado para resolverlo son interesantes. Por un lado, en su web, tienen una sección llamada “Object of the day” que destaca uno de los objetos de la colección. Permite, además, buscar objetos relacionados por ciertas temáticas y etiquetas.  En el museo, esta exploración se puede hacer mediante la mesas digitales y otros dispositivos donde juegas con formas, la inmersion room, etc:

Pero quizás lo más interesante del museo sea la experiencia pre y post-visita. Esto es algo que he visto por vez primera en el Cooper-Hewitt. Con la entrada, generan un código único para tu visita que luego puedes ver online. Durante tu visita, puedes guardar elementos en tu cuenta online interactuando con un bolígrafo digital que recibes con la entrada: con él puedes usar las mesas digitales para hacer tus propios diseños (dibujos de personajes de Pixar, muebles, etc), seleccionar objetos durante la visita, etc. Al llegar a casa, te conectas con el código que te han dado y puedes ver todo lo que has guardado.

Por otro lado, ciertas exposiciones como la de How Posters Work, tienen una experiencia pre-visita inmejorable.

Las exposiciones

Las expos temporales fueron de lo más divertido. Quizá la de Pixar sea la más atractiva para el público general por lo que significa aprender e interactuar con los personajes de pelis que nos han enamorado. Actividades para diseñar tus personajes, herramientas para entender el proceso de diseño de Pixar, etc. Aunque a mí, sólo por ver la evolución gráfica o las inspiraciones que tuvieron para diseñar los escenarios de Los increíbles ya habría valido la pena. Además de ver todas sus pelis he estudiado cómo trabaja Pixar así que puede que no sea muy objetivo.

Lou Romano, colorscript,

Sin embargo, originalmente la visita la planifiqué por la exposición How Posters Work, de Ellen Upton. La exposición está organizada en torno a ideas y conceptos claves de diseño gráfico, no por cronología o familias, es decir, está orientada al aprendizaje y la transmisión de conocimiento. Para incidir en esto último, han creado un MOOC donde la propia comisaria ejerce de guía e introduce los conceptos más relevantes.

howposterswork_color

Como aprendiz de diseño, tener un contexto previo de los objetos que voy a visitar me ha ofrecido una experiencia más profunda y enriquecedora. El arte y los museos pueden tener un fin distinto al mero regocijo del alma, pueden también servir para nuestra educación y crecimiento.

by Andrés at December 30, 2015 04:40 PM

December 18, 2015

Andrés Maneiro

December 07, 2015

Andrés Maneiro

FEED15DAG

Desde hace meses vengo reservando un tiempo a estudiar diseño: su historia y referentes, el encaje e impacto que tiene en una organización, elementos de percepción, técnicas de composición e interactividad, etc. De cuando en vez echo un ojo a los eventos de diseño pero nunca me había animado a ir a uno. Éste es el resumen de mi participación en el  #FEED15DAG.

feed15dag

Lo primero que me llamó la atención fue el programa y ponentes. No sólo conocía a algunos que eran referentes, sino que me parecía muy redondo: diseño de servicios, historia del diseño, etc.

Taller: crear un fab lab

El FEED15DAG empieza para mí el viernes, en el taller de Massimo Menichinelli. Nos enfrentamos al reto de diseñar un espacio maker. Embarcado como estoy en crear uno en mi ciudad ¡no me pudo parecer más oportuno! Massimo demostró una concisión y practicidad que agradecí mucho: no se trata de diseñar sólo un espacio con máquinas, sino una comunidad con actividades y relaciones entre personas. Manejó conceptos muy indianos como el análisis de redes, la economía directa y la producción industrial de baja escala y largo alcance. En cierta medida fue para mi una continuación de la gira maker de estos meses y que me llevó a Gijón, Santiago o Coruña.

Las charlas del primer día

El pistoletazo de salida para el público general lo dió por la tarde Pepe Barro, con la historia del logo de Zeltia. Para mi desgracia, desconocía la figura de Pepe y su trabajo. Una puesta en escena brillante de un tema que además me apasiona: la historia que esconden las cosas. Pepe ejerció de detective y, con las mejores maneras de sherlock, nos descubrió un mundo de relatos personales, viajes clandestinos, … para contar la historia de cómo el trisquel se convirtió en el logo de Zeltia.

Óscar Otero, centró su presentación en los 3 pies del desarrollo web. Óscar, no sólo ha hecho trabajos muy buenos, sino que ha escrito sobre cosas fundamentales como la tipografía. De su charla, me quedo con el concepto de micro-interacción y un montón de ejemplos que explorar para notas, mi almacén de ideas.

Miguel Sabel, consultor de innovación y diseño en DesignIt centró su exposición en el encaje entre diseño y negocio así como el encaje organizacional: design thinking, service & business design, etc. Su charla ha ilustrado y matizado conceptos a los que llego por la lectura reciente de Bill Buxton y su Sketching User Experiences (la primera parte del libro está centrado en una reflexión acerca del encaje organizacional del diseño).

Cerró la tarde Massimo de nuevo, ampliando conceptos que habíamos trabajado por la mañana, como el diseño colaborativo, open design y su historia.

Taller: diseño para big data

El sábado la mañana empieza con un taller de Javier Cañada sobre diseño para big data. Además de compartir conocidos y amigos comunes, a Javier lo llevaba tiempo siguiendo por su trabajo y me hacía especial ilusión su taller. Con una capacidad de síntesis enorme nos presenta primero los conceptos teóricos con los que trabajaremos: la diferencia entre analógico y digital según Otl Aicher, las 3v del big data, los elementos de percepción y las variables de composición que manejamos como diseñadores. Y nos suelta frente a un reto / problema que tenemos que resolver en las siguientes 2 horas. A nuestro grupo le tocó diseñar la interfaz e interacción de un wearable, al que ya le tenía ganas! Es imposible describir lo que uno aprende de colaborar con maestros del diseño y recibir feedback de tu propuesta de otros 20 alumnos y Javier Cañada.

Las charlas del segundo día

La tarde se inicia con otra de las más esperadas: el infografista Álvaro Valiño. Una de las cosas más agradecidas de estudiar diseno son las infografias: composición y narrativa en acción. A Álvaro lo conocía porque, investigando sobre esto, me he encontrado como curiosidad que empezó trabajando en LaVozDeGalicia, donde coincidieron algunos infografistas de gran prestigio internacional en la actualidad: Álvaro, Xocas, Chiqui Esteban y más! Luego de un recorrido por algunos ejemplos históricos, repasa las capacidades y técnicas que un buen infografista debe conocer, para finalizar diseccionando en profundidad el proceso creativo de uno de sus trabajos. Fue muy agradecido tener una ventanita a ese proceso y tratar de entender cómo uno afronta ese tipo de trabajo.

Continúa la tarde con Marta Valverde, diseñadora de espacios interactivos. Marta ha trabajado con músicos y artistas en la creación de espacios y visualizaciones, así como con grandes compañías en la creación de espacios publicitarios. Marta se autodefine principalmente como programadora creativa: arduino y processing son las herramientas con las que ha creado cosas que los demás todavía sólo podemos imaginar. El gran descubrimiento de las jornadas.

El foro se cierra con Raquel Pelta y Javier Cañada, pero por problemas logisticos no pude estar.

Conclusión

El FEED15DAG ha sido, junto con el SOMERO15, el evento más inspirador del año. No sólo se habló de diseño gráfico e industrial, interactividad con arduino, interacción en productos digitales, infografía, design thinking, etc, sino también de aspectos transversales como la historia del diseño o el rol que puede desempeñar dentro de una organización.

La verdad es que luego de esos meses de gira, cierro el año 2015 con mucha energía que enfocar para 2016.

by Andrés at December 07, 2015 03:36 PM

December 02, 2015

Andrés Maneiro

Energía capturada

La noticia de la semana es que Iberdrola ha sido sancionada por manipulación de precios de mercado (PDF de la sanción). Está acusada de subir artificialmente el precio de la energía de las centrales hidroeléctricas a finales de 2013. Según el regulador, los beneficios habrían sido de 20 millones y la multa es de 25, aunque otros expertos dicen que los beneficios podrían haber sido el triple. Por ponerlo en perspectiva, si un particular usa para autoconsumo un panel solar no inscrito en el registro la multa puede llegar a 60 millones.

10306369695_7e94a2ca51_z

Para entender el caso, conviene saber cómo se establece el precio de la energía: a mayor uso de gas y carbón en la generación, mayor precio. Así, en períodos con mucho viento, lluvia o sol los precios son menores. La trampa de Iberdrola ha sido que, en un período de bajo uso de renovables, se guardó el agua disponible para generación hidroeléctrica (a pesar de que no era época de sequía) para favorecer que se tirase más de gas y carbón. El resultado fue que millones de consumidores de energía en España han pagado ese sobrecoste en sus facturas. Esto ocurrió días después de que el gobierno decidiese retirar 3.000 millones en subvenciones a las eléctricas para usarlos para paliar el déficit del estado.

¿Qué puedo hacer?

Lo cierto es que es un caso frustrante y humillante. Lejos de ser un algo aislado, es una gotita más que contribuye a extender la imagen de instituciones energéticas capturadas.

¿Qué puedo hacer ante esto? Usar mis superpoderes:

  • como consumidor, elegir distribuidoras energéticas que además apuesten por la producción de renovables.
  • como ciudadano, difundir esta vergüenza y ayudar a la creación de una opinión pública favorable a arreglar este desaguisado.
  • como votante, acudir a la cita del día 20D de diciembre favoreciendo opciones que tengan en su programa la creación de un verdadero mercado de la energía y la transición hacia energías verdes.

Pasa la bola. Compartir la frustación la hace más llevadera.

by Andrés at December 02, 2015 06:51 AM

November 25, 2015

Andrés Maneiro

Calypso

Automattic ha publicado una nueva versión de WordPress.com y liberado su tecnología base. TL;DR: tecnologías Javascript, Node y Electron con separación entre API e interfaz.

01-writing-with-dock

Su CEO, Matt Mullenweg, lo cuenta de la siguiente manera: una de las cosas más difíciles en tecnología es hacer productos disruptivos contra ti mismo, aunque sea fundamental para sobrevivir. A nivel negocio, un cambio de este calado promete habilitar de nuevo el crecimiento del producto.

Aunque los cambios se limitan a la interacción en wordpress.com, probablemente veamos pronto su extensión a la propia plataforma WordPress. Esto no va a ser sencillo. El reto aquí es mayúsculo, porque necesitan que miles de programadores y compañías que usan WordPress se migren a la nueva base tecnológica. ¡Y conservarlos! En Automattic saben bien que este ecosistema es su potencia y también saben lo difícil que puede ser una migración: la historia de adaptación de su equipo es tremenda e incluye cambios no sólo tecnológicos sino también de proceso. Aunque con vértigo, en Automattic el cambio se ha visto facilitado por una cultura que apuesta por la autonomía y la promoción/reciclaje interno de las personas. Por eso, al liberar su código están de alguna manera proponiendo a su comunidad que lo estudie y pueda empezar a trabajar usando patrones similares, bajando los costes iniciales de investigar y adaptarse. El Mumi propone una fiesta.

by Andrés at November 25, 2015 05:41 AM

November 04, 2015

Andrés Maneiro

Software en la industria del automóvil

Un comentario interesante sobre cómo desarrollan software en la industria del automóvil: un entorno con vida útil del sistema mayor a 10 años y con bajas especificaciones de hardware.

TL;DR: usan variables globales que sólo pueden ser ser escritas desde un único lugar para conseguir un entorno concurrente y determinista en cuanto a tiempos y memoria (todas las variables son estáticas). La unidad de encapsulación son las funciones. Se diseña para que la actualización de los sistemas o subsistemas resulte de cambiar una función por otra. A nivel control de versiones cada subsistema/módulo tiene su propio repositorio de código, creando otro de integración para cada coche/producto con los subsistemas deseados.

by Andrés at November 04, 2015 07:39 AM

November 02, 2015

Andrés Maneiro

Halt and Catch Fire

Scoot McNairy as Gordon Clark, Mackenzie Davis as Cameron Howe and Lee Pace as Joe MacMillan - Halt and Catch Fire _ Season 1, Gallery - Photo Credit: James Minchin III/AMC

Por recomendación indiana, he empezado a ver Halt and Catch Fire. El argumento se centra en una compañía de la pradera del silicio, que entra en la carrera por la fabricación de los ordenadores personales, con un clon de IBM. En muchas fases podría leerse como una historia de COMPACT, pero en realidad la serie pretende ser el relato de una generación y un mundo donde todo era posible.

Me encanta el planteamiento y los pequeños detalles: que la localización sea en Texas, la pradera del silicio, en vez de en el valle del silicio no me parece gratuita y es un golpe al ego de un lugar y mitología sobrevalorada, cuando no directamente falsa. Los personajes son grandiosos: un yuppie de los 80 que se ve reflejado en coetáneos como Jobs y Belfort , una punk brillante como programadora pero sin experiencia laboral a la que encargan construir la BIOS del sistema, un matrimonio de diseñadores de hardware que han abandonado sus aspiraciones de crear el mejor computador por asegurar la vida familiar. Y secundarios tan reales como rancios.

De ese cóctel surge una serie interesantísima que refleja las tensiones empresariales y creativas de un proyecto ambicioso, pero lleno de oportunidades.

by Andrés at November 02, 2015 01:54 PM

October 30, 2015

Andrés Maneiro

October 28, 2015

Andrés Maneiro

Safe Harbor

A raíz de la denuncia de un ciudadano austríaco contra el uso que hacía Facebook con sus datos, el tribunal europeo de justicia declara inválido el acuerdo Safe Harbor entre la Unión Europea y los Estados Unidos. Este acuerdo permitía a compañías que tenían sus servidores en Estados Unidos autocertificar que cumplían la directiva de privacidad europea y, por lo tanto, poder almacenar datos de caracter personal para clientes europeos.

Con la cancelación del acuerdo ya no lo están y, aunque se está trabajando en una actualización del acuerdo, ahora mismo, a nivel práctico, bien las compañías estadounidenses crean centros propios en Europa (y almacenan allí los datos de clientes europeos) o bien las compañías europeas cambian de proveedor y almacenan sus datos en empresas con hosting en Europa.

by Andrés at October 28, 2015 03:55 PM

October 21, 2015

Andrés Maneiro

Las economías de alcance, según Beck

«Mass production is founded on the assumption that the value of the things you produce is greater than the value of what you learn. As you make more, you learn more, but slowly. That’s okay, because you’re going to make millions more that will benefit from your learning. No rush.

image

When you reverse the proportion, when learning is more valuable than things, then economy of scale goes haywire. Putting off learning because “oh, we’ll make a million more,” no longer makes sense. The leverage is in learning, not production. You are willing to sacrifice today’s production for tomorrow’s improvement.»

image

Kent Beck ha escrito sobre las economías de escala VS las economías de alcance, comparándolas desde el punto de vista del proceso. Es importante lo que dice porque engancha el contexto que nos encontramos en el mercado (reducción de escala de producción) con las variables que necesitas optimizar en tus procesos (rapidez, aprendizaje), dándole a los ciclos ágiles de desarrollo una justificación económica, además de humana y tecnológica.

by Andrés at October 21, 2015 07:10 AM

October 14, 2015

Andrés Maneiro

Somero 2015

Me he pasado la semana pasada en Gijón, en el #Somero2015, un evento poco convencional donde podías a la vez desarrollar código, socializar con programadores y conversar con los líderes y policy-makers del futuro. Todo en un mismo pack. El hilo conductor fue el futuro en la sociedad distribuida: la producción de baja escala que habilitan el hardware y software libre, la resiliencia de las infraestructuras urbanas, el futuro de la banca y los cambios sociales que se avecinan.

Me resulta imposible resumir todas las conversaciones que he tenido con catedráticos de economía, jugadores de go, diplomáticos de comunas, presidentas de cámaras de comercio, programadores, activistas por los derechos civiles en internet, emprendedores tecnológicos, líderes políticos, etc; personas de Suecia, País Vasco, Estados Unidos, el levante español, Nápoles, Londres, Argentina o Madrid. No recuerdo jamás haber estado en un evento tan diverso y con gente tan dispuesta a entablar conversaciones con completos desconocidos. ¡Me lo he pasado en grande!

Esa sensación de cercanía y aprendizaje ha estado amplificada por el hecho de que el evento ha tenido una lectura interna para los que participamos en lamatriz.org: nos hemos desvirtualizado. Comparto todo lo dicho por Gustavo. Me ha sorprendido verme en conversaciones donde intuías lo que iba a decir alguno de los presentes, lo esperabas y repartías juego para que todos participásemos. He tenido una sensación de familiaridad y valores compartidos muy profunda sobre aspectos básicos de la vida: orientación a mercado, una cierta sensibilidad hacia estructuras distribuidas de poder y distribución, conocimiento y apuesta por las tecnologías libres, … son cosas que no se encuentran fácilmente en una conversación, o al menos no con tanta naturalidad.

En definitiva, el #Somero2015 me ha recargado las energías y me ha conectado con un montón de gente con la que quiero empezar o continuar haciendo cosas juntos. ¡Estoy deseando que venga ya el #Somero2016!

by Andrés at October 14, 2015 07:09 AM

October 05, 2015

Andrés Maneiro

¿Particionar o no particionar?

Hoy he tenido una de esas epifanías sobre una cosa que uno supone como básica, y que por eso mismo hacía más de 10 años que no pensaba sobre ella: ¿particionar el disco duro o no particionar?

Por qué dividir mi disco duro en particiones

La sabiduría convencional nos dice que un disco duro debe tener al menos la partición del sistema operativo y la de datos separadas. En otras como swap y temporal es más fácil encontrarse opiniones diversas. La sabiduría nos dice que:

  • tenerlas separadas hace que tengas un entorno más resilente, ya que si el sistema se estropea en una actualización o por un virus, puedes reinstalar uno nuevo sin tocar la partición de datos.
  • permite hacer cosas como tener varios sistemas instalados en distintas particiones compartiendo la de datos.
  • es una manera de asegurarte que el sistema operativo reside en los primeros sectores físicos del disco duro, donde el acceso a lectura es más rápido y, por lo tanto, tendrás mejor rendimiento.

Cuando me he puesto manos a la obra para llevar esa sabiduría a la práctica me han entrado unas dudas existenciales que describo a continuación.

Por qué tengo 1 única partición

Mi sistema inicial es un Ubuntu 14.04 con LVM con una única partición y encriptado. Mi plan inicial era usar LVM para crear una nueva partición para los datos dejando la del sistema operativo en unos 25Gb.

La razón principal de haber decidido usar LVM es que me permite redimensionar las particiones dinámicamente. Uno de los problemas que tuve con mi anterior portátil es que la partición del sistema operativo -donde también residían las bases de datos- llegó a su tope de capacidad en el peor momento: cuando necesité actualizar una BD a pocas semanas de una entrega. La BD en cuestión ocupaba unos 10Gb y necesitaba otros 5Gb de espacio que no tenía en el sistema, pero sí en la de datos. Como no podía redimensionar las particiones y ponerse a instalar las BD en la partición de datos llevaría un montón de tiempo, me puse como un loco a borrar kernels no usados, limpiar cachés, eliminar locales y desinstalar programas. Al final conseguí hacer sitio y salí del paso.

La primera lección aprendida es que es increíble la cantidad de basura que uno acumula. La segunda, que no me gustan las particiones.

Por eso, con la compra de mi nuevo equipo, me he estado replanteando si particionar o no y cuál es la mejor estrategia ahora, en 2015. Me dió por pensar sobre esto principalmente porque mi equipo incluye un disco SSD de 512Gb. A nivel práctico esto significa que:

  • un disco SSD, a diferencia de los de aguja, la velocidad de acceso a los distintos sectores físicos del disco es la misma, no depende de la posición que tengan. Es decir, tener el sistema operativo en la primera partición ya no es un diferencial para el rendimiento.
  • el espacio que tengo es justito para todo lo que quiero almacenar en él durante los siguientes años. Decidir cómo particionarlo supone un problema porque tengo que pensar cómo. Es cierto que el uso de LVM mitiga los efectos de esta decisión ya que podría cambiarlo en el futuro si el sistema crece más de lo previsto o la de datos se me quedase corta. Pero la verdad es que me da pereza pensar en esto de las particiones y tener que juguetear con ellas. Tampoco sé cómo puede resultar o si voy a tener problemas, no estoy experimentado con LVM, así que tengo una aproximación conservadora.
  • no necesito tener partición de datos compartida entre varios sistemas porque tengo sólo 1. Si necesitase un Windows para hablar con la administración, puedo virtualizarlo; de todos modos, en los últimos 6 años no recuerdo haberlo necesitado. Tampoco tengo planeado ponerme a probar nuevos sistemas Linux en paralelo.
  • tengo un sistema de backup que funciona y que permite recuperar datos entre ordenadores de un modo sencillo, con lo que usar las particiones como medida anti-pérdida de datos si hay un problema con el sistema no me aporta nada.

Todo esto me ha hecho reflexionar. Sabiendo, además, que si estoy equivocado y sufro un desastre o mal rendimiento siempre estaré a tiempo de jugar con LVM para organizarlo de otra manera, me he propuesto probar una nueva estrategia que parece más adecuada hoy en día. He decidido quedarme con una única partición.

by Andrés at October 05, 2015 05:34 AM

October 02, 2015

Andrés Maneiro

September 30, 2015

Nacho Varela

No cerrar consola de windows al ejecutar un script

Si tienes un script, por ejemplo de python, que quieres ejecutar en Windows con un acceso directo (asociando la ejecución con "pythonw.exe" para que se lance la consola) vemos que al hacer click sobre él se ejecuta, pero no podemos ver el resultado ya que se cierra rápidamente la terminal de línea de comandos.

Un truco sencillo es usar el comando "pause" como última línea del script.
Veamos un ejemplo:

C:\Python\pythonw.exe myscript.py
pause
Con eso antes, tras finalizar el script de python se detiene la ejecución hasta que el usuario pulse una tecla y se puede ver la salida del programa en la consola. Esto también funciona scripts en otros lenguajes MSDOS, los .cmd".

by Nacho Uve (noreply@blogger.com) at September 30, 2015 06:05 AM

September 25, 2015

Andrés Maneiro

Iraníes que ríen

Hoy os recomiendo dos monólogos de Maz Jobrani, sobre los estereotipos alrededor de Oriente Medio. Atrevido y divertido a partes iguales, como sólo puede serlo un cómico a la vez iraní y estadounidense.

Luego de reirme, me recordó inmediatamente al peligro de la historia única, y cómo lo que contamos da forma a nuestras vidas.

by Andrés at September 25, 2015 06:20 AM

September 21, 2015

Andrés Maneiro

4 semanas de blogueo diario

Durante las últimas 4 semanas he estado blogueando a diario, entre semana. Me apunté a un reto que lanzó Pablo desde su blog a raíz de las conversaciones en lamatriz. Lo hice porque me pareció divertido y porque pocos días antes me había tocado la fibra sensible. También porque me apetecía forzar un poco y entender los límites de publicar 20 posts en 1 mes, que era algo que no hacía desde hace casi 10 años.

El reto ha servido de incentivo para publicar cosas que tenía ganas de contar pero no la constancia para hacerlo. Muchos de los posts iniciales eran ideas que bien estaban ya en borrador o que tenía en la cabeza para los que el reto supuso un deadline, una fecha de entrega. Me resultaba más fácil empezar a publicar con cosas ya medio cocinadas. Uso mucho mi blog como diario de aprendizaje, lo que significa que escribo muchas veces para aclarar ideas. Tener una idea «en borrador» supone que me falta la última milla para entenderla por completo y ser capaz de comunicarla, pero en muchas ocasiones la abandono porque no tengo esa urgencia de publicación y creo que ya la entiendo. Otras veces, llego a un callejón sin salida para el desarrollo de la idea, así que simplemente doy la vuelta y la dejo en borrador. Ahora me he dado cuenta que esa última milla es clave, que pasar de borrador a publicado supone también clarificar ciertas ideas que parecen asentadas pero no lo están tanto.

He necesitado en torno a 1 o 2 horas para escribir los posts largos y unos 20 minutos los cortos, lo que no es un tiempo despreciable. Con un par de entradas me ha ocurrido que no he podido publicarlos como tenía previsto porque simplemente necesitaba más tiempo para documentarme y depurar las ideas. Por otro lado, le he robado tiempo a otros espacios vitales que me apetece cuidar más ahora mismo. En definitiva, me ha costado publicar a diario, no estoy ahora mismo para estos trotes. Aunque no creo que los siguientes meses mantenga esta intensidad de publicación, sí me gustaría probar con una periodicidad regular (¿1 o 2 a la semana?) porque eso ha tenido una influencia positiva.

He publicado entradas que nunca hubiese publicado sin esa sensación de urgencia. No me arrepiento, muy al contrario, he aprendido alguna lección. Me ha dado la sensación de que publicar contenido semi-personal ha servido de contrapeso y le ha dado ligereza a mi blog. He entendido que un cuaderno intelectual puede llegar a convertirse en algo muy privado. El lenguaje se vuelve interno, teórico. La densidad de ideas que puedo entrelazar un post y que muchas veces no han sido explicitadas en el blog previamente o que consolidan varias lecturas durante meses, puede convertir en poco atractivo para otros acercarse a mi experiencia de aprendizaje. Incluir entradas más ligeras o comentarios de noticias creo que ha favorecido a desarrollar conversaciones y poner ejemplos de ideas que tenía publicadas en formato teórico.

Esta prueba me ha convencido de que mi blog necesita un nuevo formato, acorde con un tono distinto que ahora me apetece integrar aquí. En los últimos años he venido integrando ciertos reposos de conocimiento que iba generando (glosario, itinerarios, cuasi-libros, etc) en el blog. Últimamente también minientradas que he disfrutado mucho como comentarios de noticias, etc. Pensar cómo el blog puede dar cabida a esos 2 tipos de publicación que requieren distintos formatos, lenguaje, etc será mi siguiente paso. Me gusta mucho las cosas que hacen Matt Mullenweg o Martin Fowler; también The book of life y quiero parecerme más a ellas.

En definitiva, he disfrutado del reto. Me ha dado ánimos para profundizar en el desarrollo de mi blog como punto central de mi presencia online y he aprendido algunas cosas de cómo me gustaría mejorar esa presencia. Sólo por eso, ha valido la pena.

by Andrés at September 21, 2015 01:30 PM

September 18, 2015

Andrés Maneiro

Cánones y ciencia ficción

Continuando con el consumo cultural, hoy quiero reseñar dos eventos recientes y pensar sobre el rankismo en la ciencia ficción.

Miquel Barceló ha publicado su antología de los 100 mejores títulos de ciencia ficción, 25 años después de la primera. Barceló ha sido de las mayores fuerzas en la popularización de la scifi en España como traductor y editor de una inmensidad de obras. Leo su entrevista y me entran unas ganas locas de leer su canon para saber cuáles considera importantes una persona tan leída y mejorar mi mapa mental de autores por leer. Pero entonces leo esto:

Inevitablemente la guía es —y no rehúye serlo— polémica en su selección de los mejores títulos. No incluye, por ejemplo, ninguna obra de Ballard. Y eso sí que algunos lo juzgarán anatema. Barceló, que tampoco valora especialmente a Philip K. Dick (como gran ucronía prefiere Pavana, de Keith Roberts, a El hombre en el castillo), recuerda que en su famoso libro Ciencia ficción, las cien mejores novelas, David Pringle no puso Fundación. “Era una época en que quedaba bien hablar mal de Asimov, que había reducido su registro semántico a tres mil palabras para que le pudiera leer todo el mundo, incluido un granjero de Kansas, lo que no le hace precisamente muy literario”. Barceló aprovechó para recordar que el género tiene junto a plumas como la de Asimov las de grandes estilistas como Dan Simmons o Stephenson.

De alguna manera es una bofetada al instinto fanboy que hay dentro de mi e inevitablemente me devuelve a la realidad: la guía es otro canon. Personalista. Importante sin duda por la relevancia que tiene en el mundo hispanohablante. Quizás también influido comercialmente por las propias obras que él ha editado. Y pienso que sería estupendo tener los cánones de mis amigos en algún lugar que pudiese consultar regularmente. Sin molestarlos cada vez que quisiera consultarlos, aunque a veces les pregunte sólo por conversar. La ventaja de consultar los cánones de mis amigos sería que los conozco: sé si uno se deja llevar más por fantasía o si la detesta, si abusa de la soft scifi o por el contrario de la hard, etc. Es decir, tengo un contexto y puedo entender sus inclinaciones. No ocurre lo mismo con Miquel Barceló a no ser que las explicite él mismo.

Es entonces que me da por recordar la polémica de los recientes premios Hugo. Dos grupos llamados Sad Puppies y Rabid Puppies –compuestos en su mayoría por autores de ciencia ficción que han sido nominados a los Hugo- han hecho campaña para posicionar en las nominaciones a autores de su preferencia. Estos grupos defienden que los Hugo  “han derivado en propaganda política de izquierdas, dando peso a historias de gays, académicas o de nicho dejando de lado criterios de calidad“. Otros los acusan de reaccionarios y dicen que los premios simplemente reflejan un abanico de mayor diversidad que “las historias de hombres blancos“. La polémica ha sido muy pública y Los votantes han preferido elegir “sin premio” en todas aquellas categorías donde sólo habían sido nominados candidatos puppies.

Estas dos historias ponen de relieve que uno no debe dejarse llevar por los ránkings sin ser consciente de sus bias. No hay un ránking válido, hay muchos posibles, como nos recuerda la historia de la salsa de spaguetti que tan bien cuenta Malcolm Gladwell:

by Andrés at September 18, 2015 04:44 PM

Nacho Varela

Escapar espacios en blanco en variables en Bash

Hoy me he sentido un poco estúpido... la típica chorrada que no te acuerdas ni se te ocurre como solucionar. Lo pongo aquí etiquetado como "humor". :D

En un script para la línea de comandos, tenía que entrar en un directorio con espacios en su nombre.

Pues no era capaz...
> foo="/tmp/foo bar/" 
> cd $foo 
bash: cd: /tmp/foo: No such file or directory 

Intenté todas las combinaciones posible para escapar el espacio y mil trucos.

Solución:
> foo="/tmp/foo bar/" 
> cd "$foo" 


Las comillas!!!!

by Nacho Uve (noreply@blogger.com) at September 18, 2015 05:16 AM

September 17, 2015

Andrés Maneiro

De ascendencia árabe

En Dallas, un niño de 9 años lleva al cole un reloj hecho por él mismo y acaba en la cárcel por tener ascendencia árabe. Su profesor de inglés creyó que era una bomba. El niño declara que de mayor su sueño es estudiar en el MIT. Obama lo ha invitado a la casa blanca:

Debemos recordar este tipo de actitudes xenófobas cuando nos preguntemos por qué tiene éxito algo como el Estado Islámico. La batalla por las dignificación de las personas y la lucha contra los monstruos se libra en estos pequeños detalles.

by Andrés at September 17, 2015 07:01 AM

September 16, 2015

Andrés Maneiro

Los nuevos CTOs

Esta semana CartoDB ha hecho público un acuerdo por el cual obtiene 23 millones de financiación externa. Miguel Arias, su CFO, ha escrito sobre esto también con números interesantes. Pero el que realmente captó mi atención ha sido el post de Javi Santana, CTO de CartoDB. De alguna manera me recordó al de Aitor, antiguo CTO de Ducksboard, otra startup española que se vendió el año pasado por estas fechas a New Relic. Lo que ambos transmiten en sus escritos es una nueva manera de hacer las cosas, sin cancamusa, orientada a resultados y a las personas.

 

by Andrés at September 16, 2015 05:25 AM

September 15, 2015

Andrés Maneiro

Élites y fútbol bajo el BREXIT

Con el referendum sobre la Unión Europa en UK a golpe de vista, The Guardian analiza cómo afectaría a las estrellas europeas de fútbol que juegan en la Premier si se da un BREXIT. Aplicando a futbolistas de países europeos las mismas normas que rigen ahora a los extracomunitarios, la mayoría de estrellas de la Premier no podrían jugar. Por lo que los aficionados sufrirían una merma del espectáculo y, por lo tanto, la Premier como producto televisivo dejaría de ser competitivo respecto a otras ligas. Aunque nadie duda de que harían leyes especiales para las élites:

We’ve always had immigration rules that have exceptions for highly talented individuals. I can’t imagine any government, no matter how crazy, would want to pour cold water on the Premier League, which is a hugely important export

Todo un editorial de The Guardian al corazón del Reino Unido más profundo: competitividad de las empresas + fútbol. ¿Dónde estarán los ingleses que lucharon por montar la primera exposición universal a pesar de que eso significaba traer productos extranjeros que competían con los propios?

by Andrés at September 15, 2015 05:30 AM

September 14, 2015

Andrés Maneiro

¿Cómo descubrir música cuando no usas Spotify?

Hace unas semanas que he dado de baja el servicio de subscriptor de Spotify. Desde entonces he estado usándolo un tiempo en el modo gratuito. Casi sin darme cuenta, lo he ido dejando poco a poco porque la publicidad que ponen es horrorosa: simplemente no tiene sentido estar escuchando pongamos, hip-hop, y que te pongan publi del último disco de, digamos, Pablo Alborán. O viceversa. ¿Con todos los datos de consumo que tienen de mi perfil en serio que Spotify no podrían hacer recomendaciones más acertadas?

Quizás es que no entiendo de márketing digital y están siguiendo una estrategia ortogonal a la de Amazon, que en general me recomienda cosas que quiero comprar y algunas veces acabo comprando. Quizás su método pasa por taladrarte los oídos con cosas que nunca, remotamente, has escuchado y ponen publi que no soportas con el objetivo de que te pases al modo premium. Qué retorcidos, pienso. Aunque creo que esta vez han infravalorado mi capacidad para buscarme una alternativa y dejar de usar su servicio.

Buscando nuevos artistas

Hoy en día, acceder a un streaming de música o escuchar lo último de tu artista favorito es un problema resuelto. Hay miles de opciones. Lo que tengo atrofiado después de unos años con Spotify es mi capacidad de descubrimiento fuera de Spotify: ¿cómo descubrir música? ¿cómo conocer nuevos artistas?

Además de las recomendaciones de Pablo, lo que mejor me ha resultado estos días es recuperar algo que creo que no hacía desde hace una década: hablar con mis amigos de música y escuchar la radio.

Me he dado cuenta de que las conversaciones con mis amigos pueden girar en torno a series de televisión o cine durante horas. También de libros y de nuestras cosas, claro. Pero me ocurre menos verme en conversaciones de música. No había sido consciente hasta ahora y es raro porque hace años era todo lo contrario. No es que no tenga alrededor gente a la que le guste la música, más bien al contrario. Me pregunto si afecta de alguna manera el hacerse mayor, ¿dejas de escuchar música pero no de ver pelis? No lo tengo claro aún, pero me inclino a pensar que la centralización que suponen canales como Spotify ha convertido el proceso de descubrimiento en algo privado.

Por otro lado, en cuanto a la radio, ya no uso canales como radio3 tanto como en su día, que me aportaron mucho, sino que ahora empiezo el rastreo en internet buscando podcasts o videos de emisoras donde hayan participado artistas que me gustan. Es decir, busco a los cazadores de tendencias de la música actual. Por ejemplo, gracias a un concierto de Dan Mangan por el nuevo disco, me he  reencontrado con KEXP, una emisora de Seatle.

Estos últimos días se ha convertido en mi jukebox particular, la primera fuente de la que tiro para descubrir artistas, como por ejemplo Stromae. Por cierto, imperdible el trozo de la entrevista donde le pregunta cómo uno se siente al “ser africano” y que una canción suya haya representado a Bélgica en los juegos. Respuesta: “Bueno, en realidad soy Belga. No puedo reclamar conocer África por tener ascendencia africana. He sido educado en Europa. Mi visión de África está mediada por la prensa europa”. Zas.

Es pronto para decir cómo la herramienta ha moldeado mis usos y gustos. Todavía noto a faltar esa comodidad implícita de lo centralizado, la falsa promesa de que todo está ahí. Lo que sí empiezo a sentir es un cosquilleo en el estómago, una sensación de aire limpio cada vez que descubro un nuevo grupo que puedo estar oyendo días sin parar. Como volver a tener 20 años y recuperar esa sensación de aburrimento que te lleva a la rebeldía y te da fuerzas para buscar lo desconocido.

by Andrés at September 14, 2015 05:34 AM

September 12, 2015

Andrés Maneiro

September 11, 2015

Nacho Varela

Copiar archivos con conexiones lentas (windows)

La alternativa libre y válida para GNU/Linux, Mac y Windows es sin duda usar RSync, pero si estás en un windows desde Windows Vista, microsoft incorporado robocopy.exe como parte de la instalación estándar. La herramienta robocopy de línea de comandos es realmente útil para la copia masiva de ficheros en entornos windows, pudiendo programar con muchas opciones las copias, sincronizar carpetas, etc...

Entre las virtudes de este programa frente a una simple copia de ficheros con la interfaz de usuario o el comando "copy" están:

  • Posee un indicador de progreso de la copia.
  • Es tolerante a interrupciones en la copia de archivos.
  • Realiza reintentos automáticos si no se puede acceder a un archivo.
  • Permite copiar grandes cantidades de archivos.
  • Duplica información como propiedades, atributos, datos del propietario, fechas, etc. así como los permisos del archivo.

  • Una de las características más interesantes es el parámetro /IPG o Inter Packet Gap, que permite definir un tiempo en milisegundos entre cada paquete enviado. Esto permite que optimizar mucho el uso del ancho de banda en redes lentas o con problemas de conexión para no interferir en otros procesos. Para calcular mejor cómo configurar este parámetros IPG puede ser de utilidad el artículo "Copy files on slow links" y sobre todo su calculadora que me he permitido incorporar aquí traducida al español:

    Calculadora Robocopy IPG
    Tamaño
    Velocidad
    Valor IPG
    Paquetes
    Retardo (hh:mm:ss)
    Tiempo de copia (hh:mm:ss)
    Tiempo Total (hh:mm:ss)


    Para ver todos los parámetros que la herramienta ofrece visitar la página de documentación de microsoft sobre robocopy.

    by Nacho Uve (noreply@blogger.com) at September 11, 2015 06:22 AM

    Andrés Maneiro

    En busca del ejercicio perdido

    Hace más de un año que descubrí y empecé a practicar el Tai Chi Chuan, gracias a uno de los talleres que había en mi ciudad durante el verano. Llevaba tiempo sin practicar ningún ejercicio y había estado leyendo textos sobre artes marciales, así que al ver taller no me lo pensé dos veces.

    Aunque tenía un poco de miedo al tinte new age con el que se cubre hoy en día la práctica, el instructor me sorprendió muy gratamente por su planteamiento integral como arte marcial. Dos veces a la semana nos juntábamos en el parque que hay cerca de casa y seguíamos una rutina de ejercicios. Luego del calentamiento, practicábamos una nueva posición. Posteriormente, veíamos las aplicaciones que tenía esa posición tanto en ataque como en defensa personal mediante la práctica en pareja, lo que me resultó de una utilidad enorme para memorizar la posición e integrarla con las restantes a medida que íbamos construyendo una forma propia.

    Fue muy motivador comprobar la facilidad con que, al final de las 8 semanas, podíamos ejecutar la rutina que habíamos ido construyendo de modo muy natural y sentido, también bello, a pesar de la no poca complejidad entre posiciones.

    Aunque inevitablemente corto para entender los fundamentos físicos, respiratorios y meditacionales de la práctica del Tai Chi Chuan, ya en las primeras semanas de práctica uno se enfrenta al estudio de las posiciones y el equilibrio. Durante meses, me resultó enormemente gratificante la práctica diaria. Pero casi sin darme cuenta, los apuros del trabajo y los compromisos sociales fueron sometiendo mi esfera personal y lo he ido dejando de lado. Creo que la soledad de la práctica y la necesidad de encajar muchas cosas a la vez se impuso a mis ganas de mejora.

    En las últimas semanas, me he puesto el objetivo de recuperar ese espacio. Con el ánimo de darle mayor continuidad, he puesto el foco en grupos que practiquen regularmente en mi ciudad, sean o no de Tai Chi Chuan. Porque si algo he aprendido en mi breve periplo por las artes marciales es que aprender a encontrar el equilibrio físico y mental es una habilidad que vale la pena desarrollar.

    by Andrés at September 11, 2015 04:30 AM

    September 10, 2015

    Andrés Maneiro

    The right way to ship software

    I’ve been around the block and shipped a lot of software. I’ve worked at tech companies ranging from three to 10,000+ employees. I’ve built software that’s been given away for free and sold for $50M license fees — and just about every price point in between. Every one of these products was developed and delivered differently, and after having the chance to compare and contrast them all, I’d love to reveal the one true way to ship software.

    I’m abashed to confess that I cannot.

    — Jocely Goldfein, The right way to ship software

    Alguien tan experimentada como Jocely Goldfein (VMWare, Facebook) dice que no existe the one true way to ship software. Que nos acostumbremos a tener trade-offs y pensar desde nuestro contexto. Como complemento a este artículo, recomiendo oir a Beck hablando de qué variables determinan el contexto de uno: tiempos de release, negocio y prácticas de ingeniería.

    by Andrés at September 10, 2015 05:34 AM

    September 09, 2015

    Andrés Maneiro

    Ladrones de procesadores

    Increíble la historia de cómo alguien puede perder $6.500 por un bug en su editor de código. Resumen: publica sin darse cuenta una clave para acceder a su servicio de almacenamiento en la nube debido a un error en su editor. A los pocos minutos, esa clave empieza a usarse para acceder a su cuenta y utilizar la potencia de cálculo del servicio para minar bitcoins. via @fpuga

    by Andrés at September 09, 2015 06:30 AM

    September 08, 2015

    Andrés Maneiro

    Handmade hero

    ¿Y si pudieras aprender a programar juegos con uno de los principales desarrolladores de motores gráficos de la industria? ¿Y si, en vez de lecciones, recibieras un vídeo diario sobre la evolución del código fuente de un juego real, en su totalidad, explicado? ¿Y si el juego no fuese una demo, sino un producto profesional para vender en el mercado indie? Éso es lo que propone Handmade Hero, un juego desarrollado completamente desde cero por Casey Muratori.

    Cada día de semana ofrece a sus suscriptores un video y el código correspondiente. Al acabar el proyecto recibirán el juego, con los vídeos y el repositorio con todo el código fuente. No sólo es un juego, es un esfuerzo por enseñar a la siguiente generación de programadores y recuperar las bases de la industria.

    by Andrés at September 08, 2015 06:53 AM

    September 07, 2015

    Andrés Maneiro

    De qué hablo cuando hablo de programar

    A grandes rasgos, como programador, me puedo identificar con el trabajo que llevan a cabo un carpintero, escritor, modista o diseñador industrial. Todos ellos crean una estructura donde no la hay y le dan una forma agradable que la gente quiere usar. Lo que es completamente diferente con respecto a ellos son mis herramientas, las tareas diarias que realizo y el conocimiento específico que necesito para llevar a cabo mi trabajo. Cada oficio tiene sus cosas, aunque existan lecciones compartidas de unos a otros.

    Las actividades del día a día

    En mi empresa, creamos productos para organizaciones. Diseñamos herramientas para la toma de decisiones y compartir información. En ese contexto, mi día a día pivota en torno a 3 actividades diferenciadas:

    • entender los procesos del cliente, para lo que es necesario conocer el dominio en el que trabajas: ¿qué datos se recogen? ¿qué tareas necesitan resolver con esos datos? ¿cuáles son los roles de la gente que participa? El objetivo es entender qué hace el cliente para proponer mejores maneras de hacerlo con ayuda de la tecnología. La mejor herramienta que he encontrado en esta actividad es la conversación con el cliente y compañeros. Suelo también dibujar gráficos en papel. En digital menos, porque me lleva más tiempo y el gráfico no tiene vocación de permanencia, es meramente una herramienta para pensar y comunicar.
    • diseñar el producto, crear la herramienta que se adapte al proceso: ¿debemos usar una metáfora de mapa o de ruta? ¿Cómo componer la interfaz? ¿Cuál es el siguiente paso que un usuario debe hacer? En esta actividad el objetivo es determinar cómo un usuario interactúa con el producto y cómo eso da forma al proceso. Uso mucho el papel para comunicar el flujo o composición de las interfaces del producto a mis compañeros y clientes, pero coge relevancia lo digital para mostrar capturas de ejemplo de otros productos, realizar bocetos, etc. Y, por supuesto, un editor de texto (enfocado a programación) para implementar esas ideas. Hay mucho de ajuste en esta actividad, de probar si lo que pensaste inicialmente tiene sentido, de tratar de entender el espacio de la solución y decidirse por lo que mejor encaja. También tiene mucho de pegamento entre el análisis y la programación.
    • dotar de estructura al producto: ¿cómo diseñamos la base de datos? ¿y la arquitectura de mensajes? ¿es necesario ajustar la estructura o conviene generar deuda técnica? El objetivo de esta actividad es construir la solución. Esto es lo que convencionalmente se entiende como programación: escribir en un editor de texto lo que has aprendido del diseño y análisis. Mi principal herramienta es el editor, claro, y las interfaces que me ofrezcan las tecnologías que uso (base de datos, consola, etc). Suelo también garabatear mucho en papel para pensar. Mientras no se nos ocurra algo mejor, el papel me parece la tecnología definitiva para explorar ideas: flexible, rápida y desechable.

    Estas actividades no son secuenciales (análisis > diseño > estructura) ni estancas, se retroalimentan y hay ciclos también en ellas.

    Capacidades y equipo en contexto

    Es importante que el equipo tenga todas estas capacidades, aunque cada persona tendrá fortalezas en un área u otra: alguien puede conocer muy bien el dominio porque ha trabajado en él, otros pueden ser mejores diseñando el producto porque conocen lo que la tecnología puede dar y tienen la empatía suficiente para entender el proceso, etc.

    Hay días en que no sé cómo llamarme a mi mismo: ¿analista, diseñador de interacción, programador? Medio en broma, medio en serio, con los íntimos digo que soy fisico-químico de sistemas de control interactivos. La historia del término tiene su gracia y, en verdad, refleja muy bien lo que hago: estudiar las fuerzas y estados por los que un sistema puede pasar y dotarlo de interactividad. No deja de ser una boutade. Tampoco es que me importe no tener un nombre sino muchos dependiendo del contexto. Además, en el sector nadie sabe en realidad cómo llamarse a sí mismo: UX, UA, IxD, diseñador gráfico, programador, programador backend, arquitecto de software, testeador, programador frontend, growth engineer, etc. ¿De verdad necesitamos tantos nombres? Creo que existen porque señalizan cuál es el silo en que te ubicas en una organización, el departamento y nivel de jerarquía. Yo suelo utilizar sólo 3: analista, diseñador de interacción y programador. Creo que comunican las actividades principales y son ampliamente conocidos en el sector, no necesitan ser explicados. Lo que me gusta de ellos es que transmiten una sensación de amplitud, de recoger todo lo que una actividad puede ofrecer; señalan a mi interlocutor que estoy capacitado para hablar con él (que es lo que me interesa de un nombre) evitando el efecto: ah, es que tú sólo haces UX, no te veo como un igual.

    Por otro lado, en cuanto a la secuencialidad de las fases habría mucho que decir, pero tiende a ser cierto que por la propia naturaleza del trabajo los ciclos iniciales del proyecto contienen más análisis y los finales menos, por ejemplo. Además, al estudiar lo que hacen otros, me he dado cuenta de que el día a día de los programadores es muy distinto dependiendo cuál sea tu producto y sector: ¿creas productos para organizaciones? ¿juegos? ¿herramientas de publicación? ¿películas? ¿música? No me refiero únicamente a conocimiento especializado (cómo dibujar un mapa, cómo renderizar un personaje en un juego, etc), sino a cosas más amplias que impactan en cómo enfocas tus actividades diarias. Por ejemplo, una arquitectura específica puede tener mucho sentido en un sector pero no en otro simplemente por cosas como cuáles son los canales de distribución de tu producto.

    Crear productos, de principio a fin

    Cuando hablo de programar, hablo de todo esto. De la actividad que me permite crear productos de principio a fin.

    Por desgracia, creo que todavía hoy la visión hegemónica de un programador baila entre la superespecialización de las factorías de software y el vaquero indomable de las startups que puede hacer cualquier cosa desde la soledad de una cafetería. La primera transmite que no eres nadie si no eres el jefe de todos esos compartimentos estancos; la segunda, que no necesitas compañeros y pares para ser mejor y llevar tu proyecto a cabo. Necesitamos otro relato. Necesitamos una visión equilibrada de la programación como trabajo en equipo y carrera a largo plazo.

    No me frusto tampoco con esta visión descompensada pues no conviene olvidar que la nuestra es una industria muy joven. Empezamos, ahora, a tener a nuestros propios viejos programadores. Quizás entenderemos de verdad lo que significa programar cuando el tiempo pase y las historias que cuentan los mayores se transmitan entre generaciones. Por eso admiro a personas como Ward Cunningham y Kent Beck que, a pesar de formar parte de los pioneros de la industria, siguen en primera línea a sus 60 años, haciendo lo que se les da bien: crear productos de principio a fin.

    by Andrés at September 07, 2015 06:30 AM

    September 04, 2015

    Andrés Maneiro

    Visualizando código por proyecto

    Hermosa visualización de líneas de código por proyecto. Me da por pensar en la complejidad que conlleva organizar personas y código para que un proyecto de esas dimensiones no descarríe.


    1276_Codebases

    by Andrés at September 04, 2015 07:08 AM

    Los ciclos pequeños

    Natalia ha escrito sobre los ciclos del tiempo y me ha hecho pensar de nuevo en lo fractal y en los ciclos pequeños como rueda dentada de los ciclos grandes. Como parece que no hay una fuerza de voluntad dada, sino microdecisiones que uno toma o no, aprovecho para traducir este viejo artículo que ahora recupera interés:

    ¿Qué tienen en común la dieta japonesa, los métodos de entrenamento de Mouriño y las técnicas ágiles de creación de software?

    • En la dieta española, típicamente, la alimentación se planifica por semana -el lunes pescado, el martes pasta, etc. En la japonesa, sin embargo, se come multitud de elementos de todos los tipos en una misma comida: el ciclo de planificación es diario.
    • En la práctica del fútbol profesional, se ejercitan varios aspectos: físicos, técnicos, tácticos, psicológicos, etc. Un entrenamiento suele consistir en varios minutos de carrera continua (para entrenar los aspectos físicos),  para luego realizar ejercicios técnicos o estrategia (lanzamiento de córner o salidas con balón) y finalmente charlas de preparación psicológicas. La metodología de la periodización táctica que ejercitan Rui Faria y Mouriño propone un entrenamento integrado, con varios ejercicios que potencian todo los aspectos al mismo tiempo.
    • En la industria de la creación de software, hasta hace poco más de una década, los productos eran concebidos con rígidas fases de producción, consecutivamente “análisis > desarrollo> test > documentación”. Con la emergencia del movimiento agile, crece la idea de que es posible crear mejores productos más rápidamente si se usan ciclos más cortos e iterativos donde se realizan todas las fases simultáneamente.

    Lo que me llama poderosamente la atención es cómo en los 3 casos se potencian los ciclos pequeños de actividad que alimentan los ciclos grandes. Y me da por pensar si ese actuar fractalmente marca diferencia alguna entre el éxito y el fracaso.

    by Andrés at September 04, 2015 06:07 AM

    September 03, 2015

    Andrés Maneiro

    Me acabo de comprar un portátil

    Luego de casi 5 años con el portátil de empresa, me he visto obligado a comprar uno nuevo. Lo cierto es que, personalmente, me daba una pereza increíble actualizarme y ponerme a comparar características para saber cual me convenía. No me llama conocer el último componente de cada aparato ni soy nada coqueto en lo que se refiere a estar a la última. Me rebelo contra las modas de hoy en día en forma consumo minimalista. Uso mis superpoderes de comprador con cabeza.

    Mi problema

    La situación actual era tan sangrante y antiproductiva que no tuve remedio: mi equipo actual tarda 6 minutos en realizar un proceso que mis compañeros de proyecto realizan en 40 segundos.

    Por otra parte, ese proceso es central a la actividad y lo tengo que realizar varias veces por hora: consiste en hacer un cambio en el código de una web y verlo, es decir, la actividad básica de cualquier programador. Sí, 6 minutos: desde que modifico el código hasta que el paquete war es generado y desplegado en un entorno Java para ser visto en una web. En ese tiempo sólo me queda esperar, pensar en el siguiente problema o resolver microtareas que me despistan del objetivo que tengo entre manos. Es decir, en 1h puedo hacer 8 cambios. Si estás leyendo esto y eres programador valora cuántos cambios necesitas para ajustar y resolver un problema habitual. Aunque moví todo lo que pude a ciclos de feedback cortos (del orden de segundos) gracias a una política de tests agresiva, hay cambios que necesito verlos en la web con otros objetos cargados (es decir, tampoco pude montar un entorno mínimo de prueba que fuese más rápido de desplegar).

    Por lo demás, el portátil actual funciona para tareas ofimáticas y cualquier otro proyecto de desarrrollo en los que participo. Evidentemente, uno nuevo siempre será mejor, pero no tenía la necesidad de cambio. Sólo por este proyecto.

    El análisis: ¿necesito más micro o más memoria? ¿un disco SSD?

    Lo primero que hice fue preguntarle a mis compañeros de proyecto cuáles tenían ellos. Quizás con algo modesto podría arreglar. Pero nada más lejos de la realidad, me quedé asombrado de las máquinas que me decían: entre 12 y 20 Gb de RAM, procesadores quad-core y discos SSD. Como mínimo. Miré los precios de mercado para algo similar … y me entró una depresión. ¿En serio tengo que gastarme esto por 1 proyecto?, pensé. No es que sea agarrado en las cosas que realmente tienen un impacto en mi vida ni mucho menos, pero hay cifras que verlas juntas generan un estado mental de desequilibrio.

    Por suerte, Fran y Pablo se habían comprado 2 ordenadores con características distintas entre sí pero en un rango de precios aceptable para mí. Abusé de su hospitalidad y les pedí que montasen un mini-entorno de desarrollo con mi proyecto en sus equipos para hacer unas pruebas. Salieron bien y recuperé un poco el color en la cara. ¡Había solución a mi dilema sin empeñarme!

    Como dije, los portátiles que usé de conejillo de indias eran diferentes (dual core VS quad core, disco SSD VS de aguja, 1.5Kg VS 2.5 KG, …) así que tampoco tenía una idea clara sobre qué estilo de portátil escoger. Durante unos días me puse a analizar cómo uso yo el equipo, si las actividades que hago son más intensivas en CPU o en RAM y si la mejora del acceso a disco que promete el SSD es en mi caso relevante. Lo cierto es que esto resultó más fácil de lo que creía inicialmente; total, tenía 6 minutos que rellenar entre cambio y cambio. Me encontré con que en mi día a día es fundamental el acceso a disco: tanto porque en los proyectos siempre uso bases de datos como por la compilación de archivos (que genera nuevos archivos en disco). El micro, en momentos puntuales llega a su límite por alguna actividad como la compilación de código pero en general está muy liberado. Los 4Gb de RAM actuales se quedaban cortos a la mínima que abría un navegador, un editor de código y alguna otra actividad. Esto encajaba con mis sensaciones en los últimos años, así que me decidí por una configuración mínima: disco SSD, un micro dual-core i7 y 12Gb de RAM, más de los que nunca creí poder llegar a usar. Con eso de mínimo, tenía garantizado que me servía para el proyecto y el gasto no era inútil.

    Me fui de nuevo a las tiendas. Casi me entra la segunda depresión. Uf, vaya precios. Por otro lado, las configuraciones mainstream no pasan de 8Gb de RAM y salirte de ahí sube un montón. Por suerte para mi bolsillo, no era prudente ponerse a cambiar de portátil en medio de un proyecto así que tenía 4 meses hasta que fuese crítico hacerlo. Podía esperar. A una oferta, a que bajasen los precios de la configuración que yo necesitaba o que los portátiles mainstream subiesen la RAM disponible. Y así me puse, a la espera, con un ojo en la marca que empaqueta los teclados que tan bien le sientan a mis manos y que construyen portátiles con certificación militar de durabilidad, por si sonaba la flauta. Por desgracia para mí, en esta iteración se habían pasado de rosca y, por los mismos componentes, salía en unos 200€ más cara que la competencia. Voy a tener que comprarme un porta de hipsters, pensé. Definitivamente no era mi mejor momento. Con todo, me dije que tenía 4 meses y que la situación podía cambiar, así que esperé.

    Durante varias semanas estuve revisando varias opciones de portátiles que me valían. El tiempo pasaba. De 6 en 6 minutos. Hasta el 27 de Agosto. Entonces, Thinkpad decidió hacer un 10% de descuento en sus portátiles por la vuelta al cole. Un 10%. Con la configuración que yo quería. Thinkpad, mi primera opción si bajaba de precio. Actué como un felino. Rápido, sin dudas. Compré.

    En un par de semanas recibiré mi nueva máquina que, además de ser preciosa, es tan potente como para enviar un satélite a la luna. Ah. Y desplegar un war a Tomcat en menos de 1 minuto. Y, no sé por qué, me da por pensar en el estado de la tecnología en el Siglo XXI. Me deprimo. ¿En serio? Nuestra profesión necesita nuevas herramientas. Esto tiene que estar mal organizado. Un war en Tomcat. Un cohete en la luna.

     

     

    by Andrés at September 03, 2015 12:00 AM

    September 02, 2015

    Andrés Maneiro

    ¿Qué es una oferta?

    Cuando uno habla de compañías de software, en ocasiones se hace necesario diferenciar entre compañías de producto y de servicio. Por la propia naturaleza de cada una, sus fases de comercialización son distintas. En una empresa de servicios cobra especial importancia la construcción de una oferta.

    Estos días mi atención ha girado en torno a esta diferencia: ¿qué es una oferta? O más concretamente, ¿qué hacen las compañías de servicio en una oferta que las de producto no hacen o hacen de otra manera?

    La oferta como fase de conceptualización del producto

    Una oferta pone sobre la mesa lo que se va a hacer y en qué condiciones compensa hacerlo. Exige realizar 2 actividades diferenciadas: problem setting y problem solving, proponer una solución y estimar cuánto lleva su ejecución.

    product-development-bill-buxtonLas compañías de producto también realizan esas actividades, pero las llaman de otra manera: fase de diseño del proyecto, ideación, conceptualización, etc. En muchos sectores (audiovisual, automóviles, etc) en esta fase inicial se realizan prototipos que permiten explorar el espacio de la soluciones, los productos posibles para el problema que uno desea resolver. Si los prototipos convencen y la idea tiene cierto sentido, se consigue presupuesto para llevarla al siguiente paso: producción. En proyectos software es mucho menos habitual ver esto, sin embargo, es igualmente necesario “pensar el producto” y “realizar el producto”. Y aunque uno no desconecta el cerebro y deja de pensar cuando empieza a ejecutar, sí es cierto que con el paso del tiempo, la actividad de “pensar” es reemplazada paulatinamente por la de “ejecutar”.

    El contexto de una empresa de servicios

    Una oferta para una empresa de servicios es el equivalente de la fase de conceptualización de producto. Pero condensada. Y con restricciones derivadas de que, habitualmente, conocer en detalle los procesos del cliente durante el momento de realizar la oferta es difícil. Tampoco es habitual construir diferentes prototipos que validen la idea y el enfoque. Por todo esto, en una oferta se concentran riesgos derivados de una concepción del producto errada o bien de una estimación optimista de las tareas. Todo aquel que haya participado en ofertas sabe que si esos riesgos emergen durante el proyecto se transforman en retrasos en las entregas, pérdida de dinero o ajustes del alcance, dependiendo de la relación cliente/productor y el tipo de contrato.

    Verlo así da un poco de miedo y parecería que las empresas de servicios son unas irresponsables que no se preocupan por pensar. Sin embargo, en muchas ocasiones, estos riesgos se ven mitigados por varios factores:

    • en general, las ofertas se realizan dentro de un dominio (banca, ingeniería civil, etc) donde los analistas tienen experiencia y un conocimiento aproximado de los procesos del cliente.
    • muchos proyectos en empresas de servicios comparten modos de hacer las cosas o código en forma de librerías que el equipo va construyendo, con lo que uno no empieza de cero cada vez.
    • hay casos donde se realiza una primera oferta de análisis, para plantear a posteriori soluciones concretas.
    • es posible incluir tiempo de conceptualización en el proyecto siempre que el cliente sea consciente de que el alcance es abierto y ajustable.
    • ciertos tipos de contratos favorecen que los riesgos de la exploración de los productos posibles sean asumidos por el cliente, por ejemplo, en aquellos con un alcance abierto pero un precio y tiempo fijados.

    Sea como sea, una oferta contiene riesgos que es necesario gestionar. Es sin duda un reto combinar la necesidad de innovación ante el agotamiento del mercado con fases de conceptualización de producto generalmente ajustadas.

    by Andrés at September 02, 2015 04:39 AM