<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Código Pirata-Blog</title>
    <description>Nos computadores desde 1998</description>
    <link>http://localhost:4000</link>
    <atom:link href="http://localhost:4000/feed.xml" rel="self" type="application/rss+xml" />
    <author>
      <name>Paulo</name>
      <email>example@example.org</email>
      <uri>https://paullomarttins.codeberg.page/</uri>
    </author>
    
      <item>
        <title>Configurando Dotfiles com Git</title>
        <description>&lt;p&gt;Queria uma solução simples para gerenciar meus dotfiles. Claro que existem muitas outras alternativas, mas algumas são mais trabalhosas. Na própria wiki do &lt;a href=&quot;https://wiki.archlinux.org/title/Dotfiles#Tools&quot;&gt;Arch Linux&lt;/a&gt;, podemos encontrar algumas aplicações úteis para isso, além de vários &lt;a href=&quot;https://wiki.archlinux.org/title/Dotfiles#User_repositories&quot;&gt;repositórios&lt;/a&gt; criados pela comunidade.&lt;/p&gt;

&lt;p&gt;Em meu ambiente de desenvolvimento, uso o i3wm como gerenciador de janelas. No entanto, para os usuários de Arch Linux, onde a instalação e configuração são feitas pelo próprio usuário, a quantidade de configurações e instalações pode se tornar um processo demorado. No entanto, os dotfiles podem ajudar com mais da metade dessas configurações, pois todo o seu backup fica concentrado no seu repositório git online. Isso facilita a obtenção de todo o seu ambiente de trabalho de forma rápida e prática.&lt;/p&gt;

&lt;p&gt;A solução que escolhi foi retirada da própria wiki do Arch Linux, que é muito completa. Essa foi a forma mais prática que encontrei em minhas pesquisas na web. Pensei em adotar o &lt;a href=&quot;https://www.gnu.org/software/stow/&quot;&gt;GNU Stow&lt;/a&gt;, que também é bem interessante se for adaptado com um script de automação. Esse script fará a maior parte da criação dos links e das instalações.&lt;/p&gt;

&lt;p&gt;O processo de configuração de um repositório local para um novo sistema que ainda não tenha dotfiles é bem simples, antes crie um repositório online que será usado com o git remote no repositório local.&lt;/p&gt;

&lt;p&gt;Inicie um novo repositório em modo bare(repositório para armazenamento):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git init --bare ~/.dotfiles
$ alias dotfiles=&apos;/usr/bin/git --git-dir=&quot;$HOME/.dotfiles/&quot; --work-tree=&quot;$HOME&quot;&apos;
$ dotfiles config status.showUntrackedFiles no
$ dotfiles remote add main https://github.com/username/dotfiles.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;O alias pode ser setado no shell de forma permanente:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fish shell&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;echo &quot;alias dotfiles=&apos;/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME&apos;&quot; &amp;gt;&amp;gt; $HOME/.config/fish/config.fish
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Bash&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;echo &quot;alias dotfiles=&apos;/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME&apos;&quot; &amp;gt;&amp;gt; $HOME/.bashrc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Agora, podemos usar os comandos padrão do Git para adicionar novos arquivos, alterar e atualizar o que está na pasta home.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dotfiles status
dotfiles add .config/i3/config
dotfiles commit -m &quot;i3 config&quot;
dotfiles push
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Para restaurar as configurações do repositório online em uma nova instalação do sistema, o processo é bastante semelhante. Esse processo deve ser feito antes da instalação ou criação dos arquivos de configuração dos pacotes instalados. Caso contrário, um aviso do Git informará que existem arquivos no repositório local, e será preciso fazer backup ou movê-los.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git clone --bare &amp;lt;git-repo-url&amp;gt; $HOME/.dotfiles
$ alias dotfiles=&apos;/usr/bin/git --git-dir=&quot;$HOME/.dotfiles/&quot; --work-tree=&quot;$HOME&quot;&apos;
$ dotfiles checkout
$ dotfiles config --local status.showUntrackedFiles no
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Se o aviso de arquivos existentes for retornado pelo Git e você não se importar em sobrescrevê-los, faça o checkout forçado.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ dotfiles checkout -f
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Por fim, para não perder tempo instalando muitos pacotes, uso o próprio pacman para instalar todos os pacotes necessários para o funcionamento inicial do meu sistema. Isso pode ser feito por meio de um script shell ou outros recursos. Ainda não organizei isso, mas voltarei em algum momento e escreverei um artigo sobre o assunto.&lt;/p&gt;

&lt;p&gt;Instalando pacotes essenciais:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# pacman -S --needed - &amp;lt; pkglist.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Concluindo, toda a documentação e as dicas podem ser encontradas na wiki do &lt;a href=&quot;https://wiki.archlinux.org/title/Dotfiles#Tools&quot;&gt;Arch Linux&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 20 Dec 2025 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//dotfiles_configuracao.html</link>
        <link href="http://localhost:4000/dotfiles_configuracao.html"/>
        <guid isPermaLink="true">http://localhost:4000/dotfiles_configuracao.html</guid>
      </item>
    
      <item>
        <title>Um retro game console de código aberto</title>
        <description>&lt;p&gt;Sempre gostei muito de jogos antigos. Desde criança, quando comecei a ter acesso a computadores (sem internet), a luta para conseguir rodar alguns jogos com o hardware da época era grande. Então, surgiram os emuladores de jogos retrô. Esses emuladores eram incríveis, pois, mesmo com uma máquina bem modesta, não havia problemas para executar esses jogos. Lembro da primeira vez que consegui um CD-ROM com mais de 900 jogos de Super Nintendo. Fiquei animado com isso, embora já jogasse outros jogos, como Duke Nukem 3D e DOOM, que já tomavam horas do meu dia.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/game.jpg&quot; alt=&quot;Game Console&quot; title=&quot;Game Console Open Source&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Hoje em dia, temos várias maneiras de jogar esses jogos retro, como em consoles portáteis, no computador, em consoles USB e em muitos outros dispositivos. Recentemente, adquiri um console de jogos de código aberto que roda o &lt;strong&gt;RetroArch&lt;/strong&gt;. Já publiquei um artigo aqui sobre isso &lt;a href=&quot;https://paullomarttins.github.io/retropie&quot;&gt;RetroPie&lt;/a&gt; que se baseia também no &lt;a href=&quot;https://www.retroarch.com/&quot;&gt;RetroArch&lt;/a&gt;. O sistema que é executado nesse console é o &lt;a href=&quot;https://github.com/christianhaitian/arkos/wiki&quot;&gt;&lt;strong&gt;ArkOS&lt;/strong&gt;&lt;/a&gt; livre e de código aberto baseado no Ubuntu 19.10, seu fonte está no GitHub, o modelo do console é o R35S equipado com o processador Cortex-A7 1,5GHz, tela de 640*480 IPS e 96Gb de espaço interno que é dividido em dois Micro SD card.&lt;/p&gt;

