recursal/MDN huggingface dataset:
REST
====

El término "Transferencia de Estado Representacional" (**REST**) representa un conjunto de características de diseño de arquitecturas software que aportan confiabilidad, eficiencia y escalibilidad a los sistemas distribuidos. Un sistema es llamado RESTful cuando se ajusta a estas características.

La idea básica de REST es que un recurso, e.j. un documento, es transferido con su estado y su relaciones (hipertexto) mediante formatos y operaciones estandarizadas bien definidas.

Como HTTP, el protocolo estandar de la Web, también transfiere documentos e hipertexto, las APIs HTTP a veces son llamadas APIs RESTful, servicios RESTful, o simplemente servicios REST, aunque no se ajusten del todo a la deficinición de REST. Los principiantes pueden pensar que una API REST es un servicio HTTP que puede ser llamado mediante librerias y herramientas web estandar.

Saber más
---------

### Véase También

* restapitutorial.com
* restcookbook.com
### Conocimientos generales

* REST en Wikipedia
* REST Architecture
PHP
===

PHP (una inicialización recursiva para PHP: preprocesador de hipertexto) es un lenguaje de script de código abierto del lado del servidor que puede integrarse en HTML para crear aplicaciones web y sitios web dinámicos.

Ejemplos
--------

### Sintaxis básica


```php
// Comienzo del código PHP
<?php
 // El código PHP va aquí
?>
// Fin del código PHP
```

### Mostrar datos en pantalla


```php
<?php
 echo "¡Hola mundo!";
?>
```

### Variables PHP


```php
<?php
 // Variables
 $nome='Danilo';
 $sobrenome='Santos';
 $pais='Brasil';
 $email='danilocarsan@gmail.com';

 // Mostrando las variables
 echo $nome;
 echo $sobrenome;
 echo $pais;
 echo $email;
?>
```

Véase también
-------------

* Página web oficial
* PHP en Wikipedia
* Programación PHP en Wikibooks
* Glosario de documentos web de MDN
    + Java
    + JavaScript
    + Python
    + Ruby
DOM
===

El *DOM* (Document Object Model, en español **Modelo de Objetos del Documento**) es una API definida para representar e interactuar con cualquier documento HTML o XML. El DOM es un modelo de documento que se carga en el navegador web y que representa el documento como un árbol de nodos, en donde cada nodo representa una parte del documento (puede tratarse de un elemento, una cadena de texto o un comentario).

El DOM es una de las APIs más usadas en la Web, pues permite ejecutar código en el navegador para acceder e interactuar con cualquier nodo del documento. Estos nodos pueden crearse, moverse o modificarse. Pueden añadirse a estos nodos manejadores de eventos (*event listeners* en inglés) que se ejecutarán/activarán cuando ocurra el evento indicado en este manejador.

El DOM surgió a partir de la implementación de JavaScript en los navegadores. A esta primera versión también se la conoce como DOM 0 o "Legacy DOM". Hoy en día el grupo WHATWG es el encargado de actualizar el estándar de DOM.

Para saber más
--------------

### Cultura General

* DOM en Wikipedia
### Información Técnica

* La documentación del DOM en MDN (en-US)
* Las distintas especificaciones del DOM en el W3C
Navegador
=========

Un *Navegador web* es un programa o aplicación que da acceso a la Web, y permite a los usuarios el acceso a más páginas a través de hipervínculos.

Para saber más
--------------

### Cultura general

* Navegador\_web en Wikipedia
* La evolución de la web
### Descargar un navegador

* Mozilla Firefox
* Google Chrome
* Microsoft Internet Explorer
* Opera Browser
Identificador
=============

Un **Identificador** es una secuencia de caracteres en el código que identifica una Variable, función o propiedad.

En JavaScript, los identificadores distinguen entre mayúsculas y minúsculas y pueden contener letras Unicode, `$`, `_`, y dígitos (0-9), pero no puede comenzar con un dígito.

Un identificador se diferencia de una cadena en que una cadena son datos, mientras que un identificador es parte del código. En JavaScript, no hay forma de convertir identificadores en cadenas, pero a veces es posible procesar cadenas como identificadores.

Véase también
-------------

* Identificador en Wikipedia
* Glosario de MDN Web Docs
    + Alcance
    + Cadena
    + Unicode
Node
====

El término **nodo** puede tener varios significados según el contexto. Puede referirse a:

Node (DOM)
En el contexto del DOM, un **nodo** es un único punto en el arbol de nodos. Los nodos pueden ser varias cosas el documento mismo, elementos, texto y comentarios.

