<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ROGE 🇧🇷</title>
    <description>The latest articles on Forem by ROGE 🇧🇷 (@roge).</description>
    <link>https://forem.com/roge</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1080485%2Ffe1164f0-f6e0-4ba0-b526-f146496579a1.jpeg</url>
      <title>Forem: ROGE 🇧🇷</title>
      <link>https://forem.com/roge</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/roge"/>
    <language>en</language>
    <item>
      <title>101.1 Indetificar e editar configurações de Hardware - Ativação do dispositivo.</title>
      <dc:creator>ROGE 🇧🇷</dc:creator>
      <pubDate>Fri, 29 Dec 2023 16:20:41 +0000</pubDate>
      <link>https://forem.com/roge/1011-indetificar-e-editar-configuracoes-de-hardware-ativacao-do-dispositivo-19n1</link>
      <guid>https://forem.com/roge/1011-indetificar-e-editar-configuracoes-de-hardware-ativacao-do-dispositivo-19n1</guid>
      <description>&lt;p&gt;Toda arquitetura de computadores depende do hardware, essas peças que compõe todos os computadores - conhecidos também como periféricos - entradas USB, HDMI, Bluetooth e assim por diante.&lt;br&gt;
Para o bom funcionamento dessas peças é necessário seguir regras e padrões de arquitetura de computadores, ou seja, o sistema operacional precisa estar preparado para suportá-las, por exemplo, ele precisa identificar que em uma determinada entrada USB endereçada em um certo local do computador é um Mouse ou um Teclado. Mas além disso, padrões ajudam no momento de realizar manutenções ou até mesmo adição de um novo hardware.&lt;br&gt;
Apesar de os computadores modernos dificilmente ser necessário realizar manutenções tão específicas, ainda existem momentos em que se fazem necessários.&lt;/p&gt;

&lt;p&gt;Mesmo sem um sistema operacional integrado ao computador, é possível realizar essas manutenções de hardware. Isso porque, ao inicializar o computador existe um utilitário de configurações implementado pelo que conhecemos como BIOS (Basic Input/Output System) - em janeiro de 2007 as arquiteturas x86 começaram a usar uma nova implementação chamada UEFI (Unified Extensible Firmware Interface) com recursos mais sofisticados, porém comumente ainda se usa a nomenclatura BIOS - o computador ao ser inicializado sugere quais teclas devem ser pressionadas para ter acesso ao utilitário, podendo variar dependendo do computador.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ativando o utilitário:&lt;/strong&gt;&lt;br&gt;
Para ativar o utilitário de configuração em sua maioria se usam as teclas F2, F12 ou Del, como já mencionado, varia de computador, podendo ser outra tecla, sendo que o computador irá mostrar no momento da inicialização.&lt;br&gt;
No utilitário é possível ativar e desativar periféricos, proteções básicas contra erros, alterar configurações de hardware como o IRQ (Interrupt Request) - funcionalidade que emite um sinal de interrupção no momento em que finaliza alguma tarefa - e DMA (Direct Memory Access) - um método em que o dispositvo de hardware acessa a memória economizando o uso do processador.&lt;br&gt;
Nesse artigo já menciono que é raro a necessidade de mexer nessas configurações, em alguns momentos muito específicos se faz necessário, um exemplo são as taxas de transferência de dados de memória RAM (Random-Access Memory), onde existem tecnologias modernas que fazem dessas taxas de transferência mais rápidas do que as padrões, sendo recomendado pelo fabricando alterar os valores. Também existem casos onde a CPU disponibiliza recursos que em determinados casos não são necessários, podendo desativá-los, reduzindo consumo de energia, melhorando proteção do sistema pois se algum recurso contém algum bug conhecido, pode ser desativado.&lt;br&gt;
Importante ressaltar, que em caso de o computador estiver com diversos dispositivos de armazenamento, definir qual deles está com o carregador de inicialização correto, sendo o primeiro na ordem de inicialização, pois o sistema operacional se o dispositivo incorreto aparecer por primeira na ordem de inicialização.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Gostou do conteúdo?&lt;br&gt;
Tem alguma dúvida sugestão ou correção?&lt;br&gt;
Vou ficar feliz em saber!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>lpic</category>
      <category>hardware</category>
      <category>bios</category>
    </item>
    <item>
      <title>LPIC-1: Tópico 101 - Arquitetura de Sistemas</title>
      <dc:creator>ROGE 🇧🇷</dc:creator>
      <pubDate>Wed, 20 Dec 2023 14:25:01 +0000</pubDate>
      <link>https://forem.com/roge/lpic-1-topico-101-arquitetura-de-sistemas-5deo</link>
      <guid>https://forem.com/roge/lpic-1-topico-101-arquitetura-de-sistemas-5deo</guid>
      <description>&lt;p&gt;A partir de hoje estou começando uma série sobre o que venho estudando sobre o LPIC-1 a fim de me preparar para o exame. Com isso, a intenção desta série - além de me preparar - é conseguir identificar o que compreendi e o que ainda falta eu compreender.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o LPIC?
