Conociendo un ODROIDAN: Dongjin Kim

Meet an ODROIDian - Dongjin Kim

Por favor, háblanos un poco sobre ti.
Soy un ingeniero de software embebido, he participado en muchos y diferentes proyectos comerciales desde 1994. Actualmente, estoy desarrollando el software para un dispositivo móvil que se ejecuta sobre un procesador ARM y trabaja principalmente con un driver de dispositivo o capa HAL/framework. Nací en Corea del Sur, estoy casado y tengo un hijo de 10 años. Desde diciembre de 2015, me encuentro vivido lejos de mi familia en Kitchener, Ontario, Canadá. Mi familia todavía vive en Corea del Sur, y los visito de vez en cuando. Fui a la universidad en Corea y tengo dos licenciaturas en informática y microelectrónica. Estudié microelectrónica tras algunos años de experiencia como ingeniero de software en el campo industrial.

Figure 1 - Boat tour at Niagara Falls
Figura 1 - Paseo en bote sobre las Cataratas del Niágara

¿Cómo empezaste con los ordenadores?
No tenía suficiente nota en el instituto como para ir a la universidad, así que decidí aprender programación a través de cursos de capacitación laboral que estaban disponibles en mi instituto para estudiantes de pre-grado. En realidad, quería aprender dibujo que era lo que más me gustaba en aquel momento, pero no estaba disponible entre los cursos que podía elegir. Cuando tenía 14 años, llegué a memorizar todo un libro de programación Apple//e BASIC, aunque nunca escribí una sola línea de código. Durante 6 meses, aprendí diferentes lenguajes de programación y probé un ordenador de escritorio compatible IBM XT y un IBM S360.

Como no me podía permitir el lujo de tener mi propio ordenador antes de conseguir un trabajo, me costó bastante encontrar un ordenador que me permitiera ejecutar mis programas en MS-DOS. También usé ordenadores para ayudar a muchos amigos a completar sus proyectos y tareas escolares. Mi lenguaje favorito era Pascal, el cual me permitió familiarizarme aún más con la arquitectura de programación, pero recurrí a C/C++ para un proyecto embebido en mi primera empresa en 1994, el cual ha sido mi principal lenguaje de programación hasta el momento.

Más tarde, me interesé más por el diseño de sistemas operativos y hardware, así que hice un curso de microelectrónica en otra universidad. Tuve un proyecto para diseñar el hardware de ordenador de 16 bits con NEC v25 y desarrollar un software para ejecutar una pantalla LCD y un teclado mono-color. No podía costear el desarrollo de una PCB personalizada para este proyecto, así que tuve que conectar todas las señales con cables de envoltorio durante 3 días y noches para conseguir el tan ansioso "¡Hello world!" en la salida serie. Este proyecto me animó a seguir aprendiendo más a cerca de la arquitectura de los ordenadores y los sistemas operativos. Todavía conservo esas placas originales, aunque les faltan muchos componentes, ya que tuve que usarlos para otro proyecto con posterioridad.

¿A quién admiras en el mundo de la tecnología? Admiro a Steve Wozniak. Muchas personas recuerdan a Steve Jobs, quien marcó un antes y un después en la industria TI. Creo que Steve Jobs solo pudo hacer realidad sus ideas porque conoció a Steve Wozniak, quien realmente hizo cosas y ayudó a extender las ideas de Steve Jobs. Siempre he deseado ser como él.

Figure 2 - Building Apple Classic like case for ODROID with my son
Figura 2 - Montando Apple Classic como carcasa para el ODROID con mi hijo
Figure 3 - Design of Apple Classic like case for ODROID
Figura 3 - Diseño de Apple Classic como carcasa para el ODROID

¿Qué te atrajo de la plataforma ODROID? Me interesa más resolver problemas que usar un hardware para un determinado propósito. Muchos de los miembros del equipo de Hardkernel han sido compañeros de trabajo en otra empresa antes de que se fundara Hardkernel. He ayudado al equipo de Hardkernel a resolver algunos problemas que experimenté en otros proyectos con el fin de implementar mis ideas en la plataforma ODROID. ODROID tiene más potencia de cálculo que otras placas SBC, y me gusta lo que el equipo de Hardkernel está haciendo en ODROID para sus usuarios. Espero que ODROID se vuelva más popular.

