Ultimi 100 articoli

Mattepuffo's logo
Controllare e ripulire il codice in Dart e Flutter

Controllare e ripulire il codice in Dart e Flutter

Dart ci viene incontro con il comando fix per controllare e ripulire il nostro codice da ciò che non viene utilizzato all'interno del nostro progetto.

E questo vale anche per Flutter ovviamente.

E dovrebbe funzionare sia sugli import non usati, che sulle variabili.

Mattepuffo's logo
Autoplay on scroll in Javascript

Autoplay on scroll in Javascript

Quello che vogliamo ottenere è che il video si avvii quando scrolliamo o facciamo il resizing di una pagina web.

In base ovviamente a determinate misure/posizione.

Ci basterà un pò di Javascript.

Mattepuffo's logo
Caching in Go con 2q

Caching in Go con 2q

2q è una piccola libreria trhead-safe per il caching in Go.

E' abbastanza semplice da usare, e non ha funzioni avanzate.

Ma può essere utile nel caso di piccoli progetti.

Mattepuffo's logo
Creare un custom interceptor in Dio

Creare un custom interceptor in Dio

Dio è la libreria più usata per effettuar richieste HTTP in Dart e Flutter.

In questo articolo vediamo come creare un custom interceptor.

Può essere molto utile se ad esempio dobbiamo inviare un token ad ogni richiesta, o se abbiamo bisogno di avere info su ogni risposta.

Mattepuffo's logo
Bloccare la UI in Flutter con block_ui

Bloccare la UI in Flutter con block_ui

block_ui è una libreria per Flutter che ci consente di bloccare la UI fino ad operazione compiuta.

Può essere molto comodo in tutti quei casi in cui dobbiamo svolgere delle operazioni durante le quali vogliamo bloccare l'interazione con l'utente.

Mattepuffo's logo
Caching in Kotlin con Caffeine

Caching in Kotlin con Caffeine

Caffeine è una delle librerie in Java per il caching.

E' molto usata, anche in ambito web tipo con Spring Boot.

In questo articolo vediamo come usarla in Kotlin.

Mattepuffo's logo
Usare Leaflet in Wordpress senza plugin

Usare Leaflet in Wordpress senza plugin

Per usare Leaflet in Wordpress abbiamo un plugin apposito, con il quale però non sono riuscito a fare determinate cose.

Come ad esempio usare una mappa satellitare; può essere che sia io che non ci sia riuscito e si possa fare, fatto sta che ho preferito il metodo senza plugin.

In questo articolo vediamo come fare.

Mattepuffo's logo
Creare custom hook in React

Creare custom hook in React

In React gli hook sono fondamentali, e ce ne sono svariati già inclusi.

Nessuno vieta di crearne di nostri custom.

Supponiamo di dover richiamare dei dati in diverse pagine; volendo possiamo creare un hook che accetta in input l'url e ci restituisce i dati.

Mattepuffo's logo
Cercare parole in testi in Laravel

Cercare parole in testi in Laravel

Laravel ha diverse funzioni di utilità per le stringhe.

Sia per vedere se un testo contiente una o più parole, sia per il contrario.

Queste sono le funzioni che vediamo in questo articolo:

  • Str::contains
  • Str::doesntContain --> introdotto nelle ultime versioni

Mattepuffo's logo
Creare tabelle in Kotlin con Google Guava

Creare tabelle in Kotlin con Google Guava

Google Guava ci mette a disposizione l'interfaccia Table per creare strutture/collezioni tabellari.

Ha diverse implementazioni:

  • HashBasedTable che internamente usa LinkedHashMap

  • TreeBasedTable che usa TreeMap e che è consigliato quando volete la collezione ordinata

  • ImmutableTable per tabelle immutabili

  • ArrayTable quando già le chiavi riga/colonna

  • altre eventuali che non conosco

Mattepuffo's logo
JavaScript Currying

JavaScript Currying

