Mis mierdas sobre el respeto y el insomnio

He vuelto.

Está siendo un verano jodido respecto a muchas cosas y esta entrada no hablará de software o hardware pero sí de las mierdas de uno. Aunque muchas veces suelo tener un hilo conductor que me guía a la hora de escribir una entrada, a pesar de que el resto lo improvise, en ciertas ocasiones especiales todo parte de un cúmulo de sensaciones recogidas de lo vivido recientemente. Ésta es una de esas ocasiones.

Primero tengo que contextualizar un poco hablándoos de mi vida porque no sé cómo resumir esto de otra manera. Sabéis todos que he trabajado en investigación y desarrollo, entre otras cosas porque soy una especie de hombre del renacimiento por culpa de mi insaciable apetito de crear y por mi forma rara de pensar. Esta mañana he leído una frase que decía:

Investigación es ver lo mismo que los demás pero pensar algo diferente.

Supongo que eso es lo que me ha hecho caer en el I+D. No sé.

De todos modos, aunque parezca que os estoy hablando de algo bueno, la verdad es que no. No tengo nada claro que lo sea.

Muchas veces acabo cayendo en lugares un poco extraños debido a mi forma de pensar, que puede ser novedosa a veces y estrambótica otras. No suelo comprender con sencillez lo que para todo el mundo es algo que “se hace” y “es normal” y necesito analizarlo profundamente para tener realmente claro si es algo que es lógico bajo mi criterio. Esto se aplica a todas las cosas. No suelo creerme nada directamente. Todo pasa por un proceso de análisis previo, aunque muchas veces el resultado de éste no sea el más común.

Detalles que a la gente pueda sorprender son que a mis 26 años, no tenga tarifa de datos en el teléfono móvil porque es un dispositivo que casi no utilizo y que no beba casi alcohol y no me haya emborrachado nunca. Fuera de estos anecdóticos datos, no me gustan las aglomeraciones de gente, los ruidos fuertes, las luces, la gente que no escucha, los que no te dejan terminar de hablar, los que exigen tu atención, que le prestes atención al móvil mientras hablamos, etc.

Todas estas cosas, lejos de ser algo que nadie me ha enseñado, han salido de mí mismo, igual que muchas otras, que son las que quiero mencionar para dejar claros un par de conceptos.

Dejé mi trabajo porque tras más de dos años pensando, llegué a la conclusión de que así no se pueden hacer las cosas, del mismo modo que creé ElenQ Technology para hacerlas como creo que deben hacerse. Esto no sale de que alguien me dijo que la ética era así o asau. No. Sale de un montón de personas de las que he aprendido y he sacado mis propias conclusiones sobre lo que es justo o no.

Esto mismo es perfectamente extrapolable a muchos otros campos como el feminismo, muy de moda en Twitter últimamente, donde me he encontrado con verdaderos imbéciles de rebaño atacándome porque pensaban que el análisis que estaba haciendo iba en contra de lo que ellos tenían que defender sin pensar realmente el contexto que yo pudiera tener o cuál pudiera ser mi opinión en el tema.

Si bien es cierto que no soy uno de “los suyos” porque como habréis entendido desde lo de arriba, nunca he sido uno de los de nadie, ya que pertenecer a un grupo de forma clara implica muchas cosas con las que mi forma de ser no encaja, como tener un pensamiento propio demasiado analítico o crítico, no se puede decir que esté en contra, puesto que mis valores son igualitarios y están basados en el respeto por los demás, lo que incluye, por supuesto, a las mujeres. Estos son los mismos principios del feminismo.

Yo no soy un feminista porque hay que posicionarse y lo que he visto en mi contexto es lo que dicta cómo debo ser, soy un feminista porque creo que es lo justo. Estoy a favor del respeto y la igualdad y el feminismo viene en el pack, porque el feminismo es el pack.

Esto me trae al hilo del memo de Google, y cuando hablo de memo me refiero a la persona. Por muchos doctorados que se tengan, exponer ese tipo de ideas en un entorno de colaboración es razón suficiente para que despidan a uno y no saber eso es de (como dice mi madre) género idiota. Y, entrando en lo que dijo, que he tenido ocasión de ojear, creo que es evidente que los hombres y las mujeres tienen diferencias biológicas, pero me parece una puta mamarrachada decir que son peores programadoras a nivel evolutivo. A parte de eso, dedicarle a este señor toda la atención que ha recibido, creo, es excesivo. No a nivel de reivindicación, porque la existencia de este tipo de individuos claramente deja en manifiesto el problema real que hay con el machismo en la tecnología, pero sí a nivel de llegar a lo que para muchos ojos puede parecer un linchamiento. Para mí, el lo del linchamiento tiene dos puntos muy claves:

  1. Que parezca un linchamiento o una respuesta excesiva puede haber posicionado a ciertos sectores a favor del personaje.Las meadas fuera de tiesto de algunos y el constante aparecer de este incidente en todos lados ha podido dar razones a esa gente que dudaba para ponerse a su favor.

    Lo mismo ocurre con el terrorismo islamista (aunque no me guste relacionarlo con el Islam). El desprecio con el que se ha tratado a esta religión en ciertos medios y los insistentes ataques que han sufrido han servido como caldo de cultivo para radicalizar a otros y perpetuar el terrorismo, ahora con más razón porque se sienten vejados y humillados.

  2. Ese señor, por mucho que nos pese, es, ante todo, una persona. Imbécil, sí, pero una persona. Sus ideas no se merecen ningún respeto pero él sí y esto no lo comprendemos tan fácilmente. Que sea un ignorante que se ha equivocado ojo, no en unas declaraciones ni en la forma de hacerlas, si no en un análisis de la sociedad, no es una excusa para desahogarse con él.Haciéndolo, no somos muy diferentes a él.

    El otro día leí una comparativa que básicamente está a favor de golpear a nazis y yo, sinceramente, no lo estoy. No estoy a favor de golpear a nadie a no ser que mi integridad física corra peligro real. No por sistema ni porque sus ideas y las mías estén confrontadas.

    Una posible forma de arreglar eso es educar mejor a la gente y minimizar estos grupos cortando sus vías de financiación y mostrando una repulsa colectiva y, por supuesto, tomando medidas legales contra todo el que ataque a alguien o haga actos ilegales.

    Como comparativa de esto, puedo mencionar las pseudociencias. Según el criterio de muchos, como esa gente está equivocada o lo que dice es una estupidez, yo, con mi Ingeniería por delante, podría simplemente golpearles collejas o llamarles magufos y humillarles públicamente. Y no, eso no me vale y creo que a nadie debería.

A este personaje quizás tendrían que haberlo despedido directamente y haberle hecho salir por la puerta de atrás y haber esperado a que él montase el numerito de hacerse la víctima para que se hubiese puesto en evidencia él solo mientras que la empresa preparaba un comunicado claro en el que se mostraba su código de conducta y su posición respecto a la discriminación con un apoyo claro y sincero a las mujeres o colectivos atacados por este individuo. Pero no lo sé. No soy un experto en estas cosas. Sólo es algo que he pensado durante un tiempo posiblemente insuficiente para resolver un problema de estas características. Este escrito sólo es un brainstorm de ejemplo.

