Ciao! Sono Riccardo (aka TheZal) e visto che febbraio è il mese dell’Open Source ho deciso di fare una lista di tool che ho recentemente scoperto e che hanno semplificato la mia vita da sviluppatore, sperando di invogliarvi a provarli e, magari, a contribuire al loro sviluppo. Detto questo, iniziamo!
Ntfy: pub/sub per tutti
Ntfy (che si legge “notify”) è un tool che permette di creare un sistema di pub/sub in pochi minuti. Il suo funzionamento è molto semplice: si invia un messaggio al server ntfy specificando un canale e tutti gli utenti che sono iscritti a quel canale riceveranno il messaggio sotto forma di notifica. La potenza di ntfy consiste nel fatto che è possibile ricevere le notifiche su qualsiasi dispositivo, grazie alle sue app (anch’esse Open Source) per Android e IOS.
Ntfy permette di utilizzare il server ufficiale tramite abbonamento ma è anche possibile creare il proprio server per le notifiche in maniera gratuita in maniera semplicissima visto che è disponibile come immagine Docker.
Per creare il proprio server usando docker basta eseguire il seguente comando:
docker run -p <porta dove si vuole esporre il servizio>:80 -itd binwiederhier/ntfy serve
Code language: HTML, XML (xml)
Una volta eseguito il comando, il server sarà disponibile all’indirizzo http://localhost:<porta>
. Da qua sarà possibile vedere le notifiche dei canali a cui si è iscritti o mandare nuove notifiche.
L’interfaccia (molto semplice e intuitiva) non è però l’unico modo in cui è possibile mandare le notifiche, infatti è possibile farlo in tantissimi modi, tra cui anche da riga di comando utilizzando CURL:
curl -d "Questa è la mia prima notifica utilizzando ntfy" <indirizzo server notify>/<nome canale su cui voglio pubblicare>
Code language: HTML, XML (xml)
Una volta inviato il comando vedremo questa notifica apparire nell’interfaccia del server e, se siamo iscritti al canale, anche sul nostro dispositivo.
Noi utilizziamo questo servizio per avere le notifiche relative alle pipeline e ai jobs di Gitlab e devo dire che è molto comodo, soprattutto perché è possibile ricevere le notifiche anche sul cellulare.
GQL: sql + git
GQL è proprio quello che suggerisce il proprio nome, ovvero: Git Query Language. Grazie a GQL sarà possiible utilizzare la query syntax per trovare tutte le informazioni possibili sulla history di Git del nostro repository, filtrando tramite where o raggruppando per un campo direttamente da linea di comando.
L’installazione di questo tool è semplice e immediata e basta utilizzare un package manager come cargo.io, winget o scoop
#cargo.io
cargo install gitql
#winget
winget install gitql
#scoop
scoop install gitql
Code language: CSS (css)
Una volta installato basterà andare tramite shell in una cartella di un repository, usare la keyword gitql e fare la propria query poichè gql crea un database on the fly basandosi sulla cartella .git
Sarà possibile ad esempio fare una query che ritornerà tutti i risultati relativi ai commit di quel repository tramite la query
select * from commits
Code language: JavaScript (javascript)
Il risultato della query verrà mostrato in formato tabellare rendendo il risultato leggibile direttamente dalla shell da cui è stata eseguita.
# Biome: se rust avesse incontrato prettier
Biome è un toolchain scritto in rust che ha nel proprio arsenale sia un formatter che un linter per Javascript, Typescript, JSX e JSON. Vista la compatibilità di Biome con Prettier (attestata essere al 97%) è possibile utilizzare Biome come sostituto di Prettier, ma con la differenza che Biome è molto più veloce di Prettier.
I benchmark mostrano come Biome arrivi ad essere circa 25 volte più veloce di Prettier per quanto riguarda il formatting di un file Javascript, mentre circa 15 volte più veloce di ESLint per quanto riguarda il linting di un file Javascript.
Queste prestazioni (rese possibili dall’aver adottato Rust come linguaggio di programmazione) rendono Biome un tool molto interessante da provare, soprattutto se si lavora con progetti molto grandi o se lo si vuole inserire all’interno di un workflow CI/CD.
Esistono diversi modi per utilizzare Biome, ma il più semplice è quello di installare l’estensione di Biome per il proprio editor di testo preferito (es. VSCode) e lasciare che sia l’estensione a fare il lavoro sporco.
Tiny RDM: l’interfaccia per redis di cui non sapevi di avere bisogno
Tiny RDM è un moderno e leggero Redis manager disponibile per Mac, Windows e Linux. Estremamente leggero, costruito su Webview2 offre un’interfaccia utente visuale e user-friendly.
Supporta più lingue e offre una gestione avanzata delle connessioni, inclusi SSH Tunnel, SSL, Sentinel Mode e Cluster Mode. Permette la visualizzazione e la gestione delle operazioni chiave-valore, con supporto CRUD per Liste, Hash, Stringhe, Set, Sorted Set e Stream
Supporta vari formati di visualizzazione dati e metodi di decodifica/decompressione e utilizza la scansione segmentata per agevolare l’elenco di milioni di chiavi e tiene traccia delle operazioni con un registro dei comandi.
Fornisce una modalità a riga di comando, integra Monaco Editor e supporta il monitoraggio in tempo reale dei comandi, l’importazione/esportazione dei dati, la pubblicazione/sottoscrizione e il profilo di connessione.
L’utilizzo è semplicissimo: una volta scaricato l’installer direttamente dal loro repository git basterà installarlo e avviarlo. Una volta avviato Tiny RDM sarà possibile creare una nuova connessione a Redis, inserendo l’indirizzo del server, la porta e la password (se necessaria). Una volta fatto questo sarà possibile utilizzare Tiny RDM per gestire il proprio database Redis.
Zed: il miglior editor di cui non avevi mai sentito parlare
Zed è un editor di testo open source e multipiattaforma, nato dai creatori di Atom e Tree-sitter, che ha come obiettivo quello di essere il miglior editor di testo per la programmazione. Zed, essendo scritto in Rust, fa delle sue performance una delle sue caratteristiche principali, risultando il più veloce a confronto con Sublime Text, VSCode e CLion.
Tra le altre caratteristiche Zed nasce per essere AI ready, ovvero per essere pronto ad essere utilizzato con l’intelligenza artificiale, infatti questo editor supporta nativamente GitHub Copilot ed ha la possibilità di utilizzare GPT-4 per generare o refactorare codice utilizzando un prompt scritto in linguaggio naturale.
Zed offre anche la possibilità di collaborare con i membri del proprio team direttamente da dentro l’editor, avendo una funzionalità integrata che permette di avere un codespace condiviso con gli altri sviluppatori. Inoltre è possibile organizzare i codespaces in channels, andando a rispecchiare la logica dei canali di Slack.
Il download è disponibile per Windows, Mac e Linux e basta andare sul sito ufficiale per scaricare l’installer.
Voi quali di questi tool conoscevate? Quali tool open source utilizzate? Fatemelo sapere e al prossimo articolo!