Otro uso de la palabra es cuando se habla de Node.js
Modo poco riguroso — Sloppy
===========================

ECMAScript 5 y versiones posteriores permiten que los scripts opten por un nuevo Modo estricto, que modifica la semántica de JavaScript de varias formas para mejorar su capacidad de recuperación y facilitar la comprensión de lo que sucede cuando hay problemas.

El modo normal, no estricto de JavaScript a veces se denomina **sloppy mode — modo poco riguroso**. Esta no es una designación oficial, pero es probable que la encuentres si pasas tiempo haciendo código JavaScript serio.

Aprende más
-----------

### Conocimientos generales

* "Modo estricto" en el capítulo 7 ("Sintaxis de JavaScript") en el libro — Hablar *JavaScript*.
IndexedDB
=========

IndexedDB es una API Web diseñada para almacenar estructuras de datos grandes en los navegadores e indexarlas para realizar búsquedas de alto rendimiento. Al igual que los sistemas RDBMS basados en SQL, IndexedDB es un sistema de base de datos transaccional. Sin embargo, usa objetos de JavaScript en vez de columnas fijas para almacenar los datos.

Conoce más
----------

* La API de IndexedDB en MDN
* Las especificaciones W3C de IndexedDB
Prototipo
=========

Un prototipo es un modelo que muestra pronto en el ciclo de desarrollo la apariencia y el comportamiento de una aplicación o producto.

Mira La herencia y la cadena de prototipado.

Saber más
---------

### Conocimiento general

* Software Prototyping en la Wikipedia
Etiqueta
========

En HTML una etiqueta es usada para crear un elemento. El **nombre** de un elemento HTML es el **nombre** utilizado entre paréntesis angulares así como la etiqueta `<p>` para el párrafo. Tenga en cuenta que el nombre de la etiqueta de cierre está precedido por un carácter de barra inclinada, `</p>`, y que en los elementos vacíos la etiqueta final no es necesaria ni permitida. Si no se mencionan atributos, se utilizan valores por defecto en cada caso.

Aprende más
-----------

### Conocimientos generales

* HTML element en Wikipedia
* HTML Tags on W3
### Referencia técnica

* What are HTML tags & how to use them [en-US]
Algoritmo
=========

Un algoritmo es un conjunto de instrucciones autocontenidas que realiza una función.
HTTPS
=====

HTTPS (HTTP Secure) es una versión encriptada del protocolo HTTP. Normalmente utiliza SSL (en-US) o TLS (en-US) para cifrar toda la comunicación entre un cliente y un servidor. Esta conexión segura permite a los clientes intercambiar datos confidenciales de forma segura con un servidor, por ejemplo, para actividades bancarias o compras en línea.

Aprender más
------------

### Conocimiento general

* HTTPS en Wikipedia
* Pasando a la guia comunitaria HTTPS
SIMD
====

SIMD (pronunciado "sim-dee" en inglés) son las siglas de **Single Instruction/Multiple Data**, el cual es un tipo de clasificación de arquitecturas de computadores. SIMD permite realizar la misma operación en distintos datos lo que permite paralelismo mejorando el rendimiento — por ejemplo, en la compresión de gráficos 3D y videos, simulaciones físicas, criptografía y otros entornos.

En contraposición, SISD es una arquitectura que funciona de forma secuencial tanto para datos como para instrucciones.

Saber más
---------

### Conocimientos generales

* SIMD en Wikipedia
Flexbox
=======

Flexbox es como se llama comúnmente a Módulo de diseño de caja flexible CSS, un modelo de diseño para mostrar elementos en una sola dimensión, como una fila o como una columna.

En la especificación, flexbox se describe como un modelo de diseño para la interfaz de usuario. La característica clave de Flexbox es el hecho de que los elementos en un diseño flexible pueden crecer y reducirse. El espacio se puede asignar a los mismos elementos, o distribuidos entre o alrededor de los elementos.

Flexbox también permite la alineación de los elementos en el eje principal o transversal, proporcionando así un alto nivel de control sobre el tamaño y la alineación de un grupo de elementos.

Aprende más
-----------

### Referencia de propiedad

* `align-content`
* `align-items`
* `align-self`
* `flex`
* `flex-basis`
* `flex-direction`
* `flex-flow`
* `flex-grow`
* `flex-shrink`
* `flex-wrap`
* `justify-content`
* `order`
### Otras lecturas

