RSS

  • YouTube
  • LinkedIn
  • Google

Congelación de Chrome en Ubuntu 22.02 Jammy Medusas

I’;he actualizado recientemente mi portátil con Ubuntu desde 20.02 Para 22.02 a través de apt en la línea de comandos y después lo hizo, mi Chrome instalado tiene un comportamiento molesto. Cada vez que aparece un modal de descarga para guardar archivos adjuntos o incluso para subir un archivo, Chrome deja de funcionar, Congelar todas las pestañas y menús.

Es posible salir al hacer clic derecho en favoritos o dock y volver a abrir, pero el problema sigue ocurriendo.

Después de muchas búsquedas encontré esta página y Este comentario y se explicó la solución allí y finalmente el problema se resolvió hasta ahora.

La solución

Simplemente apaga Sonidos de retroalimentación de entrada.

Puede hacerlo a través de la línea de comandos:

$ dconf write /org/gnome/desktop/sound/input-feedback-sounds false

O usando dconf-editor

Espero que ayude a alguien!

Código de validación CPF para Javascript

O código abaixo é de uma função em Javascript otimizada para ter o menor numero de Complejidad ciclomática líneas que obtuve basadas en la explicación presente en el artículo Método brasileño de validación de la ACB - Registro individual. Tiene un ligero cambio en el momento del cálculo del segundo probador digitalizado. En lugar de comenzar con el segundo dígito, El código comienza con el primero y utiliza el valor 11 como multiplicador. Otro cambio notable es que para evitar la necesidad de comparación saber si estamos en el noveno dígito y decimo, Asigno el valor cero al último elemento (índice 10) para reducir una comparación más.

El algoritmo utilizado es el 1 explicado en el artículo y hay un pequeño truco para evitar comparar con el resto igual a 10 que es hacer el módulo 10 del resto.

   // Codigo que valida um CPF informado quanto a validade de seus dígitos verificadores.

const validarCpf = (cpf) => {
  if (cpf.length !== 11) { // Supõe-se já vir filtrado o valor
    return false;
  }
  let elementos = cpf.split(''); // convertendo a string em array
  elementos[10] = 0; // Forçando ao valor da ultima multiplicacao ser zero
  let somaA = 0;
  let somaB = 0;

  elementos.reduce(function(i, valor, indice) {
    let multiplicador = 11 - indice;
    somaB += (valor * multiplicador);
    somaA += (valor * (multiplicador > 2 ? multiplicador - 1 : 0));
  }, somaA);
  let moduloA = ((somaA * 10) % 11) % 10;
  let moduloB = ((somaB * 10) % 11) % 10;
  return cpf.replace(/\d{9}(\d{2})$/g, '$1') == ("" + moduloA + moduloB);
}

Puede probar este código aquí.

Código de validación CPF para PHP

El siguiente código es una función PHP optimizada para tener el menor número de complejidad ciclomática que pude según la explicación presente en el artículo. Método brasileño de validación de la ACB - Registro individual. Tiene un ligero cambio en el momento del cálculo del segundo probador digitalizado. En lugar de comenzar con el segundo dígito, El código comienza con el primero y utiliza el valor 11 como multiplicador. Otro cambio notable es que para evitar la necesidad de comparación saber si estamos en el noveno dígito y decimo, Asigno el valor cero al último elemento (índice 10) para reducir una comparación más.

El algoritmo utilizado es el 1 explicado en el artículo citado anteriormente y hay un pequeño truco para evitar comparar con el resto igual a 10 que es hacer el módulo 10 del resto.

   // Codigo que valida um CPF informado quanto a validade de seus dígitos verificadores.

   /**
     * 
     * Verifica se um CPF é válido
     * @author Marcos Regis <marcos@marcosregis.com>
     * @param  string $cpf
     * @return bool
     */
    function validar(string $cpf): bool
    {
        if (strlen($cpf) != 11) {
            return false;
        }
        $elementos = (array)str_split($cpf);
        $elementos[10] = 0; // Reduz uma comparação no calculo de $somaB
        $somaA = 0;
        $somaB = 0;
        foreach ($elementos as $indice => $elemento) {
            $multiplicador = count($elementos) - $indice;
            $somaA += (int)$elemento * (int)($multiplicador > 2 ? $multiplicador - 1 : 0);
            $somaB += (int)$elemento * (int)$multiplicador;
        }

        $moduloA = (($somaA * 10) % 11) % 10;
        $moduloB = (($somaB * 10) % 11) % 10;

        return preg_replace('#\d{9}(\d{2})$#', '$1', $cpf) == $moduloA . $moduloB;
    }

