Alma de estudiante

Ya es noviembre. Entre una cosa y otra, el año se pasa volando.

Hoy quiero hacer a un lado todas las entradas pendientes e incompletas que tengo para este blog y hablar un poco de lo que he hecho en poco más de un año.

En julio del año pasado viajé a Singapur, y en su momento escribí al respecto, pero no ahondé mucho en el tema de qué estaba haciendo por razones de manejo de información por acá. Ahora sí puedo al menos decir qué estoy haciendo sin temor a represalias por parte de la compañía en la que laboro.

El proyecto en el que estoy es sobre reconocimiento de escritura a mano usando redes neuronales, o para que suene más fancy, “Deep Learning“. Esa expresión ha cobrado mucha fuerza en los últimos años, al grado de haberse convertido en “Buzzword” y estar en boca de todos, aun en la de muchos que no tienen ni idea de qué onda. ¿No creen? Simplemente les menciono el ejemplo de una persona que quería ponerle Deep Learning a su sitio web para que fuera más llamativo…

Ahora bien: no es que yo haya estado alejado del área de aprendizaje máquina (ML – Machine Learning), puesto que cuando haces procesamiento de lenguaje natural usas algunas de sus técnicas (por ahí tengo un monstruo de código en Scala cuando quise implementar desde cero un clasificador bayesiano ingenuo), pero sí es la primera vez que trabajo con datos que no son palabras, y al mismo tiempo nunca me había metido tan de lleno a redes neuronales. Digamos que soy fan de las Support Vector Machine aunque las comencé a usar mucho después de haberme graduado. Por tanto, es la primera vez que me meto de lleno a las redes neuronales.

El caso es que he estado trabajando en ese proyecto desde hace más de un año, y aunque hemos obtenido avances significativos (nada todavía que sea digno de publicarse), sí tengo que mencionar que la burocracia japonesa (no necesariamente de esta compañía, sino de la forma en la que se hacen negocios en Japón) en general ha hecho que el proyecto vaya muy lento y que, como cualquier proyecto de software, deba de hacer ajustes a la mitad o cambios de esos que eran para ayer.

Ha habido muy buenas ganacias personales y profesionales a lo largo de este tiempo. Entre las más importantes puedo mencionar las siguientes:

  • Asistencia a conferencias importantes en el área de procesamiento de lenguaje natural. Este año he ido a 3: la de la sociedad de procesamiento de lenguaje natural de Japón en marzo, en Tsukuba; a la de la sociedad de inteligencia artificial de Japón en mayo; y a EMNLP 2017 en Dinamarca en septiembre. Sí, pisé tierras europeas por primera vez en mi vida. Esto conlleva también conocer a mucha gente, incluyendo a mexicanos que le están echando ganas en el extranjero dentro de la misma área.
  • Clase de Deep Learning en la Universidad de Tokio. Tomé la básica y ahora estoy tomando la avanzada, la cual termina en enero de 2018.

También es digno mencionarse que he aprendido a lidiar (léase: “perder toda la motivación”) con administradores de proyecto que se creen expertos en IA y que dicen cada sarta de p… aserciones incorrectas, y que en más de una ocasión me han ocasionado severos dolores de estómago porque a fin de cuentas dentro de la jerarquía japonesa ellos son los jefes y los de arriba solamente los escuchan a ellos… Experiencia amarga, sí, pero experiencia al fin y al cabo.

El título de esta entrada se refiere a que más que estar produciendo he estado del lado del aprendizaje, y ahora con el curso de la Universidad de Tokio ha revivido por completo el alma de estudiante, ya que el proyecto final es precisamente un sistema que use Deep Learning para algo, y todos mis compañeros de equipo son estudiantes de esa universidad; esto no me convierte inmediatamente en un líder, pero aquí sí comienza a pesar la experiencia de haber trabajado, sobre todo a la hora de dividir responsabilidades.

Con sus altibajos como casi cualquier cosa, más o menos en eso se ha resumido mi vida profesional desde julio de 2016 hasta la fecha. Así me he estado divirtiendo. No obstante, debo mencionar también que por obra de la misma burocracia mencionada arriba a veces pierdo todas las ganas de hacer las cosas y ha habido momentos en los que sí quiero mandar todo a la burger, pero luego recapacito, me tranquilizo y recuerdo que todavía no es el momento, pero que llegará.