* *CSS: Especificaciones del módulo de diseño de caja flexible Nivel 1*
* CSS: Guía de Flexbox - *Conceptos básicos de Flexbox*
* CSS: Guía de Flexbox - *Relación de flexbox con otros métodos de diseño (en-US)*
* CSS: Guía de Flexbox - *Alinear elementos en un contenedor flex*
* CSS: Guía de Flexbox - *Ordenar elementos flex (en-US)*
* CSS: Guía de Flexbox - *Controlando la proporción de elementos flex a lo largo del eje principal (en-US)*
* CSS: Guía de Flexbox - *Dominar el envoltorio de elementos flex (en-US)*
* CSS: Guía de Flexbox - *Casos de uso típicos de flexbox*
Espacio de Nombres
==================

Un Espacio de Nombres es un contexto para identificadores, un agrupamiento lógico de nombres usado en un programa. Dentro del mismo contexto, y el mismo ámbito, un identificator debe reconocer una entidad de forma única.

En un sistema operativo, un directorio es un espacio de nombre. Cada archivo o subdirectorio tiene un nombre único, pero un archivo puede usar el mismo nombre múltiples veces.

Veáse también
-------------

* Espacio de Nombres en Wikipedia
Google Chrome
=============

*Google Chrome* es un navegador web gratuito desarrollado por Google. Está basado en el proyecto open source (código abierto / software libre) Chromium. Algunas de las principales diferencias se encuentran en Chromium wiki. El motor de diseño que utilizan ambos es una copia del motor Blink de WebKit. Cabe señalar que en la versión de Chrome en iOS se utiliza WebKit y no Blink.

Para saber más
--------------

### Cultura general

* WebKit en Wikipedia
### Para usuarios de Chrome

Si eres usuario de chrome te recomendamos:

* Google Chrome para Android
* Google Chrome para IOS
* Google Chrome versión de escritorio
### Para Desarrolladores Web

Si deseas estar al día de las últimas funcionalidades que ofrece Chrome, te recomendamos instalar alguna de las versiones pre-estables (aún en desarrollo).

Google publica actualizaciones frecuentemente y ha diseñado estas distribuciones para que funcionen codo con codo junto a tu versión "estable" de Chrome. Te recomendamos visitar Chrome Release Blog para estar al tanto de las últimas novedades sobre la aplicación.

También te recomendamos:

* Chrome Dev para Android
* Chrome Canary versión de escritorio
Texto Simple
============

Texto simple se refiere a la información que se está utilizando como entrada para un algoritmo de cifrado, o para el texto cifrado que se ha descifrado.

Con frecuencia se usa indistintamente con el término texto claro, que se refiere de manera más general a cualquier información, como un documento de texto, una imagen, etc., que no se haya cifrado y que un humano o una computadora puedan leer sin procesamiento adicional.
Contexto de aplicación
======================

Un contexto de aplicación es un contexto de navegación de nivel superior que tiene aplicado un manifiesto.

Si un contexto de aplicación es creado como resultado de una petición al agente usuario para que navegue a un enlace profundo, el agente usuario debe navegar inmediatamente hacia al enlace profundo con sustitución habilitada. De otra manera, cuando se crea el contexto de aplicación, el agente usuario debe navegar inmediatamente a la URL de inicio con sustitución habilitada.

Téngase en cuenta que la URL de inicio no es necesariamente el valor del miembro start\_url: el usuario o agente usuario podría haberlo cambiado cuando la aplicación fue añadida a la pantalla de inicio o añadida a favoritos.
Flex Container
==============

Una plantilla con flexbox puede ser definida usando los valores `flex` o `inline-flex` en las propiedades de `display`. Este elemento es un **contenedor flex**, y cada uno de los contenedores que heredan propiedades de este, son conocidos como flex item (en-US).

