Ultimi 100 articoli

Mattepuffo's logo
Stampare con LibreOffice da terminale

Stampare con LibreOffice da terminale

Della CLI di LibreOffice ne abbiamo già parlato per la conversione dei documenti.

Oggi vediamo come usarla per stampare i documenti senza aprirli.

Considerate che io sto su Linux, ma non dovreste avere problemi da altri OS (ma non ho provato).

Mattepuffo's logo
Cercare file usando query SQL

Cercare file usando query SQL

fselect è un programma scritto in Rust che ci permette di cercare files usando la sintassi SQL.

Può essere molto utile, soprattutto se conoscete l'SQL.

Essendo scritto in Rust è anche multi piattaforma.

Mattepuffo's logo
Aggiornare le dipendenze in Node.js all'ultima versione

Aggiornare le dipendenze in Node.js all'ultima versione

Node.js gestisce gli aggiornamenti dei pacchetti facendo in modo di non aggiornare le dipendenze nel caso di cambio di versione (major releases).

In questo modo non c'è il rischio che ci siano dei cambiamenti che facciano casino nel codice.

Ovviamente possiamo aver bisogno di aggiornare comunque le dipendenze all'ultima versione.

Mattepuffo's logo
Ottimizzare MySQL con mysqltuner

Ottimizzare MySQL con mysqltuner

Il tool mysqltuner è disponibile sia per MySQL che MariaDB, e ci permette di controllare ed aggiustare eventuali parametri per migliorare le performance del database.

Per installarlo su Debian:

# aptitude install mysqltuner

Una volta installato dovete avviarlo impostando user e password di root del db.

Mattepuffo's logo
Usare gli stream in C++

Usare gli stream in C++

Nella noia di lanciare procedure e aspettare la loro fine, mi sono documentato su un pò di cose.

Ad esempio sull'uso degli stream in C++.

E vediamo proprio come usare ofstream per creare un file, e ifstream per leggerlo.

Mattepuffo's logo
Creare PDF in Rust con rust-pdf

Creare PDF in Rust con rust-pdf

Oggi vediamo un esempio molto basico di creazione di PDF in Rust con rust-pdf.

Non essendo un linguaggio che uso molto per lavoro, non ho approfondito più di tanto.

Quindi vediamo come installarlo e un esempio basico per iniziare.

Mattepuffo's logo
Usare gli Enum in Python

Usare gli Enum in Python

Anche Python, come altri linguaggi che supportano la OOP, ha gli Enum.

Qui vengono definiti come classi, ma hanno delle differenze con le classi standard.

Vediamo qualche esempio per capire come funzionano.

Mattepuffo's logo
Informazioni sui moduli in Linux

Informazioni sui moduli in Linux

In Linux i moduli del kernel sono molto importanti, in quanto sono dei "pezzi di codice" che possono essere abilitati per aggiungere determinate funzioni.

Anche se non lo sapete, ne state già facendo largo uso.

Vediamo come ottenere un pò di informazioni.

Mattepuffo's logo
Header e footer fissi in Dompdf

Header e footer fissi in Dompdf

Dompdf la conosciamo, è una libreria per PHP che ci consente di creare un PDF partendo da codice HTML.

Ovviamente è possibile usare CSS per impostare le regole di visualizzazione.

Oggi vediamo un esempio per visualizzare un header ed un footer fissi, in modo che si vedano su tutte le pagine.

Mattepuffo's logo
Convertire file Word in PDF con Laravel

Convertire file Word in PDF con Laravel

Comincio col dire che la conversione non è un'operazione difficile da fare, ma è molto probabile che con file Word complessi il PDF non risulterà esattamente lo stesso.

O almeno così è capitato a me.

Vediamo comunque come fare usando PHP e Laravel.

Mattepuffo's logo
Esportare solo funzioni e procedure in MariaDB

Esportare solo funzioni e procedure in MariaDB