Ahora nada más como dato cultural, dejo una breve explicación de lo que he aprendido y también referencias para quienes quieran leer más a detalle al respecto. Disculpen la terminología en inglés, pero es más fácil dar con información en ese idioma.

Primero que nada, omitiré todo lo referente a MNIST, puesto que hay infinidad de tutoriales y modelos que funcionan bastante bien. MNIST es como el “¡Hola mundo!” en ML, y curiosamente trata precisamente de reconocimiento de escritura a mano, aunque solamente de números. Si quieren probar por su cuenta, Tensorflow tiene un tutorial básico y uno avanzado al respecto.

Si buscan “Handwriting Recognition Deep Learning”, casi todos los papers que encuentren van a referenciar al trabajo de Alex Graves titulado “Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks”. Esta técnica ha hecho posible reconocer secuencias de caracteres sin necesidad de segmentarlos previamente. En sí, CTC puede ser aplicado al resultado de cualquier RNN, siendo hasta hace años las Bidirectional LSTMs , es decir: LSTM que no solamente toman en cuenta “el pasado”, sino también “el futuro”; conociendo más el contexto, los resultados obtenidos mejoran considerablemente; pero Alex Graves también presentó una alternativa a las BiLSTMs que mejoró todavía más los resultados: Las Multidimensional LSTMs (MDLSTMs), que lo que hacen es no nada más tomar en cuenta adelante y atrás de la secuencia analizada, sino también arriba, abajo, y cualquier otro punto en otra dimensión que colinde con el elemento analizado (una 2D MDLSTM analiza secuencias en 2 dimensiones – como imágenes; una 3D analiza secuencias en 3 dimensiones – como video, etc.). Gracias a que toma en cuenta mucho más contexto que las BiLSTM, las MDLSTMs presentan mejores resultados cuando son aplicadas correctamente.

Ahora bien, es muy importante tener datos para hacer que la computadora “aprenda”. Una buena base de datos para esta tarea es la de IAM. Es gratuita, solamente hay que registrarse para obtenerla.

He estado trabajando en diferentes frameworks:

Si se quieren quitar de broncas, Keras hace la vida muy sencilla. Lo usé durante un tiempo y, de entre los mencionados arriba, es mi framework favorito. Sin embargo, Keras es una librería de alto nivel que corre por encima de Tensorflow, CNTK o Theano, por lo que si necesitan hacer algun cambio significativo a bajo nivel, quizá no es opción.

Aprendí Tensorflow más motivado por conocer más profundamente las opciones que tiene que por obligación. Tensorflow es más difícil de digerir porque maneja un modelo de primero construir todo en grafos y estos se ejecutan solamente cuando es requerido, haciendo más difícil la depuración de los modelos (aunque justamente ayer Tensorflow sacó su versión experimental de Tensorflow Eager para evitar eso). Para que se den una idea muuuuy vaga, aprender Keras es como aprender Visual Basic (sin lo chafa, claro), y aprender Tensorflow es como aprender lenguaje C.

Torch es más por necesidad que por gusto. Aunque existe PyTorch, que es la versión de Python, el lenguaje original de Torch es Lua. Bien… otro lenguaje que aprender :/

En fin. La idea es que la computadora reconozca la escritura a mano de cierto lenguaje. Alex Graves presentó hace años un gran trabajo reconociendo escritura arábica, siendo que él no habla árabe. Las contribuciones de Alex Graves hacen posible omitir la segmentación de caracteres, puesto que los trabajos anteriores generalmente dependían de que cada carácter estuviera previamente segmentado y después se usaba algo como un diccionario o modelo de lenguaje para corregir posibles errores (se sigue haciendo y es recomendable, pero antes la dependencia era mayor).

Como ya he mencionado, aunque no he obtenido resultados dignos de ser publicados, ahí van las cosas. Al momento de escribir esto estoy relegado a hacer talacha en Lua (más programación que investigación), pero espero que sea solamente temporal. Y de pilón, también soy sysadmin de los servidores con los que trabajamos. Digamos que los demás aquí no tienen mucho conocimiento de Linux :/

¿Sabías que…? – Parte 28

