Julio Biason
4 years ago
2 changed files with 209 additions and 0 deletions
@ -0,0 +1,100 @@
|
||||
+++ |
||||
title = "Commented Links for 2020-06-19" |
||||
date = 2020-06-20 |
||||
|
||||
[taxonomies] |
||||
tags = ["links", "sigsegv", "segmentation fault", "activitypub", "conference", |
||||
"git", "names", "branches", "rust", "ecosystem", "cli", "design", "scp"] |
||||
+++ |
||||
|
||||
SIGSEGV, ActivityPub Conf, Git Branch Names, Rust Ecosystem, Learning Rust |
||||
with CLI, Design Problems, SCP. |
||||
|
||||
<!-- more --> |
||||
|
||||
## [Why is there a "V" in SIGSEGV Segmentation Fault?](https://blog.cloudflare.com/why-is-there-a-v-in-sigsegv-segmentation-fault/) |
||||
|
||||
A little bit of UNIX/POSIX based-operating systemas -- and something that |
||||
never actually made me wonder what it meant, specially considering the names |
||||
of the other interruptions and some internal commands (`creat`, for example). |
||||
|
||||
## [ActivityPub Conference 2020](https://conf.activitypub.rocks/#home) |
||||
|
||||
Ok, it is a bit early for this -- the CFP just opened -- but as a fan of what |
||||
ActivityPub proposes to solve, I must share this: A conference related to the |
||||
discussion of the protocol and its tools (well, I _guess_ that the topic, |
||||
anyway). |
||||
|
||||
Stay tuned for the selected talks in the future. |
||||
|
||||
## [On Git branch naming](http://meta.ath0.com/2020/06/git-branch-naming/) |
||||
|
||||
The change of Git main branch name to something that is not "master" generated |
||||
some discussion online, even with the major Git services (Github, for example) |
||||
already announced that new repositories will get new names. |
||||
|
||||
There is a problem with the meaning of the name and what it represents to a |
||||
significant part of the world population, but what the post shows is that even |
||||
if you ignore that, the name "master" makes no sense in the Git architecture; |
||||
it is based on the name used by BitKeeper, which had the master/slave |
||||
architecture, which Git _does not_ have. |
||||
|
||||
And yes, I do agree with all the answers there. And: If it is a simple change, |
||||
won't break anything, and oppressed groups (in the past or present) don't get |
||||
offended, why not? |
||||
|
||||
There is another point thought: Git is distributed, right? This means it has |
||||
not a central server; every installation is the central of itself. The same |
||||
goes for its branches, though: Every branch is a copy in itself and you don't |
||||
_have_ to put them all in the same basket at some point, e.g., merging back to |
||||
the main branch, because there is no _main_ branch. It is just a name and |
||||
doesn't hold any special functionality compared to other branches. |
||||
|
||||
## [Understanding the Rust Ecosystem](https://joeprevite.com/rust-lang-ecosystem) |
||||
|
||||
I tend to mention that "languages do not exist in a vacuum", and by that I |
||||
mean that you must not look only at some programming language or just a small |
||||
piece of it, but the whole; how is the ecosystem for this thing? |
||||
|
||||
And, for Rust, it felt always a vibrant system, with all its weirdness and |
||||
coolness. And this post goes one step further showing most of the things going |
||||
around, from platforms, to forums, to meetups, to companies using the |
||||
language, to famous tools. |
||||
|
||||
## [Diving into Rust with a CLI](https://kbknapp.dev/rust-cli/) |
||||
|
||||
Speaking of Rust, Kevin K wrote this post about a command line tool to |
||||
download the XKCD comics. But instead of building the most simple solution for |
||||
it, he used the most known libraries for specific points (explaining why he |
||||
picked some) and showing a complete final solution. |
||||
|
||||
I'm writing some other command line tool in Rust to explore more the language, and the current result is not even near the niceness of what is shown here. |
||||
|
||||
## [Stop Blaming People: It’s a Design Problem](https://quinnkeast.com/writing/stop-blaming-people-its-a-design-problem/) |
||||
|
||||
Developers are famous for not being able to design a button in the right way |
||||
or making it too damn hard to use the damn button -- or, in worse cases, |
||||
building an interface so cluttered with options that it is basically |
||||
impossible to use the application. |
||||
|
||||
But it is not just the software world that suffers from that: the fire in the |
||||
Notre Dame Cathedral could be prevented if the interface didn't use some |
||||
indirect information; the ballistic missile warning in Hawaii wouldn't have |
||||
happened if the interface for the alarm wasn't so simplistic. And so on. |
||||
|
||||
Sometimes it is necessary to think a bit more about how the service will be |
||||
used instead of making things complex (or too simplistic). |
||||
|
||||
## [SCP - Familiar, Simple, Insecure, and Slow](https://gravitational.com/blog/scp-familiar-simple-insecure-slow/) |
||||
|
||||
I already knew SCp was slow, but I wasn't sure how slow. What impressed me |
||||
most in the post is this line here: |
||||
|
||||
``` |
||||
tar cf - /tmp/big_folder | ssh server 'tar xC /tmp/ -f -' |
||||
``` |
||||
|
||||
Basically, using `tar` to get the content of several files and turn it in a |
||||
single sequence of bytes, send it through stdout to ssh and, there, run `tar` |
||||
to undo the sequence (making them back into files). Curious, and potentially |
||||
4x faster than copying files directly through `scp`. |
@ -0,0 +1,109 @@
|
||||
+++ |
||||
title = "Links Comentados de 2020-06-19" |
||||
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: |
||||
--> |
Loading…
Reference in new issue