Entradas

Reutilizar frameworks de otros negocios

Qué tal si hacemos algo como Netflix pero para el mercado de la ropa? Escuché algo así en una clase de LinkedIn. Y enumeraban a continuación los pasos necesarios para recrear el camino de Netflix, pero en este nuevo contexto de la ropa. Recrear. Volver a pelear esas batallas. Me pregunto si no habrá un modo de usar la infraestructura de Netflix, o su framework, para no tener que reinventarlo a cada rato. Y no solo de Netflix sino de otras innovadoras. Y que esto se pudiera seguir haciendo. Quizás se requeriría poder extraer los componentes reutilizables de modo que fueran independientes del giro del negocio. En software, por ejemplo, se puede separar la lógica del negocio de la del framework. En lo que se llama Clean Architecture. Quizás algo similar se podría hacer con las operaciones de una empresa.

Aprovechar el agua de lavado para los inododoros

Imagen
El agua que se usa en el inodoro suele ser igual de limpia que la que sale del grifo para beber, y no es necesario. Hay cierta agua que podría ir a un reservorio para consumo de inodoros. Por ejemplo el agua que las lavadoras envían al drenaje con cada enjuague. Las lavadoras podrían tener un medidor para determinar cuando su desagüe es apto para almacenar en el reservorio para inidoros. Los inodoros podrían tener un sistema de descargas que le permita usar agua de ese reservorio principalmente y minimizar el uso de agua limpia. Adicionalmente, el reservorio de agua para inodoros pordría tener un sistema simple de tratamiento de agua.

Cardumen de conocimientos

Imagen
Muchas personas no enseñan las cosas del modo en que ellas lo aprendieron sino que lo hacen desde su punto de vista actual. Puede ser que alguien gane con el tiempo una mejor perspectiva de lo que le pasó y eso le sea útil para enseñar mejor cierto tema. Quizás dándole más contexto, conexiones o matices que los que pudo disponer en su momento. Muchas veces se deja pasar un tiempo, se recolecta el material para cierto tema a enseñar y se lo prepara de un modo que nos parezca lógico y cuya efectividad depende de la habilidad del maestro. Se suele llenar al alumno de definiciones que debe recordar para cuando llega al enunciado central. Es cansado de elaborar, es cansado de aprender. Pero, principalmente, no es natural. En contraste, cuando uno investiga en el mundo real, se enfrenta a algo que debe descubrir debajo de muchas capas, como quien pela una cebolla, e ilustrar con definiciones que va elaborando, hasta que es capaz de volver sobre sus pasos y contar la historia en limpi...

Planificación e Impulso

Cuando no se pudo enviar un mensaje de texto, revisé y comprobé que ya no tenía saldo suficiente en el celular. Pasaron unos minutos y recordé que tenía que avisarle algo a mi hermana. Tomé el celular e iba a empezar a escribir el mensaje cuando recordé que no tenía saldo. Yo sabía que no tenía saldo. Sin embargo, inicié la acción y sólo después de cierto avance recordé que no tenia todos los requisitos para completarla. Fue como un impulso. Cuando uno inicia una acción por impulso, va resolviendo lo que necesita mientras avanza. Llega a un punto donde decide si continuar o avanzar. Pero, si falta un requisito esencial, como en el caso que describo, quizás podría haber sido útil hacer una especie de planificación (como un rápido checklist) antes de iniciar la acción. Uno podría pensar en acostumbrarse a planificar cada acción antes de realizarla. Sin embargo, pienso que siguiendo una acción por impulso, podría también, a veces, reconocerse alternativas que no son claramente v...

Sistema con convención en lugar de configuración

Algo que me gustaba mucho de los programas DOS era que podía copiar el directorio de un programa y moverlo a cualquier lugar, incluso a otro disco, y debía seguir funcionando. Bueno, casi siempre. Con el tiempo empezaron a aparecer programas que tomaban nota de su ubicación y la de otros directorios y había que tomar en cuenta eso a la hora de intentar moverlos. No me agrada mucho la idea de necesitar un programa de instalación para poder usar un programa. Porque los programas instalados suelen ser difíciles de mover o eliminar. Hay que usar programas intermediarios para hacer eso. Aparece una burocracia que no ayuda a hacer más simple el mantenimiento del sistema. En cambio, me gustan los programas portables. Que simplemente se desempaquetan y ya están listos para usar. Puedo ubicarlos en cualquier lugar. Incluso puedo tener más de una copia y ejecutar cada una de ellas de modo diferente. Es más libre. La tendencia de usar instaladores no solo está en Windows, también en Linux...

unobstrusive web dev

Imagen
En el desarrollo web, cuando se trata de sites muy simples, se puede usar HTML, CSS, javascript y flash. Para volver el site dinámico, usualmente ese trabajo debe ser reescrito, para expresarlo en términos del framework que estemos usando. Por ejemplo, para usar PHP, en la forma simple, se puede ingresar código a la página y luego renombrarla, para darle la extensión .php. Para usar un framework PHP de tipo MVC, hay que definir vistas que reproduzcan lo que se se veía en el diseño estático, y colocar placeholders que se reemplazan con el contenido generado con controladores y modelos. Para usar un framework PHP de tipo Drupal, es similar. Hay que definir templates que reproduzcan lo que se veía en el diseño estático, y colocar placeholders que se reemplazan con el contenido generado con módulos. Si luego decido cambiar de framework, hay que volver a definir las vistas/templates y la colocación de placeholders. Es como traducir el trabajo de un idioma a otro. Durante varios ...

Estático y Dinámico

