Ulitmi 100 articoli

Mattepuffo's logo
Ricerca binaria in Java

Ricerca binaria in Java

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.

Mattepuffo's logo
Link WhatsApp sulle pagine web

Link WhatsApp sulle pagine web

Piccolo snippet di codice HTML per impostare un link a WhatsApp.

In pratica cliccando sul link si aprirà direttamente WhatsApp, con la casella di testo già riempita.

E pronto ad inviare il messaggio al numero impostato.

Mattepuffo's logo
Visualizzare tutti giorni di un mese in PHP

Visualizzare tutti giorni di un mese in PHP

Quello che vogliamo ottenere oggi è una piccola funzione che visualizza tutti i giorni di un determinato mese / anno in PHP.

Nello specifico vogliamo visualizzare tutti i lunedi (o martedi, ecc).

Poi andremo oltre, e visualizzeremo tutti i lunedi di questo anno e del prossimo, partendo dal prossimo lunedi rispetto ad oggi.

Mattepuffo's logo
typeof in Rust

typeof in Rust

Può capitare, soprattutto quando si studia un nuovo linguaggio, di dover capire con che tipo di variabile abbiamo a che fare.

Rust non ha una funzione specifica per il typeof, ma è comunque molto semplice "crearla" usando type_name.

Mattepuffo's logo
Ricerca binaria in PHP

Ricerca binaria in PHP

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.

Mattepuffo's logo
Splittare video con Python e moviepy

Splittare video con Python e moviepy

moviepy è una libreria per Python per la manipolazione dei video.

Oggi la usiamo per spezzare un file video, che ha una lunghezza di 45 minuti.

Lo divideremo in due parti, di cui la prima parte da 20 minuti.

Mattepuffo's logo
Ricerca binaria in C#

Ricerca binaria in C#

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.

Mattepuffo's logo
Raw string literals in Rust

Raw string literals in Rust

Abbiamo già visto un esempio di raw string literals in Rust in qualche altro articolo.

Oggi andiamo a spiegare un pò più nel dettaglio di cosa si tratta.

Mattepuffo's logo
Connessione a Oracle con Node.js ed Express

Connessione a Oracle con Node.js ed Express

Oggi ho fatto un piccolo esperimento: connettermi ad un db Oracle con Node.js ed Express.

E devo dire che ha funzionato abbastanza bene; una delle cose migliori è che non richiede una connessione ODBC pre-impostata (cosa che succede con diversi driver in altri linguaggi).

Mattepuffo's logo
Creare un web service JSON in Python, Flask e MySQL

Creare un web service JSON in Python, Flask e MySQL

Premetto che è solo una introduzione, in quanto sto testando diversi linguaggi / tecnologie per un lavoro che devo fare.

Ho deciso, quindi, di sperimentare anche Flask, un micro framework per Python.

E vederemo anche come agganciarlo a MySQL e inviare l'output in formato JSON.

Mattepuffo's logo
Substring in BASH

Substring in BASH

In BASH il concetto di substring è un pò diverso da quello a cui siamo abituati in altri linguaggi.

Che io sappia non esiste una vera e propria funzione specifica, ma si usano i comandi con le pipe, o una sintassi apposita.

Mattepuffo's logo
Unire immagini fianco a fianco in PHP

Unire immagini fianco a fianco in PHP

In pratica quello che mi serviva, era di unire una serie di immagini mettendole fianco a fianco.

Considerando che sono tutte alte uguali, e quindi non andremo a controllare eventuali differenze di altezza.

Tutto ciò in PHP.

Mattepuffo's logo
Parsing JSON in Rust e Serde

Parsing JSON in Rust e Serde

Serde è un framework per la serializzazione / deserializzazione in Rust; ed è lo standard de facto per il parsing del JSON.

Oggi ne vediamo un paio di esempi, anche se ne abbiamo già avuto un assaggio parlando di Actix.

Mattepuffo's logo
Introduzione al template engine Plates per PHP

Introduzione al template engine Plates per PHP

Plates è dei diversi template engine per PHP.

