Category Archive blog

PorErik Guerrero V.

Linux: Cómo obtener listado de links rotos de un sitio web

Método sencillo, para detectar los links rotos dentro de un sitio web (completo) usando la herramienta wget.

Leer más

PorErik Guerrero V.

Instalar MongoDB 4.2+ Ubuntu o Debian

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 4B7C549A058F8B6B

 

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

 

$ sudo apt-get update

 

$ sudo apt install mongodb-org

Si deseamos especificar la versión:

$ sudo apt install mongodb-org=4.2.1 mongodb-org-server=4.2.1 mongodb-org-shell=4.2.1 mongodb-org-mongos=4.2.1 mongodb-org-tools=4.2.1

Validamos la versión:

$ mongod --version 

MongoDB shell version v4.2.5

git version: 2261279b51ea13df08ae708ff278f0679c59dc32

OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020

allocator: tcmalloc

modules: none

build environment:

    distmod: ubuntu1804

    distarch: x86_64

    target_arch: x86_64


 

Configuración:

$ sudo systemctl enable mongod
$ sudo systemctl start mongod

Algunos comandos:

sudo systemctl stop mongod
sudo systemctl restart mongod

Test

$ mongo 

> use mydb;

> db.test.save( { tecadmin: 100 } )

> db.test.find()

  { "_id" : ObjectId("52b0dc8285f8a8071cbb5daf"), "tecadmin" : 100 }

 

PorErik Guerrero V.

Web Scraping con Node.js

Análisis de contenido de un web site, donde podremos editar, guardar partes del sitio etc. Para ello vamos a usar Web Scraping con nodejs.(sĺo para fines educativos cualquier uso indebido es netamente de su responsabilidad).

Leer más

PorErik Guerrero V.

Visual Studio Code configurar extensión AREPL para python3

AREPL evalúa automáticamente el código de Python en tiempo real a medida que escribe.

Leer más

PorErik Guerrero V.

Visual Studio Code configurar extensión Code Runner para python3

Por defecto en Linux el editor de código VSC la extensión “Code runner” ejecuta los archivos con extensión py en el interprete de comandos usando el comando python pero para poder usar el comando python3 sólo basta con agregar o modificar en la configuracion json las siguientes lineas:

...
"code-runner.executorMap":
                            {
                                "python": "python3"
                            }
...

 

Listo!!!

 

PorErik Guerrero V.