Aunque ya he escrito anteriormente sobre lo poco que sé de música (he mejorado, denme crédito por eso :P), me sorprendió mucho que en Japón hay canción para casi cualquier cosa. Exagero un poco, cierto, porque por ejemplo de tantas melodías que mi esposa menciona siempre le digo que seguramente hay canción del mosquito en japonés (no, no hay). No obstante, una canción, o mejor dicho, tonada, se me quedó muy grabada desde la primera vez que la escuché, y es muy común en Japón.

¿Sabías que en Japón las tiendas ponen la melodía de la canción “Auld Lang Syne” cuando faltan más o menos 10 minutos para cerrar?

Seguramente muchos de ustedes conocen la canción, pero si hay alguien que, como yo, ni enterado de su existencia estaba hasta antes de vivir por acá, es una canción escocesa que consiste en un poema escrito en 1788.

Sin embargo, si le preguntan a un japonés el título de la canción, seguramente les responderá “蛍の光” (Hotaru no Hikari, La luz de las luciérnagas). Esto es debido a que esta canción toma la melodía de Auld Lang Syne pero con letra completamente diferente, escrita por ahí de 1881 por un japonés llamado Chikai Inagaki.

Esta melodía la ponen en muchos establecimientos, como centros comerciales, tiendas de ropa, supermercados, etc., y cuando los japoneses la escuchan, inmediatemente entienden que el lugar está por cerrar. Por tanto, cuando vengan a Japón y la escuchen en algún lado, quiere decir que el lugar está cercano a su hora de cierre y hay que apurarse a salir o a terminar las compras.

 

 

Fanatismo – un ejemplo práctico

Hace unos días envié un tweet ligando la siguiente nota:

https://www.nishinippon.co.jp/nnp/national/article/366336/

Es un artículo en japonés. Generalmente cuando refiero algo en ese idioma casi nadie me pregunta de qué trata lo que mencioné, pero en este caso sí, y pensando que podía responder fácilmente en 140 caracteres, me di cuenta de todo el contexto que se tiene que saber para poder entender por qué mi comentario al respecto fue “Aquí es cuando uno pierde la fe en la humanidad”. Como la persona que me preguntó es uno de mis mejores amigos y estamos en un grupo de Whatsapp, decidí responderle por ese medio, pero no imaginaba que tendría que desarrollar tanto el tema, por lo que, después de ver la cantidad de texto que escribí, decidí convertirlo en una entrada del blog.

Aquí vamos:

Continue reading Fanatismo – un ejemplo práctico

23

Vivir en un país diferente a donde creciste conlleva muchos retos. El más obvio es, sin duda, el lenguaje. Cierto es que en Japón puedes vivir sin hablar mucho del idioma (o ni una pizca, conocí gente así), pero eso no lo hace más fácil, pues siempre estás dependiendo de alguien para que te saque de cualquier apuro, y por mucho que se diga que los japoneses son muy corteses y siempre están dispuestos a ayudarte, también tienen un límite en lo que pueden hacer por uno.

Pero dejemos el lenguaje a un lado. Sí, es quizá el punto más importante de vivir en otro país, pues así puedes conocer de primera mano lo que está sucediendo a tu alrededor: noticias, alertas de misiles o de terremotos, ofertas en tu supermercado local, etc., etc., pero aquí me quiero enfocar en otro punto que muchas veces ni lo pensamos porque, siendo sinceros, a muy poca gente se le ocurre que le puede pasar: un encuentro cercano con la ley y el crimen.

Como ya lo he comentado en diferentes ocasiones aquí en el blog, y otras tantas en las transmisiones en vivo, Japón es un país con un índice de criminalidad bajo. Tengan en cuenta que eso no significa que aquí no haya crímenes estilo telenovela o novela de misterio escrita por alguna mente torcida, sino que, en teoría, las probabilidades de que algo así pase son mucho menores a las de, por ejemplo, México. Ciertamente se respira un aire de tranquilidad cuando vas caminando por las calles, incluso a la mitad de la noche, y se siente raro (aun después de tantos años viviendo aquí) poder dejar tus cosas en la mesa e ir a pedir una bebida al mostrador de un café sin temor a que se las vayan a robar. “¡Es perfecto!” dirían unos, “¡parece un sueño!”, exclamarían otros. Y aunque sí, debo reconocer que así se siente, eso no quiere decir que no tienes que usar el sentido común en lo que a seguridad se refiere, solamente quiere decir que, en muchos aspectos, puedes estar más tranquilo (y con las noticias que se leen a diario de lo que sucede en México, es lógico que quienes leen esto sobre Japón lo eleven a niveles celestiales).

