Ultimi 100 articoli

Mattepuffo's logo
Usare gli eventi in C#

Usare gli eventi in C#

In C# attraverso gli eventi possiamo notificare gli utenti all'esecuzione di determinate operazioni.

In questo articolo vediamo un esempio in cui simuliamo la creazione di un ordine e scateniamo due eventi che abbiamo precedentemente sottoscritto.

Non ci servono librerie esterne.

Mattepuffo's logo
Inviare dati a Elasticsearch con Java da MariaDB

Inviare dati a Elasticsearch con Java da MariaDB

Avevo installato tutto lo stack ELK, ma non è affatto facile da configurare.

Inoltre così non si capisce bene il funzionamento di Elasticsearch, quindi ho deciso di usarlo in maniera indipendente.

In questo articolo vediamo come usare Java per inviargli dati da un db MariaDB; abbiamo anche una funzione per la ricerca.

Do per scontato che abbiate Elasticsearch installato; io ho usato Docker.

Mattepuffo's logo
Disinstallare più programmi con Winget

Disinstallare più programmi con Winget

Ad essere onesti Windows negli anni ha fatto un pò di cose buone.

Tra le quali c'è sicuramente Winget.

Anche se, sempre ad essere onesti, Winget è dietro millenni luce rispetto a qualsiasi package manager che troviamo su Linux o altri OS.

Mattepuffo's logo
Importare file Parquet in Apache Spark con Python

Importare file Parquet in Apache Spark con Python

Abbiamo cretato il nostro bel file Parquet, e lo vogliamo dare in pasto ad Apache Spark usando Python.

In questo articolo vediamo come fare.

La premessa è che dovreste avere una versione di Java un pò più vecchia, tipo la 17.

Poi io ho settato la versione direttamente nello script e non a livello di sistema.

Voi ovviamente fare come preferite.

Mattepuffo's logo
Da MariaDB a Parquet con Java

Da MariaDB a Parquet con Java

In questo articolo vediamo come creare un file Parquet con Java e Apache Arrow.

I dati li prenderemo da un database MariaDB.

Devo dire che rispetto a Python in Java è stato decisamente più complicato.

Mattepuffo's logo
Connessione ad Apache Kafka in Python

Connessione ad Apache Kafka in Python

In questo articolo vediamo come connetterci, inviare e ricevere dati da Apache Kafka In Python.

Do per scontate che lo abbiate già installato e configurato.

Volendo potete usare anche docker (come in effetti ho fatto io).

Mattepuffo's logo
Utilizzare RocksDB in Node.js

Utilizzare RocksDB in Node.js

RocksDB è un database embedded key-value ad alte prestazioni sviluppato da Meta (Facebook).

È basato su LevelDB di Google, ma con numerose ottimizzazioni e funzionalità aggiuntive.

RocksDB è progettato per applicazioni che richiedono accesso rapido ai dati su storage locale (SSD o dischi fissi) con grandi volumi di scritture e letture.

Viene usato principalmente come motore di storage sottostante per sistemi più complessi, piuttosto che come database standalone.

In questo articolo vediamo come usarlo in Node.js usando una libreria apposita: rocksdb!

Mattepuffo's logo
Utilizzare RocksDB in Go

Utilizzare RocksDB in Go

RocksDB è un database embedded key-value ad alte prestazioni sviluppato da Meta (Facebook).

È basato su LevelDB di Google, ma con numerose ottimizzazioni e funzionalità aggiuntive.

RocksDB è progettato per applicazioni che richiedono accesso rapido ai dati su storage locale (SSD o dischi fissi) con grandi volumi di scritture e letture.

Viene usato principalmente come motore di storage sottostante per sistemi più complessi, piuttosto che come database standalone.

In questo articolo vediamo come usarlo in Go usando una libreria apposita: grocksdb!

Mattepuffo's logo
Installare ELK in Docker

Installare ELK in Docker

Prima di tutto specifichiamo bene cosa si intende per ELK: è uno stack composto da Elastisearch, Logstash e Kibana:

  • Elasticsearch archivia tutti i dati che arrivano da Logstash; non è un database relazionale classico (come MySQL), ma un database documentale (JSON) ottimizzato per la ricerca testuale ultra-rapida
  • Logstash riceve i dati grezzi da varie sorgenti, li "pulisce" e li invia a Elasticsearch; funziona come una pipeline con tre stadi:
    • Input (prende i dati)
    • Filter (li modifica/arricchisce)
    • Output (li spedisce)
  • Kibana si collega a Elasticsearch per permetterti di esplorare i dati visivamente; senza Kibana, dovresti interrogare Elasticsearch tramite linee di comando complicate

