2 pontos por GN⁺ 6 시간 전 | 2 comentários | Compartilhar no WhatsApp
  • Ao tentar personalizar livremente o blog, o autor acabou criando desde escrita em HTML, um sistema de escrita em JSON e conversão de Markdown até ferramentas de compilação e deploy, o que no fim levou à experiência de implementar por conta própria um gerador de site estático
  • yak shaving se refere a uma situação em que uma cadeia de tarefas para alcançar um objetivo vai se afastando do propósito original; a expressão foi criada por Carlin Vieri, do MIT AI Lab
  • Engenheiros e gestores tendem a cair facilmente na armadilha de construir do zero quando não gostam de soluções prontas ou sentem que elas não se encaixam nos requisitos
  • Com orçamento e tempo limitados, pode ser mais importante do que a diversão de implementar tudo por conta própria escolher alternativas que atendam aos requisitos centrais e reduzir o volume de trabalho
  • Há casos em que isso leva a grandes resultados, como o TeX de Donald Knuth, mas a maioria dos yak shavings pode fracassar; ainda assim, se houve aprendizado, isso por si só tem valor

Um blog feito à mão acabou virando um gerador de site estático

  • Não usa geradores de site estático nem frameworks como Jekyll, Hugo, Gatsby
  • No início, testou algumas ferramentas, mas achou que ofereciam pouca liberdade de customização e decidiu criar a própria solução
  • Escrever posts em HTML era incômodo; para resolver isso, criou um sistema de escrita baseado em arquivos JSON, mas ele também parecia estranho para textos longos
  • Depois, ao criar também um serviço para converter arquivos Markdown em HTML e ferramentas para compilar e fazer deploy dos arquivos resultantes, acabou, na prática, construindo do zero um gerador de site estático

O significado e a origem de yak shaving

  • yak shaving descreve a situação em que, ao seguir tarefas relacionadas para alcançar um objetivo, a pessoa perde o propósito original e acaba fazendo algo completamente diferente
  • O exemplo do LangDev IRC mostra alguém que vai cortar madeira com um machado, mas antes precisa encontrar uma pedra para afiá-lo; para ir à vila onde há uma boa pedra, precisa conseguir um yak; como o pelo do yak está comprido, acaba tendo de tosá-lo
  • O exemplo de Seth Godin começa com lavar o carro e passa por mangueira, Home Depot, E-ZPass, o E-ZPass do vizinho e um problema com um travesseiro emprestado, até terminar com a tosa de um yak no zoológico
  • A expressão foi criada por Carlin Vieri no MIT AI Lab
    • Vieri jogou hóquei até tarde numa terça-feira e, ao jantar de madrugada, assistiu ao episódio Yak Shaving Day de The Ren & Stimpy Show
    • Alguns dias depois, enquanto lidava com burocracias como autorização administrativa, configuração de conta da DHL e procura de uma agência dos correios, disse a um colega que estava fazendo yak shaving
    • Nos meses seguintes, continuou usando a expressão no laboratório, e ela se espalhou

O risco de construir tudo do zero

  • Um dos erros frequentes de engenheiros ou de gestores que lideram equipes de engenharia é construir do zero
  • O engenheiro pode não gostar de soluções prontas ou querer provar sua própria capacidade
  • O cliente ou o gestor pode entender mal o que a solução existente faz ou concluir que ela não atende exatamente aos requisitos
  • A maioria dos projetos, seja de produto ou projeto pessoal, tem orçamento e tempo limitados
  • Quando se começa a implementar por conta própria, é fácil isso evoluir para yak shaving; e, uma vez dentro, não dá para saber onde vai terminar, podendo até levar ao abandono do objetivo original
  • Nesses casos, é mais adequado procurar alternativas que atendam ao núcleo dos requisitos e reduzir ao máximo o trabalho

Mesmo assim, por que yak shaving é divertido

  • É difícil largar o yak shaving porque há prazer em construir algo com as próprias mãos
  • O processo de criar algo que não existia, encontrar problemas e resolvê-los, e mergulhar na cadeia de conhecimento para entender como as coisas funcionam atrai os engenheiros
  • Mesmo para quem não é engenheiro, a própria ideia de fazer aquilo que se quer por conta própria é atraente
  • Frederick P. Brooks Jr. resume em The Mythical Man-Month por que programar é divertido
    • o prazer puro de criar algo
    • a alegria de fazer algo útil para outras pessoas
    • o fascínio de construir um objeto complexo, como um quebra-cabeça de peças interligadas, e ver suas regras funcionarem em ciclos sutis
    • a alegria de continuar aprendendo
    • o prazer de trabalhar com um meio de expressão flexível e fácil de manipular