Así como el crimen es relativamente bajo, Japón se vanagloria de que más del 99% de los crímenes que se reportan son resueltos, es decir, se encuentra y se procesa al culpable. Suena impecable, casi perfecto. Pero aunque por un lado suena bonito, la otra cara de la moneda nos enseña un lado de Japón que muchos no conocen, y otros ruegan no tener que enfrentarlo: su sistema legal.

Aclaro que no soy experto en el tema, y que para consultas más detalladas es mejor buscar en fuentes oficiales, para que no vayan a tomar esto como un “vamos a preguntarle a Manuel cuáles son nuestras opciones si nos pasó esto y esto y esto”. Literalmente no soy abogado, así que por más que lo que escriba aquí suene como que sé mucho del tema, nada supera a una consulta legal con abogados de verdad. Recuerden que esto es solamente informativo. Como nota extra: aunque parezca chistoso que tenga que hacer esa aclaración, en realidad en los últimos meses he recibido correos en los que me hacen preguntas que son totalmente del área legal y que, por ende, no puedo responder. Haber vivido en Japón por más de 14 años (al momento de escribir esto) no implica que sé exactamente cómo se manejan todos los posibles casos. Para eso hay abogados en derecho internacional.

Dicho lo anterior:

Continue reading 23

Fcitx en Ubuntu 16.04 después de actualizar

Debido a que escribí en Twitter al respecto, y que en general no tengo que editar mucho cuando escribo cosas técnicas, decidí dejar esto por acá para la posteridad (y a ver si a alguien más le sirve).

Hace unos días, actualicé la máquina que uso en el trabajo. Tenía Ubuntu 14.04 y todo funcionaba bien, pero el día apenas comenzaba y yo estoy súper atorado en el proyecto en el que estoy, por lo que decidí darme un “descanso” y actualizar a 16.04.

Todo estuvo bien, salvo unos archivos de apt. Pero cuando llegué a la configuración del método para escribir (donde agrego lo necesario para escribir en japonés), tuve un problema: ibus no reaccionaba. Pensé que era buena oportunidad de cambiar a fcitx, ya que en casa lo instalé y no medio problemas. No fue el caso en la máquina del trabajo: fcitx funcionaba en la terminal y en algunas otras aplicaciones, pero en Chrome, Firefox o similares, nada. Tampoco en Gedit… y fue eso último que me llevó a pensar que quizás había un problema con esa configuración.

En mi .xsession, tenía configuradas estas 2 variables:


export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

(que si no hay razón para seguir usando XIM es harina de otro costal). Cambié a:


export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

Pero nada…Pasé un buen rato buscando algo de información, pero no daba con algo en concreto. Obviamente había buscando en la información oficial, pero no lo hice de nuevo después de pensar que GTK podría ser el problema.

Me encontré entonces en el FAQ de fcitx:

  • If you are using Ubuntu and upgrade to 12.04 recently, or something werid happens to your system (Due to packager careless, or buggy package manager which can not do upgrade in correct order, for example, pacman), you might notice that gtk.immodules related files doesn’t generate correctly during upgrade. Try uninstall fcitx-frontend-gtk2fcitx-frontend-gtk3 or coressponding package on your system and re-install them to trigger the file generate. Then recheck the input method menu to see whether it have “Fcitx” in the menu or not.

¡Ajá! Yo había actualizado a 16.04, pero los síntomas eran muy similares. Así que hice lo indicado:


$ sudo apt purge fcitx-frontend-gtk2 fcitx-frontend-gtk3

$ sudo apt install fcitx-frontend-gtk2 fcitx-frontend-gtk3

$ fcitx -r &

Ejecuté Gedit y, ¡bien! Ya podía escribir en japonés de nuevo. Pero seguía la prueba final: Google Chrome (o Vivaldi, que también lo uso)

成功!

Pasé día y medio teniendo que escribir en Emacs y copiando y pegando a Chrome cuando tenía que enviar algún correo en japonés. ¡Pero no más! 😀