Ahora voy a retorcer un poco el tema para hablar del sesgo, que era lo que quería escribir pero que los recientes acontecimientos me han forzado a desviar. Dentro de todo lo que he dicho es evidente que encontraréis incongruencias pero soy consciente de que las tengo. Por ejemplo, digo que no habría que atacar a este personaje y al mismo tiempo le llamo imbécil y memo. Sí. Tú mismo sabrás si es coherente o no. O si lo que he dicho es una estupidez. Todo depende de cómo te leas esto.

El sesgo es algo muy cabrón, porque te puede hacer entender una cosa de una manera completamente equivocada. Desde mi punto de vista analítico, en el que nunca me he sentido identificado con un grupo ni colectivo, estoy en una posición bastante cómoda respecto a esto, quiero pensar. Soy un tío de sangre caliente pero intento vivir con amor en mi corazón desde hace un tiempo, dando siempre la oportunidad de releer a las personas que se ponen agresivas de golpe. Siempre me decepciono cuando lo hago. No suelen pensar distinto la segunda vez, ni siquiera intentan ponerse en el lugar desde el que yo enfoco las discusiones que, normalmente, como ya sabréis por el blog, no es la línea más habitual y requiere algo de pensamiento.

Ya como guía para los que deciden releerse este texto completamente o tienen intención de seguir mi blog o hablar conmigo, normalmente hay dos niveles en mis conversaciones:

  1. El nivel literal: en el que siempre podrás deducir que soy idiota.
  2. El nivel figurado: que requiere mucho más trabajo descifrar y posiblemente te lleve a una conclusión similar pero por un camino mucho más tortuoso en el que puede, y sólo puede, que te encuentres alguna joya entre tanta caca de vaca.

Es curioso que estos dos puntos no sólo sean parte de mi nivel de conversación, si no del de muchas personas con las que habláis a diario y con las que a mí, dentro de mi introspectivo y vergonzoso carácter, me enamora conversar.

Esto es lo que me lleva al sesgo de la idiotez. Pensar que todo lo que la gente dice es literal o que la posición que está tomando en una conversación es su opinión personal es una lamentable representación de lo vacío que está uno a nivel de entendimiento. Tristemente, muchos medios de comunicación o críticos profesionales de las redes sociales con miles de seguidores leen con esta máxima y eligen en que bando estás, arrastrando consigo a miles de espectadores ovinos cuya opinión es un calco directo de lo que leyeron o escucharon. El complejo arte de la descontextualización, la generalización y la absurdificación.

Lo más cojonudo de todo esto, es que quien más cae en estas cosas es quien cuyo ego le eclipsa todo tipo de capacidad para pensar que otra persona, quizás, en ese tema, sepa un poco más que él o, aunque sea por casualidad, haya llegado a un razonamiento más acertado. ¿Cómo era aquello de la flauta y el burro?

Ahora, volviendo a lo que ocurre en las redes sociales, pasaré a un mundo distinto en un planeta diferente. Desde un tiempo a esta parte podéis encontrarme en las redes libres como @ekaitz_zarraga@mastodon.social. En ese maravilloso mundo he podido hablar sobre el Anarquismo, la responsabilidad, la ética, muchos temas de programación y análisis y resolución de problemas complejos siempre desde el respeto y la educación. Considerando que los demás eran tan válidos como yo para hablar del tema. He conocido a un montón de personas transgénero y homosexuales, colectivos con los que no me había topado mucho en mi vida y su cercanía y cultura me han impresionado sobremanera. Su lucha, que es realmente difícil, está ganada desde la base en la que se quieren unos a otros y respetan, por defecto, a cualquiera. Supongo que serán justo los que me he encontrado en ese lugar, pero me han hecho recuperar la fe en el ser humano y en la forma en la que resolvemos ciertos conflictos. Con el amor y el respeto mutuo por delante.

Eso es un bias-killer, un mata-sesgos, para mí. Pero no lo es para cualquiera. No sé. Sólo puedo ver a esa comunidad como una fuente de inspiración.

Esto me recuerda a cuando estaba en la universidad. Un compañero mío era un absoluto genio y hablando de ello con otro me dijo: “Es un lujazo tener a alguien así con quien aprender”. Esto me chocó mucho después de haber sufrido humillaciones por ser el mejor de mi clase en los estudios (antes de llegar a la uni claro), pero me hizo recapacitar. No todos los sitios son como donde yo me crié y me alegro de que haya gente así. Su sesgo fue el que decidió tomarse a un alumno brillante como un apoyo igual que el sesgo de mis compañeros de clase fue el que decidió tomarme como una amenaza o alguien a quien atacar.

Curioso todo esto.

Complejo.

No sé como cerrar, si os digo la verdad porque todo es un cúmulo de opiniones y pensamientos inconexos aunque sí que creo que llevan el mismo lugar:

Pienso, todo el rato, y esto a menudo me hace desaparecer y me mantiene despierto por las noches. Nada de lo que yo diga está dicho sin pensar, puede que esté equivocado, pero no está dicho sin pensar y así debéis tomároslo. Tanto lo mío como lo de otro.

Y ya vale de tanto mamoneo agresivo de frases con dobleces para insultar o gilipolleces en Twitter reduciendo a lo absurdo lo irreductible. No sois tan listos, no sabéis tanto. Empezad por ahí, respirad, y os llevaréis mejor con todo el mundo y no sólo con los que piensan como vosotros.

No seáis de nadie. Sed de vosotros mismos, y apreciad lo bueno de todos.

Un abrazo, con todo el amor del que dispongo, como siempre. Respetaos más, que nunca es suficiente.


Para ti que crees que esto no debería ir en este blog, puesto que es no es algo técnico, estás de enhorabuena. Te doy la razón.

Así que pronto serás premiado con un texto muy sesudo en la línea de los que me gustan a mí, diseccionando una aplicación muy compleja y sacando todos esos puntos divertidos a la luz.

No lo puedo publicar aún, porque participé en un concurso de divulgación con él, pero cuando se resuelva, a principios de septiembre, intentaré publicarlo para que todos podáis leerlo.

Siento hacerte esperar, por mí ya estaría publicado.

Anuncios

Futuro presente

Hola,

Ya estamos por aquí otra vez.

Hoy me pondré más serio de lo que acostumbro porque me toca hablar del futuro más que del pasado, como me suele gustar hacer.

Ya sabéis que dejé mi trabajo y otras movidas así que ahora estoy en mi sofá a las 9:45 de la mañana escribiendo esto, sin cobrar un duro.

Que no cobre ahora no significa que no tenga intención de hacerlo y tampoco significa que quiera un trabajo. Tal y como ya dije, creo que no encajo bien en el modo de trabajo de una empresa estándar y tampoco quiero forzarme a hacerlo porque para mí no tiene ningún sentido.

Como todavía tengo energía y he tenido la suerte de haber podido ahorrar un poco, estoy dedicando este tiempo a aprender y a preparar mi futuro trabajo. Sí, voy a generar un puesto de trabajo en el que encajo perfectamente, diseñado explícitamente para mí. Si hay suerte, puede que en el futuro pueda generar otros puestos de trabajo especiales, quizás uno sea para ti.

Esto sólo es una forma retorcida de decir que estoy creando mi propia empresa.

Ahora tendréis miles de preguntas pero tampoco voy a poder responder a todas porque, como he dicho, la estoy creando. La idea lleva mucho tiempo viva pero es posible que la realidad la haga cambiar y mutar hasta que yo pueda comer de esto o hasta que demuestre definitivamente que no puedo.