&lt;p&gt;O legal desses consoles é que eles já vêm prontos em termos de hardware. Mas isso não impede que você monte seu próprio console com algum modelo de &lt;a href=&quot;https://www.raspberrypi.com/&quot;&gt;Raspberry Pi&lt;/a&gt; existente no mercado. Como de costume, resolvi fazer algumas mudanças no meu console de jogos. A primeira delas foi substituir os cartões SD, pois os que vêm de fábrica não são de boa qualidade e podem apresentar defeito muito rápido. Então, comprei dois microSD da Sandisk, um de 32 GB e outro de 64 GB. A segunda mudança é a versão do sistema operacional. Por padrão, ele vem com uma versão de 2022. No GitHub do mantenedor, há um link para a versão mais atual e para um fork do projeto &lt;a href=&quot;https://github.com/AeolusUX/ArkOS-R3XS&quot;&gt;&lt;strong&gt;AeolusUX&lt;/strong&gt;&lt;/a&gt; o qual irei usar no meu console, essa versão possui várias melhorias.&lt;/p&gt;

&lt;p&gt;O processo para instalação é muito simples, na própria &lt;a href=&quot;https://github.com/christianhaitian/arkos/wiki&quot;&gt;&lt;em&gt;wiki&lt;/em&gt;&lt;/a&gt;. No GitHub, você encontra todos esses links e o passo a passo de como atualizar ou substituir o sistema. Na minha opinião, esse console de jogos vale a pena. A maioria dos emuladores roda bem, especialmente os de PSP e PlayStation. Tem uma boa bateria e oferece muitas horas de diversão e nostalgia.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fonte: &lt;a href=&quot;https://github.com/christianhaitian/arkos/wiki&quot;&gt;ArkOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Guia instalação: &lt;a href=&quot;https://github.com/christianhaitian/arkos/wiki&quot;&gt;Wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 17 Feb 2024 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//linux_open_game.html</link>
        <link href="http://localhost:4000/linux_open_game.html"/>
        <guid isPermaLink="true">http://localhost:4000/linux_open_game.html</guid>
      </item>
    
      <item>
        <title>Liberdade no Design - Penpot</title>
        <description>&lt;p&gt;O &lt;a href=&quot;https://penpot.app/&quot;&gt;Penpot&lt;/a&gt; é uma alternativa às ferramentas proprietárias, como o &lt;strong&gt;Figma&lt;/strong&gt;, para design. É totalmente livre e de código aberto. Com o &lt;strong&gt;Penpot&lt;/strong&gt;, é possível criar ou melhorar o design da sua aplicação e dos seus dashboards, caso você trabalhe com análise de dados, assim como eu. Com o Penpot, temos a possibilidade de criar equipes para que as pessoas trabalhem juntas em projetos e arquivos. Nas configurações de equipe, podemos definir perfis de trabalho para cada membro adicionado.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/penpot.png&quot; alt=&quot;Design Freedom - Penpot!&quot; title=&quot;Penpot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Penpot is the Open-Source Design &amp;amp; Prototyping Tool for Product Teams”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Para instalar o Penpot, é muito fácil. Com a opção de instalação via Docker, o processo fica ainda mais simples. Abaixo, vou mostrar o que é preciso para essa instalação. Caso você ainda não tenha o &lt;strong&gt;Docker&lt;/strong&gt; na sua máquina, recomendo seguir o passo a passo da instalação na documentação &lt;a href=&quot;https://docs.docker.com/get-docker/&quot;&gt;Docker Doc&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;Aqui vamos obter o &lt;em&gt;docker-compose.yaml&lt;/em&gt; que é o arquivo de configuração que subirá nosso container:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~ &lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;curl &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; docker-compose.yaml https://raw.githubusercontent.com/penpot/penpot/main/docker/images/docker-compose.yaml
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Após baixar o arquivo de configuração, iremos subir o container:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~ &lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;docker compose &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; penpot &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; docker-compose.yaml up &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Finalizando o deploy do container acesse o Penpot através do link &lt;a href=&quot;http://localhost:9001&quot;&gt;http://localhost:9001&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/penpot2.png&quot; alt=&quot;Design Freedom - Penpot!&quot; title=&quot;Penpot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Para parar o container execute:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~ &lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;docker compose &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; penpot &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; docker-compose.yaml down
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Com a configuração padrão do arquivo &lt;em&gt;docker-compose.yaml&lt;/em&gt; as opções de criação de novos usuários já estão configuradas, para criar um novo usuário você poderá utilizar a página de registro ao acessar pela primeira vez a página inicial &lt;a href=&quot;http://localhost:9001&quot;&gt;http://localhost:9001&lt;/a&gt;. Como alternativa a criação de novos usuários poderá ser feita via terminal com docker como no exemplo abaixo:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~ &lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;docker &lt;span class=&quot;nb&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-ti&lt;/span&gt; penpot-penpot-backend-1 python3 ./manage.py create-profile
Email: teste@teste.org
Fullname: Paulo
Password:
Created: teste@teste.org
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Para deletar um usuário use o comando &lt;em&gt;delete-profile&lt;/em&gt;:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~ &lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;docker &lt;span class=&quot;nb&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-ti&lt;/span&gt; penpot-penpot-backend-1 python3 ./manage.py delete-profile
Email: teste@teste.org
Deleted
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Quem já usa outras ferramentas proprietárias semelhantes ao &lt;strong&gt;Penpot&lt;/strong&gt; não terá muita dificuldade em utilizá-lo. Com muitas funcionalidades e recursos disponíveis, o Penpot não fica atrás de maneira nenhuma. Segue o &lt;a href=&quot;https://help.penpot.app/user-guide/&quot;&gt;link&lt;/a&gt; da documentação que é muito completa onde você dará os primeiros passos nessa ferramenta incrível.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fonte: &lt;a href=&quot;https://penpot.app/&quot;&gt;https://penpot.app&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Guia instalação: &lt;a href=&quot;https://help.penpot.app/technical-guide/getting-started/&quot;&gt;https://help.penpot.app/technical-guide/getting-started/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Documentação: &lt;a href=&quot;https://help.penpot.app/user-guide/&quot;&gt;https://help.penpot.app/user-guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 13 Jan 2024 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//liberdade_design_penpot.html</link>
        <link href="http://localhost:4000/liberdade_design_penpot.html"/>
        <guid isPermaLink="true">http://localhost:4000/liberdade_design_penpot.html</guid>
      </item>
    
      <item>
        <title>Sincronizando pasta local para nuvem com Rclone</title>
        <description>&lt;p&gt;Definitivamente, decidi encerrar minha relação com o Dropbox. Depois de muito tempo juntos, finalmente estamos dando um ponto final. “Eu não usava com muita frequência. Sempre fui mais a favor do armazenamento local, especialmente quando se trata de dados mais privados.” Existem vários motivos para essa decisão, assim como o fato de que encerrei minha conta no Mega há alguns anos.&lt;/p&gt;