Título de canción de Spotify en Xmobar

Aunque sé que Xmobar tiene Mpris1 y Mpris2, resulta que no lo instalé con soporte para ninguno, por lo que si quería poner el título de la canción que está siendo reproducida en Spotify, tenía que hacerlo a mano.

Tenía un buen rato de no hacer un script de estos. Quizá haya mejores alternativas, pero para algo que me tomó unos 20 minutos, creo que cumple su objetivo:

#!/bin/bash

spotify_pid=`pgrep spotify | head -1`

if [[ ! -z $spotify_pid ]]; then
   found=false
   while [ "$found" = false ] && IFS= read -r line; do
      pid=`echo $line | awk '{ print $3 }'`
      if [ "$pid" = "$spotify_pid" ]; then
         title=`echo $line | awk '{$1=$2=$3=$4=""; print $0 }' | tr -s ' '`
         echo "Spotify: ${title} | "
         found=true
      fi
   done < <(wmctrl -lp)
fi

El resultado:

Comenzar

Parece algo muy simple, y muchos pensarán que estoy diciendo algo muy obvio, que no necesita discusión, pero con el paso del tiempo me he percatado cada vez más que muchas personas quieren hacer algo pero no pasan del pensamiento, es decir, no comienzan a actuar para lograr ese fin.

Hace poco me preguntaron en el gato curioso qué tipo de personas toleraba menos, y mi respuesta fue “las que tienen un sueño, pero no hacen ni el menor esfuerzo por alcanzarlo”. Lo he mencionado muchas veces aquí a lo largo de los años, refiriendo ejemplos de gente que conocí en persona o en línea y que me cuenta de lo mucho que les gustaría venir a Japón (incluyendo como idealizan – erróneamente – al país), pero no tienen respuesta cuando les preguntas qué han intentado hacer para lograr esa meta.

Creo firmemente que el problema se origina en el poco o nulo apoyo que tenemos (sí, me incluyo) cuando nos ponemos como objetivo algo grande, que para muchos es imposible. En el ambiente donde me crié no estaba prohibido tener sueños, pero entre familiares, amigos y conocidos se creaba un ambiente de negatividad o incredulidad cuando les comunicabas que estabas haciendo algo fuera de la norma, algo diferente que probablemente llevaría a una meta más grande. ¿Qué es lo que por lo general recibes como respuesta? Expresiones como “es una pérdida de tiempo”, “ni te canses”, “eso no te va a servir”, “se vale soñar”, etc., etc., y por experiencia les digo que eso desanima a cualquiera. Así ni te dan ganas de comenzar a luchar por algo.

Recuerdo una vez que estaba en las arcadias, jugando el recién estrenado Fatal Fury 2 (sí, quizá muchos de ustedes ni siquiera habían nacido :P), había dos muchachos que frecuentaban el lugar y eran buena “reta”; por lo que quieran y gusten, a mí se me ocurrió leer la frase en inglés “Conqer the World” (sic), y eso fue suficiente para que me tiraran carro durante algún tiempo. La frase que uno de ellos mencionó se me quedó grabada: “Si sabes algo es mejor no decir nada, porque no te la vas a acabar con la carrila”.

Con este tipo de ambiente y respuestas, es lógico que a nadie se le ocurra comenzar o intentar algo nuevo. Es parte de nuestra naturaleza sentirnos aceptados, y si no hay gente que tenga las mismas inquietudes que uno, o bien gente que no juzgue lo que otros intentan hacer, nos da miedo emprender la aventura nosotros solos.

No obstante, vale totalmente la pena hacerlo. El sentimiento que te invade cuando por fin logras algún avance, por pequeño que sea, es indescriptible, y he de ser sincero: poder mostrarles tus logros a aquellos que lo único que hicieron fueron “darte el avión” también se siente muy bien.

Aquí un detalle: lo más importante que debemos entender es que no vamos a obtener resultados inmediatamente. Hay personas a las que no les cuesta trabajo intentar algo nuevo, pero desisten rápidamente al ver que los frutos que querían no fueron obtenidos. No hay atajos: hay que comenzar desde cero, buscar rutas y equivocarse un montón. Solamente así es posible avanzar.

