Carruagem Negra

Artigos

07-09-2024 Notas sobre produtividade

Recentemente comecei a me preocupar em otimizar mais o meu fluxo de trabalho. Vou contar de forma resumida a história de como cheguei a essa conclusão e mencionar minhas ferramentas de escolha até o momento.

Introdução desnecessária e pulável:

Como um usuário inconsequente de Linux, já usei gerenciadores de janelas mais esotéricos e brinquei bastante com o Vim, que, inclusive, junto ao WordGrinder, é por onde atualizo este site. Contudo, sempre retornava à minha zona de conforto em um gerenciador de janelas empilhadas e no IntelliJ como editor de código. Não demorou para que eu pensasse em substituir o IntelliJ pelo Geany. Veja, ele é pouco usado, mas ainda possui uma estrutura ortodoxa, e sua extrema leveza me pouparia das eventuais travadas que a IDE proprietária causava na minha máquina.

Como estava estudando desenvolvimento de jogos em Java, migrei e me deparei com uma barreira: Compilação/Interpretação. Java com certeza foi a linguagem que mais usei no meu processo de estudar programação e, mesmo assim, usando ferramentas como o BlueJ, Android Studio e Eclipse, nunca precisei compilar propriamente. Ou seja, sem perceber, havia criado uma dependência do meu fluxo de trabalho a esses programas. Essa é a burrice inerente de hiperautomatizar processos. E ainda há quem prefira trabalhar com game engines; vai entender.

Quebrei a cabeça com alguns tutoriais e, em poucas horas, estava funcionando! Ao pressionar um botão, conseguia compilar o projeto e acessar os assets de forma até mais prática do que no Eclipse, onde é necessário ficar atualizando essa pasta. Daí eu percebi que conseguia trabalhar com o Geany, mas não só com ele. Com qualquer ambiente que eu queira. Nisso surgiu aquela sugestão natural: "e se formos além?".

Tirei a poeira do Vim e dediquei-me a estudar como aproximá-lo da experiência de uma IDE. Outro erro. Ele não é uma IDE. Existe um jeito particular de executar tarefas nesse programa. Um jeito que, como você lerá a seguir, não é sempre o melhor, mas, desde que você entenda o que está fazendo, com as devidas alterações, se torna uma lâmina afiada. Como estava usando várias janelas simultaneamente, também migrei para o Ratpoison como gerenciador de janelas. Já tinha usado, achei interessante, mas nunca mexi o suficiente para torná-lo prático. Também tentei experimentar não usar gerenciadores de arquivos gráficos. Foi no mínimo interessante, e você pode saber com detalhes na próxima seção.

O que fiz a respeito:

Vim e seus Plugins. Eu admiro um usuário de Vim puro, assim como admiro um bom católico. Infelizmente, eu não sou nenhum dos dois, mas em relação ao primeiro título, eu consigo me justificar.

"Hãã, veja bem..." A ideia do Vim é que você passará a maior parte do seu tempo editando código do que escrevendo. Para isso, é necessário que você pule rapidamente entre diversos arquivos e partes desses arquivos. O editor, por padrão, oferece funções como "find", "grep", "vimgrep" e "edit" para fazer isso. Você consegue, inclusive, procurar recursivamente informações em subdiretórios usando o coringa "*"; com ele, você nem precisa saber o nome inteiro do que está procurando. Não só isso, como existem as "CTAGS", que são geradas por um programa externo e permitem que você pule diretamente para a definição de funções. Porra, perfeito, não!?

Na verdade, mais ou menos. Essas buscas recursivas só vão funcionar se você estiver trabalhando com projetos pequenos ou com o escopo específico de um projeto. Um joguinho pode até funcionar, mas, no mundo real, tenho que trabalhar com coisas mais complexas e essas ferramentas podem levar até 30 segundos para achar o que estou procurando. Mesmo as CTAGS funcionam perfeitamente apenas para tecnologias pré-2015. Depois disso, a linguagem que você estiver usando pode simplesmente não ser suportada. Então será necessário algum plugin.