Per Currying si intende un approccio alla programmazione funzionale in cui una funzione usa ogni parametro uno alla volta invece che tutti insieme.

Quindi la funzione crea una nuova funzione interna per ogni parametro.

Detta così può essere complicato da capire, quindi vediamo un esempio, in Javascript.

Mattepuffo's logo
Generare UUID in Laravel

Generare UUID in Laravel

Mi è capitato di dover generare degli UUID da inserire nel database in un'applicazione Laravel.

Volendo possiamo ottenerli in (almeno) due modi senza utilizzare librerie esterne.

Mattepuffo's logo
Utilizzare DoCheck in Angular

Utilizzare DoCheck in Angular

DoCheck, o ngDoCheck, è un hook presente in Angular che intercetta e "risponde" a dei cambiamenti sulle proprietà di input o su qualsiasi cambiamento che modifica lo stato del componente.

Viene chiamato ogni volta che viene intercettato un cambiamento.

Mattepuffo's logo
Creare un network scanner in VB.NET

Creare un network scanner in VB.NET

In sostanza quello che vogliamo fare è scandagliare tutta la rete locale ed identificare quali IP sono attivi.

Per farlo dobbiamo fare un PING su tutti gli indirizzi.

In VB.NET abbiamo la possibilità di usare la classe Ping.

Mattepuffo's logo
Autenticazione locale in Flutter con local_auth

Autenticazione locale in Flutter con local_auth

local_auth è una libreria per Flutter che ci consente di eseguire un'autenticazione locale nelle nostre app usando la biometria.

La libreria è compatibile anche con gli OS desktop, ma ovviamente dobbiamo avere anche l'hardware sulla macchina.

Io ho testato il codice qui sotto, ripreso dalla documentazione, sia su Android che su Windows.

Nel secondo caso non posso fare nulla, in quanto non ho sistemi biometrici installati.

Mattepuffo's logo
Introduzione a Iced per Rust

Introduzione a Iced per Rust

Iced è una libreria cross-platform per Rust per la costruzione di GUI.

Non ho approfondito molto perchè non mi è piaciuta molto la scarsa documentazione su argomento del genere.

Comunque è da tenere in considerazione.

Mattepuffo's logo
Leggere tag MP3 in Go con tag

Leggere tag MP3 in Go con tag

tag è una libreria per Go che ci permette di leggere i tag MP3.

Da quello che ho capito, però, non permette la modifica diretta.

In sostanza possiamo leggere; ma è lo scopo dell'articolo e quello che in effetti mi serviva.

Mattepuffo's logo
Creare un network scanner in C#

Creare un network scanner in C#

In sostanza quello che vogliamo fare è scandagliare tutta la rete locale ed identificare quali IP sono attivi.

Per farlo dobbiamo fare un PING su tutti gli indirizzi.

In C# abbiamo la possibilità di usare la classe Ping.

Mattepuffo's logo
Web scraping in Rust con scraper

Web scraping in Rust con scraper

scraper è una libreria per Rust che ci consente di eseguire il web scraping di HTML.

Non effettua una richiesta HTTP però, quindi abbiamo bisogno di una libreria apposita.

In questo articolo usiamo reqwest.

Mattepuffo's logo
Introduzione ai signals in Angular

Introduzione ai signals in Angular

Angular 17, tra le varie cose, ha introdotto i signals.

Con i signals adesso Angular è in grado di capire quale parte della pagina aggiornare, in quanto è in grado di ricevere la notifica nel caso del cambiamento del valore.

Nell'articolo introduttivo che vediamo oggi, in verità, possiamo ottenere la stessa cosa anche senza.

Mattepuffo's logo
Visualizzare i servizi in Windows con VB.NET

Visualizzare i servizi in Windows con VB.NET

System.ServiceProcess.ServiceController ci permette di visualizzare tutti i servizi attivi in Windows e verificarne lo status.