03 – Tipo de datos en TypeScript

  1. number: Valor numericos, todos los números en TypeScript son valores de coma flotante. Estos números de coma flotante obtienen el tipo number. Además de los literales hexadecimales y decimales, TypeScript también admite literales binarios y octales introducidos en ECMAScript 2015.
    let decimal: number = 6;
    let hex: number = 0xf00d;
    let binary: number = 0b1010;
    let octal: number = 0o744;

     

  2. string: Valor de cadena o plantilla, que pueden abarcar varias líneas y tener expresiones incrustadas. Estas cadenas están rodeadas por el carácter backtick / backquote ( `), y las expresiones incrustadas son de la forma ${ expr }.
    let fullName: string = `Bob Bobbington`;
    let age: number = 37;
    let sentence: string = `Hello, my name is ${fullName}.
    
    I'll be ${age + 1} years old next month.`;

     

  3. boolean: true o false
    • == para comparar operaciones si son iguales.
    • != para comparar operaciones distintas.
    • && nos devuelve un verdadero cuando ambas expresiones son verdaderas.
    • || nos devuelve un verdadero si cualquier expresion es verdadero.
  4. object: Un objeto es una instancia que contiene un conjunto de pares de valores clave. Los valores pueden ser valores o funciones escalares o incluso una matriz de otros objetos.
    var object_name = {
     key1: “value1”, //scalar value
     key2: “value”,
     key3: function() {
      //functions
     },
     key4:[“content1”, “content2”] //collection
    };

     

  5. interface: La interfaz es una estructura que define el contrato en su aplicación. Define la sintaxis para las clases a seguir. Las clases que se derivan de una interfaz deben seguir la estructura proporcionada por su interfaz. Una interfaz se define con la palabra clave interfacey puede incluir propiedades y declaraciones de métodos utilizando una función o una función de flecha.
    interface IEmployee {
     empCode: number;
     empName: string;
     getSalary: (number) => number; // arrow function
     getManagerName(number): string;
    }

     

  6. any: Es posible que necesitemos describir el tipo de variables que no sabemos cuando estamos escribiendo una solicitud. Estos valores pueden provenir de contenido dinámico, por ejemplo, del usuario o de una biblioteca de terceros. En estos casos, queremos inhabilitar la verificación de tipos y dejar que los valores pasen por las comprobaciones en tiempo de compilación. Para hacerlo, los etiquetamos con el tipo “any”.
    let notSure: any = 4;
    notSure = "maybe a string instead";
    notSure = false; // okay, definitely a boolean

     

  7. array: TypeScript, como JavaScript, le permite trabajar con matrices de valores. Los tipos de matriz se pueden escribir de una de dos maneras. En el primero, usa el tipo de elementos seguido de [] para denotar una matriz de ese tipo de elemento:
    let list: number[] = [1, 2, 3];
    La segunda forma usa un tipo de matriz genérico Array<elemType>:
    
    let list: Array<number> = [1, 2, 3];

     

PorErik Guerrero V.

02 – Generar archivo js a partir de un archivo TypeScript

Generar archivo js a partir de un archivo TypeScript.

Seguimos los siguientes pasos:

  1. Creamos el archivo index.html
  2. Creamos el archivo index.ts
  3. Creamos el archivo index.js a partir del archivo ts index.ts con el comando tsc index.ts, si deseamos que el archivo este siempre a escucha de los cambios agregamos el comando watch el cual quedaria de la siguiente manera tsc index.ts –watch
PorErik Guerrero V.

01 – TypeScript y Angular 8.x – Introducción

Introducción

Este curso trata de explicar de forma rápida y sencilla las principales aplicaiones y ventajas de usar TypeScript.

Lo necesario

Instalar

  1. NodeJS: https://nodejs.org/es/
    $ sudo apt-get install curl python-software-properties 
    $ curl -sL https://deb.nodesource.com/setup_11.x | sudo bash - 
    $ sudo apt-get install nodejs 
    $ node –v 
    $ npm -v

     

  2. Google Chrome: https://www.google.es/chrome/browser/desktop/
  3. TypeScript: http://www.typescriptlang.org/
  4. Angular CLI https://cli.angular.io/ https://github.com/angular/angular-cli
    $ npm install -g @angular/cli

     

  5. Editor de Código Visual Studio Code: https://code.visualstudio.com/

Plugins Studio Visual code

  1. Angular 2 TypeScript Emmet
  2. Angular 5 Snippets – TypeScript, Html, Angular Material…
  3. Angular Language Service
  4. Angular v5 Snippets
  5. Angular2-inline
  6. Bootstrap 4 & Font Awesome snippets
  7. HTML CSS Support
  8. JavaScript (ES6) code snippets
  9. JS-CSS-HTML Formatter
  10. JSHint
  11. Material Icon Theme
  12. Prettier – Code Formatter
  13. Terminal
  14. TSLint
  15. TypeScript Hero
  16. TypeScript Importer
PorErik Guerrero V.

Configurar Visual Studio Code para Go

Como alternativa a un IDE exclusivamente para Go, podemos usar como alternativa el Editor de Código Visual Studio Code siguiendo las siguientes pasos para su configuración, cabe recalcar que dicha configuración e instalación de extensiones es una propuesta a la necesidad.

1.- Instalar Visual Studio Code

https://code.visualstudio.com/Download

2.- Instalar la Extensión

Go: Rich Go language support for Visual Studio Code

Luego de instalar la extensión nos dirigimos a la paleta de comandos (Menu > View > Command Palette) escribimos Go Install/Update Tools luego [Enter].

Seleccionamos todo y luego [Enter], esperamos que se instale todo los paquetes.

3.- Configuración Visual Studio Code (Preferences en el menu)

Para personalizar la configuración nos dirigimos al menú  File > Preferences > Settings, luego buscamos del arbol de opciones el item Extensions > Go seguidamente click en Edit in setting.json

Reemplazamos por la siguiente configuración:

{
“workbench.startupEditor”: “newUntitledFile”,
“go.useLanguageServer”: true,
“go.buildOnSave”: true,
“go.lintOnSave”: true,
“go.vetOnSave”: true,
“go.useCodeSnippetsOnFunctionSuggest”: true,
“go.formatOnSave”: false,
“go.formatTool”: “goreturns”,
}

Y guardamos.

4.- Depurador integrado de Visual Studio Code (Debugger)

Una de las características principales de VSC es el debugger integrado que nos permitirá  probar y depurar (eliminar) los errores de nuestro programa. El código a ser examinado puede alternativamente estar corriendo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran potencia en su capacidad de detenerse cuando son encontradas condiciones específicas.

Antes de todo tenemos que tener instalado el delve  las instrucciones las puedes encontrar aquí, si ya tienes todo lo necesario procedemos a crear puntos de interrupción “Breakpoint” tal como muestra la imagen.

Luego simplemente click en “Launch”,  nos mostrará la barra de navegación del debug el cual nos permitirá ir de breakpint en breakpoint tal como muestra la imagen.

Listo !!!!

PorErik Guerrero V.

Instalar Go en Linux MInt 19 (Ubuntu)

Podemos instalar Go en Linux Mint 19 y algunas distribuciones basadas en Ubuntu ejecutando los siguientes pasos:

1.-Agregamos  el repositorio PPA ejecutando el siguiente comando en su terminal.

$ sudo add-apt-repository ppa:longsleep/golang-backports

$ sudo apt-get update

2.- Instalación

$ sudo apt-get install golang-go

3.- Validamos

$ go version

4.- Configuración $GOPATH

$ mkdir -p ~/go/{bin,pkg,src}
$ echo ‘export GOPATH=”$HOME/go”‘ >> ~/.bashrc
$ echo ‘export PATH=”$PATH:${GOPATH//://bin:}/bin”‘ >> ~/.bashrc

5.- Probando tu Go environment (Entorno Go)

$ mkdir -p ~/go/src/test
$ nano ~/go/src/test/test.go

Agregar las siguientes lineas de código

package main
import “fmt”
func main() {
fmt.Printf(“Hello perudev!!”)
}

Generamos el archivo test.go

$ cd ~/go/src/test
$ go build

Ejecutamos el binario

$ ./test
Hello, perudev!!

 

Instalación

$ go install
$ ls ~/go/bin/
test

Para eliminar:

$ go clean -i

Listo !!!!