Entiendo a la perfección que muchas veces entran factores que están fuera de nuestro alcance, y ante ello no hay mucho por hacer. Con todo, la idea es que por uno no quede: avanzar hasta donde sea posible, y estar preparado para reiniciar al trayecto cuando la situación lo permita. Lo que ahora representa un problema no necesariamente lo hará en el futuro, y si sabemos esperar y estamos preparados para cuando llegue el momento.

Lo anterior aplica a todo: desde cosas tan simples como hacerse bueno en un juego de peleas, hasta algo como conseguir una beca para estudiar en Japón.

¿Por qué todo este rollo psicológico? Porque por tanto estrés que me estaba llegando por todos lados, de repente comencé a caer en el hoyo de “mejor ni le muevo” a varias cosas que tenía planeadas desde hace tiempo. Por un momento olvidé el sentimiento que me hizo aprender japonés e intentar obtener una beca para estudiar por acá, y me estaba comenzando a encerrar en un caparazón que me prometía falsa seguridad.

La situación es mucho menos trágica de lo que se lee, pero aun así me hizo sentarme a reflexionar. Para mí, lo más importante fue recordar que cualquier avance es bueno, pues por lo general suelo minimizar lo que sé y puedo hacer.  Ciertamente el estrés que tengo ahora estará ahí por un rato (es causado por un factor externo que no puedo ignorar), pero al menos ya me siento un poco mejor.

¿Tienes alguna idea o quieres comenzar a estudiar o intentar algo nuevo? ¿Qué te detiene? Si tú no lo haces, nadie lo va a hacer por ti.

 

Tiempo libre… ¿dónde estás?

Ni me había caído el veinte de que ya entramos a la recta final de junio… sabía que no había escrito nada aquí, pero me sorprendió que hubiera ya pasado todo este tiempo desde la última vez.

Escritos a medias, temas en el tintero, sugerencias de los lectores, correos y comentarios sin responder… todo está ahí. Los correos y comentarios ya están respondidos (creo), pero lo demás ahí sigue.

En primavera comencé a tomar un curso en la universidad de Tokio, que aunque es relativamente sencillo porque mucho de eso ya lo estudié, me mandaron del trabajo tanto por el hype de que es en esa universidad, como por una certificación expedida que avala que tomé el curso (y esperemos que diga que sí lo pasé). El punto es que hay mucha práctica y todas las semanas hay tarea. Entonces, el poco tiempo libre que he tenido durante los últimos meses se ha ido principalmente a esas tareas. No es extraño ya quedarme despierto hasta las 2 o 3 am corriendo un experimento, o estar una buena parte del domingo enfrente del monitor tratando de aumentar la precisión de lo que la computadora me regresa. ¿Videojuegos? Solamente a ratos en el tren, y si es que me toca sentarme, pero PS4 no, nada.

Obviamente no es que esté totalmente hasta el cuello de cosas que hacer, pero le doy prioridad a mi familia, y en especial a mi hijo, pues ahora que convivió con la familia de mi esposa por una semana se soltó hablando japonés ya de forma fluída y construyendo frases completas, mientras que de español sigue con frases cortas e incompletas, aunque visiblemente entiende todo lo que le digo y me responde. He notado también que cuando estamos nada más el y yo sin su mamá cerca (digamos, que lo llevé al parque), le da por hablar nada más español e intenta decir más cosas en ese idioma, pero si ve o siente que mi esposa está cerca, se apoya mucho más en japonés. Por tanto, gran parte de mi tiempo libre lo uso para jugar con él, hacer que aprenda más vocabulario y que genere más frases.

Ayer estuve un buen rato jugando a los “monitos”: él fingía que se caía, y yo con una figura de elefante iba a ver si estaba bien y en donde le dolía. Cada vez que fingía caerse decía “¡se cayó!”, y cada vez yo le corregía diciendo “¡me caí!”. Tomó fácil unos 10 intentos hasta que comenzó a decir “¡me caí!” en vez de generar la frase en tercera persona. Es natural que, por la gramática japonesa, intente usar la misma conjugación para todo, pero he notado que poco a poco se está dando cuenta de que en español la forma de decir algo cambia dependiendo del sujeto.

Sí, sé que es una batalla muy difícil al ser solamente yo (auxiliado por libros y YouTube) su única fuente de español, pero no estoy dispuesto a rendirme.

