OpenLLM-France/wikimedia huggingface dataset:
# Algoritmos em Brainfuck/Apresentação
## Apresentação

A linguagem brainfuck, por ser muito complicada e de difícil aplicação, não é muito recomendada para o desenvolvimento de softwares apesar da grande capacidade dessa linguagem de fazer isso. É por esse motivo que ela é considerada do tipo esotérica, por ser desafiadora e complicada para mente humana, feita para levar um programador experiente ao limite.
Brainfuck é pouco utilizada, sendo restrita ao desafio, interação e/ou um passatempo a hackers e programadores, é por esse motivo que não se acha muito conteúdo em sites ou quando se acha é uma cópia mal elaborada da Wikipédia.
Com o objetivo de tentar explicar de uma forma diferente e de apresentar o brainfuck ao programador interessado, esta obra apresentará o conceito da linguagem brainfuck, seus algoritmos e um pouco da sua história.
É importante lembrar que este livro irá apenas citar uma introdução à linguagem brainfuck e que poderá ser necessário, caso o leitor queira, se aprofundar um pouco mais na linguagem.
# Algoritmos em Brainfuck/Bibliografias
## Bibliografias

* http://www.ricbit.com/mundobizarro/brainfuck.php
* https://pt.wikipedia.org/wiki/Brainfuck
A incluir...
A incluir...
# Algoritmos para jogos eletrônicos/Caixa de texto

Algoritmo para a criação de uma caixa de texto 2D que irá receber um texto (string) e formatá-lo a fim de colocar seu conteudo dentro de uma caixa desenhada pelo programador. Caso o texto utrapasse a linha da caixa será automaticamente continuado na linha abaixo, também as palavras não serão cortadas de uma linha para outra.
# Algoritmos em Brainfuck/Conceito de brainfuck
## Conceito de brainfuck

brainfuck é uma linguagem de programação do tipo esotérica, ou seja, uma linguagem feita para confundir e desafiar a mente de um programador. Essas linguagens são criadas com o objetivo de levar a produção de uma linguagem de programação aos limites. Ela foi desenvolvida em 1993 pelo programador Urban Müller.
Uma questão polêmica do brainfuck é o seu nome que muitas vezes é chamada de brainf*ck ou BF, tudo para questionar e julgar o linguagem. É muito importante notarmos também outra particularidade do brainfuck, sua escrita, apesar de ser um nome próprio e segundo a regra, nomes próprios devem ser escritos com iniciais maiúscula, a linguagem brainfuck possui a letra inicial em minúsculo.
# Algoritmos em Brainfuck/História do brainfuck
## História do brainfuck

A linguagem de programação brainfuck foi criada com o objetivo de ser compilada com o menor compilador possível pelo programador Urban Dominik Müller em 1993 ao ser inspirado pelo compilador de 1024 bytes de outra linguagem do tipo esotérica, o False (Alguns compiladores foram feitos menores do que 200 bytes).
# Algoritmos para jogos eletrônicos/Câmera em terceira pessoa

Este módulo dedica-se à construção de um sistema de câmera em 3D em terceira pessoa, ou seja, sem a visão do personagem, mas que siga o mesmo mirando suas costas.
# Algoritmos para jogos eletrônicos

Este wikilivro se dedica ao aprendizado de algoritmos que podem ser aplicados ou não no desenvolvimento de jogos eletrônicos (video games), aqui serão mostrados algoritmos úteis para a construção de sistemas de jogos e gráficos 2D e 3D. O modelo de programação utilizado será o usado na construção da maioria dos jogos eletrônicos utilizando a linguagem C++ e o paradigma de orientação a objeto.

## Algoritmos gerais

* Highscore

## Gráficos 2D

* Caixa de texto
* Caixa de texto com rolamento

## Gráficos 3D

* Movimento para First Person Shooter
* Câmera em terceira pessoa
Este livro tem uma coleção para a criação de versões nos formatos HTML, PDF, ODT, ZIM, ePUB ou para encomendas para a PediaPress.
# Guia do Linux/Iniciante+Intermediário/Execução de programas/nice
## nice

