recursal/MDN huggingface dataset:
Mozilla
=======

Os artigos abaixo incluem conteúdos sobre como baixar e compilar os códigos fontes da Mozilla. Além disso, encontrará artigos úteis sobre como o código funciona, como desenvolver complementos para aplicativos Mozilla e afins.

ComplementosModifique e amplie os aplicativos da Mozilla

FirefoxO Firefox é um popular navegador de internet da Mozilla, disponível para várias plataformas como Windows, Mac OS X e Linux no desktop, bem como Android e iOS nos dispositivos móveis. Sendo altamente compatível com as últimas tecnologias web e poderosas ferramentas de desenvolvimento, o Firefox é um excelente navegador tanto para usuários comuns quanto desenvolvedores web.
O projeto MDN
=============

O **MDN Web Docs** é uma wiki onde nós documentamos a Web aberta, as tecnologias Mozilla e outros tópicos de desenvolvedores. Qualquer pessoa é bem-vinda para adicionar e editar conteúdo. Você não precisa ser um programador ou saber muito sobre tecnologia; há muitas tarefas diferentes que precisam ser executadas, desde os simples (corrigir erros de leitura e erros de correção) até as mais complexas (escrever a documentação da API).

A missão do MDN Web Docs é fornecer aos desenvolvedores as informações necessárias para criar facilmente na plataforma web. Nós convidamos você a ajudar!

Nós precisamos da sua ajuda! É fácil. Não se preocupe em pedir permissão ou em cometer erros. Por outro lado, por favor, conheça a comunidade MDN; estamos aqui para ajudá-lo! A documentação abaixo, pode te ajudar a começar.

* Início rápido para iniciantes Você é novo no MDN e quer aprender como ajudar a torná-lo melhor? Comece aqui!
* Eu sou um usuário avançado Acesse nosso guia completo e aprofundado para os colaboradores do MDN para aprender mais quando você se sentir confortável.
* Compartilhe Se você ama o MDN, compartilhe a nossa a rede! Encontre o material necessário, como arte, ferramentas e guias para promover o MDN.
Glossário do MDN Web Docs: Definições de termos relacionados à Web
==================================================================

Tecnologias da Web contém longas listas de jargões e abreviações usadas em documentação e codificação. Este glossário fornece definições de palavras e abreviaturas que você precisa saber para entender e desenvolver para a web com sucesso.

Os termos do glossário podem ser selecionados na barra lateral.

**Nota:** Este glossário é um trabalho interminável em andamento. Você pode ajudar a melhorá-lo escrevendo novas entradas ou melhorando as já existentes.
Ferramentas para o desenvolvimento de jogos
===========================================

Nesta página você pode encontrar links para a nossa ferramenta de desenvolvimento de jogos, artigos, os quais eventualmente abrangem frameworks, compiladores, e ferramentas de debug.

asm.js

Asm.js é um subconjunto muito limitado da linguagem JavaScript, que pode ser muito otimizado e executado em ahead-of-time (AOT) como motor de compilação para um desempenho muito mais rápido do que o seu desempenho JavaScript típico. Isto é, naturalmente, ótimo para jogos.

Emscripten

Um compilador LLVM para JavaScript; com Emscripten, você pode compilar C++ e outras linguagens que podem compilar para bytecode LLVM em JavaScript de alto desempenho.Esta é uma ótima ferramenta para portar aplicativos para a Web! Há um tutorial útil de Emscripten disponível na wiki. Note que estamos cobrir o Emscripten em sua própria seção de MDN.

Gecko profiler

The Gecko profiler extension lets you profile your code to help figure out where your performance issues are so that you can make your game run at top speed

A extensão Gecko profiler permite que você recorte seu código para ajudar a descobrir onde seus problemas de desempenho de modo a poder fazer o seu jogo executar em alta velocidade.

Motores de jogos e ferramentas

Uma lista de engines, templates e tecnologias úteis pare desenvolvedores de jogos.

Shumway

O Shumway é um renderizador para o Adobe Flash construído inteiramente em JavaScript, WebGL, etc., reduzindo a diferença entre os padrões do Flash e da web. Este artigo mostra como fazer uso do Shumway e como contribuir correções e bugs para o projeto.

Toolchain for developing and debugging games

Como isso difere da depuração normal de aplicativos da web? Que ferramentas especializadas estão disponíveis? Um monte disso está sendo coberto pelo Will em ferramentas, mas aqui nós devemos fornecer um tipo de tutorial de prática para jogos de depuração toolchain, com links para coisas do Will:

* Visão geral de ferramentas básicas
* Editor de shader
* Ferramentas de performance (ainda en produção, estimada no início de 2014)
Introduction to HTML5 Game Development (summary)
================================================

