Ultimi 100 articoli

Mattepuffo's logo
Usare Grid.js in Svelte

Usare Grid.js in Svelte

Abbiamo già visto Grid.js in un altro articolo; in questo vediamo come usarlo con Svelte!

Prima di tutto installiamo la libreria con npm:

npm install gridjs gridjs-svelte

Mattepuffo's logo
Usare ON DUPLICATE KEY UPDATE in Laravel

Usare ON DUPLICATE KEY UPDATE in Laravel

Lo ammetto, sono un grandissimo amante dell'istruzione ON DUPLICATE KEY UPDATE di MariaDB/MySQL.

In Laravel possiamo usare la funzione upsert di Eloquent per ottenere lo stesso risultato.

Dovrebbe essere compatibile almeno con le versioni 9 e 10 di Laravel; e da quello che ho capito, upsert funziona anche con altri db che non hanno questa istruzione.

Mattepuffo's logo
Implementare il Bubble sort in Python

Implementare il Bubble sort in Python

Da Wikipedia:

In informatica il Bubble sort o ordinamento a bolla è un semplice algoritmo di ordinamento di liste di dati. In esso l'insieme di dati viene scansionato, ogni coppia di elementi adiacenti viene comparata ed i due elementi vengono invertiti di posizione se sono nell'ordine sbagliato. L'algoritmo continua nuovamente a ri-eseguire questi passaggi su tutta la lista fino a quando non vengono più eseguiti scambi, situazione che indica che la lista è ordinata.

In questo articolo ne vediamo una implementazione in Python.

Mattepuffo's logo
Visualizzare dati da API in Svelte

Visualizzare dati da API in Svelte

Di default Svelte non ha una libreria specifica per eseguire richieste HTTP; nel senso che usa quella standar di Javascript: fetch!

Ovviamente potete usarne anche altre; in questo articolo vediamo come usare fetch per recuperare dati da una API e visualizzarli in tabella.

Mattepuffo's logo
Cambiare titolo dinamicamente in Svelte

Cambiare titolo dinamicamente in Svelte

Svelte è totalmente differente ad altri "competitors" come Angular o React.

Ho cominciato questi giorni un pò a studiarlo, e non sembra per nulla male.

In questo articolo vediamo qualcosa di molto soft, e cioè come cambiare titolo ad una pagina in maniera dinamica.

Mattepuffo's logo
Usare i web workers in React

Usare i web workers in React

In Javascript i web workes ci permettono di eseguire dei long task in background, senza impattare sulla UI.

In questo articolo vediamo un esempio basico di come usarli in React.

Mattepuffo's logo
Usare le ConcurrentHashMap in Java

Usare le ConcurrentHashMap in Java

Le ConcurrentHashMap fanno parto delle Java Collections, ed implementano l'interfaccia Map.

Sono sostanzialmente delle strutture dati chiave:valore thread safety.

Ma rispetto ad altre strutture simili, hanno dei vantaggi in termini di performance.

Mattepuffo's logo
Gestire gli state in React con Zustand

Gestire gli state in React con Zustand

Personalmente mi trovo già bene con il modo standard con cui React gestisce gli state.

Però ho voluto provare Zustand, che pare essere una libreria sempre più usata per questo scopo.

In questo articolo vediamo un pò di codice; il mio progetto si basa su Typescript, ma la libreria supporta anche Javascript.

Mattepuffo's logo
ENUM con parametri in Swift

ENUM con parametri in Swift

In Swift possiamo usare gli ENUM passandogli dei parametri.

Non c'è un limite al numero di parametri che possiamo passargli, e possiamo anche assegnargli un nome.

Mattepuffo's logo
Creare file XML in Laravel

Creare file XML in Laravel

Per creare file XML con Laravel, non abbiamo bisogno di aggiungere nessuna libreria esterna, in quanto ci basta SimpleXMLElement!

In questo articolo vediamo come creare e scaricare un file XML.

Mattepuffo's logo
Usare la web share API in Javascript

Usare la web share API in Javascript

Javascript ci mette a disposizione la share API per la condivisione di contenuto direttamente da pagina web.

Non tutte le funzionalità sono compatibili al 100% con tutti i browser ancora, ma pare sia una API in continuo aggiornamento.

Mattepuffo's logo
Ricerca binaria in Python

