summaryrefslogtreecommitdiff
path: root/content/posts
diff options
context:
space:
mode:
authorEkaitz Zárraga <ekaitz.zarraga@protonmail.com>2019-03-29 13:59:38 +0100
committerEkaitz Zárraga <ekaitz.zarraga@protonmail.com>2019-03-29 13:59:38 +0100
commitf7794a1479a7879becc711c57aebdc84e769b9df (patch)
tree0fda622f0c4bd2adaa5ae324d8f97d8cbad8f3d7 /content/posts
parent040fa162f87ccf23e9b2f363326bce84c57d70f8 (diff)
Update many
Diffstat (limited to 'content/posts')
-rw-r--r--content/posts/call-me-maybe.md185
-rw-r--r--content/posts/first_time.md114
-rw-r--r--content/posts/genesis-es.md148
-rw-r--r--content/posts/genesis-eu.md135
-rw-r--r--content/posts/genesis.md146
-rw-r--r--content/posts/templates-released.md181
6 files changed, 0 insertions, 909 deletions
diff --git a/content/posts/call-me-maybe.md b/content/posts/call-me-maybe.md
deleted file mode 100644
index 22aeece..0000000
--- a/content/posts/call-me-maybe.md
+++ /dev/null
@@ -1,185 +0,0 @@
-Title: Call me maybe
-Date: 2019-01-09
-Category:
-Tags:
-Slug: call-me-maybe
-Lang: en
-Summary: Recursion, stacks and optimizations.
-
-Do you remember what happens when you call a function in your program?
-
-What happens when you make too many nested calls?[^1]
-
-When you call your functions, there some stuff going on in the memory, some
-variables, the program counter and all that, that must be stored somewhere to
-be able to come back to the place you called the function when the function
-ends. Right?
-
-The place where all that is stored is the stack. You already know all this.
-When you call many nested functions, the stack goes pushing more and more data,
-and there's no chance to pop it, so it overflows.
-
-This can happen anytime but there's more risk for that when you call functions
-recursively, because they call themselves many times by definition. In a
-non-recursive program it can happen too, but devices can handle big levels of
-nesting so it's more unlikely to happen (in small devices like microcontrollers
-or so, you have to take care of this too).
-
-This doesn't mean recursive functions will result in a stack overflow always.
-That will only happen when the nesting level is bigger than the stack size.
-
-> You are so stupid the recursive function that calculates your stupidity
-> causes a stack overflow.
-> — Heard in a computer science class
-
-But this is not always true. There are some optimizations that can change this
-behaviour and allow you to create stack-safe recursions. Let's talk about
-**tail-call optimization**.
-
-Some programming languages implement tail-call optimization, that, if used
-correctly, avoids stack overflows in recursive calls and increase performance.
-First of all, in order to be able to make a tail-call optimization, the
-function **must** have a call as its last action (tail-call). This means **it
-requires to be ordered in an specific way**. Let's see it with an
-(oversimplified) example (in Python, but don't pay attention to the language):
-
-
- ::python
- def factorial (a):
- """ This function does not provide a tail-call, because the last thing
- to execute in it is a multiplication, not a call """
- if a == 1:
- return 1
- return a * factorial(a-1)
-
- def factorial_tail (a, acc=1):
- """ This function provides a tail-call, the last thing happening on it
- it's a function call."""
- if a == 1:
- return acc
- return factorial_tail(a-1, acc=acc*a)
-
-
-As the comments say, the first function is not performing a tail-recursion, but
-the second is. But, what's the difference?
-
-The main point is the first function, `factorial`, needs to go back in the call
-stack to retrieve previous step's `a` value, while the second function doesn't.
-That's why the second can be optimized and the first not.
-
-The optimization exploits this behaviour in a really clever way to avoid the
-stack overflows I told you before. Tail call optimization just changes the
-input parameters of the function and calls it again, replacing the original
-call with the new call with different input arguments. This can be made because
-the function is written in a way that doesn't need anything from the previous
-step.
-
-Imagine that we introduce a `3` in the first and the second function, let's
-compare the execution. Let's check `factorial` first:
-
-- Call `factorial(3)`
- - Call ` factorial(2)`
- - Call `factorial(1)`
- - Return `1`
- - Return `2 * 1`
-- Return `3 * 2`
-
-Now with the `factorial-tail` function but without any optimization:
-
-- Call `factorial-tail(3)`
- - Call `factorial-tail(2, acc=3)`
- - Call `factorial-tail(1, acc=6)`
- - Return 6
- - Return 6
-- Return 6
-
-See the difference?
-
-The `factorial-tail` call doesn't need anything from the previous step, the
-last `factorial-tail(1, acc=6)` function call's result is the same as the
-result of the `factorial-tail(3)` function. That changes everything!
-
-What tail call optimization does is just change the call arguments and keep
-running the same code. There's no need to store anything on the stack, just
-change the function call with the tail call.
-
-Let's optimize the second call now:
-
-- Call `factorial-tail(3)`
-- Replace the call with `factorial-tail(2, acc=3)`
-- Replace the call with `factorial-tail(1, acc=6)`
-- Return 6
-
-This can be stretched further! It can involve different functions! In any place
-where a tail-call is made, even if the called function is a different function,
-this kind of optimization can be done, reducing the stack size and increasing
-the performance.
-
-If you want to read more about this, there's [a great wikipedia page on the
-subject][wikipedia] and you there's [a really good explanation in the book
-Programming in Lua][lua].
-
-
-
-But how is all this handled by the programming languages? You may ask.
-
-The answer is there's not a clear answer, all of them have their own style of
-dealing with this. Let me give you some examples.
-
-**Python**, just to point out the language I chose for the example is no the
-best example of this, has no tail recursion elimination. Guido and the
-Pythonists[^2] argue that tail call optimization alters the stack traces (which
-is true) and that they don't like the recursion as a base for programming, so
-they try to avoid it. In CPython there's no tail call optimization, but they
-don't forbid (they can't!) any other Python implementation to implement that
-particular optimization. There's a really [interesting post by Guido Van Rossum
-about this][guido].
-
-**Lua**, as you've seen in the [previous link][lua], implements proper tail
-calls (as they call them there) and there's nothing the programmer needs to do
-to make sure they are optimized. The only thing is to put the tail calls
-correctly.
-
-**Scala** implements tail recursion optimization at compile time so the
-compiler transforms the recursive call with a loop in compilation time. That's
-interesting because there's a compile time check too. There's an annotation
-called `@tailrec` that can be used to make sure that your function is going to
-be optimized. If the compiler is not able to optimize it will throw an error if
-it has the `@tailrec` annotation. If it doesn't have it, it will simply make a
-standard recursion. In the [annotations tour of the Scala language][scala] has
-some words about `@tailrec`.
-
-**Clojure** is a really interesting case too. Clojure doesn't implement
-tail-call optimization, but it has one (and only one) special form for non
-stack consuming looping: `recur`. This special form rebinds the recursion
-point's bindings or arguments and jumps back to the recursion point. The
-*recursion point* can be a `loop` special form or a function definition. So,
-it's just an explicit call to the tail recursion optimization. Tail call must
-be done correctly too, `recur` is only allowed in a tail call and the compiler
-checks if it's located in the correct place. Also, it has some specific rules
-that must be taken in consideration (multiple arity functions and so on), that
-is better to [read in the documentation][clojure].
-
-
-> *Edited 2019-01-25*: Thanks to a discussion in the fediverse about the topic,
-> I found the moment where **Emacs Lisp** got its tail call optimization
-> everything explained [in the author's blog][emacs]. It's really interesting.
-
-
-
-[^1]: Some help: what's the name of the website you check when you don't know
- how to solve your programming problem?
-
-[^2]: My next music band name.
-
-[wikipedia]: https://en.wikipedia.org/wiki/Tail_call
-
-[lua]: https://www.lua.org/pil/6.3.html
-
-[guido]: https://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html
-
-[scala]: https://docs.scala-lang.org/tour/annotations.html
-
-[clojure]: https://clojure.org/reference/special_forms#recur
-
-[emacs]: https://chrismgray.github.io/posts/emacs-tco/
diff --git a/content/posts/first_time.md b/content/posts/first_time.md
deleted file mode 100644
index f7038a0..0000000
--- a/content/posts/first_time.md
+++ /dev/null
@@ -1,114 +0,0 @@
-Title: My first time
-Date: 2018-06-23
-Category:
-Tags:
-Slug: First-Time
-Lang: en
-Summary: Thoughts about my first contribution to free software
-
-The other day I remembered a very important day on my life, one of those early
-beginnings that started to change my mind: **The first time I contributed to
-free software**.
-
-My first contribution was in 2014, more specifically the 22nd of May of 2014.
-
-That's only 4 years ago. But, at the same time, they already passed 4 years
-since then? OMG.
-
-You get the feeling, right?
-
-You may think I started coding when I was 10 or something like that. I didn't.
-I learned programming in the university and not as well as a Computer Scientist
-because I studied Telecommunication Engineering and computers are just a third
-of the studies while the other two parts are electronics and signals related
-things.
-
-I'm not a young hacker or a genius. My parents don't like computers. I didn't
-live with a computer at home since I was a toddler. That didn't happen.
-
-Today I want to tell you my story. Not because it's awesome and you'll love it.
-I want to tell you my story because it's **really** standard. I want you to see
-that you can also contribute to Free Software. Anyone can.
-
-So, how did it all start?
-
-I started my university studies in 2009. The first year we had one semester of
-C and the next one of C++. Not real programming classes, just introductory
-stuff for the languages and computers. A couple of years later we had a
-networking subject where I used Linux for the first time. The computers had
-*Kubuntu* installed. At that time my laptop started to give me some trouble and
-I installed *Kubuntu* in a dual boot and tested it. It was nice.
-
-Few time later the *Windows* partition failed again and I was comfortable
-enough in *Kubuntu* to delete it and use only *Kubuntu*. It was easy.
-
-The second semester that year another subject had some focus on Linux because
-it was a networks and tools subject and I really needed it. We learned to use a
-terminal, some SQL and many things like that. Simple tools but they resulted to
-be useful in the future. I was really surprised by the power of the terminal
-and I studied a lot in my free time I finished the subject with honours just
-because I was really interested on it. As I said, I'm not a genius, I was
-interested.
-
-We had a subject about *Minix*, following Andrew Tannenbaum's *Operating
-Systems: Desing and Implementation* book and *Minix* version 1, which gave us
-the initial needed knowledge about Operating Systems at that time. That started
-to give me some info about the ethical part of the free software and also
-sparked more interest.
-
-Next year I had a couple of Operating Systems subjects (the theoretical one and
-the practical one). The teacher was part of *KDE Spain*, and he talked about
-free software in class. I was quite into it at that time. The practical part of
-the subject was real software, we covered the contents of the book called
-*Advanced Linux programming*[^1]. That was pure C development and we didn't
-have a lot of knowledge on that. We just touched some C/C++ during the first
-year and some assembly in a couple of subjects. It was really hard, but it was
-really cool.
-
-We made a small shell. It was great!
-
-Final year[^2] of the university: I had to make the final project.
-
-I didn't know what to do so I contacted the teacher who was part of *KDE Spain*
-and he mentored me. I installed a IRC client and started talking with the
-people at *kde-telepathy* project. I wasn't used to that kind of collaborative
-development. Heck, I wasn't used at any kind of development! But it was all
-good, mostly thanks to the great people in the project (David, Diane, George,
-Martin... *You* are awesome!).
-
-The project itself was a *KDE* application, *KDE-Telepathy*, a big one. Thanks
-to heaven, my part of the project was quite separated so I could focus on my
-piece. That taught me to search in a big codebase and focus on my part. Then I
-had to code in C++ like in the real life, not like designed problems I've
-worked on at the university, and I also had to read tons of documentation about
-*Qt*, *KDE* and anything else.
-
-I started with the contribution that opened this post and I went on until I
-renewed the whole interface. It wasn't great, but the code was finally merged
-in the application some time later.
-
-Since then I could say I code almost everyday and I've been studying many
-languages more but, at that time, I was relatively new to programming and
-computers.
-
-With all this I mean:
-
-> If you are interested, try. Everything is going to be fine. You don't need to
-> be a genius[^3].
-
-[You can check the contribution
-here](https://git.reviewboard.kde.org/r/118256/diff/2#index_header).
-
-Love.
-
-Ekaitz
-
-[^1]: It's a great book, by the way. You can find it
- [online](https://mentorembedded.github.io/advancedlinuxprogramming/).
-
-[^2]: When I studied, right before the [Bolognia
- Process](https://en.wikipedia.org/wiki/Bologna_Process), the university was 5
- years long for a Masters Degree and 3 for a Bachelor Degree.
-
-[^3]: But congratulations if you are, that way you'll learn faster and probably
- have more reach if you want to.
diff --git a/content/posts/genesis-es.md b/content/posts/genesis-es.md
deleted file mode 100644
index 1d377ae..0000000
--- a/content/posts/genesis-es.md
+++ /dev/null
@@ -1,148 +0,0 @@
-Title: [ES] Génesis
-Date: 2018-04-15
-Tags:
-Slug: Genesis
-Lang: es
-Translation: true
-
-Como primer post en este blog *oficial-pero-no-muy-oficial* sólo quiero
-presentarme y presentar *ElenQ Technology*.
-
-Me llamo Ekaitz Zárraga y nací en 1991. Suelo describir mi trabajo como
-ingeniero de I+D pero en realidad estudié Ingeniería de Telecomunicaciones y
-*sólo* trabajo en ese área. Mayormente me centro en actividades relacionadas
-con los ordenadores como, por ejemplo, programar pero también puedo hacer
-electrónica y otras cosas. Esa sería mi presentación formal. En la informal
-diría que soy una persona bastante curiosa, lo que me ha hecho investigar y
-profundizar en otras disciplinas como el arte en sus diferentes formas. Este
-último punto explica mucho de lo que vendrá después en este texto. Y eso es
-todo en lo que a mí respecta, ya escribiré un currículum vitae informal en el
-futuro.
-
-*ElenQ Technology* es un nombre, una forma de llamar a como soy y a los
-intereses que tengo. Además, también es un proyecto de I+D que estoy
-desarrollando. Es una empresa distinta a las demás, en la que pretendo generar
-conciencia acerca de la tecnología ética mediante el ejemplo, demostrando que
-las compañías de tecnología ética pueden ser rentables. No es sólo mi trabajo
-en el que hago ingeniería, también es una *performance* artística. Es como una
-obra de arte.
-
-> *ElenQ Technology* es un proyecto artístico que te dice que otro modelo es
-> posible. Te recuerda que tienes elección y que no tienes que trabajar en una
-> corporación y seguir sus reglas.
-
-*ElenQ Technology* es, simplemente, el resultado de todas las cosas que he
-sentido trabajando para otras compañías y el resultado de un análisis profundo
-del estado de la tecnología en mi contexto cercano que, creo, puede ser
-extrapolado al resto de lugares con una precisión aceptable.
-
-Para contextualizar, las grandes empresas del mundo IT en mi zona cercana
-tienen un modelo de negocio similar, basado en el *body shopping* (muchas de
-ellas haciendo cesiones ilegales en subcontratas). Pagan unos salarios
-bajísimos y las condiciones laborales son lamentables. El resto de sectores
-tampoco están mucho mejor, pero el caso de las empresas del mundo IT es
-escalofriante.
-
-Los trabajos rara vez son de 8 horas diarias, las jornadas se están alargando
-cada vez más y, en muchos, es normal trabajar 10 horas al día. La famosa
-*Crisis Económica™* mezclada con una profunda corrupción ha sido el caldo de
-cultivo perfecto para que las grandes empresas se aprovechen de los
-trabajadores.
-
-Dicho esto, es muy fácil entender cómo funciona el mundo de la tecnología por
-aquí. Grandes empresas ganando insultantes cantidades de dinero mientras que no
-respetan a sus trabajadores o clientes, soluciones tecnológicas privativas para
-atar a los clientes e impedirles ser independientes, etc. Todo para mantener su
-modelo de negocio podrido y corrupto hasta la médula.
-
-Ese es el estado de las empresas de tecnología en mi entorno, el de las
-grandes. Seguro que puede extrapolarse a otros lugares porque muchas de ellas
-operan también en el extranjero.
-
-En mi caso tuve la suerte de acabar en una empresa que parecía un lugar mejor.
-Las condiciones eran ligeramente mejores que las que he descrito, o al menos
-así lo creía yo. Era un trabajo de Ingeniero de I+D en una empresa no demasiado
-grande. Trabajaba en un departamento aislado de menos de 10 personas. Hacíamos
-los juguetes nuevos de la empresa. Era divertido.
-
-Después de algún tiempo allí me di cuenta de cómo funcionaba. No era tan
-diferente al resto. Hubo muchas cosas que no quiero compartir aquí pero empecé
-a sentirme bastante mal y mi situación personal tampoco ayudó mucho. Siempre he
-sido una persona curiosa a la que le gusta aprender cosas nuevas y ese trabajo
-dejó de aportarme eso como lo hacía al principio. Empecé a necesitar llenar ese
-hueco trabajando en mis proyectos personales en el poco tiempo que me quedaba
-al día. La suma de un entorno de trabajo aburrido y deprimente más los
-problemas organizativos que teníamos era difícil de gestionar.
-
-Sumergido en ese entorno deprimente, la empresa, con intención de salir a bolsa
-próximamente, quiso exprimir al máximo sus recursos y plantear nuevos negocios.
-Nuestro departamento, como encargado del I+D de la empresa, era el responsable
-de plantear las nuevas *pruebas de concepto*. Nos pidieron que analizásemos los
-datos de la compañía. Literalmente, nos pidieron que siguiésemos a la gente,
-que los localizásemos. No les importaba que fuesen nuestros clientes o no.
-Querían que localizásemos a *todos*.
-
-Eso fue la gota que colmó el vaso. Tenía que dejarlo porque eso superaba con
-creces el límite de mi ética personal. No me gustan esas prácticas y no podía
-ser parte de eso.
-
-Llevaba tiempo pensando en la forma en la que hacemos tecnología y siempre me
-había apetecido probarlo por mi cuenta. Eso me dio el valor que me faltaba
-para hacerlo.
-
-¿Por qué no simplemente cambiar de trabajo?
-
-Creo que era el momento para intentarlo. Como entusiasta del software y
-hardware libre, siempre me ha interesado definir lo que es la tecnología ética
-y llevaba tiempo con ganas de aplicarlo en mi campo: el I+D. Además, teniendo
-en cuenta el estado de las empresas para las que podía trabajar, decidí cambiar
-las cosas de raíz. Decidí intentar un modelo distinto. ¿Tenía alguna otra
-alternativa en realidad?
-
-¿Es una alternativa real trabajar en un entorno deprimente que hace del mundo
-un lugar peor? ¿Seguro?
-
-Piensa en ello.
-
-*ElenQ Technology* rompe entonces con ese modelo de negocio y hace tecnología
-ética de una forma ética. Eso es bueno para mí porque me permite trabajar en
-los campos que me gustan y hacer del mundo un lugar mejor lo que, egoístamente,
-mejorará el futuro que le deje a mis hijos, si algún día los tengo. Al mismo
-tiempo esto es bueno para los clientes de *ElenQ Technology* porque los
-proyectos se gestionan de forma que *ellos* son los dueños de la tecnología que
-se crea. Para esto último se siguen los principios del Software y el Hardware
-Libre y el [Manifiesto del Diseño Ético](https://2017.ind.ie/ethical-design/)
-junto con algunas ideas adicionales más específicas del campo al que me dedico
-(puedes leer más [aquí][1]).
-
-Quiero cambiar el mundo. ¿Tú no?
-
-El problema es que yo no puedo hacerlo solo así que *ElenQ Technology* es una
-forma de hacer que otros tomen la misma decisión que yo tomé (o fui forzado a
-tomar) y ese es su objetivo principal.
-
-Cambiemos el mundo juntos.
-
-### Sobre este blog
-
-Ya te has dado cuenta que este blog no es el blog oficial de *ElenQ
-Technology*. Esto es *mi* blog *oficial-pero-no-muy-oficial* como parte (o
-"persona al frente", pero decirlo así no me gusta) de *ElenQ Technology*.
-
-Aquí escribiré sobre *ElenQ Technology*, sobre su filosofía, objetivos, logros
-y ese tipo de temas *oficiales* que me parezcan relevantes pero sobre todo
-tengo la intención de escribir sobre las **cosas que hacemos**. Eso es lo que
-más me interesa.
-
-Este sitio será un lugar muy técnico en el que trataré de explicar conceptos
-avanzados de forma sencilla para que aprendáis conmigo. Quiero compartir lo que
-haga con vosotros.
-
-### Sobre los idiomas
-
-Este blog se escribe en inglés, pero algunas de las entradas (como esta misma)
-podrán traducirse a otros idiomas. Como el blog soporta traducciones, prefiero
-mantener las opción activa para, si es necesario, añadir traducciones
-proporcionadas por la comunidad o hechas por mí mismo, como en este caso.
-
-[1]: https://elenq.tech/es/about.html#ethical-innovation
diff --git a/content/posts/genesis-eu.md b/content/posts/genesis-eu.md
deleted file mode 100644
index 34e89c8..0000000
--- a/content/posts/genesis-eu.md
+++ /dev/null
@@ -1,135 +0,0 @@
-Title: [EU] Genesis
-Date: 2018-04-15
-Category:
-Tags:
-Slug: Genesis
-Lang: eu
-Translation: true
-
-
-Blog *ofizial-baina-ez-oso-ofizial* honen lehenengo post bezala, nor naizen eta
-*ElenQ Technology* zer den aurkeztu nahi dut.
-
-Hasteko, Ekaitz Zárraga naiz eta 1991. urtean jaio nintzen. Nire burua I+G
-ingeniari bezala deskribatzen dudan arren, Telekomunikazio Ingeniaritza ikasi
-nuen eta arlo horretan *bakarrik* egiten dut lan. Bereziki ordenagailuekin
-lotutako gauzak egiten ditut, programazioa eta horrelakoak, baina elektronika
-eta bestelako gauzak jorratzeko ere gaitasuna daukat. Hori da nire sarrera
-formala. Sarrera informalean jakin-min handia dudala esango nuke eta horrek
-beste diziplina batzutan aritzeko aukera eman didala, haien artean artea.
-Azkeneko puntu honek garrantzi handia dauka testu honetan idatzitakoarekin
-erlazio zuzena izango duelako. Hauxe da nire aurkezpena, etorkizunean kurrikulum
-informal bat egingo dut.
-
-*ElenQ Technology* izen bat da, nire interesak eta nire izaera adierazteko izen
-bat baino ez. Hori esanda, aldi beran nire I+G proiektu independentea da.
-Adibidearen bitartez, enpresa etikoak errentagarriak izan daitezkeela
-erakutsiz, teknologia etikoari buruz kontzientzia eratzeko helburua duen
-enpresa bat da. Ez da nire lana bakarrik, *performance* artistiko bat da.
-Artelan baten antzera.
-
-> *ElenQ Technology* modelo ezberdin bat egin daitekeela esaten dizun artelan
-> bat da. Aukerak badaudela eta ez zaudela korporazio baten arauekin lan
-> egitera behartuta esaten dizu.
-
-*ElenQ Technology* beste enpresetan lan egitearen eta nire ingurunean
-teknologiaren egoeraren analisi bat egitearen emaitza da, baina uste dut nahiko
-modu zehatzean orokortu daitekeela.
-
-Hasteko, nire inguruko IT enpresek *body-shopping*-ean oinarritutako negozio
-eredu antzekoa daukate. Askotan ilegalak diren praktikak egiteaz gain soldata
-baxuak ordaintzen dituzte. Beste sektoreak ez dira askoz hobeak baina IT
-munduaren kasua guztiz ankerra da.
-
-Ordutegiak luzatu egin dira azken urteotan. Egunean 10 ordu lan egitea normala
-bihurtzen hasi da. *Krisi Ekonomiko™* famatuaren ondorioz, prekaritatea
-normalizatu egin da, gehien bat, enpresek argi daukatelako jendeak lanaren
-behar larria daukala.
-
-Hori esanda, erraz ulertu dezakezu teknologiaren mundua nola dagoen. IT
-korporazioek haien bezeroak eta langileak errespetatu gabe dirutza egiten dute.
-Bezeroak lotuta izateko produktu propietarioak saltzen dituzte. Haien helburu
-nagusia daukaten negozio eredu ustelaren etorkizuna bermatzea da.
-
-Hau da bizi dugun egoera. Lehen esan bezala, erraz orokortu daiteke, aipatutako
-enpresa gehienak atzerrikoak direlako eta beste herrialdeetan ere kokatuta
-daudelako.
-
-Nire kasuan, leku hobe batean lan egiten nuela uste nuen. Lan baldintzak
-hobeak ziren bertan. I+G ingeniari postu bat nuen enpresa moderno batean.
-Hamar bat pertsonaz osatutako departamendu txiki isolatu bat zen. Enpresaren
-jostailu berriak egiten genituen. Nahiko dibertigarria zen.
-
-Denbora pasa ahala, lan baldintzak hain onak ez zirela konturatzen hasi
-nintzen. Aipatu nahi ez ditudan gauza asko gertatu zirenez, bertan txarto
-sentitzen hasi nintzen eta, gainera, nire egoera pertsonalak ez zuen batere
-lagundu. Oso pertsona kuriosoa naiz eta lanak nire jakin-mina asetzeko ematen
-zidan aukera desagertzen hasi zen. Nire denbora librean gauza berriak ikasten
-eta aztertzen hasi nintzen. Lan aspergarria barneko antolaketa arazoekin batu
-zen eta nire bizitza kudeatzea oso zaila egin zitzaidan.
-
-Depresioan murgilduta, enpresak, burtsara ateratzea helburu zuela, bere
-negozioa handitu nahi zuen. Gure departamenduak, enpresaren I+G-aren
-erantzulea zenez, enpresaren kontzeptu-proba berrien garapena egin behar
-zuen. Enpresak zituen datuak aztertzea eskatu ziguten. Pertsonen kokapena
-jarraitzea eskatu ziguten, mundu osotik, edozein momentuan. Ez zuten bezero eta
-ez-bezeroen arteko ezberdintasunik egin nahi. *Guztiak* jarraitzeko eskatu
-ziguten.
-
-Hori gehiegi zen niretzat. Arrazoi etikoengatik utzi nuen lana. Ez dut horretan
-parte hartu nahi.
-
-Teknologia eratzen den modua aldatu nahi izan dut beti. Nire kabuz teknologia
-egitea eta besteak gauza bera egitera bultzatzea beti egon da nire buruan baina
-orain arte ez dut salto hori emateko ausardirik izan. Gertatutakoak falta
-zitzaidan bultzada eman zidan.
-
-Baina, zergatik ez mugitu beste lan bateara?
-
-Momentua zela uste dut. Denbora luzez ibili naiz teknologia etikoari buruz
-pentsatzen eta nire esparruan, Ikerkuntza eta Garapenean, aplikatu nahi nuen.
-Gainera, nire inguruko enpresetan izango nituen arazoak ikusita, zuzenean
-sustraira joatea erabaki nuen. Beste modelo bat saiatzea erabaki nuen. Beste
-aukerarik al nuen?
-
-Mundua txarrerantz aldatzen giro deprimagarri batean lan egitea benetako aukera
-bat al da?
-
-Pentsatu ondo.
-
-Orduan, *ElenQ Technolgy*-k nire inguruko konpainien negozio modeloa apurtzen
-du. Teknologia Etikoa garatzen du, modu etiko batean. Hori ona da niretzat,
-zuzenean, niri gustatzen zaizkidan gauzetan lan egiteko aukera ematen didalako,
-etorkizunean eduki ditzakedan umeentzat mundua hobetzen dudan bitartean. Eta
-bezeroentzat, proiektuak garatutako teknologia *bezeroarena* izateko moduan
-kudeatzen ditugulako, Software eta Hardware Librearean printzipioak eta
-[Diseinu Etikoaren Manifestoa](https://2017.ind.ie/ethical-design/) (gure
-esparrura moldatuta) jarraituz (gehiago irakurri dezakezu [hemen][1]).
-
-Mundua aldatu nahi dut, zuk ez?
-
-Nik bakarrik ezin dudala mundua aldatu konturatu naiz, beraz, *ElenQ
-Technology*-k besteak nik (behartuta edo ez) hartu nuen erabakia hartzera
-bultzatzea du helburu.
-
-Aldatu dezagun mundua guztiok batera.
-
-### Blog honi buruz
-
-Jada konturatu zara blog hau *ElenQ Technology*-ren blog ofiziala ez dela.
-*Nire* blog *ofizial-baina-ez-oso-ofiziala* da, *ElenQ Teknology*-ren parte
-(edo buru, baina ez dut hitz hori gustoko) bezala.
-
-Hemen *ElenQ Technology*-ri buruz idatziko dut, bere filosofia, helburu,
-arrakasta, etab.-ei buruz. Baina gehien bat **egiten dugunari buruz** idatzi
-nahi dut, hori baita niretzat interesgarriena. Prozesuaren parte egin nahi
-zaituztet.
-
-### Hizkuntzei buruz
-
-Blog hau ingelesez idatziko da, baina aukera dago testuak (hau bezala) beste
-hizkuntzetara itzultzeko. Blogak baimentzen duen bitartean nahiago dut aukera
-prest uztea komunitateak itzulitako testuak gehitzeko edota, kasu honen moduan,
-nik egindako itzulpenak igo ahal izateko.
-
-[1]: https://elenq.tech/eu/about.html#ethical-innovation
diff --git a/content/posts/genesis.md b/content/posts/genesis.md
deleted file mode 100644
index 07818ef..0000000
--- a/content/posts/genesis.md
+++ /dev/null
@@ -1,146 +0,0 @@
-Title: Genesis
-Date: 2018-04-15
-Category:
-Tags:
-Slug: Genesis
-Lang: en
-Summary:
- About this blog, ElenQ Technology, and myself
-
-
-As a first post in this *official-but-not-very-official* blog I just want to
-introduce myself and *ElenQ Technology*.
-
-First of all, my name is Ekaitz Zárraga and I was born in 1991. I describe my
-job as R&D Engineer but actually I studied Telecommunications Engineering and I
-*only* make my research and development in that area. I'm mostly focused in
-programming or computer-related activities but I can also do some electronics
-and other kind of things. That's my formal introduction. In the informal part
-I'd say I've always been a really curious person and that made me try other
-disciplines like arts in its different forms. This last point drives most of
-what I'll write about later in this text. That's all from my part, I'll write
-down an informal resume in the future.
-
-
-*ElenQ Technology* is a name, it's a name to call the way I am and the
-interests I have. That said, it's also the independent R&D project I'm running.
-It's a different kind of company which aims to raise awareness about ethical
-technology or [Ethical Innovation][1] by example, demonstrating ethical
-companies can be profitable. It's not simply the way I make my living where I
-make engineering, it's also a performance. Like an art piece.
-
-> *ElenQ Technology* is an art piece which tells you that a different model is
-> possible. It tells you that you have a choice and you don't need to work in a
-> corporation and be governed by its rules.
-
-*ElenQ Technology* is the result of many things I felt working for other
-companies and it's also the result of a deep analysis of the status of the
-technology in my context, which I think it can be generalized globally with a
-decent accuracy.
-
-First, in my near context most of the IT companies have a similar business
-model based on *body shopping* and they pay really low salaries. Other sectors
-are not in a much better position, but the IT is outrageous.
-
-The jobs are not 9-to-5 jobs here. Working 10 hours per day is becoming the
-norm. The famous *Economical Crisis™* mixed with a deep corruption made people
-pray for jobs and the companies are being aware of that.
-
-That said, you can easily imagine how the tech world works here. IT
-corporations get a ridiculous amount of money while they don't respect their
-workers nor their clients. They make proprietary solutions because they don't
-want to lose the projects and let the client be independent. They don't want
-you to be free in any case because they need to maintain their rotten business
-model.
-
-That is the general status of the IT world in my surroundings but I'm sure, as
-I said, it can be generalized, maybe not totally but there are many points than
-can be, mostly because the corporations I mention are present in other
-countries.
-
-Personally, I had the luck to work in what I thought it was a better place.
-The working conditions were not as bad as I described, or at least I
-thought that. It was a R&D Engineer position in a not very big corporation. I
-worked in a small department with less than ten co-workers. We made new stuff
-for the company. It was fun.
-
-After some time there I realized how it worked. It wasn't really different to
-other jobs. There were a lot of things I don't want to share here but I started
-to feel bad there and my personal situation didn't help at all. I've always
-been a really curious person, I love learning new things and the job simply
-wasn't giving me that as it did at the beginning. I started to need to fill my
-needs spending more time after the job doing tech related stuff in the few free
-time I had. The mix between the boring job and the organizational problems we
-had made it really depressing.
-
-While I was immerse in that depressing environment, our company wanted more
-money and they started looking for new businesses with the resources they had.
-Our team, as R&D team, was responsible of the development of the first
-*proof-of-concept* of the new technology. We were asked to analyze the data
-that the company had. Literally, we were asked to track people. The company
-didn't care if they were our users or not, we were asked to track *everyone*.
-
-That was the straw that broke the camel's back. I left the job because my
-ethics are not compatible with people tracking. I don't like it and I don't
-want to be part of it.
-
-I always wanted to change the way the technology is created and I always
-thought it was a great idea to make it by myself and encourage others to do so,
-but I never had the courage to do it. What happened gave me the courage I
-needed.
-
-But, why not simply move to another job?
-
-I think it was the moment to try it. I had been defining an idea of what
-Ethical Technology is for a while and I always wanted to apply that idea in my
-field: R&D. Also, taking in account that most of the companies where I could
-work have the same structural problems I decided to change it from the root. I
-decided to try a different model. Did I really have other options?
-
-Is living in a depressing environment making the world a worse place to live
-in an option? Really?
-
-Think about it.
-
-
-Now, *ElenQ Technology* breaks the business model of the companies of my
-environment. It makes ethical technology and it makes it in an ethical way.
-That's good for me because it lets me work on the fields I like and I can make
-the world a better place to live in, which selfishly will improve the future I
-leave for my children if I ever have them. But it's also good for the clients
-*ElenQ Technology* has, because all the projects are handled in a way *they*
-own them, following the principles of the Free Software and Hardware and
-[Ethical Design manifesto](https://2017.ind.ie/ethical-design/) with some
-extra ideas I added to be more specific to the innovation field (you can read
-more [here][1]).
-
-I want to change the world. Don't you?
-
-The thing is I can't do it alone so *ElenQ Technology* wants to push other
-people to take the same decision I took (or I was forced to take) and that's
-its main goal.
-
-Let's change the world together.
-
-### About this website
-
-You already noticed this is not the official *ElenQ Technology* website. This
-is *my* *official-but-not-very-official* blog as part (or head, but I don't
-like that word) of *ElenQ Technology*.
-
-Here I'll write about *ElenQ Technology*'s philosophy, goals, achievements and
-that kind of *official* things but mostly I'll write **about the things we
-make**. That's what interests me the most.
-
-This is going to be a really technical place where I'll try to explain advanced
-concepts in a simple way to let you learn stuff with me. I want to share what I
-do with you all.
-
-### About languages
-
-I'll write all this post in English but some of the entries are going to be
-translated. As the blog supports that, it's better for me to leave it like a
-supported tool and keep the translation option always enabled so I can add
-community translated posts or posts translated by myself.
-
-[1]: https://elenq.tech/en/about.html#ethical-innovation
diff --git a/content/posts/templates-released.md b/content/posts/templates-released.md
deleted file mode 100644
index 02eb3d5..0000000
--- a/content/posts/templates-released.md
+++ /dev/null
@@ -1,181 +0,0 @@
-Title: Let's document
-Date: 2019-02-01
-Category:
-Tags:
-Slug: templates-released
-Lang: en
-Summary:
- ElenQ Technology document templates released, with a long writeup
- about the workflow we use with them.
-
-At [ElenQ Technology][elenq] I just released my documentation templates tool.
-You can find it in the link below:
-
-[https://gitlab.com/ElenQ/templates](https://gitlab.com/ElenQ/templates)
-
-I think that project, even if it's quite simple, it's a really good reason to
-talk about document edition and my workflow.
-
-## The story
-
-As part of my job at ElenQ Technology I document a lot of things: I have to
-make reports, proposals, documentation for projects, notes for courses...
-
-I have to write **a lot**.
-
-If I could decide, I'd share all my documentation and files in plain text. But
-I don't decide, so I **need** to send PDF files and they need to have a nice
-look so the clients understand I take care of my stuff. I also like to pay
-attention to the aesthetics of what I do so I really like to keep everything in
-order.
-
-That's really difficult to do. Even more if you work with tools like
-LibreOffice that have tons of options and menus and are sometimes difficult to
-understand or hard to make them do exactly what you want. I have nothing
-against LibreOffice but some years ago I realized it's not a tool for me.
-WYSIWYG[^1] tools like that have some characteristics that don't fit my
-workflow well. Let me break them down:
-
-- They are designed to work with a mouse, and I avoid using the mouse because
- it makes my wrist and arm hurt. That's why I often work with my wacom tablet
- in mouse-intensive tasks like PCB routing and I use laptop's touchpad in
- everyday tasks.
-
-- They have tons of menus where you can get lost while the most of the
- documents you write don't have that kind of complexity. Often, that kind of
- options just make the documents complex and hard to maintain.
-
-- They don't have a clear separation between the content and the view. When I
- write I like to focus on the content and avoid to get distracted with how it
- looks on the screen. I hate "Oh my god, the picture moved and now the whole
- layout is broken"-like errors.[^2]
-
-- Their file formats are difficult to operate with even if they are open
- standards. Mixing data with something that comes from a different process is
- really complex, and it makes the user write everything by hand.
- As an example of this: in the previous version of the [ElenQ Documentation
- Templates][old-version], there was a tool to get all the git tags of the
- project and insert them as a document changelog. This is really difficult to
- make in LibreOffice. (This version doesn't support that *yet*).
-
-
-Trying to solve all those issues, I've spent some time with LaTeX as a main
-tool but, it also has a really thin separation between the content and the view
-and its learning curve is crazy hard.
-
-## Enter pandoc
-
-Some day, while working on her PhD, my sister discovered **Pandoc** and our
-life changed.
-
-[Pandoc][pandoc] is a great tool which is able to convert between a lot of
-different document formats. That opens a world of possibilities where you can
-write in a format you like and then convert it to different output formats.
-It's huge. The main power of Pandoc is also related with the amount of output
-formats it can handle. It is possible to write all the content of a document in
-a common language like MarkDown, RST or AsciiDoc and then convert it to
-different output formats like PDF, ePub or to a simple static website.
-
-All this tooling also lets you write files that are easy to write and read,
-like MarkDown is, without the need to play with tons of tags and weird commands
-like HTML or LaTeX do.
-
-Pandoc is a really powerful tool with tons of option that can be quite
-overwhelming. It even lets you add filters that transform the AST it creates
-during the conversion!
-
-At the moment we discovered Pandoc I was really obsessed with productivity and
-the chronic pain my hands, wrists and arms were suffering and I didn't care
-about anything else. If a tool could help me reduce the use of the mouse and
-my keystroke count it was worth the time learning it.
-
-I was so crazy at that time that I made a Vim plugin called
-[droWMark][droWMark] for posting in WordPress. Taking advantage of Pandoc
-filters I also made it able to [upload images][droWMark-images] linked from the
-MarkDown file. It was fun.
-
-## Choose the tools
-
-Some time later I founded ElenQ Technology and I decided we needed to integrate
-Pandoc in our tooling. That's why with my sister's help we created the first
-version of the [documentation templates][old-version].
-
-I wanted any person working with the documents to be able to use the editor
-they like the most. And I only wanted to care about the aspect of the document
-once: during the template creation.
-
-It worked. I spent almost 2 years working with the old version of the templates
-and they served me well. The only problem they had was that they needed many
-files to work and they added some complexity to the folder where the
-documents were edited.
-
-## Choose the tools: remastered
-
-This new version eliminates that complexity. We needed to sacrifice a couple of
-features but now there's no need to add any extra file in the directory where
-the document is. We removed the Makefiles and embedded the SVG logo of the
-company inside the templates using TikZ. Now the tool is just a couple of
-Pandoc LaTeX templates: `elenq-book` template for long documents and
-`elenq-article` for short documents.
-
-Like in the previous version, both templates are designed to create output
-LaTeX files that can be compiled to PDF using XeLaTeX (or let Pandoc do the
-conversion for you). The input formats are not defined, the only limitation is
-on the metadata they need (you can read the documentation included with the
-project for that).
-
-All of this is installed *automagically* using [Stow][stow].
-
-The project also explains in the `README.md` file how to create a couple of
-command line aliases to simplify the calls to Pandoc. You really want to use
-them because Pandoc needs *a lot* of input arguments. Using aliases, the
-conversion as simple as running a command in the terminal:
-
- ::bash
- elenqdoc-book document.md -o book.pdf # For books
- elenqdoc-article document.md -o article.pdf # For articles
-
-With the new template system, the documents are just Markdown files and they
-are easy to maintain under version control. Note that the same input file can
-be used to create an article and a book, the input doesn't really affect the
-output of the process.
-
-We decided to use MarkDown for some extra reasons too. Markdown is simple but
-has everything that any simple document needs and it's easy to read in plain
-text even for people who don't know it. But not only that, MarkDown is a widely
-use format ([this blog][blog-md] is written in MarkDown too!) and it's really
-extensible, letting the user insert HTML or LaTeX pieces to cover specific
-cases like formulas or complex formatting.
-
-## Choose the tools: future chapters
-
-Next step is the creation of a invoice control system that is integrated with
-the Pandoc templates. The template integration is really easy, we only need to
-inject some variables to the templates and Pandoc already has a tool for that:
-the metadata system. From that side the problem is solved, now we need to make
-all the rest.
-
-On the other hand, as said before, in the future, if the conversion process
-needs extra complexity, we'll just need to add some Pandoc filters to create
-it.
-
-## Wrapping up
-
-In summary, we can say that the tool we made is just a consequence of the
-workflow we follow. This is probably not for anyone, but any person used to
-work with the terminal and software is a potential user for this kind of tool.
-
-It's powerful, simple and straight-to-the-point. I think that fit's our
-workflow really well.
-
-
-[elenq]: https://elenq.tech/
-[pandoc]: https://pandoc.org/
-[droWMark]: https://www.vim.org/scripts/script.php?script_id=5374
-[droWMark-images]: https://github.com/ekaitz-zarraga/droWMark/issues/2
-[old-version]: https://gitlab.com/ElenQ/documentation-templates
-[stow]: https://www.gnu.org/software/stow/manual/stow.html
-[blog-md]: https://gitlab.com/ekaitz-zarraga/personal_blog/raw/master/content/posts/templates-released.md
-
-[^1]: WYSIWYG: What You See Is What You Get
-[^2]: Obligatory xkcd reference: [https://xkcd.com/2109/](https://xkcd.com/2109/)