Os cuento un poco de qué va, aunque algunos ya lo habéis leído por otras fuentes.

 

 

ElenQ Technology es el nombre de la empresa que estoy creando.

Se dedicará a hacer, principalmente, Investigación y Desarrollo en las áreas en las que me muevo. Estas áreas incluyen todo lo que hablo en este blog y algunas cosas más que me guardo para mí como la electrónica, las redes, y otras, casi todas relacionadas con lo que conocemos como la Ingeniería de Telecomunicaciones con el pequeño añadido de que soy una persona muy curiosa que ha indagado en otros mundos.

Sé que a los que me leéis os van a gustar lo que diré a continuación:

ElenQ Technology tiene un fondo social obligatorio, heredado de mis desencantos con la empresa y de mis principios, que he dejado demasiado de lado durante un tiempo y ya va siendo hora de recuperar. Así de fácil. Los puntos críticos son los siguientes:

  • Los proyectos que se hagan deben hacer del mundo un lugar mejor. Respetaran los derechos humanos y el diseño ético. Serán Free Software/Hardware siempre. Los clientes tendrán acceso a todo lo que hago y participaran de forma activa en el desarrollo.
  • En los casos que sea aplicable, el conocimiento obtenido con el proyecto será liberado, con una buena documentación, para todo el mundo, para que cualquiera tenga más la información ya mascada sirviendo la realización del proyecto como una excusa para concentrar el conocimiento en una documentación fácil de leer.
  • Se apoyarán los proyectos que se utilicen durante la actividad de la empresa, en la medida de lo posible, con tiempo de desarrollo, dinero o lo que se pueda.

Sobre este sustento, la empresa investigará y desarrollará cosas para terceros, que siempre serán pequeñas y medianas empresas porque son esas empresas que aún conservan cierta ética (en algunos casos) y no pueden permitirse tener un departamento de I+D continuo. Con esto se fomenta que las empresas pequeñas crezcan porque tendrán la oportunidad de investigar y mejorar sus procesos e ideas para así competir un poco mejor con los grandes. Como los proyecto serán éticos, fomentará que las empresas crezcan en una dirección ética, provocando, en cierta manera, que el mundo sea un lugar mejor dentro de un tiempo, aunque sólo sea un poquito.

También ayudaré a que particulares consigan avanzar en esa idea de proyecto que tienen y que no tienen a nadie que les ayude a crear. Esa idea que siempre te quita el sueño pero como tienes un curro no tienes fuerza suficiente para sentarte a investigar y terminarla.

Y, por último, también se desarrollarán ideas propias y se mantendrán proyectos propios. Algunos serán herramientas que utilice para mí (ejemplo), como hago siempre, y otros serán ideas que querré desarrollar.

Como un pequeño extra importante, aunque no quiero que sea la primera actividad de la empresa, se darán formaciones sobre tecnología y sus usos que servirán para aprovechar lo que aprendo en los proyectos y el extraño y profundo conocimiento que llevo años atesorando en lugar de hacer otras cosas. Intentaré tener un hueco para hablar de las razones de abandonar mi curro anterior y animar a otros a plantearse qué está ocurriendo con los datos, la privacidad, la ética y otras cosas también. Siempre desde la humildad de un tío de 26 años que no se ve con un traje ni hablando de usted, pero siempre tiene una carcajada y un apretón de manos para cualquiera.

Durante el texto le he llamado empresa a lo que estoy montando aunque podría ser perfectamente una organización sin ánimo de lucro. Sólo quiero poder comer, y vivir sin preocuparme demasiado, no necesito crecer y crecer como el concepto (capitalista) de empresa propone. La idea es hacerle la vida más fácil a los demás a costa de que hagan mi vida un poco más fácil.

Eso es a lo que me voy a dedicar. Innovación Ética.

Crecimiento en la dirección adecuada.

Seguiré informando. Para bien o para mal.

 

PD: Ya tengo un nombre de dominio y movidas pero no me quiero poner con eso aún a poner links y cosas. Prefiero dejaros aquí la filosofía y ya contaros cosas en el futuro o que me preguntéis. No me gusta el spam. No me gusta una mierda.

 


Como siempre un par de agradecimientos:

A los que estáis ahí y escucháis mis mierdas, a ti, sí, y a ti, el del fondo, también.

A los que respetan lo que hago. A los que me confirman que un mundo mejor es posible. A los que no pierden la confianza en mí. A los que me piden colaborar conmigo a 700km de aquí. A los que me preguntan cosas. A los que tienen ideas para mí. A los que tienen cerveza y me sacan de casa cuando las cosas van lento.

A mi hermana por ayudarme con el LaTeX.

A mi amada por ayudarme en general.

Llegó el momento de saltar.

Si hay agua abajo, os aseguro que voy a caer tan fuerte que os voy a salpicar a todos.

Vergüenza inocente

Me cansé de “ser rico” y ahora me toca “ser pobre”. Entrecomillo porque ambas son inciertas hasta cierto punto, y ciertas hasta otro. La magia de la contradicción.

Hoy toca hablar de vergüenza, más que de inocencia, y de por qué una persona “brillante” “con muy buenas ideas” se convierte en un “fracasado” por iniciativa propia. Esta vez entrecomillo porque son citas textuales, algunas mías y algunas no. Seguro que puedes adivinar cuales digo yo, y seguro que los que no me siguen a menudo se equivocan, posiblemente a propósito.

En una entrada anterior te cuento cómo lo pasas mal cuando no tienes curro, hoy te cuento cómo lo pasas mal cuando tienes uno que casi todo el mundo querría y no lo quieres.

Sí, tú. Dejé ese curro hace un mes. Ese del que te hablo, el del I+D.

Era un curro de puta madre, no te líes, pero no quiero trabajar allí y posiblemente en el que me propongas tampoco. No valgo para eso. Soy una mierda de persona. Lo sé. Puedes dejar de leer aquí si te da la gana, o puedes leer más y llorar de la risa por lo tonto que soy. Quizás sólo llores. Sólo lo sabrás si sigues leyendo.

Hace mucho tiempo lo conté en la entrada a la que enlazo en la entrada enlazada aquí: me duele. Me duele mucho. A veces me duele tanto que quiero arrancarme los brazos, o esa puta rodilla que empezó a darme problemas. La espalda y con ella el cuello, la mandíbula y la cabeza. Hasta detrás de los ojos.

Es difícil vivir así.

Es difícil no poder levantarte de la cama y al mismo tiempo pasarte días sin dormir. Muy difícil. Casi tan difícil como contarlo sin hacerte la víctima o quedar como un mierda que se queja por todo.

Los que me leéis aquí sabéis lo que me gusta lo que hago, o lo podéis intuir al menos y sabéis que sólo lo que os acabo de contar no iba a ser una razón suficiente para dejar un curro que me guste. Soy un poco más duro que todo eso, al menos todavía. Así que empiezo por la razón menos importante para deciros además que ya me encuentro mejor, aunque sea un poco mejor y me esté costando, que todo lo que estoy haciendo está sirviendo para algo por ahora.

Ahora añadidle a ese dolor el trabajo en el que estaba. Un curro de puta madre para muchos, repito, en el que creo que siguen buscando gente.

Currar de 8:30 a 14:00, parar una hora obligatoriamente para comer y volver al tajo de 15:00 a 17:45. Ocho horas y cuarto para poder salir a las 17:00 el viernes porque había que entrar obligatoriamente a las 9:00 (el resto de días se podía entrar hasta las 10:00 si se compensaba por la tarde). Muchos trabajáis con horarios peores, lo sé, pero yo no puedo con eso. Os cuento por qué.

