Partiamo dal presupposto che in Kotlin non esiste il concetto di statico.

Quindi è possibile usare il pattern Singleton, ma in maniera un pò differente da Java.

Avremmo sempre il costruttore (primario) privato, e al posto di metodi statici useremo i companion object.

Jackson è una delle varie librerie con cui eseguire il parsing del JSON con Java.

Nel mio caso l'ho dovuta usare per eseguire il parsing senza sapere a priori la struttura del JSON (quindi senza sapere quanti campi per record, e di che tipo sono).

Diamo a Cesare quel che è di Cesare, e quindi vi link la discussione sul forum HTML.it.

Inviare email in Node.js è abbastanza semplice usando il modulo nodemailer!

Cominciamo con package.json:

{
    "name": "TestEmail",
    "version": "1.0.0",
    "keywords": [],
    "author": "Mattepuffo",
    "contributors": [],
    "dependencies": {
        "nodemailer": "*"
    }
}

Apache POI è una libreria per Java per la manipolazione dei file di MS Office.

Oggi vediamo un esempio su come creare un file Excel.

Se usate Maven, aggiungete questo al vostro pom.xml:

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.16</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.15</version>
            <type>jar</type>
        </dependency>

In pratica, dato un url qualsiasi, vogliamo estrarre il nome di dominio usando il terminale in Linux.

Possiamo ottenere questo risultato sia con AWK che con SED.

Ovviamente possiamo usare questi esempi anche dentro a degli script.

Commandline è una delle tante librerie per Java per il parsing della riga di comando.

E' abbastanza semplice da usare, anche se al momento non rientra tra le mie preferite.

Vediamo un esempio in cui impostiamo due opzioni:

  • nome, di tipo stringa
  • vebosità, di tipo booleano

L'esempio è basico, e sul sito ci stanno diversi esempi avanzati.

Supponiamo di reinstallare Debian, e di voler reinstallare tutti i pacchetti presenti precedentemente.

Come possiamo fare?

Prima di tutto possiamo creare la lista in maniera semplice:

$ dpkg-query -f '${binary:Package}n' - > pacchetti.txt

Ci sono alcune operazioni per le quali sarebbe meglio cambiare la priorità, in modo da usare al meglio le risorse di sistema.

Su Linux possiamo cambiare priorità ad un processo usando ionice!

Facciamo un esempio reale: vogliamo cancellare da riga di comando file molto grandi (anche 300GB), senza bloccare il pc.

Fuel è un'altra libreria per eseguire richieste HTTP in Kotlin.

Di base ha due dipendenze; se usate Maven:

    <dependencies>
        <dependency>
            <groupId>com.github.kittinunf.fuel</groupId>
            <artifactId>fuel</artifactId>
            <version>1.8.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.kittinunf.result</groupId>
            <artifactId>result</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

zTerminal è un plugin per jQuery che ci permette di creare un emulatore di terminale online.

Ovviamente non si tratta di un emulatore di sistema, in cui possiamo lanciare i comandi che conosciamo.

I comandi saremo noi ad impostarli con Javascript.