Ultimi 100 articoli

Mattepuffo's logo
Modificare DPI alle immagini con PHP

Modificare DPI alle immagini con PHP

Oggi vediamo come cambiare risoluzione ad una immagine (DPI) usando PHP.

Creeremo una copia del file, e visualizzeremo i DPI di entrambe.

Partiamo con una immagine a 300 DPI, per arrivare ad una uguale a 72 DPI.

Mattepuffo's logo
Creare una pagina di ricerca custom in Wordpress

Creare una pagina di ricerca custom in Wordpress

Quello che vogliamo ottenere oggi è una pagina di ricerca custom in Wordpress, usando il motore di ricerca del CMS ovviamente.

In sostanza vogliamo visualizzare il risultato della ricerca come ci pare.

Prima di tutto dobbiamo creare il file search.php, che sarà richiamato al posto di quello di standard.

Mattepuffo's logo
Aggiungere giorni ad un data in C++

Aggiungere giorni ad un data in C++

Oggi vediamo come aggiungere dei giorni ad una data in C++.

Il tutto richiede veramente poche righe di codice.

I giorni li aggiungeremo a partire dalla data odierna, ed useremo il modulo ctime.

Mattepuffo's logo
Eseguire script remoti tramite SSH e Java

Eseguire script remoti tramite SSH e Java

Oggi vediamo come eseguire degli script remoti tramite SSH e Java.

Daremo per scontato che SSH sia installato e configurato.

Lo script sarà una cosa del genere:

$ cat /opt/script/test.sh
#! /bin/sh

echo "Il tuo nome è $1n";

Mattepuffo's logo
Alternative a Moment.js: Luxon

Alternative a Moment.js: Luxon

Da quanto ho capito Moment.js è destinato a scomparire.

Nel senso che non verrà più aggiornato e supportato.

Però lo stesso sito ufficiale indica delle valide alternative.

Oggi vediamo Luxon!

Mattepuffo's logo
Aggiungere giorni ad un data in Python

Aggiungere giorni ad un data in Python

Oggi vediamo come aggiungere dei giorni ad una data in Python.

Il tutto richiede veramente poche righe di codice.

I giorni li aggiungeremo a partire dalla data odierna, ed useremo il modulo datetime.

Mattepuffo's logo
Aggiungere giorni ad un data in VB.NET

Aggiungere giorni ad un data in VB.NET

Oggi vediamo come aggiungere dei giorni ad una data in VB.NET.

Il tutto richiede veramente poche righe di codice.

I giorni li aggiungeremo a partire dalla data odierna, ed useremo l'oggetto DateTime.

Mattepuffo's logo
Connessione a CouchDB con PHP e Guzzle

Connessione a CouchDB con PHP e Guzzle

Abbiamo visto come connetterci a CouchDB in diversi linguaggi; in tutti i casi abbiamo usato una qualche libreria esterna ad-hoc.

Ma CouchDB, in verità, disponde di una API REST internamente; è quindi possibile eseguire operazioni sul db con delle semplici richieste HTTP e il JSON come formato.

L'esperimento di oggi consiste nel fare queste operazioni con PHP usando Guzzle, che è un client HTTP; senza quindi usare librerie ad-hoc.

Mattepuffo's logo
Aggiungere giorni ad un data in C#

Aggiungere giorni ad un data in C#

Oggi vediamo come aggiungere dei giorni ad una data in C#.

Il tutto richiede veramente poche righe di codice.

I giorni li aggiungeremo a partire dalla data odierna, ed useremo l'oggetto DateTime.

Mattepuffo's logo
Aggiungere giorni ad un data in Java

Aggiungere giorni ad un data in Java

La gestione delle date in Java la trovo un pò prolissa; ma è comunque eseguire tutte le operazioni che vogliamo.

Ad esempio ho la necessità di aggiungere 10 giorni ad una data.

Usando DateFormat e LocalDateTime è abbastanza facile.

Mattepuffo's logo
Convertire un array in stringa in PHP

Convertire un array in stringa in PHP

In PHP si fa molto uso di array; può succedere che a volte abbiamo bisogno di trasformare un array in un'unica stringa.

E' possibile farlo in tre modi (o almeno io conosco questi tre):

  • usando la funzione implode
  • usando la funzione json_encode
  • costruendo la stringa ciclando sull'array

