Skip to content

Commit

Permalink
Merge branch 'react' of github.com:edgarEOS/guias.eoscostarica.io int…
Browse files Browse the repository at this point in the history
…o react
  • Loading branch information
Edgar097 committed Feb 1, 2021
2 parents 03c435f + 4fc391d commit ad75429
Show file tree
Hide file tree
Showing 9 changed files with 312 additions and 42 deletions.
132 changes: 132 additions & 0 deletions docs/aprender-eosio/componentes-eosio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
---
id: componentes-eosio
title: Componentes EOSIO
sidebar_label: Componentes EOSIO
---

## Nodeos

[Nodeos](https://developers.eos.io/manuals/eos/latest/nodeos/index) es el daemon de servicio central que se ejecuta en cada nodo de EOSIO, puede ser configurado con plugins para ejecutar un nodo. Además, se conecta y sincroniza datos con otros nodos de la red a través de P2P. Puede ser configurado para procesar:

* Contratos inteligentes.
* Validar transacciones.
* Producir bloques que contengan transacciones válidas.
* Confirmar bloques para registrarlos en el blockchain.

>[Más Información](https://guias.eoscostarica.io/docs/herramientas/opciones-configuracion-nodeos)
## Cleos

[Cleos](https://developers.eos.io/manuals/eos/latest/cleos/index) es una herramienta de línea de comandos que interactúa con Nodeos con una utilidad de billetera (Keosd) responsable de la gestión de claves y la firma de transacciones. Los desarrolladores también pueden utilizar cleos para desplegar y probar los contratos inteligentes de EOSIO.

### Como utilizar Cleos

Para usar **cleos**, necesita el dominio o dirección IP (y número de puerto) de una instancia de **nodeos** en ejecución. La instancia de nodeos debe configurarse para cargar `eosio :: chain_api_plugin` cuando se inicia. Esto permite que nodeos responda a las solicitudes de RPC que provienen de cleos.

> [Keosd](https://developers.eos.io/manuals/eos/latest/keosd/index): es un daemon de servicio de administrador de claves para almacenar claves privadas y firmar mensajes digitales.
### Comandos Cleos

```shell
$ cleos --help
$ cleos create --help
$ cleos create account --help
```

### Ejemplo Cleos

```shell
$ cleos wallet create -n mywallet --to-console
```

> [Más Información](https://guias.eoscostarica.io/docs/herramientas/linea-de-comando)
## EOSIO.CDT

[EOSIO.CDT](https://developers.eos.io/manuals/eosio.cdt/latest/index) o **Contract Development Toolkit** es un
kit de herramientas para WebAssembly(WASM) para facilitar el desarrollo de contratos inteligentes. Compilador de C++ a WASM y [**Aplication Binary Interface**](https://developers.eos.io/welcome/v2.0/getting-started/smart-contract-development/understanding-ABI-files)(ABI) conjunto generador de bibliotecas C/C++ para el desarrollo de contratos inteligentes.

## Obtenga sus llaves privadas

Más información sobre [llaves privadas](https://guias.eoscostarica.io/docs/aprender-eosio/llaves-privadas).

## Empecemos

![imagen](https://es.latamlink.io/img/diagramas/cleos.png)

### Instalación en Windows

Como una forma de ayudarlo a comenzar en el mundo EOSIO, aquí hay una guía sobre cómo instalar el Kit de herramientas de desarrollo de contratos EOSIO. Si está utilizando un sistema operativo diferente en lugar de **Windows**, visite [este sitio](https://developers.eos.io/welcome/latest/getting-started/development-environment/before-you-begin)
para ver los requisitos previos y pasar a [Instalar binarios](#instalar-binarios).
Esta guía de instalación estará dirigida a **usuarios de Windows**, desafortunadamente, EOSIO no proporciona puertos e instrucciones de PowerShell para este sistema operativo. Como desarrollador tienes dos opciones *una* utilizar una Máquina Virtual o, como en este caso un Terminal Linux en Windows. Siga estos pasos:

-Vaya a su Panel de Control
-Vaya a Programas -> Programas y características
-A continuación, haz clic en **Activar o desactivar características de Windows**
-Busque la opción y haga clic en **Subsistema de Windows para Linux** y pulse *Aceptar*
-Ahora debe reiniciar su sistema operativo Windows
-Por último, vaya a su *Microsoft Store* y busque el sistema operativo Linux que desee, le recomendamos que instale Ubuntu 18.04 LTS

### Usar Terminal de Linux

Le pedirá el nombre de usuario y la contraseña de UNIX, puede configurarlo como desee.
Este es un ejemplo de navegación con un disco "C"

```shell
$ cd /mnt/c/
```

Aquí está en su disco C donde puede ejecutar `$ ls -al` para ver sus archivos. El "nombre_de_usuario" es el usuario que tiene en su computadora.

```shell
$ cd Users/"nombre_de_usuario"
```

Una vez que esté en su carpeta deseada, puede seguir los siguientes pasos.

## Instalar Binarios

Esta guía utilizará las líneas de instalación de comandos de **Ubuntu 18.04**. Para otros sistemas operativos y más información, vaya a [EOSIO Before You Begin](https://developers.eos.io/welcome/latest/getting-started/development-environment/before-you-begin).

* **Paso 1: Instalar Binarios**

```shell
$ wget https://github.com/EOSIO/eos/releases/download/v2.0.0/eosio_2.0.0-1-ubuntu-18.04_amd64.deb
```

```shell
$ sudo apt install ./eosio_2.0.0-1-ubuntu-18.04_amd64.deb
```

* **Paso 2: Configurar un directorio de desarrollo**

```shell
$ mkdir "su_nombre_de_directorio_de_desarrollo"
$ cd "su_nombre_de_directorio_de_desarrollo"
```

* **Paso 3: Ingrese en su directorio local**

Obtenga su ruta de directorio con `$ pwd`, clone la versión de EOSIO de [GitHub](https://github.com/EOSIO/eos/blob/master/README.md) en esa ruta de directorio.

```shell
$ git clone --recursive https://github.com/eosio/eosio.cdt --branch v1.6.3 --single-branch
```

La clonación del repositorio puede tardar hasta 30 minutos. Después de eso, use `$ cd eosio.cdt`

* **Paso 4: Construir el EOSIO.CDT**

```shell
$ ./build.sh
```

La instalación de eosio.cdt hará que el binario compilado sea global, por lo que puede ser accesible desde cualquier lugar. Para este tutorial, se recomienda encarecidamente que no omita el paso de instalación de eosio.cdt.

```shell
$ sudo ./install.sh
```

>Para obtener más información sobre cómo instalar el contrato DEV. Kit de herramientas, vaya a [esta página](https://developers.eos.io/welcome/latest/getting-started/development-environment/install-the-CDT)
Ahora está listo para crear una billetera de desarrollo con la ayuda de Cleos. [Más información](https://developers.eos.io/welcome/latest/getting-started/development-environment/create-development-wallet)
12 changes: 0 additions & 12 deletions docs/herramientas/linea-de-comando.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,6 @@ title: Línea de Comando
sidebar_label: Línea de Comando
---

## CLEOS

`cleos` es una herramienta de línea de comandos que interactúa con la API REST expuesta por nodeos. Los desarrolladores también pueden usar cleos para implementar y probar contratos inteligentes EOSIO.

## Instalación

`cleos` se distribuye como parte de [EOSIO](https://github.com/EOSIO/eos/blob/master/README.md). Para instalar `cleos` siga las instrucciones descritas en la [sección de Instalación de software EOSIO](https://developers.eos.io/manuals/eos/latest/install/index).

## Como utilizar Cleos

Para usar `cleos`, necesita el dominio o dirección IP (y número de puerto) de una instancia de `nodeos` en ejecución. La instancia de `nodeos` debe configurarse para cargar `eosio :: chain_api_plugin` cuando se inicia. Esto permite que `nodeos` responda a las solicitudes de RPC que provienen de `cleos`.

### Comando Cleos

Ver referencia completa de comandos en el siguiente enlace a [Documentación Cleos](https://developers.eos.io/manuals/eos/latest/cleos/index)
Expand Down
108 changes: 108 additions & 0 deletions docs/programacion-parejas-grupos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
id: programacion-parejas-grupos
title: Programación en Parejas o Grupos
sidebar_label: Programación en Parejas o Grupos
---
import useBaseUrl from '@docusaurus/useBaseUrl';


El desarrollo de un software nuevo no es un proceso sencillo, dependiendo del tamaño del programa, se deberá tener en cuenta una gran cantidad de posibles coyunturas, funciones y cuestiones problemáticas.
De ahí que en estos últimos años se hayan ido desarrollando otros métodos de trabajo más modernos que permiten programar con mayor eficiencia y generar un código libre de errores.


## Pair Programming

### ¿Qué es Pair programming?
El pair programming específica que siempre haya dos personas trabajando al mismo tiempo en el código y que, en la medida de lo posible, se sienten juntas. Una se encarga de escribir el código y la otra de supervisarlo en tiempo real. Al mismo tiempo, están constantemente intercambiando impresiones: debaten problemas, encuentran soluciones y desarrollan ideas creativas.

<div style={{ textAlign: "center" }}>
<img alt="Imagen Pair Programing" src={ useBaseUrl( 'img/metodosProgramacion/PairProgramming.png' )} /> </div>

### ¿Cómo se hace?
**Tamaño del equipo:** 2 personas.

### Roles:
- **Conductor:** Se encarga de escribir el código.
- **Navegador:** Se encarga de supervisar ese código.

Una de las reglas del pair programming establece que estos dos roles se intercambien con regularidad, de esta manera se evita una posible brecha jerárquica.

### Tipos de pair programming:
- **Navegador:** El navegador asume más de los roles tácticos del conductor. En la navegación, el controlador sigue controlando el teclado y escribiendo, pero el navegador dicta instrucciones sintácticas, como qué nombre llamar a una variable o qué método específico llamar. El estilo de navegador del asiento trasero funciona mejor con un principiante como conductor y experto como el navegante, permitiendo que el principiante aprenda haciendo.
- **Ping Pong Pairing:** Permite a los roles cambiar con frecuencia y obliga a los ingenieros a prestar atención a los aspectos de codificación y pruebas del desarrollo, ganando familiaridad con el proceso.
- **Pomodoro:** Una sesión de emparejamiento típica al estilo Pomodoro dura 25 minutos seguida de un descanso de 5 minutos. El controlador y el navegador cambian de posición. Después de cuatro sesiones de 25 minutos, ambos programadores toman un descanso más largo de 20 minutos. Los descansos forzados y el cambio de posición regular ayudan a garantizar que ambos programadores estén siempre productivos, enfocados y actualizados cuando comienza una sesión.

### Beneficios
- Puede mejorar la productividad general a través del proceso de colaboración.
- Código de mayor calidad como resultado de la revisión en tiempo real.
- Mejores soluciones diseñadas a través de la colaboración compartida.
- Entrega más rápida porque las soluciones a problemas desafiantes se encuentran más rápidamente.
- Mayor enfoque en el código y la tarea de programación sin distracciones.
- Desbloqueo a los desarrolladores atascados.
- Feedback rápido.
- Menos distracciones en los equipos de desarrollo.
- Prácticas recomendadas compartidas.

## Mob Programming

### ¿Qué es Mob programming?
Un grupo de personas con mucha inteligencia, con grandes retos trabajando en equipo para resolver los retos de manera creativa, con excelencia operacional y trabajando enfocado en entrega de valor constante.
<div style={{ textAlign: "center" }}>
<img alt="Imagen Mob Programing" width="70%" src={ useBaseUrl( 'img/metodosProgramacion/MobProgramming.png' )} /> </div>

### ¿Cómo se hace?
**Tamaño del equipo:** 3-6 personas.

### Roles:
- **Conductor:** Recibe input del equipo y ejecuta la implementación de las ideas.
- **Navegadores:** Son los que le dan dirección al conductor, también es la voz del equipo.

### Bias for action:
- Evitar quedarse en conversaciones abstractas por mucho tiempo.
- No discuta un problema por más de 10 minutos (Recomendado).
- Si hay más de una solución a un problema experimente con dos o 3 (Use
paretto).
- Use ejemplos para mantener la conversación caminando.
- Las ideas de los navegadores solo se implementan por el conductor.
- El nivel de habilidad del conductor es clave para que los navegadores desarrollen más las instrucciones.
- Feedback inmediato.
- Aprender o contribuir.
- Agilidad en comunicación.
- Retrospectiva.
- Empatía y respeto.

### Artefactos:
- Backlog de problemas específicos definidos por el product owner o el tech lead.
- Alineación en programación de katas (Código nuevo, corrección de errores, desarrollo impulsado por pruebas, refactorización).
- Test automation.
- Repo - DevOps.

### Tipos de mob programming:
- **Expert-Expert:** Mayor productividad y resultados de alta calidad, mínima disrupción de los acercamientos y exploración a retar soluciones existentes.
- **Expert-Novice:** Mayor oportunidad de exploración de soluciones y oportunidades de mentorship para personas nuevas en el equipo. El novato es más propenso a retar soluciones existentes y aporta disrupción, y el experto al enseñar se puede replantear paradigmas existentes. El riesgo de que los expertos no puedan desarrollar paciencia para enseñar puede traer conflicto y afectar la
cultura de la organización.
- **Novice-Novice:** Normalmente no es recomendado para soluciones complejas pero bueno para innovación siempre y cuando se pueda desarrollar con un mentor que pueda generar un role model.
- **With audience:** El equipo está trabajando con una audiencia de partes interesadas o usuarios.

### El valor del mobbing:
- Soluciones se entregan más rápido, con mayor calidad por medio del incremento del enfoque.
- Mitiga las tareas tediosas, tiene visibilidad 360 y mejora la automatización.
- Apalanca el entrenamiento entre miembros del equipo.
- Entrega resultados más rápido reduciendo el tiempo del work in progress y eliminando tiempos de handoff entre equipos y mitiga los problemas de comunicación.
- Puede incrementar el tiempo de entrega de una tarea por la cantidad de personas pensando alrededor de una tarea individual, pero bajan aproximadamente 15% de defectos o margen de error, se mitiga refactoring, retrabajo y soporte de la tarea o el entregable.
- Satisfacción se incrementa un 96% entre programadores.
- Entrenamiento ágil.
- Team building y comunicación.
- Más opciones de soluciones para varios problemas a la vez.

### Beneficios para otras organizaciones y servicios.
- Reclutamiento.
- Diseño (Servicio, UX, Producción).
- Deuda tecnológica y refactorización.

>Información brindada por:
>**Julian Alvarado**
>- Twitter [@jascorecr](https://twitter.com/jascorecr)
>- Linkedin: [alvarado.lj.1](https://www.linkedin.com/in/alvaradolj1/)
>- Telegram: https://t.me/joinchatJWCCqxZZe7tk7ITpztxTsw
>- Youtube: [Kata Collective](https://www.youtube.com/channel/UC8elsb71RJlP9mG6aQgTc_A)
27 changes: 0 additions & 27 deletions docs/tutoriales/como-iniciar.md

This file was deleted.

67 changes: 67 additions & 0 deletions docs/tutoriales/llaves-github.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
id: llaves-github
title: Llaves de GitHub
sidebar_label: Llaves de GitHub
---

## ¿Por qué necesitamos Llaves de GitHub?

Definamos primero a GitHub como un sistema de control de versiones distribuidas en línea basado en un navegador para aquellos desarrolladores de software que utilizan el sistema de control de revisiones Git. Git utiliza la autenticación de clave pública SSH y no una autenticación por contraseña. Cada usuario del sistema tiene que generar una clave.

El `SSH` es también conocido como Secure Shell o Secure Socket Shell. [Más sobre SSH en GitHub](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/about-ssh). Las claves SSH se utilizan para autenticar conexiones seguras que se generan a través de un algoritmo criptográfico de clave pública, siendo los más comunes RSA o DSA. Se trata de una fórmula unidireccional que garantiza que la clave pública puede derivarse de la clave privada, pero que la clave privada no puede derivarse de la clave pública.

## ¿Cómo generar una nueva clave SSH en windows?

Esta guía es para usuarios de Windows, más información para Linux y Mac [en este sitio](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)

Los entornos Windows no tienen un shell Unix estándar por defecto. Será necesario instalar programas de shell externos para tener una experiencia completa de keygen. La opción más directa es utilizar Git Bash.

- Abra Git Bash

- Pega el texto de abajo, sustituyendo `"[email protected]"` por tu dirección de correo electrónico de GitHub.

```shell
$ ssh-keygen -t ed25519 -C "[email protected]"
```
---
>**NOTA:**
Si está utilizando un sistema heredado que no soporta el algoritmo `ed25519`, utilice:

```shell
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
```
---

- Le pedirá un archivo para guardar la clave, sólo tiene que pulsar enter. Esto acepta la ubicación del archivo por defecto.

- En el indicador (shell), escriba una frase de contraseña segura. Por razones de seguridad debe ser lo más compleja posible.

¡Ahora tienes una nueva clave SSH!

## Cómo añadir su clave SSH al ssh-agent

- Asegúrate de que el ssh-agent se está ejecutando [más información](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/working-with-ssh-key-passphrases), o inícialo manualmente:

```shell
#iniciar el agente ssh en segundo plano
$ eval $(ssh-agent -s)
> Agent pid 59566
```
---

>**NOTA:**
Si sigue este flujo de generación de claves ssh, no es necesario iniciar el agente ssh.

---

- Añade tu clave privada SSH al ssh-agent. Si creó su clave con un nombre diferente, o si está añadiendo una clave existente que tiene un nombre diferente, sustituya `id_ed25519` en el comando por el nombre de su archivo de clave privada.

```shell
$ ssh-add ~/.ssh/id_ed25519
```

- Ahora necesitas añadir tu clave pública a tu cuenta de **GitHub**, para ello [sigue estos pasos](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account).

Ya está listo.

[Más información sobre cómo funciona](https://www.preveil.com/blog/public-and-private-key/)
2 changes: 1 addition & 1 deletion docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const siteConfig = {
items: [
{to: 'docs/pautas-para-codigo-abierto', label: 'Pautas para Desarrolladores', position: 'left'},
{to: 'docs/aprender-eosio/protocolo-eosio', label: 'Blockchain EOSIO', position: 'left'},
{to: 'docs/tutoriales/como-iniciar', label: 'Tutoriales', position: 'left'},
{to: 'docs/tutoriales/instalacion-de-nodos', label: 'Tutoriales', position: 'left'},
{to: 'docs/herramientas/glosario', label: 'Herramientas', position: 'left'},
{to: 'docs/comunidad/canales-de-telegram', label: 'Comunidad', position: 'left'},
{
Expand Down
Loading

0 comments on commit ad75429

Please sign in to comment.