Essas são as alternativas à disposição: FuzzyFinder+RipGrep e LSP. O primeiro é uma combinação de ferramentas desenvolvidas para procurar nomes de arquivos/conteúdos em arquivos de forma extremamente rápida, interativa e eficiente. Ele funciona em qualquer tipo de projeto e torna obsoletas as ferramentas padrão. Esse é um dos quatro plugins que uso e levaria para qualquer lugar. Infelizmente, não funciona na minha geladeira.

O LSP, o servidor LSP, a grosso modo, é um meio de ter seu código interpretado de forma assíncrona pela sua máquina. É isso que as IDEs fazem. Enquanto você escreve, o plugin levanta sugestões, aponta linhas com avisos, erros e substitui as CTAGS, permitindo que você pule para definições de funções. Eu não gosto de usá-lo por trazer muitas coisas ao mesmo tempo e funcionar como uma caixa preta à qual não sei exatamente o que está acontecendo. Além disso, o compilador já faz a maioria dessas funções de forma síncrona. O ganho de tempo não me parece uma troca tão vantajosa nesse caso.

Agora, sobre autocomplete. Eu admito, eu não quero escrever palavrinhas inteiras, mas há dois detalhes nisso. O Vim já possui um autocomplete síncrono. Você chama ele por meio de comandos como Ctrl+N. Você pode chamar diferentes autocompletes que usam bases de sugestões diferentes, por exemplo: relacionando ao arquivo em que você está, aos buffers abertos, às tags e até o Omnicomplete, que interpreta o seu código (de uma forma mais grosseira que um LSP). O outro detalhe são os plugins que usam o LSP como base para sugestões assíncronas, como o COC.vim (você leu corretamente, eu que não vou usar esta porra!).

Assim como um social-democrata que se orgulha de estar em cima do muro, eu encontrei um meio-termo nisso. Chama-se "vim-auto-popmenu", que utiliza os próprios autocompletes do Vim como base para um autocomplete assíncrono. Você tem que configurar qual tipo vai funcionar (arquivo atual, buffers, etc.), mas já é mais do que suficiente para mim.

Para completar o conjunto de plugins relacionados a códigos, também há o gitbranch, que mostra a branch atual na linha de status. Dá para ter isso direto no vimrc, mas não queria perder muito tempo configurando.

Isso, somado a algumas configurações particulares, constitui menos de 50 linhas do meu ".vimrc". O que quase se encaixa como minimalista para o padrão de usuário médio.

Se você fez as contas, está faltando um plugin, certo? Sim, mas esse já deixa de fazer parte do ambiente de código. Trata-se do Vimwiki. Ele cria uma wiki offline; um ambiente de produtividade com uma linguagem de marcação própria que permite criar listas de afazeres, linkar diferentes arquivos e organizar informações. Uma versão simplificada do orgmode para usuários de Emacs.

É possível converter as páginas em HTML e, não ironicamente, penso em migrar esse site para lá.

Meu uso ficou tão integrado a essa ferramenta que uso inclusive como uma "barra de favoritos" agnóstica. Independente do navegador, ela sempre vai funcionar.

Também pensei em usar o Vim como gerenciador de arquivos. Não vale a pena. Mesmo que você use plugins como Dovish, hora ou outra vai encontrar uma limitação irritante. Existe o Olive.nvim, mas aí precisa usar o Neovim, e isso não me é motivo suficiente para deixar a versão boomer do editor.

Meu último comentário a respeito do Vim é algo que tenho de lembrar a mim mesmo: "Estou fazendo isso da melhor forma possível?" Talvez não, e é sempre interessante pesquisar sobre como outras pessoas fazem, ler os manuais embutidos e testar. O respeito pelos usuários que utilizam o editor de forma pura, além de soar "raiz", vem do fato de terem compreendido profundamente a ferramenta que usam.

Isso conclui a maior parte do texto. As demais ferramentas que uso ainda não foram dedicadas tanto tempo. O que posso dizer sobre o "filemanager" de minha escolha, o nnn, é que ele não perde em nada para as outras alternativas. Nem empata. Leve, extensível e rápido. Para falar a verdade, uso-o somente para manipular grandes volumes de arquivos. Ele permite usar o próprio Vim para renomear todos os arquivos de uma pasta, por exemplo. É brutal, mas muito ocasional.