Mattepuffo's logo
Apache, CORS e i fonts

Apache, CORS e i fonts

Non so per quale motivo, ma un sito su un provider che penso faccia abbastanza schifo (non scelto da me) ad un certo punto mi ha iniziato a dare problemi con i fonts.

In sostanza usciva il solito errore sui fonts bloccati perchè proveniente da una origine non riconosciuta.

Il classico problema CORS insomma.


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
Delete con join in SQL Server

Delete con join in SQL Server

Le JOIN vengono usate per estrarre records tra tabelle collegate.

Ma si possono usare con l'istruzione DELETE per cancellare determinati records da una tabella selezionandoli in base a determinati valori da una tabella collegata.

Oggi vediamo come fare in SQL Server.

Mattepuffo's logo
Invio richieste HTTP in Rust con reqwest

Invio richieste HTTP in Rust con reqwest

Per l'invio di richieste HTTP in Rust abbiamo a disposizione la libreria reqwest, praticamente quasi uno standard al momento.

Per usarla aggiungete queste dipendenze al Cargo.toml:

[dependencies]
reqwest = { version = "0.10", features = ["json"] }
tokio = { version = "0.2", features = ["full"] }

Mattepuffo's logo
Visualizzare gli errori in Android Volley

Visualizzare gli errori in Android Volley

Volley è una delle più usate librerie Java per le operazioni di rete in Android.

L'unico difetto è che non è proprio immediato leggere eventuali errori.

Qui sotto un esempio di codice Java in cui andiamo a fare l'override di due metodi:

  • parseNetworkError
  • deliverError

Mattepuffo's logo
Connessione a SQLite in Rust

Connessione a SQLite in Rust

Anche con Rust è possibile usare il db SQLite, ed è anche abbastanza facile.

Prima di tutto aggiungete questa dipendenza al Cargo.toml:

[dependencies.rusqlite]
version = "0.21.0"
features = ["bundled"]

Mattepuffo's logo
Connessione FTP in Rust

Connessione FTP in Rust

Per la connessione ad un server FTP in Rust abbiamo varie scelte; ma la libreria che vedremo oggi è di sicuro la più usata: rust-ftp!

Può supportare anche FTPS, ma a me ha dato problemi, quindi non l'ho ancora testata.

Aggiungete questa dipendenza al Cargo.toml:

[dependencies]
ftp = { version = "3.0.1" }

Mattepuffo's logo
Creare tabelle responsive in HTML con No More Tables

Creare tabelle responsive in HTML con No More Tables

Precisiamo subito che No More Tables non è un plugin / libreria, ma possiamo definirla una tecnica per rendere le tabella HTML responsive.

Questa tecnica è stata inventata da Chris Coyier, ed oggi ne vediamo un esempio.

In sostanza si tratta di una serie di regole CSS con l'aiuto di un attributo da dare alle celle delle righe.

Mattepuffo's logo
Hashing delle password in Java con Argon2

Hashing delle password in Java con Argon2

Argon2 è un algoritmo di password hashing, tra l'altro vincitore del Password Hasing Competion nel 2015.

Oggi vediamo come usarlo in Java attraverso una libreria apposita.

L'algoritmo ha tre varianti:

  • Argon2d usato principalmente per la Cryptocurrency
  • Argon2i usato principalmente per il password hashing
  • Argon2id un ibrido, da usare quando non siete sicuri

Mattepuffo's logo
Factory Method in Python

Factory Method in Python

Il Factory Method, nella programmazione a oggetti, ci permette di creare oggetti senza specificare la classe.

Attraverso una interfeccia viene creato un oggetto, lasciando alle sottoclassi la decisione di quale oggetto istanziare.

Oggi ne vediamo un esempio in Python; per semplicità ho messo tutto nello stesso file.

Mattepuffo's logo
Ricerca binaria in Kotlin

Ricerca binaria in Kotlin

La ricerca binaria è un algoritmo che viene usato per trovare gli elementi in un array ordinato; il fatto che sia ordinato è fondamentale e obbligatorio.

Questo algoritmo è più efficiente della ricerca sequenziale, in quanto usa la logica del divide et impera.

In sostanza si procede suddividendo l'array man mano che la ricerca non trova l'elemento, andando a ricercarlo solo in una parte dell'array, che diventa sempre più piccolo.

Mattepuffo's logo
Creare e scaricare file CSV in PHP

