Ultimi 100 articoli

Mattepuffo's logo
Usare i Google Fonts in Flutter

Usare i Google Fonts in Flutter

Attraverso il package google_fonts possiamo usare i Google Fonts nelle nostre Flutter app.

Possiamo sia decidere di fare il fetching dalla rete, che salvare i fonts nella app.

Ovviamente ci sono i soliti pro e contro.

Io non li salverò, ma nella documentazione è spiegato come fare.

Mattepuffo's logo
Convertire un form in JSON con Javascript

Convertire un form in JSON con Javascript

In questo articolo vi propongo due metodi per serializzare un form usando Javascript.

Quello che otterremo sarà un JSON con le chiavi che corrispondono al name del campo, e il value che corrisponde al valore.

Mattepuffo's logo
Ruotare widget in Flutter

Ruotare widget in Flutter

In questo articolo vi presento due modi per ruotare un widget in Flutter:

  • RotatedBox
  • Transform.rotate

Il secondo metodo è un pò più flessibile secondo me.

Mattepuffo's logo
Spoiler widget in Flutter

Spoiler widget in Flutter

spoiler_widget è un widget per Flutter che ci consente di nascondere un testo, o altro, e visualizzarlo al tap/click.

Prendendo spunto dall'esempio più sotto, giocate con i parametri per capire come nascondere quello che vi serve.

Mattepuffo's logo
Parsing YAML in Dart

Parsing YAML in Dart

In questo articolo vediamo come fare il parsing di un file YAML in Dart.

Per semplificarci ulteriormente la vita lo convertiremo in JSON.

Mattepuffo's logo
Settare la timezone in Go

Settare la timezone in Go

In Go possiamo settare/forzare la timezone molto facilmente.

In questo articolo vediamo un esempio, in cui stamperemo prima l'orario locale e poi l'orario della nuova timezone.

Non sono richieste librerie esterne.

Mattepuffo's logo
Impostare CORS in Gin

Impostare CORS in Gin

Per impostazione predefinita Gin Gonic blocca le chiamate da server esterni.

E' comunque possibile impostare CORS attraverso una libreria apposita.

In questo articolo vediamo come fare.

Mattepuffo's logo
Convertire files in PHP con Pandoc

Convertire files in PHP con Pandoc

Pandoc è una famosa utility da riga di comando che ci consente di convertire una pletora di formati.

Esiste un wrapper per PHP che andremo a studiare in questo articolo.

La cosa principale è che sulla macchina dove girerà il vstro script sia installato anche Pandoc; potete vedere la documentazione ufficiale per l'installazione.

Mattepuffo's logo
Ottimizzare le immagini in Python con YOGA

Ottimizzare le immagini in Python con YOGA

YOGA è una utility da riga di comando, scritta in Python, per l'ottimizzazione delle immagini.

E' facile da usare, in quanto non ha tantissime opzioni, se non le essenziali.

E' anche possibile usarla come libreria all'interno dei nostri script, cosa che faremo.

Infine, esiste anche già una GUI ufficiale se vi interessa.

Mattepuffo's logo
Usare il pattern Strategy in C#

Usare il pattern Strategy in C#

Il pattern Strategy fa parte dei behavioral design pattern, e permette di definire una famiglia di "algoritmi" e renderli facilmente interscambiabili.

In sostanza possiamo richiamare un algoritmo, farci delle operazioni, e poi cambiarlo a runtime.

Nel nostro esempio avremo un metodo per la somma e uno per la sottrazione.

Nell'esempio non ho considerato eventuali gestione degli errori (ad esempio la sottrazione non può essere negativa, ecc).

Mattepuffo's logo
Creare una web api in Dart con shelf

Creare una web api in Dart con shelf

Chi ha detto che Dart è valido solo se usato con Flutter?

In realtà è un linguaggio che può essere usato per un sacco di cose, anche lato desktop o server.

In questo articolo vediamo come usare shelf per creare una web api.

Mattepuffo's logo
Creare app con GUI in Go e Fyne

Creare app con GUI in Go e Fyne

Fyne è un GUI toolikit multi piattaform per Go.