Vantagens
---------

1. Os Jogos criados com HTML5 funcionam em Smartphones, tablets, PCs e smart TVs.
2. Anuncie e promova seu jogo na Web, bem como em outros meios de comunicação.
3. Pagamentos. Carregue o que quiser e use o serviço de processamento de pagamento que desejar.
4. Atualize seu jogo sempre que quiser.
5. Colete suas próprias análises.
6. Conecte-se com seus clientes mais de perto.
7. Usuários podem jogar sempre que quiserem e quando quiserem.
Tecnologias da Web
------------------

| **Function** | **Tecnologias** |
| --- | --- |
| **Audio** | Web Audio API (en-US) |
| **Gráficos** | WebGL (OpenGL ES 2.0) |
| **Entrada** | Touch events (en-US), Gamepad API (en-US), sensores de dispositivos, WebRTC (en-US), Full Screen API (en-US), Pointer Lock API (en-US) |
| **Linguagens** | JavaScript (ou C/C++ usando Emscripten para compilar o JavaScript) |
| **Networking** | WebRTC (en-US) e/ou WebSockets |
| **Armazenamento** | IndexedDB ou a "nuvem" |
| **Web** | HTML, CSS, SVG, Social API (e muito mais!) |

Full Screen API (en-US)

gameplay de tela cheia

Gamepad API (en-US)

Use gamepads ou outros controladores de jogos.

HTML e CSS

Contrua, estilize e disponha a interface de usuário do seu jogo.

HTML audio

Reproduza facilmente efeitos sonoros simples e música.

IndexedDB

Armazene os dados de usuário em seu próprio computador ou dispositivo.

JavaScript

Linguagem de programação web rápida para escrever o código do seu jogo, para portar facilmente seus jogos existentes Emscripten ou Asm.js.

Pointer Lock API (en-US)

Bloquei o mouse ou outro dispositivo apontador na interface do seu jogo.

SVG (Gráficos Vetorias Escaláveis)

Crie gráficos vetoriais que sejam dimensionados sem problemas, independemente do tamanho ou da resolução da exibição do usuário.

Typed Arrays (en-US)

Acessar dados binários brutos de dentro do JavaScript; Manipule texturas GL, dados de jogos ou qualquer outra coisa.

Web Audio API (en-US)

Controle a reprodução, síntese e manipulação de aúdio em tempo real.

WebGL

Crie gráficos 2D e 3D acelerados por hardware de alto desempenho. OpenGL ES 2.0.

WebRTC (en-US)

Comunicações em tempo real para controlar dados de aúdio e vídeo, incluindo teleconferência e transmissão de outros dados de aplicativos entre dois usuários, como bate-papo.

WebSockets

Conecte seu aplicativo ou site a um servidor para transmitir dados em tempo real. Perfeito para ação de jogo multiplayer, serviços de bate-papo e assim por diante.

Web Workers (en-US)

Crie threads em segundo plano executando seu próprio código JavaScript para processadres multi-core.

XMLHttpRequest e File API

Envie e receba quaisquer tipo de dados que você quiser de um servidor da Web, como baixar novos níveis de jogos e ilustrações para transmitir informações de status de jogos não em tempo real.
Publishing games
================

Jogos em HTML5 possuem uma grande vantagem sobre jogos nativos em termos de publicação e distribuição — você possui a liberdade de distribuição, promoção e monetização do seu jogo na Web, ao invés de que cada versão ficará presa em uma única loja controlada por uma empresa. Você pode se beneficiar com a Web sendo realmenete multiplataforma. Essa série de artigos demonstra as opções que você têm quando for publicar e distribuir o se jogo, e ter algum retorno enquanto você espera para se tornar famoso.Distribuição do jogo
--------------------

Então você realizou um (en-US) ou dois tutoriais (en-US) e desenvolveu um jogo em HTML5 - isso é ótimo! Distribuição de jogos provém tudo o que você necessita saber para poder distribuir o seu jogo recém criado para o mundo — incluindo hospedagem online, submetendo para marketplaces aberto, e submetendo para marketplaces fechados como Google Play ou iOS App Store.

Promovendo o jogo
-----------------

Desenvolver e terminar um jogo não é coisa fácil. Você precisa deixar claro ao mundo que você fez uma coisa interessante estar disponível, em que as pessoas irão se divertir jogando. Existem diversas técnicas de promover os jogos (en-US) — muitos deles sendo de graça — então mesmo você passando por dificuldades e batalhando para que consiga se sustentar como um desenvolvedor indie com zero de orçamento você consegue fazer muita coisa para deixar as pessoas sabendo sobre o seu mais eletrizante jogo. Promover o jogo ajuda, e em muito, conseguir monetizar ele mais pra frente, então é importante que você faça de uma forma efetiva.