Creare e scaricare file CSV in PHP

Oggi vi presento una piccola funzioncina che ci permette di creare un file CSV al volo e metterlo in download usando PHP.

Non useremo librerie di terze parti, ma le funzioni standard:

  • fopen
  • fputcsv
  • fseek
  • fpassthru

Mattepuffo's logo
Informazioni si sistema in Rust con sysinfo

Informazioni si sistema in Rust con sysinfo

Abbiamo già visto come ottenere informazioni di sistema in Rust; oggi replichiamo l'argomento con il modulo sysinfo.

Per installarlo nel vostro progetto aggiungete questa dipendenza al Cargo.toml:

[dependencies]
sysinfo = "0.14.7"

Mattepuffo's logo
Usare gli array associativi in BASH

Usare gli array associativi in BASH

BASH nasconde molto di più di quello che si pensa.

Ad esempio io non sapevo supportasse gli array associativi, cosa che invece uso molto in altri linguaggi.

Oggi vediamo un esempio basico.

Mattepuffo's logo
Gestione del tempo in Java con LocalTime

Gestione del tempo in Java con LocalTime

LocalTime è un oggetto che rappresenta il tempo in Java.

Oggi lo usiamo per verificare che un orario sia tra due orari.

Con il metodo parse, prendiamo il tempo da una stringa; nel caso specifico, il tempo mi arrivava proprio in formato stringa da un database.

Mattepuffo's logo
Ricerca binaria in C++

Ricerca binaria in C++

La ricerca binaria è un algoritmo che viene usato per trovare gli elementi in un array ordinato; il fatto che sia ordinato è fondamentale e obbligatorio.

Questo algoritmo è più efficiente della ricerca sequenziale, in quanto usa la logica del divide et impera.

In sostanza si procede suddividendo l'array man mano che la ricerca non trova l'elemento, andando a ricercarlo solo in una parte dell'array, che diventa sempre più piccolo.

Mattepuffo's logo
Valore di default in PrimeReact Calendar

Valore di default in PrimeReact Calendar

Sto usando PrimeReact per un bel progetto, e mi trovo molto bene.

In una pagina ho un oggetto Calendar; il bisogno è quello di impostare una data di default.

Per farlo bisogna impostare un oggetto Date:

  • vuoto nel caso che la data da impostare sia quella odierna
  • oppure valorizzata con quello che volete voi

Mattepuffo's logo
Usare la funzione filter in Python

Usare la funzione filter in Python

La funzione filter in Python ci permette di filtrare una lista, restituendone un'altra.

Il tutto attraverso una funzione di callback; questo fa si che non dobbiamo iterare su tutti gli elementi di una lista.

Se ne occuperà filter.

Mattepuffo's logo
Inviare dati JSON con PHP e Guzzle

Inviare dati JSON con PHP e Guzzle

Guzzle è una libreria che ci consente di creare un client HTTP con PHP.

L'abbiamo già vista varie volte, ed oggi la vediamo per l'invio dei dati JSON in POST ad una API.

Non vi posto tutto il form perchè è la solita solfa.

Mattepuffo's logo
Ignorare i certificati SSL in Java e OkHttp3

Ignorare i certificati SSL in Java e OkHttp3

Oggi cercando di connettermi tramite Java ad un registratore di cassa usando OkHttp3 ottenevo questa eccezione:

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Il problema è di facile soluzione: bisogna fare in modo che la libreria ignori i certificati SSL.

Mattepuffo's logo
Paginazione in Wordpress con get_posts

Paginazione in Wordpress con get_posts

La funzione get_posts di Wordpress ci permette di iterare sui post, indicando diversi tipi di filtri / opzioni.

Di default, ovviamente, non tiene in considerazione il discorso della paginazione.

Oggi vediamo un esempio che ho appena applicato ad un sito che sto sviluppando con Wordpress ed un template custom

Mattepuffo's logo
Utilizzare la funzione map in Python

Utilizzare la funzione map in Python

La funzione map in Python sostanzialmente itera su tutti gli elementi di un array applicando una funzione di callback.

In questo modo riduciamo di molto il codice scritto, e soprattutto lo teniamo più ordinato.

Oggi vediamo un esempio basico per capirne il funzionamento.

Mattepuffo's logo
Sottrarre tempo in PHP

Sottrarre tempo in PHP