&lt;p&gt;Vivemos em uma era em que a privacidade na internet é colocada à prova. Assim, onde seus dados serão armazenados é algo para se preocupar. Dependendo do que você vai guardar na nuvem, isso pode se tornar um grande problema. Eu, por outro lado, não mantenho informações confidenciais na nuvem. Basicamente, armazeno dados que preciso acessar de qualquer lugar e de forma mais rápida.&lt;/p&gt;

&lt;p&gt;Já possuo o Google Drive, que oferece 17 GB de armazenamento. Também tenho uma conta no Box, que, por sinal, nunca utilizei. A conta gratuita do Box disponibiliza 10 GB de armazenamento. No entanto, os dois serviços não têm clientes oficiais para Linux. Existem algumas ferramentas pagas que podem ajudar, caso você esteja disposto a pagar. Pesquisando, encontrei o Rclone (Rclone - programa de linha de comando para sincronizar arquivos e diretórios com o armazenamento em nuvem), que pode ser instalado a partir dos repositórios do Ubuntu.&lt;/p&gt;

&lt;p&gt;Na documentação da ferramenta, você encontra todo o processo de configuração, que é muito fácil. Tente usar o comando “man rclone” no terminal para listar toda a documentação. Vou configurar minha conta do Box, pois consigo sincronizar o Drive com o serviço que existe no Kubuntu.&lt;/p&gt;

&lt;p&gt;Para inciar a configuração digite:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;rclone config
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A partir daí é só seguir todos os passos para a configuração referente ao serviço que você escolheu.
Após toda a configuração posso listar a minha pasta remota:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;rclone lsd remote:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Para listar os arquivos da pasta remota:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;rclone &lt;span class=&quot;nb&quot;&gt;ls &lt;/span&gt;remote:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;E por fim para sincronizar um pasta local para sua pasta remota:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;rclone copy /home/source remote:Box
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Bom, acho que é tudo. Vou ver uma maneira de automatizar a sincronização uma vez ao dia.&lt;/p&gt;
</description>
        <pubDate>Mon, 12 Jun 2023 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//sincronizando_com_rclone.html</link>
        <link href="http://localhost:4000/sincronizando_com_rclone.html"/>
        <guid isPermaLink="true">http://localhost:4000/sincronizando_com_rclone.html</guid>
      </item>
    
      <item>
        <title>Recriando servidor local open-source - Sucateando</title>
        <description>&lt;p&gt;Computadores podem durar muitos anos se forem bem zelados por seus donos, podem também ser úteis para vários projetos com a sua reutilização. Caso não saiba o que fazer com equipamentos velhos que não tenham mais utilidade para você, faça o descarte desse equipamento com sabedoria, existem postos de coletas para esse tipo de material.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Problemas causados pelo descarte inadequado&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;ul&gt;
    &lt;li&gt;Este descarte é feito quando o equipamento apresenta defeito ou se torna obsoleto (ultrapassado). O problema ocorre quando este material é descartado no meio ambiente. Como estes equipamentos possuem substâncias químicas (chumbo, cádmio, mercúrio, berílio, etc.) em suas composições, podem provocar contaminação de solo e água.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;ul&gt;
    &lt;li&gt;Além do contaminar o meio ambiente, estas substâncias químicas podem provocar doenças graves em pessoas que coletam produtos em lixões, terrenos baldios ou na rua.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;ul&gt;
    &lt;li&gt;Estes equipamentos são compostos também por grande quantidade de plástico, metais e vidro. Estes materiais demoram muito tempo para se decompor no solo.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bom, já tem um bom tempo que utilizo servidores locais para estudos, meus testes e pequenos projetos. Abaixo está meu pequeno grande &lt;strong&gt;“monstrinho de Frankenstein”&lt;/strong&gt;, a história dele eu não faço idéia de como começou antes de ser encontrado, a muitos anos eu estava no interiror e um amigo meu tinha um galpão cheio de coisas eletrônicas sucateadas no canto, especificamente computadores e periféricos. Vasculhando as coisas eis que encontro esse laptop, sem bateria, sem memória RAM, sem HD e sem o LCD, acho que tinha a fonte também. Procurando mais, para suprir os periféricos que estavam faltando, encontrei HD, memória e um LCD de outro modelo que dava para adaptar nele, montando tudo a surpresa, a máquina estava boa, rodei vários testes e simplismente estava ótimo.&lt;/p&gt;