Io ho dovuto installare il pacchetto tramite NuGET, ma in verità non ho capito se mi manca qualche pacchetto in Visual Studio o è proprio così.

Mattepuffo's logo
Aggiungere minuti a sql Timestamp in Kotlin

Aggiungere minuti a sql Timestamp in Kotlin

Ho specificato sql Timestamp perchè in pratica corrisponde ad un campo del db. e perchè Kotlin ha sempre differenti package per le date.

Sostanzialmente data una data con orario iniziale, devo calcolare la data finale aggiungendo dei minuti.

Poi questa data finale verrà salvata nel db.

Mattepuffo's logo
Visualizzare i servizi in Windows con C#

Visualizzare i servizi in Windows con C#

System.ServiceProcess.ServiceController ci permette di visualizzare tutti i servizi attivi in Windows e verificarne lo status.

Io ho dovuto installare il pacchetto tramite NuGET, ma in verità non ho capito se mi manca qualche pacchetto in Visual Studio o è proprio così.

Mattepuffo's logo
Confrontare testo in Python con difflib

Confrontare testo in Python con difflib

difflib è una funzione built-in di Python che ci consente di confrontare dei testi/sequenze di caratteri.

Non c'è da installare nulla, e contiene diverse funzioni interessanti.

In questo articolo vediamo qualche esempio.

Mattepuffo's logo
Creare tabelle in Java con Google Guava

Creare tabelle in Java con Google Guava

Google Guava ci mette a disposizione l'interfaccia Table per creare strutture/collezioni tabellari.

Ha diverse implementazioni:

  • HashBasedTable che internamente usa LinkedHashMap

  • TreeBasedTable che usa TreeMap e che è consigliato quando volete la collezione ordinata

  • ImmutableTable per tabelle immutabili

  • ArrayTable quando già le chiavi riga/colonna

  • altre eventuali che non conosco

Mattepuffo's logo
Manipolare immagini in Node.js con sharp

Manipolare immagini in Node.js con sharp

sharp è una libreria per Node.js che ci consente di manipolare le immagini.

In pratica possiamo fare le classiche operazioni di conversione, ridimensionamento, cropping, ecc.

L'ho trovata molto facile da usare, anche se l'ho testata solo in locale.

Sul sito ci sono diverse istruzioni per diverse piattaforme.

Mattepuffo's logo
Connessione a MySQL e MariaDB in Rust con sqlx

Connessione a MySQL e MariaDB in Rust con sqlx

sqlx è una libreria per Rust che ci consente di connetterci a svariati database.

Non è un ORM, ma un wrapper per diversi db, il che è comodo quando dobbiamo passare da un db ad un altro.

In questo articolo vediamo come usarlo per connetterci a MySQL o MariaDB.

Mattepuffo's logo
Inviare email in Spring Boot e Java

Inviare email in Spring Boot e Java

Spring Boot ha una sua libreria per l'invio delle email.

In questo articolo vediamo come usarla per inviarle tramite SMTP in formato HTML.

Per prima cosa accertatevi di avere la libreria.

Mattepuffo's logo
Ritornare più valori in una funzione in Python

Ritornare più valori in una funzione in Python

Nella programmazione in generale, una funzione ritorna o void (quindi non ritorna nulla) o un valore.

E se invece avessimo bisogno di ritornare più valori?

In questo articolo vediamo un esempio usando Python; ma in verità possiamo riportare questi esempi anche in altri linguaggi.

Mattepuffo's logo
Aggiungere minuti a sql Timestamp in Java

Aggiungere minuti a sql Timestamp in Java

Ho specificato sql Timestamp perchè in pratica corrisponde ad un campo del db. e perchè Java ha sempre differenti package per le date.

Sostanzialmente data una data con orario iniziale, devo calcolare la data finale aggiungendo dei minuti.

Poi questa data finale verrà salvata nel db.

Mattepuffo's logo
Upload file in Gin Gonic

Upload file in Gin Gonic

