OpenLLM-France/wikimedia huggingface dataset:
# Aplicativos em PHP/Recursos Extras/Controle de Estoque
## 13.1 - Controle de Estoque

Três sistemas de exemplo de Controle de Estoque em:
http://ribafs.net - Seção Aplicativos de Exemplo - MySQL
Exemplo de controle de Estoque no Viva o Linux - http://www.vivaolinux.com.br/scripts/verScript.php?codigo=694
LinuxStok - Gestão Comercial - http://linuxstok.wikidot.com/
Stoq - Gestão Comercial - Instalação e configuração - http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6767
Implantação de Controle de Estoque em uma Clínica Odontológica - http://web.archive.org/web/20070107162215/http://www.em.ufop.br/depro/curso/monografias/2003renata.pdf
Sistemas de Controle de Estoque no superdownloads - Não são em PHP mas ajudam a ter ideia como a coisa funciona e algumas funcionalidades que devemos implementar:
http://superdownloads.uol.com.br/busca/controle-de-estoque.html
Sistema Completo com controle de estoque e gerenciamento 100% em PHP http://www.visualmedia.com.br/loja
# Aplicativos em PHP/Recursos Extras/Código de Barras
## Código de barras 2 de 5 intercalado

Script no PHPBrasil:
http://phpbrasil.com/scripts/script.php/id/3663

## Pear parte 5 - Gerando códigos de barras padrão 128

http://www.revistaphp.com.br/print.php?id=146
# Aplicativos em PHP/Recursos Extras/Contadores de visita
## Contador de Acesso em PHP

Do Ândres Oliveira na Revista do PHP.
http://revistaphp.com.br/artigo.php?id=139
Criamos um contador, programado em PHP, que leva a conta das impressões que foram realizadas numa página web, utilizando um arquivo de texto como apoio.
O objetivo é levar uma contagem das vezes que uma página foi visitada.
Colocamos o seguinte script PHP ao final da página, se entenderá bem se for lido o artigo citado antes.
www.revistaphp.com.br
Ademais, criamos um arquivo chamado "contador.txt" que salvamos no mesmo diretório que a página. Tal arquivo foi inicializado com um zero (0) como único texto.
Nota: Se tiver problemas na hora de escrever em um arquivo, quase com toda probabilidade, estará protegido contra escritura. Ou o arquivo ou então o diretório.
Se você tiver seu próprio servidor terá que modificar as permissões do tal arquivo ou diretório por sua conta. Entretanto, se estiver publicando em uma hospedagem contratada em uma provedor terá que se informar de que mecanismo há que colocar em funcionamento nesse provedor para conseguir as permissões. Em muitos casos existirá um painel de controle onde modificar essas coisas, em outros casos terá que escrever ao suporte técnico para que eles façam a mão ou que digam como fazer, se é que é possível.
Com isso já está feito um contador muito simples, mas muito funcional.
Site: http://www.netcenterdesign.com.br Site: http://www.apiceinternet.com.br
# Aplicativos em PHP/Recursos Extras/Integração com AJAX
## Palavras Acentuadas com AJAX

Dica de Fabrício Nogueira Magri no PHPBrasil
Artigo de Rafael Dohms (PHPDF) sobre acentos

## AJAX - Parte 1

Tutorial do Rodrigo Ferreira Valentim no PHPBrasil
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=7099

## Migrating Web-Based PHP Applications to Ajax

http://www.onlamp.com/pub/a/php/2007/05/10/migrating-web-based-php-applications-to-ajax.html

## Ajax e PHP - Carregando dados sem refresh

http://www.imasters.com.br/artigo/3918/javascript/ajax_e_php_-_carregando_dados_sem_refresh//imprimir/

## Exemplos de AJAX em PHP utilizando XAJAX

http://www.japs.etc.br/2006/02/exemplos-de-ajax-em-php-utilizando-xajax/

## Ajax+Php sites

Estes websites são escolhidos e avaliados por contribuidores de pt.blinklist.com.
http://pt.blinklist.com/tag/ajax+php/
Tem umas apostilas lá
http://battisti.wordpress.com

## Busca PHP com Ajax

http://www.conexaomx.com.br/artigos/ajax/busca-php_ajax

## Explain the Difference AND How it works between POST and GET in AJAX

http://www.planet-source-code.com/vb/scripts/ShowZip.asp?lngWId=8&lngCodeId=1961&strZipAccessCode=tp%2FB19613132

## AJAX - Pesquisa Em Tempo Real