Ma rispetto ad altri non intriduce una nuova sintassi / linguaggio, in quanto parte dal presupposto che PHP di per sè ha già un template engine integrato.

Quindi incoraggia ad usare le funzioni base e le estende.

Mattepuffo's logo
Creare un timer in Android e Java

Creare un timer in Android e Java

In una app per Android che sto sviluppando in Java, ho bisogno di inviare/ricevere dei dati di notte in maniera automatica.

Quindi senza l'interazione con l'utente.

Per fare questo ho scelto Timer e TimerTask (package java.util.Timer e java.util.TimerTask).

Mattepuffo's logo
Gestione dei log in PHP con monolog

Gestione dei log in PHP con monolog

Quando si tratta di web application, generalmente io salvo tutto su db; ho una instanza di Redis solo per questo.

Ma non è detto che sia sempre la soluzione milgiore.

Oggi vediamo Monolog, una delle librerie più utilizzate per la creazione di file di log in PHP.

Mattepuffo's logo
Connessione a CouchDB in C#

Connessione a CouchDB in C#

Come già detto per Java, mi aspettavo più documentazione su CouchDB.

Evidentemente non è cosi usato come pensavo.

Comunque oggi vediamo come connetterci in C# usando la libreria LoveSeat, che potete trovare su NuGet.

Mattepuffo's logo
Usare i thread in Rust

Usare i thread in Rust

Rust nasce come linguaggio che deve essere molto veloce; fa un largo uso dei thread e della programmazione concorrente, e lo fa in maniera molto efficace.

Oggi vedremo un esempio, ovviamente basilare, ma utile per partire.

Mattepuffo's logo
Connessione a MongoDB con Kotlin

Connessione a MongoDB con Kotlin

Per connetterci a MongoDB in Kotlin, possiamo usare lo stesso driver di Java.

Come dico sempre, questa è un'ottima cosa, perchè molte volte si tratta "solo" di tradurre il codice.

Mattepuffo's logo
Connessione a CouchDB con Java e Ektorp

Connessione a CouchDB con Java e Ektorp

Viste le librerie a disposizione mi aspettavo più documentazione in giro.

Ed invece non è stato così facile affrontare l'argomento in questione: la connessione a CouchDB in Java con la libreria Ektorp.

Mattepuffo's logo
Abilitare l'autenticazione in MongoDB

Abilitare l'autenticazione in MongoDB

Avevo un db MongoDB senza autenticazione, in quanto erano dati veramente inutili da hackerare: la lista dei films....

Ma a quanto pare la gente non ha nulla da fare, e quindi ho attivato l'autenticazione.

Mattepuffo's logo
Usare le Closure in Rust

Usare le Closure in Rust

Le Closure sono funzioni anonime, e quindi senza nome, che in genere vengono usate per assegnare una funzione ad una variabile.

In linguaggi tipo Javascript usare le funzioni anonime è all'ordine del giorno.

Mattepuffo's logo
Creare un form in SwiftUI

Creare un form in SwiftUI

Oggi vediamo come usare i Form in SwiftUI.

Vedremo anche come validarlo; su molti aspetti è diverso da come siamo abituati.

Ad esempio nella validazione faremo in modo che il pulsante di invio non sia visibile finchè i dati richiesti non sono stati inseriti.

Mattepuffo's logo
Copiare file in Rust

Copiare file in Rust

Come ultima operazione sui file in Rust, vediamo come eseguire la copia.

In pratica prenderemo bytes del primo file e li copieremo nel secondo in un loop.

Non faremo controlli se files sorgente e destinazione esistono.

Mattepuffo's logo
Operazioni su file in Rust

Operazioni su file in Rust

Oggi vediamo come eseguire le classiche operazioni sui file in Rust.

Questo il processo del nostro programmino:

  • prima controlliamo se il file esiste, ed in caso lo cancelliamo
  • poi ne creiamo uno e ci scriviamo dentro qualcosa
  • leggiamo il contenuto
  • aggiungiamo del testo
  • leggiamo di nuovo il contenuto

Mattepuffo's logo
Correggere l'errore sql.lib.php di phpMyAdmin