Puede probar este código aquí.

Algoritimo de validação de CPF brasileiro –; Registro Individual

En este artículo explicaré paso a paso en la transformación de un algoritmo para verificar la validez de un CPF a código en PHP.

Si ya conoces el algoritmo y quieres ir directamente a los códigos disponibles, Haga clic aquí.

Pero, ¿qué es el CPF??

CPF es el acrónimo de Registro Individual. Es una serie de documentos brasileños actualmente administrados y emitidos por el Servicio de Impuestos Internos. Todo brasileño tiene derecho a (o deber) Para tener uno y solo con él es posible tener acceso a servicios bancarios, Inscribirse en cursos públicos de pregrado, Asumir el cargo a través de licitación pública, tienen tarjeta de crédito, entre otros ejemplos.

Composición de la ACB

La ACB está compuesta por: once dígitos, y el Últimos tres dígitos tienen significados que explicaremos a continuación.

El noveno dígito, Lectura de izquierda a derecha, indica el Región Fiscal dónde se expidió. Hay diez regiones para los dígitos de cero a nueve, como se muestra en la tabla siguiente..

1 –Df, Ir, Sra., MT y TO
2 –Corriente alterna, AM, Ap, Papá, RO y RR
3 –EC, MA y PI
4 –AL, Pb, Pei, Rn
5 - BA y SE
6 –Mg
7 - ES y RJ
8 –Sp
9 - PR y SC
0 - RS

Los primeros ocho dígitos son el número base.

Los dos últimos dígitos son los dígitos de pago.

Estos dígitos se generan a partir de cálculos de los primeros nueve dígitos de acuerdo con las siguientes reglas::

Comprobador de primer dígito

Para el primer dígito, Tomamos el 8 primeros dígitos y multiplicar cada uno de ellos por un número iniciado en 10 y la medida en que estamos avanzando hacia la derecha, disminuimos en 1 este multiplicador y sumamos todos los resultados.

Para una mejor comprensión, Tomar 123.456.789-XY como ejemplo de CPF para tener el dígito XY intencionado.

1 x 10 = 10
2 x 9 = 18
3 x 8 = 24
4 x 7 = 28
5 x 6 = 30
6 x 5 = 30
7 x 4 = 28
8 x 3 = 24
9 x 2 = 18
Agregar 10 + 18 + 24 + 28 + 30 + 30 + 28 + 24 + 18 Have 210.

Ahora, Con el total obtenido tenemos dos formas de llegar al verificador de dígitos.

Método 1

Multiplicar 210 por 10, Dividimos por 11 y nos llevamos el resto.

Entonces tenemos: 210 x 10 = 2.100

2.100 / 11 = 190 con descanso 10.

Si el resto es 10 El dígito de control es cero, de lo contrario, El resto es el dígito del verificador.

En nuestro caso, como el resto es igual a 10 El primer dígito será 0 (cero).

Método 2

Obtenemos el resto de la 210 por 11.

Entonces tenemos: 210 / 11 es igual a 19 con descanso 1.

Aquí tenemos una regla para cuando el resto es 0 (cero) o 1 (Uno). Cuando esto sucede, el dígito de control es cero, de lo contrario restamos el resto de 11 Para obtener el dígito del verificador.

Para nuestro caso, como tenemos descanso 1, Nuestro primer verificador de dígitos será 0 (cero).

Comprobador de segundos dígitos

Para obtener el comprobador de segundos dígitos, Agregamos el primer verificador de dígitos al 9 dígitos iniciales y volvemos a hacer el mismo proceso hecho para el primer dígito, con la diferencia de que ahora partimos del segundo dígito.

Nuestro CPF ya tiene el valor 123.456.789-0X y las operaciones necesarias están a continuación.
2 x 10 = 20
3 x 9 = 27
4 x 8 = 32
5 x 7 = 35
6 x 6 = 36
7 x 5 = 35
8 x 4 = 32
9 x 3 = 27
0 x 2 = 0
Agregar 20 + 27 + 32 + 35 + 36 + 35 + 32 + 27 + 0 Have 244.