http://www.php5.com.br/?php=_scripts/mostra&id_s=105
http://www.php5.com.br/?php=_scripts/mostra&id_s=163

## Ajax com PHP - Do Iniciante ao Profissional

http://www.altabooks.com.br/pdf/ajax_php.pdf

## CEP AJAX

http://www.imasters.com.br/forum/lofiversion/index.php/t172741.html

## Frameworks com suporte a AJAX
### Dojo

Download - http://dojotoolkit.org/
Adding Dojo to Your Pages - http://dojotoolkit.org/book/dojo-book-0-4/part-2-out-box-dojo/getting-started/adding-dojo-your-pages

## Artigos Relacionados a AJAX no site da RevistaPHP

http://revistaphp.com.br/artigos_resultado.php?c=2

## Engatinhando com AJAX e PHP. Parte 1

http://felipetonello.com/blog/2006/11/14/engatinhando-com-ajax-e-php-parte-1/

## Parte 2 do tutorial AJAX + PHP

http://felipetonello.com/blog/2007/01/20/engatinhando-com-ajax-e-php-parte-2/

## Palestras de AJAX

Palestras e material de AJAX utilizado por Rafael Dohms do PHPDF
Palestras
Script de Auto-complete
# Aplicativos em PHP/Recursos Extras/Livros de visita
## Livros de Visitas em PHP

Exemplo do Éder - http://www.phpbrasil.com/scripts/script.php/id/93
Livro de Visitas Prático - http://www.phpbrasil.com/scripts/script.php/id/126
Livro de Visitas Personalizável - http://www.phpbrasil.com/scripts/script.php/id/183
Livro de Visitas com Admin - http://www.phpbrasil.com/scripts/script.php/id/2557
Livro de Visitas TXT - http://www.phpbrasil.com/scripts/script.php/id/2832
Advanced GuestBook - http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1362&lngWId=8
# Assembly no Linux/Sintaxes e ferramentas

Existem basicamente dois estilos de representação do código Assembly presentes no Linux e em outros unices. UM deles é o AT&T, que vem acompanhado o Unix desde sua criação e conhecido por muitos. O outro, conhecido pela velha guarda de fuçadores do DOS e também por muitos engenheiros que ao longo do tempo vêm usando estes processadores, seja em um PC ou de forma separada, em projetos de automação, é a sintaxe, ou formato, Intel.
Segue uma breve indicação de diferenças entre ambos. Mais detalhes e até conversores podem ser encontrados facilmente na internet.

### Prefixos

* Intel, não usa prefixos para registros ou valores. Para valores hexa, h ou 0x, para binários, b.
* AT&T, utiliza % para registradores, e $ para valores, $0 para hexadecimais.
Exemplo:
| Intel | AT&T |
| mov eax, 1 | movl, $1, %eax |
| mov ebx, 0ffh | movl $0xff, %ebx |

### Direção dos operadores

* Intel, primeiro operador é o destino, segundo a fonte.
* AT&T, contrário de Intel, primeiro é fonte, segundo destino.
Exemplo:
| Intel | AT&T |
| mov eax, [ecx] | movl(%ecx), %eax |

### Operadores de memória

* Intel, utiliza para o registro base.
* AT&T, utiliza para o registro base.
Exemplo:
| Intel | AT&T |
| mov eax, [ebx] | movl(%ebx), %eax |

### Sufixos

A sintaxe AT&T utiliza-se de um sistema de sufixos para indicar o tipo de dado, semelhante à linguagem C, com l para long, w para word, b para byte. A sintaxe Intel tem diretivas semelhantes para o uso com operandos de memória, por exemplo: dword ptr, byte ptr, sendo dword igual a long.
Esta pequena explicação deve ajudar a entender certos códigos presentes no Kernel do Linux e também na Internet, em literaturas especializadas. O diretório /arch/i386 do seu código-fonte do kernel, contém em seus subdiretórios vários exemplos de código Assembly.
O maior representante da sintaxe AT&T é o gás, ou as, presente no pacote binutils, e essencial para a compilação do kernel do Linux. O boot e as partes de baixo nível (arquivos .S do kernel) são compilados com ele. Apesar de existente em toda instalação de Linux que é habilitada para compilar um kernel, vamos utilizar o NASM e no TASM. Sua instalação é simples e além de ter uma arquitetura mais avançada e otimizações para os vários tipos de processadores x86, é bem fácil de ser encontrados exemplos e documentações. Além disso, ele abre exceções que facilitam a programação, tais como a representação de hexadecimais, que em Intel seria por exemplo FFh, como 0xff, como utilizamos na linguagem C. Em [5] você pode encontrar mais detalhes sobre ele, bem como código-fonte e instruções para instalação.
Mas realmente não tenho a intenção de iniciar uma guerra santa, do tipo que existe entre os editores Emacs e VI, mas apenas usar o que se mostra mais claro e coerente com o objetivo deste artigo.
# Assembly no Linux/Introdução