Ricerca binaria in Python

La ricerca binaria è un algoritmo che viene usato per trovare gli elementi in un array ordinato; il fatto che sia ordinato è fondamentale e obbligatorio.

Questo algoritmo è più efficiente della ricerca sequenziale, in quanto usa la logica del divide et impera.

In sostanza si procede suddividendo l'array man mano che la ricerca non trova l'elemento, andando a ricercarlo solo in una parte dell'array, che diventa sempre più piccolo.

Quindi, partendo da un elemento casuale:

  • se la chiave è uguale, abbiamo trovato l'elemento
  • se la chiave è maggiore si prosegue cercando verso destra
  • se la chiave è minore si prosegue cercando verso sinistra

Ecco perchè l'array deve essere ordinato.

Mattepuffo's logo
Web Animation in Javascript

Web Animation in Javascript

In questo articolo vediamo un esempio di come usare la Web Animation API in Javascript.

Non sono richieste librerie esterne!

Il tutto avviene grazie al metodo animate, che richiede alcuni parametri.

Mattepuffo's logo
Usare le closure in Swift

Usare le closure in Swift

La closure, conosciute anche come funzioni anomine o lambda in altri linguaggi, sono delle funzioni senza nome che possiamo assegnare ad una variabile, passare come parametro o restituire come valore.

In questo articolo ne vediamo un paio di esempi in Swift.

Mattepuffo's logo
Creare e leggere XML in Go

Creare e leggere XML in Go

In questo articolo vediamo come creare un file XML, e poi leggerlo, in Go.

Come spesso accade in questo linguaggio, abbiamo già tutto il necessario, senza dover scaricare librerie esterne.

Mattepuffo's logo
Impostare lo stile in una DropdownButton in Flutter

Impostare lo stile in una DropdownButton in Flutter

Una delle cose che mi piace molto di Flutter è la presenza di componenti che servono solo a svolgere ruoli ben definiti.

Ad esempio DecoratedBox, che ci serve per decorare altri componenti.

Certo, a volte può risultare confusionario, ci si deve fare l'abitudine.

Mattepuffo's logo
Download file ZIP in .NET Core Web API e C#

Download file ZIP in .NET Core Web API e C#

In questo articolo vediamo come creare un end-point in un nostro progetto .NET Core Web API per creare e scaricare un file ZIP.

Come linguaggio useremo C#.

La cartella dove ci stanno i files da comprimere si troverà all'interno del progetto, e la chiamiamo Files.

Li dentro mettete un pò di files.

Mattepuffo's logo
Parsing URL in Go

Parsing URL in Go

In Go abbiamo tutti gli strumenti necessari per fare il parsing di un URL e visualizzare i parametri in query string.

In questo articolo vediamo un esempio.

Mattepuffo's logo
Parsing JSON in Go

Parsing JSON in Go

In questo articolo vediamo come eseguire il parsing di un JSON, remoto, in Go.

Useremo anche delle custom struct per incapsulare gli elementi.

Ovviamente la struttura delle struct dipende dal JSON di partenza.

Mattepuffo's logo
Usare i decoratori in Python

Usare i decoratori in Python

In Python i decoratori vengono utilizzati principalmente per espandere le funzionalità di una funzione.

Sostanzialmente si tratta di riutilizzare un pezzo di codice su varie funzioni chiamandolo come un decoratore e non come una funzione.

Detta così può risultare più complicato di quello che è; ma se avete programmato in Java o simili, sicuramente avete già incontrato i decoratori.

Mattepuffo's logo
Creare RST in Python

Creare RST in Python

reStructuredText (RST, ReST, o reST) è un formato usato principalmente in Python per la documentazione tecnica.

Potete leggere su Wikipedia un pò di info utili.

In questo articolo vediamo come creare il formato RST in Python.

Mattepuffo's logo
Usare Chroma con Python

Usare Chroma con Python

Chroma è descritto come un "AI-native open-source embedding database".

Sostanzialmente si tratta di un embedded-db di tipo document.

I dati possono essere salvati in-memory o su file.

Mattepuffo's logo
Usare la fotocamera con HTML

Usare la fotocamera con HTML

L'input di tipo file di HTML, negli annia si è molto evoluto.