Primero porque el dolor me está arruinando la vida y la única forma de hacerle frente es hacer deporte, bastante deporte. Con estar finito (como estoy) y cuidarse no es suficiente. No es un tema de salud, es que mis musculitos se vuelven locos con el estrés y están todo el rato haciendo fuerza sin control así que me duele mucho porque tampoco estoy como Hulk y mi cuerpecillo no lo soporta. Eso significa, parar más, estirar a menudo y hacer deporte. Para, estira, haz puto deporte y controla ese estrés. No quieres que te pase esto. Créeme.

Segundo porque ese mierda de curro no era suficiente (acabo de decir que era guay ¿no?). Bromas de nuevo. No, no era suficiente. Era un curro técnico, que tenía sus cosas pero no estaba cambiando el mundo, al menos no para bien. Los retos técnicos eran escasos porque todo estaba relativamente masticado ya y siempre se hacía lo mismo. Dejé de aprender, de aprender mucho, y pasé a aprender poco a escondidas aprovechando la pequeña libertad de implementación que tenía para hacer siempre cosas que nunca había hecho porque me estaba aburriendo ya y no podía soportarlo.

Esto no era suficiente, cuando iba a casa mis ansias de aprendizaje me hacían seguir investigando en otros ámbitos (me obligaba a que no fuera laboral). Seguía aprendiendo cosas, moviéndome, recordándome todo el rato lo poco que sé. Esto lo hacía, claro, en lugar de hacer deporte. Uno, porque estaba agotado y el dolor no ayuda y, dos, porque el tiempo es limitado y todo no se puede hacer.

Tampoco era todo aprender, a veces también programaba cosas para aprender y diseñaba cosas sin las trabas que los altos cargos narcisistas, que creen que su análisis de dos minutos vale más que seis meses de implementación de cuatro ingenieros a tiempo completo, imponen. Me he currado la frase, vuélvetela a leer si hace falta.

Sin trabas, como cuando estuve en paro, aprendía rápido. Joder. ¡Hasta empecé a robar tiempo a la empresa haciéndolo allí! No es un secreto esto, empecé a procrastinar para investigar y aprender por culpa de la desmotivación.

La gente dice que la motivación tiene que salir de uno pero no es suficiente. Intenté mantenerme motivado de las siguientes maneras. Orden cronológico aunque algunas se mantienen vivas siempre o aparecen antes en menor medida.

  1. Aprender del entorno. Esto es cuando eres novato y tienes que ponerte al día. La oficina, el ritmo, etc.
  2. Aprender de proyectos. Cuando te empiezan a asignar cosas y tienes que acostumbrarte a las herramientas nuevas.
  3. Aprender de compañeros. Siempre tienen cosas para ti. Esto es cuando ya controlas tu mundo y aprendes del de los demás pidiéndoles ayuda o preguntándoles cosas que ellos saben y tú no.
  4. Aprender de retos. Esto es cuando ahora no buscas sólo hacer, si no que buscas hacer bonito lo que haces y entender cómo funcionan tus herramientas por dentro para poder explotarlas de forma elegante.
  5. Aprender de la incomodidad. Aquí es donde sales de tu zona de confort apropósito porque no vas a aprender dentro de lo de siempre y cambias detalles (como el lenguaje en el que programas) para tener una excusa para seguir aprendiendo.
  6. Aprender del intrusismo y la transferencia. Aquí tratas de ayudar a tus compañeros a realizar su labor mejor, aportándoles información sobre aquella cosa que investigaste en tu tiempo libre que puede que les venga bien. Intentas prestar atención a cuando tienen un problema o explican sus cosas para sacar información y poder preguntarles o participar en sus retos porque los tuyos te aburren y te has quedado sin ideas para hacerlos divertidos.
  7. Aprender del suicidio. Aquí ya se te acaban todas las ideas y procrastinas porque sabes cuánto tardas en hacer las cosas. Trabajas más rápido porque tienes más experiencia así que te permites decir que tardas lo mismo que antes para poder robar ese tiempo en cosas tuyas en las que sí te quedan ideas o para leerte esa librería que usas que te ha parecido interesante. Aprendes lo que sea porque eres un yonki y haces cualquier cosa con no trabajar porque te aburre demasiado y te deprime. Esto intentas hacerlo poco pero cuando estás mal simplemente te supera y te come.

Esas son las etapas.

Traté de hacer un poco de transferencia de conocimiento interna, mandé emails técnicos de cosas que había estado investigando (la entrada de las single page apps que hice es uno de esos emails reciclado) y obtuve muy poca respuesta así que me desanimé bastante.

Otras cosas que no me gustaban dentro de este apartado de la satisfacción personal son el product-driven-engineering o hacer las cosas para productizar o vender. Tío, es un departamento de I+D. Hay que innovar. Primero innova, el producto vendrá después.

Lo que acabó ocurriendo es que muchas cosas las hacíamos buscando aumentar la tasa de aceptación de los proyectos. Es decir, se buscaba justificar la existencia del departamento haciendo que la empresa viese que los proyectos que se hacían en nuestra unidad llegaban a producirse, a implantarse en producción. Casi ningún jefe está de acuerdo conmigo en que eso era un error. Puede que me equivoque, pero, independientemente de si me equivoco o no, a mí y a algún otro compañero eso nos parecía un error y una incomodidad suficiente como para dejar la empresa. Supongo que eso quiere decir algo.

Todas esas cosas me estaban creando un perfil de cómo me gustaría trabajar.

Tercero un tema laboral, que muy de puta madre pero no. Ya os dije que mi salario casi se duplicó desde el trabajo anterior, pero eso no quiere decir que estuviese bien pagado. Estaba pagado ligeramente por debajo de convenio, cosas que sólo se puede conseguir falseando tu puesto de trabajo, no quiero entrar en muchos más detalles porque es una historia que los que seguiréis este blog desde España seguro que ya conocéis porque habréis estado en una situación similar.

Sin salir de ese tema laboral, chorradas que te cambian la forma de entender la empresa: Le dices a tu jefe que necesitas otro tipo de teclado en lugar de esa puta mierda de logitech de teclas de feedback nulo o algún tipo de ayuda ergonómica y te dice que desde recursos humanos dicen que no pueden ni un euro cuando después de un tiempo se compran teclados de Mac a 50€ la pieza a cualquiera que tenga un Mac en la empresa, ya sean desarrolladores de iOS o jefes que sólo usan el ordenador para hacer putas presentaciones y responder emails mientras que tú lo pasas puto para navegar porque tienes un i3 del año de maricastaña (y no te digo compilando). For example.

Repito, son chorradas, pero chorradas que te abren los ojos. Tienes que estar agradecido de lo que tienes, pero no hay nada para ti más que lo que te pagan a fin de mes que además es menos de lo que te mereces. Es gracioso.

Luego te dicen que valores también que hay café, cocacola y galletas en la oficina. Y eso también es gracioso porque no hay fruta fresca y fisioterapia. Hay azúcar y cafeína. La gasolina del programador. La gasolina del infarto.