Uma linguagem de montagem ou assembly é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa. A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemônicos.
Por exemplo, enquanto um computador sabe o que a instrução-máquina IA-21 (10110000 01100001) faz, para os programadores é mais fácil recordar a representação equivalente em instruções mnemônicas MOV AL, 61h. Tal instrução ordena que o valor hexadecimal 61 (97, em decimal) seja movido para o registrador 'AL'.
* A tradução do código de montagem em código de máquina não é chamada compilação, mas montagem;
* Cada arquitetura tem sua própria linguagem de maquina, então, cada uma tem sua própria linguagem de montagem;
* Embora todos os computadores de utilização genérica são capazes de desempenhar essencialmente as mesmas funções, o modo como o fazem é diferente;
* A maioria dos processadores só consegue manipular os dados que estão em registradores e a linguagem de montagem facilita o trabalho direto com os registradores;
* No mercado de PCs, dominado por processadores Intel e AMD, atualmente existem duas arquiteturas. Primeiro a IA32 , criada pela Intel em 1985 e primeiramente utilizada pelo processadores i386 e segundo a IA32-EM64T (ou IA32-AMD64 ) criada em 2002 pela AMD (mas também utilizada pela Intel hoje). O IA32 utiliza o grupo de instruções chamado x86, e o IA32-EM64T utiliza o grupo chamado x86-64. As duas arquiteturas usam números diferentes de registradores gerais e tamanho. Enquanto os registradores do x86 são 32 bits os da x86-64 são 64 bits.
# Assembly x86/Modos de operação

A compatibilidade com versões anteriores de software tem sido desde o princípio a principal fonte de decisões de design da arquitetura x86. Quando a Intel desenhou o 8086, utilizou nele um modelo de memória que permitia que os programas desenvolvidos para microprocessadores anteriores da Intel pudessem ser facilmente adaptados para correr na nova arquitetura.
Posteriormente à introdução do 8086, as alterações de fundo à arquitetura têm sido isoladas por meio de modos de operação. Define-se modo de operação como os elementos do estado interno do processador que afetam o comportamento da execução da totalidade ou de parte das instruções. Esse estado interno é atingido por execução de uma sequência de instruções.
Seja C o comportamento do processador após a operação de Reset, ou seja, quando o processador acabou de se inicializar. Neste caso, C representa o comportamento do processador 8086. F1 e F2 são modos de operação, e f1 e f2 as sequências de instruções que é necessário executar para que o processador atinja os estados F1 e F2, respectivamente. Representemos por $M(C,F)$ o comportamento resultante de aplicar o modo de operação F ao comportamento C. P1 é um programa que é a composição de $f1$ com um programa que assume $M(C,F1)$, e P2 um programa que é a composição de $f2$ com um programa que assume $M(C,F2)$.
* Se o processador suporta o modo de operação F1 mas não o modo F2, a execução de P2 vai falhar porque o processador não vai reconhecer f2. No entanto, a execução de P1 vai ser bem sucedida, uma vez que f1 é reconhecida pelo processador.
* Se o processador suporta os modos de operação F1 e F2, a execução de P1 vai ser bem sucedida, uma vez que f1 vai ser reconhecida. Por sua vez, o suporte ao modo F2 é silenciosamente ignorado, já que o programa P1 ignora a sua existência. Em contrapartida, uma vez que a sequência f2 não é executada, as modificações patentes em F2 não afetam a execução de P1.
A arquitetura x86 define 5 modos de operação oficiais.
# Assembly no Linux/Conclusão