En el desarrollo web, se llama páginas estáticas a aquellas cuyo contenido está fijo y determinado de antemano. En cambio, las páginas dinámicas tienen un contenido variable que puede ser determinado por la entrada del usuario, la hora, u otros parámetros. De modo similar, pienso en las películas. Cuando se hace un video, se prepara todo de antemano para la presentación que se hará. Nada cambia. Es contenido estático. Lo mismo se podría decir de las fotografías. Me pregunto si sería posible hacer imágenes, fotografías y videos dinámicos. O incluso música. Contenido multimedia que sea variable y pueda ser determinado por parámetros externos. Sería interesante. Imagine un comercial con texto que se pueda cambiar sin rehacer el comercial. O que muestre diversas escenas según la hora en que es emitido. Imagine una fotografía también con texto variable... El efecto se puede conseguir en web programando presentar diferentes fotografías o videos según las circunstancias, pero imag...

Polvos Virtuales

En Lima, Perú, hay galerías comerciales llamadas Polvos Azules, Polvos Rosados, y así por el estilo. La idea es que son populares y allí uno puede conseguir cosas interesantes a buen precio. Hace varios años empecé a recibir solicitudes de personas que estaban interesadas en tener presencia comercial en Internet. Tenían algún tipo de producto o servicio que les gustaria fuese dado a conocer en la red, de manera atractiva, como habían visto que otros negocios hacían. Aparte de mis limitaciones como diseñador (creo que soy mejor programador), una de los principales obstáculos era que muchas veces el precio del trabajo de hacer un site era más de lo que estaban dispuestos a pagar. Y, por lo que querian pagar sólamente se podía hacer algo no tan espectacular como lo que querían para atraer a su público. Una forma de solucionar esto es reducir la dificultad del trabajo, reutilizando elementos de una galería de trabajos previos (que yo no tenia). Sin embargo, me pareció que había u...

Pintando como en el mundo real

Imagen
En los programas como Photoshop, se suele contar con pinceles, máscaras y otras ayudas para crear imágenes. Ese ambiente artificial de pintura permite hacer muchas cosas interesantes. Sin embargo, me gustaría contar con la posibilidad de reproducir el comportamiento de elementos de pintura del mundo real. Por ejemplo, diversos tipos de papel, con diversas texturas y grados de absorción de tinta. Que la tinta se pueda expandir en un papel absorbente a medida que transcurre el tiempo (el cual se debería poder manipular también). Que la tinta se seque en grumos. Ver las marcas que dejen no sólo pinceles, sino espátulas, esponjas, manos, dedos u otros objetos que se puedan definir con libertad y comodidad, o conseguir de un estante. Que la pintura se pueda aplicar como resultado de eventos físicos, como el lanzamiento de una partícula de pintura, de un chorro, de un globo, etc. Que la pintura se pueda combinar como en la vida real, permitiendo dejar vetas mezcladas con vetas. Que r...

Email con más opciones

Imagen
Voy anotando aquí algunas opciones que me gustaría tener en un cliente de email. Es posible indicar que el email sea enviado cuando se cumpla cierta condición. Por ejemplo, en cierta fecha dada, en cierta hora, al recibir cierta respuesta, etc. Es posible indicar que el email sea reenviado cada cierto tiempo hasta que se cumpla cierta condición. Es posible indicar si un attachment debe llegar o no a cada uno de los destinatarios. Es posible indicar si se desea que el notificador avise cuando este mensaje sea respondido.

Los recuerdos ahí afuera, o la mente antena

Imagen
Probablemente casi todas las personas piensan que sus recuerdos están guardados en su cerebro. Hemos sido enseñados a pensar de ese modo y posiblemente los científicos llegaron a esa conclusión por la forma en que fueron también educados. Me pregunto si en aquella época habría radio o televisión. ¿Qué tiene que ver eso? Pues tiene que ver con que imaginar que el cerebro es una caja conteniendo nuestros recuerdos no es la única opción. De hecho, parece que deja sin explicación muchos otros hechos que la gente experimenta. Con una radio puede escuchar cierta música. Ahora, usted sabe que la música no está realmente en la radio, sino en la emisora. Que la radio es simplemente algo que nos permite captar esa música y escucharla. Sabe que, por más que busque dentro de la radio, nunca encontrará rastros de la música que acaba de oir. Pero, si no lo supiera, quizás imaginaría que la música está dentro, como lo hacen muchos niños o personas que se enfrentan por primera vez a una radio. ...

TDD para educación

TDD (Test Driven Development, Desarrollo basado en pruebas) es una metodología de programación que consiste en elaborar primero una prueba de lo que se quiere programar, y luego recién ponerse a programar, pero dando pasos de bebé, los más pequeños y simples posibles, justo lo necesario para pasar la prueba. ¿Por qué se hace así? Bueno, en el desarrollo de software ocurre con frecuencia que uno no sabe cuando detenerse. Algunos programadores tienden a hacer un superconjunto que contenga la solución y eso, aunque a primera vista parezca bueno, es en realidad contraproducente. Como cada paso que se dá es un lugar de error potencial, minimizar el número de cosas que hay es una manera de minimizar también el número de cosas que pueden fallar. Además, si el cliente no lo pidió, significa que estamos contaminando su conjunto de requerimientos con los nuestros o los de alguien más. Al final le entregaríamos opciones que posiblemente no usará y estarán, ya sea estorbando entre las otras op...

Imagino... imaginemos

Imagen
Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana. Pero si tú tienes una idea y yo tengo una idea e intercambiamos ideas, entonces ambos tendremos dos ideas. -- George Bernard Shaw Creo que las personas no somos sino canales a través de los cuales pueden pasar las ideas. Como los cauces que conducen el agua desde las montañas hasta el mar. Puede ser mi cauce amplio y generoso, recibiendo y dando. Agradeciendo que así sea. Atendiendo lo mejor que pueda el regalo que llega para que pueda seguir fluyendo. El agua, las ideas, la vida... siempre se abren paso.