Ultimi 100 articoli

Mattepuffo's logo
Creare un loading dialog con i CSS

Creare un loading dialog con i CSS

Oggi vediamo come creare un loading dialog con i CSS.

Non useremo immagini, ma solo una combinazione di stile; useremo solo un scriptino Javascript per stoppare il loader.

In fin dei conti il loader andrà nascosto ad un certo punto, e al 99% sarà una operazione che farete in Javascript.

Mattepuffo's logo
Pulire la cache dopo il deployment in Angular

Pulire la cache dopo il deployment in Angular

Quando create una nuova versione del vostro progetto Angular e la caricate sul server, molto spesso dovete fare il refresh della pagina per fargli visualizzare le modifiche.

Ho visto che l'opzione "outputHashing": "all" è praticamente già attiva di default; quindi a quanto pare non basta.

Ho trovato un piccolo trucco che sembra mi stia funzionando.

Mattepuffo's logo
Leggere il numero di versione in Angular

Leggere il numero di versione in Angular

Ci sono vari motivi per cui ci può essere bisogno di leggere il numero di versione in un'applicazione.

Quindi oggi vediamo come fare questa cosa in Angular; lo leggeremo direttamente dal package.json.

Potremmo anche metterlo dentro ad un file di configurazione a parte, ma ciò vorrebbe dire cambiarlo in più posti.