Existem casos de sobra tanto no MSX e em outros sistemas baseados em Z80 quando no DOS, que versam sobre o uso destes artifícios de programação para resolução de situações que encaradas do modo tradicional não teriam outra saída. Isso nos leva a entender que nem sempre uma resposta é definitiva para uma situação e que, se talvez ela não seja, utilizar-se do mesmo artifício utilizado há 15 anos, ao menos esta experiência deve nos servir para incentivar a procura da solução correta.
A abordagem enlatada que encontramos hoje em dia, apesar de benéfica para a produtividade de muitos setores, tem tornado escasso o numero de pessoas que realmente podem ter uma solução para um problema. Muito da vontade de pesquisar foi substituída pela cobrança de certos padrões, e o Linux é uma prova de que não seguimos estes padrões podemos ter um bom resultado.
Obviamente, para pessoas com conhecimentos mais avançados, este artigo não acrescentou nada ou pareceu sem utilidade e nostálgico. Mas ainda existem pessoas em nosso país trabalhando com equipamentos de alta precisão, em tempo real ou não, que procuram por uma solução alternativa para migrar de seus sistemas em DOS, que funcionam bem e só pecam por estarem submetidos ao jugo de uma licença que pode custar muito caro ao pequeno empresário, para o Linux, mas não sabem como. E geralmente são sistemas bem feitos, precisos, e com uma boa dose de dedicação do “dono”, que não merecem ser enterrados com uma arquitetura a do DOS.
# Assembly no Linux/Syscalls

Syscalls, para quem não está acostumado com o termo, são chamadas de sistema. Uma comparação que podemos fazer é com os serviços do DOS e da BIOS que eram usados quando programados em C ou Assembly. Por exemplo, existia a interrupção do teclado, que era desviada para atualizar um contador e assim manter o relógio do exemplo clássico funcionando. Os serviços, ou interrupções, mais usados eram: 0x21, 0x25, do DOS, e 0x10, 0x16, da BIOS. O princípio era o seguinte, um código de função era carregado em um registro do processador, e parâmetros eram carregados em outros. Em caso de um número excessivo de parâmetros, a função aceitaria um bloco de memória com os parâmetros, em vez de registros.
No caso do Linux, o serviço a ser chamado é o 0x80, que é o gancho para as funções básicas que o kernel nos provê. Vamos nos deter apenas em chamá-la, e não desviá-la, o que em um sistema como este não é tão trivial. Podemos desviar as funções, mas a própria syscall, como fazíamos, é um pouco mais difícil, devido às permissões e exceções do gerenciador de memória, como foi explicado anteriormente, no movo protegido.
Uma lista das funções disponíveis pode ser encontrada no arquivo '/usr/includes/sys/syscall.h ou dentro da fonte do kernel, em caso de uma estrutura diferente de diretórios. Os nomes das chamadas estão no formato SYS_<função>, por exemplo:
Geralmente, a função a ser chamada é carregada em eax, e os argumentos em ebx, ecx, edx, esi, edi, sucessivamente, até cinco argumentos, ou em caso de mais argumentos, um ponteiro para a estrutura com todos é passada por ebx, com todos os argumentos arranjados sucessivamente na memória. O retorno da chamada é dado em eax, que contém o valor de retorno.
O conhecimento das chamadas pode ser obtido lendo as fontes do kernel e também por meio de sites e exemplos disponíveis, mas são todas as funções básicas do sistema, que são explorados por bibliotecas como a GLIBC, que implementa uma série de funções e padrões usados por vários programas.
Temos as RST do Z80 e os hooks da ROM dele, que funcionam com este mesmo princípio. Alguns programas desviam o hook do teclado, para uma rotina que fazia o mesmo que no DOS, atualizando um relógio, ou ainda o hook de Iprint, para fazer filtros para impressoras, que naquela época não seguiam um padrão bem-definido, e vez por outra confundiam os caracteres de nossa língua, o que obrigava a troca de ROMs por aí.
Intencional ou não, este detalhe de projeto sempre abriu muita possibilidade para que os programadores, escassos de recursos e tempos, mas sempre com sobra de imaginação, resolvessem seus problemas. Enquanto certas interrupções são chamadas em um intervalo de tempo regular, outras são chamadas apenas quando da execução de uma determinada função.
# Assembly x86
## Índice

Etapas de desenvolvimento do texto (5 ou 9 etapas) :
| Início: | Básico: | Criação: | Desenvolvimento: | Maturação: | Revisão: | Desenvolvido: | Finalização: | Abrangente: |
* Introdução
* História da arquitetura x86

### Informação geral sobre a arquitetura

* Modos de operação
* Registos
* Modelos de organização da memória
* Interrupções

### Instruções base do x86

* Transferência de dados
* Controlo do fluxo de execução
* Instruções aritméticas

### Instruções extra do x86

* Instruções com números reais (floating point)
* MMX e 3D Now!
* SSE
* A instrução não documentada LOADALL

### Sintaxes dos assembladores

* Sintaxe AT&T
* Sintaxe Intel
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.
# Frísio/Livros da Bíblia em frísio
## Antigo Testamento