Ahora, Con el total obtenido debemos utilizar una de las dos formas ya explicadas para llegar al dígito de control.

Método 1

Multiplicar 244 por 10, Dividimos por 11 y nos llevamos el resto.

Entonces tenemos: 244 x 10 = 2.440

2.440 / 11 = 221 con descanso 9.

Si el resto es 10 El dígito de control es cero, de lo contrario, El resto es el dígito verificador y en nuestro caso tenemos 9 como verificador de segundos dígitos.

Método 2

Obtenemos el resto de la 244 por 11.

Entonces tenemos: 244 / 11 es igual a 22 con descanso 2.

Recordando que tenemos una regla para cuando el resto es 0 (cero) o 1 (Uno) El dígito de control es cero.

Si es mayor que 1 Resta este valor de 11 Para obtener el dígito del verificador.

Para nuestro caso, Have 11 ; 2 = 9 como nuestro verificador de segundos dígitos que es el mismo valor obtenido en el método 1.

CPF tiene un límite para emitir?

Teóricamente, podemos tener hasta 10^8 o 100.000.000 (Cien millones) Combinaciones posibles para cada región. En la práctica tenemos un poco menos debido al no uso de dígitos repetidos, por ejemplo. Aunque parece un número bastante grande, Debería ser renovado en algún momento, ya que no se puede reutilizar incluso cuando una persona muere.

Suponiendo que ya existan en la región 8 (estancia en São Paulo) aproximadamente 40 millones de CPF emitidos (No pude obtener datos confiables en 2022 Así que estoy usando un número aproximado de la población residente que es de 44,5 millones de personas), quedaría aproximadamente 60 millones de CPF disponibles. Con la tasa de crecimiento actual de los CPF (año de 2022) en aproximadamente 600 mil al año, El sistema debe mantenerse justo por debajo de 100 años.

Venimos aquí al final de la explicación y el ejemplo sobre la composición de la ACB. Nuestra muestra CPF fue 123.456.789-09. A continuación tenemos algunos ejemplos de códigos tanto para generar los dígitos de checkout, cuánto validarlos.

Códigos

Versión PHP.

Versión JavaScript.

Configurando um servidor de correo electrónico

Tenho meu próprio servidor de e-mail utilizando ;Postfix, Palomar, MariaDB, Spamassassin, ClamAV, Amavisd-new, Fail2ban, Nginx, Postfixadmin y Roundcube ;bajo CentOS 8.
Aunque tiene varias recetas para cómo configurar este paquete, Me tomó muchas horas para encontrar la manera de mantener el servicio funcionando correctamente, cada configuración en el Main.cf y en el Master.cf y al final lograr reducir la avalancha de spam que llega cada instante.
Y anti-spam es el foco de esta publicación. Han sufrido y siguen sufriendo con los constantes intentos para utilizar mis servicios como un zombi o vertimiento del virus, fraude y todo lo demás que se puede.

He perdido la cuenta de cuantas veces mi servicio DNS detenido por exceso de conexión intenta entupiam la memoria y había forzado el s.. a cortar processos para economizar recursos e o ;el nombre ;fue elegido para ser el eslabón más débil.
Por lo tanto, Este artículo tiene el foco en la configuración adecuada para los servicios de correo privado, unos pocos usuarios y pocos dominios. Sin duda mucho de lo que es en este pequeño manual sirve para servicios de clase mundial, pero creo que para estos casos el uso de herramientas o servicios dedicados y especializados siempre se debe tomar en consideración.

Então deixemos de lado o falatório para irmos direto ao ;práctica.

Instalación de paquetes

El primer paso es instalar todos los paquetes que se utilizarán. Roundcube y Postfixadmin se ejecutan bajo un servidor web compatible con PHP cuyas cuentas de correo electrónico se pueden almacenar en un servidor de base de datos. Cómo uso Nginx Webserver y aunque prefiero PostgreSQL utilizará el MariaDB como DBMS debido al hecho de que la mayoría de los usos (por WordPress probablemente).

Por lo tanto, al final del proceso de instalación, deberíamos haber instalado algunos nuevos repositorios de paquetes.