Di Gin Gonic abbiamo già parlato, è uno dei web framework più usati in Go.

In questo articolo vediamo due esempi di upload di files.

Un primo esempio "accetta" uno solo file, mentre il secondo prevedere la possibilità di un caricamento massivo.

Mattepuffo's logo
Eseguire richieste HTTP ad intervalli in Angular

Eseguire richieste HTTP ad intervalli in Angular

La necessità è questa:

  • clicco su un bottone
  • eseguo una richiesta HTTP che mi restituisce solo un numero
  • quando il numero è uguale 1 esco dalla funzione

Per eseguire richieste a determinati intervalli in Angular possiamo usare interval di rxjs.

Mattepuffo's logo
Eliminare i files temporanei in Windows tramite BAT

Eliminare i files temporanei in Windows tramite BAT

In questo articolo vediamo un piccolo snippet di codice da mettere in un BAT per pulire i files temporanei in Windows.

Diciamo che non c'è proprio bisogno di usare un BAT per eseguire questa operazione, ma potrebbe essere utile da inserire all'interno di uno script più grande.

Mattepuffo's logo
Svuotare il cestino in Windows tramite BAT

Svuotare il cestino in Windows tramite BAT

In Windows non sono solito usare la powershell ed i file BAT per fare operazioni comuni come svuotare il cestino.

Ma potrebbe essere utile nel caso eseguiamo diverse operazioni di manutenzione.

In questo articolo vediamo come creare un file BAT per svuotare il cestino.

Mattepuffo's logo
Eseguire un file lock in VB.NET

Eseguire un file lock in VB.NET

VB.NET ha una modalità molto semplice per bloccare i file, basta usare la classe FileStream.

Qui possiamo trovare i metodi Lock Unlock, che ci consentono di bloccare / sbloccare anche solo porzioni di un file.

Mattepuffo's logo
Creare una TUI in Rust con Ratatui

Creare una TUI in Rust con Ratatui

Ratatui è una libreria per Rust per creare una interfaccia semi grafica per il terminale.

Da quello che ho capito è una delle più usate per via dei numerosi widget.

Purtroppo non ho avuto modo di fare grossi test, ma possiamo cominciare da un esempio basico.

Mattepuffo's logo
Debug in PHP con Kint

Debug in PHP con Kint

Kint è una libreria per PHP che ci permette un debug più avanzato rispetto al classico var_dump.

Oggi ho fatto qualche test, e devo dire che è da provare.

Mattepuffo's logo
Creare uno scheduler in Dart e Flutter con cron

Creare uno scheduler in Dart e Flutter con cron

cron è un libreria per Dart e Flutter per schedulare attività usando la sintassi di cron.

In questo articolo vediamo come usarla.

L'ho testa solo dentro ad un programma da CLI, ma usarla dentro ad una appa di Flutter non dovrebbe essere molto diverso.

Mattepuffo's logo
Validazione dati in Python con Pydantic

Validazione dati in Python con Pydantic

Pydantic è una libreria per Python che ci aiuta nella validazione dei dati.

Ad esempio, vi arriva un JSON e volete validare i dati e lo schema rispetto ad un oggetto.

Quindi può essere utile in molti casi, anche integrandola con web framework che gestiscono dati in formato JSON.

Mattepuffo's logo
Creare QR Code in Linux con zint

Creare QR Code in Linux con zint

zint è un programma disponibile per Linux sia da usare nel terminale che con una gui Qt.

Non l'ho trovato intuitivo da usare come altri programmi, in quanto in realtà nasce per generare barcode.

Ed ha il supporto per i QR Code.

Mattepuffo's logo
Leggere file YAML in Swift con YamlSwift

Leggere file YAML in Swift con YamlSwift

YamlSwift è una libreria per Swift per leggere file YAML.

Io l'ho testata giusto su un programmino per CLI, ma il suo utilizzo dovrebbe essere abbastanza uguale anche in altri ambiti.

