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

Mattepuffo's logo
Usare gli array in Rust

Usare gli array in Rust

In Rust gli array sono abbastanza simili alle tuple, ci stanno solo alcune differenze.

Comunque le caratteristiche generali degli array sono:

  • sono mono tipo, quindi non possono avere tipi misti come le tuple
  • sono a dimensione fisse, quindi non possiamo aggiungere o eliminare elementi
  • è possibile modificare il valore di un elemento

Mattepuffo's logo
Sticky footer in Ant Design

Sticky footer in Ant Design

Ant Design è una libreria UI per React; ne abbiamo già parlato in qualche altro articolo.

Oggi vediamo un semplice tips per rendere il componente Footer sticky.

Mattepuffo's logo
Le tuple in Rust

Le tuple in Rust

Le tuple in Rust sono strutture di dati composti; nel senso che dentro ad una tupla possiamo avere sia stringhe, che numeri, ecc.

Inoltre hanno una lunghezza fissa, nel senso che una volta create non possono essere modificate.

Infine sulle tuple non si può iterare; si possono visualizzare i singoli item presi per indice, che comincia per zero.

Mattepuffo's logo
Connessione a MongoDB con Java

Connessione a MongoDB con Java

Per Java la libreria più usata per la connessione a MongoDB pare sia mongo-java-driver.

Se usate Maven:

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.12.2</version>
    </dependency>
</dependencies>

Mattepuffo's logo
Passare valori by reference in Rust

Passare valori by reference in Rust

Rust supporta il passaggio dei valori by reference nelle funzioni.

Cerchiamo prima di capire cosa si intende; quando passiamo un parametro by value, la funzione crea una copia della variabile.

Così facendo non tocchiamo mai l'originale.

Mattepuffo's logo
Swtich statement in Rust

Swtich statement in Rust

Rust, come altri linguaggi più moderni e di moda, ha sostituito la parola switch con match.

Non ho capito sta moda, ma vabbè, facciamocene una ragione.

Mattepuffo's logo
Cambiare colore alla NavigationView in SwiftUI

Cambiare colore alla NavigationView in SwiftUI

Da quanto ho capito la nuova NavigationView di SwiftUI non permette di modificare il colore; quindi ce la dobbiamo tenere del colore standard.

Oppure, possiamo abilitare la vecchia UINavigationBarAppearance e impostare io nostro colore di sfondo.

Mattepuffo's logo
Connessione a MongoDB in VB.NET

Connessione a MongoDB in VB.NET

Per MongoDB esiste il driver per il .NET; anche se sul sito ufficiale viene nominato solo il C#, possiamo usarlo anche

per VB.NET.

Per installare il driver possiamo usare NuGet:

Install-Package MongoDB.Driver -Version 2.10.2

Mattepuffo's logo
Riempire una List da JSON in SwiftUI

Riempire una List da JSON in SwiftUI

Oggi vediamo come riempire una List da JSON in Swift e SwiftUI.

Partiamo dal JSON remoto che ha questa struttura:

    {
    "books": [{
        "id": "87",
        "title": "2001 odissea nello spazio",
        "author_id": null,
        "author": "arthur c. clarke",
        "editor_id": null,
        "editor": "longanesi",
        "price": "0.00",
        "isbn": "",
        "note": ""
    }, {
        "id": "87",
        "title": "2001 odissea nello spazio",
        "author_id": null,
        "author": "arthur c. clarke",
        "editor_id": null,
        "editor": "longanesi",
        "price": "0.00",
        "isbn": "",
        "note": ""
    }]
}

Mattepuffo's logo
Le stringhe in Rust

Le stringhe in Rust

Rust ha disposizione due tipi di stringhe:

  • literal
  • object

Le stringhe literal in genere vengono usate quando si già si conosce il loro contenuto a compile time.

Mattepuffo's logo
Differenza tra costanti e variabili in Rust

Differenza tra costanti e variabili in Rust

Sto approfittando di questa quarantena da #coronavirus per imparare qualcosa di nuovo.

E' da un pò che mi frulla di studiare Rust, così ho cominciato.

Il primo articolo su questo linguaggio riguarda la differenza tra costanti e variabili.

Mattepuffo's logo
Connessione a MongoDB con PHP

Connessione a MongoDB con PHP

Per la connessione a MongoDB con PHP pare che sia obbligatorio usare pecl per l'installazione del driver.

Il pacchetto trovato in Debian 10 non è stato utile, o forse è addirittura deprecato.

Alla fine sono riuscito nell'intento usando questa procedura.

Mattepuffo's logo
Connessione a MongoDB con Ruby

Connessione a MongoDB con Ruby

Sto facendo un pò di test su MongoDB; oggi testiamo Ruby.

Attraverso gem è possibile installare il driver; ma prima bisogna installare anche il pacchetto ruby-dev.

Mattepuffo's logo
Installare MongoDB su Debian 10

Installare MongoDB su Debian 10

In questo tempo di #coronavirus ho deciso di riprendere in mano alcuni arogmenti che ho tralasciato nel tempo.

Uno di questi è MongoDB; comincierò con la sua installazione su Debian 10.

Il processo non è difficile, ci sono solo una serie di comandi che in genere non danno problemi.

Mattepuffo's logo
Eseguire benchmark con Apache Bench

Eseguire benchmark con Apache Bench