&lt;p&gt;Desde então fiz alumas adptações nele, como não trabalho com a parte física dele, tudo é via web ou terminal remoto, então ele fica paradinho aqui no canto. Eu rodo nele o &lt;a href=&quot;https://www.proxmox.com/en/&quot;&gt;Proxmox&lt;/a&gt;, que é uma solução em servidores open-source baseado em Debian muito legal, com ele você pode executar maquinas virtuais e conteiners.&lt;/p&gt;

&lt;p&gt;Até hoje ele funciona muito bem, nunca tive problemas com o hardware, fora o HD antigo que estava mais para lá do que para cá daí tive que substituir, fora isso ele roda perfeitamente com suas configurações singelas mas que me fornecem um bom ambinete para testes diversos com meus projetos.&lt;/p&gt;

&lt;p&gt;Por padrão o Proxmox já vem totalmente pronto para o uso, mas é claro que existem algumas coisas que prefiro alterar para um melhor aproveitamento dos recursos adpatado ao meu laptop antigo. Um exemplo é a confiuração do Storage, ele assume pouco espaço na partição princiapal onde ficará armazenadas as imagens e conteiners baixados, é claro o espaço em disco alocado na instalação dependerá do tamanho do seu HD.&lt;/p&gt;

&lt;p&gt;Mas isso pode ser facilmente revertido porque ele utiliza LVM, então será mamão com açucar alterar o tamanho dessas partições e assim aproveitar melhor o espaço em disco do seu jeito.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@solo:~# lsblk 
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk 
├─sda1 8:1 0 1007K 0 part 
├─sda2 8:2 0 512M 0 part /boot/efi
└─sda3 8:3 0 465.3G 0 part 
 ├─pve-swap 253:0 0 7G 0 lvm &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;SWAP]
 ├─pve-root 253:1 0 96G 0 lvm /
 ├─pve-data_tmeta 253:2 0 3.5G 0 lvm 
 │ └─pve-data 253:4 0 339.3G 0 lvm 
 └─pve-data_tdata 253:3 0 339.3G 0 lvm 
 └─pve-data 253:4 0 339.3G 0 lvm 

root@solo:~# &lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; /etc/pve/storage.cfg 
&lt;span class=&quot;nb&quot;&gt;dir&lt;/span&gt;: &lt;span class=&quot;nb&quot;&gt;local
 &lt;/span&gt;path /var/lib/vz
 content iso,vztmpl,backup

lvmthin: local-lvm
 thinpool data
 vgname pve
 content rootdir,images
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Na instalação básica ele vem com &lt;a href=&quot;https://pve.proxmox.com/wiki/Storage:_LVM_Thin&quot;&gt;LVM-Thin&lt;/a&gt;, que basicamente aloca dinamicamente o espaço que será ou não utilizado na VM, o provisionamento Thin ocupa apenas o que é usado, portanto, entre suas várias VMs, você poderia alocar a elas 50 GB de armazenamento total em uma unidade de 20 GB. mas você pode conferir mais profundamente sobre como o Thin funciona em sua &lt;a href=&quot;https://man7.org/linux/man-pages/man7/lvmthin.7.html&quot;&gt;documentação&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;É um ótimo recurso, pois ele fará o uso adequado do espaço em disco para cada VM, mas existem problemas com isso, se por acaso você notar que está havendo um aumento do armazenamento Thin então ações devem ser tomadas, como o uso do “Discard” e uma emulação de SDD no disco da VM, tudo isso está na documentação do Proxmox. Abaixo um exemplo de espaço usado em disco com duas VM de 32 GB cada: (1.72% (6.27 GB of 364.35 GB)&lt;/p&gt;

&lt;p&gt;Bom, particularmente prefiro desfazer o LVM-Thin e expandir a partição principal root alocando assim todo o espaço em disco dela.&lt;/p&gt;

&lt;p&gt;O título diz “Recriando servidor local” como disse antes, tive um problema com o HD dele e foi preciso recriar todo meu ambiente, a sorte que mantenho sempre um backup das VMs e conteiners bem guardados.&lt;/p&gt;
</description>
        <pubDate>Fri, 26 May 2023 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//recriando_servidor_opensource.html</link>
        <link href="http://localhost:4000/recriando_servidor_opensource.html"/>
        <guid isPermaLink="true">http://localhost:4000/recriando_servidor_opensource.html</guid>
      </item>
    
      <item>
        <title>RetroPie trazendo de volta tempos de ouro</title>
        <description>&lt;p&gt;Sempre fui muito fã de jogos antigos desde os clássicos para computador como os consoles antigos, desde muito novo no tempo em que o acesso à internet era bem difícil, tínhamos que buscar CD’s com amigos ou aquelas revistas de games que vinham com centenas de jogos demos.&lt;/p&gt;

&lt;p&gt;Como o computador que tinha em casa era muito fraquinho, nem me lembro qual a configuração exata dele mas coisa como 16MB de RAM 4GB de HD e um processador daquela época que não me recordo mais. Mesmo com tudo isso ainda conseguia rodar muito jogo legal que me tirava muitas horas de diversão.&lt;/p&gt;