Otro tema es el horario que tampoco llevo muy bien. El trabajo era bastante creativo y me cuesta encajar mi creatividad dentro de lo que el horario me permite. Si estoy con el flow a las seis de la tarde me tengo que ir y si no me sale nada a las tres de la tarde me tengo que quedar tres horas a cagarla y tener que arreglarlo mañana. Eso es calentar la silla, presentismo laboral y es muy triste.

Fuera de todo lo malo a nivel laboral hay que decir que se cobraba al día (es muy cutre que haya que celebrar esto ¡Hola Irontec!) y que visto a grandes rasgos había bastante flexibilidad en horas de entrada (pero no en horas trabajadas al día), que estaba cerca de donde vivo y el ambiente laboral era muy bueno (luego vuelvo a este punto).

Cuarto punto. La ética. Este es el punto en el que más hincapié quiero hacer. Me fui porque lo que hacía no me parecía ético y porque me daba vergüenza. No puedo contar mucho porque firme unos papeles que blablablá. Cruzamos la línea roja, mi línea roja (la única que vale) y para evitar una situación desagradable en la que me piden algo y digo que no lo voy a hacer me fui. Ni siquiera iba a soportar que me lo pidieran. Ya me cuesta bastante dormir por las noches (dijo a las 2:04 de la mañana).

Es el punto más corto porque no puedo contar nada, pero no podía contribuir a eso.

No lo voy a marcar como un quinto punto pero la mierda de actitud de winner de la empresa, sus valores copiados de los de Amazon (todo un ejemplo a seguir), sus reuniones motivacionales con el superjefe niño rico sociópata que se las da de guay y sus putas cenas de empresa tipo cocktail me tocaban mucho los cojones y no las echo nada en falta. Nada de nada.

Prefiero ser pobre y eso es lo que he decidido hacer. Ahora mismo tengo 0 ingresos. Cero. Cobro cero patatero y mi dinero tampoco va a durar mucho tiempo.

Llevo un mes sin trabajar en la empresa y aunque estoy todavía en fase de negación, como si estuviese de vacaciones, me siento bien. Estoy tranquilo. Me sigue costando dormir por otras movidas pero ahora me puedo dedicar a mis cosas, cocino, descanso más, hago deporte, etc. Mi cuerpo está recuperándose.

Sí que os voy a decir que tengo ideas y cosas en marcha y os iré contando, que no me fui a ciegas, que no soy taaan tonto y que estamos en ello. Perdonadme si por el camino pongo algún link de donación pero necesito comer y toda ayuda es buena.

Os diré que todo lo que voy a hacer a partir de ahora es cambiar el mundo. Intentaré usar lo poco que sé para hacer de este mundo un lugar un poco mejor. Espero que esta aventura dure para siempre y contaminar a todos los que pueda con este germen que me ha convertido en un fracasado pero me ha llevado al lugar al que creo que tengo que estar.

Lo siento, lo siento mucho, pero no sirvo para lo que todo el mundo quería de mi. Ojalá no fuera así.

Ojalá no me diera vergüenza.


Como siempre, mi espacio para las cosas buenas.

Soy una persona emocional, no soy un robot como muchos creen, por eso escribo siempre este tipo de entradas.

He conocido a personas rematadamente imbéciles en esta etapa de mi vida, sí. Pero muy pocas y eran fácilmente eclipsadas por el resto de personas maravillosas.

Nunca os haréis una idea de lo que me duele no haber podido seguir allí con vosotros. No es un discurso de mierda de “todo lo que he aprendido”. Realmente es imposible explicar lo cómodo que llegué a sentirme y lo fáciles que hicisteis las cosas. Si fue más de un año y medio, creed lo que os digo, fue en su mayoría por vosotros. Sin vosotros no hubiese durado ni la mitad.

Me duele mucho pensar que mi egoísmo me ha hecho alejarme de teneros tan cerca.

Es lo único que echo de menos de trabajar ahí. Lo que estoy haciendo no es tan bonito si no tengo a nadie a con quien compartirlo. Me gustaría que estuvieseis aquí conmigo. Ojalá lo estemos de nuevo algún día. De verdad lo espero.

Menos mal que me quedas tú, reina. Escuchas mis mierdas y me animas en todo lo que se me pasa por la cabeza. Siempre incansable. El amor de mi vida. Ojalá el mundo fuera más como tú y menos como lo que es.

Me ha dolido esta entrada. Me ha dolido mucho. Os quiero a todos. Espero no defraudar en esto, o en lo otro. Pero sólo tenía vergüenza encima y no podía seguir viviendo así.

Ojalá esto despierte a otros.

Inocencia

Hace ya dos años hablé en un post sobre muchas cosas que me entristecían o afectaban en ese momento, cosas que debían ser cambiadas y la forma en la que intenté cambiarlas.

Todo lo enfoqué desde la idea de que la vida es un ir y venir de bromas y no sé si ahora mismo quiero enfocarlo igual porque, como aquel día, no tengo muchas ganas de reír mientras escribo estas líneas, a bolígrafo porque me siguen doliendo las manos.

En mi cabeza sólo hay una idea general de lo que quiero hablar pero seguro que la excitación del momento me lleva suficientemente lejos. Como hizo hace dos años. Como siempre hace.

Enlazando con lo que dejé a medias, tenía un trabajo, sí, que obtuve antes de terminar la carrera. Me despidieron de él. Sí. “La empresa de sofware libre más importante de Euskadi” (haha) me despidió. Esto puede suponer un shock importante para los lectores habituales de este sitio y seguramente para cualquier persona que me conozca, pero así fue. Sufrí una broma grandiosa y hoy, dos años más tarde era momento de contarla bien.

En realidad la broma no fue el despido sino todo el tiempo que pasé allí, cobrando menos de 800€ con un convenio destartalado y unas condiciones laborales cada vez más repugnantes. Feliz, porque aprendía cosas. Feliz, porque tuve unos compañeros excepcionales a los que echo mucho de menos a veces.

Ésta es la genial broma que tenemos hoy sobre la mesa, la que me permitirá arrastrar todo lo demás.

El despido de Irontec se debió a varias cosas, algunas de ellas fueron culpa de mis más elaboradas y sutiles bromas. Fueron todos esos momentos que le hicieron a mi jefe saber que yo no iba a conformarme con cualquier cosa, que a mí necesitaba alimentarme con retos, que yo no quería apalancarme sin más en un puesto de trabajo que no me aportase absolutamente nada. Me despidieron por la misma razón por la que me contrataron. Me despidieron porque Gorka es muy listo y sabía que me iría pronto.

“Me lo agradecerás cuando estés desarrollando microprocesadores o lo que sea que acabes haciendo” me dijo. Y se lo agradezco, pero fueron tiempos difíciles y me dolió mucho porque casi me había convencido a mí mismo de que ese lugar estaba bien y que no quería marcharme. Esa broma fue muy pesada, siempre es pesado que te despidan pero más cuando te dicen que no tienen ninguna queja de tu trabajo, que te largan para que no te largues tú, que no tienen sitio para ti.

Me echaron de aquella empresa, empresa supuestamente hacker, por ser como fui en mi PFC, el detonante de este blog.

Eso no fue suficiente para acabar con mi carácter bromista. Ese carácter que hoy más que nunca está presente en mi vida y más aprecio. El que me lleva a los lugares donde quiero estar.

Estuve cuatro meses en paro, desesperado en cierta manera, pero seguí haciendo cosas en mi tiempo libre, cosas técnicas, aprendiendo, mejorando porque, para mí esto no es sólo lo que hago para ganarme la vida. Esto lo hago porque me encanta.