Per l'installazione io ho usato direttamente Xcode: File -> Add Package Dependencies e mettete l'url di GitHub.

Mattepuffo's logo
Embed di files in Go

Embed di files in Go

go:embed è una direttiva introdotta in una delle ultime versioni di Go.

E' molto utile per fare l'embed di files e directories.

In questo articolo vediamo un paio di esempi introduttivi.

Mattepuffo's logo
Estrarre testo da immagini con Python e PyOCR

Estrarre testo da immagini con Python e PyOCR

PyOCR è un wrapper OCR per Python.

Il che vuol dire che nel sistema è necessario avere un OCR installato.

Quelli compatibili sono (da documentazione):

  • Libtesseract (Python bindings for the C API)
  • Tesseract (wrapper: fork + exec)
  • Cuneiform (wrapper: fork + exec)

Mattepuffo's logo
Convertire il timestamp in stringa in Linux

Convertire il timestamp in stringa in Linux

Molti software usano le date in formato timestamp, che in sostanza è un numero che rappresente "adesso".

Per avere il timestamp in Linux e affini (macOS compreso):

$ date +%s
1732779869

Se volessimo trasformare quel numero in stringa per renderlo leggibile e sfruttarlo nei nostri script?

Mattepuffo's logo
Usare HTTPS in Spring Boot con SelfSignedCertificate

Usare HTTPS in Spring Boot con SelfSignedCertificate

L'API che sto sviluppando in Java con Spring Boot girerà in modalità standalone, e sarà contattabile direttamente tramite indirizzo ip.

Ovviamente, il client che gira su HTTPS blocca la chiamata al server, in quanto di default gira su HTTP.

In questo articolo vediamo come configurare Spring Boot per HTTPS con SelfSignedCertificate.

Mattepuffo's logo
Hash delle password in Bun

Hash delle password in Bun

Bun ha già integrate tutte le funzioni che ci occorrono per l'hash delle password.

In questo articolo vediamo un paio di esempi, sia di hashing che di verifica.

Mattepuffo's logo
Escludere endpoints dai filter in Spring Boot

Escludere endpoints dai filter in Spring Boot

I Filter in Spring Boot sono quelli chiamati middlewares in molti altri framework.

In pratica attraverso i Filter possiamo eseguire delle azioni ad ogni richiesta.

Solo che può accadere che vogliamo escludere alcuni endpoints.

Mattepuffo's logo
Usare database multipli in Spring Boot

Usare database multipli in Spring Boot

E' possibile che si debba eseguire connessioni a più db nel nostro progetto Spring Boot.

Ovviamente è possibile con un minimo di configurazione.

Premetto che io non uso JPA, ma direttamene JDBC.

Prima installate i driver appositi relativi al db su cui vi dovete connettere.

Mattepuffo's logo
Creare QR Code in Linux con qrencode

Creare QR Code in Linux con qrencode

qrencode, o libqrencode, è un piccolo programma da terminale che ci consente di creare QR Code su Linux.

Molto facile da usare, è anche possibile usarlo dei nostri programmi scritti in C++ come libreria.

Cosa che noi non vedremo.....

Mattepuffo's logo
Connessione a SQL Server in Spring Boot con JPA

Connessione a SQL Server in Spring Boot con JPA

Partiamo dal presupposto che è stato un bagno di sangue, in quanto la versione SQL Server è parecchio vecchia, e Microsoft non ti facilita mai la vita....

Detto ciò, In questo articolo vediamo come connetterci a SQL Server in Spring Boot usando JPA.

Mattepuffo's logo
Creare file con Bun

Creare file con Bun

Era da un pò che volevo inizare a provare Bun, ed oggi sono finalmente riuscito a fare qualche test.

L'installazione è andata abbastanza liscia, ed anche il suo utilizzo.

In questo articolo vediamo diversi modi di creare un file ed aggiungere contenuto.