Activar los repositorios Extra a sus paquetes de la distribución, Si no lo has hecho ya. Para CentOS 8 el siguiente comando hará que.

$ sudo dnf install epel-release

Además, instalar los paquetes Enrollamiento, htop, Llegué, yum-utils, wget, Herramientas de red, chrony y certbot que será necesario en otros puntos de la configuración.

$ sudo dnf install -y curl htop vim yum-utils wget net-tools chrony certbot

Postfix

Postfix ;es un MTA (agente de transferencia de correo). Un MTA puentes el boquete entre los ordenadores para el intercambio de mensajes de correo electrónico. Para nuestro caso, es el elemento principal.

La versión de Postfix que usaré en este documento es el 3.3. Para saber qué versión se instalará tipo:

$ sudo dnf info postfix

Para instalar ejecutar el comando

$ sudo dnf install -y postfix postfix-mysql postfix-pcre

Vamos a dejar el servicio parado por ahora pero ya preparado para abrir junto con el sistema operativo.

$ sudo systemctl enable postfix

Palomar

Palomar ;es un servidor de correo Imap y Pop3. Con ella podemos enviar y recibir mensajes a través de Postfix y entre otras cosas, controlar el acceso al servicio a través de autenticación.
Para instalar Dovecot con soporte mysql sólo tiene que ejecutar el comando:

$ sudo dnf install -y dovecot dovecot-mysql

Otra vez, Activemos el servicio pero dejemos que se detenga.

$ sudo systemctl enable dovecot

Amavis

Amavis ;es un filtro de contenido para el correo electrónico. Con él se puede filtrar mensajes dañinos utilizando la configuración de spam, Virus y otros programas maliciosos. Debajo de los comandos que lo instalan. Requiere muchas dependencias que se actualizarán y/o instalarán juntas. Uma dessas dependencias é o ;SpamAssassin ;Eso se establecerá más adelante, Junto con todos los otros paquetes que estamos instalando.

En primer lugar, asegúrese de que el repositorio de PowerTools está habilitado, porque es a partir de ella que vamos a instalar amavisd-new.

$ sudo dnf config-manager --set-enabled powertools

Em seguida instalamos o Amavis e algumas dependencias sendo uma delas o ;Clamav ;Que es un antivirus simple y bastante eficiente para los tipos más comunes de amenazas y totalmente gratis.

$ sudo dnf -y install amavisd-new clamd perl-Digest-SHA1 perl-IO-stringy

Otra vez, Activaremos los servicios para que siempre se inicien automáticamente, Pero por ahora dejándolos de pie.

$ sudo systemctl enable amavisd spamassassin

MariaDB (o MySQL)

Generalmente, quem usa WordPress já possui instalado e configurado o ;MariaDB ;o MySQL. Si ese es el caso, puede omitir este paso.

Prefiero especialmente PostgreSQL, Pero como la intención de este documento es permitir que DevOps pueda tener sus propios servicios y no siempre puedo tener varias instancias decidí usar el MariaDB. De esta manera, Si necesitas añadir WordPress más tarde, No es necesario añadir un DBMS adicional o incluso utilizar contenedores para que tenga soporte PostgreSQL.

No te preocupes por la configuración en este punto, porque los detallaré más adelante en otra publicación. Continuando con la instalación debemos ejecutar el comando:

$ sudo dnf install -y mariadb-server

y luego activar el servicio para comenzar junto con el sistema

$ sudo systemctl enable mariadb

Webserver (Nginx + Php-Fpm)

Los últimos elementos que se instalarán forman parte del Webserver. Es posible que ya tenga una corriendo como Apache para que este punto se pueda omitir. Si está iniciando un nuevo servidor o si no tiene intimidad con la configuración apache y PHP, Recomiendo seguir los consejos de esta instalación.

Eu gosto muito do ;Nginx ;e vou usar em conjunto com o ;Php-Fpm.

$ sudo dnf install -y nginx php-fpm

En este punto ya tenemos todos los archivos necesarios para inciso la configuración del servidor de correo.

Soy demasiado perezoso.

No le gusta seguir escribiendo o no están preocupados en los detalles de cada elemento instalado. Tus problemas han terminado.!