Durante el tiempo en paro las bromas aumentan. Todo el mundo me anima a intentar trabajar en lugares que no son suficiente, que no sacian el hambre y les digo que no. ¡Qué risas recordando sus caras! Recuerdo cuando le dije a mi padre que no echaba currículum en ofertas que quisieran a más de una persona porque significaba que quería a gente estándar para cubrir un puesto y que yo no quería eso para mí. Ahora tiene mucha gracia, la verdad, aunque cuando eso no la tuvo. Es una broma a largo plazo.

Otra broma que no he sabido valorar lo suficiente hasta pasado un tiempo de aquello es el puñetazo de realidad que me di a mí mismo. Durante esos meses en paro me dedicaba a otras cosas por las mañanas mientras que, por las tardes, programaba, investigaba y buscaba trabajo. Con el tiempo, echando la vista atrás, me di cuenta que aprendía mucho más en mi casa que en mi trabajo de prácticas al que, supuestamente, iba para aprender.

No sólo me engañaron ellos, me había engañado todo el mundo y yo, tonto de mí, no había caído en la cuenta.

Durante ese tiempo además, este blog, que estuvo a punto de desaparecer hace dos años cuando escribí la entrada a la que hice referencia al principio, tuvo sus mejores momentos, cuando dedicaba días a investigar y preparar buenos contenidos en la línea que me interesa.

Cuando aquello mi situación personal empezó a irse a la mierda (si no lo estaba ya) pero decidí que a pesar de todo me mantendría bromista y feliz. Mi novia me dejó para que pudiese irme lejos, a un sitio en el que querían contratarme y fui. Hecho mierda, pero fui. Todo el mundo me deseaba de nuevo un precioso viaje a varios cientos de kilómetros de mi casa (recordáis alemania ¿no?). Sentí que todo el mundo quería que me largase, como si nunca hubiesen querido que estuviera aquí. Qué bromistas ellos también ¿verdad?

Una vez allí me di cuenta que el río se estaba saliendo de su cauce y que no estaba haciendo las cosas como tenía que hacer, así que dos días más tarde volví, a donde nadie me quería, a hacerlo a mi manera. Antes de ir compré dos cuadernos, éste en el que os escribo y otro en el que empecé a escribir un libro. Eso me hizo centrarme durante todo ese tiempo y me ayudó en los tiempos en los que ver tantas ofertas de trabajo basura me machacaba por dentro.

Poco después, me contrataron en un sitio. Lo que aprendí en este tiempo y la actitud que desarrollé me ayudó a conseguir un buen trabajo, que aún conservo tras algo más de un año. Ahora soy ingeniero de investigación y desarrollo en Fon Labs, el departamento de I+D de Fon, la empresa del Wifi que quizás conozcáis. Por fin estaba en un sitio que me aportaría cosas. A menos de 30Km de mi casa además. Y todo el mundo diciéndome que lo encontraría fuera ¡JA JA JA! ¡Imagina que me llego a quedar allí!

Joder, por fin estaba a gusto otra vez, a pesar de todo lo que quedó roto. Unas condiciones laborales infinitamente mejores (tranquilos que no soy rico todavía) y un trabajo técnico era lo que necesitaba.

Si hubiese perdido las ganas de hacer lo que me gusta, si hubiese cambiado, quizás ahora estaría en otra parte. Quizás, ahora, no estarías leyendo esto.

Como dije, la vida es una puta inocentada que cambia y gira en cada momento y lo que creías que estaba bien rápido se va a la mierda.

Mantente firme y sigue siendo tú, disfrutando de lo que haces y no renunciando a ello. Si no, puede que te quedes allá, que sigas toda la vida con esos 800€ o menos, o, lo que es peor, que creas que eso es todo a lo que puedes aspirar.

Continuará pronto.

 


Quiero dejar un pequeño espacio final, como hice la otra vez, para todas las personas que nunca perdieron un atisbo de fe en mí. Esos “Ekaitz, si alguien puede eres tú” peusto que ellos son la razón por la que la rueda sigue girando y no he colapsado todavía. Todos necesitamos un motor. Todos necesitamos que nos confirmen que vamos por el buen camino.

Además, también quiero agradecer a quien nunca quiso que me fuera, y que ahora está durmiendo a mi lado en el sofá, todo lo que me da sin pedirme absolutamente nada. Si no fuese porque estabas tú aquí quizás no me hubiese importado no volver nunca.

De Databases, Warehouses y otras hierbas

Hola,

Hoy es un día especial porque vamos a romper con la rutina y mis absurdas manías y maneras de profundizar en los problemas y vamos a cambiar de ámbito y qué mejor manera de hacerlo que contar con un invitado de lujo para colaborar con su conocimiento y visión.

Me enorgullece presentar hoy a Eider Gorrotxategi1, que nos hablará un poco sobre esas siglas que se han puesto tan de moda en los últimos tiempos: BI. Os dejo con ella. Que lo disfrutéis.

¿En qué se diferencian una Base de Datos y un Data Warehouse? ¿Por qué necesito un Data Warehouse, si ya tengo una Database? ¿No son lo mismo?

Sí, pero no.

Una Base de Datos es una colección de datos organizados para su almacenamiento, accesibilidad y recuperación. Existen varios tipos de bases de datos, pero en este post nos centraremos en bases de datos OLTP (On Line Transactional Processing).

Éstas se caracterizan por procesar un elevado número de transacciones cortas como INSERT, UPDATE, DELETE, etc. Es importante la rapidez de las querys, mantener la integridad de los datos en un entorno de acceso múltiple donde la efectividad se mide por el número de transacciones por segundo, y se almacenan principalmente datos actuales, garantizando estar "al día" basado en un modelo relacional. Unos entornos donde pueden aplicarse una Base de Datos de estas condiciones: contabilidad, ventas en un supermercado, administración…

¿Qué es un Data Warehouse? Es una Base de Datos diseñada para facilitar el análisis, querys más complejas y optimizada para la presentación de reportes a a gran escala. Por lo que un Data Warehouse es una Base de Datos, pero una base de datos no tiene porqué ser un Data Warehouse, básicamente porque este último está ligado con un entorno más Bussiness Intelligence donde su filosofía es convertir datos en información e información en conocimiento para su posterior puesta en acción. Hacer que los analistas tengan una visión de los datos más relevantes de la compañía y anticiparse al mercado, a las necesidades del cliente…es decir, tener como una especie de visión de futuro.

Se dice que son bases de datos OLAP (On Line Analyctical Processing) cuando hay pocas transacciones, pero consultas más complejas, menos usuarios machacando la Database, un usuario común es un analista, el objetivo es el "data OUT", por lo general mantiene el histórico de los datos cuya precisión se mantiene en el tiempo, soporta grandes volúmenes de datos y normalmente el modelo de los datos es en estrella.

Es importante profundizar en cómo se construye un Data Warehouse. Esos datos que luego se convierten en información pueden venir de diferentes fuentes, que principalmente suelen ser bases de datos "tradicionales" OLTP, bases de datos no relacionales, ficheros planos de mala madre, que tienen que ser tratados para su posterior análisis. A ese proceso se le denomina ETL (Extract, Transform and Load).

  • Extraer: coger la información de diferentes fuentes, causando el mínimo daño en el sistema de origen.

  • Transformar: limpiar esos datos, separar, quedarte con lo que necesitas, depurar, corregir, aplicarles formatos, agrupación (lookup, merge), homogeneización…

  • Cargar: organizar y cargar la Base de Datos con esos nuevos datos transformados.