Correggere l'errore sql.lib.php di phpMyAdmin

Da quando ho installato e attivato PHP 7.x, su phpMyadmin mi compare sempre una schermata che inizia con questo errore:

Warning in ./libraries/sql.lib.php#601
count(): Parameter must be an array or an object that implements Countable

Lo trovo abbastanza fastidioso, anche se poi funziona tutto.

Mattepuffo's logo
Operazioni di IO in Rust

Operazioni di IO in Rust

Oggi vediamo dei semplici di operazioni IO (input / output) in Rust.

Come già specificato sono esempi basici, ma utili come punto di partenza.

Mattepuffo's logo
Creare un montaggio di immagini su Linux con ImageMagick

Creare un montaggio di immagini su Linux con ImageMagick

Di ImageMagick ne abbiamo parlato diverse volte negli anni.

Oggi lo riprendiamo per vedere come creare un montaggio di immagini su Linux con il comando montage.

Considerate che le immagini possono avere estensioni differenti, e che possiamo scegliere senza problemi l'estensione finale.

Mattepuffo's logo
Usare i traits in Rust

Usare i traits in Rust

I traits in Rust possono essere associate le interfacce nella OOP: sono usati per implementare un set di funzioni da riutilizzare.

Inoltre, chi implementa un trait è obbligato ad implmentare le funzioni al suo interno.

Mattepuffo's logo
Creare una ListView multiple choice in Android

Creare una ListView multiple choice in Android

Android ci mette a disposizione già diverse opzioni per le ListView.

Quindi, se non dobbiamo creare qualcosa di custom, possiamo usare una di quelle "già pronte".

Oggi vediamo come creare una ListView con multiple choice in Java.

Mattepuffo's logo
Introduzione ai Generics in Rust

Introduzione ai Generics in Rust

I Generics ci permettono di parametrizzare le strutture dati e i traits (che vedermo in seguito) per avere un codice più pulito e sicuro.

Oggi vediamo come usarli in Rust.

Mattepuffo's logo
Usare le socket in Ruby

Usare le socket in Ruby

Sapete che non amo particolarmente Ruby, ma ho dovuto avere a che fare con le socket per un piccolo programma.

E quindi vi riporto qui il codice basico di partenza da cui sono partito.

Abbiamo due file per i nostri:

  • server.rb
  • client.rb

Mattepuffo's logo
Creare un loading dialog in React

Creare un loading dialog in React

Ciao e Buona Pasqua a tutti!

In attesa di uscire da questa situazione di quarantena e tornare tutti liberi, una giornata vale l'altra.

E quindi perchè non scrivere anche oggi?

Mattepuffo's logo
Gestire gli errori in Rust

Gestire gli errori in Rust

La gestione degli errori in Rust è un pò più complicata rispetto ad altri linguaggi ai quali siamo abituati.

E questo, prima di tutto, perchè non c'è una classica gestione delle eccezioni.

Comunque, in generale, in rust abbiamo due tipi di errori:

  • Recoverable ->errori che possono essere intercettati, e quindi possono essere in qualche maniera corretti. o che comunque non causano il crash dell'applicazione
  • UnReceverable -> errori che non possono essere intrcettati

Mattepuffo's logo
Monitorare il kernel Linux con kmon

Monitorare il kernel Linux con kmon

Kmon è un piccolo programma da terminale per Linux che ci consente di monitorare il kernel.

In verità oltre che il monitoraggio possiamo anche fare diverse altre operazioni, come attivazione / disattivazione dei moduli.

Per installarlo è necessario avere Rust e Cargo installati.

Mattepuffo's logo
Centrare una label con CSS

Centrare una label con CSS

Non se ci avete mai fatto caso, ma le label, in HTML, sono sempre allineate a sinistra.

Questo perchè le label sono degli elementi "inline", e non basta il classico text-align per allnearle come vogliamo.

Mattepuffo's logo
Leggere file Excel con Python e xlrd

Leggere file Excel con Python e xlrd

La libreria xlrd è una delle tante con cui è possibile leggere file Excel con Python.