| Genesis Exodus Leviticus Numeri Deuteronomium Jozua Rjochters Ruth 1 Samuël 2 Samuël 1 Keningen 2 Keningen 1 Kroniken | 2 Kroniken Ezra Nehemia Ester Job Psalmen Spreuken Preker Heechliet Jesaja Jeremia Kleilieten Ezechiël | Daniël Hoséa Joël Amos Obadja Jona Micha Nahum Habakuk Sefanja Haggai Sacharja Maleächy |

## Novo Testamento

| Mattéus Markus Lukas Jehannes Hannelingen fan de Apostels Romeinen 1 Korintiërs 2 Korintiërs Galatiërs | Efeziërs Filippiërs Kolossers 1 Tessalonikers 2 Tessalonikers 1 Timóteüs 2 Timóteüs Titus Filémon | Hebreeërs Jakobus 1 Petrus 2 Petrus 1 Jehannes 2 Jehannes 3 Jehannes Judas Iepenbiering |
# Frísio/Alfabeto e numerais
## Numerais cardinais

| 1 | ien |
| 2 | twa |
| 3 | trije |
| 4 | fjouwer |
| 5 | fiif |
| 6 | seis |
| 7 | sân |
| 8 | acht |
| 9 | njoggen |
| 10 | tsien |
| 11 | alve |
| 12 | tolf |
| 13 | tretjin |
| 14 | fjirtjin |
| 15 | fyftjin |
| 16 | sechstjin |
| 17 | santjin |
| 18 | achttjin |
| 19 | njoggentjin |
| 20 | tweintich |
| 30 | tritich |
| 40 | fjirtich |
| 50 | fyftich |
| 60 | sechstich |
| 70 | santich |
| 80 | tachtich |
| 90 | njoggentich |
| 100 | hûndert |
| 200 | twahûndert |
| 300 | trijehûndert |
| 400 | fjouwerhûndert |
| 500 | fiifhûndert |
| 600 | sechshûndert |
| 700 | sânhûndert |
| 800 | achthûndert |
| 900 | njoggenhûndert |
| 1 000 | tûzen |
| 1 000 000 | miljoen |
| 1 000 000 000 | miljard |
| 1 000 000 000 000 | biljoen |
| 1 000 000 000 000 000 | biljard |
| 1 000 000 000 000 000 000 | triljoen |
| 1 000 000 000 000 000 000 000 | triljard |
| 1 000 000 000 000 000 000 000 000 | kwadriljoen |
| 1 000 000 000 000 000 000 000 000 000 | kwadriljard |
| 1 000 000 000 000 000 000 000 000 000 000 | kwintiljoen |

## Numerais ordinais

| 1º | earst |
| 2º | twadde |
| 3º | tredde |
| 4º | fjirde |
| 5º | fyfde |
| 6º | seisde |
| 7º | sânde |
| 8º | achtste |
| 9º | njoggende |
| 10º | tsiende |
| 11º | alfde |
| 12º | tolfde |
| 13º | trettjinde |
| 14º | fjirtjinde |
| 15º | fyftjinde |
| 16º | sechstjinde |
| 17º | santjinde |
| 18º | achttjinde |
| 19º | njoggentjinde |
| 20º | tweintichste |
| 30º | tritichste |
| 40º | fjirtichste |
| 50º | fyftichste |
| 60º | sechstichste |
| 70º | santichste |
| 80º | tachtichste |
| 90º | njoggentichste |
| 100º | hûndertste |
| 200º | twahûndertste |
| 300º | trijehûndertste |
| 400º | fjouwerhûndertste |
| 500º | fiifhûndertste |
| 600º | sechshûndertste |
| 700º | sânhûndertste |
| 800º | achthûndertste |
| 900º | njoggenhûndertste |
| 1 000º | tûzende |

## Numerais multiplicativos

| dûbel trijerigen fjouwerrigen fiifrigen sechsrigen sânrigen achtrigen njoggenrigen tsienrigen | alverigen tolfrigen trettjinrigen fjirtjinrigen fyftjinrigen sechstjinrigen santjinrigen achttjinrigen njoggentjinrigen | tweintichrigen tritichrigen fjirtichrigen fyftichrigen sechstichrigen santichrigen tachtichrigen njoggentichrigen hûndertrigen | twahûndertrigen trijehûndertrigen fjouwerhûndertrigen fiifhûndertrigen sechshûndertrigen sânhûndertrigen achthûndertrigen njoggenhûndertrigen tûzenrigen |
# Frísio/Introdução
## Introdução