Existen un montón de herramientas ETL que facilitan este proceso, desde Informatica PowerCenter (muy usado en Banca y por empresas con pasta) hasta Talend Open Studio un proyecto Open Source que poco tiene que envidiar a "los grandes".

Vamos a por un ejemplo un poco tonto pero práctico para ver más o menos en qué se basa una ETL. Imaginemos que tengo una empresa totalmente innovadora de productos rurales.

Quiero añadir unas columnas (entre ellas fecha) a una tabla de mi Data Warehouse. Tengo los datos que necesito por una parte en ficheros planos CSV y quiero además cambiarle el formato al campo fecha a AAAA/MM/DD.

Lo primero, la herramienta tiene que estar en contacto tanto con el origen como con el destino, y en el medio del camino, realizara la transformación. En este caso, estará escuchando en un path el fichero CSV. Leerá el fichero localizando cada campo separado por las comas. (La separación puede estar delimitada por otro carácter como puede ser un pipe "|", una "&" o incluso ";", siempre y cuando después pueda ser interpretado correctamente).

Después cogerá la fecha que estaba en formato DD/MM/AAAA y lo cambiará a AAAA/MM/DD y por último se dispondrá a cargar este cambio junto con los otros campos de la tabla correspondientes. Para eso, tiene que estar en contacto con la Database, y la herramienta tiene que saber el nombre del host y el password, nombre del esquema y el nombre de la tabla entre otras cosas. Hay que describirle cual es el camino que tiene que seguir el dato paso a paso para que llegue a su destino.

El proceso es sencillo, una vez sepas cuales son los cambios que necesitas realizar al dato, el diseño del mapping es más fácil y después lo único que queda son las conexiones. Podemos decir que el fichero del origen no sufre ningún cambio, que el cambio se hace "en el camino" y que ahora tenemos datos mejorados en nuestra Data Warehouse. Cómo sacarle partido a esto ya, lo dejo en vuestra mano.

Espero que os haya parecido interesante la experiencia de traer a gente invitada a escribir sobre otros temas. Es posible que siga haciéndolo, convenciendo a gente técnica de mi entorno de colaborar por aquí aportando un poco más de variedad al blog.

Si tenéis alguna pregunta o comentario para eso está la sección inferior 😉

Un abrazo


  1. Eider es, a parte de otros millones de cosas maravillosas, la persona que me acompaña en mi vida y la persona para la que me gusta cocinar. Ingeniera de Telecomunicaciones. Su experiencia profesional siempre ha estado ligada a la explotación de datos a gran escala. Maniática de las fechas y los pequeños detalles desempeña su trabajo con la misma meticulosidad y precisión. Puedes encontrártela en internet escribiendo sobre lo que le gusta comer mientras me alegra la vida con su compañía (aquí).

Aprendiendo a programar

Hola,

Hoy toca reflexionar un poco como a mí me gusta, sin creerme un gurú de nada, para hablar de un tema bastante común que es el de aprender a programar (y en general) y daré mi punto de vista. Probablemente no vaya de acuerdo con la forma de trabajar de la gente en general porque me considero un tipo bastante rarito a la hora de enfocar mi aprendizaje y mi forma de trabajar, pero intentaré dar argumentos para que, aunque no estéis de acuerdo, tengáis la oportunidad de contrastarlos con vuestra forma de pensar. Os animo a comentar con vuestra opinión y formar un pequeño debate o un compendio de puntos de vista.

Bien. Comenzaré hablando de mi (corta) experiencia personal y de mi forma de enfocar las cosas y terminaré mencionando las cosas que a mí me parecen importantes a la hora de programar o que me las han pedido y me han dejado loco, y cómo he hecho (o haría) yo para conseguirlas.

En general no he exprimido ningún lenguaje que conozca al máximo, algunos ni siquiera mínimamente (sólo los he usado para hacer algún script corto de unas 20-30 líneas), pero he conseguido el control suficiente para poder jugar un poco. Llegados a un punto, es indiferente usar un lenguaje u otro.

De todas formas, (hoy, ahora) tengo muchas limitaciones en ciertas filosofías (programación estrictamente funcional, por ejemplo) porque no las he interiorizado suficiente y me cuesta bastante programar con un código válido para producción. Esto último ocurre por dos razones: no tengo un conocimiento muy profundo de algoritmia y no soy un experto con amplia experiencia, por lo que mi código generalmente no explota las herramientas al máximo. Tampoco me importa porque no me dedico a eso generalmente. Mi trabajo (y mi placer) es hacer cosas que funcionen y sean fáciles de leer e interpretar (cosa de la que el código de producción a veces carece un poco más) y cuando tengo que llegar a nivel de producción necesito profundizar mucho más tener más cuidado. A veces para que algo sea óptimo hay que exprimir el lenguaje o la herramienta hasta un nivel que se vuelve complicado de leer para gente no tan versada.

Sabiendo esto, casi se puede entrever cómo enfoco mi manera de aprender y utilizar los lenguajes de programación. Mi filosofía sigue los siguientes puntos:

  1. La sintaxis no importa. No pierdas el tiempo estudiándotela.
  2. Entender la filosofía del lenguaje lo es todo.
  3. En el mismo tipo de lenguaje los conceptos generales son parecidos siempre e incluso son extrapolables a otros campos.
  4. Si puedes leer código y documentación (internet) tienes todas las herramientas que necesitas.
  5. Haz bocetos y pruebas. Todo el rato.

Voy punto a punto:

El primer punto se refiere a que aprender la sintaxis concreta a modo de estudio es perder el tiempo porque siempre puede copiarse y se acaba aprendiendo sola mientras se va programando. Dedicarle tiempo es dedicarlo en vano. Siempre he pensado que estudiar cosas para aprenderlas de memoria es tiempo desperdiciado, porque esas cosas se olvidan. No quiero decir que no sea una cosa obligatoria de cumplir, porque es la única que lo es en realidad. Sólo quiero decir que una vez que puedes buscar en internet “Javascript object declaration” o “Python list comprehension” y copiar la forma en un minuto, pero es mucho más complejo buscar en internet “C++ pointers explanation” o “Functional programming for dummies”.

A parte, más importante que la propia sintaxis, en mi opinión, es el estilo. Programar bonito y claro es extremadamente importante para que podamos leer y enseñar nuestros programas sin problemas. Esto parece que choca un poco con el punto 5, pero que los bocetos no estén terminados no significa que no tengan que tener un trazo bonito y expresivo. 😉

El segundo punto me parece clave. Si conoces las razones por las que se creó un lenguaje, su contexto, puedes llegar a pensar como él. En cuanto lo haces todo se vuelve más sencillo. Si no lo consigues es muy complicado.

Recuerdo la primera vez que tuve que hacer algo en Bash en la universidad, yo lo enfocaba como C, que era lo que conocía, y trataba de recorrer archivos y hacer búsquedas usando for e if en lugar de hacer otro tipo de filtrados más propios de Bash (como hacer greps y cosas).

Una vez conoces cómo funciona un lenguaje te ahorras este tipo de cosas y enfocas los problemas mejor. Incluso te ayuda a elegir qué lenguaje usar para qué tarea, cosa que también ayuda bastante.