Figure 4 - Design of Cloud Shell
Figura 4 - Diseño de Cloud Shell

¿Cómo utilizas tus ODROID? Bueno, generalmente no uso mis ODROID más que para el desarrollo de código para ODROID. En contadas ocasiones he Intentado usar ODROID para otros proyectos a modo de prototipo o con una finalidad personal ya que, irónicamente, no soy un gran fan de usar un dispositivo electrónico para mi propio interés personal. Creo que los ODROID tienen grandes posibilidades de volverse más populares y de poder ayudar a mucha gente. Por lo tanto, normalmente ejecuto ODROID cuando encuentro un problema interesante en los foros ODROID o cuando algunas personas me piden ayuda personalmente o por correo electrónico.

Figure 5 - Running SNES on Apple Classic like case with ODROID-C1
Figura 5 - Ejecutando SNES sobre Apple Classic con el ODROID-C1

Has creado muchos proyectos de software útiles basados en la tecnología ODROID. ¿Qué te motivó a desarrollarlos? He desarrollado muchos parches para el Kernel Linux y HAL/framework de Android para ODROID. La mayoría de ellos están destinados a adaptar el kernel Linux o la plataforma Android BSP proporcionada por un proveedor de SoC. El resto es para ayudar a los usuarios ODROID a usar sus placas de un modo más cómodo, de esta forma las placas ODROID podrían llegar a ser más famosas y es bastante probable que los usuarios utilicen más las placas ODROID que otro tipo de placas SBC.

El dispositivo CloudShell para ODROID-XU4 es una demostración de cómo los ODROID funcionan como sistemas informáticos normales. He contribuido con muchos parches en los repositorios de GitHub ODROID y en mis propios repositorios para mejorar las características, aunque muchos de ellos están sin terminar o suspendidos. Estoy intentando hacer un parche y contribuir con la línea principal del kernel Linux o al repositorio de Hardkernel siempre que disponga de tiempo. Me satisface mucho ayudar a los usuarios ODROID a resolver sus problemas.

Figure 6 - The first mockup of CloudShell
Figura 6 - El primer prototipo de CloudShell

¿Cuál es tu ODROID favorito y por qué?
El ODROID-X es mi favorito, ya que fue el primer dispositivo que me motivó para enviar un parche a la línea principal del kernel Linux. He enviado algunos parches para introducir el ODROID-X en el Kernel 2.6 de Linux, pasé mucho tiempo trabajando en él, así como ayudando al escritorio de Ubuntu a ejecutar el framebuffer de Linux en 2012. Creé y presenté el archivo de la placa ODROID escrito en C, al kernel Linux, pero la fusión fue denegada, ya que, en ese momento, la mayoría de los desarrolladores de ARM se movían en el árbol del dispositivo en lugar de un archivo de placa en C. Como resultado, tuve que invertir una gran cantidad de tiempo aprendiendo cosas nuevas, y finalmente mi archivo de árbol de dispositivo para el ODROID-X fue aceptado en 2013.

¿Qué innovaciones te gustaría ver en futuros productos Hardkernel? Me gustaría que los ODROID fuesen tan populares como la Raspberry Pi y que proporcionen más potencial de hardware en forma de hardware para pequeños dispositivos, y una versión un poco más grande para hardware de escritorio. Tal vez algún día, muy pronto, ODROID se convierta en el estándar para plataformas de escritorio basada en ARM para la denominada pequeña informática, pero seguiría siendo lo suficientemente barata para el uso corriente.

¿Qué pasatiempos e intereses tienes aparte de los ordenadores?.
Me gustó la fotografía, aunque ya no tengo tiempo debido a mi vida tan ajetreada

¿Qué consejo le darías a alguien que quiere aprender más sobre programación?
Me digo a mi mismo todos los días que debo escribir un código para que otra persona entienda mi idea con una mínima explicación. Solía decir esto a mí mismo y a los miembros de mi equipo, no alejándome demasiado de lo que realmente era necesario. La programación es simplemente una habilidad para trasladar una idea a un ordenador, y lo importante y difícil es encontrar la razón por la cual el código es necesario y por qué queremos hacer la tarea con un ordenador. Si la razón y el objetivo son obvios, las habilidades de programación se deducirán directamente.

Be the first to comment

Leave a Reply