Já sobre o Ratpoison, é um "window manager" do tipo "tilling" que abre os seus programas formando mosaicos de janelas que não se sobrepõem. O diferencial dele, além de ser muito leve (algo de minha preferência, como pode perceber), é o fato de não focar nas janelas com o mouse. Se quiser trocar de janela, faça-o manualmente. Pode parecer trabalhoso, mas, quando muitos dos seus programas são orientados a teclados, ele disciplina você a não perder tempo indo até o rato. Por isso o nome "veneno de rato".

Para falar a verdade, se utilizá-lo como vem instalado, você terá tendinite em uma semana, então pesquise como remapear os botões. Eu consigo ver o potencial dele em junção com alguns shell scripts, mas não vou entrar muito em detalhes pois quero me apropriar disso primeiro.

Existem programas que não funcionam perfeitamente nele, então abro o jwm, que é do tipo empilhado só para fazer as configurações, mas suspeito que conseguiria fazer pelo evilwm que é o gerenciador de janelas mais leve que conheço.

Há ainda alguns pormenores nisso tudo como praticar digitação a partir de técnicas de datilografia. Isso zerou algumas dores que eu tinha nas mãos e melhorou minha velocidade. Contudo, a nível de notas acho que está mais do que suficiente.


23-07-2024 Como sair da internet (Sem Sair)

Essa seleção não é sobre plataformas alternativas (Mastodon, Koo etc.), está mais para formas de consumir de redes sociais/ferramentas/sites conhecidos sem precisar estar neles. Você nem precisará estar conectado o tempo todo à rede, terá camadas de privacidade e não estará a mercê de algoritmos MALIGNOS. Você pode perceber como alguns processos são meio trabalhosos ou infrutíferos, mas ainda acho que possa ter bastante coisa interessante para você.

Além do mais, esse artigo será expandido conforme meu conhecimento aumenta então podem surgir alternativas mais fáceis e você não terá o trabalho de curá-las. Acompanhe nos micro registros se quiser saber quando houver atualizações.

Também coloquei indicativos de nível de dificuldade. Então, vamos às ferramentas.

Seção 1-RSS:

Essa é a base. A tecnologia perdida que algum careca sugeriu ser a real alternativa ao problema das redes sociais. Não é um completo erro afirmar isso. Você só precisa se conectar por um momento na rede e terá uma linha do tempo com todas as postagens de sites, blogs, youtube, twitter e o que mais for suportado. Tudo baixado pronto para consumo. Todas as inscrições estarão salvas em um arquivo .opml. Fique a vontade para compartilhá-lo ou salvá-lo em um servidor local para consumir em diferentes dispositivos.

Esse era um protocolo muito comum nos anos 2000. Ele se perdeu com as redes sociais e com muitas plataformas deixando de dar suporte. Ainda assim, boa parte da internet "popular" ainda o usa. O maior problema além da disponibilidade, fica pelo fato de você só poder baixar texto/imagens. Outros formatos (vídeos/documentos) não serão baixados e você usará seu navegador para acessálos (nem sempre, mas isso fica para o futuro).

Toda essa primeira seção será sobre RSS. Ferramentas para visualizar e como exportar algumas redes para esse formato.

Para ter acesso ao RSS, você precisará de um leitor, seguem algumas opções:

-Feeder [Iniciante]:

Compatível com todas as redes sociais que tentei (Telegram/Twitter/Youtube) além de blogs/sites que suportam RSS. Interface fácil de usar e disponível para android.

-FeedBro [Iniciante]:

Compatível apenas com Youtube e redes sociais/blogs que suportam RSS. Interface fácil de usar. É uma extensão de navegador disponível tanto para chrome como para firefox, além das variantes desses.

-QuiteRSS [Iniciante]:

Compatível com todas as redes sociais que tentei (Telegram/Twitter/Youtube) além de blogs/sites que suportam RSS. Interface fácil de usar e disponível em qualquer sistema operacional de mesa.

-Newsboat [Avançado]:

compatível com Youtube e blogs/sites que suportam RSS. Interface por terminal complexa para usuário comum. Leia sobre ou veja um tutorial. Disponível em qualquer gestor de pacotes, até em android.

Por que usar algo mais difícil e com menos funções? Ele é o mais leve e funciona até em máquinas dos anos 90.