&lt;p&gt;Mas o que despertou minha atenção foi quando eu conheci os emuladores de jogos de consoles, naquele tempo tinham as games(lan house) que cobravam por hora para jogar todos aqueles jogos. Meu primeiro contato com esses emuladores foi o &lt;a href=&quot;https://www.snes9x.com/&quot;&gt;Snes9x&lt;/a&gt; e que já vinha com centenas de jogos com o pacote e, rodava maravilhosamente bem em meu computador.&lt;/p&gt;

&lt;p&gt;Recentemente conheci o &lt;a href=&quot;https://retropie.org.uk/&quot;&gt;RetroPie&lt;/a&gt;, um projeto bem legal que leva o emulador de vários consoles num mesmo lugar, ele roda em &lt;a href=&quot;https://www.raspberrypi.org/&quot;&gt;Raspberry PI&lt;/a&gt; ou PC. Então transformei um laptop antigo com Ubuntu em um console bem legal e de forma rápida.&lt;/p&gt;

&lt;p&gt;Atualize os repositórios:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;user@np-350x:~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt update &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Instale os pacotes necessários para o RetroPie:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;user@np-350x:~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-y&lt;/span&gt; git dialog unzip xmlstarlet
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Agora utilizando o Git baixe a última versão do RetroPie:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;user@np-350x:~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git clone &lt;span class=&quot;nt&quot;&gt;--depth&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1 https://github.com/RetroPie/RetroPie-Setup.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Após baixado acesse o diretório:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;user@np-350x:~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;RetroPie-Setup
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Execute o script de instalação:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;user@np-350x:~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; ./retropie_setup.sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Note que após rodar o script ele iniciar o processo de instalação, logo em seguida surgirá a tela abaixo onde você escolhe a opção Basic install:&lt;/p&gt;

&lt;p&gt;Aguarde a compilação que deve demorar alguns minutos. Feito isso você terá o RetroPie instalado em sua máquina, agora você precisa baixar as roms e fazer as configurações de joypad ou keyboard.&lt;/p&gt;

&lt;p&gt;Quero fazer um projeto com um Raspberry PI Zero W o mais simples e barato do seguimento, com as configurações dele dá para rodar o RetroPie tranquilamente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fonte:&lt;/strong&gt; https://retropie.org.uk/&lt;/p&gt;
</description>
        <pubDate>Mon, 10 Apr 2023 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//retropie.html</link>
        <link href="http://localhost:4000/retropie.html"/>
        <guid isPermaLink="true">http://localhost:4000/retropie.html</guid>
      </item>
    
      <item>
        <title>LVM – Criando um HDD híbrido</title>
        <description>&lt;p&gt;Desde que passei a utilizar o lvm em meus computadores tudo se tornou possível, exagero meu? Não, com certeza o &lt;a href=&quot;https://wiki.ubuntu.com/Lvm&quot;&gt;lvm&lt;/a&gt; não é exagero quando se trata de desempenho e praticidade com a manipulação do seu filesystem. Recentemente realizei um update em meu desktop, que contarei depois aqui, então resolvi implementar uma solução ótima que o lvm proporciona. Em minhas pesquisas no uso de lvm conheci o &lt;a href=&quot;https://manpages.ubuntu.com/manpages/xenial/man7/lvmcache.7.html&quot;&gt;lvmcache&lt;/a&gt; - &lt;strong&gt;LVM caching&lt;/strong&gt;, que resumidamente, possibilita o uso de um disco rápido como cache para um disco mais lento.&lt;/p&gt;

&lt;p&gt;Lógico que usar somente um SSD como disco principal para seu sistema o resultado será muito superior, isso não tenho dúvida, embora as soluções em HDD híbidos no mercado são bem atraentes atualmente. Mas ai vem a velha questão, porque converter um HDD para híbrido se eu posso somente utilizar o SSD como disco principal e o HDD para meus dados, ou seja, minha partição /home ou backup, pensando no aproveitamento de espaço do disco mais lento não pensei duas vezes, então quis testar essa maravilha de recurso que o lvm me proporciona. Como eu já tinha um HD de 500G em meu desktop com meu sistema instalado e já configurado com lvm, só precisei adicionar o meu SSD que estava em uso no meu laptop.&lt;/p&gt;

&lt;p&gt;Como eu já havia criado uma partição no disco, no exemplo abaixo, meu retorno é esse:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# fdisk &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt; /dev/sdb
Disk /dev/sdb: 223,58 GiB, 240057409536 bytes, 468862128 sectors
Disk model: WDC WDS240G2G0B-
Units: sectors of 1 &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; 512 &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 512 bytes
Sector size &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;logical/physical&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: 512 bytes / 512 bytes
I/O size &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;minimum/optimal&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: 512 bytes / 512 bytes
Disklabel &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;: gpt
Disk identifier: 50E20E4E-0ACC-E646-81EA-8ADC8C466812

Device Start End Sectors Size Type
/dev/sdb1 2048 468862094 468860047 223,6G Linux LVM
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Agora irei criar a partição lvm e extender meu Volume Group com meu novo disco adicionado, o SSD.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# pvcreate /dev/sdb1

 Physical volume &lt;span class=&quot;s2&quot;&gt;&quot;/dev/sdb1&quot;&lt;/span&gt; successfully created.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# vgextend vgubuntu /dev/sdb1 

 Volume group &lt;span class=&quot;s2&quot;&gt;&quot;vgubuntu&quot;&lt;/span&gt; successfully extended
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Feito isso minha configuração fica assim:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# lsblk 

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 465,8G 0 disk 

├─sda1 8:1 0 512M 0 part /boot/efi

├─sda2 8:2 0 2G 0 part /boot

└─sda3 8:3 0 463,3G 0 part  

  ├─vgubuntu-home 253:2 0 300G 0 lvm /home

  |─vgubuntu-root 253:6 0 100G 0 lvm /

  ├─vgubuntu-swap 253:7 0 8G 0 lvm &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;SWAP]

  ├─vgubuntu-tmp 253:8 0 5G 0 lvm /tmp

  └─vgubuntu-var 253:9 0 50,3G 0 lvm /var