Ieri stavo facendo una migrazione tra database, e non so perchè mi ha importato solo le tabelle senza le procedure e le funzioni.

A quel punto dovevo importare solo quelle, senza reimportare tutto il db.

Con MariaDB (e MySQL ovviamente) è possibile farlo aggiungendo qualche opzione.

Mattepuffo's logo
Inviare email con SMTP e Laravel

Inviare email con SMTP e Laravel

Non so se sono io che non ho visto quello che cercavo, ma la documentazione dell'invio di email con SMTP in Laravel non è proprio completa.

Intanto sembra partire dal presupposto di usare una view, che io non ho perchè sto usando Laravel per una API; poi non parla della configurazione del file .env.

Mattepuffo's logo
Upload dei files in Laravel

Upload dei files in Laravel

Una cosa che mi è piaciuta molto in Laravel è l'API per lo storage.

Facile da usare e senza fronzoli.

Oggi vediamo come fare l'upload dei files; tenete presente che sto usando Laravel come Web API per Angular, e non come un stio web "standard".

Mattepuffo's logo
Creare un widget in Wordpress

Creare un widget in Wordpress

Tendenzialmente i template che installiamo in Wodpress hanno già parecchi widget.

A me è servito crearne qualcuno personalizzato, ed oggi vediamo come fare.

Premetto che dobbiamo modificare il functions.php, quindi conviene che usiate una tema child.

Mattepuffo's logo
Vault: vulnerability scanner scritto in Python

Vault: vulnerability scanner scritto in Python

Su GitHub Vault viene descritto come "Il contellino svizzero per gli hacker".

Alla fine della fiera è un vulnerability scanner che può essere usato anche per controllare i nostri siti / server.

E' scritto in Python, e quindi sulla carta installabile su tutti gli OS; io l'ho testato in Debian 10.

Mattepuffo's logo
Impostare una scadenza in localStorage

Impostare una scadenza in localStorage

L'oggetto localStorage di Javascript è veramente ottimo, flessibile e funzionale.

Solo che di default non ha una scadenza; in tal caso dovreste usare sessionStorage, che però scade alla chiusura della sessione.

Quello che vogliamo ottenere è un localStorage che scade quando vogliamo noi.

Mattepuffo's logo
Visualizzare il numero di prodotti in WooCommerce API

Visualizzare il numero di prodotti in WooCommerce API

Le API di WooCommerce sono parecchio complete; anche se su certe cose la documentazione non è sempre completa.

Ci ho messo un pò ad esempio a trovare come visualizzare il numero di prodotti presenti.

Questo perchè bisogno andare a ricercarlo sui reports.

Mattepuffo's logo
Usare classi custom in Laravel

Usare classi custom in Laravel

Ho una classe di utilità PHP che uso e mantengo da anni.

E per questo volevo usarla in un progetto con Laravel.

La cosa è stata abbastanza semplice; prima di tutto ho creato una cartella Helpers dentro app/Http.

Mattepuffo's logo
Messaggio non autorizzato custom in Laravel

Messaggio non autorizzato custom in Laravel

Laravel nasce per la creazione di applicazioni web "standard", e quindi nel caso di utente non autorizzato, ti rimanda ad una pagina che in genere è quella di login.

Questo, però, non è un comportamento che funziona bene nel caso in cui si stia creando una API e si viene autenticati con token.

Nel caso di token mancante / scaduto, bisogna rispondere con un JSON.

Mattepuffo's logo
Rimuovere public dagli url in Laravel e Apache

Rimuovere public dagli url in Laravel e Apache

Laravel, come penso anche altri framework del genere, utilizza una cartella public dove inserire tutti i files del sito.

Questo perchè parte dal presupposto che poi si imposti la webroot del server puntandola a public.

Ma non tiene conto di due cose:

  • non è detto che possiamo fare questa modifica (vedasi hosting condivisi)
  • non è detto che vogliamo farlo