Mattepuffo's logo
Creare log in stile Apache in Axum

Creare log in stile Apache in Axum

Vi condivido una piccola funzione che uso per creare un log in stile Apache in Axum.

In pratica ad ogni richiesta viene creata una riga.

Ogni giorno viene creato un file apposito.

Mattepuffo's logo
Connessione ad Apache Kafka in Go

Connessione ad Apache Kafka in Go

In questo articolo vediamo come connetterci, inviare e ricevere dati da Apache Kafka In Go.

Do per scontate che lo abbiate già installato e configurato.

Volendo potete usare anche docker (come in effetti ho fatto io).

Mattepuffo's logo
Leggere file in Zig

Leggere file in Zig

Continuando lo studio di Zig, in questo articolo vi propongo come leggere un file di testo, e stampare riga per riga il contenuto.

Considerate che sto usando la versione 0.15.2.

Mattepuffo's logo
Installare Apache Airflow in Docker

Installare Apache Airflow in Docker

Ero curioso di provare Apache Airflow, ma senza installare tutto sul pc.

Quindi l'ho installato in Docker.

Non è stato difficile, ma bisogna comunque seguire alcuni passi.

Vi indico quelli che ho eseguito io.

Mattepuffo's logo
Utilizzare RocksDB in Rust

Utilizzare RocksDB in Rust

RocksDB è un database embedded key-value ad alte prestazioni sviluppato da Meta (Facebook).

È basato su LevelDB di Google, ma con numerose ottimizzazioni e funzionalità aggiuntive.

RocksDB è progettato per applicazioni che richiedono accesso rapido ai dati su storage locale (SSD o dischi fissi) con grandi volumi di scritture e letture.

Viene usato principalmente come motore di storage sottostante per sistemi più complessi, piuttosto che come database standalone.

In questo articolo vediamo come usarlo in Rust usando un wrapper apposito.

Mattepuffo's logo
Connessione a Cassandra in Rust

Connessione a Cassandra in Rust

In questo articolo vediamo come connetterci ad un db Cassandra in Rust.

Abbiamo due tabelle identiche:

  • in una salviamo tutti gli utenti (utenti_tutti)
  • nell'altra solo i maggiorenni (utenti_maggiorenni)

Mattepuffo's logo
Gestire database in PHP con Doctrine

Gestire database in PHP con Doctrine

Doctrine è l'ORM ppiù utilizzato in ambito PHP.

E' possibile anche usarlo al di fuori di un framework, cosa che faremo noi.

Se devo essere sincere non è proprio di facile utilizzo, quindi cerco di spiegarvi al meglio tutti i sperando che vi possano essere di aiuto.

Mattepuffo's logo
Visualizzare le transazioni di Stripe in Python

Visualizzare le transazioni di Stripe in Python

Quello che vogliamo fare è visualizzare le transazioni che abbiamo in Stripe dentro un'applicazione Django.

In generale il codice è usabile in tutte le applicazioni Python; nel caso specifico useremo un Command di Django.

Per prima cosa dovete creare la secret key in Stripe; poi io l'ho messa in un file .env.

Mattepuffo's logo
Connessione ad Apache Kafka in Dart

Connessione ad Apache Kafka in Dart

In questo articolo vediamo come connetterci, inviare e ricevere dati da Apache Kafka In C#.

Do per scontate che lo abbiate già installato e configurato.

Volendo potete usare anche docker (come in effetti ho fatto io).

Mattepuffo's logo
Live reloading in Go con Vai

Live reloading in Go con Vai

Vai è un programma per Go che ci permette di fare il cosi detto live/hot reloading della nostra applicazione.

E' veramente facile da usare, e non richiede configurazioni.

Mattepuffo's logo
Connessione a Cassandra in Ruby

Connessione a Cassandra in Ruby

In questo articolo vediamo come connetterci ad un db Cassandra in Ruby.

Abbiamo due tabelle identiche:

  • in una salviamo tutti gli utenti (utenti_tutti)
  • nell'altra solo i maggiorenni (utenti_maggiorenni)

Mattepuffo's logo
Utilizzare RocksDB in Java

Utilizzare RocksDB in Java

RocksDB è un database embedded key-value ad alte prestazioni sviluppato da Meta (Facebook).

È basato su LevelDB di Google, ma con numerose ottimizzazioni e funzionalità aggiuntive.

RocksDB è progettato per applicazioni che richiedono accesso rapido ai dati su storage locale (SSD o dischi fissi) con grandi volumi di scritture e letture.