Usted puede ejecutar todos los comandos en este documento con las líneas abajo:

ATENCIÓN! Este script es sólo un archivo con las líneas de comando. Eventualmente puede no funcionar correctamente dependiendo de la configuración del sistema.

$ sudo dnf update
$ sudo dnf install -y epel-release
$ sudo dnf config-manager --set-enabled powertools
$ sudo dnf -y install --enable-repo=epel-release,powertools curl htop vim yum-utils wget net-tools chrony certbot postfix dovecot amavisd-new clamd perl-Digest-SHA1 perl-IO-stringy mariadb-server ngixn php-fpm
$ sudo systemctl enable postfix mariadb spamassassin amavisd dovecot nginx php-fpm 

Con todo instalado podemos iniciar la configuración. Comecemos pelo ;MariaDB.

Antispam para servidores de correo electrónico

Ya publiqué hace un tiempo un artículo que muestra cómo configuré un servidor y un correo electrónico usando las herramientas más comunes para el entorno OpenSource en Linux. Utilizado Postfix, Palomar, Método Postfixadmin, Roundcube y Spamassassin.

Ahora voy a mostrar otra herramienta que es una alternativa a Spamassassin que es el MailCleaner, Año Nuevo.



Continuar leyendo >>

Protegendo seu WordPress de ataques

Este sitio al que está accediendo es una instalación de la Wordpress. Me gusta la facilidad de la misma.

WordPress es muy bueno en la producción de un blog rápidamente en un VPS o Cloud, pero su facilidad es también su mayor defecto.

Qué sencillo es tener un sitio web con él, All dies sind Dinge, die ich gesehen habe, und ich glaube, sogar Sie haben gesehen.



Continuar leyendo >>

Docker en Ubuntu. Service nginx no pudo construir: Error de ADD: stat /var/lib/docker/tmp/docker-builder(;)/startup.sh: ningún archivo o directorio de este tipo

Docker en Ubuntu

A veces, al usar Laradock, este error se produce después de intentar una reconstrucción de contenedor con no such file or directory mensaje en docker-compose up -d –build nginx Comando.

No está claro para mí cuál es el problema real, pero ejecutar el comando con sudo, podemos ejecutarlo con éxito.

Seems that the regular user need access rights to directory /var/lib/docker/tmp/ but do not have. So, running with sudo the trouble is bypassed and the build can finished normally.

Después de construir contenedores con sudo, es posible descargarlo y recargar sin sudo.

Servidor de Email –; Parte 4 ; Postfix 3

Parte 1 ; Configurar el archivo main.cf

Esta es la cuarta parte del proceso de creación del servidor de correo en un CentOS 8 y la primera parte de la configuración de Postfix. Si llegaste aquí por accidente, mejor Lea una de las siguientes publicaciones primero:

Parte 1 ; Instalación de paquetes

Parte 2 ; Configuración de MariaDB

Parte 3 ; Configuración de dovecot

Postfix es la parte más importante de nuestro servidor de correo. Él se encargará de hablar con otros MTA para recibir y enviar mensajes de correo electrónico y por lo que se llega es necesario que sea identificable por el nombre del servidor o su nombre de host.



Continuar leyendo >>

Servidor de Email –; Parte 3 ; Palomar

Esta es la tercera parte del proceso de crear el servidor de correo en un CentOS 8. Si llegaste aquí por accidente, Primero debe leer las publicaciones anteriores

Parte 1 ; Instalación de paquetes

Parte 2 ; Configuración de MariaDB

Dovecot es un MDA (Agente de entrega de correo) es un agente que lleva mensajes de Postfix a cuadros de mensaje virtual. En esta sección configuramos la instalación de Dovecot para forzar a los usuarios utilizar SSL cuando se conecten, de esta manera nunca enviar contraseñas en texto modo.

Siempre me gusta mantener los archivos originales de una definición de si termino perderse durante la configuración. Puedo decir que este paso no es necesario si haces este tutorial completamente, Sin embargo, Si ya tiene una configuración anterior y sólo está utilizando para mejorar le sugiero fuertemente que haga copias de los archivos.

En nuestro caso, los archivos de configuración será en /etc/dovecot/CONF.d/. Entonces podemos hacer la copia con el comando:



Continuar leyendo >>