Apache Bench è un tool per eseguire benchmark sul webserver Apache.

Dovrebbe essere già installato con il pacchetto apache2-utils.

In caso non lo sia, su Debian lo installate così:

# aptitude install apache2-utils

Mattepuffo's logo
Usare il JSON type in MariaDB

Usare il JSON type in MariaDB

Dalla versione 10.2.7 MariaDB ha introdotto il JSON come alias per il tipo LONGTEXT; in questo modo si è in parte allineata agli standard, e sicuramente ha facilitato il compito di eventuali migrazioni da MySQL.

Anche perchè a questo alias è possibile anche applicare dei controlli sulla validità dei dati.

Mattepuffo's logo
Rest API in PHP e autenticazione con JWT

Rest API in PHP e autenticazione con JWT

JWT sta per JSON Web Tokens ed è uno standard open; viene usato soprattutto per l'autenticazione nelle web application.

In una API Rest non usiamo le sessioni lato server, ma usiamo un token per l'autenticazione e il blocco dei servizi.

JWT è supportato da molti linguaggi, ed oggi vediamo come usarlo in PHP.

Mattepuffo's logo
Introduzione a Falcon

Introduzione a Falcon

Falcon è un framework per Python per la creazione di API Web e micorservice.

Agisce a basso livello rispetto ad altri framework del genere, e per questo risulta molto veloce.

Vediamo come creare un semplice esempio per fare un test.

Mattepuffo's logo
Creare un AlertDialog con EditText in Android

Creare un AlertDialog con EditText in Android

In pratica, nella nostra app Android, vogliamo mettere dentro un AlertDialog una casella di testo per scrivere un valore che poi useremo in qualche modo.

Aggiungere una EditText dentro un dialog non è difficile, e non richiede neanche un layout esterno.

In questo esempio faremo tutto da codice Java.

Mattepuffo's logo
Convertire documenti in PDF con LibreOffice CLI

Convertire documenti in PDF con LibreOffice CLI

LibreOffice si porta dietro anche una potente serie di comandi da terminale.

Uno di questi è lowriter, che ci consente di convertire documenti in maniera facile e veloce.

Io l'ho testato solo su Linux; non so come funzioni su Windows o macOS.

Mattepuffo's logo
Creare un menu in Android

Creare un menu in Android

Creare un menu in Android non è molto complicato.

Come al solito c'è una parte di layout e una parte di codice Java (o altro se usate altro).

Cominciamo dal lyout; nella cartella res create una cartella menu se non l'avete.

Mattepuffo's logo
Leggere file KeePass in Java

Leggere file KeePass in Java

Utilizzo KeePass, nelle varie sue forme, da parecchio tempo.

Per sbaglio mi sono imbattuto in una libreria per Java che ci permette di "interagire" con un db compatibile con questo programma.

Visto KeePass c'è anche per il mobile, questa libreria può essere molto interessante.

Mattepuffo's logo
Convertire List in IEnumerable SelectListItem in C#

Convertire List in IEnumerable SelectListItem in C#

Partiamo da questa classe che ci farà da model:

    public class MugTipo
    {

        public IEnumerable<SelectListItem> TipologieMug { get; set; }

        [Display(Name = "Id")]
        public long Id { get; set; }

        [Display(Name = "Tipologia")]
        public string Tipologia { get; set; }
    }

Mattepuffo's logo
Usare Odbc in Asp.NET Core

Usare Odbc in Asp.NET Core

Ho iniziato oggi un nuovo progetto in Asp.NET Core, ed avevo bisogno di usare Odbc per la connessione ad un database Oracle.

Ovviamente qui non tratto di come installare Oracle e Odbc sulla macchina.

Mattepuffo's logo
SwiftUI: inserire un Button

SwiftUI: inserire un Button

Da quel poco che ho visto, mi sembra che SwiftUI abbia migliorato di molto la creazione di UI nei progetti ∫.

Sia che si parli di desktop che di mobile.

Certo è molto diverso da prima, e inizilamente anche un bottone mi ha dato qualche problema.

Mattepuffo's logo
Sostituire un file in C#

Sostituire un file in C#

Oggi vediamo come eseguire la sostituizione di un file con un altro in C#.

Per farlo useremo l'oggetto FileInfo e il suo metodo replace.

Partiamo da due file di testo, nominati file1.txt e file2.txt.

Mattepuffo's logo
Eseguire un PING in Javascript con ping.js

Eseguire un PING in Javascript con ping.js

ping.js è una piccola libreria che ci permette di eseguire una sorta di PING in Javascript.

Da prendere con le molle ovviamente; guardate la descrizione direttamente dal canale di GitHub:

Javscript itself doesn't have a native way of sending a "ping", so results may not be completely accurate. Since ajax requests are affected by cross-domain issues (CORS), they are blocked by default. ping.js is using a method of loading a favicon.ico image from any host and timing the response time. If the favicon image doesn't exist, an error is returned along with the ping value. If there's a better way to do this in Javascript, feel free to create an issue, or pull request so I can review.
License

Mattepuffo's logo
MPYdl: gui per youtube-dl

MPYdl: gui per youtube-dl

MPYdl è un programmino scritto da me, in Qt, che fa da interfaccia grafica a youtube-dl.

Di questo programma abbiamo già parlato, e in pratica consente di scaricare video da YouTube.

La funzione che uso di più è l'estrapolazione in MP3.