sdb 8:16 0 223,6G 0 disk 

└─sdb1 8:17 0 223,6G 0 part 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;De acordo com a documentação do lvmcache é dessa forma que ele trabalha:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“O tipo de volume lógico do cache usa um LV pequeno e rápido para melhorar o desempenho de um LV grande e lento. Ele faz isso armazenando os blocos  usados com frequência no LV mais rápido.&lt;/p&gt;

  &lt;p&gt;O LVM se refere ao pequeno LV rápido como um cache pool LV. O grande LV lento é chamado de origin LV. Devido aos requisitos do dm-cache (o driver do kernel), o LVM divide ainda mais o pool de cache LV em dois dispositivos - os dados de cache LV e os metadados de cache LV. Os dados do cache LV é onde as cópias dos blocos de dados são mantidas do origin LV para aumentar a velocidade. O cahe metadata LV contém as informações contábeis que especificam onde os blocos de dados estão armazenados (por exemplo, no origin LV ou nos dados de cache LV). Os usuários devem estar familiarizados com esses LVs se desejam criar os melhores e mais robustos volumes lógicos em cache. Tudos esses LVs associados devem estar no mesmo VG.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;===== Cache Terms =====&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;origin LV OriginLV large slow LV

cache data LV CacheDataLV small fast LV &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;cache pool data

cache metadata LV CacheMetaLV small fast LV &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;cache pool metadata

cache pool LV CachePoolLV CacheDataLV + CacheMetaLV

cache LV CacheLV OriginLV + CachePoolLV
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Deixando de conversa, vamos criar os LV necessários para o cache. Neste primeiro caso temos a criação do &lt;strong&gt;cache metadate LV&lt;/strong&gt;:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# lvcreate &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; lv_meta &lt;span class=&quot;nt&quot;&gt;-L&lt;/span&gt; 253M vgubuntu /dev/sdb1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Criando o &lt;strong&gt;cache data LV&lt;/strong&gt;:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# lvcreate &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; lv_cache &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt; 99%PVS vgubuntu /dev/sdb1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Perfeito com os dois LV criados, preciso agora combinar os dois criando um cache pool LV e também será preciso escolher o cache mode. Existem dois modos o padrão “writethrough” e o segundo “writeback”. No meu desktop eu irei utilizar o “writethrough” pois ele garante a gravação do dado sem correr o risco de perda, embora o “writeback” tenha um ganho de desempenho melhor mas não garante que o dado seja gravado em caso de uma queda de energia ou falha no disco.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# lvconvert &lt;span class=&quot;nt&quot;&gt;--type&lt;/span&gt; cache-pool &lt;span class=&quot;nt&quot;&gt;--cachemode&lt;/span&gt; writethrough &lt;span class=&quot;nt&quot;&gt;--poolmetadata&lt;/span&gt; vgubuntu/lv_meta vgubuntu/lv_cache
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Por fim vamos criar o cache, aqui estou atribuíndo o cache para minha partição /root onde os programas são instalados e executados:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# lvconvert &lt;span class=&quot;nt&quot;&gt;--type&lt;/span&gt; cache &lt;span class=&quot;nt&quot;&gt;--cachepool&lt;/span&gt; vgubuntu/lv_cache vgubuntu/root
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Consultando o lvdisplay tudo ficou assim:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# lvdisplay

&lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt; Logical volume &lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt;

LV Path /dev/vgubuntu/root
LV Name root
VG Name vgubuntu
LV UUID OHxRqF-ksyM-cBkU-GKyh-mscT-vNpz-PUICCN
LV Write Access &lt;span class=&quot;nb&quot;&gt;read&lt;/span&gt;/write
LV Creation host, &lt;span class=&quot;nb&quot;&gt;time &lt;/span&gt;kubuntu, 2021-06-26 12:49:02 &lt;span class=&quot;nt&quot;&gt;-0300&lt;/span&gt;
LV Cache pool name lv_cache_cpool
LV Cache origin name root_corig
LV Status available
&lt;span class=&quot;c&quot;&gt;# open 1&lt;/span&gt;
LV Size 200,00 GiB
Cache used blocks 1,15%
Cache metadata blocks 4,68%
Cache dirty blocks 0,00%
Cache &lt;span class=&quot;nb&quot;&gt;read &lt;/span&gt;hits/misses 65811 / 18405
Cache wrt hits/misses 23429 / 22394
Cache demotions 0
Cache promotions 6384
Current LE 51200
Segments 1
Allocation inherit
Read ahead sectors auto
- currently &lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;to 256
Block device 253:6
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Para remover o cache do lvm basta desabilitá-lo da partição que ele foi criado:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@c137:~# lvconvert &lt;span class=&quot;nt&quot;&gt;--uncache&lt;/span&gt; vgubuntu/root
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A pergunta é, ganhei algum desempenho com tudo isso? Sim notei um melhor desempenho em meu desktop, não tanto quanto no laptop, mas para ser justo o HD dele é muito lento mesmo, 5400rpm. Não fiz nenhum comparativo de desempenho ainda, é muito cedo e estou testando bastante, mas é claro que dá para notar a diferença se você conhece sua máquina.&lt;/p&gt;

&lt;p&gt;O lvmcache me ajudou a aproveitar o espaço dos meus HDDs. No mercado já existem soluções prontas para HDD híbrido sem que seja preciso toda essa configuração embora muito interessante e diga-se de passagem maravilhosa.&lt;/p&gt;