Fusionando este punto con el primero, es muy importante entender cómo funcionan las cosas, no sólo la filosofía del lenguaje si no también sus capacidades. Con esto me refiero también al tipado que tenga, si hace uso de referencias, punteros y esas cosas. Una vez sabido esto, tanto lo uno como lo otro, la sintaxis acabará entrando sola puesto que es un reflejo de eso. El resto son paréntesis y corchetes que no van a ninguna parte.

El punto 3 es muy simple. C y Perl son lenguajes de programación imperativa, son superdiferentes pero saber C ayuda a aprender Perl porque los conceptos principales son los mismos. Un bucle es “igual” en Perl que en C. Además, por ejemplo, al aprender Erlang tendremos que aprender qué es una función recursiva, cosa que nos podrá ayudar a enfocar problemas en C, aunque un lenguaje sea funcional y el otro imperativo. Con esto último quiero decir que existen metodologías y conceptos que no son dependientes del lenguaje, si no que son genéricos. Son formas de pensar, que incluso nos ayudarán en otros ámbitos de la vida.

Los puntos más importante, el cuarto y el quinto. ¿Si sólo sé la filosofía del lenguaje cómo programo? Muy sencillo, si sabes leer código tienes todo hecho. Para leer código tienes que conocer la filosofía del lenguaje y cómo se utiliza, la sintaxis no es necesaria (excepto para cosas concretas, que puedes buscar en google o en unos apuntes rápidos que te hagas) porque podrás verla en el código que lees. Para empezar a programar, prepárate un entorno de pruebas y haz bocetos de programas mientras te lees un libro del tema o miras tutoriales con ejemplos. Si no sabes hacer algo, lee la documentación, si sigues sin saber, busca en una página tipo GitHub o así un programa que funcione de forma similar y lee cómo lo hace él. Y copia. No inventes la rueda pero tampoco copies sin mirar. Entiende lo que estás copiando y haz pruebas encima.

Haz miles de bocetos y pruebas. No tengas miedo a romper todo, las pruebas son para eso. Tampoco tengas miedo a tener que reescribir.

Es más sencillo, en general, profundizar en el conocimiento y comprender porqués que perderte memorizando cómo se hacen las cosas paso a paso. Si has aprendido por qué se hace así, la vez que tengas que hacerlo el cómo se hace aparecerá sólo.

Eso es todo. Creo que queda claro lo que pienso y cómo enfoco mi proceso de aprendizaje. Espero vuestras opiniones.

Saludos.

OpenWRT y trocitos de mí

Hola hijos,

Este mes he comenzado una nueva andadura como Ingeniero de I+D y me ha tocado pegarme con unas cosas nuevas (es lo que tienen los nuevos trabajos) y divertidas. En este caso hablaré mínimamente de OpenWRT, pero esto es todo una excusa para explicar otra cosa.

OpenWRT es una distribución de Linux para sistemas embebidos. Se usa sobre todo en puntos de acceso wifi y ese tipo de dispositivos.

No quiero entrar mucho porque tampoco controlo nada pero, básicamente, a esta distribución se le puede instalar una interfaz web para gestionarla, como tiene nuestro router de casa, por ejemplo. Esta interfaz se llama LuCI.

Esta interfaz web tiene la opción de instalar un modo seguro, desde el que se pueden instalar imágenes del sistema etc. Cuando se instalaba, la web sacaba un mensaje de error y no se podía ver.

Debuggeando un poco el mensaje, indica qué línea del código fuente tiene problemas, aquí veis el mensaje de error:

/usr/lib/lua/luci/dispatcher.lua:433: Failed to execute function dispatcher target for entry '/'.
The called action terminated with an exception:
/usr/lib/lua/luci/dispatcher.lua:433: Failed to execute function dispatcher target for entry '/failsafe'.
The called action terminated with an exception:
/usr/lib/lua/luci/dispatcher.lua:433: Failed to execute call dispatcher target for entry '/failsafe/flashops'.
The called action terminated with an exception:
/usr/lib/lua/luci/controller/failsafe/failsafe.lua:91: attempt to index upvalue 'fp' (a nil value)
stack traceback:
    [C]: in function 'assert'
    /usr/lib/lua/luci/dispatcher.lua:433: in function 'dispatch'
    /usr/lib/lua/luci/dispatcher.lua:168: in function </usr/lib/lua/luci/dispatcher.lua:167>

Revisando el mensaje de error, vemos que en la línea 91 de /usr/lib/lua/luci/controller/failsafe/failsafe.lua se está accediendo a una variable con valor “nil”, es decir, sin inicializar.

No es realmente necesario saber Lua, que es el lenguaje de programación que se ha usado en LuCI, para resolver este problema. Si vamos al código fuente, podemos editar directamente esa zona para evitar acceder a esa variable si está sin inicializar.

Este es el cambio que he hecho, como se ve, sólo es comprobar que la variable ‘fp‘ no sea ‘nil‘. Así que ya no saltará el mismo error.

https://github.com/ekaitz-zarraga/luci/commit/a16654b12130d636b4e0f81839a26f5821619baa

Una vez resuelto, lo suyo es que lo solucionemos en todos los OpenWRTs del mundo, ¿no?

En realidad, tal y como está la sociedad no es lo habitual, pero como esto es software libre, sí, se puede arreglar para todos.

El paquete de LuCI es independiente, lo podéis encontrar en su página de GitHub o través de sus propios repositorios. Revisando un poco el archivo CONTRIBUTING.md aprendemos cómo contribuir, que no dejan de ser unos pocos detalles adicionales al procedimiento habitual de GitHub.

El procedimiento habitual es clonar el proyecto en nuestro perfil, crear una nueva rama para el cambio que queremos hacer, aplicarlo y pedir un Pull Request al proyecto original desde la rama que hemos creado en el nuestro.

Este es mi Pull Request:
https://github.com/openwrt/luci/pull/473

Como veis, mi Pull Request ha sido Merged, lo que implica que ha sido unido al proyecto, lo que me llena de satisfacción.

Lo que quiero explicaros con esto es que sin saber Lua y sin saber demasiado acerca de programación hemos resuelto un problema que tenía el código de un proyecto relativamente grande leyendo un poco el mensaje de error e investigando mínimamente. Es decir, no hace falta que nuestros cambios sean enormes o que tengamos que arreglar cosas extremadamente complicadas, simplemente, con encontrar un hueco donde ayudar es suficiente. Todos podemos hacerlo sin mucho esfuerzo.

Cuando un proyecto se gestiona correctamente, como usuarios podemos colaborar con este tipo de pequeñas aportaciones, haciendo que el software mejore y arreglando para todos pequeñas cositas que nos hemos arreglado a nosotros mismos.

En resumen, que cada pequeña aportación cuenta, que podemos cambiar el mundo desde el sofá sin esforzarnos demasiado. No hace falta ser un programador pro para ayudar. No hay que tenerle miedo al código porque, al fin y al cabo, a todos se nos cuelan pequeños bugs. 😉

Pues nada, eso. Que en OpenWRT hay un poco de Ekaitz y que perfectamente podía haber sido un poquito de ti y eso es maravilloso.

Un abrazo.


Sí que es cierto que hay que tener cierto dominio de las herramientas habituales que, resumiendo, es controlar un poco de Git o de otros sistemas de control de versiones. Al final, todo el software libre y colaborativo se basa en este tipo de herramientas para gestionar la colaboración. Pero de eso hablamos otro día 😉