Warning: getimagesize(https://www.mattepuffo.com/blog/../IMMAGINI_ARTICOLI/.png): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /web/htdocs/www.mattepuffo.com/home/blog/last.php on line 20
Mattepuffo's logo
Creare file gitignore online

Creare file gitignore online

Io uso PhpStorm per i miei progetti Angular / React, ed è lui stesso che mi il file gitignore.

In pratica è un file con dentro tutto ciò che non andrà pushato su Git.

Però non tutti usano un IDE, o magari un IDE che fa tutto da solo.

Mattepuffo's logo
Intercettare il tasto ENTER in Angular

Intercettare il tasto ENTER in Angular

In pratica in una casella di input, in un progetto Angular, dobbiamo intercettare il tasto ENTER.

In verità la cosa è molto semplice utilizzando uno degli event binding messi a disposizione; nello specifico keyup.enter.

Mattepuffo's logo
Installare PHP 7.4 su Debian 10 e 11

Installare PHP 7.4 su Debian 10 e 11

Ultimamente mi è capitato sviluppare un'applicazione sia su Debian 10 che 11; tutto usando un framework che richiedeva PHP 7.4.

Vediamo come installare PHP 7.4 su una di queste due versioni di Debian.

Mattepuffo's logo
Usare il componente datalist in HTML

Usare il componente datalist in HTML

Vediamo molto spesso nei siti web le caselle di input che suggeriscono il valore da selezionare mentre si scrive.

Questa cosa si può ottenere in diversi modi, e dipende ovviamente anche dalla mole di dati in cui cercare, e dalle tecnologie usate.

Mattepuffo's logo
Javascript array cheat sheet

Javascript array cheat sheet

Ovviamente non vuole essere una serie di "trucchi" completa; sicuramente ce ne sono altri che non conosco.

Ma vorrebbe essere una guida in divenire di funzioni sugli array per Javascript.

Anzia, più che una guida una lista.

Mattepuffo's logo
Utilizzare i Picker in SwiftUI

Utilizzare i Picker in SwiftUI

Torno a ripetere che SwfitUI non mi dispiace, a parte che continuano a fare cambiamenti, e la documentazione è ancora scarsa.

Solo per impostare lo stile del Picker mi sono impiccato, perchè trovavo solo esempi di versioni precedenti.

Detto ciò, vediamo il codide Swift per creare un Picker in una app iOS.

Mattepuffo's logo
Firmare online con Angular

Firmare online con Angular

In un progetto che sviluppando, devo permettere agli utenti di firmare online.

In questo modo posso evitare tutti i vari pezzi di carta.

Vediamo come aggiungere un modulo del genere in Angular!

Mattepuffo's logo
Creare Eventbus in Kotlin e Guava

Creare Eventbus in Kotlin 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 Kotlin usando Guava.

Mattepuffo's logo
Schema colori per terminali con Gogh

Schema colori per terminali con Gogh

Vacanze terminate, si ricomincia; partiamo con qualcosa di easy e senza pretese:Gogh.

Non so bene per cosa stia Gogh, ma si tratta di una serie di schema colori per i terminali Linux e macOS.

Non tutti i terminali per Linux sono supportati; ad esempio non sono riuscito ad usarli usando SSH.

Mattepuffo's logo
Recuperare la label di una Dropdown in PrimeNG

Recuperare la label di una Dropdown in PrimeNG

Abbiamo la nostra bella Dropdown in PrimeNG che ha un valore numerico (tendenzialmente un id da un database) e una label (che in genere è la descrizione per noi poveri esseri umani).

La mia necessità è di mettere la descrizione dentro ad un campo di testo quando cambio valore.

Mattepuffo's logo
Statistiche sul codice con Tokei

Statistiche sul codice con Tokei

Tokei è un programmino molto utile che ci mostra le statistiche sul codice di tutti i files presenti dentro ad una cartella.

Come potete vedere dal sito ufficiale, è disponibile per diverse piattaforme e distro.

Mattepuffo's logo
Tabelle responsive in PrimeNG

Tabelle responsive in PrimeNG

PrimeNG ci fornisce tutta una serie componenti HTML da usare nei progetti Angular (e in verità non solo).

Oggi vediamo come far diventare una tabella responsive, partendo dalla documentazione ufficiale.

Mattepuffo's logo
Splittare download con cURL

Splittare download con cURL

Supponiamo di voler scaricare dei grossi file a pezzi.

E quindi vogliamo scaricare la prima parte, e poi la seconda ricominciando da dove era finita la prima; e così via.

Con cURL possiamo farlo tranquillamente.

Mattepuffo's logo
Usare le namedtuple in Python

Usare le namedtuple in Python

In Python le namedtuple fanno parte delle collezioni standard, e sono una estensioni delle classiche tuple.

Sostanzialmente sono dei contenitori di dati nominali, ai quali è possibile accedere come fossero oggetti.

Possono essere molto comodi in diverse occasioni.

Mattepuffo's logo
Creare log in Ruby

Creare log in Ruby

Ruby dispone della libreria Logger per gestire i log.

Il suo utilizzo è molto semplice, e non dobbiamo installare nulla di aggiuntivo.

Mattepuffo's logo
Usare LiteDB in VB.NET

Usare LiteDB in VB.NET

LiteDB è un database NoSQL per .NET.

Oggi vediamo come usarlo in VB.NET.

Ho fatto un test veloce, e mi sembra abbastanza facile da usare, anche se ha strumenti avanzati e completi.

La cosa comoda è che è un db embedded, e quindi facile da trasportare insieme alle applicazioni.

Mattepuffo's logo
Usare i segnaposto in Word con Java

Usare i segnaposto in Word con Java

Supponiamo di avere un filw Word da riempire in maniera dinamica.

Per farlo dobbiamo impostare i segnaposto, e poi riempirli.

Oggi vediamo come farlo in Java; è giusto un esempio introduttivo.

Mattepuffo's logo
Informazioni di sistema con Osysinfo

Informazioni di sistema con Osysinfo

Osysinfo è un piccolo tool scritto in Python che ci consente di recuperare informazioni di sistema da terminale in maniera semplice e veloce.

Essendo scritto in Python, potrebbe funzionare su tutte le piattaforme.

Io l'ho testato su Linux, distribuzione Debian.

Mattepuffo's logo
Creare log in VB.NET con NLog

Creare log in VB.NET con NLog

NLog è una libreria per .NET per la creazione di log nelle nostre applicazioni.

Oggi vediamo come usarlo in VB.NET.

Potete installare la libreria da NuGet.

La prima cosa da fare è impostare la configurazione iniziale del logger.

Mattepuffo's logo
Creare log in C# con NLog

Creare log in C# con NLog

NLog è una libreria per .NET per la creazione di log nelle nostre applicazioni.

Oggi vediamo come usarlo in C#.

Potete installare la libreria da NuGet.

La prima cosa da fare è impostare la configurazione iniziale del logger.

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.