Neste livro serão introduzidos os livros da Bíblia, as letras do alfabeto e os numerais em frísio. Este será o primeiro curso do livro de frísio no Wikilivros. Os 39 livros do Antigo Testamento serão divididos em 3 colunas e 13 linhas em cada coluna, e os 27 livros do Novo Testamento, em 9 linhas em cada coluna. As letras do alfabeto serão colocadas no tamanho 30, e os numerais multiplicativos serão divididos em 4 colunas e 9 linhas em cada coluna.
# Frísio
## Índice

* Capa
* Introdução
* Livros da Bíblia em frísio
* Alfabeto e numerais
# Futebol

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.
Este WikiLivro trata da história do Futebol, desde a Antiguidade até os te
mpos modernos.
* Capa
* Antiguidade
* Idade Média
* Renascimento
* O começo do futebol Moderno
** Primeiras regras
** Primeiros times
** Primeiras competições
* Início do século XX
** Chegada ao Brasil
* 1910-1930
* 1930-1950
** Primeira Copa do Mundo
* 1950-1970
** Primeira Liga dos Campeões
** Primeira Taça Libertadores
* 1970-1990
* Anos 1990
* Anos 2000
# Livro de receitas/Kimchi

Kimchi (김치), também conhecido como kimchee ou gimchi, é um prato coreano de legumes em conserva, geralmente rabanete coreano com repolho-chinês e geralmente servido como acompanhamento . Geralmente é fermentado em uma salmoura de molho de anchova, gengibre, alho, cebola verde e pimenta. Existem inúmeras variedades. A seguir, é apresentada uma receita padrão para o baechoo kimchi (kimchi de repolho-chinês), um tipo comum que é provavelmente o que a maioria dos não-coreanos pensa como kimchi.

## Receita
### Ingredientes

* 1 cabeça de repolho-chinês;
* ½ cebola, em fatias finas;
* ¼ cenoura, juliana fina;
* ¼ rabanete coreano (muwoo), juliana fina;
* 4 cebolas verdes (cebolinhas), cortadas em pedaços de 3 cm;
* 2 colheres de sopa de alho picado;
* 1 colher de chá de gengibre picado
* ½ xícara de gochugaru (pimenta em pó coreana)
* 2 colheres de chá de sal
* 1 colher de sopa de açúcar
* ½ xícara de sal marinho (ou qualquer sal grosso)
* 1 xícara de água
* ¼ copo de jeotgal (molho de peixe coreano)

### Preparo

* Corte o repolho-chinês, lave e escorra.
* Misture ½ xícara de sal marinho (ou qualquer sal grosso) e 1 xícara de água.
* Coloque os repolhos na água salgada e retire um de cada vez para diminuir o sal.
* Em um recipiente, adicione repolhos e despeje água salgada e reserve por pelo menos 6 a 8 horas.
* O repolho deve ser macio o suficiente para dobrar.
* Lave e escorra bem.
* Misture ½ xícara de gochugaru (pimenta em pó coreana), 2 colheres de chá de sal, 1 colher de sopa de açúcar, ¼ xícara de jeotgal (molho coreano de peixe), 2 colheres de sopa de alho picado e 1 colher de chá de gengibre picado.
* Misture os legumes à mistura de pimenta em pó.
* Pegue um repolho, coloque a mistura acima em todas as camadas. Tente dobrar ao meio.
* Com 2 folhas externas, enrole tudo com cuidado.
* Coloque-o em um recipiente hermético.
* Deixe descansar em um balcão da cozinha durante a noite.
* Coloque na geladeira por 2-3 dias. (opcional)
* Sirva com arroz. (opcional)
Nota: após alguns dias, você notará algum líquido. Isso é totalmente normal. É um sinal de que o kimchi está mais maduro agora.
# Livro de receitas/Krupinik

Existem várias maneiras de preparar:

## Krupinik - 1
### Ingredientes e Preparo:

* 5 partes de álcool 40º --
* 2 partes de mel;
* 2 partes de água;
* 2 a 3 partes de açúcar.
    Preparo:
* Ferva, em uma parte de água, 30 cravos-da-índia, 1/8 de noz-moscada, canela em pau, e passe por um pano fino.
* Deixe esfriar, junte 1/2 pau de baunilha e uma porção de cascas de laranjas, limão e tangerina.
* Misture tudo, deixe repousar, em recipiente tampado, por 15 dias, coe, filtre e engarrafe.