Viene usato principalmente come motore di storage sottostante per sistemi più complessi, piuttosto che come database standalone.

In questo articolo vediamo come usarlo in Java usando un wrappre apposito.

Mattepuffo's logo
Connessione ad Apache Kafka in C#

Connessione ad Apache Kafka in C#

In questo articolo vediamo come connetterci, inviare e ricevere dati da Apache Kafka In C#.

Do per scontate che lo abbiate già installato e configurato.

Volendo potete usare anche docker (come in effetti ho fatto io).

Mattepuffo's logo
Concatenare le stringhe in Zig

Concatenare le stringhe in Zig

In Zig non esiste un tipo string speciale come in altri linguaggi.

In pratica una stringa è uno slice di bytes:

  • const[] u8 -> stringa immutabile
  • [] u8 -> stringa mutabile

Ecco perchè alcune delle operazioni più facili, tipo la concatenazione, richiede un minimo di operazioni in più.

Mattepuffo's logo
Connessione a Cassandra in PHP

Connessione a Cassandra in PHP

In questo articolo vediamo come connetterci ad un db Cassandra in PHP.

Abbiamo due tabelle identiche:

  • in una salviamo tutti gli utenti (utenti_tutti)
  • nell'altra solo i maggiorenni (utenti_maggiorenni)

Mattepuffo's logo
Utilizzare RocksDB in C++

Utilizzare RocksDB in C++

RocksDB è un database embedded key-value ad alte prestazioni sviluppato da Meta (Facebook).

È basato su LevelDB di Google, ma con numerose ottimizzazioni e funzionalità aggiuntive.

RocksDB è progettato per applicazioni che richiedono accesso rapido ai dati su storage locale (SSD o dischi fissi) con grandi volumi di scritture e letture.

Viene usato principalmente come motore di storage sottostante per sistemi più complessi, piuttosto che come database standalone.

In questo articolo vediamo come usarlo in C++.

Mattepuffo's logo
React 19 e l'hook use

React 19 e l'hook use

In React 19 è stato introdotto un hoo nuovo: use()!

Leggendo in giro ho visto che ne viene incoraggiato l'uso sia per il data fetching che per il context.

Nello specifico per quanto riguarda il data fetching, vi indico un pò di differenze che ho raccolto in giro.

Mattepuffo's logo
Visualizzare gli utenti loggati in Linux con Pinky

Visualizzare gli utenti loggati in Linux con Pinky

Pinky è una utility da riga di comando che praticamente sostituisce il più famoso comando finger.

Dovrebbe essere già preinstallata; ma comunque è sicuramente nei vostri repo, quindi potete installarla facilmente.

In pratica con Pinky vediamo info sugli utenti loggati al sistema.

Mattepuffo's logo
Aggiornare Portainer

Aggiornare Portainer

Portainer è un programma che ci consente di gestire i container Docker (e fare anche altro in verità).

E' possibile installarlo in diverse maniere; io l'ho installato come container.

Qui sotto vi indico la procedura per aggiornarlo.

L'ho effettuata senza problemi su due installazioni differenti.

Mattepuffo's logo
Connessione a Cassandra in Python

Connessione a Cassandra in Python

In questo articolo vediamo come connetterci ad un db Cassandra in Python.

Abbiamo due tabelle identiche:

  • in una salviamo tutti gli utenti (utenti_tutti)
  • nell'altra solo i maggiorenni (utenti_maggiorenni)

Mattepuffo's logo
Escape HTML nelle input in Smarty

Escape HTML nelle input in Smarty

In un template Smarty ho un campo hidden che mi identifica il valore attuale che nel db.

Il problema è che in quel campo viene salvato anche dell'HTML, in quanto è una textare con un editor.

Però mi succede che il layout della pagina mi salta.

Mattepuffo's logo
Usare journalctl in Rust

Usare journalctl in Rust

Ho visto che per Rust ci sono parecchie librerie per interagire con systemd e derivati come journactl.

Però non sono riuscito a farne funzionare neanche una.

Quindi alla fine ho deciso di usare Command.

Mattepuffo's logo
Integrare Fatture in Cloud in Go

Integrare Fatture in Cloud in Go

In questo articolo vediamo come integrare Fatture in Cloud in un progetto Go.

Ci limiteremo a visualizzare la lista dei clienti, giusto per cominciare.

La prima cosa da fare è creare una app sul sito, e poi un token.

Mattepuffo's logo
Connessione a Cassandra in Node.js

Connessione a Cassandra in Node.js

In questo articolo vediamo come connetterci ad un db Cassandra in Node.js.