In questo articolo vediamo come usarlo per creare la nostra prima finestra.

Ci sono alcuni passaggi da fare, e la prima compilazione può durare anche 10 minuti.

Mattepuffo's logo
Leggere file CSV in Rust

Leggere file CSV in Rust

In questo articolo vediamo come leggere un file CSV in Rust.

Ci serviranno due librerie:

  • serde per la deserializzazione (non è obbligatorio, ma ve lo consgilio)
  • csv

Mattepuffo's logo
Creare un socket client in Go

Creare un socket client in Go

Avevo la necessità di effettuare dei test su un socket server.

Invece di usare solo strumenti come netcat, ho pensato di crearmi un piccolo client in Go per sperimentare.

In questo articolo vi riporto la versione più basica da cui partire.

Mattepuffo's logo
Scambiare i colori in Gimp

Scambiare i colori in Gimp

Piccola procedura, facile e veloce, per scambiare i colori in una immagine con Gimp.

Dopo aver aperto l'immagine, ovviamente, andate su: Colore -> Mappa -> Scambio colore.

Mattepuffo's logo
Flutter scratch widget

Flutter scratch widget

scratcher è un package per Flutter che ci permette di eseguire uno scratch su un widget per visualizzare quello che c'è sotto.

Ad esempio una immagine.

Non so quante volte vi capiterà di usarlo, ma è interessante e divertente.

Quindi vediamo un esempio.

Mattepuffo's logo
Inviare richieste socket da terminale

Inviare richieste socket da terminale

In sostanza sto scrivendo un piccolo server socket, e devo testarlo.

Non potendo usare Postman o simili, visto che sono compatibili con le WebSocket che sono un'altra cosa, posso solo inviare i dati da terminale.

Oppure scrivere un client apposito, cosa che non mi va.

Quindi ho deciso di usare netcat!

Mattepuffo's logo
Live reloading in Go con air

Live reloading in Go con air

air è un programmino per Go che ci permette di fare il live reloading della nostra applicazione.

Molto comodo soprattutto quando usando un qualche framework tipo Gin Gonic.

In questo articol vediamo come usarlo.

Mattepuffo's logo
Gestire la cache in Java con JCache

Gestire la cache in Java con JCache

JCache è una "libreria" (in realtà non saprei come definirla) che ci permette di gestire la cache nelle nostre applicazioni in Java.

Ha tutta una serie di interfacce per la gestione della cache, ma bisogna indicare, e quindi installare, una sua implementazione.

Mattepuffo's logo
Listare file e directory in Dart

Listare file e directory in Dart

In Dart abbiamo accesso a dei metodi per listare file o directory in maniera abbastanza facile.

Il codice è lo stesso che si può usare in Flutter, ma ovviamente in questo ambito dovete tenere presente i permessi da attivare.

Mattepuffo's logo
Device preview in Flutter

Device preview in Flutter

device_preview è un package per Flutter che ci permette di attivare una preview per vari dispositivi.

Quindi ad esempio, ho avviato la app per Windows.

Sulla destra apparirà un "menu" in cui possiamo decidere con quale dispositivo visualizzare le schermate.

Ovviamente sono emulati, e potete anche chiuderlo/riaprirlo.

Mattepuffo's logo
Routing in Flutter con go_router

Routing in Flutter con go_router

go_router è un package per Flutter che ci permette di impostare la navigazione tra le schermate con un meccanismo di routing simile a quanto avviene nel web.

Ha diverse impostazioni avanzate, la possibilità di inviare parametri, usare nested-child, ecc.

In questo articolo vediamo un esempio.

Mattepuffo's logo
Lista paesi e città in Flutter con csc_picker

Lista paesi e città in Flutter con csc_picker

In verità il titolo è un pò riduttivo, nel senso che csc_picker fa un pò di quello che sembra.

In pratica:

  • ci offre una lista di tutti i paese con la visualizzazione delle bandiera (opzionale)
  • dopo aver selezionato una nazione ci riempire un'altra lista con le regioni/stati
  • dopo avere selezionato una regione/stato ci riempie una lista con le città
  • queste ultime due dropdown possono anche essere nascoste
  • abbiamo parecchie opzioni sullo stile