RSS >> Youtube:

Objetivamente essa é a melhor plataforma para se usar com o RSS. Todos os leitores lêem os endereços de canais de youtube nativamente. É possível integrar com o Individuos visto na Seção 2 assim como o MPV na Seção 3. Nessa última forma, nem o navegador você precisa abrir para consumir vídeos de canais que você gosta.

-Como gerar endereços para consumo via RSS [Intermediário]:

Basta seguir esse passo a passo:

Se quiser pode pular para Seção 2. As redes seguintes nessa seção não são tão versáteis, mas podem lhe interessar.

RSS >> twitter:

Antes era só questão de copiar o endereço da conta e jogar no seu leitor RSS. Depois que o Elon Musk adquiriu e houveram mudanças nas políticas internas, pelo menos até Julho de 2024 ainda é preciso usar essa gambiarra.

-Nitter + rss [Intermediário]:

Inicialmente o que o nitter apresenta é a visualização de contas. Pesquise pela conta de alguém e leia o conteúdo apenas dessa conta. Contudo é possível exportar o feed dessa página como um arquivo RSS. Esse arquivo não funcionou em nenhum programa que testei.

Contudo, no QuteRSS e no Feeder o próprio endereço da conta no nitter foi entendido como um "feed" e importado. Dessa forma você pode ter ele na sua linha do tempo junto dos demais conteúdos.

RSS >> Telegram:

Esse modelo abaixo nunca foi muito eficiente. Posteriormente vou mexer com bots, talvez eu desenvolva algum e deixe as instruções para você.

-Gerar feed [Intermediário]:

Escolha um canal e escreva esse url "https://tg.i-c-a.su/rss/" + nome do canal. Depois importe para o seu leitor (só funcionou no QuteRSS e no Feeder). Por exemplo, para criar um feed do canal "Chiarousco", seria:

https://tg.i-c-a.su/rss/ch1ar0scuro

Problema: existe um limite de requisições que você pode fazer a cada x minutos. Então não conte com isso para estar sempre atualizado, só para leituras pontuais.

Seção 2-Navegador:

Minha opção de uso é o Librewolf. Ele é o firefox se a mozilla realmente ligasse para privacidade. Toda vez que você sai dele todas suas contas são deslogadas. Históricos e cookies completamente esquecidos.

Não acho propriamente um incômodo refazer o login até porque muitas das plataformas, como estão associadas à RSS, não perdi muita coisa.

Eu de fato estou na internet usando ele, mas apenas enquanto estou usando ele.

Navegador >> Redirecionamento:

-Alter (extensão) [Fácil]:

Ele redireciona endereços de plataformas grandes como youtube/twitter para suas alternativas como o Individuos/Nitter.

Navegador >> baixar páginas:

-Save Page With Single File:

Seu navegador permite baixar páginas, mas apenas o .html. O estilo e script se perde. Então, para manter no seu computador páginas que você acha importantes junto ao script e css, pode usar esse. Agora você pode abrir informações importantes direto da amazônia.

Navegador >> Youtube:

-Individuos [Intermediário]:

Rode uma cópia do youtube com opção de assistir em segundo plano (até para celular), sem propagandas e podendo baixar em diferentes formatos (áudio ou vídeo). Ele também permite importar as inscrições do yotube a partir de arquivos. Tudo isso em um mesmo site. Ou melhor, um grupo de "sites", porque qualquer um pode abrir seu Individuos. O que isso significa? Você tem várias instâncias dele rodando em locais diferentes. Se um endereço cai, você tem outra opção. Você pode usar o link do canal no Individuos para gerar o feed também.

Se for um usuário nível [Autista] você pode hospedar seu próprio servidor Individuos

Navegador >> Mecanismo de pesquisa:

-Searx:

Ele usa motores de pesquisa conhecidos (google, duck duck go, bing) mas sem coletar seus dados. Assim como o Individuos ele possui várias instâncias com suas particularidades.

Seção 3-Não coube nas outras categorias zé:

Se aplicações com denominadores comuns se acumularem, farei uma nova seção acima.

-Newpipe (aplicativo) [Retardado]:

Baixe o .apk e rode. Ele é unicamente mobile. Uma plataforma que acessa youtube sem vincular sua conta. Ele se parece com o youtube e funciona da mesma forma. Você pode importar suas inscrições utilizando >>Esse link<< e ele ainda não guardará seus metadados. Vale lembrar que esse arquivo importado não é compatível com feeds rss

Você pode usar junto do youtube se não quiser destruir sua conta. Quando tiver um vídeo que queira ouvir de fundo, vá em compartilhar e selecione o NewPipe.

Ao contrário do SnapTube ou do Revanced, você está usando uma ferramenta de código aberto. Não precisa "destravar" sua conta google ou ficar vendo propagandas.

-Kiwix (programa Linux) [Iniciante]: programa que baixa páginas de plataformas como wikipedia, wikihow e StackOverflow direto no seu disco. Está disponível para diferentes distribuições Linux.

-MPV (programa Linux) [Avançado]: ele está mais relacionado a forma de ver o vídeo; você vai assistir vídeos do youtube direto do seu computador sem passar pelo site. Vou deixar um tutorial para usá-lo com o citado newsboat. Mas de forma grosseira, tenha ele baixado, as bibliotecas ffmpeg e o yt-dl. Então abra o terminal e basta colocar mpv + endereço do vídeo. Assim você assistirá o conteúdo direto da sua máquina.

Tutorial


20-07-2024 Notas sobre Jogo de Autista [versão Solo]

Jogo de interpretação ou "RPG de mesa" é uma prática de comedor de giz que me vi fazendo depois de três anos afastado por diversos fatores. Por outros diversos fatores, esses não correlatos aos primeiros, a prática meio que morreu dentro do meu grupo. Então me veio o seguinte pensamento: dá para jogar sozinho?

É uma idiotice por definição, porque seria essencialmente escrever uma história estabelecendo alguns parâmetros arbitrários. A interpretação meio que morre se não tem para quem interpretar. Ainda assim, se parar para pensar, você teria um jogo analógico de custo mínimo e flexibilidade infinita.

Eu gosto de ferramentas assim, não só para possíveis situações de crise em que eu fique dentro de um búnquer anotando resultados de dados enquanto me empanturro de comida enlatada, como pela liberdade que isso pressupõe. Qualquer lugar, qualquer hora e três objetos baratos.

Então fui pesquisar. Nisso, descobri duas informações que vão ser dissecadas nos próximos parágrafos.

Primeiro: existe uma comunidade de "RPG" solo. Sendo mais específico, existe uma comunidade de "RPG" solo brasileira e ela é surpreendentemente ativa.

Segundo: existem forma(S) de se jogar "RPG" solo.

Sobre a comunidade serei bem sucinto: muito material a disposição. Alguns bons, muitos ruins e mais politizados do que deveriam. Se não quiser entrar na câmara de eco esquizo deles, recomendo entrar quieto, filtrar seus arquivos e ir embora.

Se continuarem assim vão continuar presos no nicho de maluquinhos no facebook, mas como eu disse, não é de todo mal.

Já as formas de se jogar "RPG" solo, o foco maior da postagem, são diversas, mas metade delas são completamente doentias. Para dar contexto, vou explicar como funcionava o meu jogo em grupo.

O sistema que mais usei para jogar foi o RISUS. O impreciso e abstrato RISUS. Onde não existem atributos definidos, você, na verdade, atribui arquétipos aos seus personagens e muitos dos testes, até formas de se conduzir batalhas, se valem da interpretação. Aqui eu uso os dois sentidos de "interpretação", tanto como se entende as regras como para a forma que se age enquanto personagem. Existe esse motor implícito no jogo, sobre a dinâmica de convencer o mestre para tirar vantagem da situação. Soma-se ao tom cômico que tendíamos a seguir e há uma fina camada de cinismo que nos separava da completa esquizofrenia desse gênero.

Agora você retira o mestre e retira os jogadores. Vamos deixar, digamos... uma tabela desse tipo:

Faça uma pergunta sobre a cena e role 1 dado, sua resposta será:

1- Sim

2- Sim, mas com condição positiva

3- Sim, mas com condição negativa

4- Não, mas com condição positiva

5- Não, mas com condição negativa

6- Não