In questo articolo vediamo come usarlo per avviare la fotocamera del nostro dispositivo.

La cosa bella è che sul browser avviato su un pc, si comporterà come da standard.

Mattepuffo's logo
Cambiare il nome dell'applicazione in Flutter

Cambiare il nome dell'applicazione in Flutter

In Flutter possiamo cambiare il nome dell'applicazione nel caso in cui abbiamo "sbagliato" in fase di creazione di progetto.

O anche semplicemente perchè vogliamo personalizzarlo.

Ovviamente va fatta una modifica per ogni piattaforma supportata.

Mattepuffo's logo
Creare un hook per lo storage in React

Creare un hook per lo storage in React

Può capitare spesso di dover usare localStorage/sessionStorage in applicazioni scritte in React.

Ma invece di richiamare ogni volta le varie funzioni get/set, possiamo creare un hook personalizzato.

Mattepuffo's logo
Usare i variadic in Swift

Usare i variadic in Swift

Come sapete, in generale, possiamo impostare che una funzioni accetti uno o più parametri.

Ma se ad esempio volessimo avere la possibiloità di passare in un parametro un indefinito numero di valori?

In Swift possiamo usare i variadic!

Mattepuffo's logo
Creare applicazioni web con Hono

Creare applicazioni web con Hono

Hono è un web framework per Javascript e Typescript molto facile da usare, ed anche molto veloce.

Rispetto ad altri pare abbia un peso molto minore.

In questo articolo vediamo qualche esempio.

Mattepuffo's logo
Creare funzioni in MariaDB e MySQL

Creare funzioni in MariaDB e MySQL

n questo articolo vediamo un esempio di creazione di una funzione in MariaDB e MySQL.

Le funzioni possono essere molto utili per svolgere compiti molto specifici.

Rispetto ad una query "secca", inoltre, vengono cachate, e quindi sono anche più veloci.

Tenete in considerazione che una funzione può tornare un valore, non un record set.

Mattepuffo's logo
Creare funzioni in Oracle

Creare funzioni in Oracle

In questo articolo vediamo un esempio di creazione di una funzione in Oracle.

Le funzioni possono essere molto utili per svolgere compiti molto specifici.

Rispetto ad una query "secca", inoltre, vengono cachate, e quindi sono anche più veloci.

Tenete in considerazione che una funzione può tornare un valore, non un record set.

Mattepuffo's logo
Usare le tuple in Swift

Usare le tuple in Swift

In Swift le tuple sono come un array che contiene dati di tipo di diverso.

Possono essere molto utili in diversi casi.

Una cosa importante da ricordare però, è che possiamo modificare gli elementi di una tupla, ma non possiamo aggiungere o rimuovere elementi.

Mattepuffo's logo
Sealed class in Dart

Sealed class in Dart

In Dart una sealed class è una classe che non può essere estesa o implementata al di fuori della "libreria" dove è stata creata.

Questo fa si che si può aver un maggior controllo su dove può essere usata.

Di default una sealed class è astratta, il che vuole dire che non può essere istanziata direttamente.

Mattepuffo's logo
Usare le goroutine in Go

Usare le goroutine in Go

Una goroutine ci permette di usare la concorrenza/ programmazione asincrona in Go.

Rispetto ad altri linguaggi ho trovato i concetti più semplici da imparare.

Una delle cose che mi è piaciuta di più è la possibilità di usare i channels per lo scambio dati tra le varie routines.

In questo articolo vediamo un paio di esempi.

Mattepuffo's logo
Introduzione a Rocket in Rust

Introduzione a Rocket in Rust

Rocket è un web framework per Rust.

Nel complesso mi sembra completo, anche se la documentazione non mi sembra proprio facile da leggere.

In questo articolo vediamo un esempio introduttivo.

Mattepuffo's logo
Output video in PHP

Output video in PHP

Supponiamo di avere un video da mandare in output su una pagina web attraverso il classico tag video.

Solo che la sorgente è su un dominio differente dalla nostra pagina web.

Se mettete il classico url secco, otterrete il classico errore CORS (o almeno così mi è successo....).

Mattepuffo's logo
Introduzione a Dioxus in Rust

Introduzione a Dioxus in Rust

Dioxus è una libreria per Rust per la creazione di interfacce grafiche.

