C-h f taming-the-emacs-dinosaur – /I

New series. No verbose docs. This is emacs, so no fanciness, let’s get straight to the point. Goal: to create a decent init.el, with marvellous support to org and with a decent vim layer.

Package management

This is the most important aspect of this setup. Nowadays we have emacs 25, which is much much better in terms of out-of-the-box package management than its previous emacs generations (things started to become better since emacs 24).

This is a good starting point for a discussion. My initial exhaustive list of package managers turned out to be:

This is the emacs way of saying ‘welcome’ to you: ha! Too many choices! Around 3 years ago this principle frustrated me a lot, so I ended up migrating to vim.

One small paragraph on that: migrating to vim turned out to be a very wise choice. I would do that again. It was one of those enlightenment moments that’s super hard to describe, a total delight that you can only experience once in a lifetime.

Anyways, emacs (and emacs lisp) itself is another giant beast  delight that, once put in your head, there’s no way back around it.

Getting technical

  • I have one requirement: for whatever package manager I choose to use, it must be compatible with use-package. Previously, I’d use package.el + use-package; however, now I intend to try out something more modern and, alas, more KISS and expressive too.
  • There’s another requirement: init.el must be documented with org-babel.
  • Finally, the last one: no bundled setups. Therefore, no spacemacs (memories, anyone?), no emacs-starter-kit and no other stuff that nobody (except maybe its software authors) knows how it works.

To be honest, I have to give a big thumbs up to emacs-starter-kit. From its updated README (note: it was totally different a couple of years ago, and I didn’t know about its philosophy shift until now):

Older versions of the Starter Kit attempted to be one-size-fits-all codebase intended to be dropped into your ~/.emacs.d directory wholesale. While this proved very popular, taking a big bundle of unrelated functionality leads to simply adopting things without developing any real understanding. When something goes wrong or even just behaves differently from what you’d like, you don’t know where to look to fix it.

I’ve since come to realize users are better suited by small, focused packages which provide specific pieces of new functionality. So rather than putting up in a big pile of code, the Starter Kit has shifted to become merely a guide.

I guess people change.

Next post: eliminating the paradox of choice and settling with one of the above package managers.

Advertisements
C-h f taming-the-emacs-dinosaur – /I

Final Fantasy XIII: mini review

Curto e grosso: essa é uma tentativa de review do Final Fantasy XIII. Na verdade, essa foi a intenção inicial. Mas, assim como 500 dias com ela não se demonstrou história de amor, esse não se demonstrará um post exclusivo de FFXIII. É extremamente difícil pra mim escrever reviews de jogos (assim como reviews de livros), mesmo em português, por um simples motivo: jogos (assim como livros), quando bem executados, criam uma enorme conexão com o jogador (leitor) — como diria um dos melhores palestrantes que já presenciei, Edgard Damiani. Sabe aquela sensação de pensar em tudo ao mesmo tempo, de querer falar sobre tudo ao mesmo tempo, mas não conseguir se organizar por causa de tanta informação? E aí você tenta se focar nos aspectos mais importantes e tenta resumir a coisa toda em um texto com menos de 2000 palavras, mas acaba percebendo que não é nem um pouco justo, porque muitos dos aspectos que você deixa de fora são tão valiosos quanto os que você fala.

O parágrafo anterior é um super lero-lero, mas é exatamente essa a sensação que sinto quando tento explicar um jogo que gostei pra alguém (não se atreva a me pedir para explicar ‘Portal 2’ pra você!!). A última review que eu fiz foi no início de 2014, de um Ace Combat, e foi um milagre esse troço ter saído. E o Thiago de 3 anos atrás demonstra que já pensava assim:

E, como sempre, não espere que esse texto seja desenvolvido de forma linear (não está mesmo =P).

E é por isso que decidi ter uma ideia louca e fazer uma review em cima de outra review; vou tomar o texto da minha review do ace combat e fazer uma espécie de paródia (somente nos termos da estrutura de texto; não me atrevo a tentar misturar elementos dos dois jogos, é uma explosão combinatória de possibilidades) com ele. Vamos ver no que isso vai dar.