Supporta sia XLS che XLSX.

Nel complesso non è tra le mie favorite, però ammetto che è molto veloce nel leggere i files (o almeno mi ha dato questa impressione).

Mattepuffo's logo
Usare gli HashSet in Rust

Usare gli HashSet in Rust

Gli HashSet in Rust sono delle collezioni che non supportano valori duplicati.

Per certi versi sono simili alle HashMap, ed hanno le stesse funzioni; ma non sono in formato chiave:valore.

Anche gli HashSet non hanno dimensione fissa, e quindi è possibile aggiungere item a runtime.

Mattepuffo's logo
Estrarre testo dai documenti con Textricator

Estrarre testo dai documenti con Textricator

Textricator è un programma open e multi piattaforma che ci consente di estrarre il testo dai documenti, e creare diversi tipi di strutture dati.

E' basato su Java, e quindi necessita di una JVM installata.

Dopo esservi assicurati di aver installato una JVM, scaricate il pacchetto compresso da qui.

Mattepuffo's logo
HTML scrollbar custom con OverlayScrollbars

HTML scrollbar custom con OverlayScrollbars

OverlayScrollbars è un plugin per le nostre pagine web che ci permette di customizzare la classica barra di scorrimento.

Le soluzioni che prevedono il CSS non funzionano praticamente mai; quanto meno a me non hanno mai funzionato.

Questo plugin, invece, ci permette di customizzarle usando Javascript o jQuery.

Mattepuffo's logo
Usare le HashMap in Rust

Usare le HashMap in Rust

Le HashMap in Rust sono collezioni di dati in formato chiave:valore, in cui non è possibile inserire due item con la stessa chiave.

In sostanza la chiave deve essere univoca.

Inoltre i dati vengono inseriti in ordine arbitrario; come vedremo quando li stamperemo a video, non saranno messi in ordine di inserimento.

Mattepuffo's logo
Redirect HTTPS in React

Redirect HTTPS in React

Tendenzialmente sono abituato a forzare il redirect su HTTPS usando le configurazioni lato server; ad esempio usando .htaccess nel caso di Apache.

Ma mi sono accorto che queste regole non valevano nel caso di app React; nel senso che caricato sul server l'applicazione, il redirect automatico non veniva fatto.

Ed ecco perchè ho deciso di usare il modulo react-https-redirect!

Mattepuffo's logo
Utilizzare i Vector in Rust

Utilizzare i Vector in Rust

I Vector in Rust sono degli array con delle proprie caratteristiche:

  • sono a dimensione dinamica; quindi è possibile aggiungere elementi in qualsiasi momento
  • contengono tipo di omogenei
  • i nuovi item vengono aggiunti in fondo
  • ad ogni item viene assegnato un indice numerico

Mattepuffo's logo
Utilizzare i moduli in Rust

Utilizzare i moduli in Rust

I moduli servono per organizzare meglio il codice; in questo modo è possibile raccogliere il codice in diverse unità, ognuna con il proprio scopo.

Per certi versi i moduli in Rust sono simili alle classi nella OOP.

Mattepuffo's logo
Deploy di una applicazione Node.js con PM2

Deploy di una applicazione Node.js con PM2

Abbiamo finito la nostra applicazione Node.js, e la vogliamo caricare sul server.

Sappiamo che ci basta un comando per avviarla, o uno script per impostare anche qualche variabile.

Ma non penso sia il metodo migliore, perchè comunque non tengono in considerazione diversi fattori.

Mattepuffo's logo
Decode HTML in React

Decode HTML in React

Su un db ho un campo dove salvo tutto il testo in HTML.

Questo testo, poi, lo prendo in una applicazione React per visualizzarlo sulla pagina.

Mattepuffo's logo
Impostazioni CORS in Node.js ed Express

Impostazioni CORS in Node.js ed Express

Ho creato una piccola web API in Node.js ed Express.

Impostato tutto, dal client ricevevo il solito errore su CORS.

Per impostare CORS su Express possiamo seguire due strade:

  • impostare gli header a mano
  • usare il modulo cors