En fin, sigo al pendiente de todo por acá, pero creo que será hasta la segunda semana de julio cuando ya estaré un poco más activo por acá.

Primero las bases

El otro día, después de una acalorada y fuerte discusión amena plática con mi esposa, me hizo reflexionar sobre algo que es muy simple, y sin embargo de repente se me va el avión al respecto.

Caso en cuestión: mi hijo por lo general tiene la costumbre de guardar sus juguetes cuando termina de jugar, pero esa costumbre es intermitente, y mi esposa (y yo, para tal efecto) le indica que tiene que guardar sus cosas cuando no las va a usar. Esta vez en concreto fue una de ésas en las que hizo las cosas a medias, es decir, dejó algunos juguetes tirados. La cuestión es que eran pocos, y en un rincón en los que sinceramente no estorbaban, así que me pareció un poco exagerado que le dijera que tenían que ser todos, y que a fin de cuentas no causaba mayor problema que dejara esos fuera. Error, y no porque ella se enojara al respecto, sino porque estaba dejando pasar algo muy obvio.

Mi idea en sí era que no era completamente necesario recoger todo si no estorbaba; a fin de cuentas, podía hacerlo al siguiente día y nada cambiaría, pero las palabras que mi esposa mencionó retumbaron en mi ser:

Sinceramente, hasta yo creo que podía haber dejado los juguetes ahí, pero la diferencia es que sí habría afectado en algo: el niño todavía no sabe evaluar si algo es suficiente o no; para nosotros es fácil, pero para él no, por tanto primero tiene que aprender a hacer todo como debe de ser. Nosotros somos los maestros ahora, y cuando te toca ser maestro, tienes que enseñarle a los alumnos las cosas como se deben hacer, no a medias, y los alumnos, una vez que comprendan, serán capaces de discernir cuando pueden “tomar atajos”.

Lo dicho: muy obvio,  lo sé. Pero eso me recordó que prácticamente he recomendado eso siempre, y me extrañó no poder aplicarlo en mi hijo de primera instancia. Aunque son analogías algo diferentes, recuerdo que cuando alguien me pregunta cómo estudiar japonés, le digo que lo primero que tiene que hacer es no aprender, leer o escribir, con romaji, por los vicios que eso crea. Sí, el avance es más rápido al inicio, pero llegará el punto en el que el romaji se convertirá en un obstáculo, y si no se libró desde el principio, será mucho más difícil hacerlo después. Igual que cuando alguien me pregunta cómo aprender a programar: normalmente se les cuecen las habas por sentarse enfrente de una computadora, abrir un IDE y comenzar a teclear en algún lenguaje en concreto (últimamente mencionan mucho C#), pero mi primera recomendación es agarrar papel y lápiz, aprender lo que es secuenciación, selección e iteración, y crear algoritmos en papel para resolver problemas matemáticos, primero simples, y después complicados. Uno de los primeros programas que yo hice fue una versión propia (y rarísima) de calcular el factorial de un número: hice un while, y hacía los brincos de 2 en 2; ignoraba qué es la recursividad, así que tenía que salir adelante con lo que sabía.

No es la primera vez que olvido que primero se tiene que aprender lo básico para después poder comenzar a “jugar” con la cosas: la primera vez que intenté estudiar Support Vector Machines yo sentía que era nada más sentarme un ratito a leer y entender el concepto; hasta compré el libro oficial de su creador, según yo para tener la fuente real y comprender a la perfección… y me fui para atrás cuando me di cuenta que no entendía nada, pero nada al respecto, y que para hacerlo tenía que dar marcha atrás a aprender los conceptos básicos que me permitirian entender qué diantres estaba pasando, qué es un kernel, y cuál es la belleza de las SVM (eran tiempos en los que todos creíamos que las SVM iban a salvar al mundo).

Sí, llegará el momento en el que me hijo decidirá dejar sus cosas y su cuarto tirados y evaluará que no le afecta a nadie en ese momento, pero si no aprende que ésa es la excepción y no la regla, entonces la falla será completamente de nosotros, como padres, y en caso concreto de esta ocasión, mía.

Escritos como estos sí me hacen pensar como papá pitufo…

La vida de un mexicano en el país del sol naciente.