Configura a prioridade da execução de um comando/programa. nice [opções] [comando/programa] Onde:

### comando/programa

    Comando/programa que terá sua prioridade ajustada.

### -n [numero]

    Configura a prioridade que o programa será executado. Se um programa for executado com maior prioridade, ele usará mais recursos do sistema para seu processamento, caso tenha uma prioridade baixa, ele permitirá que outros programas tenham preferência. A prioridade de execução de um programa/comando pode ser ajustada de -19 (a mais alta) até 19 (a mais baixa).
Exemplo: nice -n -19 find / -name apropos.
# Guia do Linux/Iniciante+Intermediário/Execução de programas/Eliminando caracteres estranhos
## Eliminando caracteres estranhos

As vezes quando um programa mal comportado é finalizado ou quando você visualiza um arquivo binário através do comando cat, é possí­vel que o aviso de comando (prompt) volte com caracteres estranhos. Para fazer tudo voltar ao normal, basta digitar reset e teclar ENTER. Não se preocupe, o comando reset não reiniciará seu computador (como o botão reset do seu computador faz), ele apenas fará tudo voltar ao normal. Note que enquanto você digitar reset aparecerão caracteres estranhos ao invés das letras. Não se preocupe! Basta digitar corretamente e bater ENTER e o aviso de comando voltará ao normal.= Guia Foca GNU/Linux Capí­tulo 8 - Comandos para manipulação de diretório =
Abaixo comandos úteis para a manipulação de diretórios.

## Ligações externas

* Documentação do reset (em inglês)
# Guia do Linux/Iniciante+Intermediário/Execução de programas/Executando um comando/programa
## Executando um comando/programa