E' compatibile con svariate piattaforme, e prende un pò di concetti da React (si avete capito bene).

Sulla documentazione trovate le varie istruzione per le varie piattaforme.

Mattepuffo's logo
Creare GUID in VB.NET

Creare GUID in VB.NET

Prendendo la definizione da Wikipedia, un GUID è:

Il GUID (Globally Unique Identifier, identificatore unico globale) è un numero pseudo-casuale usato nella programmazione software, per poter distinguere vari oggetti. Il tipo più noto di GUID è l'utilizzo di Microsoft dell'UUID, ideato dalla Open Software Foundation, ma vi sono anche altri usi, come quello all'interno di XML.

I GUID vengono utilizzati soprattutto nell'ambito del Component Object Model (COM) di Microsoft, tuttavia sono diffusi anche in altri sistemi software, quali Oracle e Novell.

Mattepuffo's logo
Argomenti da riga di comando in Go

Argomenti da riga di comando in Go

In Go per usare gli argomenti da riga di comando possiamo usare os.Args o flag.

Il primo fa il parsing di tutto ciò che viene dopo il file .go da lanciare.

Il secondo ci permette di usare dei flag veri e propri.

Mattepuffo's logo
Aggiornare da Debian 11 a Debian 12

Aggiornare da Debian 11 a Debian 12

In questo articolo vi mostro i passaggi che ho usato per aggiornare il mio di pc di test da Debian 11 a Debian 12.

Per esperienza personale, non sempre fila tutto liscio.

Quindi fate prima un backup del sistema!

E soprattutto non mi ritengo responsabile per eventuali problemi riscontrati!

Mattepuffo's logo
Gestire gli errori in Go

Gestire gli errori in Go

Go non ha il classico try/catch/finally per gestire gli errori.

Ma semplicemente abbiamo l'interfaccia Error e il package errors attraverso i quali possiamo gestire gli errori ed intercettarli.

Nel senso che Go incentiva l'intercettazione "manuale" degli errori, piuttosto che quella "automatica" che abbiamo in altri linguaggi.

Mattepuffo's logo
Server-side rendering in Angular

Server-side rendering in Angular

Un tempo le applicazioni web venivano renderizzate dal server.

E parliamo dei siti fatti interamenti in PHP, .NET, ecc.

Poi, con l'avvento di Angular, React, ecc..., la redenrizzazione grafica è stata demandata al client.

Mattepuffo's logo
Eseguire richieste HTTP get in Go

Eseguire richieste HTTP get in Go

Rispetto ad altri linguaggi Go ha un modo un pò tutto suo di eseguire richieste HTTP.

Non tanto nell'eseguire la richiesta vera a propria, ma quanto nel leggere la risposta.

Come potete vedere dalla documentazione, la funzione Get restituisce due valori:

  • un puntatore Response
  • un error

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

Ritornare più valori in una funzione in Go

In Go è possibile che una funzione ritorni più valori, e questa è una cosa che trovo molto comoda.

In realtà è una cosa studiata, in quanto Go usa questo "trucchetto" anche per l'intercettazione degli errori (che vedremo in un altro articolo).

Mattepuffo's logo
Connessione a MySQL con Fastify

Connessione a MySQL con Fastify

In questo articolo vediamo come collegare Fastify ad un db MySQL.

Prima di tutto dobbiamo installare un package apposito:

npm i @fastify/mysql

Fatto questo vediamo il nostro codice Javascript.

Mattepuffo's logo
Usare le interface in Go

Usare le interface in Go

Go mette a disposizione le interface per organizzare meglio il codice; ad esempio se abbiamo bisogno di assegnare delle funzione a delle struct.

Per chi conosce la OOP, la funzione è molto simile, solo che è differente il modo in cui vengono usate.

In primis, come vedremo, non c'è bisogno di implementarle in maniera specifica; in Go le interfacce vengono implementate in maniera implicita.

Mattepuffo's logo
Usare le Map in Go

Usare le Map in Go

Le Map sono strutture dati chiave:valore, dove la chiave è univoca.

Esistono in praticamente tutti i linguaggi, con le dovute differenze ovviamente.

In questo articolo vediamo come usarle in Go.

Mattepuffo's logo
Usare le struct in Go

Usare le struct in Go

