Hola Divergentes, ya tiene como 10 días que no subo ningún post. Vamos a romper la racha con este post sobre desarrollo de proyectos. Les cuento que he estado ocupado en la chamba y he tenido que cumplir con algunas fechas de entrega y hacer algunas demostraciones. Ahora que el proyecto va agarrando forma, ya empieza a entrar por ahí el factor político. Los actores o “stakeholders” se empiezan a frotar las manos mientras yo me tengo que fletar todo el trabajo y quedarme calladito. Jajajaja. Ya escribiré un post en donde desarrollaremos un proyecto similar. Lo interesante es que es un proyecto que utiliza tecnologías relativamente recientes como el framework Quarkus.
Desde un lado más personal, estoy empezando a trabajar en un par de proyectos personales que tengo desde hace ya muchos años y que no he avanzado. El objetivo final sería que con el tiempo trabaje menos para otros y más para mi mismo. También tener algo que hacer, algo que disfrute, de aquí hasta el final de mis días.
He estado tomando un curso de Udemy para aprender a desarrollar emuladores. El nombre del curso es “Creating a Chip-8 emulator in C”. En otro post les había platicado de mis experimentos con microprocesadores setenteros. Tengo cierto gusto por lo retro aunque aclaro que no soy de los que piensa que tiempos pasados fueron mejores. Cada que uitlizo una pieza de hardware antiguo me acuerdo del porque estamos mucho mejor hoy. Regresando al tema, chip-8 es un lenguaje de programación interpretado que se asemeja mucho al lenguaje ensamblador. Este lenguaje puede ser implementado en procesadores de 8 bits y ha sido implementado hasta en calculadoras. La idea de este lenguaje era facilitar el desarrollo de videojuegos. Existen también en la Play Store un par de implementaciones. Dejo una liga a una página que contiene la especificación del lenguaje.
El emulador chip-8 es para mi solo un proyecto intermedio. Mi objetivo es desarrollar un emulador para el procesador Signetics 2560. Siento que este es un buen primer paso antes de empezar a desarrollar el hardware. No abundan los emuladores para el micro 2650 pero existe uno creado por una persona de nombre Peter Linich. El código fuente se puede descargar de su blog. Sin embargo, este software emula una placa de desarrollo de los setentas. Estas placas contenían el hardware mínimo para hacer funcionar el micro. Hace varios años probé el emulador y es extremadamente frustrante de usar ya que copia el comportamiento de la placa de desarrollo con todas sus limitaciones. Sin embargo, ahí esta la base para modificarlo y crear algo más acorde a los tiempos modernos. El emulador está creado en TCL/TK y creo que me va a ser muy útil como guía. Sin embargo, pienso hacer mi desarrollo ya sea en C, Java o Python.
El otro proyecto en el que estoy trabajando es el desarrollo de un sistema operativo desde cero. Tengo un par de libros sobre el tema pero por ahora estoy siguiendo otro curso de Udemy con el título “Developing a Multithreaded Kernel from Scratch!”. De este curso fue de donde salió la idea para escribir el post donde se explica como compilar un compilador cruzado.
¿Y todo esto para que? ¿Para dármelas de gurú de la tecnología y embarrarle en la cara a todo el mundo mis exquisitos conocimientos? No. Quiero lograr dos cosas antes de morir: aprender como desarrollar un producto e ir documentando el proceso con la esperanza de inspirar a otros.
Lo que sigue es una crítica tanto a nuestra cultura como a mi mismo. En México hay mucho ingenio. A cada rato leo en las noticias sobre estudiantes que fueron a tal o cual concurso internacional y se trajeron los primeros lugares. Estudiantes que con recursos escasos logran desarrollar prototipos de robots maravillosos. Sin embargo, ninguno de esos esfuerzos llega nunca a una etapa de comercialización. Todos esos esfuerzos eventualmente mueren. Somos excelentes generando ideas, haciendo investigación y construyendo prototipos, pero hasta ahí llegamos.
Abajo muestro una lista de las etapas del desarrollo de productos. Nosotros invariablemente nos quedamos en la etapa 4. Construcción de prototipo. No hay una investigación de mercado aunque existe alguna investigación de tipo técnico. Las etapas 5 y 6 son las más difíciles ya que se requiere dejar listo el producto para comercialización. Se requiere limpiar los defectos y limitaciones que todos los prototipos tienen, seleccionar materiales, buscar proveedores, buscar el financiamiento, conocer a que tipo de manufactura se tiene acceso. Es bastante aburrido y consume mucho tiempo y dinero.
- Ideas
- Investigación de mercado
- Planeación estratégica
- Construcción de prototipo
- Financiamiento
- Manufactura
- Distribución
Dejo abajo un video de Freddy Vega que a mi me gusta mucho. Se aborda el tema de por qué las startups en Latinoamérica no triunfan. No tiene pierde.
Resumo los puntos importantes del video anterior.
- Microenfoque, visión a corto plazo;
- Carecemos de una cultura de excelencia, talento;
- El talento trabaja duro, excelente, inteligente y eficiente;
- Es difícil conseguir el dinero e inversión. Hay mucha aversión al riesgo;
- Silicon Valley y su problema de discriminación. Si tienes la piel clara tienes mejores posibilidades de éxito;
- Sistemas de pago, comercio online subdesarrollados;
- Fraude rampante y muy desarrollado;
- Gobierno como principal consumidor;
- Mediocridad emprendedora, falta de sofisticación.
Ex-Ingeniero Mecánico, Ex-Investigador, mi verdadera pasión es el Desarrollo de Software. Me he acomodado bastante bien en el mundo corporativo aunque espero poder independizarme en algunos años y eso solo para saber que se siente ser dueño de una empresa.