Agora você é basicamente seu mestre e vai usar essa tabela como definidora da situação. Já entendeu o problema? Não precisa responder. É óbvio que você vai, ainda que inconscientemente, tentar se favorecer. Porque não existem só "condições positivas" ou "negativas", existem graus disso e você não pode dar tudo de si como jogador, porque é você também que está arbitrando sobre as situações. Se o jogador acha que a solução é razoável, é óbvio que para o mestre também é razoável, pois ambos são você!

O sistema de fato vai refrear levemente tudo isso, mas ainda vai existir sempre esse vetor de auto favorecimento, se você usar essa tabela que eu mostrei.

Mas aí que tá, essa tabela em questão constitui um mini "oráculo". Oráculos são conjuntos de tabelas que servem de auxílio para o jogador elaborar as cenas. O uso desses oráculos marca o estilo de jogo que vamos chamar de "Interpretativo".

Muitos influenciadores do meio incentivam essa forma de jogar. Muitas vezes é o primeiro contato que as pessoas têm, até por se parecer muito com o "RPG" normal. Por isso eu vou fazer a cagação de regra que vai salvar sua vida: "RPG" solo muito focado em interpretação é coisa de MALUCO. Coisa de quem quer "viver na pele do personagem". Alguém que está disposto a ignorar os gatilhos mentais que tornam suas fantasias mais doentias ao se auto favorecer. Não sou eu que estou dizendo, ouvi influenciadores sugerirem descartar resultados de oráculos se eles não vão de acordo com “o rumo da história”, seja o que isso signifique.

Isso sem falar que ninguém vai rir das suas piadas. Parabéns por ser o maluco que cortejou um Devorador de Mentes no Castelo da Escuridão, enquanto na verdade está sozinho em seu quarto ignorando o choro do seu pai no banho.

Mas nem tudo está perdido. Existe um segundo estilo de "RPG" solo que é focado em mecânicas. Nele, normalmente, tudo é proceduralmente gerado. Basicamente como um Minecraft que você joga com papel e caneta. Ele possui muitas micro variações, sendo as mais famosas o explorador de hexágonos e o de masmorras.

Eu vou falar sobre o primeiro, por ter o título mais curioso e por ter sido o que mais me engajou. Nele, você possui uma folha com uma malha de hexágonos. Normalmente você começa no meio do mapa, em uma cidade. Você vai avançando em diferentes héxagonos, descobrindo diferentes terrenos, hora lutando contra inimigos, hora entrando em masmorras e hora comprando ítens em lojistas. Tudo isso, com base em rolagens e tabelas do sistema. Da mesma forma, nada é grátis pois esses jogos costumam limitar seus recursos por meio de provisões e tochas. Suas decisões ganham muito mais valor quando um erro seu de dez turnos atrás, pode ser a causa de você morrer no meio dessa masmorra cercado de goblins pernetas.

Ele é completamente estruturado, mas ao mesmo tempo, aleatório. A interpretação dá muito mais lugar à estratégia. Alguns até tentam simplificar como "jogo de tabuleiro" ao invés de "um jogo de interpretação". Contudo, eu considero "RPG" tal qual um jogo de computador o é. Pois você estrutura um personagem e toma as decisões de vida dele.

Claro, nem todo jogo "mecânico" vai ser bom e muitos vão tomar emprestado características dos jogos de "interpretação". Então, estendo o que eu disse antes: quanto mais um jogo mecânico tiver margem para interpretação, pior. Ainda que existam jogos mecânicos que são ruins sem as características de interpretação.

Apesar de tudo, não se engane. As gemas definitivamente estão nesse tipo mecânico. Eu não gostei muito desse tipo quando joguei em grupo, mas sozinho, com tempo para me planejar e tomar decisões, foi ouro puro.

Não preciso dizer para qual tipo de jogo a comunidade brasileira tinha mais material, né? Vamos ser justos, existem grupos menos politizados e os melhores jogos "exploradores" encontrei lá, mas essa primeira impressão foi bem marcante.

Essas são minhas notas gerais. Entenda isso como um grande glossário. Futuramente vou fazer um guia sobre as melhores formas de jogar RPG Solo, incluindo ferramentas digitais e quais os melhores sistemas que testei.