Monetização do jogo
-------------------

Quando você passa horas e horas construindo, publicando e promovendo o seu jogo, você vai considerar, em algum ponto, conseguir algum sustento financeiro com ele. Monetização de jogos (en-US) é essencial para qualquer pessoa que considera o seu trabalho de desenvolvimento de jogos um esforço sério no caminho para se tornar um desenvolvedor de jogos independente, capaz de se sustentar, então leia mais e veja quais são as suas opções. A tecnologia está madura o suficiente; é apenas uma questão de escolher a melhor abordagem.
asm.js
======

Asm.js é uma especificação que define um subconjunto de JavaScript que é altamente otimizável. Esta seção examina exatamente o que é permitido no subconjunto asm.js, que melhorias confere, Onde e como você pode fazer uso dele, e mais Principais recursos e exemplos.

O que é asm.js, exatamente?
---------------------------

É muito pequeno estrita subconjunto de JavaScript, que permite que apenas coisas como `while`, `if`, números, chamado funções de nível superior, e outros meros constructos. Ele não permite que objetos, cordas, fechos, e basicamente qualquer coisa que requer a alocação heap. Asm.js se assemelha ao código C, em muitos aspectos, o objectivo é ainda válida JavaScript Chamada completamente que será executado em todos os motores atuais. Ele empurra motores de JS para otimizar este tipo de código e compiladores como emscripten Dá uma definição clara de que tipo de código para gerar. Vamos mostrar o que asm.js código se parece com e explicar como ele ajuda e como você pode usá-lo.

Este subconjunto de JavaScript já é altamente otimizado motores de JavaScript em Many fantasia usando Just-In-Time (JIT) compilação técnica. No entanto, através da definição de um padrão explícito podemos trabalhar com isso otimizando este tipo de código ainda mais e obter o máximo de desempenho como nós podemos sair dela. Ela torna mais fácil para colaborar através de vários motores de JS porque é fácil para falar e benchmark. A idéia é que este tipo de código de correr muito rápido em deveres Cada motor, e se isso não acontecer, é um bug e há uma motores de especificação claro que shoulds otimizar.

Ele aussi Torna mais fácil para as pessoas que escrevem compiladores que deseja gerar código de alto desempenho na Web. Podem consultar a especificação asm.js e sei que ele vai correr rápido Se eles aderem a asm.js padrões. Emscripten, um C / C ++ para compilador JavaScript, EMITE código asm.js para fazê-lo funcionar com desempenho quase nativo em vários navegadores.

Além disso, se um motor especialmente escolhe reconhecer asm.js código, há otimizações ainda mais que pode ser feito. Firefox é o único no navegador para fazer isso agora.

Resumo linguagem asm.js
-----------------------

asm.js é uma linguagem de programação intermediária. asm.js: tem uma taxa de perfomance muito previsível Porque é limitado a um subconjunto muito limitado de JavaScript que fornece inteiros única estritamente tipados, flutuadores, aritmética, chamadas de função, e montão acessos. As características de desempenho estão mais perto de código nativo do que a de JavaScript padrão. Usando um subconjunto de asm.js JavaScript já é suportado pelos principais navegadores web. Desde asm.js executado em um navegador fortemente depende do navegador e do hardware.
AJAX
====

**Primeiros passos** Uma introdução ao AJAX.

**AJAX** é o acrônimo para **JavaScript assíncrono + XML.** Não é exatamente uma tecnologia nova, mas um termo empregado em 2005 por Jesse James Garrett para descrever uma nova forma de utilizar em conjunto algumas tecnologias, incluindo HTML ou XHTML, CSS, JavaScript, DOMl (en-US), XML (en-US), XSLT (en-US), e o mais importante: objeto XMLHttpRequest.
 Quando essas tecnologias são combinadas no modelo AJAX, as aplicações web que a utilizam são capazes de fazer rapidamente atualizações incrementais para a interface do usuário sem recarregar a página inteira do navegador. Isso torna a aplicação mais rápida e sensível às ações do usuário.

Embora a letra X em AJAX corresponda ao XML, atualmente o JSON é mais utilizado que o XML devido às suas vantagens, como ser mais leve e ser parte do JavaScript. Ambos (JSON e XML) são utilizados para obter informações do pacote no modelo AJAX.

Documentação
------------

AJAX: Primeiros passos

Este artigo orientará o básico sobre AJAX e fornecerá dois exemplos para você começar.