&lt;p&gt;Free Software is way!!&lt;/p&gt;
</description>
        <pubDate>Sat, 25 Mar 2023 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//lvm_criando_hdd_hibrido.html</link>
        <link href="http://localhost:4000/lvm_criando_hdd_hibrido.html"/>
        <guid isPermaLink="true">http://localhost:4000/lvm_criando_hdd_hibrido.html</guid>
      </item>
    
      <item>
        <title>Finalmente, um shell de linha de comando para os anos 90</title>
        <description>&lt;p&gt;Passei a utilizar o &lt;a href=&quot;https://fishshell.com/&quot;&gt;Fish Shell&lt;/a&gt; como padrão, o que é legal neste shell interativo é sua facilidade de utilização e todos os recursos disponíveis nele como a auto-sugestão. Ele está disponível para download na maioria dos repositórios das distribuições Linux, mas para obter a última versão é aconselhável baixar e instalar via PPA ou o pacote deb no &lt;a href=&quot;https://launchpad.net/~fish-shell/+archive/ubuntu/release-3/+packages&quot;&gt;Launchpad&lt;/a&gt;, na documentação você pode encontrar como realizar esse procedimento.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;user@np-350x~&amp;gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-add-repository ppa:fish-shell/release-3

user@np-350x~&amp;gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt update

user@np-350x~&amp;gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;fish
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Aprendi a gostar do Fish muito rápido e realmente ele me ajuda muito, além de ser bem fácil de configurar, claro ainda estou descobrindo muita coisa. Ele possui uma página web de configuração onde é possível definir algumas coisas como cor, estilo do prompt, suas funções, ver o histórico do shell e etc.&lt;/p&gt;

&lt;p&gt;Eu defini o Fish como meu shell padrão no sistema, mas caso queira utilizar em paralelo com o bash basta digitar fish no terminal e ele será utilizado enquanto estiver com a sessão aberta. A maneira que usei para defini-ló como padrão foi alterar a linha 40 do /etc/passwd, onde está bash alterei para fish, se você utiliza o Ubuntu Mate nas configurações de usuários, no modo avançado dá para mudar o shell padrão.&lt;/p&gt;

&lt;p&gt;Para acessar a página de configuração web digite:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;user@np-350x~&amp;gt; fish_config
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Essa é a tela de configurações web que será aberta no browser:&lt;/p&gt;

&lt;p&gt;Existe outras coisas bem legais que podem ser feitas com o Fish, como definir frases e textos engraçados ou desenhos quando o shell é iniciado. Bom isso é mais perfumaria mas é bem legal ir a fundo e configurar a seu gosto, para incluir essa funcionalidade vamos usar a função &lt;a href=&quot;https://fishshell.com/docs/current/cmds/fish_greeting.html#cmd-fish-greeting&quot;&gt;fish_greeting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Primeiro vamos acessar o caminho etc/fish/config.fish e vamos chamar nossa função, por padrão na documentação já tem um código pronto que é só copiar e colar. Como quero utilizar frases e desenhos na chamada da função estou utilizando dois recursos chamados de &lt;a href=&quot;https://wiki.debian.org/fortune&quot;&gt;fortune&lt;/a&gt; e &lt;a href=&quot;https://helpmanual.io/man6/cowsay&quot;&gt;cowsay&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instale os dois com o comando abaixo, caso ainda não tenha instalado:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;user@np-350x~&amp;gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;fortunes cowsay
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;O Fortune é uma coleção de frases, textos e piadas dos desenvolveres e o Cowsay são desenhos interativos em ASCII e podem ser usados juntos para gerar imagen e texto. Abaixo tem o código que usei para para gerar uma frase e desenho em modo aleatório.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;function &lt;/span&gt;fish_greeting
    &lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;Hi friend!!!
    &lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;The &lt;span class=&quot;nb&quot;&gt;time &lt;/span&gt;is &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;set_color yellow&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;date&lt;/span&gt; +%T&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; set_color normal&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; and this machine called &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;hostname&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;Uptime: &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;uptime&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;

    &lt;span class=&quot;nb&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt; teste &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;random choice &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;tux, vader, gnu, suse&lt;span class=&quot;o&quot;&gt;})&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;which fortune &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; /dev/null ^ /dev/null
        fortune &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; | cowsay &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$teste&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;else
        &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;Algo de errado não está certo....
    end
end
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Agora toda vez que abrir o terminal ou executar o fish será retornado uma frase e desenho aleatório. Fish Shell é bem legal!&lt;/p&gt;
</description>
        <pubDate>Thu, 16 Feb 2023 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//fish_shell.html</link>
        <link href="http://localhost:4000/fish_shell.html"/>
        <guid isPermaLink="true">http://localhost:4000/fish_shell.html</guid>
      </item>
    
      <item>
        <title>Gravando pendrive bootavél com DD</title>
        <description>&lt;p&gt;Existem várias ferramentas para para criação de pendrive bootavél e/ou para criar imagens, mas nada melhor 
que o bom e velho DD que na verdade, é uma ferramenta muito poderosa para copiar e converter arquivos. Nesse caso estou utilizando para criar um pendrive de boot do &lt;a href=&quot;https://kubuntu.org/&quot;&gt;Kubuntu&lt;/a&gt;, primeiro baixe a imagem .iso no site da distribuição.&lt;/p&gt;