Abbiamo due tabelle identiche:

  • in una salviamo tutti gli utenti (utenti_tutti)
  • nell'altra solo i maggiorenni (utenti_maggiorenni)

Mattepuffo's logo
Usare str_contains in Smarty

Usare str_contains in Smarty

str_contains è stata, a mio avviso, una delle più grandi funzioni introdotte in PHP 8.

Solo che Smarty di default non è in grado di usarla; o almeno nella mia versione/configurazione.

Mattepuffo's logo
Centrare componenti con i CSS

Centrare componenti con i CSS

Ne abbiamo parlato in generale in altri articoli.

E in giro si trovano altri Nmila articoli uguali.

Però io mi scordo sempre, quindi ho deciso di scrivere un articolo!

Al momento, perchè magari in futuro usciranno altre tecniche, per centrare componenti con i CSS abbiamo tre metodi.

Mattepuffo's logo
Connessione a Cassandra in C#

Connessione a Cassandra in C#

In questo articolo vediamo come connetterci ad un db Cassandra in C#.

Abbiamo due tabelle identiche:

  • in una salviamo tutti gli utenti (utenti_tutti)
  • nell'altra solo i maggiorenni (utenti_maggiorenni)

Mattepuffo's logo
Connessione a SQL Server in Scala

Connessione a SQL Server in Scala

Nello specifico parliamo di Scala 3, ma probabilmente non ci sono differenze in questo caso.

Per la connessione a SQL Server abbiamo il driver specifico per Java che possiamo usare.

Mattepuffo's logo
Visualizzare le password delle reti WiFi salvate in Windows

Visualizzare le password delle reti WiFi salvate in Windows

In Windows 11, e forse anche nelle versioni precedenti, abbiamo il comando netsh che ci aiuta in diverse operazioni.

Oggi vediamo come usarlo per visualizzare le password delle reti WiFi che sono salvate.

Quindi non stiamo hackerando nulla, e ci siamo già dovuti connettere alla rete.

Mattepuffo's logo
Comprimere cartelle in Electron con archiver

Comprimere cartelle in Electron con archiver

In un programmino Electron devo comprimere directory che possono avere anche parecchi files.

Visto che Electron ha Node.js alle spalle, possiamo usare delle sue librerie.

Nello specifico ho scelto archiver, che usa lo streaming per la compressione ed è quindi molto efficiente.

Mattepuffo's logo
Caching in Python con DiskCache

Caching in Python con DiskCache

DiskCache è un'ottima libreria per Python per il caching di dati.

Molto usata anche Django, si crea un suo db su filesystem che si può condividere anche tra diverse applicazioni.

In questo articolo vediamo un paio di esempi.

Mattepuffo's logo
Usare Docker senza sudo in Linux

Usare Docker senza sudo in Linux

In Linux di default dobbiamo eseguire i comandi Docker con privilegi elevati.

Quindi o da root o con sudo.

Sicuramente utile in produzione, non lo è sul proprio pc di sviluppo.

Mattepuffo's logo
Creare una web api in Go senza framework

Creare una web api in Go senza framework

Per Go esistono parecchi web framework molto validi, e ne abbiamo anche parlato in diverse occasioni.

Solo che Go nasce già con tutto il necessario per creare web api/REST service senza usare altri framework.

Ovviamente usare o no frameworl ha i suoi vantaggi a svantaggi.

Mattepuffo's logo
PHP empty

PHP empty

Dopo anni ancora ci casco e mi dimentico di preciso cosa controlla la funzione empty() di PHP.

Questo perchè per dovrebbe controllare se una variabile è vuota.

Ma per PHP, vuoto vuole dire diverse cose.

Quindi ho deciso di scrivere due righe per memorizzare un pò di aspetti.

Mattepuffo's logo
Monitorare uptime di siti web con Updo

Monitorare uptime di siti web con Updo

Updo è una piccola utility da riga di comando che ci consente di monitorare, in tempo reale, l'uptime di siti web.

Anche se in realtà possiamo monitorare qualsiasi cosa raggiungibile via HTTP, comprese web api.

E' scritta in Go, ed utilizzabile diversi OS.

Mattepuffo's logo
Installare Oracle in Docker

Installare Oracle in Docker

Oracle ci mette a disposizione due "versioni" del database a seconda della licenza:

  • Oracle XE (Express Edition) che è gratuita è può essere utile per sviluppo, test o piccole applicazioni
  • Oracle Database Enterprise/Standard Edition

Oracle fornisce anche immagini per le versioni complete (Enterprise e Standard Edition) attraverso il Oracle Container Registry.