Alternate Ajax Techniques

Most articles on Ajax have focused on using XMLHttp as the means to achieving such communication, but Ajax techniques are not limited to just XMLHttp. There are several other methods.

Ajax: A New Approach to Web Applications

Jesse James Garrett, of adaptive path, wrote this article in February 2005, introducing AJAX and its related concepts.

A Simpler Ajax Path

"As it turns out, it's pretty easy to take advantage of the XMLHttpRequest object to make a web app act more like a desktop app while still using traditional tools like web forms for collecting user input."

Fixing the Back Button and Enabling Bookmarking for AJAX Apps

Mike Stenhouse has penned this article, detailing some methods you can use to fix back button and bookmarking issues when developing AJAX applications.

Ajax Mistakes

Alex Bosworth has written this article outlining some of the mistakes AJAX application developers can make.

HTML no XMLHttpRequest (en-US)

MDN guide

Especificação XMLHttpRequest

W3C Working draft

Outros recursos

Outros recursos do AJAX que podem ser úteis.

Ferramentas
-----------

* Toolkits and frameworks
* Firebug - Ajax/Web development tool
* AJAX Debugging Tool
* Flash/AJAX Integration Kit
* A Simple XMLHTTP Interface Library
Exemplos
--------

* AJAX poller script
* Ajax Chat Tutorial
* RSS Ticker with AJAX
* AJAX Login System using XMLHttpRequest
* Create your own Ajax effects
* AJAX: Creating Huge Bookmarklets
* AJAX: Hot!Ajax There are many cool examples
Tópicos relacionados
--------------------

HTML, XHTML, CSS, DOM (en-US), JavaScript, XML (en-US), XMLHttpRequest, XSLT (en-US), DHTML, Canvas
Tabelas em HTML
===============

Uma tarefa muito comum em HTML é estruturar os dados tabulares, e há vários elementos e atributos próprios para essa finalidade. Em conjunto com a linguagem CSS para estilização, o HTML torna fácil a exibição de tabelas com informação na Web, tais como o seu plano de lições escolares, o horário na sua piscina local, ou estatísticas sobre os seus dinossauros favoritos ou seu time de futebol favorito. Este módulo te guia por tudo que você precisa saber sobre a estruturação de dados tabulares utilizando o HTML.

Pré-requisitos
--------------

Antes de iniciar este módulo, você deverá ter domínio dos básicos de HTML — consulte Introdução ao HTML.

**Nota:** se está utilizando um computador/tablet/outro dispositivo onde não tem a possibilidade de criar os seus próprios arquivos, pode testar a maioria dos exemplos de código num programa de codificação on-line, tais como JSBin ou Thimble.

Guias
-----

Este módulo contém os seguintes artigos:

HTML - o básico sobre tabelas

Este artigo apresenta as tabelas HTML, cobrindo o essencial, tal como linhas e células, cabeçalhos, como extender células por múltiplas colunas e linhas, e como agrupar todas as células numa coluna para efeitos de estilo.

HTML - funcionalidades avançadas de tabelas e acessibilidade

No segundo artigo deste módulo, nós vamos ver algumas funcionalidades mais avançadas das tabelas HTML — tais como legendas/resumos e agrupar as suas filas no cabeçalho da tabela (head), seções de corpo (body) e rodapé (footer) — bem como, veremos sobre a acessibilidade das tabelas para os utilizadores deficientes visuais .

Exercícios
----------

Estruturar dados sobre planetas

Na nossa avaliação sobre tabelas em HTML, vamos fornecer alguns dados sobre os planetas do nosso sistema solar, para que possa estruturá-los numa tabela HTML.
Teste suas habilidades: Noções básicas de texto HTML
====================================================

O objetivo deste teste de habilidades é avaliar se você entendeu nosso artigo Fundamentos do texto em HTML.

**Nota:** Você pode testar suas soluções nos editores interativos abaixo, entretanto pode ser de ajuda fazer download do código e usar uma ferramenta online como CodePen, jsFiddle, ou Glitch para trabalhar nas tarefas.

Se você ficar travado em alguma tarefa, peça-nos ajuda — veja a seçãoAssessment or further help no final desta página.

Texto básico em HTML 1
----------------------

Nesta tarefa queremos que você faça a marcação do HTML fornecido, utilizando a semântica de título e parágrafo. Tente editar a amostra, ao vivo, para alterar o exemplo final:

**Nota:** Faça download do ponto de partida desta tarefa para trabalhar em seu próprio editor ou em um editor online.

Texto básico em HTML 2
----------------------

Nesta tarefa queremos que você transforme a primeira lista sem marcação em uma lista não ordenada e a segunda em uma lista ordenada.