Então…

Ah, como os jogos de hoje em dia estão ficando cada vez menores.

Você não sabe do que está falando, Thiago-3. Levei aproximadamente 70 horas corridas para zerar o FFXIII (devo ter levado no máximo 10–12 horas para zerar o Ace Combat Assault Horizon, isso porque joguei ele no nível difícil). Os dois jogos são relativamente da mesma época.

Algumas observações sobre isso:

  • RPG é praga. Nunca comece um RPG se você não tiver tempo para terminá-lo.
  • Eu não gosto de RPGs on-line (MMORPGs) porque eles não têm fim. World of Warcraft, Tibia, Ragnarok, Diablo…se você pode ficar ganhando level até 999 sem um objetivo bem definido, então todo esse tempo vai para o espaço. Perceba que esse é um fato meramente psicológico: mas a diferença é que um RPG “off-line” tem um início, meio e fim, então você sabe que vai terminá-lo [em] alguma hora, e eu acho que essa é uma beleza fundamental nesse tipo de gênero de jogo.
  • Maaaaaas…mesmo sendo off-line, você pode gastar muuuuuuuito tempo se estiver disposto a completar todas as side quests e levelar (upar?) toda a sua party até o level máximo. Mas você não precisa disso para zerar o jogo.
  • A beleza e a estratégia do RPG off-line está exatamente nesse ponto: tempo é dinheiro! Encontrar um equilíbrio perfeito entre DIREITA CONSERVADORA (completar todas as quests, upar todos os personagens, upar todas as armas, ganhar o máximo de xp possível, desbloquear todas as conquistas, e só então zerar o jogo), que tem uma zona de conforto bastante ampla, visto que provavelmente será trivial derrotar os inimigos se você é forte versus ESQUERDINHA RADICAL (sair correndo que nem um louco, mal explorar o mapa, só combater alguns inimigos bem definidos e cuidadosamente selecionados), mas correndo o risco de sofrer bastante no final do jogo, visto que você estaria potencialmente fraco.
  • Nesse sentido, fiquei no meio termo. Detesto perder tempo demais com jogo, então fui meio esquerdinha; por outro lado, explorei praticamente o mapa inteiro, mas caguei[1] quase que completamente para as as c’ieth waystones (side quests). Só completei as que estavam no meio do caminho da mainline story.
  • Existe uma teoria dos jogos bem clara aqui: economizar (otimizar) o tempo! Você economiza tempo evitando completar todas as side quests e explorar todo o mapa. Por outro lado, se você evitar isso excessivamente, vai acabar perdendo muito tempo no final perdendo as batalhas porque não se fortaleceu o suficiente no meio do caminho.

Sinto falta daquela ‘magia’ dos clássicos.

FFXIII definitivamente é um clássico (IMHO). Gotcha.

É que nem o caminho que alguns sistemas operacionais de hoje em dia estão tomando. Seja pela computação gráfica, pelo gameplay, pelo plot, ou até mesmo pela trilha sonora, está tudo ficando cada vez mais dinâmico. Investe-se bastante tempo, esforço e recursos numa superprodução (e põe super nisso!),

Obrigado, Thiago-3. Seu resumo sobre Ace Combat também vale pro FFXIII. Vejamos algumas similaridades:

  • O Ace Combat Assault Horizon foi um jogo fora da curva da série de Ace Combat. Um pouco ousado, eu diria. Da mesma forma, FFXIII é um jogo de Schrödinger; ele é ao mesmo tempo um clássico, e ao mesmo tempo exótico em termos de gameplay. Existem várias features nele que, conversando com alguns amigos e também lendo algumas páginas aleatórias por aí, descobri que são bem peculiares e que só existem no FFXIII (Eidolons, o sistema lixo de evoluir armas e itens,…).
  • Os gráficos são realmente bonitos. Eu não consigo jogar o FFVII porque o acho extremamente feio e quadrado; mas não tenho absolutamente nada a reclamar dos gráficos do FFXIII. Viraram meus papéis de parede no computador e no celular, e até mesmo na capa do facebook (assim como portal 2 também já teve seus momentos de glória). Eu falo de portal, porque atualmente o meu avatar universal é um dos persogens de lá 🙂