Qui abbiamo visto come creare dei tipi custom in Go, ma non abbiamo approfondito il discorso sulle struct.

In questo articolo vediamo un uso più avanzato facendo un pò di esempi.

Mattepuffo's logo
Gestire le finestre in Flutter desktop

Gestire le finestre in Flutter desktop

Come sappiamo con Flutter possiamo creare app anche per desktop con un unico codebase.

Solo che, ovviamente, i programmi per desktop possono avere alcune critictà diverse dal web o mobile.

Ad esempio, potremmo voler gestire il titolo della finestra, la barra del titolo, le dimensioni, ecc.

Mattepuffo's logo
Introduzione a Fastify

Introduzione a Fastify

Fastify è un web framework per Javascript e Node.js, con una struttura molto simile ad altri web framework, e con molti plugin a disposizione.

In questo articolo vediamo un esempio introduttivo.

Mattepuffo's logo
Creare file in Go

Creare file in Go

Nel package ioutil della libreria standard di Go, troviamo parecchie funzioni che ci consentono operazioni di I/O in maniera rapida.

In questo articolo vediamo come usare WriteFile per creare un file.

Mattepuffo's logo
Creare macro in Python per LibreOffice

Creare macro in Python per LibreOffice

Che Python è un linguaggio molto adattabile lo sapevamo già, qui ne abbiamo una ulteriore prova.

In pratica vederemo come creare una macro, basica ovviamenre, per LibreOffice.

Prima di tutto dobbiamo installare due cose.

Mattepuffo's logo
Leggere file riga per riga in Go

Leggere file riga per riga in Go

Inauguriamo con questo articolo la sezione dedicata a Go (o Golang).

Direi che era anche ora.....

Cominciamo con un articolo semplice: come leggere un file di testo riga per riga.

Mattepuffo's logo
Usare le SharedPreferences in Flutter

Usare le SharedPreferences in Flutter

Le SharedPreferences sono praticamente fondamentali nelle mobile app, in quanto ci consentono di salvare alcuni dati da riusare nell'intera app.

Ad esempio il nome utente, il token, ecc.

In questo articolo vediamo come usarle in Flutter.

Mattepuffo's logo
Creare un'estensione personalizzata per Chrome

Creare un'estensione personalizzata per Chrome

Creare un'estensione per Chrome non è difficile, in quanto alla fine ci bastano le solite cose:

  • HTML
  • CSS
  • Javascript

In questo articolo vediamo come fare; il risultato sarà un'estensione che una volta cliccata ci aprirà una finestrella con una tabella con dati presi da JSONPlaceholder.

Mattepuffo's logo
Impostare Chrome per Flutter su Linux

Impostare Chrome per Flutter su Linux

Una delle cose più fighe di Flutter è che puoi creare una app compatibile anche con il web fin da subito.

Solo che Flutter, di default, richiede Chrome di default.

Su Linux, a volte, Chrome non viene trovato, magari perchè installato da altri repo o in altri path.

Mattepuffo's logo
Usare le animazioni implicite in Flutter

Usare le animazioni implicite in Flutter

In Flutter abbiamo due tipologie di animazioni:

  • quelle esplicite, "costruite" da noi, sulle quali abbiamo un maggior controllo, ma che richiedono più codice
  • quelle implicite, che usando dei widget pre-confezionati, sui quali abbiamo un minor controllo, ma richiedono meno tempo

In questo articolo vediamo un esempio delle seconde; abbiamo visto quelle esplicite in quest'altro articolo.

Mattepuffo's logo
Debounce in Javascript

Debounce in Javascript

Supponiamo di avere un bottone che invia i dati di un form, e che vogliamo impedire che l'utente ci clicchi troppe volte in maniera consecutiva.

In Javascript abbiamo almeno due possibilità:

  • bloccare la UI fino a che l'operazione non è terminata
  • usare il debounce

In questo articolo vediamo un esempio di questa "tecnica".

Mattepuffo's logo
Usare i Form in Flutter

Usare i Form in Flutter

L'oggetto Form in Flutter non è obbligatorio per inviare/salvare dati, ma è molto comodo in quanto ha diverse cose interessanti.

In questo articolo vediamo un esempio di form login, con una validazione basica.

Nel caso che la validazione vada a buon fine, ci limiteremo a visualizzare i dati in console.