&lt;/h2&gt;

&lt;p&gt;O LPIC (Linux Professional Institute Certification) é um exame para certificação linux que valida habilidades dos candidatos com manutenção em sistemas linux.&lt;br&gt;
Existem 2 exames, o LPIC-1 e o LPIC-2, ambos abordam diferentes contextos de sistemas linux e o material para estudá-los é fornecido pelo próprio instituto.&lt;/p&gt;

&lt;h3&gt;
  
  
  LPIC-1
&lt;/h3&gt;

&lt;p&gt;Para estar apto ao LPIC-1 precisa compreendar alguns temas no qual o próprio material são abordados, que são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arquitetura de sistema:&lt;/strong&gt; Entender sobre o Kernell linux, como o software se comunica com o hardware, onde ficam seus diretórios e arquivos além de saber identificar possíveis problemas durante execução e ter noções para realizar manutenção de alguma falha.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Instalação Linux e Gerenciamento de Pacotes:&lt;/strong&gt; Saber como se faz instalação do linux e de suas distribuições e gerenciar os pacotes que mantém o sistema operacional.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GNU e Comandos Unix:&lt;/strong&gt; O GNU é acrônimo recursivo (GNU's Not Unix) que seria um sistema operacional do tipo Unix open source. Os comandos Unix são programas - utilitários - que rodam através de linhas de comando via terminal - prompt de comando - e realizam instruções como criar pastas, navegar entre elas dentre outras muitas. Esses comandos são muito importantes para utilizar sistemas linux.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dispositivos, Arquivos de Sistemas Linux, Hierarquia Padrão dos Arquivos de Sistema:&lt;/strong&gt; Criar partições e arquivos do sistema e realizar manutenções de integridade dos arquivos do sistema. Montar e desmontar (mount and unmounting) partições do sistema, gerenciar permissões e proprietários de arquivos e diretórios, conhecer os links simbólicos sabendo como mudá-los e criá-los. Encontrar arquivos do sistema e colocá-los nos lugares corretos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Além dos temas abordados, é possível realizar exercícios prévios antes de realizar o exame, além disso, enquanto estuda é possível realizar testes para fixar compreensão.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dicas
&lt;/h2&gt;

&lt;p&gt;Existem alguns comandos que são perigosos de se executar na máquina local, pois fazem tarefas de desabilitar e habilitar módulos importantes do Kernell, podendo ser danosos. Caso - assim como eu - tenha curiosidade e queira executá-los, usar uma máquina virtual como o VirtualBox ou correlatos.&lt;/p&gt;

&lt;h2&gt;
  
  
  E o LPIC-2?
&lt;/h2&gt;

&lt;p&gt;Não cheguei a ler o resumo sobre este material e como meu objetivo primário é o LPIC-1, vou deixar pra uma próximo.&lt;br&gt;
Mas é possível conferir &lt;a href="https://www.lpi.org/our-certifications/lpic-2-overview/" rel="noopener noreferrer"&gt;aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Gostou do conteúdo?&lt;br&gt;
Tem alguma dúvida sugestão ou correção?&lt;br&gt;
Vou ficar feliz em saber!&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.lpi.org/our-certifications/lpic-1-overview/" rel="noopener noreferrer"&gt;https://www.lpi.org/our-certifications/lpic-1-overview/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://pt.wikipedia.org/wiki/GNU" rel="noopener noreferrer"&gt;https://pt.wikipedia.org/wiki/GNU&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>#100DaysOfCode: Dia 9 - Trabalhando com Arquivos.</title>
      <dc:creator>ROGE 🇧🇷</dc:creator>
      <pubDate>Thu, 06 Jul 2023 22:15:36 +0000</pubDate>
      <link>https://forem.com/roge/100daysofcode-dia-9-trabalhando-com-arquivos-3c2a</link>
      <guid>https://forem.com/roge/100daysofcode-dia-9-trabalhando-com-arquivos-3c2a</guid>
      <description>&lt;p&gt;Manipulação de arquivos não me pareceu ser algo trivial quando se trata de desenvolvimento de softwares, pois com os bancos de dados facilitando armazenamento de dados, seria muito mais trabalhoso lidar com arquivos.&lt;br&gt;
Mas ainda sim, vejo suma importância nesses conceitos, pois há muitos arquivos ainda que precisam de manipulação, além de ser uma ótima maneira de brincar um pouco para treinar conhecimentos.&lt;/p&gt;

&lt;p&gt;Hoje vi 3 classes para lidar com arquivos: File, FileReader e BufferedReader. Ambas tem suas peculiaridades e similaridades, irei abordar as que achei mais interessante.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;File:&lt;/strong&gt; É uma representação abstrata de um arquivo ou um diretório. Cada sistema operacional opera de maneira diferente para lidar com seus diretórios e arquivos, por exemplo:&lt;br&gt;
O &lt;em&gt;Linux&lt;/em&gt;, para fazer buscas de seus arquivos e pastas usa a barra normal '/': &lt;em&gt;meuDiretorio/meu-arquivo.txt&lt;/em&gt;. Já o Windows faz o uso da barra invertida '\' para ter o mesmo resultado: &lt;em&gt;meuDiretorio\meu-arquivo.txt&lt;/em&gt;.&lt;br&gt;
O termo usado para essas diferenças é &lt;em&gt;system dependent&lt;/em&gt; (dependendo do sistema).&lt;br&gt;
O que a classe file faz é conseguir lidar com essas diferenças independente do sistema (&lt;em&gt;system independent&lt;/em&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;FileReader:&lt;/strong&gt; FileReader faz a leitura de uma sequencia de caracteres, lendo apenas 1 caracter por vez. Através do construtor, da mesma maneira como é feito com a classe &lt;em&gt;File&lt;/em&gt;, menciona-se o caminho do arquivo que irá fazer a leitura.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;BufferedReader:&lt;/strong&gt; Faz a leitura em blocos de caracteres, suportando uma maior quantidade de caracteres com isso diminuindo o uso de recursos de discos do computador, que consequentemente, melhora o desempenho.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vendo apenas os exemplos, fiquei confuso de qual a diferença entre eles, vendo que eu consigo fazer a leitura em todos eles, me pareceu redundante haver tantas classes para um mesmo resultado.&lt;br&gt;
Lendo as documentações oficiais da Oracle percebi que há muitas diferenças e irei mencionar as que acredito ter compreendido melhor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Flexibilidade:&lt;/strong&gt; A classe &lt;em&gt;File&lt;/em&gt; é mais flexível, podendo realizar diversas operações, muito além de apenas leituras de texto.&lt;br&gt;
Com o &lt;em&gt;File&lt;/em&gt; é possivel criar pastas, criar arquivos, deletar e escrever em arquivos, por exemplo.&lt;br&gt;
Já as classes &lt;em&gt;FileReader&lt;/em&gt; e &lt;em&gt;BufferedReader&lt;/em&gt;, essas sim, são  apenas para a leitura de arquivos de texto e ambos são usados em conjunto, e o motivo para isso é a diferença de número 2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Performance:&lt;/strong&gt; O &lt;em&gt;FileReader&lt;/em&gt; realiza a leitura de uma caracter por vez, prejudicando muito a performance, além de, como já mencionando anteriormente, consumindo muito espaço em disco, por isso ele é usado em conjunto com o &lt;em&gt;BufferedReader&lt;/em&gt;. O &lt;em&gt;BufferedReader&lt;/em&gt; resolve exatamente esses problemas, lendo uma grande quantidade de sequência de caracteres, dividindo por blocos.&lt;br&gt;
Então para apenas para a leitura de arquivos, não há necessidade de uso da classe &lt;em&gt;File&lt;/em&gt;, feriria o princípio de melhorar a performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;É possivel fazer a leitura de texto usando apenas o FileReader?&lt;/strong&gt;&lt;br&gt;
Sim, mas leituras de arquivos geralmente vão ter um grande fluxo de caracteres, e o &lt;strong&gt;FileReader&lt;/strong&gt; não performa muito bem fazendo isso de maneira independente, por conta disso, geralmente, vão ser visto exemplos de uso conjunto entre FileReader e BufferedReader.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fontes:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.lang.String)" rel="noopener noreferrer"&gt;https://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.lang.String)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.oracle.com/javase/7/docs/api/java/io/FileReader.html#FileReader(java.lang.String)" rel="noopener noreferrer"&gt;https://docs.oracle.com/javase/7/docs/api/java/io/FileReader.html#FileReader(java.lang.String)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.oracle.com/javase/10/docs/api/java/io/BufferedReader.html" rel="noopener noreferrer"&gt;https://docs.oracle.com/javase/10/docs/api/java/io/BufferedReader.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Gostou do texto?&lt;br&gt;
Tem alguma dica, correção ou sugestão?&lt;br&gt;
Por favor, fique a vontade para revisar e pontuar qualquer erro ou confusão que possa ter acontecido, ficarei feliz em corrigir.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>100daysofcode</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
