Escolar Documentos
Profissional Documentos
Cultura Documentos
qualquer distribuição
INTRODUÇÃO
O Arch Linux é uma distribuição rolling release que encanta pelo seu vasto
repositório, mas que põe medo em muitos, por sua fama de "distro para usuários
avançados".
Que o Arch é uma distro muito versátil todos nós já sabemos, e por conta disso
podemos adaptar o sistema para os mais diversos cenários, inclusive para ser
um sistema de bolso, num pendrive.
A não muito tempo atrás ajudei um amigo a criar um pendrive com o Arch Linux
instalado, e procurando na internet, não achei muito conteúdo sobre essa
operação, muito menos sobre fazer direto de um terminal do Arch. Sendo assim,
venho trazer no VOL um método de realizar esse processo, sem muita
complicação.
ESCLARECIMENTOS
O artigo foi escrito para pendrives iniciarem em dispositivos UEFI. Mas o que vai
diferenciar a instalação para BIOS e UEFI é justamente a criação da partição
EFI, e também a instalação do Grub para um ou outro. Sendo assim, sinta-se
livre para adaptar à sua necessidade. Está contido o processo para instalação do
Grub Bios na documentação do Arch.
É importante salientar que para instalar o Arch Linux e tudo que é necessário,
recomendo um pendrive de no mínimo 16GB, porém um de 8GB já consegue
suportar algumas poucas coisas e pode ser o suficiente para alguns, é relativo
ao uso que você vai destinar ao aparato.
Primeiro devemos criar as partições no nosso pendrive, sendo elas: uma para
efi, uma para swap e a partição raiz, onde vai ficar o sistema e nossos arquivos.
Utilize o gparted ou o cfdisk para criar as três partições. A partição efi deve ter no
mínimo 260MB, e recomendo colocar 2GB para a partição de swap, porém, se
tiver apenas um pendrive de 8GB disponível, coloque 1GB para swap. A partição
efi deve ser criada em FAT ou FAT32, e as outras duas em ext4.
Observações:
■ o nome do pendrive e o nome das partições pode variar pra você, então
# fdisk -l
# mkfs.vfat /dev/sdb1 -I
# mkswap /dev/sdb2
# swapon /dev/sdb2
# mkfs.ext4 /dev/sdb3
# lsblk /dev/sdb
Primeiro, é necessário baixar a imagem bootstrap do Arch Linux. Para isso, entre
num dos espelhos do site do Arch, ou acesse diretamente o link:
■ http://br.mirror.archlinux-br.org/iso/latest/
# cd /tmp/root.x86_64
# cp /etc/resolv.conf etc/
# mount -t proc /proc proc/
# mount --rbind /sys sys/
# mount --rbind /dev dev/
# mount --rbind /run run/
# pacman-key --init
# pacman-key --populate archlinux
A partir do ambiente Arch que acabamos de criar, você pode utilizar o mesmo
procedimento para Arch Linux e distros Arch-based.
ARCH-BASED
# nano /mnt/etc/fstab
# arch-chroot /mnt
# nano /etc/pacman.conf
include = /etc/pacman.d/mirrorlist
# pacman -Sy
# nano /etc/locale.gen
# locale-gen
# nano /etc/vconsole.conf
KEYMAP=br-abnt2
8. Configurar o fuso-horário:
# ls /usr/share/zoneinfo/America
# pacman -S intel-ucode
# mkinitcpio -p linux
12. Baixe e instale o GRUB. Para baixar:
# pacman -S grub
# mkdir /boot/efi
# mount /dev/sdb1 /boot/efi
Instale o GRUB:
# passwd
# nano /etc/sudoers
# umount /mnt
Quando você iniciar o sistema contido no pendrive, pode ativar a conexão com a
internet rodando o comando dhcpcd (ethernet) ou nmtui (wireless).
FONTES
/ETC/FSTAB E MOUNT
1. /etc/fstab:
tipo do filesystem;
opções);
se usa 0);
■ O pass (se vai rodar um fsck toda vez que inicia o sistema, o / sempre
mount -a
Monta tudo que esta dentro do /etc/fstab - com a opção (auto) setada.
df -Th
■ defaults (contem um grupo de opções, que são: rw, suid, dev, exec,
mount (rodando apenas esse comando ele mostra apenas as partições que
estão montadas)
mount | grep sd
/dev/sda1 on / type ext4
(rw,relatime,errors=remount-ro,data=ordered)
/dev/sdb1 on /opt/montagem type ext4
(rw,relatime,data=ordered)
montagem;
com -a).
Faça:
blkid
/dev/sda1: UUID="4d8a74e7-adfe-440e-8f10-050e48099a93"
TYPE="ext4" PARTUUID="c0b6c47f-01"
/dev/sda5: UUID="9261dd6f-5839-4d26-8f56-6fe73575dbb6"
TYPE="swap" PARTUUID="c0b6c47f-05"
/dev/sdb1: UUID="0849ccae-5119-4542-994b-f51a81c06af5"
TYPE="ext4" PARTUUID="5bf7c908-01"
Vimos até o momento que as partições são montadas com base nas informações
do arquivo /etc/fstab. Mas existe uma outra forma de se fazer isso, usando o
systemd para gerenciar pontos de montagem.
cd /etc/systemd/system
[Unit]
Description=Ponto de Montagem Teste
[Mount]
What=/dev/sdb1
Where=/opt/montagem
Type=ext4
Options=defaults
[Install]
WantedBy=multi.user.target
df -Th
Sist. Arq. Tipo Tam. Usado Disp. Uso%
Montado em
udev devtmpfs 487M 0 487M 0%
/dev
tmpfs tmpfs 100M 3,1M 97M 4%
/run
/dev/sda1 ext4 19G 4,6G 14G 26% /
tmpfs tmpfs 499M 0 499M 0%
/dev/shm
tmpfs tmpfs 5,0M 0 5,0M 0%
/run/lock
tmpfs tmpfs 499M 0 499M 0%
/sys/fs/cgroup
tmpfs tmpfs 100M 0 100M 0%
/run/user/1000
/dev/sdb1 ext4 4,9G 20M 4,6G 1%
/opt/montagem
CONCLUSÃO
INTRODUÇÃO
Busca realizada no diretório /home, para qualquer arquivo que possua "rquivo".
Como retorno obteve-se 4 arquivos.
Caso você queira conhecer melhor o comando find, utilize o manual da seguinte
forma:
man find
Contextualizando
As distribuições Linux, ao longo do tempo, vem melhorando e criando métodos para
facilitar a instalação de pacotes no Linux. Gerenciadores de pacotes, bem como: apt
e yum, são exemplos legados dessas mudanças. Atualmente, existem projetos
que visam a universalização do modo e distribuição de programas para os
sistemas Linux. Entre eles, destaco o Snap e Flatpak; Canonical e Red Hat como
mantenedoras, respectivamente.
Entretanto, vão aparecer situações onde você não terá nenhuma dessas opções
disponíveis… pois alguns desenvolvedores de softwares disponibilizam seus
programas diretamente pelo código-fonte (source) – que por sinal era, nos
primórdios, o único método utilizado para instalação de programas no Linux
(algumas distribuições ainda mantêm essa técnica com frequência).Em resumo,
você tem acesso a um arquivo compactado no formato .tar.gz (maioria das vezes),
contendo o código-fonte do programa, e a instalação consiste em compilar e
instalar os executáveis gerados na máquina.
Mas por quê ainda se preocupar com isso se existem pacotes pré-compilados
para instalação?!
SAIBA MAIS
SAIBA MAIS
Por outro lado, um problema, em compilar e instalar programas a partir dos fontes, é
que o processo é demorado e, para muitos, nem sempre simples. É preciso ter
instalado uma grande quantidade de compiladores e bibliotecas, necessários para
compilar os mais diversos programas. E isso causa bastante dificuldade para os
usuários, principalmente iniciantes.
Em 4 passos…
Resumindo o processo de instalação de programas disponibilizados a partir do
código-fonte, informo que o mesmo se dá em 4 passos:
3- Compilar;
4- Instalar;
DETALHES
cd pidgin-2.11.0
😉
Makefile, entre outros arquivos. Essa estrutura garante um programa distribuído
a partir do código-fonte (source) Por isso, nem todo arquivo “tar.gz”
significará um programa distribuído dessa forma; poderá ser apenas um arquivo
compactado.
SAIBA MAIS
2- Resolver dependências
Esta etapa pode ser considerada a mais “complexa” do processo, pois caso as
dependências necessárias, da aplicação, não sejam atendidas o código-fonte não
poderá ser compilado e instalado, futuramente. E cada aplicação possui um leque
diferente de dependências.
No caso do programa Pidgin existem algumas dependências que precisam ser
resolvidas – ou seja pacotes que já precisam estar instalados no sistema, pois caso
contrário dará erro no processo!
./configure
😉
pacotes. Execute ./configure quantos vezes for preciso até que você não veja
mais erros
No meu caso (com o openSUSE Tumbleweed instalado), tive alguns erros que
avisaram a ausência de alguns pacotes. Portanto, segue lista de todos os pacotes
que foi precisa instalar no meu ambiente de testes:
AVISO
3- Compilação
make
😉
Certifique-se de que a saída não exibirá quaisquer erros antes de continuar para o
próximo passo
4- Instalação
Pronto… não tendo apresentado nenhum erro até agora, você precisa instalar o
programa. Basta executar sudo make install. Este passo move todos os binários
em seu local correto no seu sistema para que o programa fique pronto para usar:
Programa instalado!!
Mas, se você desejar remover o programa, que acabou de instalar, basta entrar no
diretório que você instalou o programa e executar os 2 comandos abaixo:
Por fim, informo que para instalar a maioria dos programas a partir do código-fonte
(source), você passará pelas mesmas situações do exemplo. Contudo, com
algumas diferenças das mostrados aqui. Por exemplo, você pode precisar usar
cmake em vez de make. Por isso, sempre leia o arquivo “README” contido no
😉
diretório de cada programa!! Além dele, normalmente, existe o arquivo “Install”
também
Compilação do Kernel
INTRODUÇÃO
# uname -r
# uname -a
INSTALAÇÃO
■ Particionar manualmente;
■ Atualizar o sistema.
# apt-get update
# aptitude safe-upgrade
# aptitude install vim vim-doc
# ls
(para ver o conteúdo do diretório)
# cd linux-5.13.10
(não utilizamos link simbólico)
# make mrproper
(limpa prováveis compilações anteriores e deleta o arquivo .config)
# make-kpkg clean
(limpa prováveis compilações anteriores, provavelmente aparecerá "sem regra
para processar o alvo...", esse aviso é normal, pois deve ser uma compilação
"limpa")
# cat /proc/cpuinfo
/usr/lib/gcc/x86_64-linux-gnu/6/cc1 -E -quiet -v
-imultiarch x86_64-linux-gnu - -march=sandybridge -mmmx
-mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16
-msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt
-mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi
-mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1
-mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c
-mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr
-mxsave -mxsaveopt -mno-avx512f -mno-avx512er
-mno-avx512cd -mno-avx512pf -mno-prefetchwt1
-mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq
-mno-avx512bw -mno-avx512vl -mno-avx512ifma
-mno-avx512vbmi -mno-clwb -mno-mwaitx -mno-clzero -mno-pku
--param l1-cache-size=32 --param l1-cache-line-size=64
--param l2-cache-size=3072 -mtune=sandybridge
Antes saía o tipo mtune (Core2, Dual Core etc), agora saiu o nome da "família".
No caso é um Core i5, por isso execute os dois comandos: cat /proc/cpuinfo e a
linha acima do cc). Qualquer dúvida, jogue na internet o nome da "família" que
aparecer em -mtune.
No caso do Core 2 Duo, do Dual Core e dos Pentium 4, foi marcada a opção
Core 2/newer Xeon, por eles terem dois núcleos (cores).
CONFIGURANDO E OTIMIZANDO
Execute:
# make menuconfig
(entra nas configurações do kernel)
Para entrar nas opções, dê Enter e para alterar de "M" para "*", e vice-versa, é
só pressionar a barra de espaços. A opção "M" compila como módulo, a opção
"*" compila embutido no kernel. A escolha vai de cada parâmetro. Como módulo
não fará parte do "monólito" do kernel.
Para sair de uma opção, dê Esc duas vezes seguidas. Navegue com as setas de
direção.
E marque todas as opções relativas ao nf_tables. Esse parâmetro não tem a ver
com otimização, mas com suporte ao nftables.
Volte ao menu principal dando ESC e cuidando até aparecer o menu principal
"Linux/x86 5.13.10 Kernel Configuration".
Vá em "File Systems", marque os sistemas de arquivos utilizados com "*". No
meu caso, ext4 (/boot) com btrfs (demais partições).
* Dica: para ext4, marque a primeira opção (The Extended 4 (ext4) filesystem)
com "*", e deixe as 3 seguintes marcadas.
De acordo com os sistemas de arquivos que você tem no seu Linux (ext4, Btrfs
etc) configure como queira.
■ LS UTF-8
Retorne ao menu principal selecionando EXIT. Após o último EXIT, aparecerá a
janela "Do you wish...", deixe como: "Yes" e dê Enter.
Execute:
# ls -a
/usr/lib/gcc/x86_64-linux-gnu/6/cc1 -E -quiet -v
-imultiarch x86_64-linux-gnu - -march=sandybridge -mmmx
-mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16
-msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt
-mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi
-mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1
-mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c
-mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr
-mxsave -mxsaveopt -mno-avx512f -mno-avx512er
-mno-avx512cd -mno-avx512pf -mno-prefetchwt1
-mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq
-mno-avx512bwroot@seibei:/usr/src/linux-5.13.10#
-mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-clwb
-mno-mwaitx -mno-clzero -mno-pku --param l1-cache-size=32
--param l1-cache-line-size=64 --param l2-cache-size=3072
-mtune=sandybridge
ignoring nonexistent directory
"/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-linux-gnu/6/../../../../x86_64-linux-
gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/6/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
Vamos alterar os arquivos (segue uma lista completa dos arquivos com as linhas
a serem alteradas). É necessário alterar somente 3 arquivos (os 3 primeiros
abaixo), porém, se você é paranoico e obcecado, altere os outros 10 também:
# gcc --version
Lista de arquivos:
# vim /usr/src/.../...
(use teu editor de texto preferido)
A partir daqui, continue se quiser extrair mais, mas preste atenção para alterar
os arquivos da forma certa.
Faça com calma, cuidado e divirta-se, se quiser, mas não é necessário. Veja
bem, talvez ao entrar em algum arquivo abaixo você não encontre as opções,
isso ocorre por causa das distribuições. Recomendo pular essa etapa.
■ /usr/src/Linux-3.10.7/arch/alpha/Makefile;
■ /usr/src/Linux-3.10.7/arch/arm/Makefile;
■ /usr/src/Linux-3.10.7/arch/avr32/Makefile;
■ /usr/src/Linux-3.10.7/arch/frv/Makefile;
■ /usr/src/Linux-3.10.7/arch/m68k/Makefile;
■ /usr/src/Linux-3.10.7/arch/mips/Makefile;
■ /usr/src/Linux-3.10.7/arch/parisc/Makefile;
■ /usr/src/Linux-3.10.7/arch/powerpc/Makefile;
■ /usr/src/Linux-3.10.7/arch/s390/Makefile;
■ /usr/src/Linux-3.10.7/arch/sparc/Makefile.
COMPILANDO E OTIMIZANDO
Execute:
# make config_debug_section_mismatch=y
dar enter, sugiro fechar os outros programas (não que seja necessário, mas é
# make modules
modules_install.
# make modules_install
(instala os módulos)
# make install
(instala o kernel)
O make install instala o kernel, gera a imagem e atualiza o GRUB, deixando
Reiniciando:
# shutdown -r now
# uname -r
Deverá aparecer:
5.13.10
Confirme:
# uname -a
x86_64 GNU/Linux
Atualize:
# apt-get update
# aptitude safe-upgrade
[installed]
[installed,automatic]
[installed,automatic]
[installed]
Veja as versões.
4.9.0-15
4.9.0-16
5.13.10
apt-get -y purge
Confirme:
5.13.10
Daí:
# update-grub
E é isso.
Um kernel atualizado dura anos e você não precisa ficar reinstalando o sistema
toda hora porque não dará muitos problemas. E quando der problemas, eles
Diversos novos usuários Linux estão muito acostumados com a interface gráfica
do Windows e possuem receio em utilizar o terminal do Linux. Com o passar do
tempo, percebem a grande versatilidade que podem ter ao utilizar a "tela preta",
onde devemos escrever os comandos, ao invés de clicar nos botões de interface
com o mouse. Depois de algum tempo, costumam utilizar com tanta frequência
esses diversos comandos, buscando sempre conhecer melhor esse tipo de
interface.
Executar o comando correto pode ser vital na utilização do sistema, mas existem
diversas opções de comandos no Linux. Muitos me perguntam: Como posso
encontrar o comando que devo utilizar? A resposta é o comando apropos.
Para encontrar quais comandos posso utilizar para listar um diretório (list
directory), devo utilizar:
history
Observe na imagem acima que o comando history traz um histórico com todos
os últimos comandos digitados, sendo que cada comando possui um número
indicando sua linha. Caso eu queira executar novamente o comando que está na
linha 52 (lslogins), poderia fazer da seguinte forma:
!52
Caso você prefira um alternativa aos comandos cd, cp, mv, rm etc, pode utilizar o
comando midnight. Ele possui uma interface visual no modo de texto, onde a
maioria dos comandos são realizados utilizando as teclas F1, F2 etc.
Caso você queira, por exemplo, copiar um arquivo (install.sh) que está no meu
diretório home (~), para a pasta temporária do sistema (/tmp), primeiro navegue
até a pasta temporária no painel direito. Depois volte para o painel esquerdo e
selecione o arquivo que será copiado.
Agora pressione <F5> para realizar a cópia. Veja que agora o arquivo install.sh
está também no diretório /tmp.
DESLIGAR OU REINICIAR O COMPUTADOR EM UM HORÁRIO ESPECÍFICO
ENCONTRAR ARQUIVOS
A busca por arquivos pode ser mais simples do que a maioria das pessoas
imagina, utilizando o comando find.
Livros/
Livros/Acao
Livros/Drama
Livros/TI
mkdir -p Livros/{Acao,Drama,TI}
ls Livros/
Suponha que eu tenha o arquivo autores.txt que é um modelo, que será utilizado
em todos os diretórios de Livros criados no exemplo anterior. Como posso
copiá-lo para todos eles, utilizando um único comando? A solução está no
exemplo abaixo.
> /path-to-file/log_enorme.log
O que aconteceu no comando acima é que foi escrito um arquivo vazio sobre o
log_enorme.log.
LER UM ARQUIVO DE LOG EM TEMPO REAL
Esta dever ser uma das dicas mais importantes, a utilização do parâmetro help
nos comandos Linux. Desta forma, você pode exibir as principais opções de
cada comando, sem utilizar o manual do sistema. No comando abaixo, utilizo o
help com o comando ls.
ls --help
CONCLUSÕES
Espero que os truques expostos acima te ajudem na jornada de utilização do
terminal Linux.
Virtualização com Proxmox VE
INTRODUÇÃO
GERENCIAMENTO CENTRAL
Embora muitas pessoas comecem com um único nó, o Proxmox VE pode ser
dimensionado para um grande conjunto de nós agrupados. A pilha do cluster é
totalmente integrada e acompanha a instalação padrão.
A ferramenta multimestre permite que você gerencie todo o seu cluster a partir
de qualquer nó do seu cluster. O gerenciamento central baseado na Web -
baseado no JavaScript Framework (ExtJS) - permite que você controle todas as
funcionalidades da GUI e uma visão geral do histórico e syslogs de cada nó
único. Isso inclui a execução de trabalhos de backup ou restauração, migração
ao vivo ou atividades acionadas por HA.
LINHA DE COMANDO
Para usuários avançados que estão acostumados com o conforto do Shell Unix
ou Windows Powershell, Proxmox VE fornece uma interface de linha de
comando para gerenciar todos os componentes do seu ambiente virtual. Esta
interface de linha de comando possui preenchimento de guia inteligente e
documentação completa na forma de UNIX man pages.
API REST
Proxmox VE usa uma API RESTful. Escolhemos JSON como formato de dados
primário e toda a API é formalmente definida usando o esquema JSON. Isso
permite uma integração rápida e fácil para gerenciamento de terceiros
ferramentas como ambientes de hospedagem personalizados.
Você pode definir o acesso granular para todos os objetos (como VMs,
armazenamentos, nós etc) usando a função baseada em gerenciamento de
usuários e permissões. Isso permite que você defina privilégios e ajude a
controlar acesso a objetos. Este conceito também é conhecido como listas de
controle de acesso, onde cada permissão especifica um sujeito (um usuário ou
grupo) e uma função (conjunto de privilégios) em um caminho específico.
AUTENTICAÇÃO REALMS
ARMAZENAMENTO FLEXÍVEL
■ Alvo iSCSI;
■ Compartilhamento NFS;
■ Compartilhamento CIFS;
■ Ceph RBD;
■ GlusterFS.
Os tipos de armazenamento local suportados, são:
■ Grupo LVM (dispositivos auxiliares locais, como dispositivos de bloco,
■ ZFS.
REDE FLEXÍVEL
INFRAESTRUTURA HIPERCONVERGENTE
PROXMOX VE
INSTALAÇÃO E CONFIGURAÇÃO
Caso queira usar sem o suporte pago da empresa, vamos alterar o sources.list.
asta alterar o arquivo /etc/apt/source.list.d/pve-enterprise.list e deixá-lo assim:
# apt update
# apt upgrade -y
E reiniciar o Proxmox:
# reboot
Acesse o seu Proxmox e vá em: Local > ISO > Upload - é onde vamos subir uma
ISO:
Após efetuar o upload da ISO, vamos criar a nossa máquina virtual. Vá em
"Create VM":
Nessa tela vamos configurar em qual o node do Proxmox vamos subir a VM,
caso tenha mais de um node. Defina o nome da sua máquina virtual:
Selecione a ISO:
A configuração do sistema, pode deixar default mesmo:
Selecione onde ficará o disco da VM e a sua capacidade, como teste deixei com
32GB:
Configure a CPU da VM:
Configure a memória:
Configure a rede:
Neste artigo você vai aprender algumas dicas básicas que costumo usar com meus
"discípulos" quando quero ensinar programação para alguém via internet.
INTRODUÇÃO
Algumas vezes pode ser complicado aprender programar, ainda mais sozinho.
Programação é algo que exige mais um esforço solitário do que propriamente de
um grupo de pessoas ao mesmo tempo. Neste artigo veremos algumas dicas
simples para aprender melhor programação e não perder tanto tempo
reinventando a roda, melhor aprender com a experiência de alguém que já
percorreu o caminho do que tentar fazer um caminho novo.
Ele fazia exatamente isso e eu ficava surpreso porque ele conseguia decorar o
programa inteiro escrito em C++ com a lib Irrlicht e eu ainda estava
engatinhando no hello world com a mesma lib. Perguntei a ele como era essa
mágica e ele me explicou como fazia. No caso, quanto mais você decorar
programas ou comandos, mais você terá experiência para aprender. Essa
técnica me lembra a teoria do Input/Output da aquisição de língua estrangeira de
Stephen Krashen:
Sugiro que leia este site: Stephen Krashen's Theory of Second Language
Acquisition (Assimilação Natural - o Construtivismo no Ensino de Línguas)
Se você tem que aprender uma nova linguagem, ou uma nova lib, ou qualquer
tecnologia que seja, siga estes passos:
Supondo que queira aprender uma nova linguagem mas você NÃO sabe
nenhuma linguagem:
2. Como você não tem nenhuma noção (input) do que faz aquilo, então, tente
apenas ler e entender o que faz o programa, assim você ganha input
compreensivo sobre aquele assunto.
3. Depois de ter certeza que você decorou (sim, decorou mesmo!) o programa e
consegue mentalmente visualizar como ele é, basta agora praticar (output).
Tente reproduzir todo o programa como você entende ele, caso surja dúvidas,
olhe imediatamente no código que você decorou para ganhar ainda mais input
(compreensão).
■ https://www.github.com/
■ https://www.sourceforge.net/
No caso, nessa prática eu recomendo que você tente reproduzir todo o programa
a partir de sua mentalização/decorar de antes.
Quanto mais você decorar programas, maiores serão as chances de mais rápido
você entender qualquer outro programa no mesmo nível dos que você decorou.
De forma genérica, abaixo segue algo que serve para aprender tudo na
programação:
2. [INPUT] depois de ter alguns exemplos que você sentiu ser capaz de
aprender, chegou a hora de decorar (input). Então, leia o programa e tente
apenas entender como ele executa cada instrução. Comece do primeiro
comando, vá para o segundo, depois o terceiro etc, até chegar no fim da
execução. Aqui você está ganhando entendimento sobre o que fazer no passo
seguinte. Só siga para o passo 3 se realmente sentir que é capaz de repetir o
código de exemplo exatamente como você entendeu neste passo.
Nessa dica perguntar "Como fazer tal programa?" é pior do que perguntar "O
que fazer neste programa?". Percebeu a diferença? Quando você usa "O que
fazer" ao invés de "Como fazer", você passa a ser mais objetivo e direcionado
para a solução do problema em questão.
Então, se você perguntar a si mesmo "Como fazer para ordenar este vetor?"
pode dar tantas possibilidades que você será incapaz de usar uma delas. Mas se
você perguntar "O que fazer para ordenar este vetor?", então você poderia
pensar melhor num algoritmo (passo a passo) de como fazer para ordenar este
vetor especificamente:
Se você observar bem, este algoritmo serve apenas para este vetor em
particular. Mas se você olhar de forma mais genérica, poderá ver que este
algoritmo pode ser transformado em algo que pode ser reaproveitado para
qualquer vetor:
Se você for esperar para ter primeiro a lógica afiada para depois aprender
programar de verdade, pode acabar perdendo um tempo precioso. Então, pra
treinar a lógica e ao mesmo tempo aprender uma linguagem, você deve sempre
tentar com uma linguagem de programação.
Exemplo:
2. Se já sabe algo da linguagem que você quer aprender, então, tente fazer ele
nessa linguagem.
2.1. Se não conseguir, tente escrever o passo a passo num caderno até você ter
uma ideia de "O que fazer?" e não "Como fazer?"
PROCESSAMENTO E SAÍDA
Quando você vai aprender uma nova linguagem, há certas coisas que passam
sem ser percebidas, uma delas é a estrutura lógica da maioria dos programa. No
caso, estou falando das 3 palavrinhas mágicas da computação: entrada,
processamento e saída.
Entradas:
- somar A com B.
Saída:
Esse exemplo é muito simples, mas em geral é nesse estilo que se trata
programar. Se você identificar cada parte, poderá facilmente desenvolver um
programa ou algoritmo que resolve o problema em questão.
DICA 5: FAÇA AMIGOS PELA INTERNET E/OU AJUDE PESSOAS COM O QUE
VOCÊ SABE
Essa também é uma dica efetiva, mas as vezes é difícil fazer, porque é difícil
enxergar benefícios diretos de fazer amigos e/ou ajudar pessoas online.
Eu consegui meu primeiro emprego graças a um amigo que conheci aqui mesmo
no Viva o Linux, conheci de forma aleatória e eu ajudei ele a aprender
programação e anos mais tarde a arranjar o primeiro emprego dele também, e
depois, ele me ajudou entrar na mesma empresa que está.
Por isso eu reforço: ajude alguém na internet, mesmo que você não veja os
resultados de forma imediata, a longo prazo vale muito a pena.
Nesta dica você verá um método simples para criar autodisciplina. Ele é
comprovado cientificamente e não é simples achismo.
Simples assim, fazer meditação fará você ser auto disciplinado e talvez até fazer
você ser menos idiota (se isso for um problema pra você).
Aqui meu canal favorito de meditação guiada: [você pode começar por ele] Canal
Fábio Lima
Depois que você começar meditar, sugiro ainda mais uma coisa: marque um X
no calendário toda vez você conseguir cumprir um meta. Por exemplo, se você
não sabe programar e quer aprender programação, pegue um calendário e
escreva nele ou cole um papel com a meta: "estudar programação", quando você
estudar programação no dia atual, marque um X no dia que você estudar. Se
não estudar, não marque nada. Assim você terá um feedback de progresso e
saberá se conseguiu ou não cumprir a meta.
Ter metas e cumprir partes dela na semana (não precisa ser todo dia) lhe fará
um tremendo bem e até você sentirá que está progredindo e não apenas
sonhando em ser bom em alguma coisa.
Simples, apenas abandone tal meta! O que importa mesmo no final das contas é
apenas o que você se interessa, se você focar no que te interessa não precisará
mais se importar com metas ou cumprir qualquer coisa que seja além do seu
alcance.
Como diria Sadhguru: "...se preocupe mais com o processo ou sua meta não
passará de desejos fantasiosos...Se você tiver devoção absoluta ao que você
está fazendo no momento presente, dependendo do tempo e das oportunidades,
iremos até onde for possível.".
Vídeo recomendado:
CONCLUSÃO
Neste artigo foi visto certas dicas que são úteis para quem está querendo
aprender programação, mesmo que sozinho ou com alguns amigos.
Espero que você tenha gostado deste conteúdo, e caso queira saber mais sobre
mim, pode me encontrar nestes links:
Meu perfil no GitHub: https://github.com/cpusam
NVMe (UEFI/GPT)
INSTALAÇÃO
■ 32 GB RAM SSD4
■ https://www.gentoo.org/downloads/
Obs 1.: este artigo é bem específico para a minha situação (não poderia ser de
constantemente aprendendo.
PARTIÇÕES
Exemplo:
# gdisk /dev/nvme0n1
Tecle "o" para criar uma tabela de partição GPT, e confirme com "y".
Command: o (Enter)
protective MBR.
Proceed? (Y/N): y (Enter)
Command: n (Enter)
Command: n (Enter)
Command: w (Enter)
Do you want to proceed? (Y/N): Y (Enter)
Formate:
# mkfs.xfs /dev/nvme0n1p2
# mkfs.vfat -F 32 /dev/nvme0n1p1
Monte:
# mkdir -p /mnt/gentoo
# mkdir -p /mnt/gentoo/boot/efi
STAGE 3 E CHROOT
# cd /mnt/gentoo
# links https://www.gentoo.org/downloads/
# cd /mnt/gentoo
# cp /etc/resolv.conf etc
# chroot . /bin/bash
# source /etc/profile
Em uma linha:
# mount -t proc none proc; mount --rbind /sys sys; mount --make-rslave sys;
Sincronize o repositório:
# emerge-webrsync
CRIAÇÃO DO USUÁRIO E DAS SENHAS
# passwd
# passwd xerxes
ARQUIVOS DE CONFIGURAÇÃO
Instale o Vim:
Edite o Fstab:
# vim /etc/fstab
Exemplo:
Configure o make.conf:
# vim /etc/portage/make.conf
Exemplo:
# These settings were set by the catalyst build script that automatically
# detailed example.
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"
LC_MESSAGES=C
EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --jobs=16
--load-average=16"
MAKEOPTS="-j16"
GRUB_PLATFORMS="efi-64"
USE="X elogind alsa pulseaudio -ahavi -dbus -systemd -wayland -nls -doc
VIDEO_CARDS="radeon r600"
ACCEPT_LICENSE="*"
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand
Configure o "locale":
# vim /etc/locale.gen
Adicione:
en_US.UTF8 UTF-8
pt_BR.UTF8 UTF-8
C.UTF8 UTF-8
# locale-gen
# vi /etc/conf.d/hwclock
Fuso-horário:
KERNEL
# cd /usr/src/linux
# make localyesconfig
# make modules_install
# make install
GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
ESCOLHENDO O "PROFILE"
FERRAMENTAS DE REDE
net-wireless/wpa_supplicant
Habilite o dhcpcd:
APLICATIVOS ÚTEIS
Algumas utilidades:
# ln -s /usr/bin/sakura /usr/bin/st
Finalizando:
# exit
# cd /mnt
# reboot