El valor asignado a la variable `flex` ocasiona que este tipo de elementos sean un bloque de elementos del tipo (Flex Container), y la variable `inline-flex` genera un Contenedor Flex de nivel Inline (Interno. Estos Valores crean un Contexto de formato Flex para los elementos que es similar a un bloque flotante no introducido en el contenedor, y los margenes del contenedor no chocaran con otros items.

Learn more
----------

### Property reference

* `align-content`
* `align-items`
* `flex`
* `flex-direction`
* `flex-flow`
* `flex-wrap`
* `justify-content`
### Further reading

* CSS Flexbox Guide: *Basic Concepts of Flexbox*
* CSS Flexbox Guide: *Aligning items in a flex container*
* CSS Flexbox Guide: *Mastering wrapping of flex items (en-US)*
Doctype
=======

`<!DOCTYPE>` informa al navegador qué versión de HTML (o XML) se usó para escribir el documento. Doctype es una declaración no una etiqueta. Además, podemos referirnos a ella como "document type declaration" o por las siglas "DTD".

Saber más
---------

### Conocimiento general

* Declaración de tipo de documento en Wikipedia
* Modo Quirk y modo estándar
### Referencia técnica

* Document.doctype, un método JavaScript que regresa el doctype
* Usando múltiples DTDs para localización
IPv6
====

**IPv6** es la versión actual del protocolo de comunicación subyacente a Internet. Lentamente, IPv6 está reemplazando a IPv4, entre otras razones porque IPv6 permite muchas direcciones de IP diferentes.

Aprende más
-----------

### Conocimientos generales

* IPv6 en Wikipedia
SCV
===

Un SCV (sistema de control de versiones) es un sistema para gestionar código fuente. Normalmente se refiere al uso de software para manejar versiones de ficheros fuente. Un programador puede modificar ficheros de código fuente sin miedo a eliminar código que funciona, porque un SCV realiza un seguimiento de cómo el código fuente ha cambiado y quién ha realizado los cambios.

Algunos sistemas SCV son CVS, SVN y Git.

Saber más
---------

### Conocimiento general

* Control de versiones en Wikipedia
Miga de pan
===========

Una **miga de pan**, o rastro de migas de pan, es una ayuda a la navegación que se sitúa normalmente entre la cabecera del sitio y el contenido principal y muestra, bien la jerarquía de la página actual en relación con la estructura del sitio desde el nivel superior o bien una lista de los enlaces utilizados para llegar a la página actual en el orden en que se han visitado.

Una miga de pan para este documento se vería más o menos así:

MDN > Glosario > Miga de pan

Los rastros de migas de pan permiten a los usuarios conocer su situación dentro de un sitio web. Este tipo de navegación, si se construye correctamente, ayuda a los usuarios a saber dónde están dentro del sitio y cómo han llegado hasta ahí. También pueden ayudar al usuario a volver a donde estaba anteriormente y pueden reducir el número de clics necesario para llegar a una página de nivel superior.
Estructura de datos
===================

**Estructura de datos** es una forma particular de organizar datos para que puedan ser usados eficientemente.

Aprende más
-----------

### Conocimiento general

* Estructura de datos en Wikipedia
Type
====

El **tipo** (*type* o *data type*) es una característica of una valor que afecta al tipo de datos que puede almacenar; por ejemplo, en JavaScript un `Boolean` (en-US) solo tiene valores `true`/`false`, mientras que un `String` contiene cadenas de texto, un `Number` contiene números de cualquier tipo, y así sucesivamente.

El tipo de datos de un valor también afecta a qué operaciones son válidas en ese valor. Por ejemplo, un entero puede multiplicarse por un entero, pero no por una cadena.

Saber más
---------

### Conocimientos generales

* Data Type en Wikipedia
* Data types en JavaScript
Block
=====

El término **bloque** puede tener diferentes significados dependiendo del conexto. Puede referirse a:

Block (CSS)
Un **bloque** en una página web es un elemento HTML que aparece en una nueva línea, por ejemplo debajo del elemento precedente y encima del siguiente elemento (comúnmente conocido como *block-level element)*. Por ejemplo, visto que `a` es un *elemento en línea* — puedes colocar varios enlaces uno al lado del otro en el código HTML y no se posicionarán en la misma línea como uno al otro en la salida representada.
Cookie
======

Una cookie es una pequeña información enviada por un sitio web que se almacena en el navegador del ordenador del usuario.

Las cookies sirven para personalizar la experiencia que tiene el usuario al navegar por un sitio web. Pueden contener las preferencias del usuario o entradas de información al acceder a dicha web. El usuario puede personalizar su navegador para aceptar, rechazar, o borrar las cookies.

Las cookies pueden establecerse y modificarse desde el lado del servidor mediante el encabezado HTTP `Set-Cookie` o usando `document.cookie` en JavaScript.

Saber más
---------

### Conocimiento general

* Cookie en Wikipedia
Preprocesador CSS
=================

Un preprocesador CSS es un programa que te permite generar CSS a partir de la syntax (en-US) única del preprocesador. Existen varios preprocesadores CSS de los cuales escoger, sin embargo la mayoría de preprocesadores CSS añadiran algunas características que no existen en CSS puro, como variable, mixins, selectores anidados, entre otros. Estas características hacen la estructura de CSS más legible y fácil de mantener.

Para utilizar un preprocesador CSS debes instalar un compilador CSS en tu web server (en-US).

Aprende más
-----------

### Conocimiento general

Estos son algunos de lo preprocesadores CSS más populares:

* SASS
* LESS
* Stylus
* PostCSS
Método
======

Un **metodo** es una función la cual es propiedad de un Objeto. Existen dos tipos de métodos: *Métodos de Instancia* los cuales son tareas integradas realizadas por la instacia de un objeto, y los *Métodos Estáticos* que son tareas que pueden ser llamadas directamente en el constructor de un objeto.

**Nota:** en JavaScript las funciones en si son objetos, asi que, en ese contexto, un método es de hecho un objeto de referencia (en-US) a una función.

Aprender más
------------

### Aprender acerca de esto

* Método (informática) en Wikipedia
* Definiendo un método en JavaScript (comparacion de la sintaxis tradicionas y la nueva abreviación)
### Referencia Técnica

* Lista de los métodos integrados de JavaScript (en-US)
Asíncrono
=========

El término **asíncrono** se refiere al concepto de que más de una cosa ocurre al mismo tiempo, o múltiples cosas relacionadas ocurren sin esperar a que la previa se haya completado. En informática, la palabra "asíncrono" se usa en los siguientes contextos:

Redes y comunicaciones

La comunicación asíncrona es un método de intercambio de mensajes entre dos o más partes, en la que cada parte recibe y procesa el mensaje cuando sea conveniente o posible de realizar, en vez de hacerlo inmediatamente al recibirlo. Adicionalmente, los mensajes pueden ser enviados sin esperar el acuse de recibo de los mismos, bajo el entendimiento de que si ocurre algún problema, quien los recibe solicitará las correcciones o manejara la situación.

Para los humanos, el correo electrónico es un método de comunicación asíncrono: el emisor envía el correo y el receptor lo leerá y responderá cuando le sea conveniente en vez de hacerlo de una vez. Ambos lados pueden continuar enviando y recibiendo mensajes cuando quiera que ellos deseen, en lugar de tener que programarse uno alrededor del otro.

Cuando el software se comunica de manera asíncrona, un programa puede realizar una solicitud de información a otra pieza de software (un servidor, por ejemplo), y continuar haciendo otras tareas mientras espera por la respuesta. Por ejemplo,la técnica de programación AJAX (Asynchronus JavaScript and XML) - usualmente llamada simplemente "Ajax", incluso a pesar de que usualmente en las aplicaciones modernas se utilice JSON en vez de XML - es un mecanismo por el que se solicitan tamaños relativamente pequeños de datos al servidor usando HTTP , siendo los resultados devueltos cuando estén disponibles más que de inmediato.

Diseño de Software

El diseño de software asíncrono amplía el concepto al construir código que permita a un programa solicitar que una tarea se realice al mismo tiempo que la tarea (o tareas) original, sin detenerse a esperar a que la primera se haya completado. Cuando la tarea secundaria se completa, la original es notificada usando un mecanismo acordado, de tal forma que sepa que el trabajo se ha completado y que el resultado, si es que existe, está disponible.

Existen diversas técnicas de programación para implementar software asíncrono. Vea el artículo JavaScript Asíncrono para terner una introducción a ellos.

Saber más
---------

### Referencia técnica

* Obteniendo datos del servidor (Área de aprendizaje)
* Sincrónico
SEO
===

**SEO** (Search Engine Optimization) también conocido como posicionamiento web, es el proceso de hacer un sitio web más visible en los resultados de búsqueda o mejorar el ranking de búsqueda.

Los motores de búsqueda siguen los enlaces de una página a otra, y el índice del contenido encontrado. Al realizar una búsqueda, el motor de búsqueda muestra el contenido indexado en base a su tabla de contenidos organizándolos guiados por las reglas de su algoritmo. El cumplimiento de las directrices de los buscadores con exactitud no implica el correcto posicionamiento del proyecto asociado en los mejores resultados, pero sí la ausencia de una penalización por parte del algoritmo del buscador.

Los motores de búsqueda dan algunas pautas para el SEO, pero los grandes motores de búsqueda mantienen resultado la clasificación como secreto comercial. El SEO combina las directrices oficiales del motor de búsqueda, el conocimiento empírico y el conocimiento teórico de los artículos científicos o patentes.

Métodos de SEO se dividen en dos grandes clases:

SEO on Page

Conjunto de factores que existen en la web a posicionar que influyen en los resultados de búsqueda. Estos factores son tales como titles, descriptions, contenido y calidad del mismo, densidad de términos, correcta estructuración de contenidos...

SEO off Page

Conjunto de factores externos que influyen en los resultados de búsqueda. Estos factores son la experiencia del usuario en la web a posicionar, tráfico y sobre todo los links o enlaces externos que apuntan a tu web.

Aprende más en
--------------

* SEO on Wikipedia
### Aprende SEO

* Google Webmaster