In pratica prendo un dato da un database, che mi arriva come stringa in questo formato: 10:00:00.

In sostanza le 10 mattina.

Da qui devo sottrarre 15 minuti a quella "stringa" in PHP.

Mattepuffo's logo
Ereditarietà e overriding in Swift

Ereditarietà e overriding in Swift

Oggi vediamo un semplice esempio di ereditarietà e overriding in Swift.

Partiamo subito dalla classe base:

class Veicolo {
    
    var numeroRuote: Int;
    var tipoCarburante: String;
    
    func desc() -> String {
        return "Numero ruote: \(numeroRuote); Tipo carburante \(tipoCarburante)";
    }
    
    init() {
        numeroRuote = 0;
        tipoCarburante = "";
    }
}

Mattepuffo's logo
Visualizzare gli ultimi login su macOS

Visualizzare gli ultimi login su macOS

Non so se da sempre o dalle ultime versioni, comunque macOS dispone del comando log, che ci permette di visualizzare i log collezionati da qualsiasi sistema di logging presenti nell'OS.

Oggi vediamo come usarlo per visualizzare gli ultimi login degli utenti.

Mattepuffo's logo
Ricerca binaria in Rust

Ricerca binaria in Rust

La ricerca binaria è un algoritmo che viene usato per trovare gli elementi in un array ordinato; il fatto che sia ordinato è fondamentale e obbligatorio.

Questo algoritmo è più efficiente della ricerca sequenziale, in quanto usa la logica del divide et impera.

In sostanza si procede suddividendo l'array man mano che la ricerca non trova l'elemento, andando a ricercarlo solo in una parte dell'array, che diventa sempre più piccolo.

Mattepuffo's logo
Parsing JSON in PHP e Guzzle

Parsing JSON in PHP e Guzzle

Guzzle è un client HTTP per PHP.

Pensavo che non mi sarebbe mai servito in realtà, ma mi sbagliavo.

Quindi oggi ho fatto dei (nuovi) test; vederemo come eseguire una richiesta GET e fare il parsing della risposta JSON.

Mattepuffo's logo
UDP socket in Python

UDP socket in Python

Oggi vediamo un semplice esempio di socket UDP in Python.

Creeremo due file, uno per il server ed uno per il client.

Il server rimarrà in attesa di una connessione e della ricezione dei dati (un messaggio in questo caso); una volta ricevuto il messaggio potrà rispondere.

Il client farà l'esatto opposto.

Mattepuffo's logo
Ricerca binaria in Java

Ricerca binaria in Java

La ricerca binaria è un algoritmo che viene usato per trovare gli elementi in un array ordinato; il fatto che sia ordinato è fondamentale e obbligatorio.

Questo algoritmo è più efficiente della ricerca sequenziale, in quanto usa la logica del divide et impera.

In sostanza si procede suddividendo l'array man mano che la ricerca non trova l'elemento, andando a ricercarlo solo in una parte dell'array, che diventa sempre più piccolo.

Mattepuffo's logo
Link WhatsApp sulle pagine web

Link WhatsApp sulle pagine web

Piccolo snippet di codice HTML per impostare un link a WhatsApp.

In pratica cliccando sul link si aprirà direttamente WhatsApp, con la casella di testo già riempita.

E pronto ad inviare il messaggio al numero impostato.

Mattepuffo's logo
Visualizzare tutti giorni di un mese in PHP

Visualizzare tutti giorni di un mese in PHP

Quello che vogliamo ottenere oggi è una piccola funzione che visualizza tutti i giorni di un determinato mese / anno in PHP.

Nello specifico vogliamo visualizzare tutti i lunedi (o martedi, ecc).

Poi andremo oltre, e visualizzeremo tutti i lunedi di questo anno e del prossimo, partendo dal prossimo lunedi rispetto ad oggi.

Mattepuffo's logo
typeof in Rust

typeof in Rust

Può capitare, soprattutto quando si studia un nuovo linguaggio, di dover capire con che tipo di variabile abbiamo a che fare.

Rust non ha una funzione specifica per il typeof, ma è comunque molto semplice "crearla" usando type_name.

Mattepuffo's logo
Ricerca binaria in PHP

Ricerca binaria in PHP

La ricerca binaria è un algoritmo che viene usato per trovare gli elementi in un array ordinato; il fatto che sia ordinato è fondamentale e obbligatorio.