Tutto questo per vari OS, quindi possiamo usarlo su tutti i sistemi per i quali stiamo sviluppando la app in Flutter.

Mattepuffo's logo
Angular deployment su Apache

Angular deployment su Apache

Quando facciamo il deployment di un'applicazione Angular su Apache, notiamo che abbiamo diversi problemi con i link diretti o i refresh.

Io sono il primo che si dimentica che bisogna creare un file .htaccess con un pò di regole dentro.

Mattepuffo's logo
Scambio dati in rete con LocalSend

Scambio dati in rete con LocalSend

LocalSend è un programma multipiattaforma che ci permette di scambiare dati tra dispositivi nella rete locale.

Io l'ho testato su Windows e Linux, e devo dire che funziona bene.

Per Linux ho scaricato la versione AppImage.

La prima cosa che dovete fare dopo l'avvio è guardare tra le impostazioni; c'è anche la possibilità di scegliere dove salvare i file ricevuti.

Mattepuffo's logo
Navigazione verticale in Flutter con NavigationRail

Navigazione verticale in Flutter con NavigationRail

NavigationRail è un widget di Flutter che ci permette di avere un menu verticale al lato dello schermo.

Molto comodo se abbiamo bisogno di una barra di menu che occupa poco spazio in verticale; potrebbe essere scomodo nel caso di navigazione in molte schermate.

Non sono richieste librerie esterne.

Mattepuffo's logo
Eseguire comandi in Go

Eseguire comandi in Go

Tra i vari linguaggi che ho provato, sicuramente Go è quello con il quale è più facile eseguire comandi di sistema.

Ed è anche quello che visualizza un output più simile alla riga di comando.

In questo articolo vediamo un paio di esempi.

Mattepuffo's logo
ListView multi select in Flutter

ListView multi select in Flutter

In questo articolo vediamo come creare una ListView in Flutter che ci consente di selezionare più elementi con il tap/click (a seconda del sistema su cui gira).

Non abbiamo bisogno di librerie esterne.

Mattepuffo's logo
Usare @propertyWrapper in Swift

Usare @propertyWrapper in Swift

Una propertyWrapper in Swift ci indica come una determinata proprietà viene salvata/manipolata all'interno del nostro programma.

Viene usata spesso anche per gestire eventuali state.

In realtà detto così non significa granchè, quindi vediamo un esempio per capire meglio.

Mattepuffo's logo
Serializzazione e deserializzazione in C# con record

Serializzazione e deserializzazione in C# con record

Nella versione 10 di C# sono è stato introdotto il tipo record, che è stato introdotto anche in altri linguaggi, perchè porta con se diverse comodità.

In questo articolo vediamo come usare record per la serializzazione e deserializzazione di oggetti.

Useremo sempre JSON come formato vista la sua flessibilità e compatibilità.

Mattepuffo's logo
Troncare il testo con CSS

Troncare il testo con CSS

line-clamp è una proprietà, abbastanza nuova, di CSS che ci permette di troncare il testo ad una determinata riga.

In sostanza ci permette di ottenere lo stesso risultato che fino ad oggi otteniamo con Javascript o altri linguaggi.

Ad oggi, 22 aprile 2024, dovrebbe essere ancor ai draft; ma potete vedere da Can I use che è compatibile praticamente con tutti i browser.

Mattepuffo's logo
Introduzione ad Hive, un database per Dart e Flutter

Introduzione ad Hive, un database per Dart e Flutter

Hive è un database, di tipo key:value, per Dart e Flutter.

Non fermatevi agli esempi che trovate sulla pagina pub.dev, ma andate alla documentazione per iniziare....

Io l'ho testato su un programmino in Dart, e non in una app in Flutter; anche se comunque le cose sono abbastanza simili.

Mattepuffo's logo
Usare le SliverAppBar in Flutter

Usare le SliverAppBar in Flutter

In Flutter le SliverAppBar sono delle app bar potenziate, con delle impostazioni in più per quanto riguarda il layout e lo stile.

In sostanza abbiamo la possibilità di controllarne il comportamento quando facciamo lo scroll, come avviene in molti menu dei siti web.