Mattepuffo's logo
Usare le Struct in Rust

Usare le Struct in Rust

Le Struct sono strutture dati che ci permettono di avere tipi diversi per ogni item.

La loro implementazione in Rust è simile a quella degli altri linguaggi.

Inoltre è possibile anche creare delle funzioni per le Struct, da richiamare poi nel nostro codice.

Mattepuffo's logo
Configurare Apache e Node.js

Configurare Apache e Node.js

Oggi vediamo come configurare Apache per far girare una applicazione Node.js usando sempre la porta 80.

Adesso mi spiego meglio andando per punti; considerate che è un caso reale:

  • sul dominio https://www.sito.it ho un sito che gira con PHP e Wordpress
  • ho caricato la mia applicazione scritta con Node.js ed Express sul server nella sottodirectory api
  • dopo averla caricata e lanciata, l'applicazione è raggiungibile all'url http://www.sito.it:8080; notate che sto usando HTTP e non HTTPS in questo caso ovviamente, in quanto non è configurato per la 8080
  • voglio raggiungere la app all'indirizzo https://www.sito.it/api senza indicare la porta
  • il tutto lasciando il sito principale in funzione

Mattepuffo's logo
Utilizzare data-target in Razor

Utilizzare data-target in Razor

Ho implementato un plugin jQuery dentro ad un progetto .NET MVC, e questo plugin richiede l'uso dell'attributo data-target.

Ovviamente sto usando la notazione Razor per il form, e data-target mi andava in errore.

Mattepuffo's logo
Creare finestre modali in SwiftUI

Creare finestre modali in SwiftUI

Oggi vediamo come aggiungere una finestra modale in SwiftUI.

Al contrario di altri linguaggi / ambienti, non c'è un componente apposito; useremo una normale View.

Quello che cambia è come viene richiamata questa View.

Mattepuffo's logo
Usare le slice in Rust

Usare le slice in Rust

Le slice in Rust sono dei puntatori ad un determinato oggetto, che possono stringhe, array, vector, ecc.

Attraveso le slice possiamo accedere ad una porzione di un oggetto, attraverso degli indici.

Infine, le slice hanno una dimensione fissa creata a runtime.

Mattepuffo's logo
Raggruppare JSON per campo con Javascript

Raggruppare JSON per campo con Javascript

Supponiamo di avere un JSON di questo tipo:

[{
	"id": "204",
	"title": "fondazione e terra",
	"author_id": null,
	"author": "isaac asimov",
	"editor_id": null,
	"editor": "oscar mondadori",
	"price": "26.49",
	"isbn": "88-04-32634-4",
	"note": "usato"
}, {
	"id": "202",
	"title": "l'orlo della fondazione",
	"author_id": null,
	"author": "isaac asimov",
	"editor_id": null,
	"editor": "oscar mondadori",
	"price": "30.99",
	"isbn": "978-88-04-39816-5",
	"note": "usato"
}, {
	"id": "217",
	"title": "preludio alla fondazione",
	"author_id": null,
	"author": "isaac asimov",
	"editor_id": null,
	"editor": "mondadori",
	"price": "27.90",
	"isbn": "88-04-32450-3",
	"note": "usato"
}]

E di volerlo raggruppare, andando a sommare un determinato campo.

Mattepuffo's logo
Usare NBSP in React

Usare NBSP in React

In HTML l'entità   rappresenta uno spazio bianco.

Quando ho provato a metterlo dentro una pagina creata con React non ha funzionato.

Mattepuffo's logo
Connessione a MongoDB con Python

Connessione a MongoDB con Python

Oggi vediamo come connetterci a MongoDB in Python con il modulo pymongo.

Avendo creato un programmino personale, vederemo un esempio più completo rispetto a quelli fatti con altri linguaggi.

Mattepuffo's logo
Connessione a MongoDB in C#

Connessione a MongoDB in C#

Per la connessione a MongoDB usando C# possiamo usare il driver ufficiale per .NET.

Possiamo installarlo tramite NuGet:

Install-Package MongoDB.Driver -Version 2.10.2