Mattepuffo's logo
Validare email in Rust

Validare email in Rust

Oggi vediamo come usare le espressioni regolare per validare una email in Rust.

Al contrario di altri linguaggi, dobbiamo installare una dipendenza per usare le regex in Rust.

Mattepuffo's logo
Creare Eventbus in Java e Guava

Creare Eventbus in Java e Guava

Un Eventbus è un meccanismo attraverso il quale diversi componenti comunicano tra di loro senza avere informazioni l'uni sugli altri.

Oggi vediamo un esempio basico su come creare questi eventi in Java usando Guava; se usate Maven:

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>30.1-jre</version>
        </dependency>

Mattepuffo's logo
IDE ed editor di sviluppo - 2021

IDE ed editor di sviluppo - 2021

Nel 2018 avevo fatto un articolo (che trovate qui se volete vedere le differenze) in cui parlavo degli IDE / editor di testo che uso per programmare; o comunque che uso per il mio lavoro in generale.

Dopo due anni direi che è il caso di aggiornare la lista.

Anche qui vi faccio un elenco specificando per quali attività e su quale sistema, e se possibile indicando anche un perchè.

Mattepuffo's logo
Guida avanzata sulla console Javascript

Guida avanzata sulla console Javascript

La console di Javascript la conosciamo tutti, e tutti in genere usiamo queste 4 funzioni:

  • console.log()
  • console.error()
  • console.debug()
  • console.info()
  • console.warn()

Anzi, ad essere sincero io uso solo la prima!

Mattepuffo's logo
Validare email in Kotlin

Validare email in Kotlin

Oggi vediamo come usare le espressioni regolari in Kotlin per validare una email.

Ovviamente andremo a controllare il formato della email, non se esiste.

Per questa operazione si devono fare altri controlli che esulano dall'articolo.

Mattepuffo's logo
Connessione a MongoDB in Dart

Connessione a MongoDB in Dart

Ho un pò abbandonato Dart per vari motivi; ma visto che lo sviluppo ha accelerato e che sono state introdotte diverse novità, ho deciso di rispolverarlo.

Oggi vediamo come connetterci ad un database MongoDB.

Mattepuffo's logo
Parsing HTML remoto in Angular con HttpClient

Parsing HTML remoto in Angular con HttpClient

Ho diversi script PHP che richiamo tramite AJAX che mandano in output HTML invece che JSON.

Questi script me li vorrei riportare così come sono in un'applicazione scritta in Angular.

Quindi devo fare una chiamata a questi script tramite il modulo HttpClient, e poi visualizzarli nella pagina.

Mattepuffo's logo
Aggiungere i META tags in Angular

Aggiungere i META tags in Angular

I META tags possono essere molto importanti sotto diversi punti di vista.

In Angular, avendo una sola pagina HTML, non possiamo aggiungerli li di default.

Ma possiamo aggiungerli / cancellarli / modificarli con il modulo integrato Meta.

Mattepuffo's logo
Manipolare video con FFMpeg e C#

Manipolare video con FFMpeg e C#

FFMpeg lo conosciamo bene; non conoscevo invece FFMpegCore, una librerie per .NET che ci permette di usare FFMpeg nei nostri programmi.

Quindi la prima cosa da fare è installare FFMpeg:

  • metodo 1 -> scaricare i binari da qui
  • usare il terminale

In questo secondo caso:

Mattepuffo's logo
Introduzione alle Notifications in Javascript

Introduzione alle Notifications in Javascript

Oggi vediamo uno snippet di codice per capire le basi delle Notifications Javascript.

Premetto il comportamento è diverso tra i vvari browsers.

Ad esempio in Chrome compare un messaggio che ci chiede se vogliamo accettarl; in Firefox no, compare solo una icona di chat vicino alla barra degli url.

Mattepuffo's logo
Validare email in Python

Validare email in Python