Para executar um comando, é necessário que ele tenha permissões de execução (veja [ch-perm.html#s-perm-tipos Tipos de Permissões de acesso, Seção 13.2] e [ch-cmdd.html#s-comando-ls ls, Seção 8.1]) e que esteja no caminho de procura de arquivos (veja [#s-run-path path, Seção 7.2]).
No aviso de comando #(root) ou $(usuário), digite o nome do comando e tecle Enter. O programa/comando é executado e receberá um número de identificação (chamado de PID - Process Identification), este número é útil para identificar o processo no sistema e assim ter um controle sobre sua execução (será visto mais adiante neste capí­tulo).
Todo o programa recebe uma identificação de usuário (UID) quando é executado o que determina quais serão suas permissões de acesso durante sua execução. O programa normalmente usa o UID do usuário que o executou ou o usuário configurado pelo bit de permissão de acesso SUID caso estiver definido. Existem também programas que são executados como root e modificam sua identificação de usuário para algum que tenha menos privilégios no sistema (como o Apache, por exemplo). Para maiores detalhes veja [ch-perm.html Permissões de acesso a arquivos e diretórios, Capí­tulo 13].
Todo o programa executado no GNU/Linux roda sob o controle das permissões de acesso. Recomendo ver mais tarde o [ch-perm.html Permissões de acesso a arquivos e diretórios, Capí­tulo 13].
Exemplos de comandos: ls, df, pwd.
# Capí­tulo 7 - Execução de programas

Este capí­tulo explica como executar programas no GNU/Linux e o uso das ferramentas de controle de execução dos programas.
# Guia do Linux/Iniciante+Intermediário/Execução de programas/fuser
## fuser

Permite identificar e fechar os processos que estão utilizando arquivos e soquetes no sistema. fuser [opções] [nome] Onde:

### nome

    Especifica um nome de processo, diretório, arquivo, etc.

### -k

    Finaliza os processos acessando o arquivo especificado. O sinal desejado deve ser especificado com a opção -signal [num], ou o sinal -9 será enviado como padrão. Não é possí­vel matar o próprio processo fuser.

### -i

    Pergunta antes de destruir um processo. Será ignorada caso a opção -k não seja especificada.

### -l

    Lista todos os nomes de sinais conhecidos.

### -m [nome]

    Especifica um arquivo em um sistema de arquivos montado ou dispositivo de bloco que está montado. Todos os processos acessando aquele sistema de arquivos serão listados. Diretórios são mostrados seguidos de uma /

### -signal [número]

    Usa o sinal especificado ao invés de -9 (SIGKILL) quando finalizar processos.

### -u

    Acrescenta o nome do dono de cada processo ao PID.

### -v

    Os processos são mostrados em um estilo idêntico ao ps.
# Guia do Linux/Iniciante+Intermediário/Execução de programas/Executando programas em seqüência
## Executando programas em sequência

Os comandos podem ser executados em sequência (um após o término do outro) se os separarmos com ";". Por exemplo: echo primeiro;echo segundo;echo terceiro
# Guia do Linux/Iniciante+Intermediário/Execução de programas/Tipos de Execução de comandos/programas
## Tipos de Execução de comandos/programas

Um programa pode ser executado de duas formas:
* Primeiro Plano - Também chamado de foreground. Quando você deve esperar o término da execução de um programa para executar um novo comando. Somente é mostrado o aviso de comando após o término de execução do comando/programa.
* Segundo Plano - Também chamado de background. Quando você não precisa esperar o término da execução de um programa para executar um novo comando. Após iniciar um programa em background, é mostrado um número PID (identificação do Processo) e o aviso de comando é novamente mostrado, permitindo o uso normal do sistema.
O programa executado em background continua sendo executado internamente. Após ser concluí­do, o sistema retorna uma mensagem de pronto acompanhado do número PID do processo que terminou. Para iniciar um programa em primeiro plano, basta digitar seu nome normalmente. Para iniciar um programa em segundo plano, acrescente o caracter "&amp;" após o final do comando. OBS: Mesmo que um usuário execute um programa em segundo plano e saia do sistema, o programa continuará sendo executado até que seja concluí­do ou finalizado pelo usuário que iniciou a execução (ou pelo usuário root). Exemplo: find / -name boot.b &amp; O comando será executado em segundo plano e deixará o sistema livre para outras tarefas. Após o comando find terminar, será mostrada uma mensagem.
# Livro de receitas/Massa de pastel fingido

Existem várias maneiras de preparar:

## Massa de pastel fingido - 1
### Ingredientes e Preparo:

* 2 xícaras (chá) de farinha de trigo --
* 2 ovos;
* 2 xícaras (chá) de queijo ralado;
* 1/2 colher (sopa) de fermento em pó;
* Sal a gosto.
    Preparo:
* Misture tudo, abra com o rolo, corte com a boca de um copo.
* Passe na clara e no queijo ralado e frite.
# Livro de receitas/Massa de pastelão de liquidificador

Existem várias maneiras de preparar:

## Receita 1
### Ingredientes

* 1 copo de farinha de trigo
* 2 ovos
* 1 copo de leite
* sal a gosto
* 4 colheres de sopa de óleo
* 1 colher de sopa de manteiga
* 1/2 queijo ralado
* 1 cebola

### Preparo

* Bater todos os ingredientes no liquidificador por cerca de 5 minutos.
* Em seguida colocar apenas uma parte na forma.
* Coloque o recheio da sua preferência.
* Depois coloque a outra parte e leve ao forno por cerca de meia hora.
# Livro de receitas/Massa fina para pastel

Existem várias maneiras de preparar:

## Massa fina para pastel - 1
### Ingredientes e Preparo:

* 500 gramas de farinha de trigo --
* 150 gramas de gordura vegetal;
* 2 gemas;
* 1 xícara (chá) de água;
* 1 colherinha de sal.
Preparo:
   * Ponha a farinha de trigo numa vasilha e abra uma cavidade no meio.
   * Junte os outros ingredientes e vá amassando.
   * Amasse e sove bem a massa.
   * Deixe-a repousar por uma hora.
   * Abra os pastéis com o rolo, ponha o recheio que preferir, feche com carretilha.
   * Frite-os em óleo bem quente.
# Livro de receitas/Massa francesa para empadas

Existem várias maneiras de preparar:

## Massa francesa para empadas - 1
### Ingredientes e Preparo:

* 1/2 kg de farinha de trigo --
* 350 gramas de manteiga amolecida;
* 1 ovo inteiro;
* Água fria, o suficiente;
* 1 colherinha de sal.
    Preparo:
* Coloque a farinha de trigo sobre uma tábua, formando um montinho.
* Abra no centro e ponha o ovo, o sal, a manteiga e 2 colheres (sopa) de água fria.
* Amasse e ligue os ingredientes.
* Abra em pequenas porções com o rolo. Esta massa pode ser facilmente aberta.
* Forre as forminhas e coloque o recheio.
* Corte as tampinhas com a ajuda de um copo e ajuste-as nas bordas.
* Leve ao forno em temperatura regular para assar.
# Livro de receitas/Martini doce

Existem várias maneiras de preparar:

## Martini doce - 1
### Ingredientes e Preparo:

* 300 ml de álcool (Coperalcool) --
* 1 kg de açúcar refinado;
* 2.400 ml de água filtrada;
* 4 colheres (sopa) de calda de açúcar, queimada;
* 2 colheres (sopa) de baunilha;
* 20 gramas de ácido tartárico.
    Preparo:
* Misturar tudo e engarrafar.
* Quanto mais velho, melhor.
* Servir decorado com cerejas.
# Livro de receitas/Massa básica para pão branco

Existem várias maneiras de preparar:

## Massa básica para pão branco - 1
### Ingredientes e Preparo:

* 6 xícaras (chá) de farinha de trigo (750 gramas) --
* 3 colheres (chá) de sal;
* 1 colher (sopa) de açúcar;
* 2 tabletes (30 gramas) de fermento biológico;
* 1 colher (sopa) de óleo.
    Preparo:
* Peneire a farinha de trigo com o sal e o açúcar numa tigela. Faça uma cavidade no meio e reserve.
* Leve ao fogo uma panela com 1/2 litro de água por 2 minutos, ou até amornar.
* Retire do fogo, transfira para uma tigela e acrescente o fermento. Mexa com uma colher até o fermento dissolver.
* Despeje o fermento na tigela com a farinha de trigo e amasse com as mãos por 3 minutos, ou até obter uma massa lisa e homogênea.
* Transfira a massa para uma superfície enfarinhada e sove por 10 minutos, ou até ficar lisa e elástica.
* Faça uma bola uniforme, transfira para uma tigela e cubra com filme plástico.
* Deixe descansar em local aquecido por 45 minutos, ou até dobrar de volume.
* Ligue o forno à temperatura média.
* Unte 2 assadeiras de 23 cm x 33 cm e enfarinhe-as.
* Divida a massa em 10 partes e modele uniformes 10 bolinhas de aproximadamente 10 cm de diâmetro cada uma.
* Com o óleo, unte 2 assadeiras de 23 cm x 33 cm e enfarinhe-as.
* Disponha os pães nas assadeiras e, com uma faca, faça talhos em forma de cruz na superfície da massa, para dar um efeito mais bonito.
* Leve ao forno por 50 minutos, ou até o pão dourar e ficar firme ao tato.
* Retire do forno, desenforme e deixe esfriar.
    Dica: Com esta mesma massa você pode preparar pizza, torta e pastel de forno.
# Livro de receitas/Massa de nhoques

Existem várias maneiras de preparar:

## Massa de nhoques - 1
### Ingredientes e Preparo:

* 1 kg de batata inglesa, cozida e amassada --
* 1 kg de batata doce, cozida e amassada;
* 3 ovos;
* 1 colher (chá) de manteiga;
* 1 pires de queijo, ralado;
* Sal a gosto;
* Farinha de trigo até dar o ponto de cortar.
    Preparo:
* Cozinhe as batatas, amasse-as e deixe esfriar.
* Em seguida, adicione os demais ingredientes, colocando-se a farinha de trigo aos poucos, até dar o ponto.
* Trabalhe a massa, faça rolos e corte os nhoques.
# Livro de receitas/Massa de casulo

Existem várias maneiras de preparar:

## Massa de casulo - 1
### Ingredientes e Preparo:

* 6 ovos --
* 1 colher (sopa) de pó royal (fermento em pó);
* 2 xícaras (chá) rasas, de farinha de trigo;
* Queijo mineiro, ralado, até dar ponto de enrolar.
    Preparo:
* Bater as claras em neve, as gemas, misture o pó Royal, a farinha de trigo e o queijo.
* Enrole e frite em óleo quente.
# Livro de receitas/Massa de palitos de queijo

Existem várias maneiras de preparar:

## Massa de palitos de queijo - 1
### Ingredientes e Preparo:

* 3 colheres (sopa) de queijo --
* 4 colheres (sopa) de farinha de trigo;
* 4 colheres (sopa) de maisena (amido de milho);
* 3 colheres (sopa) de margarina (mole);
* 1/2 colher (café) de pó royal (fermento em pó);
* 1 pitada de sal.
    Preparo:
* Misture tudo com os dedos, a margarina com o queijo, a maisena, a farinha de trigo.
* Deixe descansar por 15 minutos na geladeira.
* Abra com o rolo e corte em tiras, pincele gema e asse em forno quente.
# Guia do Linux/Avançado/Impressão/Imprimindo via spool
## Imprimindo via spool

A impressão via spool (fila de impressão) tem por objetivo liberar logo o programa do serviço que está fazendo a impressão deixando um outro programa especifico tomar conta.
Este programa é chamado de daemon de impressão, normalmente é o lpr ou o lprng (recomendado) em sistemas GNU/Linux.
Logo após receber o arquivo que será impresso, o programa de spool gera um arquivo temporário (normalmente localizado em /var/spool/lpd) que será colocado em fila para a impressão (um trabalho será impresso após o outro, em sequência). O arquivo temporário gerado pelo programa de spool é apagado logo após concluir a impressão.
Antes de se imprimir qualquer coisa usando os daemons de impressão, é preciso configurar os parâmetros de sua impressora no arquivo /etc/printcap. Um arquivo /etc/printcap para uma impressora local padrão se parece com o seguinte:
É possível também compartilhar a impressora para a impressão em sistemas remotos, isto será visto em uma seção separada neste guia.
Usando os exemplos anteriores da seção Imprimindo diretamente para uma porta de impressora, vamos acelerar as coisas:
* cat trabalho.txt |lpr - Direciona a saída do comando cat para o programa de spool lpr.
* cat <trabalho.txt |lpr. Faz a mesma coisa que o acima.
* cat -n trabalho.txt |lpr - Numera as linhas durante a impressão.
* head -n 30 trabalho.txt |lpr - Imprime as 30 linhas iniciais do arquivo.
A fila de impressão pode ser controlada com os comandos:
* lpq - Mostra os trabalhos de impressão atuais
* lprm - Remove um trabalho de impressão
Ou usado o programa de administração lpc para gerenciar a fila de impressão (veja a página de manual do lpc ou digite ? ao iniciar o programa para detalhes).
OBS1: Se a impressora não imprimir ou não for possível compartilhar a porta de impressora paralela com outros dispositivos (tal como o plip), verifique se o módulo parport_pc foi carregado e com os valores de irq e I/O corretos (por exemplo, modprobe parport_pc io=0x378 irq=7). Muitas vezes sua porta paralela pode funcionar sem problemas durante a impressão, mas se ao utilizar plip ocorrerem erros, a causa pode ser essa. Na distribuição Debian, use o programa modconf para configurar os valores permanentemente para o módulo parport_pc.
OBS2: Se tiver mais de uma impressora instalada na máquina, será necessário especificar a opção "-P impressora" para especificar qual impressora deseja imprimir/controlar.
# Guia do Linux/Avançado/Introdução/Considerações sobre o nível Avançado
## Considerações sobre o nível Avançado

Este guia foi compilado incluindo o nível Avançado do guia FOCA GNU/Linux, ele não tem a intenção de focar na configuração de serviços, servidores, aplicativos, nem garantia que ele atenderá a determinada finalidade específica do usuário (principalmente de uma rede, que depende de uma perfeita compreensão para adaptação de acordo com os requisitos de uma instalação local). Seu foco principal é a instalação do serviço, abordando considerações voltadas a segurança, e exemplos de configuração e seu funcionamento.
Com relação a capítulos sobre servidores, é importante observar qual versão é documentada no guia e se confere com a instalada em seu sistema, a fim de que tudo funcione corretamente. Entretanto, na maioria dos casos, as explicações relacionadas a uma versão de um programa são inteiramente válidas em uma nova versão.
# Guia do Linux/Avançado/Impressão/Magic Filter
## Magic Filter

O Magic Filter é um filtro de impressão inteligente. Ele funciona acionado pelo spool de impressão (mais especificamente o arquivo /etc/printcap) e permite identificar e imprimir arquivos de diversos tipos diretamente através do comando lpr arquivo.
É um ótimo programa e ALTAMENTE RECOMENDADO se você deseja apenas clicar no botão imprimir e deixar os programas fazerem o resto :-) A intenção do programa é justamente automatizar os trabalhos de impressão e spool.
A maioria dos programas para ambiente gráfico X11, incluindo o Netscape, Word Perfect, Gimp e Star Office trabalham nativamente com o magicfilter.

### Instalação e configuração do Magic Filter

O Magic Filter é encontrado no pacote magicfilter da distribuição Debian e baseadas.
Sua configuração pode ser feita com o programa magicfilterconfig que torna o processo de configuração rápido e fácil para quem não conhece a sintaxe do arquivo /etc/printcap ou não tem muitas exigências sobre a configuração detalhada da impressora.
Após instalar o magicfilter reinicie o daemon de impressão (se estiver usando a Debian, entre no diretório /etc/init.d e como usuário root digite ./lpr restart ou ./lprng restart).
Para testar o funcionamento do magicfilter, digite lpr alphabet.ps e lpr tiger.ps, os arquivos serão enviados para o magicfilter que identificará o arquivo como Pos Script, executará o Ghost Script e retornará o resultado do processamento para o daemon de impressão. O resultado será visto na impressora.
Se tiver problemas, verifique se a configuração feita com o magicfilterconfig está correta. Caso precise re-configurar o magicfilter, digite magicfilterconfig --force (lembre-se que a opção --force substitui qualquer configuração personalizada que tenha adicionado ao arquivo /etc/printcap).

### Outros detalhes técnicos sobre o Magic Filter

Durante a configuração do magicfilter, a seguinte linha é adicionada ao arquivo /etc/printcap:
Não tenho nenhum contrato de divulgação com a epson :-) estou usando esta marca de impressora porque é a mais tradicional e facilmente encontrada. A linha que começa com :if no magicfilter identifica um arquivo de filtro de impressão.
O arquivo /etc/magicfilter/epson9-filter é criado usando o formato do magicfilter, e não é difícil entender seu conteúdo e fazer algumas modificações:
Você deve ter notado que para cada tipo de arquivo existe o respectivo programa que é executado, basta você modificar as opções usadas nos programas neste arquivo (como faria na linha de comando) para afetar o comportamento da impressão.
Por exemplo, modificando a resolução para -r240x72 no processamento de arquivos Pos Script (gs), a impressora passará a usar esta resolução.
# Guia do Linux/Avançado/Impressão/Portas de impressora
## Portas de impressora

Uma porta de impressora é o local do sistema usado para se comunicar com a impressora. Em sistemas GNU/Linux, a porta de impressora paralela é identificada como lp0, lp1, lp2 no diretório /dev, caso a impressora seja USB, o dispositivo será o mesmo, mas estará disponível no diretório /dev/usb. Os dispositivos lp0, lp1 e lp2 correspondem respectivamente a LPT1, LPT2 e LPT3 no DOS e Windows. Recomendo que o suporte a porta paralela esteja compilado como módulo no kernel.
# Capítulo 9 - Impressão

Este capitulo descreve como imprimir em seu sistema GNU/Linux e as formas de impressão via spool, rede, gráfica, etc.
Antes de seguir os passos descritos neste capítulo, tenha certeza que seu kernel foi compilado com o suporte a impressora USB e/ou paralela ativado, caso contrário até mesmo a impressão direta para a porta de impressora falhará. .