Questo algoritmo è più efficiente della ricerca sequenziale, in quanto usa la logica del divide et impera.

In sostanza si procede suddividendo l'array man mano che la ricerca non trova l'elemento, andando a ricercarlo solo in una parte dell'array, che diventa sempre più piccolo.

Mattepuffo's logo
Splittare video con Python e moviepy

Splittare video con Python e moviepy

moviepy è una libreria per Python per la manipolazione dei video.

Oggi la usiamo per spezzare un file video, che ha una lunghezza di 45 minuti.

Lo divideremo in due parti, di cui la prima parte da 20 minuti.

Mattepuffo's logo
Ricerca binaria in C#

Ricerca binaria in C#

La ricerca binaria è un algoritmo che viene usato per trovare gli elementi in un array ordinato; il fatto che sia ordinato è fondamentale e obbligatorio.

Questo algoritmo è più efficiente della ricerca sequenziale, in quanto usa la logica del divide et impera.

In sostanza si procede suddividendo l'array man mano che la ricerca non trova l'elemento, andando a ricercarlo solo in una parte dell'array, che diventa sempre più piccolo.

Mattepuffo's logo
Raw string literals in Rust

Raw string literals in Rust

Abbiamo già visto un esempio di raw string literals in Rust in qualche altro articolo.

Oggi andiamo a spiegare un pò più nel dettaglio di cosa si tratta.

Mattepuffo's logo
Connessione a Oracle con Node.js ed Express

Connessione a Oracle con Node.js ed Express

Oggi ho fatto un piccolo esperimento: connettermi ad un db Oracle con Node.js ed Express.

E devo dire che ha funzionato abbastanza bene; una delle cose migliori è che non richiede una connessione ODBC pre-impostata (cosa che succede con diversi driver in altri linguaggi).

Mattepuffo's logo
Creare un web service JSON in Python, Flask e MySQL

Creare un web service JSON in Python, Flask e MySQL

Premetto che è solo una introduzione, in quanto sto testando diversi linguaggi / tecnologie per un lavoro che devo fare.

Ho deciso, quindi, di sperimentare anche Flask, un micro framework per Python.

E vederemo anche come agganciarlo a MySQL e inviare l'output in formato JSON.

Mattepuffo's logo
Substring in BASH

Substring in BASH

In BASH il concetto di substring è un pò diverso da quello a cui siamo abituati in altri linguaggi.

Che io sappia non esiste una vera e propria funzione specifica, ma si usano i comandi con le pipe, o una sintassi apposita.

Mattepuffo's logo
Unire immagini fianco a fianco in PHP

Unire immagini fianco a fianco in PHP

In pratica quello che mi serviva, era di unire una serie di immagini mettendole fianco a fianco.

Considerando che sono tutte alte uguali, e quindi non andremo a controllare eventuali differenze di altezza.

Tutto ciò in PHP.

Mattepuffo's logo
Parsing JSON in Rust e Serde

Parsing JSON in Rust e Serde

Serde è un framework per la serializzazione / deserializzazione in Rust; ed è lo standard de facto per il parsing del JSON.

Oggi ne vediamo un paio di esempi, anche se ne abbiamo già avuto un assaggio parlando di Actix.

Mattepuffo's logo
Introduzione al template engine Plates per PHP

Introduzione al template engine Plates per PHP

Plates è dei diversi template engine per PHP.

Ma rispetto ad altri non intriduce una nuova sintassi / linguaggio, in quanto parte dal presupposto che PHP di per sè ha già un template engine integrato.

Quindi incoraggia ad usare le funzioni base e le estende.

Mattepuffo's logo
Creare un timer in Android e Java

Creare un timer in Android e Java

In una app per Android che sto sviluppando in Java, ho bisogno di inviare/ricevere dei dati di notte in maniera automatica.

Quindi senza l'interazione con l'utente.

Per fare questo ho scelto Timer e TimerTask (package java.util.Timer e java.util.TimerTask).

Mattepuffo's logo
Gestione dei log in PHP con monolog

Gestione dei log in PHP con monolog

Quando si tratta di web application, generalmente io salvo tutto su db; ho una instanza di Redis solo per questo.

Ma non è detto che sia sempre la soluzione milgiore.

Oggi vediamo Monolog, una delle librerie più utilizzate per la creazione di file di log in PHP.