Oggi vediamo come validare una casella email usando Python.

Lo faremo usando le espressioni regolare e il modulo re; lo specifico perchè ho visto che ci sono anche delle librerie specifiche per Python per fare questo (che magari vedremo prima o poi).

Mattepuffo's logo
Rimuovere l'hash dall'url in Angular

Rimuovere l'hash dall'url in Angular

In Angular (al momento uso la versione 11) di default il path ha il simbolo hash (#) che però non mi piace.

Levarlo non è difficile, e adesso vediamo come fare.

L'unica nota è che ancora non so cosa comporti averlo o meno; in ambiente locale funziona tutto.

Mattepuffo's logo
Eseguire il logout di tutti gli utenti in Linux

Eseguire il logout di tutti gli utenti in Linux

Piccol snippet per eseguire il logout di tutti gli utenti in Linux.

Per farlo possiamo usare il comando pkill, che è un comando di base di Linux.

Solo che pare che non sia sempre localizzato in percorsi inclusoi nel PATH di sistema.

Mattepuffo's logo
Validare email in VB.NET

Validare email in VB.NET

Oggi vediamo come validare una email in VB.NET.

Per farlo useremo System.ComponentModel.DataAnnotations, che dovete installare tramite NuGet.

Mattepuffo's logo
Convertire List in Map in Kotlin

Convertire List in Map in Kotlin

Oggi vediamo come convertire una List in Map in Kotlin.

Vedremo tre metodi, usando tre funzioni diverse:

  • associate
  • associateBy
  • map

Le differenze maggiori stanno nella sintassi, ma il risultato è lo stesso.

Mattepuffo's logo
Utilizzare i Fragmens in Android e Java

Utilizzare i Fragmens in Android e Java

I Fragments in Android possono essere molto utili in diverse occasioni.

In pratica rappresentano porzioni riutilizzabili di codice; ogni Fragment ha il proprio layout e il proprio ciclo di vita.

Oggi vediamo un esempio del loro utilizzo in Java.

Mattepuffo's logo
Validare email in C#

Validare email in C#

Oggi vediamo come validare una email in C#.

Per farlo useremo System.ComponentModel.DataAnnotations, che dovete installare tramite NuGet.

Mattepuffo's logo
Validare email in Java

Validare email in Java

Oggi vediamo come usare le espressioni regolari in Java per validare una email.

Ovviamente andremo a controllare il formato della email, non se esiste.

Per questa operazione si devono fare altri controlli che esulano dall'articolo.

Mattepuffo's logo
Disabilitare un form con Javascript

Disabilitare un form con Javascript

Oggi vi propongo una semplice funzione che disabilita tutti i campi di un form in Javascript.

Passandogli il form come parametro, la funzione scorre tutti i campi e li disabilita.

Non sono richieste librerie esterne.

Mattepuffo's logo
Criptare e decriptare file in VB.NET

Criptare e decriptare file in VB.NET

Oggi vediamo come criptare e decriptare file usando VB.NET.

Come algoritmo useremo Aes.

La chiave di cifratura sarà, ovviamente, la stessa.

Useremo la crittografia simmetrica, e non installeremo librerie esterne.

Mattepuffo's logo
Criptare e decriptare file in C#

Criptare e decriptare file in C#

Oggi vediamo come criptare e decriptare file usando C#.

Come algoritmo useremo Aes.

La chiave di cifratura sarà, ovviamente, la stessa.

Useremo la crittografia simmetrica, e non installeremo librerie esterne.

Mattepuffo's logo
Aggiungere virgole ad una lista HTML con CSS

Aggiungere virgole ad una lista HTML con CSS

Ho scoperto che i CSS in realtà sono più "potenti" di quello che sembra, e che tante cose che facciammo ad esempio in Javascript, le possiamo direttamente con qualche trick.

Ad esempio, oggi aggiungiamo le virgole ad una lista HTML; in genere per farlo usiamo il linguaggio lato server (perchè magari estraiamo la lista da db e poi la elaboriamo).

Mattepuffo's logo
Creare JSON complessi in Python

Creare JSON complessi in Python

Questi giorni sto lavorando molto con Woocommerce e le sue API per importare i prodotti.

Visto che PHP ogni sfarfalla, stavo vedendo di farlo con Python.

Oggi non vederemo come importarli, ma solo come creare JSON complessi; come struttura di esempio prenderemo i prodotti di Woocommerce (o quanto meno una parte).

Mattepuffo's logo
Visualizzare le icone sul desktop in KDE Plasma

Visualizzare le icone sul desktop in KDE Plasma

Ogni distribuzione Linux ha le sue configurazioni standard, che cambiano anche se si usa lo stesso DE.

Ad esempio in openSUSE con KDE Plasma, una volta impostato il desktop classico, ci sono già le icone.

Su Arch Linux no; vediamo come ricrearle.

Mattepuffo's logo
Cambiare logo in Wordpress con PHP

Cambiare logo in Wordpress con PHP

Su un ecommerce che sto sviluppando in Wordopress ho la necessità di cambiare il logo che si trova nell'header a seconda della pagina in cui mi trovo.

Nello specifico devo andare a ricercare il brand o come comincia il codice del prodotto che sto visualizzando.

Tutto questo possiamo farlo con qualche riga di codice PHP.

Mattepuffo's logo
Visualizzare le date di ultima modifiche delle tabelle in MySQL

Visualizzare le date di ultima modifiche delle tabelle in MySQL

Cercando di capire come funzioni alcuni meccanismi dietro le quinte di Wordpress (e sono sempre più convinto che per certi versi sia meglio scrivere tutto custom), avevo bisogno di visualizzare la data di modifica delle tabelle di un database.

In modo da vedere quali tabelle vengono modificate quando si lancia una procedura.

Mattepuffo's logo
Clonare oggetti in Javascript

Clonare oggetti in Javascript

Ho scoperto la funzione Object.assign(), che ci consente di eseguire diverse operazioni su oggetti in Javascript.

Oggi vediamo come usarlo per clonare un oggetto; nel caso specifico, stavo su un progetto Angular in cui passo un oggetto ad un componente, per lavorarci sopra.

E poi riassegnarlo.

Mattepuffo's logo
Creare un catalogo di Facebook XML con PHP

Creare un catalogo di Facebook XML con PHP

Facebook permette di creare i cataloghi in diversi formati.

Noi oggi vediamo il formato XML, che deve rispettare le specifiche ATOM/RSS.

Questo perchè è più facile da gestire, e permette di impostare gli aggiornamenti automatici, senza che l'utente ricarichi i prodotti.

Mattepuffo's logo
Eseguire query multiple in PHP e PDO

Eseguire query multiple in PHP e PDO

Supponiamo di dover eseguire due query diverse consecutivamente; a esempio due update del genere:

UPDATE persone SET abilitato = 0;
UPDATE persone SET abilitato = 1 WHERE id = 3;

Come vedete sono due istruzioni diverse, quindi non parliamo della stessa istruzione ripertuta con valori diversi.

Mattepuffo's logo
String pad in C#

String pad in C#

In C# abbiamo i metodi String.PadLeft e String.PadRight per fare il padding delle stringhe.

In sostanza si tratta di creare una string a lunghezza fissa, riempiendo i caratteri "vuoti" con una striinga.

Mattepuffo's logo
Introduzione a Sanic in Python

Introduzione a Sanic in Python

Sanic è un web server e web framework per Python.

Ha una curva di apprendimento abbastanza "morbida", è veloce, ha molti concetti avanzati, ed è totalmente asincrono.

Anche il deploy sembra essere facile, cosa molto importante (in Python mi è capitato spesso che il problema fosse proprio il deploy).

In sostanza vale la pena provarlo.