domingo, 19 de diciembre de 2021

CMUS #MusicBashConsole Escuchar música en la consola.

 

konsole - cmus

Muchas veces usuarios ya con ciertos conocimientos medios en GNU/Linux comienzan tener la interrogante de; si es posible mediante la terminal o consola de comandos poder ejecutar un productor de música que permita escuchar música con todas las opciones o funciones que un reproductor de audio convencional gráfico tiene, y la respuesta es si y su nombre nombre es CMUS vamos a conocer un un poco este reproductor con la siguiente cita de wikipedia:


cmus (C * Music Player) es un reproductor de audio de consola pequeño y rápido para sistemas operativos similares a Unix. cmus se distribuye bajo los términos de la GPL-2.0-o-posterior y opera exclusivamente a través de una interfaz de usuario basada en texto , construida con ncurses .

El diseño de solo texto reduce los recursos necesarios para ejecutar el programa, lo que lo convierte en una opción sólida para computadoras más antiguas o menos potentes, así como para sistemas donde un entorno gráfico (como el sistema X Window ) no está disponible. Fuente: Wikipedia.


Instalar CMUS


En el caso de GNU/Linux y distribuciones basadas en debian solo hay que instalarlo estando logueados  como super usuario o root con el siguiente comando:

apt-get install cmus

En el caso de hacer una instalación con la versión más reciente de puede descargar el código fuente t teniendo el paquete build-essentials instalado solo hay que ejecutar los siguientes comando como super usuario o root:

git clone https://github.com/cmus/cmus.git

cd cmus

./configure prefix=$HOME/cmus

make install


Documentación


Esta aplicación tiene una documentación bastante detallada en la siguiente url oficial del proyecto:

https://cmus.github.io/#documentation


¿Como ayudar al proyecto?


El código fuente de este proyecto de software libre se encuentra alojado en la siguiente URL de forma totalmente pública:

https://github.com/cmus/cmus

Toda persona que disponga de conocimientos avanzados en Lenguaje de programacion en C puede ayudar en el desarrollo de esta aplicación de consola ncurses.


Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí. 


miércoles, 23 de junio de 2021

Formateando disco USB o pendrive con NTFS en GNU/Linux


Bien en este caso para realizar la la tarea se usarán los programas o comandos:

  • fdisk, Es un programa de edición de la tabla de particiones de las unidades de almacenamiento.
  • mkfs, Es un programa que permite hacer el proceso de formateado de una partición de disco con un sistema de archivos especifico.

A continuación se ejecutarán una serie de pasos para lograr tal fin a manera de ejemplo para ello se usará un disco duro usb de 250gb algo antiguo.

1.- Lo primero es conectar el disco duro externo y verificar que identificador de unidad tiene con el siguiente comando (como super usuario root):

fdisk -l

El mismo mostrará una información como la siguiente:

Disco /dev/sda: 223,6 GiB, 240057409536 bytes, 468862128 sectores
Modelo de disco: KINGSTON SA400S3
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x94f8f291

Disposit.  Inicio Comienzo     Final  Sectores Tamaño Id Tipo
/dev/sda1             2048   7813119   7811072   3,7G 82 Linux swap / Solaris
/dev/sda2  *       7813120 468860927 461047808 219,9G 83 Linux


Disco /dev/sdb: 232,9 GiB, 250059350016 bytes, 488397168 sectores
Modelo de disco: 7AS              
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x4128309c

Disposit.  Inicio Comienzo     Final  Sectores Tamaño Id Tipo
/dev/sdb1             2048 488397167 488395120 232,9G  7 Linux EXT4


Como se puede observar el disco usb tiene tiene una partición de tipo ext4 la cual modificaremos la tabla de particiones para cambiar esto a NTFS la cual es posible de leer con windows/Linux/MacOS.

2.- Se procede a editar la tabla de particiones usando fdisk como super usuario o root con el siguiente comando:

fdisk /dev/sdb1

Mostrará la siguiente salida:

Bienvenido a fdisk (util-linux 2.33.1).

Los cambios solo permanecerán en la memoria, hasta que decida escribirlos.

Tenga cuidado antes de utilizar la orden de escritura.

Orden (m para obtener ayuda):

Se procede a pulsar la tecla "d" y enter la misma será auto seleccionada y eliminada y eliminada de la tabla de particiones cargada en fdisk, luego se pulsa "n" y se pulsa enter varias veces dejando los valores predeterminado al regresar a la pantalla inicial de fdisk solo se debe pulsar la tecla "t" para asignar el tipo de sistema de archivos a asignar a la misma si desconocemos los valores para ello si pulsamos la tecla "L" mayuscula nos listará todos los sistemas de archivos disponibles en fdisk la cual se puede mostrar la siguiente salida:

0  Vacía           24  DOS de NEC      81  Minix / Linux a bf  Solaris         
1  FAT12           27  NTFS de WinRE o 82  Linux swap / So c1  DRDOS/sec (FAT-
2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
3  XENIX usr       3c  PartitionMagic  84  OS/2 oculto o h c6  DRDOS/sec (FAT-
4  FAT16 <32M      40  Venix 80286     85  Linux extendida c7  Syrinx          
5  Extendida       41  PPC PReP Boot   86  Conjunto de vol da  Datos sin SF    
6  FAT16           42  SFS             87  Conjunto de vol db  CP/M / CTOS / .
7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Utilidad Dell   
8  AIX             4e  QNX4.x segunda  8e  Linux LVM       df  BootIt          
9  AIX arrancable  4f  QNX4.x tercera  93  Amoeba          e1  DOS access      
a  Gestor de arran 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O         
b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor       
c  W95 FAT32 (LBA) 52  CP/M            a0  Hibernación de  ea  alineamiento Ru
e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS fs         
f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ee  GPT             
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
11  FAT12 oculta    56  Golden Bow      a8  UFS de Darwin   f0  inicio Linux/PA
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f1  SpeedStor       
14  FAT16 oculta <3 61  SpeedStor       ab  arranque de Dar f4  SpeedStor       
16  FAT16 oculta    63  GNU HURD o SysV af  HFS / HFS+      f2  DOS secondary   
17  HPFS/NTFS ocult 64  Novell Netware  b7  BSDI fs         fb  VMFS de VMware  
18  SmartSleep de A 65  Novell Netware  b8  BSDI swap       fc  VMKCORE de VMwa
1b  FAT32 de W95 oc 70  DiskSecure Mult bb  Boot Wizard hid fd  Linux raid auto
1c  FAT32 de W95 (L 75  PC/IX           bc  Acronis FAT32 L fe  LANstep         
1e  FAT16 de W95 (L 80  Minix antiguo   be  arranque de Sol ff  BBT

Como respuesta marcamos 7 (corresponde a NTFS) y se pulsa enter, y por ultimo se pulsa la tecla se especifica w y enter para que escriba los cambios en la tabla de particiones.

3.- Terminado esto solo falta formatear la particiones con el comando mkfs.ntfs y asignarle un nombre con el siguiente comando como super usuario root:

mkfs.ntfs -f -L DiscoUSB -v /dev/sdb1

Terminado el proceso se verá la siguiente impresión:

Cluster size has been automatically set to 4096 bytes.

Creating NTFS volume structures.

Creating root directory (mft record 5)

Creating $MFT (mft record 0)

Creating $MFTMirr (mft record 1)

Creating $LogFile (mft record 2)

Creating $AttrDef (mft record 4)

Creating $Bitmap (mft record 6)

Creating $Boot (mft record 7)

Creating backup boot sector.

Creating $Volume (mft record 3)

Creating $BadClus (mft record 8)

Creating $Secure (mft record 9)

Creating $UpCase (mft record 0xa)

Creating $Extend (mft record 11)

Creating system file (mft record 0xc)

Creating system file (mft record 0xd)

Creating system file (mft record 0xe)

Creating system file (mft record 0xf)

Creating $Quota (mft record 24)

Creating $ObjId (mft record 25)

Creating $Reparse (mft record 26)

Syncing root directory index record.

Syncing $Bitmap.

Syncing $MFT.

Updating $MFTMirr.

Syncing device.

mkntfs completed successfully. Have a nice day.

Solo sería montar dicha partición con:

mkdir -p DiscoUSB | mount /dev/sdb1 DiscoUSB/



Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.



jueves, 10 de junio de 2021

Instalación, Configuración, Host virtuales (VirtualHost) y certificado ssl NGINX + PHP

 

NGINX

¿Qué es NGINX?.

Nginx, pronunciado como “engine-ex”, es un servidor web de código abierto que, desde su éxito inicial como servidor web, ahora también es usado como proxy inverso, cache de HTTP, y balanceador de carga.
Algunas compañías de alto perfil que utilizan Nginx incluyen Autodesk, Atlassian, Intuit, T-Mobile, GitLab, DuckDuckGo, Microsoft, IBM, Google, Adobe, Salesforce, VMWare, Xerox, LinkedIn, Cisco, Facebook, Target, Citrix Systems, Twitter, Apple , Intel, y muchos más. Fuente: kinsta.com

1.- Conociendo que es NGINX, lo primero a realizar es instalar el mismo junto con php y letsencrypt (este ultimo para crear certificados ssl)  con el siguiente comando en Debian GNU/Linux:

apt-get install nginx letsencrypt python3-certbot-nginx php7.3 php7.3-bcmath php7.3-bz2 php7.3-cgi php7.3-cli php7.3-common php7.3-curl php7.3-dba php7.3-dev php7.3-enchant php7.3-fpm php7.3-gd php7.3-gmp php7.3-imap php7.3-interbase php7.3-intl php7.3-json php7.3-ldap php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-phpdbg php7.3-pspell php7.3-readline php7.3-recode php7.3-snmp php7.3-soap php7.3-sqlite3 php7.3-sybase php7.3-tidy php7.3-xml php7.3-xmlrpc php7.3-xsl php7.3-zip

Para instalar php7.4 se explicará como instalar el mismo en una próxima entrada o publicación.

2.- Una vez hecho hecho esto solo hay que copiar los archivos de los proyectos web en sus directorios correspondientes si no se dispone de un proyecto web se puede usar un index.php de prueba con un contenido como "<?php phpinfo();" a continuación se puede hacer lo siguientes comandos:

mkdir -p /var/www/html/proyecto1 /var/www/html/proyecto2
echo "<?php phpinfo();" >  /var/www/html/proyecto1/index.php > /var/www/html/proyecto2/index.php

3.- En el siguiente paso se tendría que crear los virtual host para cada ruta respectiva ejecutando lo siguiente:

nano /etc/nginx/sites-available/www.proyecto1.com

Agregando el siguiente contenido mediante nano:

server {
        root /var/www/html/proyecto1;
        access_log /var/log/nginx/proyecto1/admin.log;
        
        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name www.proyecto1.com;

        charset utf-8;
    
        location / {
                try_files $uri $uri/ /index.php?$query_string;
                #add_header 'Access-Control-Allow-Origin' '*';
                #add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                #add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
                #add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        }
        #location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        #        try_files $uri $uri/ =404;
        #}

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
               deny all;
        }
}

Luego de crear el archivo en sites-avaliable se debe crear la carpeta para los logs con el siguente comando:

mkdir -p  /var/log/nginx/proyecto1

Y luego crear el enlace simbólico del archivo de configuración del virtual host a la carpeta de activación del mismo la cual es sites-enabled con el siguiente comando:

ln -s /etc/nginx/sites-available/www.proyecto1.com /etc/nginx/sites-enable/www.proyecto1.com

El paso para el virtual host del proyecto 2 es muy parecido sería ejecutar los pasos anteriores pero colocando la referencia a "proyecto2" y "www.proyecto2.com" respectivamente.

4.- El siguiente paso sería verificar la sintaxis y reiniciar NGINX con los siguientes comandos como super usuario (root).

nginx -t

Si la salida observamos algo como "syntax ok" es que todo esta bien para iniciar nginx con el siguiente comando como super usuario (root):

/etc/init.d/nginx restart

5.- El siguiente paso es instalar los los certificados ssl con letsencrypt el cual se instala mediante la ejecución de los siguientes comandos como super usuario (root):

certbot --nginx -d www.proyecto1.com --post-hook "/usr/sbin/service nginx restart"
certbot --nginx -d www.proyecto2.com --post-hook "/usr/sbin/service nginx restart"

6.- El ultimo paso sería reiniciar NGINX como super usuario (root) y probar entrando al dominio del virtual host:

/etc/init.d/nginx start

Y acceder a las url de los dominios www.proyecto1.com y www.proyecto2.com


Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.


jueves, 3 de junio de 2021

Ventoy la solución definitiva para USB multiboot en Debian GNU/Linux

 

ventoy

Debido a la reducción de tamaño físico de las unidades de almacenamiento masivo extraíble prendrives/SDCards/entre otros, surge la pregunta ¿Cómo servicio técnico como puedo tener una unidad que me permita tener instaladores múltiples en dicha unidad para y que solo tenga que seleccionar uno de estos instaladores desde imágenes booteables?, realizando una búsqueda en Internet algo profunda y probar varias opciones de utilidades que ofrecían hasta cierto punto una solución algo complicada se encontró a la utilidad Ventoy, una excelente utilidad sencilla de utilizar para crear dispositivos de almacenamiento masivo extraíble multiboot USB o SD.

Pero surge la siguiente interrogante:

¿Qué es Ventoy?.

Ventoy es una utilidad gratuita y de código abierto que se utiliza para escribir archivos de imagen como archivos .iso , .wim , .img , .vhd (x) y .efi en medios de almacenamiento para crear unidades flash USB de arranque . Una vez que Ventoy está instalado en una unidad USB, no es necesario volver a formatear el disco para actualizarlo con nuevos archivos de instalación; basta con copiar los archivos .iso, .wim, .img, .img (x) o .efi en la unidad USB y arrancar desde ellos directamente. Ventoy presentará al usuario un menú de arranque para seleccionar uno de estos archivos. Fuente: Wikipedia.

¿En que sistemas operativos se puede usar esta Herramienta o utilidad?.

  • Linux (en este caso probado en debian GNU/Linux).
  • Windows
  • Sistemas operativos tipo unix como: FreeBSD, Unix, entre otros.
Documentación.

Se puede consultar la documentación oficial en la siguiente url:

https://www.ventoy.net/en/doc_news.html

Contribuir.

Al ser un proyecto de software libre puedes entrar en su sección de donativos en la siguiente url:

https://www.ventoy.net/en/donation.html

Descargar ventoy.

Para descargar ventoy solo de se debe seleccionar la opción de acuerdo al sistema operativo que se use en la siguiente url para iniciar la descarga:

https://www.ventoy.net/en/download.html

Creando un pendrive/SDcard multiboot USB o SDcard con ventoy:

A continuación se realiza (en Debian GNU/Linux) en una serie de simples pasos:

1.- Descargar la herramienta disponible para linux como un archivo empaquetado .tar.gz:

wget https://github.com/ventoy/Ventoy/releases/download/v1.0.45/ventoy-1.0.45-linux.tar.gz

2.- Una vez teniendo el archivo empaquetado como .tar.gz solo hay que descomprimir el mismo.

tar -xvf ventoy-1.0.45-linux.tar.gz

3.- Luego de ejecutar dicho comando se creará un directorio "ventoy-1.0.45-linux" solo debe entrar en el mismo con:

cd ventoy-1.0.45

4.- Antes de ejecutar la herramienta de debe conectar el pendrive a la pc y en modo super usuario (root) ejecutar:

fdisk -l

5.- Observando la salida de fdisk debe aparecer una unidad /dev/sdbX se debe observar que la misma solo disponga de 1 partición y que la misma esta en el correcto formato FAT32 si esto es así solo se debrá continuar los pasos a continuación si en dado caso no es así de deberá usar fdisk /dev/sdb para editar la tabla de particiones y escribir los cambios luego formatear la partición con mkfs.vfat /dev/sdb1 (en este proceso se perderán datos en dicha unidad debe respaldar la información contenida en la misma).

El siguiente paso a continuación el cual es ejecutar como super usuario (root) sobre la unidad usd o sd el comando de instalación sobre la misma teniendo en cuenta que se perderán los datos en dicha unidad en esta acción: 

./Ventoy2Disk.sh -i /dev/sdb

Terminado el proceso el cual es apenas de unos pocos segundos para unidades de rápida lectura y escritura, el sistema operativo reconocerá de nuevo el dispositivo solo se monta y se copia alguna imagen .iso o algún archivo soportado por este que tenga un sistema arrancable y solo luego hay que desmontarlo una vez copiada la imagen y extraer la unidad.

El siguiente paso usa el programa de virtualización de qemu para verificar que todo el proceso fue exitoso asumiendo que se tiene qemu instalado se ejecuta como super usuario (root) teniendo el pendrive de nuevo conectado al computador el siguiente comando:

qemu-system-x86_64 -usb  /dev/sdb -m 1024

Se mostrará la siguiente pantalla si todo el proceso fue exitoso y la imagen iso se encuenta en buen estado y que tenga un sistema operativo booteable:


Mostrando que todo el proceso fue exitoso y ya se dispone de un USB / SD multiboot.


Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.


miércoles, 7 de abril de 2021

WeeChat #IRCNCurses Chat IRC en la terminal o consola y su instalación, configuración y uso

 

Interfaz WeeChat
Para comenzar nos debemos hacer la siguiente pregunta: ¿Qué es WeeChat? la cual responderemos a esta interrogante con la siguiente cita:

WeeChat (acrónimo de We Enhanced Environment for CHATs) es un cliente de IRC ligero en modo texto. Está licenciado bajo los términos de la licencia GNU GPL. Es expansible por medio de plugins y scripts. Fuente: Wikipedia.


Teniendo un concepto de primera mano de lo que es esta excelente aplicación el cual consume muy pero muy bajos recursos el cual se puede usar prácticamente en cualquier pc de bajos recursos, procedemos a realizar los pasos para su intalación y configuación en debian GNU/Linux en este caso aplicable para casi todas las versiones de debian, luego posteriormente se aprenderán a usar los comandos más comunes a usar contra servidores IRC desde clientes como weechat.

Instalación y configuración básica.

1.- Para su intalación solo debemos acceder a la terminar o consola loguearnos allí como super usuario (root) y ejecutar el siguiente comando:

apt-get install weechat

2.- Una vez teniendo weechat solo debemos ejecutar como usuario normal en la terminal o consola el siguiente comando:

weechat

3.- Se apertura en la terminal o consola la interfaz ncurses de weechat ahora solo hay que proceder a realizar la configuración básica para poder conectarse a un servidor en este caso freenode pero antes podemos observar la ayuda con cualquiera de estos comandos:

/help
/help comando
/help config.section.section

4.- A continuación se configura el servidor IRC con los siguiente comando:

/server add freenode chat.freenode.net

5.- Luego se personalizan las opciones para conectarse al mismo con los siguientes comandos:

  - Agregando los nick con los que se conectará al servidor

/set irc.server.freenode.nicks "tunick,tunick2,tunick3,tunick4,tunick5"

  - También para configurar el nombre de usuario y el nombre real:

/set irc.server.freenode.username "Mi nombre de usuario"
/set irc.server.freenode.realname "Mi nombre real"

  - Para que el servidor se conecte cuando WeeChat inicie:

/set irc.server.freenode.autoconnect on

  - Conexión con SSL:

/set irc.server.freenode.addresses "chat.freenode.net/7000"
/set irc.server.freenode.ssl on

  - Por ultimo conectar al servidor:

/connect freenode

Comandos IRC más usados los cuales podemos usar en el cliente WeeChat.

Una vez conectado weechat al servidor IRC (para este ejemplo freenode por excelencia) debe conocer como unirse a canales listarlos, escribir en privado con otro usuario nick, crear canales públicos o privados, registrar un nick propio para que otros no lo puedan usar, entre algunas otras funciones, a continuación se comienza una su explicación:

  - Registro Nick:

/msg NickServ REGISTER clave email

  - Identificarse una vez conectado en el servidor con el nick ya registrado:

/msg NickServ identify clave

  - Cambio de clave al conectado e indentificado en el servidor:

/msg NickServ SET PASSWORD nuevaclave

  - Cambiar idioma:  donde el número será el idioma 1)Inglés 2)Francés 3)Portugués 4)Turco, etc.:

/msg NickServ SET LANGUAJE número

  - Se añade web en la información del nick identificado:

/msg NickServ SET URL direcciónweb

- Se añade un email en la información del nick identificado:

/msg NickServ SET EMAIL direccióndemail

  - Unirse a un canal

/join nombrecanal
/join #nombrecanal

  - Salirse del canal

/part nombrecanal
/part #nombrecanal

  - Cerrar el buffer o pantalla con los msj del chat de canal del cual se haya salido

/buffer close

  - Escribir a otro usuario nick en privado:

/msg nickdelusuarioaescribirle "Texto del msj"

  - Registrar un canal propio:

/msg ChanServ Register #nombrecanal clavedelcanal

  - Recuperar el canal:

/msg Chanserv RECOVER #nombrecanal

  - Crear un tipico en el canal:

/msg ChanServ TOPIG #nombrecanal "Texto del topico"

  - Mensaje de entrada al canal:

/msg ChanServ SET #nombrecanal ENTRYMSG mensaje 

  - Agregar email, Descripción, url y taxonimía:

/msg ChanServ SET #nombrecanal EMAIL nuevadescripción
/msg ChanServ SET #nombrecanal DESC nuevadescripción
/msg ChanServ SET #nombrecanal URL urldelapaginaweb
/msg ChanServ TAXONOMY #nombrecanal

  - Crear el Fundador y el sucesor:

/msg ChanServ SET #nombrecanal FOUNDER nickdelnuevofounder
/msg ChanServ SET #nombrecanal SUCCESSOR nickdelsucesor

  - Asignar operador a un usuario nick:

/msg ChanServ OP #nombrecanal ADD nick

  - Quitar operador a un usuario nick:

/msg ChanServ OP #nombrecanal DEL nick

  - Eliminar el canal:

/msg ChanServ DROP #nombrecanal

  - Listar memos recibidos:

/msg MemoServ LIST
/msg MemoServ LIST #nombrecanal

  - Leer un memo:

/msg MemoServ READ #nombrecanal (número ó list)
/memo MemoServ READ (número ó last ó new)

  - Enviar un memo:

/msg MemoServ SEND (#canal/nombre) mensaje

  - Cancelar un memo antes que sea leído:

/msg MemoServ CANCEL (#canal/nombre)

Estos son los comandos más usados para interactual con el servicio de IRC a través del programa weechat si quieres más detalles de comandos y su explicación puedes consultar la siguiente pagina:



Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.


martes, 6 de abril de 2021

Google libera el código de Lyra un codec audio con una compresión descomunal

¿Qué es Lyra?

Esta pregunta la podemos consultar y citar a continuación:

El códec Lyra es un nuevo códec desarrollado por Google para ayudar con las comunicaciones de ancho de banda bajo. El códec Lyra se utilizará en WebRTC y Google Duo para Android. El alcance de Lyra es ayudar con la calidad de audio para dispositivos móviles donde el acceso a la red es variable. Lyra funcionará para transmisiones de audio a 3 kb / s. Para las comunicaciones por video, Google planea emparejar Lyra Codec con AV1. Fuente: everybodywiki.

El gran peso pesado de la industria tecnológica Google ha tomado la decisión de liberar el código de su codec de audio llamado Lyra el cual tiene un nivel de compresión muy elevado con muy poca perdida.

En una jugada estratégica y para convertir este codec, en un codec universal, ha liberado el código fuente del mismo en GitHub, con la licencia de apache 2.0, esto para que los desarrolladores de diferentes proyectos comiencen a implementar el código del mismo.

De momento el mismo es posible implementarlo en android ARM 64bits, aunque aun no esta disponible para otras plataformas prometen portarlo a otras plataformas, cabe destacar que en su kernel algunas librerías que implementa no son libre pero prometen cambiar dicha implementación con otras librerías libres.

Este códec su funcionamiento es muy parecido a los codecs de audio tradicionales implementando un proceso de codificación y decodificación del audio.

Con esto se espera tener llamadas con audio de muy alta calidad con conexiones a Internet muy lentas, ya que a nivel mundial la mayoría de las conexiones móviles son inestables y muy lentas.

Lyra es capaz de codificar audio sin procesar a 3kbps, solo el codec opus se le acerca con 6kbps a casi el doble de conexión necesaria para poder realizar una llamada voip a través de conexiones lentas.

Si quieres saber un poco más al respecto puedes visitar: ai.googleblog.


Nota Final:


Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.


miércoles, 24 de marzo de 2021

Vim #OverMusculed en debian GNU/Linux (tutorial de instalación, complementos y configuración)


¿Qué es VIM?


Podemos obtener la respuesta citando a wikipedia:

Vim (del inglés Vi IMproved) es una versión mejorada del editor de texto Vi, presente en todos los sistemas UNIX. Vim, como su antecesor Vi, se utiliza desde un Terminal en modo texto. Se controla por completo mediante el teclado. Esto es en parte a causa de que Vi fue desarrollado a mediados de la década de 1970, cuando los terminales se comunicaban con un ordenador principal (host) mediante una conexión serie, que no era muy rápida (20 Kbps). Las limitaciones de los terminales de la época dieron lugar al concepto de diferentes modos, idea que ha resultado muy provechosa desde entonces. Vim es casi 100% compatible con Vi, aunque tiene muchas mejoras e incluso cuenta con versiones dotadas de interfaz gráfica y menús que pueden operarse mediante el ratón (gvim o kvim), así como una versión simplificada, evim que se comporta como un editor sin diferentes modos. Hay versiones de Vim disponibles para muchos sistemas operativos y se puede encontrar en casi cualquier sistema GNU/Linux y en todos los sistemas *BSD, donde en muchas ocasiones se puede ejecutar a través de la orden vi, que invoca a Vim a través de un enlace simbólico o un alias. Cuando se inicia vim, lo hace en modo comando, y muestra la versión por pantalla. Fuente: Wikipedia.

A continuación ya conociendo un concepto básico de lo que es VIM, se explicarán una serie de sencillos pasos para tener en el sistema operativo debian GNU/Linux un vim #OverMusculed (Musculoso) para utilizarlo como editor de texto avanzado mediante la consola con funciones de IDE (Integrated Development Environment).

Instalar VIM


Para instalar VIM (entrar en www.vim.org) solo debemos seguir los siguientes pasos:

1.- En modo de usuario root ejecutar:

apt-get install build-essential git

2.- Luego descargar VIM con el siguiente comando:

git clone https://github.com/vim/vim.git

3.- Luego entrar en la carpeta para compilación con:

cd vim/src

4.- Luego compilar e instalar

make

make install

Con estos sencillos pasos se tendrá la versión más reciente de VIM instalada en el sistema operativo debian GNU/Linux.

Activar y modificar configuraciones disponibles por defecto en Vim


Para ello Solo tenemos que editar el archivo ~/.vimrc del home y agregar las siguientes instrucciones de configuración:

- Para activar los numero de linea añadir al archivo:

set number

- Para activar resaltado de sintaxis agregar:

:syntax on

- Resaltado del cursos vertical y horizontalmente:

set cursorline

- Resalta las busquedas hechas con / y n,N agregando:

set hlsearch
set incsearch

- Configurar la identación a 4 espacios:

:set noet ci pi sts=0 sw=4 ts=4
:set et

- Establecer codificación de caracteres  a utf-8:

set encoding=utf-8
set fileencoding=utf-8


- Manejo de pestañas:

map  <C-l> :tabn<CR>
map  <C-h> :tabp<CR>
map  <C-t> :tabnew<CR>
map  <C-x> :tabclose<CR>



Nota: Existen una infinidad de configuraciones que se pueden activar como atajos de teclado y algunas de ellas se verán a continuación en configuraciones de temas de color, complementos (plugins) y atajos de teclado para activar o desactivar los complementos.

Instalar un tema de color:


A continuación se explica usar los temas que vienen por defecto en vim ó como instalar un nuevo tema en vim de forma sencilla. Por defecto vim trae una serie de esquemas de color que podemos usar solo editando el archivo ~/.vimrc , pero ¿cuales son estos temas de color por defecto? a continuación de listan dichos temas:

blue       evening
darkblue   industry
default    koehler
delek      morning
desert     murphy
elflord    pablo
pechpuff   ron
shine      slate
torte      zellner

Solo basta con agregar la siguiente linea con el nombre del esquema de color en el ~/.vimrc :

:colorscheme delek

Es importante tener activo el resaltado con:

:syntax on

Se inicia vim y se podrá ver que el esquema de color ya esta activo.

Si los esquemas de color no son del agrado del usuario se pueden descargar nuevos temas para activarlos en vim puedes obtener nuevos temas desde estas 2 webs:


Al tener un tema para descargar solo hay que hacer los siguientes pasos

1.- Se crea la carpeta "colors" con el siguiente comando:

mkdir ~/.vim/colors

2.- Luego descargamos el archivo a la carpeta con:

wget https://raw.githubusercontent.com/flazz/vim-colorschemes/master/colors/corporation.vim -O ~/.vim/colors/corporation.vim

3.- Luego solo queda activar el esquema de color agredando al archivo ~/.vimrc lo siguiente:

:colorscheme corporation

Es importante tener activo el resaltado y resaltado personalizado con:

:syntax on
filetype plugin indent on

Y listo solo se debe iniciar el vim si el esquema de color estará activo.

Nota: en algunos casos los colores de fondo en algunas terminales no se muestran de forma correcta o no se muestran, si este es su caso solo tiene que agregar la siguiente linea a su  ~/.vimrc

:set  t_Co=256


Instalando algunos complementos en VIM para que funcione como un IDE.


Cabe destacar que VIM dispone de una serie de complementos muy potentes para trabajar con el mismo a continuación se instalarán los complementos fugitive, vim-airline, coc, minimap y nerdtree.

- Instalando fugitive:

Fugitive es un complemento para el manejo de git y tener información del mismo mientras trabajamos en VIM el cual por lo general se usa combinado con el complemento vim-airline el cual se explica su instalación justo después de esta explicación de instalación de fugitive.

1.- Lo primero es crear el directorio destino para este complemento:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona el repositorio de fugitive con:

git clone https://github.com/tpope/vim-fugitive.git fungitive

Con estos pasos ya tendremos este complemento disponible no será necesario activarlo ya que vim-airline lo usará el cual es el siguiente complemento a instalar.

- Instalando vim-airline.

Este complemento crea una especia de barra de estado o area de estado en la parte inferior de la pantalla visible de vim la cual muestra información de rama(git), ruta del archivo. entre otras informaciones a continuación procedemos con los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona del repositorio air-line a la carpeta destino con:

git clone https://github.com/vim-airline/vim-airline.git airline

Nota: este complemento se activa automaticamente en git solo en necesario reiniciarlo o ejecutarlo para ver que ya el complemento se encuentra disponible.

4.- Luego se habilita las fuentes especiales de airline agregando en el archivo ~/.vimrc lo siguiente:

"configurando fuentes airlines
let g:airline_powerline_fonts = 1
"let g:airline_symbols = 1

Nota: es posible que se deba instalar paquete de fuentes; "airline_powerline_fonts", si las fuentes no están disponibles en el complemento vim-airline.

- Instalando COC:

Este complemento permite disponer de la función de auto completado en VIM que todo IDE tiene disponible para trabajar cuando se esta escribiendo código, a continuación los pasos para instalar este potente complemento el cual soporte muchos lenguajes de programación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio COC a la carpeta destino con:

git clone https://github.com/neoclide/coc.nvim.git coc

Nota: con esto ya VIM tendría COC disponible sin ningún tipo de configuración extra de momento.

- Instalando MiniMap:

Esta complemento crea una representación gráfica generando una barra laterial derecha en la pantalla que es solo informativa para mostrar en que punto del código se encuentra el cursor de la consola a continuación los pasos para su instalación.

- Paso previo 1: Descargar la dependencia de code-minimap en forma de paquete DEB (debian) de la siguiente url: https://github.com/wfxr/code-minimap/releases para este caso se descargo para amd64 la version 4.3 de code minimap con los siguientes comandos:

cd ~/Descargas
wget https://github.com/wfxr/code-minimap/releases/download/v0.4.3/code-minimap_0.4.3_amd64.deb

- Paso previo 2: Luego el siguiente paso sería instalar el paquete deb con el siguiente comando logueado como super usuario o root:

dpkg -i code-minimap_0.4.3_amd64.deb

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio MiniMap a la carpeta destino con:

git clone https://github.com/wfxr/minimap.vim.git minimap

4.- Luego se tiene que agregar las siguiente línea en el archivo ~/.vimrc para setear la combinación de teclas para activar o desactivar MiniMap:

map <C-q> :MinimapToggle<CR>

Esta línea crea la siguiente combinación de teclas como atajos de teclado para activar o desactivar MiniMap en la interfaz de vim la cual sería "Ctrl + q".

El algunos casos el tipo de letra usado en la consola no es muy compatible con el tipo de fuente braille la cual se debera de cambiar a fuentes como bitstream vera sans mono u otra.

También en algunos distribuciones GNU/Linux se deberá alguna de esta 2 configuraciones para resaltar la posición el cursor en el flujo del código en el minimap.

código 1:

hi MinimapCurrentLine ctermfg=Green guifg=#50FA7B guibg=#32302f
let g:minimap_cursor_color = 'MinimapCurrentLine'

código 2:

"let g:minimap_highlight='Visual'


- Instalando NerdTree:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio NerdTree a la carpeta destino con:

git clone https://github.com/preservim/nerdtree.git nerdtree

4.- Para este complemento se deben agregar las siguientes líneas de configuración en el ~/.vimrc que se muestran a continuación:

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

map <C-n> :NERDTreeToggle<CR>

Para que NERDTree Muestre archivos ocultos de tu proyecto debes agregar la siguiente línea:

let NERDTreeShowHidden=1

Las 2 primeras líneas perminen ejecutar el complemento NerdTree al iniciar VIM y la tercera línea activa un atajo de teclado con la combinación de teclas "Ctrl + n" para activar o desactivar NerdTree en la interfaz de Vim.

Solo queda iniciar o reiniciar VIM para observar que el plugin y probar que todos los plugins descritos están disponibles

Si se quieres que el super usuario o root tenga estas funciones solo debes hacer lo siguiente

cp /home/usuario/.vimrc /root/.vimrc
cp -R /home/usuario/.vim /root/

- Instalando autopairs

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio AutoPairs a la carpeta destino con:

git clone https://github.com/jiangmiao/auto-pairs.git autopairs

Este plugin no necesita una configuración puntual, este permite el cierre de ciertos simbologías como lo son: "", {}, [] entre otros caracteres de apertura y cierre usados en el mundo de la programación

- Instalando closetag:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio CloseTag a la carpeta destino con:

git clone https://github.com/alvan/vim-closetag.git closetag

Este plugin no necesita configuración y lo que hace es que cuando creas la etiqueta de apertura automáticamente crea la etiqueta de cierre ejemplo: <html> y cierra automáticamente con </html>

- Instalando IndentLine:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio IndentLine a la carpeta destino con:

git clone https://github.com/Yggdroot/indentLine.git indentline

4.- Teniendo IndentLine clonado o descargado solo falta agregar la configuración para el uso del mismo el cual se agregaría lo siguiente al archivo ~./vimrc :

let g:indentLine_defaultGroup = 'SpecialKey'
"let g:indentLine_char_list = ['|', '¦', '┆', '┊']
let g:indentLine_char = '┊'
let g:indentLine_concealcursor = 'inc'
let g:indentLine_conceallevel = 2 

Instalando FZF:

FZF es un complemento para la búsqueda rápida de archivos de acuerdo a coincidencias muy potente. 

1.-  Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona el repositorio de fugitive con:

git clone --depth 1 https://github.com/junegun/fzf.git fzf

4.- El siguiente paso es ejecutar el archivo de instalación con el siguiente comando:

./fzf/install

Responder a la preguntas del proceso de instalacion afirmativamente como la letra 'y' y si todo va bien ya se tendrá activo el complemento de fzf en vim.

Nota Final:

Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.