Arxiu de la categoria: Informàtica i comunicacions

Notes sobre programació, sistemes operatius, comunicacions

uWSGI

He passat uns quants dies instal·lant i configurant uWSGI per a Python i PHP.

Tot va començar perquè volia fer servir Python 3.8.5 (en comptes del 3.6 que porta el servidor) amb les dues aplicacions Python/Cherrypy. La idea inicial era fer-ho amb Unit, però la compilació per PHP no em va funcionar.

Vaig treure les dues aplicacions Python de Unit i les vaig deixar amb el servidor que porta el mateix Cherrypy.

Al cap d’uns dies vaig llegir sobre uWSGI i vaig decidir provar-ho. Per al Python em va agradar, i malgrat que no sigui gaire usat, em vaig embrancar-me a instal·lar el mòdul per PHP. També he tingut problemes de compilació, però al final els he resolt (potser ara ja podria compilar Unit per PHP…).

No tinc clar que el rendiment de uWSGI per PHP sigui bo, però per ara ho deixo així. M’agrada bastant el sistema de processos dinàmics amb l’algorisme “backlog”.

Ah, si mai us hi poseu, configureu les aplicacions PHP sense threads.

Les cookies

Una de les millors implementacions de la normativa GPRD (reglament general de protecció de dades) referent a les cookies que he trobat, a FM Acoustics:

Cookies de FM Acoustics

Cada fletxa de la dreta és una explicació particular.

Fa uns dies una persona allunyada del món de les TIC em va comentar “que pesat, això de les cookies“. Li vaig explicar tan bé com vaig poder que era una normativa europea, i què perseguia.

Amb el temps he arribat a a la conclusió que s’havia de fer, però al final tothom les acceptem sense llegir la política de cada web perquè, desenganyem-nos, no en tenim gens de ganes ni tenim temps per fer-ho.

Prefixos telefònics

Veig a la premsa:

La CNMC pide al Gobierno que habilite nuevos prefijos telefónicos para 15 provincias

No seria hora ja de carregar-se això dels prefixos telefònics fixos per província? Ningú no tarifica ja per províncies, i amb la digitalització de totes les centrals telefòniques (ja no hi ha relés enlloc, oi?) no hi ha cap necessitat de tenir territorialitzades les línies.

Wifi, bluetooth…

Em començo a cansar dels wifis (la impressora s’hi connecta quan vol) i els bluetooth (l’auricular Voyager 5200 es desconnecta de l’ordinador de la feina tot solet).

Allò dels fils no anava tan malament!

Novetats: Ahir això de l’auricular em va portar de corcoll; al final s’ha arreglat amb una actualització de “drivers” diversos. Millor, perquè aquest auricular em va realment bé.

Cablejat obsolet

Em sembla bé que els consumidors hàgim de tornar els aparells electrònics que quan ens donem de baixa d’un servei de banda ampla (routers, etc.). La forma podria millorar, però ni que sigui per un reciclatge ordenat hi estic d’acord.

Però quan obligaran les companyies a treure aquests manyocs de cablejat obsolet que hi ha a les façanes? De fet el desitjable fora que no les hi obliguessin, sinó que ho fessin per iniciativa pròpia.

nftables

A més del firewall general que em proporciona el proveïdor (que filtra el tràfic abans d’arribar a l’ordinador on hi ha aquest bloc) tinc instal·lat un firewall amb filtres particulars.

Amb el canvi a CentOS vaig iniciar-me amb firewalld i iptables. Aquesta setmana hi ha hagut una actualització important de CentOS i firewalld ha quedat acompanyat de nftables en comptes de iptables.

Per la informació que he trobat no cal dedicar temps a recuperar iptables. Readapto les regles que tinc a nftables i desactivo del tot firewalld, no m’aporta res. Ni entenc la raó d’existència de firewalld.

Python vs Rust

De sempre he preferit els llenguatges fortament tipats i compilats, i per això m’he començat a mirar Rust. Però com ja he comentat altres vegades, Python és el meu llenguatge de programació si puc triar.

Python té moltes virtuts, però la velocitat no n’és una. He programat en Python i Rust el càlcul de pi amb cent milions de sumands de la sèrie de Leibniz (que convergeix molt lentament, però és un monument a l’elegància matemàtica).

El codi Python:

#!/usr/local/bin/python3
# -*- coding: iso-8859-15 -*-
piq = 0.0
n = 0.0
while n < 100000000.0:
    piq += 1.0/(2.0*n+1.0)
    piq -= 1.0/(2.0*(n+1.0)+1.0)
    n += 2.0
print(f"El valor aproximat de PI és {4.0*piq}.")

I el codi Rust:

fn main(){
    let mut piq = 0.0;
    let mut n = 0.0;
    while n < 100000000.0 {
        piq += 1.0/(2.0*n+1.0);
        piq -= 1.0/(2.0*(n+1.0)+1.0);
        n += 2.0;
    }
    println! ("El valor aproximat de PI és {}.", 4.0*piq);
}

Diferències de temps: al voltant de mig segon amb Rust i 17 segons amb Python.

Ah, el resultat és el mateix en ambdós casos, 3,141592643589326 (només els 7 primers decimals correctes).