L'editarietà in Kotlin è abbastanza diversa da quella a cui siamo abituati in Java.

Cominciando dalla classe base:

open class Person constructor(var name: String, var age: Int) {
    open fun isAdult(): Boolean {
        return this.age >= 18
    }
}

Supponiamo di avere diversi comandi da eseguire uno di fila all'altro, senza voler aspettare che finiscano uno per uno per lanciare a mano quello seguente.

Come possiamo fare su Linux?

Partiamo dal presupposto che riempiamo una TableView in JavaFX usando oggetti custom.

Non mi metterò a spiegare come riempire una lista; potete vedere in un precedente articolo per come riempirla da database.

Qui vederemo come intercettare la riga selezionata, e come prendere i dati del relativo oggetto custom.

Per monitorare un database MariaDB (e MySQL ovviamente) ci sono diversi strumenti a disposizione.

Il primo in assoluto è ovviamente mysqladmin, che fa parte dei tools di base di MariaDB.

Solo che non è facilissimo da usare, nel senso che bisogna conoscere molto bene dove andare a prelevare i dati, le query, ecc.

Ho creato un altro strumento, comodo principalmente ai grafici e web designer: Colori brands!

Poi dici che odi Windows (e questo è solo uno dei motivi): ogni volta che reinstallo Windows 7 da zero, ho Windows Update che carica all'infinito e mi scarica gli aggiornamenti.

Una volta l'ho lasciato un giorno e una notte....

Per fortuna c'è un rimedio a questa rottura atomica.

Ci sono alcuni IDE che non impostano l'ultima versione di Java come default in Maven.

Ad esempio IntelliJ, che mi ha fatto penare per una mezz'ora abbondante.

Volendo possiamo impostarlo noi nel pom.xml; io lo farei sempre a scanso di equivoci.

Come sappiamo, Ruby è un linguaggio che ha pieno supporto alla OOP.

Oggi vediamo come implemente il concetto di ereditarietà.

Sono rimasto sorpreso dal poco codice che ho dovuto scrivere per listare file e directory in Kotlin.

Vediamo tre esempi, con tre funzioni diverse:

  • list() -> ritorna un array di String, e quindi stampa solo il nome dei file
  • listFiles() -> ritorna un array di File, e quindi è possibile accedere a tutte le varie funzioni e proprietà di un oggetto File
  • walk() -> che produce un FileTreeWalk, e lista i file in maniera ricorsiva; ci sono anche le funzioni walkBottomUp() e walkTopDown(), che si differenziano solo per il verso un cui eseguono la scansione (poetet vedere su Stack Overflow la mia domanda)

In Linux siamo abituati a creare una partizione dedicata allo SWAP.

Ma ad oggi, con gli hard disk sempre più veloci e capienti, e RAM sempre più grandi, possiamo anche cambiare rotta: invece di usare una partizione possiamo usare un file!

A meno che non usiate BTRFS, che non ha nessun supporto per lo swap-file.