|
|
|
+++
|
|
|
|
title = "Links Comentados de 2020-06-20"
|
|
|
|
date = 2020-06-20
|
|
|
|
|
|
|
|
[taxonomies]
|
|
|
|
tags = ["links", "sigsegv", "segmentation fault", "activitypub",
|
|
|
|
"conferência", "git", "branches", "nomes", "rust", "eco-sistema",
|
|
|
|
"linha de comando", "design", "scp"]
|
|
|
|
+++
|
|
|
|
|
|
|
|
SIGSEGV, Conferência de ActivityPub, Nomes de Branches no Git, O Eco-Sistema
|
|
|
|
do Rust, Apredendo Rust com Linha de Comando, Problemas de Design, SCP.
|
|
|
|
|
|
|
|
<!-- more -->
|
|
|
|
|
|
|
|
## [Why is there a "V" in SIGSEGV Segmentation Fault?](https://blog.cloudflare.com/why-is-there-a-v-in-sigsegv-segmentation-fault/)
|
|
|
|
|
|
|
|
Um pouco de história dos sistemas operacionais baseados em UNIX/POSIX -- e
|
|
|
|
algo que eu nunca me preocupei realmente, principalmente considerando os nomes
|
|
|
|
das outras interrupções e alguns comandos do sistema (`creat`, por exemplo).
|
|
|
|
|
|
|
|
## [ActivityPub Conference 2020](https://conf.activitypub.rocks/#home)
|
|
|
|
|
|
|
|
Eu sei que ainda é cedo para conversar sobre isso -- o "call for papers"
|
|
|
|
acabou de abrir -- mas como fã do que o ActivityPub se propõe a solucionar, eu
|
|
|
|
tenho que compartilhar: Uma conferência baseada na discussão do protocolo e as
|
|
|
|
ferramentas (bom, eu _acho_ que é sobre isso, de qualquer forma).
|
|
|
|
|
|
|
|
Fiquem ligados para a lista de talks no futuro.
|
|
|
|
|
|
|
|
## [On Git branch naming](http://meta.ath0.com/2020/06/git-branch-naming/)
|
|
|
|
|
|
|
|
A troca do nome do branch principal do Git para algo que não seja "master" tem
|
|
|
|
dado alguma discussão por aí, mesmo com grandes representantes de Git (Github,
|
|
|
|
por exemplo) já terem anunciado que o nome vai mudar em novos repositórios.
|
|
|
|
|
|
|
|
Existe sim uma questão sobre o significado do nome e o que ele representa para
|
|
|
|
um grupo significativo da população do mundo, mas o que o post mostra é que
|
|
|
|
mesmo ignorando isso, o nome "master" faz sentido na arquitetura do Git;
|
|
|
|
ele é baseado no nome utilizado pelo BitKeeper, que tinha uma arquitetura
|
|
|
|
mestre/servidor, que o Git _não_ copiou.
|
|
|
|
|
|
|
|
E sim, eu concordo com todas as repostas apresentadas. E mais: Se é uma
|
|
|
|
mudança simples, não vai quebrar nada, e vai fazer com que grupos oprimidos
|
|
|
|
(no passado ou presente) não se sintam ofendidos, por que não?
|
|
|
|
|
|
|
|
Mas tem mais um ponto: Git é distribuído, certo? Com isso, eu quero dizer que
|
|
|
|
não existe um servidor principal; toda instalação do Git é o principal de si
|
|
|
|
mesmo. O mesmo acontece com os branches: Todo branch é uma cópia auto contida
|
|
|
|
e você _não precisa_ colocar todas elas no mesmo balaio em algum ponto, por
|
|
|
|
exemplo, fazendo merge para o branch principal, porque _não existe_ um branch
|
|
|
|
principal. É só um nome e ele não tem nenhuma funcionalidade especial
|
|
|
|
comparado com outros branches.
|
|
|
|
|
|
|
|
## [Understanding the Rust Ecosystem](https://joeprevite.com/rust-lang-ecosystem)
|
|
|
|
|
|
|
|
Eu tenho falado que "linguagens não existem em um vácuo", e com isso eu quero
|
|
|
|
dizer que você não pode focar somente na linguagem ou numa parte relacionada a
|
|
|
|
ela, mas no todo; como é o eco-sistema dessa coisa?
|
|
|
|
|
|
|
|
E Rust sempre me pareceu um sistema vibrante, com todas as suas esquisitices e
|
|
|
|
legalzices. E esse post mostra boa parte do que existe no sistema, de
|
|
|
|
plataformas, passando por forums, meetups, empresas que usam a linguagem e
|
|
|
|
indo até as ferramentas mais famosas.
|
|
|
|
|
|
|
|
## [Diving into Rust with a CLI](https://kbknapp.dev/rust-cli/)
|
|
|
|
|
|
|
|
Falando em Rust, Kevin K escreveu esse post sobre criar uma ferramenta de
|
|
|
|
linha de comando para baixar as tirinhas do XKCD. Mas ao invés de fazer isso
|
|
|
|
da forma mais simples possível para mostrar a linguagem, ele usou as
|
|
|
|
bibliotecas mais conhecidas para pontos específicos (explicando porque usou as
|
|
|
|
mesmas) e mostrando uma aplicação final completa.
|
|
|
|
|
|
|
|
Eu estou escrevendo uma outra ferramenta de linha de comando para aprender
|
|
|
|
mais sobre Rust e não chega nem de perto com o resultado apresentado aqui.
|
|
|
|
|
|
|
|
## [Stop Blaming People: It’s a Design Problem](https://quinnkeast.com/writing/stop-blaming-people-its-a-design-problem/)
|
|
|
|
|
|
|
|
Programadores são famosos por não conseguir desenhar um botão de forma correta
|
|
|
|
ou fazer com que seja extremamente complicado usar o maldito botão -- ou, em
|
|
|
|
piores casos, construindo uma interface com tantas opções que é praticamente
|
|
|
|
impossível usar a aplicação.
|
|
|
|
|
|
|
|
Mas não é só no mundo do software que essas coisas acontecem: O incêndio da
|
|
|
|
Catedral de Notre Dame poderia ter sido evitado se a interface não tivesse um
|
|
|
|
design indireto; o alarme de míssil balístico no Havaí não teria acontecido se
|
|
|
|
a interface para o alarme não fosse simplório. E assim por diante.
|
|
|
|
|
|
|
|
Algumas vezes é preciso pensar um pouco mais sobre como o serviço vai ser
|
|
|
|
usado ao invés de deixar as coisas complexas (ou muito simplórias).
|
|
|
|
|
|
|
|
## [SCP - Familiar, Simple, Insecure, and Slow](https://gravitational.com/blog/scp-familiar-simple-insecure-slow/)
|
|
|
|
|
|
|
|
Que o SCP era lento eu já sabia, mas não sabia o quanto. O que me impressionou
|
|
|
|
do post foi essa linha aqui:
|
|
|
|
|
|
|
|
```
|
|
|
|
tar cf - /tmp/big_folder | ssh server 'tar xC /tmp/ -f -'
|
|
|
|
```
|
|
|
|
|
|
|
|
Basicamente, usando o `tar` para pegar o conteúdo de vários arquivos e
|
|
|
|
transformar numa sequência de bytes, enviar pelo stdout para o ssh e, de lá,
|
|
|
|
rodar o `tar` para desfazer a sequencia de bytes (transformando de volta em
|
|
|
|
arquivos separados). Curioso, e potencialmente 4x mais rápido que copiar os
|
|
|
|
arquivos diretamente por `scp`.
|
|
|
|
|
|
|
|
<!--
|
|
|
|
vim:spelllang=pt:
|
|
|
|
-->
|