mas o usuário final só pode desfrutar de um pedacinho desse resultado.

Auto-battle é bem dinâmica, mas tira parte da estratégia do jogo. The Lord of the Rings: The Third Age (o meu RPG off-line predileto até hoje, especialmente pela serendipidade de tê-lo descoberto!) foi um jogo muito mais estratégico do que FFXIII, assim como Star Wars: Knights of the Old Republic, porque neles você tinha que escolher cada ação cuidadosamente. Já nesse FFXIII, na maior parte das batalhas, eu só precisei ficar mandando o auto-battle que eu ganhava facilmente. A estratégia mesmo estava em como escolher a sua party (3 dentre 6 personagens, a cada momento) e como escolher os seus respectivos paradigmas (ofensivo, defensivo, balanceado, digamos assim — que toma forma como synergist (buffs para aliados), saboteur (debuffs para inimigos), sentinel (tanker), commando (high damage-dealing attacker), medic (duuuuh….) e ravager (low damage-dealing, but adds damage multipliers) nas horas certas. Skills individuais? Pouca estratégia. Escrever esse texto é bem esquisito misturando português com inglês, porque a maioria dos conceitos e definições de RPG soam bem melhor em inglês. Mas vamos continuando.

Senti a mesma sensação quando zerei Portal 2 pela segunda vez faz um mês.

Viu só? Sempre falo de portal. Talvez o leitor deveria achar que minhas senhas pessoais contém palavras de portal no meio. Será?

(A pessoa que se importa com segurança da informação precisa parar por um momento para se relembrar das suas senhas, para ter certeza de que nenhuma delas contém esse padrão, antes que alguém tente adivinhar ^^)

Antes de tudo, você deveria saber que eu sou um super fã da série Ace Combat.

Eu não sei se sou fã de FF. Como falei (na verdade, não falei), esse foi o meu primeiro jogo da série. Não vou jogar outro tão cedo, isso ocupa tempo demais. Provavelmente só ano que vem. Vamos ver como a minha opinião muda ao longo do tempo.

Ace Combat provavelmente foi o jogo que eu mais joguei, em número de horas.

Isso continua sendo verdade. Mesmo gastando 70 horas no final fantasy. A gente tem muito tempo disponível na infância e na adolescência. Bons tempos…e eu aqui tentando salvar cada horinha do meu tempo de universitário pensando qual skill devo levelar para economizar meu tempo global para zerar o jogo.

Eu esqueci de dizer, mas eu deixei o jogo aberto, na pausa, por bastante tempo. Teve um dia que ficou ligado a madrugada inteira sem ser usado. Então provavelmente gastei umas 50 horas ou menos. Aparentemente, inflar o tempo de jogo serve como humblebragging. Então, da próxima vez, vou dizer que gastei 200 horas.

E, naquela época, os jogos eram maiores — como eu disse no início do texto –, então imagina que eu tomei uma boa parte do meu tempo no ginásio fazendo isso.

Não falei?

 É engraçado falar isso, porque hoje em dia o que entope a cabeça dos jovens são o nome de vários heróis, spells, itens, skills e magias em jogos como DotA e LoL.

Não sei o nome de nenhum item do FFXIII. O sistema de upgrade deles é um dos mais horríveis que eu já vi. Extremamente complexo. Assim, o sistema de upgrade dos personagens ser complexo é OK, mas o dos itens? Really? É muita insignificância para ser tratada de forma tão complexa.

Ah, você também deveria saber que essa é uma das poucas exceções da minha vida que eu abri no que diz respeito a jogar o mesmo jogo mais de uma vez. Eu realmente acho (sempre achei) uma completa (total!) perda de tempo você jogar o mesmo jogo várias vezes (a menos que jogue num nível mais difícil depois, mas ainda assim…),

Continuo achando isso. Ei, você, pare de zerar o mesmo jogo duas vezes. Sabe qual foi a primeira coisa que fiz quando zerei o FFXIII? Desinstalei ele. Vai consumir o tempo de outro =P

Mas é sério. É inútil, hoje em dia, zerar o mesmo jogo mais de uma vez, dado que existem zilhões de jogos por aí. Alguns vão me odiar por dizer isso, mas o mesmo vale também para séries: meus amigos, eu sei que vocês amam The Office, Friends e How I Met Your Mother, eu também gosto, mas pelo amor, vão ver outra coisa. Parem de assistir a mesma série zilhões de vezes.

Não tenho nenhuma vontade de jogar FFXIII de novo. Mas tenho vontade de testar outros FFs. Não os 13 (hoje tem uns 15, aliás, e mais as sequels do XIII)…mas pelo menos mais uns dois.

assim como ver uma série de TV ou um filme várias vezes. Simplesmente porque isso tende a não agregar nada de novo.

huh.

Trilha Sonora. Muito boa. Mantém a qualidade dos Ace Combat anteriores. Tenha a certeza que vou ter mais alguns arquivos mp3 na minha biblioteca pessoal de músicas.

Isso realmente aconteceu. A trilha sonora do ACAH é muito boa. Maaaaas, a trilha sonora do FFXIII é SENSACIONAL ESPETACULAR MELHOR AINDA AAAAAAAAH. Isso vicia os ouvidos. Aqui, pra você. Pena que não tem no deezer / spotify. Vou de Youtube mesmo, então 🙂

Efeitos de som. Caaaaaaaaaaaaaaaaaaaramba, sensacional. Só para deixar claro: trilha sonora diz respeito a “música de fundo”, e efeitos de som diz respeito a todo o resto: explosões, explosões, mais explosões, o vento, o motor do avião, até mesmo as vozes de rádio dos personagens.

Beeeeeem…+1

Difícil comentar aqui. Os efeitos de som são repetitivos e previsíveis demais. É um RPG. O que você espera? Mas são bons, sim. Gostei. Mas nada espetacular.

toda hora tem algum caça mirando em você, toda hora você está tentando estabilizar a sua mira em alguém, toda hora tem algum aliado cheio de mimimi

Toda hora vem um monstro maldito e te dá um insta-kill (quem mandou não upar até o level máximo?), especialmente nos Acts finais, e aí você fica aqui de mimimi.

Zerei o jogo sem ser capaz de matar um adamantoise. Morria na primeira pisada no chão. Mas aí nesse vídeo todo mundo tem no mínimo uns 14k de HP. Eu fiquei no máximo com 6k–7k. Dá pra perceber o quanto eu caguei pras side quests?

 Digo isso porque muitos jogos hoje em dia simplesmente não contam mais com a habilidade do jogador, apenas contanto com ações que sempre vão acontecer, sendo que o jogador apenas vai as encaminhando aos poucos.

Isso é muito verdadeiro nos primeiros acts, mas é totalmente inválido nos 3 últimos. O jogo saltou de extremamente fácil para what-the-hell-is-that-omg-isso-tá-difícil-pra-caramba. Mas, novamente, eu não fiquei tentando upar tudo no máximo.

Dificuldade.

O final boss não foi tão difícil assim. Achei os inimigos espalhados por aí mais difíceis do que o final boss. Teve uma parte onde eu morri umas 10 vezes seguidas e fiquei frustrado por causa disso, tive que ir tunando os paradigmas até achar um que funcionasse bem. Até que eu mudava de fase e esse tuning muito bom era horrível pra área seguinte. Então era muito esse estilo, ficar mudando a party e os paradigmas o tempo todo, de acordo com a situação. E isso não é trivial quando os inimigos são fortes.

Variedade de caças. Hum. Esse não foi um ponto forte do jogo. Pelo contrário. Muito monótono.

Só posso usar 3 personagens de cada vez, mas tenho que ficar upando os 6. Isso é um saco. Mas tanto o senhor dos anéis e o star wars kotor que citei anteriormente são iguais nesse sentido. Preferia ter o mesmo conjunto de personagens sempre. Talvez ficasse mais monótono, mas em compensação me permitiria me especializar melhor neles, e bolar estratégias mais profundas (em vez de estratégias mais superficiais, mudando de party o tempo todo).

Gameplay. De novo. Olha, para todas as fontes que eu li no ano passado, que me deixaram com vontade de jogar esse jogo: concordo plenamente com vocês, esse ACAH se parece pra caramba com o Call of Duty hahaahhaa.

FFXIII é único porque é um RPG de lutas em tempo real. Isso eu nunca vi antes. Em geral, os que eu joguei antes eram em turnos. Achei o elemento de tempo bastante interessante e desafiador, mas devo dizer que isso shiftou a estratégia de (a) dominar as skills para (b) dominar os paradigmas.

Você também controla helicóptero, machine guns, bombers. Tudo firula. Vou dizer que gostei do gameplay do helicóptero. Nunca tinha jogado nesse estilo moderno antes, ficou realmente bom.

Queria ter achado os chocobos, mas não achei. Teria sido divertido.

Pronto. Acho que cobri todos os aspectos relevantes (pra mim…).

Não cobri nem 5%. Esse jogo tem informação demais. Mas acho que tá bom, pra quem escreveu que

É extremamente difícil pra mim escrever reviews de jogos (assim como reviews de livros), mesmo em português, por um simples motivo: jogos (assim como livros), quando bem executados, criam uma enorme conexão com o jogador (leitor)

Quanto maior a conexão, maior a dificuldade de se expressar sucintamente 🙂

(Você já ouviu a palavra de C++ e de Haskell hoje?)

Chega.

Só me esqueci de dizer que joguei no joystick. Isso foi provavelmente muito bom pros meus olhos e para diminuir os efeitos de RSI no teclado e no mouse (ouviu, emacs?!).

Essa mini review foi um mero brain dump do que estou pensando (sentindo?!) no momento. No entanto, não quero mais saber de RPG por vários meses. Até a próxima review! (No padrão atual, até 2020!)

Footnotes

[1]: Quais são os limites da linguagem? Primeira vez usando essa palavra esdrúxula aqui hahaha

Final Fantasy XIII: mini review

THE QUEST FOR THE PERFECT ARCH LINUX CONTAINER – #3 – makepkg

This is a small update from the previous post.

It’s now possible to build packages from within our humble container. I just did a commit with the following main additions:

  • install a couple of packages from the official repositories
  • create an ‘archer’ user (which is gonna be our general main non-root admin user)
  • disable password authentication for archer whenever using sudo
  • install cower, so we can easily and manually add packages from the AUR
  • install pacaur, so we can easily and automatically add packages from the AUR

As a small POC, I just updated the translate-shell package.

Everything is working okay, however this environment is still far from being called home. For now, it is just acting as a disposable container. There are still several inconveniences which I am hoping to fix and share in the next posts.

THE QUEST FOR THE PERFECT ARCH LINUX CONTAINER – #3 – makepkg

THE QUEST FOR THE PERFECT ARCH LINUX CONTAINER – #2 – Hello World

This post is part of an ongoing series about setting up a suitable Arch Linux environment for everyday use in a container. Previous post.

Recall: we’re starting from base/devel.

First things first…we gotta create a Dockerfile!

And now let’s make it more tidy and organized for deployment by using a docker-compose.yml file:

NOTE: The repo you see in the screencast is this one. The docs used as reference to create the docker-compose.yml file are here.

THE QUEST FOR THE PERFECT ARCH LINUX CONTAINER – #2 – Hello World

THE QUEST FOR THE PERFECT ARCH LINUX CONTAINER – #1

This post is part of an ongoing series about setting up a suitable Arch Linux environment for everyday use in a container. Previous post.

Container technology

No discussion: docker (wiki). For the sake of completeness, other options include: systemd-nspawn (although it is limited to Linux hosts running systemd), runC and low-level wizardry with LXC.

Where to start from?

We have to choose a image to start FROM. A few Google and Docker Hub searches yield the following options:

There are lots of options other than these, and there is also the option of rolling our own base. After a few hours of code inspection, I’ve decided to go with base/archlinux.

There’s also another variant: bash/devel. It just adds another layer atop base/archlinux, with the packages from the base-devel group, which is exactly what I would have done anyway, therefore I am starting with base/devel.

THE QUEST FOR THE PERFECT ARCH LINUX CONTAINER – #1

The quest for the perfect Arch Linux container – #0

Dear all,

This innocent blog is getting lots of attention from its humble author these days. This time, he is all in to start a new blog series about — heck, you already read it in the title.

It’s worth it to highlight that creating a series is very costly, both by being time-consuming and in terms of documenting its steps. Previous series included:

Motivation

To truly understand motivation, some context is needed. So, briefly: I’m a former Arch Linux community contributor, having spent almost 2 years using the OS and diving into its ecosystem[1], interacting with my peers everyday.  The next logical step would be to apply to become an official developer or a Trusted User (a person responsible to maintain packages and ensure quality in the [community] repo), and in fact I almost did that; however, at the time, I had to interrupt my involvement with the community because I participated in a study-abroad program. By the same time, I migrated to MacOS, which I’m using nowadays.

However — heck — migrating to MacOS doesn’t imply an automatic migration to the Apple ecosystem and culture. In fact, my (let’s say) baseline is still Arch.

That said, I am still using MacOS. What the hell? Am I that hypocritical and insincere?

So, let’s review the options (note to the reader: I tried them all):

  1. Replace MacOS with Arch Linux in my Macbook.
  2. Dual boot MacOS and Arch Linux in my Macbook.
  3. Use only MacOS in my Macbook.

I want start with the second one: it’s classical and very tempting, and it seems to solve all the problems. However, it could also be a mistake. “Less is more” and “do one thing, and do it well” are two Unix philosophies that won’t agree with this. I’ve tried this approach twice and they both failed. Why? Maintenance burden and lack of utilization of one of the systems. If you have to log in everyday in your workstation and then choose one operating system to boot in, you likely won’t boot into the other one for the rest of the day. And for the rest of the week. And for the rest of the month. Therefore, you end up with one operating system you likely won’t use. It would be better to invest this energy in just one OS, then.

The first option (using Arch only) also seems reasonable, but there are some moments in your life where Linux doesn’t suit it all. Ever needed to open a DRM’ed Acrobat Reader document? To use your printer or scanner with no-hassle? I could enumerate a few common things that might be needed to be done every once in a while. Some of them can be done in Linux with some effort (and time); others are simply not supported or even possible. That’s when having a MacOS (or a Windows) box helps. They are commercially supported OSes. It doesn’t matter whether you hate their lack of open-source: they are business standards.

The workaround for the previous paragraph is to have an Arch OS with a Windows VM. Yes, it definitely works. However, why would you do that if you have a Macbook? It’s way more efficient (especially hardware-wise) to use a native MacOS. That said, option #1 is totally okay, as long as you have a second computer with Windows to help you every now and then, or as long as you don’t need commercial support at all, ever.

And then we get to option #3: to use MacOS only. Here are some side effects I experienced with that approach:

  • I stopped interacting with the Arch community everyday, and I didn’t replace this interaction with anything else — to be honest, Stack Exchange is a good community to interact with, but it is not social — it is a strictly technical, Q & A forums.
  • I stopped learning everyday. OK, let’s be more precise: of course I still learn everyday; however, I used to learn everyday way more with Arch (or Linux, for that matter) than I do with MacOS. Since most things work out-of-the-box and with no stress in MacOS, I feel like a spoiled child with no problems to solve, no programs to compile, no configurations to tweak. This is harmful to a developer / programmer who wants to grow more and more — you can increase your expertise and ability only if you fail and then recover constantly.
  • I stopped putting the OS in the way, so I stopped worrying about a lot of things that I (as a programmer, developer) should worry about.
  • I stopped contributing to open source. Again, being more precise: I still contribute to open source, but way less than what I was used to before. An easy way to see that is with bug-wrangling and bug reporting: nowadays I mostly don’t care whether a given piece of software is or isn’t working. If it is not, [in general] I simply move to an alternative, like a spoiled kid who throws her smartphone away and gets a new one from her parents. Back into a few years ago, I used to care about most software I had installed on my computer, tracked bugs, tried to fix them or to find solutions for them. I even wrote blog posts about them and ranted about them in social media.
  • This might sound surprising, but it is also worth it to be highlighted: I decreased my serendipity massively. Heck, this blog is named after this awesome and beautiful word, yet I am saying I lost a big part of it thanks to my change to MacOS only. Well, of course the internet is full of articles and news, as life is full of people and friends. However, not all news and not all people are good. It’s like an expression we have in Portuguese: “diga com quem andas e te direi quem és”.

On the other hand, there is no need to dual boot Arch with MacOS, because MacOS is very good these days, even if you ignore all the fluff and distraction. Terminal.app and HomeBrew are the only utilities you need 99% of the time.

That’s how I came up with the container idea: it is an hybrid between “having MacOS only” and “still having Arch around when I might need it, but not with a full, overblown VM”. And it still provides a way of getting involved again with the community.

There are lots of issues coming through: this journey won’t be trivial. But I think it can be done and it will be a good experience, so it is worth it to spend some time to create a series about it.

That said, here is a disclaimer: sometimes I start a series but don’t continue it. But I am confident this time I will see you soon in the next post. Until the next time!

Footnotes

[1]: it’s not just the operating system. There are lots of idiosyncrasies and philosophies surrounding the Arch environment.

The quest for the perfect Arch Linux container – #0

The one with persons and network protocols

Master Foo once said to a visiting SRE: “Most everyday communications between two persons have a lot in common with the UDP protocol.”.

The SRE, who was very proud of his own mastery of UDP, said: “How this can be? UDP sucks most of the time whereas TCP is reliable.”.

Master Foo replied: “That is so. Nevertheless, there is more human nature in the UDP protocol than there is in a modern RFC 793 implementation.”.

The SRE grew distressed: “But through TCP we experience the enlightenment of a rich conversation! We become as one with a sweet and respectful dialogue.”.

Master foo replied: “All you say is theoretically true. But does it happen in practice? There is more human nature in a low-TTL IP packet wrapping an UDP datagram than there is in 1MiB worth of TCP segments.”.

The SRE scoffed at Master Foo and rose to depart. But Master Foo nodded to his student John Doe, who started up his wireshark packet sniffer on a nearby group of cool kids, and said: “Master Foo, consider these children. They are very pure and innocent and are the perfection of a WAN network. You cannot sniff any pride or hypocrisy in these hearts.”

The Master muttered through his beard, contemplating what his student has said. Finally he agreed that it was so.

“And for how long do you think all of this purity and demagogy-hypocrisy-void will last? How many years will it require for these kids to forget their own RFC values and then start to leak and overload their friends with UDP packets?”

“Many,” admitted the visiting SRE. “But only a fool would spend the time to think about that when so many more worthy TCP segments and values still await him.”

“However, what you see around you? Once these kids grow, they start to become UDP addicts. They send messages to their friends in social media when they’re interested in something, but don’t bother to reply or thank them once they get what they want.” Master Foo said. “They schedule a meeting with their peers, but don’t bother to actually make that meeting happen. ‘I see you on Friday!’ ‘Sure!’ <… SNR gets very high and no meeting happens whatsoever …>.” Master Foo continued. “They flood the network by trying to grab the attention of other hosts through likes and shares and yikes but don’t care about congestion control.” Master Foo sighed. “They start screaming and protesting in the streets with absolutely no respect for their peers, there are simply no handshakes and there is no flow control. They send packets with no courtesy at all.” Master foo was getting tired. “And finally, these days, they also started to send corrupt and invalid packets, with fake data, just to confuse their peers and deteriorate the network quality even more”. Master Foo concluded: “There is simply no respect for the good protocols anymore, and UDP is becoming the de-facto standard in our society. See all of these hosts around you? If you really bother to target your tcpdump into a non-biased direction and location, you will see the truth. The kids might be pure today, but they will get infected with the spurious and bad habits of the network of adults surrounding them.”

Upon hearing this, the SRE was enlightened.

The one with persons and network protocols