Ultimi 100 articoli

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.

Mattepuffo's logo
Applicare uno ShaderMask in Flutter

Applicare uno ShaderMask in Flutter

ShaderMask è un widget per Flutter che ci consente di applicare una "maschera" generata da uno "shader" ad un widget.

Detto così non vuol dire molto, quindi facciamo subito un esempio.

Mattepuffo's logo
Flutter InteractiveViewer

Flutter InteractiveViewer

InteractiveViewer è un widget per Flutter che ci permette di "interagire" con il widget, ad esempio dandoci la possibilità di zoomare o trascinare.

In questo articolo vediamo due esempi, uno che usa una immagine e l'altro no.

Non ci sono librerie da installare, e funziona anche su desktop.

Mattepuffo's logo
Skip test in Maven

Skip test in Maven

L'altro giorno stavo cercando di fare il package con Maven di una piccola applicazione scritta in Kotlin (usando il framework Ktor).

L'applicazione funzionava a dovere, ma il package dava sempre errore.

C'era qualcosa nei test che fa Maven che non gli piaceva.

Mattepuffo's logo
Impostare CORS in Ktor

Impostare CORS in Ktor

Ktor è un framework per Kotlin per la creazione di web api.

Facile da usare ha parecchie librerie a disposizione.

In questo articolo vediamo come impostare CORS.

Mattepuffo's logo
Usare i LimitedBox in Flutter

Usare i LimitedBox in Flutter

I LimitedBox di primo acchitto potrebbero essere cosiderati uguali ai SizedBox.

In realtà ci sono delle differenze.

LimitedBox è un widget che vincola le dimensioni del suo figlio se non è vincolato dal suo genitore.

Questo può essere utile se si vuole creare un widget che verrà riutilizzato più volte.

Mattepuffo's logo
Rimuovere X-Frame-Options in Apache

Rimuovere X-Frame-Options in Apache

Negli ultimi si sono inventati parecchia "roba" per la sicurezza, e hanno fatto bene.

Solo che ci sono alcune limitazioni che a volte rompono proprio!

Una di queste, in uno specifico è X-Frame-Options!

Mattepuffo's logo
Controllare la lingua corrente in WPML

Controllare la lingua corrente in WPML

WPML è uno dei plugin più usati per la gestione delle lingue in Wordpress.

Ha diversi filtri/funzioni che lo rendono facilmente utilizzabile anche in un template custom.

Ad esempio wpml_current_language!

Mattepuffo's logo
Usare script custom in Angular

Usare script custom in Angular

Sipponiamo di avere dei nostri script da voler usare dentro Angular.

E di non voler creare una vera e propria libreria.

La cosa è possibile seguendo questi passaggi.

Copiate il vostro file JS dentro ad una cartella del progetto; ad esempio src/assets.

Mattepuffo's logo
Formattare la date in italiano in Wordpress e WP_Query

Formattare la date in italiano in Wordpress e WP_Query

Quando visualiziamo le date dei post in Wordpress usando WP_Query, di default escono in formato inglese/americano.

Volendo è possibile formattarle/tradurle in italiano in maniera facile usando date_i18n.

Ad esempio io avevo bisogno di vedere la data in questo formato: 29 Febbraio 2024.

Mattepuffo's logo
Inviare email da Wordpress con wp_mail

Inviare email da Wordpress con wp_mail

Wordpress ci mette a disposizione la funzione wp_mail per mandare email da nostre funzioni personalizzate.

Una cosa fondamentale da fare prima è installare un plugin per il settaggio dei parametri SMTP.

Mattepuffo's logo
Identificare il tipo di file in Python con Magik

Identificare il tipo di file in Python con Magik

Magika è una libreria creata da Google, da quello che ho capito molto nuova, che identifica in maniera veloce il tipo di file che gli viene indicato.

Da quello che ho capito alla base c'è l'AI (strano), e per questo risulta molto più veloce di altre librerie.

In questo articolo vediamo la versione Python (ce ne è una anche per Javascript).

Possiamo sia installarla globalmente ed usarla standalone, che come libreria interna; cose che faremo noi.