TeX: um yak shaving que deu certo

  • TeX também é um caso nascido de yak shaving
  • TeX é um sistema de composição tipográfica criado pelo professor de Stanford Donald Knuth e se refere ao sistema completo em funcionamento, incluindo a linguagem de composição e o compilador que a processa
  • Como facilita a entrada de fórmulas, é amplamente usado nas áreas de ciências sociais, ciências e engenharia; a maioria dos usuários utiliza LaTeX, um conjunto de macros para usar o TeX com mais facilidade
  • Em 1976, ao preparar a 2ª edição do volume 2 de The Art of Computer Programming, Donald Knuth queria a composição tipográfica usada na 1ª edição, mas ela já não estava mais disponível
  • Insatisfeito com as alternativas, Knuth viu um livro de composição tipográfica digital de Patrick Winston e decidiu criar ele mesmo um sistema de composição digital
  • Knuth fez a primeira versão do TeX na linguagem SAIL e depois concluiu o desenvolvimento usando a linguagem WEB, criada por ele
    • O código-fonte em WEB mistura documentação e código
    • Com os programas Weave e Tangle, é possível extrair de um arquivo WEB, respectivamente, um arquivo TeX e um arquivo Pascal
    • Knuth chamou esse paradigma de programação de literate programming
  • Junto com Michael Plass, Knuth também criou o algoritmo de quebra de linha Knuth-Plass, que decide onde dividir as linhas em um parágrafo
  • Ele projetou a fonte Computer Modern para o TeX, criou a linguagem METAFONT para definir gráficos vetoriais e também desenvolveu o formato DVI para produzir a saída do TeX sem depender de um dispositivo específico
  • Em outras palavras, para escrever um livro, ele acabou criando uma linguagem de programação, um paradigma, algoritmos, ferramentas e fontes; a produção do TeX levou quase 10 anos, e o livro também saiu com esse atraso, mas o esforço não foi em vão

Entre fracasso e aprendizado

  • TeX é um caso extremo de sucesso, e a maioria dos yak shavings fracassa
  • É preciso parar no ponto certo, mas muitas vezes é difícil desistir porque o tempo investido já parece valioso ou porque o próprio yak shaving é divertido
  • Mesmo quando é preciso ir até o fim, pode surgir o pensamento “o que exatamente eu estou fazendo agora?”, o interesse pode esfriar, ou os recursos destinados ao projeto podem se esgotar e interrompê-lo
  • Para quem quer aprender, o yak shaving pode ser extremamente eficaz
  • Muitas aulas de ciência da computação, independentemente da intenção do professor, exigem algum grau de yak shaving, e às vezes se aprende mais ao explorar o conhecimento ao redor do que ao focar apenas no enunciado do trabalho
  • Para construir um sistema de computação no estilo yak shaving, é preciso estudar desde Boolean logic, circuitos lógicos, arquitetura de computadores, linguagens de programação e sistemas operacionais
  • The Elements of Computing Systems de Noam Nisan e Shimon Schocken segue exatamente esse processo
  • Mesmo sem chegar até o fim, se você aprendeu alguma coisa enquanto tosava o yak, isso por si só já tem valor

2 comentários

 
unsure4000 4 시간 전

Parece que a versão em coreano do post é a original.

https://parksb.github.io/article/32.html

 
GN⁺ 6 시간 전
Comentários do Lobste.rs
  • Tosar o iaque é divertido, mas é preciso definir algum limite de profundidade de recursão ou de esforço e parar quando chegar nele

  • Acho realmente irritante quando inventam uma expressão que quase ninguém usa e a empregam como se fosse um termo que todo mundo conhece. Usuários do Reddit são especialmente bons nisso, sempre citando alguma tal lei
    Encontrei a fonte no MIT para esse termo: https://projects.csail.mit.edu/gsb/old-archive/…

    • Sempre vai existir alguém ouvindo isso pela primeira vez, mas yak shaving é uma expressão bem comum na nossa área. Se você pesquisar, vai encontrar uma quantidade enorme de usos
    • O texto define o termo logo no começo, e acho que explica bem
    • Aprender uma expressão idiomática que você não conhecia não é justamente algo divertido? Também não é uma conversa presencial em que você fica em desvantagem se não acompanhar em tempo real
      Se você nunca entrar em contato com coisas fora do seu horizonte, como vai ampliar esse horizonte?
    • É difícil acreditar que ninguém tenha dito isso ainda, mas yak shaving é uma expressão totalmente cromulenta