Mattepuffo's logo
Connessione a KeyDB in Swift

Connessione a KeyDB in Swift

KeyDB è un fork diretto di Redis, ed è compatibile al 100%.

Inoltre, dicono, sia anche più performante.

Comunque ho deciso di testarlo, e me lo sono installato con Docker.

In questo articolo vediamo come connetterci in Swift usando RediStack.

Mattepuffo's logo
Convertire campo INTEGER in JSON in PostgreSQL

Convertire campo INTEGER in JSON in PostgreSQL

In un db PostgreSQL devo convertire un campo INTEGER in JSON.

Per fare questa conversione abbiamo diversi modi.

Io ho usato questi due con due casi diversi.

Ovviamente fate le prove su db di test o su una copia della tabella prima!

Mattepuffo's logo
Leggere file TOML in Rust

Leggere file TOML in Rust

In ambito Rust i file TOML vengono molto usati.

In questo articolo vediamo come fare.

Erroneamente pensavo non ci neanche librerie esterne, ma non è così.

Mattepuffo's logo
Leggere file TOML in Scala con toml4j

Leggere file TOML in Scala con toml4j

In questo articolo vediamo come leggere un file TOML in Scala usando toml4j.

E' possibile anche usare un mapper con classi apposite, ma noi faremo un esempio basico più semplice.

Inoltre, come al solito, specifico che si tratta di Scala 3.

Mattepuffo's logo
Creare log in C++

Creare log in C++

In questo articolo vi propongo una piccola classe per creare log nelle nostre applicazioni C++.

Ovviamente è una cosa basica, e non copre tutte le esigenze di un'applicazione complessa.

Ma potrebbe essere utile per cose piccole e come punto di partenza.

Mattepuffo's logo
Connessione a KeyDB in Scala con Jedis

Connessione a KeyDB in Scala con Jedis

KeyDB è un fork diretto di Redis, ed è compatibile al 100%.

Inoltre, dicono, sia anche più performante.

Comunque ho deciso di testarlo, e me lo sono installato con Docker.

In questo articolo vediamo come connetterci in Scala usando Jedis, una delle varie librerie per Java/Redis.

Mattepuffo's logo
Connessione a SQLite in Go con modernc.org-sqlite

Connessione a SQLite in Go con modernc.org-sqlite

La libreria modernc.org-sqlite è una implementazione puramente scritta in Go per la connessione a SQLite.

Rispetto a quella più usata, non ha "dipendenze" di altri tipi, e quindi non mi ha creato problemi su Windows.

Potrebbe risultare un pò più pesante, ma se non avete neccesità particolari di performance vi consiglio di provarla.

Mattepuffo's logo
Implementare la concorrenza in PHP con Fiber

Implementare la concorrenza in PHP con Fiber

La classe Fiber di PHP è una funzionalità introdotta in PHP 8.1 che permette di implementare la concorrenza cooperativa (cooperative multitasking) nel linguaggio.

Una Fiber è essenzialmente un blocco di codice che può essere sospeso e ripreso in modo esplicito, permettendo di interrompere l'esecuzione di una funzione, eseguire altro codice, e poi riprendere da dove ci si era fermati.

A differenza delle funzioni normali che devono completarsi prima di restituire il controllo, le Fiber possono "cedere" il controllo volontariamente.

Le Fiber sono particolarmente utili per implementare operazioni asincrone, gestire I/O non bloccante, creare scheduler personalizzati o framework che necessitano di controllo granulare sul flusso di esecuzione.

Mattepuffo's logo
Connessione a KeyDB in Rust

Connessione a KeyDB in Rust

KeyDB è un fork diretto di Redis, ed è compatibile al 100%.

Inoltre, dicono, sia anche più performante.

Comunque ho deciso di testarlo, e me lo sono installato con Docker.

In questo articolo vediamo come connetterci in Rust.

Mattepuffo's logo
Connessione a KeyDB in Python

Connessione a KeyDB in Python

KeyDB è un fork diretto di Redis, ed è compatibile al 100%.

Inoltre, dicono, sia anche più performante.

Comunque ho deciso di testarlo, e me lo sono installato con Docker.

In questo articolo vediamo come connetterci in Python.

Mattepuffo's logo
Connessione a KeyDB in PHP con Predis

Connessione a KeyDB in PHP con Predis

KeyDB è un fork diretto di Redis, ed è compatibile al 100%.

Inoltre, dicono, sia anche più performante.

Comunque ho deciso di testarlo, e me lo sono installato con Docker.

In questo articolo vediamo come connetterci in PHP.