-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'react' of github.com:edgarEOS/guias.eoscostarica.io int…
…o react
- Loading branch information
Showing
9 changed files
with
312 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.