In questo articolo vediamo un paio di esempi.

Mattepuffo's logo
Metodi di default nelle interfacce in Java

Metodi di default nelle interfacce in Java

Da Java 8 abbiamo la possibilità di creare dei metodi di default per le interfacce.

Questo siginifica che possiamo prevedere una implementazione di default ad un metodo, senza doverne per forza fare l'override.

Mattepuffo's logo
Visualizzare da quanto tempo un processo è attivo in Linux

Visualizzare da quanto tempo un processo è attivo in Linux

In Linux abbiamo una marea di strumenti per visualizzare i processi attivi.

Ed ogni strumento ha le sue opzioni.

Se volessimo vedere da quanto tempo i vari processi sono attivi, possiamo seguire diverse strade.

Se ci piacciono i programmi grafici ci basta smanettare con le loro opzioni.

Mattepuffo's logo
Usare custom key in Map in Java

Usare custom key in Map in Java

Come sappiamo le Map in Java sono delle strutture chiave:valore, dove possiamo stabilire che tipo di dato sono le chiavi e i valori.

In questo articolo facciamo un esempio ci chiave custom.

Sostanzialmente dobbiamo creare una classe che fa l'override di:

  • equals
  • hashCode

Mattepuffo's logo
Copiare record in Laravel

Copiare record in Laravel

Se usiamo Laravel ed Eloquent possiamo facilmente copiare un record usando i nostri model.

In questo articolo vediamo un esempio, che sto usando in produzione.

Mattepuffo's logo
Override delle funzioni in Javascript

Override delle funzioni in Javascript

Devo dire che non mi è mai capitato di dover fare l'override delle funzioni in Javascript.

Ma ovviamente è possibile farlo e può essere che serva per qualche motivo.

In questo articolo vediamo un paio di esempi; prenderemo in considerazione la funzione toString(), ma vale per tutte ovviamente.

Mattepuffo's logo
Gestire le eccezioni in Swift

Gestire le eccezioni in Swift

Swift ha diversi modi, tra quelli standard, di gestire le eccezioni.

In questo articolo vediamo qualche esempio; in un prossimo articolo vederemo come "creare" delle eccezioni custom.

Supponiamo di voler stampare il contenuto HTML di una pagina.

Mattepuffo's logo
Animazione Hero in Flutter

Animazione Hero in Flutter

In Flutter abbiamo il widget Hero che ci consente un'animazione mentre si connettono due pagine.

La pagina ufficiale del widget spiega cosa avviene dietro le quinte.

Io ci propongo un basico esempio da cui partire:

  • un quadrato blu su cui cliccare
  • apre una semplice pagina con un quadrato blu più grande
  • animazione nell'andare e nel tornare indietro
  • il quadrato blu è un semplice widget, che trovate in fondo al codice; come parametro vuole solo la dimensione

Mattepuffo's logo
Usare gli extension methods in Dart e Flutter

Usare gli extension methods in Dart e Flutter

Gli extension methods in Dart ci permettono di aggiungere funzionalità alle librerie esistenti.

Possiamo crearne a piacimento ed oggi vediamo un paio di esempi.

In un primo esempio creiamo una extension di String per mettere in maiuscolo la prima lettera di una parola.

Mattepuffo's logo
Usare fetch con Alpine.js

Usare fetch con Alpine.js

Alpine.js è un leggero framework per Javascript che ci consente di avere molte interazioni con l'HTML senza dover installare librerie/framework più pesanti.

Tra l'altro non richiede dipendenze esterne, e non necessita di Node.js.

Di primo acchitto vi dico che lo userei su progetti relativamente piccoli.

Però ha un sacco di chicche interessanti.

Mattepuffo's logo
Utilizzare Suspense in React nel caricamento dati

Utilizzare Suspense in React nel caricamento dati

Nelle ultime versioni React ha messo a disposizione Suspense, che in pratica ci forninsce un modo per visualizzare un loading durante il caricamento dei dati.

Ovviamente era possibile ottenere una cosa simile anche prima, solo che prima dovevamo scrivere un pò più di codice.

In questo articolo vi mostro due esempi per fare una comparazione.