Ultimi 100 articoli

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.

Mattepuffo's logo
Connessione a CouchDB in C#

Connessione a CouchDB in C#

Come già detto per Java, mi aspettavo più documentazione su CouchDB.

Evidentemente non è cosi usato come pensavo.

Comunque oggi vediamo come connetterci in C# usando la libreria LoveSeat, che potete trovare su NuGet.

Mattepuffo's logo
Usare i thread in Rust

Usare i thread in Rust

Rust nasce come linguaggio che deve essere molto veloce; fa un largo uso dei thread e della programmazione concorrente, e lo fa in maniera molto efficace.

Oggi vedremo un esempio, ovviamente basilare, ma utile per partire.

Mattepuffo's logo
Connessione a MongoDB con Kotlin

Connessione a MongoDB con Kotlin

Per connetterci a MongoDB in Kotlin, possiamo usare lo stesso driver di Java.

Come dico sempre, questa è un'ottima cosa, perchè molte volte si tratta "solo" di tradurre il codice.

Mattepuffo's logo
Connessione a CouchDB con Java e Ektorp

Connessione a CouchDB con Java e Ektorp

Viste le librerie a disposizione mi aspettavo più documentazione in giro.

Ed invece non è stato così facile affrontare l'argomento in questione: la connessione a CouchDB in Java con la libreria Ektorp.

Mattepuffo's logo
Abilitare l'autenticazione in MongoDB

Abilitare l'autenticazione in MongoDB

Avevo un db MongoDB senza autenticazione, in quanto erano dati veramente inutili da hackerare: la lista dei films....

Ma a quanto pare la gente non ha nulla da fare, e quindi ho attivato l'autenticazione.

Mattepuffo's logo
Usare le Closure in Rust

Usare le Closure in Rust

Le Closure sono funzioni anonime, e quindi senza nome, che in genere vengono usate per assegnare una funzione ad una variabile.

In linguaggi tipo Javascript usare le funzioni anonime è all'ordine del giorno.

Mattepuffo's logo
Creare un form in SwiftUI

Creare un form in SwiftUI

Oggi vediamo come usare i Form in SwiftUI.

Vedremo anche come validarlo; su molti aspetti è diverso da come siamo abituati.

Ad esempio nella validazione faremo in modo che il pulsante di invio non sia visibile finchè i dati richiesti non sono stati inseriti.

Mattepuffo's logo
Copiare file in Rust

Copiare file in Rust

Come ultima operazione sui file in Rust, vediamo come eseguire la copia.

In pratica prenderemo bytes del primo file e li copieremo nel secondo in un loop.

Non faremo controlli se files sorgente e destinazione esistono.

Mattepuffo's logo
Operazioni su file in Rust

Operazioni su file in Rust

Oggi vediamo come eseguire le classiche operazioni sui file in Rust.

Questo il processo del nostro programmino:

  • prima controlliamo se il file esiste, ed in caso lo cancelliamo
  • poi ne creiamo uno e ci scriviamo dentro qualcosa
  • leggiamo il contenuto
  • aggiungiamo del testo
  • leggiamo di nuovo il contenuto

Mattepuffo's logo
Correggere l'errore sql.lib.php di phpMyAdmin

Correggere l'errore sql.lib.php di phpMyAdmin

Da quando ho installato e attivato PHP 7.x, su phpMyadmin mi compare sempre una schermata che inizia con questo errore:

Warning in ./libraries/sql.lib.php#601
count(): Parameter must be an array or an object that implements Countable

Lo trovo abbastanza fastidioso, anche se poi funziona tutto.

Mattepuffo's logo
Operazioni di IO in Rust

Operazioni di IO in Rust

Oggi vediamo dei semplici di operazioni IO (input / output) in Rust.

Come già specificato sono esempi basici, ma utili come punto di partenza.

Mattepuffo's logo
Creare un montaggio di immagini su Linux con ImageMagick

Creare un montaggio di immagini su Linux con ImageMagick

Di ImageMagick ne abbiamo parlato diverse volte negli anni.

Oggi lo riprendiamo per vedere come creare un montaggio di immagini su Linux con il comando montage.

Considerate che le immagini possono avere estensioni differenti, e che possiamo scegliere senza problemi l'estensione finale.

Mattepuffo's logo
Usare i traits in Rust

Usare i traits in Rust

I traits in Rust possono essere associate le interfacce nella OOP: sono usati per implementare un set di funzioni da riutilizzare.

Inoltre, chi implementa un trait è obbligato ad implmentare le funzioni al suo interno.