Mattepuffo's logo
Immagini fullscreen in Flutter

Immagini fullscreen in Flutter

In questo articolo vediamo come impostare una immagine fullscreen in Flutter; o quanto meno uno dei possibili modi.

Non sono richiesti plugin aggiuntivi, in quanto useremo semplicemenete:

  • un Container
  • un BoxDecoration con DecorationImage

L'immagine l'ho presa dal web "a caso".

Mattepuffo's logo
Usare la funzione zip in Python

Usare la funzione zip in Python

In Python la funzione zip non ha nulla a che vedere con gli archivi compressi.

Ma ci permette di unire più iteratori, anche di diversi tipi, in uno unico, in modo da poter fare un'unica iterazione su tutti gli elementi.

Mattepuffo's logo
Usare gli StreamBuilder in Flutter

Usare gli StreamBuilder in Flutter

StreamBuilder è un widget per Flutter che ci permette di aggiornare solo una parte della UI quando vengono emessi nuovi dati.

In genere viene usato quando ci sono operazioni asincrone che aggiornano i dati di frequente.

In questo articolo vediamo un esempio per cominciare ad usarli.

Mattepuffo's logo
Unire PDF in C# con iText

Unire PDF in C# con iText

iText è una libreria per manipolare file PDF, compatibile con diversi linguaggi.

In questo articolo vediamo come usarla in C# per unire diversi file.

Mattepuffo's logo
Intercettare il back button in Flutter

Intercettare il back button in Flutter

Per back button intendo una qualsiasi azione per riportarmi alla schermata precedente.

In Flutter possiamo intercettare questa azione e fare un qualcosa; ad esempio visualizzare un dialog di conferma.

Il tutto grazie a PopScope!

Mattepuffo's logo
Usare le DataTable in Flutter

Usare le DataTable in Flutter

Il widget DataTable ci permette di visualizzare i dati in forma tabellare in Flutter.

Può essere molto comodo, soprattutto se sviluppiamo app multipiattaforma.

Magari su device mobile mostriamo una lista, in altri ambiti la tabella.

Mattepuffo's logo
Usare i classmethod in Python

Usare i classmethod in Python

Di primo acchitto potremmo pensare ai classmethod di Python come a dei metodi statici.

In verità ci stanno alcune differenze:

  • un classmethod ha come primo parametro cls, mentre i metodi statici no
  • un classmethod può modificare lo state di una classe, mentre i metodi statici no
  • altre eventuali che non conosco

Mattepuffo's logo
Rippple effect su GestureDetector in Flutter

Rippple effect su GestureDetector in Flutter

GestureDetector ed InkWell svolgono praticamente la stessa funzione, cioè quella di eseguire un'azione su un widget.

InkWell ha un effetto ripple, ma GestureDetector è più flessibile e ci permette di fare più cose.

Quindi, come fare per ottenere un effetto ripple su GestureDetector?

Mattepuffo's logo
Flip card in Flutter

Flip card in Flutter

In questo vediamo come usare Animation e AnimationController per creare un effetto flip su card in Flutter.

Non ci servono librerie esterne.

Inoltre l'ho testato sia su Android che su Linux.

Mattepuffo's logo
Unire file PDF in Python con PyPDF2

Unire file PDF in Python con PyPDF2

Abbiamo già usato più volte PyPDF2, libreria per gestire i PDF molto usata in Python.

In questo articolo vediamo come usarla per unire tutti i files PDF che si trovano dentro una directory.

Mattepuffo's logo
Testo selezionabile in Flutter

Testo selezionabile in Flutter

In pratica Flutter ci mette a disposizione SelectableText per visualizzare del testo che possiamo selezionare, sia col mouse che con il tap.

Testato su Linux e Android.

Inoltre avremmo anche i tasti per il copy e select all.

Mattepuffo's logo
Creare link in PHPPresentation

Creare link in PHPPresentation

Abbiamo già parlato di PHPPresentation, una libreria per PHP per la creazione/manipolazione dei file PowerPoint e affini.

In questo articolo vediamo come creare facilmente un testo come link.

Non mi soffermo all'installazione e configurazione, da per scontato che abbiate già tutto.