PeruDev https://perudev.pe Blog y Soluciones empresariales Tue, 26 May 2020 05:21:42 +0000 es-ES hourly 1 https://perudev.pe/wp-content/uploads/2017/05/cropped-perudev-logo-facebook-1-32x32.png PeruDev https://perudev.pe 32 32 Linux: Cómo obtener listado de links rotos de un sitio web https://perudev.pe/blog/linux-como-obtener-listado-de-links-rotos-de-un-sitio-web/ Mon, 04 May 2020 20:54:06 +0000 http://perudev.pe/?p=319 Método sencillo, para detectar los links rotos dentro de un sitio web (completo) usando la herramienta wget. Ejecutamos en nuestra terminal: $ cd ~ $ wge]]> Método sencillo, para detectar los links rotos dentro de un sitio web (completo) usando la herramienta wget.

Ejecutamos en nuestra terminal:

$ cd ~

$ wget –spider –no-parent -r -o log.txt http://tudominio.com

Donde:

–spider : recorrer la web que le digas, pero SIN descargar nada. Sólo recorrerla.
– r : recursivo, como si fuera el robotito de Google 🙂
– o fichero : la salida de ejecutar el comando que salga por pantalla
–no-parent : si le pasamos como parámetro un nombre de directorio, no queremos que suba hacia los directorios padre.

 

Luego revisamos el archivo log.txt y analizamos.

 

Listo!!!!

]]>
Instalar MongoDB 4.2+ Ubuntu o Debian https://perudev.pe/blog/instalar-mongodb-4-2-ubuntu-o-debian/ Fri, 17 Apr 2020 17:07:58 +0000 http://perudev.pe/?p=315 $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 4B7C549A058F8B6B   echo "deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-o]]> $ 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 }

 

]]>
Web Scraping con Node.js https://perudev.pe/blog/web-scraping-con-nodejs/ Wed, 15 Apr 2020 03:24:19 +0000 http://perudev.pe/?p=307 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]]> 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).

Lo necesario:

  1. nodejs v10+
  2. npm v6+
  3. Editor: Visual Studio Code

Pasos:

  1. Inicializamos proyecto de nodejs
$ npm init --yes
  1. Agregamos los siguientes paquetes:
$ npm i cheerio --save
$ npm i request --save
Nota:
Cheerio analiza el marcado y proporciona una API para atravesar / manipular la estructura de datos resultante. No interpreta el resultado como lo hace un navegador web. Específicamente, no produce una representación visual, aplica CSS, carga recursos externos o ejecuta JavaScript. Si su caso de uso requiere alguna de esta funcionalidad, debe considerar proyectos como PhantomJS o JSDom.
request: La solicitud está diseñada para ser la forma más sencilla posible de realizar llamadas http. Es compatible con HTTPS.
  1. Creamos el archivo index.js y  agregamos el siguiente código:
    const cheerio = require("cheerio")
    const fs      = require("fs")
    const request = require("request")
    
    request("http://perudev.pe/category/blog/", (err, res, body)=>{
        //Obtenemos el callback
        if(!err && res.statusCode == 200){
            // Arreglo de rutas de imagenes
            let AurlImagenes = [];
    
            // Obtenemos el body
            let $ = cheerio.load(body);
    
            // Syntax: Subcontenedor, Contenedor
            $('a.img-responsive', '.container').each(function(){
                // Todas las url
                var url       = $(this).attr("href");
                // Todas las rutas de las imagenes
                var urlImagen = $(this).find("img").attr("src");
                // Almacenamos todas las imagenes que pertenezcan al dominio raiz("perudev.pe")
                if(urlImagen && urlImagen.indexOf("perudev.pe")!=-1){
                    console.log(urlImagen);
                    AurlImagenes.push(urlImagen);
                }     
            })
    
            // Almacenamos las imagenes en nuestro disco local, para ello usamos el paquete fs
            for(var i=0; i<AurlImagenes.length; i++){
                request(AurlImagenes[i]).pipe(fs.createWriteStream(`images/img${i+1}.jpg`));
            }
    
            console.log("Se guardó las imágenes: ", AurlImagenes);
        }
    });

     

  1. Ejecutamos
$ node index.js
]]>
Visual Studio Code configurar extensión AREPL para python3 https://perudev.pe/blog/visual-studio-code-configurar-extension-arepl-para-python3/ Fri, 03 Apr 2020 03:47:12 +0000 http://perudev.pe/?p=300 AREPL evalúa automáticamente el código de Python en tiempo real a medida que escribe. Para configurar con python3 podemos ir a la opción Settings (File]]> AREPL evalúa automáticamente el código de Python en tiempo real a medida que escribe.

Para configurar con python3 podemos ir a la opción Settings (File>Preferences>Settings), buscamos la clave AREPL:Python Path y agregamos la ruta de python3  en mi caso se ubica en “/usr/bin/python3”, si no sabemos donde se ubica podemos usar el comando which se la siguinete manera

$ which python3

Alt Text

Listo!!!

]]>
Visual Studio Code configurar extensión Code Runner para python3 https://perudev.pe/blog/visual-studio-code-configurar-extension-code-runner-para-python3/ Wed, 01 Apr 2020 04:28:01 +0000 http://perudev.pe/?p=297 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 u]]> 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!!!

 

]]>
03 – Tipo de datos en TypeScript https://perudev.pe/blog/02-tipo-de-datos-en-typescript/ Mon, 23 Mar 2020 23:57:20 +0000 http://perudev.pe/?p=288 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]]>
  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];

     

]]>
02 – Generar archivo js a partir de un archivo TypeScript https://perudev.pe/blog/02-generar-archivo-js-a-partir-de-un-archivo-typescript/ Mon, 23 Mar 2020 23:51:04 +0000 http://perudev.pe/?p=283 Generar archivo js a partir de un archivo TypeScript. Seguimos los siguientes pasos: Creamos el archivo index.html Creamos el archivo index.ts Creamos el a]]> 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
]]>
01 – TypeScript y Angular 8.x – Introducción https://perudev.pe/blog/typescript-y-angular-8-x-introduccion/ Mon, 23 Mar 2020 02:51:03 +0000 http://perudev.pe/?p=266 Introducción Este curso trata de explicar de forma rápida y sencilla las principales aplicaiones y ventajas de usar TypeScript. Lo necesario Instalar Nod]]> 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
]]>
Configurar Visual Studio Code para Go https://perudev.pe/blog/configurar-visual-studio-code-para-go/ Wed, 18 Mar 2020 04:24:39 +0000 http://perudev.pe/?p=246 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]]> 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 !!!!

]]>
Instalar Go en Linux MInt 19 (Ubuntu) https://perudev.pe/blog/instalar-go-en-linux-mint-19-ubuntu/ Tue, 17 Mar 2020 04:57:54 +0000 http://perudev.pe/?p=241 Podemos instalar Go en Linux Mint 19 y algunas distribuciones basadas en Ubuntu ejecutando los siguientes pasos: 1.-Agregamos  el repositorio PPA ejecutan]]> 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 !!!!

]]>