Tente editar a amostra, ao vivo, para alterar o exemplo final:

**Nota:** Faça download do ponto de partida desta tarefa para trabalhar em seu próprio editor ou em um editor online.

Texto básico em HTML 3
----------------------

Nesta tarefa um parágrafo é fornecido e o seu objetivo é usar elementos de ênfase para fazer a marcação apropriada de algumas palavras com forte importância e com ênfase.

Tente editar a amostra, ao vivo, para alterar o exemplo final:

**Nota:** Faça download do ponto de partida desta tarefa para trabalhar em seu próprio editor ou em um editor online.

Avaliação ou ajuda adicional
----------------------------

Você pode praticar os exemplos nos Editores Interativos acima.

Se você gostaria de ter seu trabalho avaliado ou está travado e quer pedir ajuda:

1. Coloque seu trabalho em um editor online compartilhável como CodePen, jsFiddle ou Glitch. Você pode escrever o código por si só ou usar os arquivos linkados nas seções acima.
2. Escreva um post pedindo por avaliação e/ou ajuda no Fórum de discussão do MDN na categoria Learning. Seu post deve incluir:
    * Um título descritivo como "Avaliação desejada para o teste de habilidade Texto básico em HTML 1"
    * Detalhes sobre o que você já tentou e o que você gostaria que fizéssemos, p. ex. se você está travado e precisa de ajuda ou se deseja uma avaliação.
    * Um link para o exemplo que você deseja ser avaliado ou ajudado em um editor online compartilhável (como mencionado no passo 1 acima). Essa é uma boa prática para se adquirir - é muito difícil ajudar alguém com um problema no código, se você não consegue ver o código.
    * Um link para a tarefa atual ou página de avaliação, assim poderemos achar a questão na qual você quer ajuda.
Primeiros passos programando o site no servidor
===============================================

Neste módulo nós iremos responder uma pergunta fundamental sobre programção server-side —"O que é?","Quão diferente é da programação client-side?", e "Por que é tão útil?".

Em seguida vamos fornecer uma visão geral de alguns dos mais populares server-side web framworks juntamente com orientações sobre como selecionar o mais adequado framwork para criar seu primeiro website.

Por fim, fornecemos um artigo introdutório de alto nível sobre segurança do servidor da web

Finalmente,nós iremos fornecer uma introdução de alto nível.

Pré-requisitos
--------------

Antes de começarmos este módulo,você não precisa ter nenhum conhecimento de programação server-side,ou mesmo qualquer outro tipo de programção.

Entretanto,você precisa saber como a web funciona.Nós recomendamos que você leia primeiro os seguintes tópicos:

* O que é um servidor?
* Qual o software eu preciso para construir um website?
* Como eu faço o upload de arquivos para um webserver?

Com o entendimento básico disso, você estará pronto para trabalhar nos módulos desta seção.

Guias
-----

Introdução ao server-side

Bem-vindo ao curso para iniciante de programação server-side do MDN! Neste primeiro artigo, examinaremos a programação server-side de alto nível, respondendo a perguntas como "O que é?", "Como ela difere da programação do lado do cliente?" E "Por que é tão útil?". Depois de ler este artigo, você entenderá o poder adicional disponível para sites por meio de codificação server-side.

Visão geral do cliente-servidor

Agora que você conhece a finalidade e os benefícios potenciais da programação server-side , examinaremos em detalhes o que acontece quando um servidor recebe uma "solicitação dinâmica" de um navegador. Como o código server-side da maioria dos sites lida com solicitações e respostas de maneira semelhante, isso ajudará você a entender o que precisa fazer ao escrever seu próprio código.

Framework server-side (en-US)

No último artigo foi mostrado o que uma aplicação server-side precisa fazer para responder as solicitações de um navegador da web. Agora mostramos como as estruturas da Web podem simplificar essas tarefas e ajudá-lo a escolher o framework para seu primeiro aplicativo da Web server-side.

Segurança do website

A segurança do website exige vigilância em todos os aspectos,do desenvolvimento ao uso. Este artigo introdutório não fará de você um guru em segurança de website, mas ajudará você a entender quais as primeiras medidas importantes que você deve tomar para proteger seu aplicativo da Web contra as ameaças mais comuns.

Avaliação
---------

Este módulo de "visão geral" não tem nenhuma avaliação porque ainda não mostramos nenhum código. Esperamos que, a esta altura, você tenha um bom entendimento dos tipos de funcionalidade que pode oferecer usando a programação do lado do servidor e que tenha tomado uma decisão sobre qual estrutura da web do lado do servidor usará para criar seu primeiro site.