&lt;p&gt;Vamos localizar o pendrive conectado na máquina:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@np-350X:~# fdisk &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt;
Disco &amp;lt;wrap hi&amp;gt;/dev/sdc: 3,63 GiB&amp;lt;/wrap&amp;gt;, 3880452096 bytes, 7579008 setores
Disk model: USB DISK 2.0
Unidades: setor de 1 &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; 512 &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 512 bytes
Tamanho de setor &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;lógico/físico&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: 512 bytes / 512 bytes
Tamanho E/S &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;mínimo/ótimo&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: 512 bytes / 512 bytes
Tipo de rótulo &lt;span class=&quot;k&quot;&gt;do &lt;/span&gt;disco: dos
Identificador &lt;span class=&quot;k&quot;&gt;do &lt;/span&gt;disco: 0x15f006ae
Dispositivo Inicializar Início Fim Setores Tamanho Id Tipo
/dev/sdc1 &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; 0 5303231 5303232 2,5G 0 Vazia
/dev/sdc2 4222640 4230575 7936 3,9M ef EFI &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;FAT-12/16/32&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
/dev/sdc3 5304320 7579007 2274688 1,1G 83 Linux
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;No meu caso irei utilizar o dispositivo &lt;strong&gt;/dev/sdc&lt;/strong&gt;.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@np-350X:~# &lt;span class=&quot;nb&quot;&gt;dd &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;kubuntu-20.04-desktop-amd64.iso &lt;span class=&quot;nv&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/dev/sdc &lt;span class=&quot;nv&quot;&gt;bs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;4M &lt;span class=&quot;nv&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;progress &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;sync
&lt;/span&gt;2353004544 bytes &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2,4 GB, 2,2 GiB&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; copiados, 350 s, 6,7 MB/s
561+1 registros de entrada
561+1 registros de saída
2354036736 bytes &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2,4 GB, 2,2 GiB&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; copiados, 349,845 s, 6,7 MB/s
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Finalizado o processo agora é só realizar um teste, reiniciar a máquina e iniciar a partir do pendrive.&lt;/p&gt;

&lt;p&gt;Os parâmetros usados no comando acima:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;bs&lt;/strong&gt; = Defina os tamanhos dos blocos de entrada e saída como bytes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;status&lt;/strong&gt; = Com a inclusão do “progress” você pode acompanhar o progresso da cópia.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;sync&lt;/strong&gt; = Permite copiar tudo usando E / S sincronizada.&lt;/p&gt;

&lt;p&gt;Você pode consultar mais com dd –help, no man dd ou na documentação da ferramenta neste &lt;a href=&quot;https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html#dd-invocation&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Thu, 09 Feb 2023 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//gravando_pendrive_dd.html</link>
        <link href="http://localhost:4000/gravando_pendrive_dd.html"/>
        <guid isPermaLink="true">http://localhost:4000/gravando_pendrive_dd.html</guid>
      </item>
    
      <item>
        <title>ADBlock Pi - Dando adeus às propagandas</title>
        <description>&lt;p&gt;Nada pior do que esses malditos pop-up de propagandas estampando sua tela sempre que você visita um site ou clica em algum link, mas para isso existem várias extensões para os navegadores atuais que possibilitam o bloqueio dessas propagandas. A questão é que essas extensões podem sempre trazer algo a mais do que sua finalidade proposta, como sempre são ferramentas gratuitas, mas existe um preço por isso e seus dados de acesso podem ser o preço a ser pago, não que isso seja algo ruim ou invasivo para algumas pessoas, mas eu prefiro que meus dados permaneçam comigo onde é o seu lugar.&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Com toda essa treta que não estou a fim de entrar em detalhes, para solucionar nossos problemas existe o [[https://pi-hole.net/&lt;/td&gt;
      &lt;td&gt;Pi-Hole]] no qual já havia testado algumas vezes em minha rede doméstica, porém nunca coloquei para rodar definitivamente. Andei fazendo algumas mudanças em minhas máquinas como upgrades já necessários, então meu laptop antigo (Frankenstein) ganhou uma função bem legal onde se tornou um servidor de máquinas virtuais e serviços. Como preciso acessar o ambiente da firma para trabalhar ele me ajuda muito com uma maquina já configurada nele, assim não vou consumir os recursos do meu desktop com máquina virtual, nele também hospedo minha nuvem local e o Pi-Hole dentre outras maquinas para testes.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;O Pi-Hole como no site diz: &lt;strong&gt;“É um sumidouro de DNS que protege seus dispositivos de conteúdo indesejado, sem instalar nenhum software do lado do cliente.”&lt;/strong&gt;, pela tradução direta by Google. O processo de instalação dele é mais do que simples, &lt;a href=&quot;https://docs.pi-hole.net/main/basic-install/&quot;&gt;veja a ducumentação&lt;/a&gt;. No meu caso eu criei um conteiner LXC com Ubuntu Server 20.04 e executei o script de instalação:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@anton:~# curl &lt;span class=&quot;nt&quot;&gt;-sSL&lt;/span&gt; https://install.pi-hole.net | bash
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Agora pronto só aguardar a finalização da instalação, claro no meio do caminho ele vai pedir para configurar algumas coisas, como nome da máquina, ip estático ou dinâmico, algum serviço de DNS que ele te dará opções de escolha e outras coisitas a mais, nada de tão misterioso assim.&lt;/p&gt;

&lt;p&gt;Terminado o processo de instalação você vai acessar via browser com o ip que você configurou na instalação o painel admisnitrativo do Pi-Hole. Depois que fizer o login verifique se o serviço está ativo, agora você pode realizar um teste em sua rede interna mudando o DNS do seu roteador, ou você pode testar na sua maquina antes, no meu caso eu testei logo na rede.&lt;/p&gt;

&lt;p&gt;Então é isso, estou pesquisando mais sobre as funcionalidades e listas de bloqueios para implementar no meu servidor, lembrando que Youtube é fracasso pois os domínios das propagandas mudam bastente então, sem sucesso, mas no restante é adeus às propagandas.&lt;/p&gt;

&lt;p&gt;Minha configuração foi realizada em um laptop que nunca desligo, porém o ideal mesmo é que seja feito em um Raspberry Pi por conta da sua disponibilidade. Lembre-se que se seu servidor desligar o acesso a internet se vai junto com ele pois no roteador só terá um servidor DNS configurado.&lt;/p&gt;

&lt;p&gt;Faça bom uso do Pi-Hole cool 8-). . .&lt;/p&gt;
</description>
        <pubDate>Thu, 12 Jan 2023 00:00:00 -0300</pubDate>
        <link>http://localhost:4000//adblock_pi.html</link>
        <link href="http://localhost:4000/adblock_pi.html"/>
        <guid isPermaLink="true">http://localhost:4000/adblock_pi.html</guid>
      </item>
    
  </channel>
</rss>
