Loading ...
Ultimi 100
Ruby - Usare Google Drive in Ruby
Usare Google Drive in Ruby

Usare Google Drive in Ruby

Google mette a disposzione parecchie API per i suoi servizi; oggi vediamo come usare quelle per Google Drive con Ruby! Il punto di partenza, per qualsiasi API, è creare un progetto; potete iniziare con il wizard ufficiale. Poi andate nella sezione Libreria ed attivate le API che volete; GDrive richiede delle credenziali, che potete creare nella sezione Credenziali. Create quelle di tipo OAuth; una volta fatto dovete scaricare il file in formato JSON (sempre dalla pagina Credenziali), e salvatelo da qualche parte.

Linux - Colorare l'output di cat con ccat su Linux
Colorare l'output di cat con ccat su Linux

Colorare l'output di cat con ccat su Linux

Il comando cat penso lo conosciamo tutti. Anche se praticamente fondamentale, il suo output non è sempre dei migliori. E' possibile aumentarne la liggibilità usando i colori e ccat!

Software - Scaricare tutti i file SVG da un sito web con Chrome
Scaricare tutti i file SVG da un sito web con Chrome

Scaricare tutti i file SVG da un sito web con Chrome

Molti siti, ormai, usano gli SVG per le proprie immaigni come loghi, simboli, ecc. Il motivo è che SVG porta diversi vantaggi. Se volessimo scaricare queste immagini da un sito web (ad esempio perchè vogliamo riutilizzare un logo), come possiamo fare?

Javascript - AJAX - Settare l'header in jQuery getJSON
Settare l'header in jQuery getJSON

Settare l'header in jQuery getJSON

Quando usiamo $.ajax di jQuery, possiamo settare diverse cose in più rispetto alla "scorciatoia" $.getJSON; ad esempio l'header. O almeno io non sono ci sono riuscito senza l'utilizzo di $.ajaxSetup.

Linux - Cambiare la versione Java di default su Arch Linux
Cambiare la versione Java di default su Arch Linux

Cambiare la versione Java di default su Arch Linux

In tutti i sistemi operativi è possibile installare versioni diversi di Java. Ad esempio io ho la 8, la 9 e la 10. Su Arch Linux possiamo facilmente identificare quali versioni siano installate, ed eventuale cambiare quella di default.

PHP - Gestire l'autenticazione in Lumen
Gestire l'autenticazione in Lumen

Gestire l'autenticazione in Lumen

Lumen è un micro framework per PHP adatto alla creazione di servizi REST. Lo sto usando e devo dire che mi sto trovando davvero bene. Oggi vediamo come abilitare e gestire l'autenticazione; in pratica saremo costretti ad inviare un token tramite header quando richiediamo la risorsa. Do per scontato l'installazione del framework, e non tratteremo come validare il token; quello dipende anche da come avete la registrazione utente, ecc.

Javascript - AJAX - Utilizzare le Notifications in Javascript
Utilizzare le Notifications in Javascript

Utilizzare le Notifications in Javascript

Le Notifications sono delle API che ci consentono di usare le notifiche di sistema da Javascript; è possibile lanciarle anche da browser, e possono essere molto comode da lanciare dai servizi in background. Inoltre sono scritte per essere compatibili con tutti i sistemi di notifica. Le API sono supportate dalla maggior parte dei browser moderni.

Software - eSpeak: un sintetizzatore vocale per Linux e Windows
eSpeak: un sintetizzatore vocale per Linux e Windows

eSpeak: un sintetizzatore vocale per Linux e Windows

Ho scoperto eSpeak, ed ho passato 10 minuti buoni di cazzeggio a lavoro! In pratica si tratta di un sintetizzatore vocale che supporta diverse lingue (l'inglese ovviamente quella più supportata); ed è disponibile sia per Linux che Windows. Inoltre è anche possibile usarlo come libreria.

Database & Server - Backup e restore di database in MariaDB con mydumper
Backup e restore di database in MariaDB con mydumper

Backup e restore di database in MariaDB con mydumper

Il tool standard per il backup di MariaDB (e MySQL) è mysqldump, che è già integrato nell'installazione standard. Ho scoperto un altro utile tool per eseguire il backup: mydumper. Questo installarà anche il tool per il ripristino: myloader.

C# - Asp.NET - Usare Google Drive in C#
Usare Google Drive in C#

Usare Google Drive in C#

Google mette a disposzione parecchie API per i suoi servizi; oggi vediamo come usare quelle per Google Drive con C#! Il punto di partenza, per qualsiasi API, è creare un progetto; potete iniziare con il wizard ufficiale. Poi andate nella sezione Libreria ed attivate le API che volete; GDrive richiede delle credenziali, che potete creare nella sezione Credenziali. Create quelle di tipo OAuth; una volta fatto dovete scaricare il file in formato JSON (sempre dalla pagina Credenziali), e salvatelo da qualche parte.

Python - Eseguire comandi in Python con subprocess
Eseguire comandi in Python con subprocess

Eseguire comandi in Python con subprocess

Python è uno di quei linguaggi per cui vale il detto "per eseguire un'operazione ci sono mille modi diversi". In effetti, a volte, ci sono anche troppi modi diversi in Python. Prendiamo il caso in cui vogliamo eseguire comandi da shell. Abbiamo almeno due moduli a disposizione; noi vediamo l'uso di subprocess.

Database & Server - Correggere Errore 404 in Lumen e Apache
Correggere Errore 404 in Lumen e Apache

Correggere Errore 404 in Lumen e Apache

Lumen è un micro-framewrok basato su Laravel, e io lo sto usando per creare un web service. Una volta installato e creato un progetto con composer, sono andato in https://www.sito.it/api/public e tutto ha funzionato. La prima route, infatti, viene creata in automatico.

Python - Usare UnQLite in Python
Usare UnQLite in Python

Usare UnQLite in Python

Non ero minimamente a conoscenza dell'esistenza di un embedded-database di tipo NoSQL, e devo dire che l'ho trovato molto interessante: UnQLite! Può essere usato sia come db key:value che come document store. Oggi vediamo un esempio del suo utilizzo in Pyhon!

Network & Sniffing - Effettuare benckmark di rete con netperf
Effettuare benckmark di rete con netperf

Effettuare benckmark di rete con netperf

Il tool che andremo a vadere oggi, si trova nel canale GitHub di HP, e serve per eseguire benchmark di rete. Da quanto ho capito, al suo interno ha sia la parte server che quella client; quindi il tool va installato su tutti i pc dei quali si voglio misurare la performance di rete. Io l'ho testato solo in locale; per installarlo su Arch Linux: # pacman -Sy netperf

Mondo Web - Convertire file online con CloudConvert
Convertire file online con CloudConvert

Convertire file online con CloudConvert

Ho scoperto questo fantastico sito, che converte praticamente in tutti i formati da tutti i formati: CloudConvert! Il servizio è gratuito e facile da usare. Andate sul sito e scegliete il file.

Linux - Ascoltare musica da terminale su Linux con vitunes
Ascoltare musica da terminale su Linux con vitunes

Ascoltare musica da terminale su Linux con vitunes

vitunes è un programma basato su ncurses che ci permette di ascoltare la musica direttamente da terminale. E' un media player in tutti i sensi, e si appoggia su mplayer o gstreamer per l'audio. Per installarlo su Arch Linux dobbiamo ricorrere ad AUR: $ yaourt -Sy vitunes

Javascript - AJAX - Introduzione alla libreria Lodash per Javascript
Introduzione alla libreria Lodash per Javascript

Introduzione alla libreria Lodash per Javascript

Lodash è una utility library per Javascript e Node.js, piena zeppa di funzioni per diverse tipologie di aree. Molto leggera, anche se completa, è anche facile da usare. Mi chiedo seriamente come possa essermi sfuggita fino adesso.

Database & Server - Installare Caddy web server in Debian
Installare Caddy web server in Debian

Installare Caddy web server in Debian

Caddy web server è un nuovo web server scritto in Go, che pare essere molto veloce e che con varie estensioni / plugin. Inoltre è multi-piattaforma; io ho deciso di installarlo e testarlo su Debian per vedere di che si tratta. Può essere usato sia come web server che come proxy server; e ha HTTPS attivato di default. Detto ciò, vediamo come installarlo.

Java - Criptare e decriptare file in Java
Criptare e decriptare file in Java

Criptare e decriptare file in Java

Con Java eseguire operazioni di crypting / decrypting è abbastanza semplice usando il package javax.crypto. Vediamo un esempio; create un file di testo con dentro quello che volete. Questo file sarà prima criptato, e poi decriptato in un altro file per vedere il risultato. Creeremo un metodo che verrà richiamato per entrambe le operazioni.

Linux - Parsing JSON da terminale in Linux con jq
Parsing JSON da terminale in Linux con jq

Parsing JSON da terminale in Linux con jq

Per visualizzare JSON remoti con Linux, ci basterebbe cURL. Ma questo non ha opzioni di formattazione, filtro, ecc. Per operazioni più avanzate possiamo usare jq! Per installarlo su Debian: # aptitude install jq

Java - Usare Google Drive in Java
Usare Google Drive in Java

Usare Google Drive in Java

Google mette a disposzione parecchie API per i suoi servizi; oggi vediamo come usare quelle per Google Drive con Java! Il punto di partenza, per qualsiasi API, è creare un progetto; potete iniziare con il wizard ufficiale. Poi andate nella sezione Libreria ed attivate le API che volete, GDrive richiede delle credenziali, che potete creare nella sezione Credenziali. Create quelle di tipo OAuth; una volta fatto dovete scaricare il file in formato JSON (sempre dalla pagina Credenziali), e salvarlo nel vostro progetto (io uso Maven, e quindi l'ho messo dentro alla cartella resources).

Python - Utilizzare i FloatLayout in Python Kivy
Utilizzare i FloatLayout in Python Kivy

Utilizzare i FloatLayout in Python Kivy

I FloatLayout sono tra i layout più usate in Python Kivy, in quanto ci permettono di posizionare i widget figli in posizioni e dimensioni arbitrarie. Qui vediamo un esempio banale in cui abbiamo un solo Button.

Linux - Ottimizzare la batteria dei portatili su Linux con TLP
Ottimizzare la batteria dei portatili su Linux con TLP

Ottimizzare la batteria dei portatili su Linux con TLP

TLP è un tool da riga di comandi per i sistemi Linux che ci permette di ottimizzare il consumo della batteria dei portatili. Ha tantissime opzioni e settaggi pre-impostati, e volendo possiamo agire manualmente sulla configurazione. Per installarlo su Arch Linux: # pacman -Sy tlp tlp-rdw

Kotlin - Usare le RecyclerView in Android con Kotlin
Usare le RecyclerView in Android con Kotlin

Usare le RecyclerView in Android con Kotlin

Il componente per Android RecyclerView, è quello che sostituisce altri contenitori come ListView. Se volete usare contenitori con dati "ripetuti" come liste, è altamente consigliato. Oggi vediamo una sua implementazione in Kotlin; prenderemo i dati da web service in formato JSON usando Anko e Klaxon, e costruiremo un nostro adapter: Anko ci serve per le richieste asincrone (e per il logging, ma non è strettamente necessario) Klaxon per il parsing del JSON

Software - Bloccare Facebook su Firefox con Facebook Container
Bloccare Facebook su Firefox con Facebook Container

Bloccare Facebook su Firefox con Facebook Container

Bene o male sappiamo tutti che cosa si è scoeprto su Facebook ultimamente. Parlo della vicenda dei dati venduti a Cambridge Analytica. Mozilla già da un pò lavorara su una estensione per Firefox che garantisse più privacy quando si naviga su Facebook.

Java Android - Cambiare colore ai RadioButton in Android
Cambiare colore ai RadioButton in Android

Cambiare colore ai RadioButton in Android

Di default i RadioButton di Android sono rosa; non che siano brutti, ma non è detto che vadano bene con il resto del layout. Ma per modificarne il colore non basta impostare il classico colore di sfondo, ma bisogna lavorare sugli stili. Non è assolutamente complicato e ve lo dimostro.

Kotlin - Parsing JSON in Kotlin con Klaxon
Parsing JSON in Kotlin con Klaxon

Parsing JSON in Kotlin con Klaxon

Oggi mi sono scontrato con un interessante JSON parser per Kotlin: Klaxon! L'ho testato e devo dire che ci voglio veramente pochissime righe di codice. Ne vediamo un esempio in ambito Android, ma non dovrebbe cambiare nulla se volete usarlo in ambito desktop.

Java Android - Impostare il back button nella toolbar in Android
Impostare il back button nella toolbar in Android

Impostare il back button nella toolbar in Android

Quando aggiungiamo una Activity in Android, dobbiamo aggiungerla anche nel manifest; una cosa del genere già basta: <activity android:name=".ClientiActivity"></activity> E fin qui, bene o male lo sappiamo. Il problema è che se arriviamo da un'altra Activity, non abbiamo il back button nella toolbar.

Kotlin - Eseguire richieste HTTP in Android con Kotlin
Eseguire richieste HTTP in Android con Kotlin

Eseguire richieste HTTP in Android con Kotlin

Eseguire richieste HTTP con Kotlin è alquanto semplice usando la classe URL. Vediamo come eseguire una richiesta asincrona (che in ambito Android è obbligatorio) e visualizzare la risposta nel Logcat. Come libreria esterna useremo Anko, sia per effettuare la richiesta asincrona, sia per il logging.

Kotlin - Eseguire richieste asincrone in Android e Kotlin con Anko
Eseguire richieste asincrone in Android e Kotlin con Anko

Eseguire richieste asincrone in Android e Kotlin con Anko

Per eseguire richieste asincrone in Android, siamo abituati ad usare AsyncTask, sia in Java che in Kotlin. Per quest'ultimo, però, ho scoperto una libreria che ci permette di avere sintassi molto più Kotlin style: Anko! E' una libreria scritta direttamente da Jetbrain, e quindi direi che è più che valida.

Java - Stampare immagini in Java
Stampare immagini in Java

Stampare immagini in Java

In sostanza vediamo come mandare in stampa più immagini contemporaneamente usando Java; ogni immagine occupa una pagina, quindi non dobbiamo occuparci di sistemare più immagini in una pagina. Per fare questo useremo una classe che implementa Printable (di AWT). A questa classe passeremo un array di BufferedImage, sul quale itereremo per "sistemare" e stampare le immagini.

Kotlin - Usare le animazioni in TornadoFX e Kotlin
Usare le animazioni in TornadoFX e Kotlin

Usare le animazioni in TornadoFX e Kotlin

Non so quante animazioni stile web potremmo mai usare in un programma per desktop, ma conoscere come si fa di certo non fa male. Vediamo, quindi, come creare animazioni usando TornadoFX e Kotlin.

Java - Spostare file nel cestino in Java
Spostare file nel cestino in Java

Spostare file nel cestino in Java

Facciamo la premesse che l'argomento del titolo varia si usiamo Java 9  o versioni precedenti. Infatti in Java 9 c'è un metodo apposito che fa parte della classe Desktop: moveToTrash! Non l'ho ancora testato, ma dovrebbe funzionare su tutte le piattaforme. Se invece siamo usiamo versioni precedenti alla 9, dobbiamo fare distinzione su quale OS stiamo.

Python - Eseguire screenshot con Python
Eseguire screenshot con Python

Eseguire screenshot con Python

Attraverso PIL / Pillow è possibile eseguire screenshot dello shcermo usando Python! Prima di tutto dovete installare la libreria: # pip install Pillow

HTML - CSS - Navbar collpase on scroll in Twitter Bootstrap
Navbar collpase on scroll in Twitter Bootstrap

Navbar collpase on scroll in Twitter Bootstrap

In pratica su alcune pagine ho la necessità di eseguire il collapse della navbar di Twitter Bootstrap quando si scrolla la pagina. Quando un componente si espande, viene aggiunta la classe show, ed il componente viene visualizzato. Quindi basta intercettare l'evento scroll e levare la classe CSS.

Java Android - Binding dei componenti visuali in Android con Butter Knife
Binding dei componenti visuali in Android con Butter Knife

Binding dei componenti visuali in Android con Butter Knife

Il binding dei componenti visuali in Android non è di per sè complicato, in quanto possiamo fare tutto con il metodo findViewById. Però ho scoperto una libreria che ci permette di fare queste operazioni in una maniera più easy ancora: Butter Knife! Non so se comporta miglioramenti anche a livello di prestazioni, ma secondo me riduce il codice scritto e lo rende un pò più chiaro.

Windows - Riempire un file Excel da XML remoto
Riempire un file Excel da XML remoto

Riempire un file Excel da XML remoto

Quello che vedremo oggi è come scrivere una macro per Excel che prende i dati da un url remoto in formato XML. Darò per scontato le seguenti cose: che avete già un url remoto da cui prendere i dati; non mi metterò a spiegare come creare un web service del genere come abilitare gli strumenti per sviluppatori in Excel (ogni versione ha la sue modalità) come aggiungere un pulsante ed assegnarli una macro

Java - Utilizzare MapDB come database embedded in Java
Utilizzare MapDB come database embedded in Java

Utilizzare MapDB come database embedded in Java

In giro si trovano parecchi database embedded per Java, ed oggi ne vediamo uno molto interessante: MapDB! Mi piace perchè ha disposizione diversi tipi di database, sia persistenti che non. Ed è anche facile passare da uno all'altro nel caso volessimo evolvere il nostro programma.

Mondo Web - Testare il supporto ad HTML 5 con HTML5test
Testare il supporto ad HTML 5 con HTML5test

Testare il supporto ad HTML 5 con HTML5test

HTML 5 è giro da un pò, ma non tutti i browser lo supportano ancora a pieno. Ho trovato un sito che ci dice tantissime informazioni al riguardo: HTML5test! Avviate il browser che volete controllare e andate sul sito.

News - Strumento per convertire immagini in base64
Strumento per convertire immagini in base64

Strumento per convertire immagini in base64

Ho aggiunto un nuovo strumento oggi, lo trovate qui (e nella sezione Toolset). In pratica ci permette di convertire una immagine in base64.

Network & Sniffing - Testare la velocità di un sito web con cURL
Testare la velocità di un sito web con cURL

Testare la velocità di un sito web con cURL

Diciamo che ormai cURL non ha più bisogno di presentazioni! Oggi lo usiamo per calcolare il tempo di caricamento di una pagina.

Ruby - Gestire la clipboard in Ruby
Gestire la clipboard in Ruby

Gestire la clipboard in Ruby

Per gestire la clipboiard in Ruby, possiamo installare una gem molto facile da usare: # gem install clipboard Ha solo tre metodi: Clipboard.copy Clipboard.paste Clipboard.clear

Linux - Unire file di testo in Linux con paste
Unire file di testo in Linux con paste

Unire file di testo in Linux con paste

Ho scoperto oggi il comando paste, che ci permette di unire le linee di file testo dal terminale su Linux. Partiamo da questi due file: $ cat file1.txt 1 2 3 $ cat file2.txt fante cavallo e re

Javascript - AJAX - Intercettare gli eventi di Google Analytics in Javascript
Intercettare gli eventi di Google Analytics in Javascript

Intercettare gli eventi di Google Analytics in Javascript

Ho scoperto che è possibile interecettare gli eventi di Google Analytics in maniera più approfondita e personalizzata usando Javascript (ovviamente). Questo è il codice di default che ci da Google Analytics: window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-XXXXX-Y');

Database & Server - Visualizzzare tutti i valori di una lista in Redis
Visualizzzare tutti i valori di una lista in Redis

Visualizzzare tutti i valori di una lista in Redis

In Redis le liste sono delle liste di stringhe, che possono contenere qualsiasi tipo di dato (anche binario comme immagini) e che sono ordinate in base all'inserimento. Accettano anche valori duplicati, ed è possibile inserire valori in "testata" (LPUSH) o in coda (RPUSH).

Javascript - AJAX - Convertire una immagine in base64 con Javascript
Convertire una immagine in base64 con Javascript

Convertire una immagine in base64 con Javascript

Quello che vedremo oggi è come convertire una immagine in base64 usando Javscript. Ci sono vari modi per farlo, e noi useremo FileReader. Metteremo una input di tipo file per scegliere l'immagine; ed un bottone che lancia la funzione.

Python - Spostare file nel cestino in Python
Spostare file nel cestino in Python

Spostare file nel cestino in Python

Ho trovato un modulo per Python che ci permette di spostare i file nel cestino invece di cancellarli: Send2trash! Dovrebbe essere compatibile con tutti gli OS; io l'ho provato su Linux. E dovrebbe essere compatibile con entrambi i rami di Python (sia versione 2 che 3). Possiamo installarlo tramite pip: # pip install Send2Trash

Database & Server - Cancellare tutte le KEYS in Redis
Cancellare tutte le KEYS in Redis

Cancellare tutte le KEYS in Redis

Ho deciso di voler di salvare le sessioni di PHP su Redis; e ieri avevo la necessità di cancellare tutte le sessioni attive, ma senza riavviare il web server. Come fare? Semplicemente cancellando tutte le KEYS!

Linux - Connessione RDP con Linux e rdesktop
Connessione RDP con Linux e rdesktop

Connessione RDP con Linux e rdesktop

Per connettersi tramite RDP con Linux, ci sono vari programmi. Oggi vediamo rdesktop! E' un tool da riga di comando, ma non è difficile usarlo. Le opzioni disponibili sono anche spigate in maniera chiara.

PHP - Connessione a Redis in PHP
Connessione a Redis in PHP

Connessione a Redis in PHP

Gestire Redis con PHP mi sembra addirittura più facile che gestire MariaDB. Dato per scontato che avete Redis installato, dovete installare il pacchetto per PHP: # aptitude install php-redis

Database & Server - Salvare le sessioni di PHP su Redis
Salvare le sessioni di PHP su Redis

Salvare le sessioni di PHP su Redis

Di default le sessioni di PHP vengono salvate su file. Ma è possibile cambiare queste impostazioni salvandole du database, con diversi vantaggi. Ovviamente possiamo scegliere un qualsiasi db, ma io ho scelto Redis. Tra le motivazioni c'è che è praticamente già pronto per gestire le sessioni senza scrivere session-handler custom, ecc.

Java - Visualizzare i metadati delle immagini in Java con metadata-extractor
Visualizzare i metadati delle immagini in Java con metadata-extractor

Visualizzare i metadati delle immagini in Java con metadata-extractor

Per l'estrazione dei metadati delle immagini in Java, ci sono diverse librerie. Probabilmente metadata-extractor è la più completa! Io l'ho usata anche per il mio programmino MPPhotoGallery, che ho messo anche si GitHub. Se usate Maven: <dependency> <groupId>com.drewnoakes</groupId> <artifactId>metadata-extractor</artifactId> <version>2.11.0</version> </dependency>

Kotlin - Disegnare forme in TornadoFX e Kotlin
Disegnare forme in TornadoFX e Kotlin

Disegnare forme in TornadoFX e Kotlin

TornadoFX, essendo un porting di JavaFX per Kotlin, ha praticamente tutte le sue potenzialità. Oggi vediamo come aggiungere facilmente delle forme. Useremo uno stackpane come layout di base.

Linux - Identificare la dimensione di una dircectory in Linux con du
Identificare la dimensione di una dircectory in Linux con du

Identificare la dimensione di una dircectory in Linux con du

Tra i vari comandi che un sysadmin dovrebbe conoscere su Linux, c'è il comandi du (disk usage). Come potete capire dalla descrizione, si tratta di un comando che identifica lo spazio utilizzato.

C - C++ - Utilizzare la clipboard in Qt con QClipboard
Utilizzare la clipboard in Qt con QClipboard

Utilizzare la clipboard in Qt con QClipboard

Non so bene a cosa possa essere utile memorizzare la clipboard in un programma, però ero curioso di capire come funziona il componente Qt QClipboard! Ad essere sincero ho avuto un pò di difficoltà nel capire il senso, comunque vi mostro un esempio.

HTML - CSS - Compilare SASS online con SassMeister
Compilare SASS online con SassMeister

Compilare SASS online con SassMeister

Non sono un grande utilizzare di SASS e simili, in quanto utilizzo molto i framewrok CSS che arrivano già con quasi tutto a portata di mano. Però mi è capitato di doverlo usare, e li per li qualche difficoltà l'ho riscontrata. Più che altro nel capire bene cosa stessi facendo!

Network & Sniffing - Come riprendere i file parzialmente trasferiti su SSH utilizzando rsync
Come riprendere i file parzialmente trasferiti su SSH utilizzando rsync

Come riprendere i file parzialmente trasferiti su SSH utilizzando rsync

Supponiamo di voler trasferire tramite SSH un file di grandi dimensioni; ad un certo punto, la connessione cade, devo andare via, ecc. Come posso recuperare il download parziale per evitare di ricominciare da capo?

Java - Scrivere codice migliore in Java con Project Lombok
Scrivere codice migliore in Java con Project Lombok

Scrivere codice migliore in Java con Project Lombok

Supponiamo di avere questo codice in Java (che sappiamo tutti essere un linguaggio abbastanza prolisso): import java.util.Objects; public class Persona { private int id; private String username; private int eta; public Persona(int id, String username, int eta) { this.id = id; this.username = username; this.eta = eta; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getEta() { return eta; } public void setEta(int eta) { this.eta = eta; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Persona persona = (Persona) o; return id == persona.id && eta == persona.eta && Objects.equals(username, persona.username); } @Override public int hashCode() { return Objects.hash(id, username, eta); } @Override public String toString() { return "Persona{" + "id=" + id + ", username='" + username + ''' + ", eta=" + eta + '}'; } public static class PersonBuilder { private int id; private String username; private int eta; public PersonBuilder setId(int id) { this.id = id; return this; } public PersonBuilder setUsername(String username) { this.username = username; return this; } public PersonBuilder setEta(int eta) { this.eta = eta; return this; } public Persona build() { return new Persona(id, username, eta); } } }

Linux - Come risolvere l'errore 'modules.devname not found' in Arch Linux
Come risolvere l'errore 'modules.devname not found' in Arch Linux

Come risolvere l'errore 'modules.devname not found' in Arch Linux

Venerdi, come ogni venerdi prima di uscire da ufficio, aggiorno il mio pc con Arch Linux. Ma dall'andamento di pacman, mi sembra che qualcosa non sia andato bene. Quindi decido di riavviare subito per evitare sorprese il lunedi, ed ecco che il mio pc non si avvia più: Warning: /lib/modules/4.15.7-1-ARCH/modules.devname not found - ignoring Sconfortato, decido di rimandare tutto a stamattina; per fortuna ho risolto in poco tempo. Questa la procedura che ho seguito.

Software - Testare TLS/SSL con testssl
Testare TLS/SSL con testssl

Testare TLS/SSL con testssl

Lo script che vediamo adesso, è scritto tutto in BASH, ed è stato tesato anche su Windows tramite Cygwin: testssl.sh! In pratica ci permette di eseguire in automatico parecchi test sui nostri server circa TLS/SSL. Vediamo come usarlo (gli esempi sono su Linux). Prima di tutto scarichiamo il tutto da GitHub: $ git clone --depth 1 https://github.com/drwetter/testssl.sh.git

Java - Usare gli array nei file di properties in Java
Usare gli array nei file di properties in Java

Usare gli array nei file di properties in Java

Aveo la necessità di scrivere tutte le operazioni necessario come voce di un file di properties, e poi mettere dentro ad una finestra. Ovviamente non volevo usare una riga a voce, ma metterle tutte dentro ad una riga. I file di properties non sono come i JSON che hanno tipi di dato array. Però possiamo creare una stringa con un delimitatore, e poi spezzare questa stringa con Java.

Python - Usare i BoxLayout in Python Kivy
Usare i BoxLayout in Python Kivy

Usare i BoxLayout in Python Kivy

I BoxLayout sono dei layout che impostano i componenti in maniera orizzontale / verticale andando a riempire tutto lo spazio a disposizione. Quindi è un layout abbastanza automatico e semplice da usare; non è adatto se vogliamo interfacce grafiche complesse (probabilmente lo usareste in altri layout più complessi).

Javascript - AJAX - Trasformare URL in PDF con Node.js
Trasformare URL in PDF con Node.js

Trasformare URL in PDF con Node.js

Ho trovato una libreria per Node.js che ci permette di trasformare un URL (o meglio il suo contenuto) in PDF: URL to PDF Microservice! Ad essere più precisi, non si tratta di una libreria; ma praticamente di un programma intero che possiamo modificare per le nostre esigenze.

Progetti - MPPhotoGallery: visualizzatore di immagini in Java
MPPhotoGallery: visualizzatore di immagini in Java

MPPhotoGallery: visualizzatore di immagini in Java

Oggi ho caricato su GitHub un programmino per visualizzare le immagini con galleria. Ho usato Java (per la precisione compilato in Java 8).

Java - Parsing del codice Java con JavaParser
Parsing del codice Java con JavaParser

Parsing del codice Java con JavaParser

Vedendo la descrizione di JavaParser, possiamo vedere che il lavoro che svolge è molto più ampio dell'esempio che vederemo noi. Soprattutto da quanto ha inglobato anche JavaSymbolicSolver. Facendo un riassunto restrittivo, ci permette di eseguire il parsing di codice Java e di creare codice Java; nel verso senso della parola! Noi vederemo proprio questa situazione; partiamo aggiungendo il tutto tramite Maven: <dependency> <groupId>com.github.javaparser</groupId> <artifactId>javaparser-core</artifactId> <version>3.5.16</version> </dependency>

Software - Modificare e visualizzare tag MP3 con eyeD3
Modificare e visualizzare tag MP3 con eyeD3

Modificare e visualizzare tag MP3 con eyeD3

eyeD3 è sia un tool da riga di comando che una libreria per Python. Da quanto leggo nella documentazione, funziona dalla versione 2.7 di Python. Inoltre dovrebbe funzionare su tutte le piattaforme. Oggi vediamo il tool da riga di comando.

Kotlin - Usare DataGrid in TornadoFX e Kotlin
Usare DataGrid in TornadoFX e Kotlin

Usare DataGrid in TornadoFX e Kotlin

Oggi vediamo probabilmente l'unico componente data-drigven di TronadoFX: DataGrid! Sostanzialmente è simile al layout GridPane, nel senso che divide la schermata in righe e colonne. La differenza sta nel fatto che non è un layout, ma è un contenitore per dati. Ne vediamo un esempio basico, in cui mettiamo tre immagini.

Java - Nascondere la toolbar di HTMLEditor in JavaFX
Nascondere la toolbar di HTMLEditor in JavaFX

Nascondere la toolbar di HTMLEditor in JavaFX

Ho scoperto per sbaglio il componente HTMLEditor di JavaFX, che è in pratica un editor HTML completo di toolbar con tutti gli strumenti che vi servono. Mi ricorda molto TinyMCE per intenderci. Solo che io ho la necessità di mostrarlo in sola lettura, e non ho bisogno di mostrare la toolbar in questo caso. Ho scoperto che è possibile nasconderla, anche se non esiste un metodo diretto per farlo.

Java Android - Convertire SVG in VectorDrawable per Android
Convertire SVG in VectorDrawable per Android

Convertire SVG in VectorDrawable per Android

Android, per le icone o come risorse grafiche in generale, dispone anche dei cosidetti VectorDrawable in formato XML. SVG (Scalable Vector Graphics) è un formato molto simile, in quanto si basa anch'esso su XML.

Java - Disabilitare l'autofocus in JavaFX
Disabilitare l'autofocus in JavaFX

Disabilitare l'autofocus in JavaFX

Una cosa che mi ha sempre dato fastidio di JavaFX è il suo autofocus in avvio di finestra. Prendiamo ad esempio il layout che sto usando per un programma: <?xml version="1.0" encoding="UTF-8"?> <?import javafx.geometry.Insets?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.ListView?> <?import javafx.scene.control.Menu?> <?import javafx.scene.control.MenuBar?> <?import javafx.scene.control.MenuItem?> <?import javafx.scene.control.ScrollPane?> <?import javafx.scene.control.SeparatorMenuItem?> <?import javafx.scene.image.ImageView?> <?import javafx.scene.layout.BorderPane?> <?import javafx.scene.layout.VBox?> <?import javafx.scene.control.ToolBar?> <?import javafx.scene.control.Button?> <?import javafx.scene.image.Image?> <?import javafx.scene.control.Separator?> <?import javafx.scene.control.Hyperlink?> <?import javafx.scene.control.RadioButton?> <?import javafx.scene.control.ToggleGroup?> <BorderPane fx:id="mainPane" xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.mp.photogallery.MainController"> <top> <VBox> <children> <MenuBar fx:id="menuBar"> <menus> <Menu text="File"> <items> <MenuItem accelerator="Ctrl+O" onAction="#openDirectory" text="Open phpto directory"/> <MenuItem accelerator="Ctrl+P" onAction="#printImages" text="Print images"/> <SeparatorMenuItem/> <MenuItem accelerator="Ctrl+A" onAction="#about" text="About"/> <MenuItem accelerator="Ctrl+Q" onAction="#quit" text="Quit"/> </items> </Menu> </menus> </MenuBar> </children> <children> <ToolBar> <items> <Button text="Open photo directory" onAction="#openDirectory"> <graphic> <ImageView fitHeight="30.0" fitWidth="30.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="open.png"/> </image> </ImageView> </graphic> </Button> <Separator orientation="VERTICAL"></Separator> <Button text="Print images" onAction="#printImages"> <graphic> <ImageView fitHeight="30.0" fitWidth="30.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="print.png"/> </image> </ImageView> </graphic> </Button> <Separator orientation="VERTICAL"></Separator> <Button text="Create PDF" onAction="#createPdf"> <graphic> <ImageView fitHeight="30.0" fitWidth="30.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="pdf.png"/> </image> </ImageView> </graphic> </Button> <Separator orientation="VERTICAL"></Separator> <fx:define> <ToggleGroup fx:id="con_nome"/> </fx:define> <RadioButton text="With name" toggleGroup="$con_nome" fx:id="radioSi"/> <RadioButton text="Without name" toggleGroup="$con_nome" fx:id="radioNo" selected="true"/> </items> </ToolBar> </children> </VBox> </top> <center> <ScrollPane pannable="true" fx:id="imageScrollPane"> <content> <ImageView fx:id="currentImage" preserveRatio="true"/> </content> </ScrollPane> </center> <right> <VBox> <children> <Label fx:id="lblInfo" maxWidth="200" minWidth="200" wrapText="true"> <padding> <Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/> </padding> </Label> </children> <children> <Separator></Separator> </children> <children> <Hyperlink fx:id="lblMap" maxWidth="200" minWidth="200" wrapText="true" visible="false" onAction="#openMap"> <padding> <Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/> </padding> </Hyperlink> </children> </VBox> </right> <bottom> <ListView fx:id="listViewImages" maxHeight="200" orientation="HORIZONTAL"/> </bottom> </BorderPane>

PHP - Ignorare lo stop dell'utente in PHP
Ignorare lo stop dell'utente in PHP

Ignorare lo stop dell'utente in PHP

Il titolo probabilmente non identifica al 100% cosa vogliamo ottenere. In pratica vogliamo lanciare uno script PHP, chiudere il browser e fare in modo che lo script continui fino alla fine. Per farlo possiamo usare la funzione ignore_user_abort!

Javascript - AJAX - Usare aria2 in Node.js
Usare aria2 in Node.js

Usare aria2 in Node.js

Abbiamo già visto aria2 in questo articolo. Oggi vediamo come integrarlo in Node.js usando Javascript usando un modulo apposito: aria2.js! In verità dovrebbe essere utilizzabile anche lato client, ma non l'ho testato. Comunque, creiamo il nostro bel package.json: { "name": "TestAria2", "version": "1.0.0", "keywords": [], "author": "Mattepuffo", "contributors": [], "dependencies": { "aria2": "*" } }

Linux - Estrarre una sottostringa in Linux
Estrarre una sottostringa in Linux

Estrarre una sottostringa in Linux

Estrarre una substring (sottostringa) in Linux usando BASH, è veramente semplice. Basta usare la shell-expansion in questo modo: ${parameter:offset:length} Dove: il primo parametro è il testo da cui estrarre la substring il secondo è da dove partire il terzo è la lunghezza da estrarre

Java - Creare applicazioni console in Java con Text-IO
Creare applicazioni console in Java con Text-IO

Creare applicazioni console in Java con Text-IO

In questo articolo abbiamo visto come usare la classe Console per leggere l'input dell'utente in maniera interattiva. Ho trovato un'altra libreria che ci permette di fare la stessa operazione, ma in maniera più facile e con varie opzioni aggiuntive: Text-IO! Nella documentazione c'è scritto che si appoggia comunque a Console; quindi deve essere presente una console nel sistema. Nella pagina ufficiale ci stanno diverse altre alternative; però non mi sono ancora del tutto chiare.

Database & Server - Eseguire backup dei database in SQL Server
Eseguire backup dei database in SQL Server

Eseguire backup dei database in SQL Server

Non sono un grande esperto di SQL Server; è da parecchio che non lo uso. L'altro giorno, però, ho avuto a che fare con il backup di tutti i db. Guardando un pò e un pò la, ho tirato fuori uno script che mi ha permesso di eseguire questa operazione.

Linux - Identificare e terminare i processi zombie su Linux
Identificare e terminare i processi zombie su Linux

Identificare e terminare i processi zombie su Linux

In generale, quando avviamo un programma, succede questo: viene avviato crea uno o  più processi figlio svolge le sue operazioni al termine si chiude e libera le risorse usate Il programma termina quando il padre legge il segnale di uscita dei suoi figli.

Java - FXMLUtils: Classe Java per lanciare controller con FXML
FXMLUtils: Classe Java per lanciare controller con FXML

FXMLUtils: Classe Java per lanciare controller con FXML

La classe che ho postato oggi su GitHub, serve per lanciare finestre in JavaFX usando layout FXML. La classe ha due metodi statici: uno si limita a lanciare la finestra / controller l'altro ritorna FXMLLoader, utile se si voglio fare altre operazioni, come lanciare metodi del controller dopo aver avviato la finestra

C# - Asp.NET - Spostare file nel cestino in C#
Spostare file nel cestino in C#

Spostare file nel cestino in C#

Di default C# non ha metodi per spostare file nel cestino. Dobbiamo aggiungere il reference a Visual Basic ed usare la classe FileSystem del namespace Microsoft.VisualBasic.FileIO. Questa classe accetta diverse opzioni; noi metteremo queste: il file da cancellare (ovviamente) visualizzaremo il dialog per chiedere un ulteriore ok imposteremo l'invio al cestino (si potrebbe anche impostare direttamente la cancellazione, ma sarebbe inutile per il nostro esempio) cosa fare se si decide di non cancellare più il file (si potrebbe lanciare l'eccezione)

Java - Usare Google Maps in JavaFX
Usare Google Maps in JavaFX

Usare Google Maps in JavaFX

Sto creando un piccolo programmino per la visualizzazione delle immagini con JavaFX. Quello che volevo aggiungere era la possibilità di aprire una finestra con Google Maps centrata sulle coordinate della foto. Senza entrare nel dettaglio di come reperire le coordinate dalle immagini (sarà argomento di un eventuale altro articolo), vediamo come integrare Google Maps in JavaFX. In effetti è stato abbastanza semplice usando GMapsFX!

Kotlin - Usare le TreeView in TornadoFX e Kotlin
Usare le TreeView in TornadoFX e Kotlin

Usare le TreeView in TornadoFX e Kotlin

Oggi vediamo un altro componente di TornadoFXper Kotlin: le TreeView! Partiamo da una classe Persona che ha due parametri: il nome e la squadra per cui tifa: class Persona(val nome: String, val squadra: String) Fin qui nulla di speciale. Ma i componenti ad albero sono un pò più rognosi.

HTML - CSS - Tracciare l'utente con i CSS
Tracciare l'utente con i CSS

Tracciare l'utente con i CSS

In genere per tracciare l'utente si usa Javascript con un linguaggio lato server per immagazzinare i dati. Oggi vediamo come eseguire il tracciamento con i CSS. Ma in questo caso, per CSS, intendiamo più nello specifico CrookedStyleSheets! Potete vedere nella pagina linkata cosa si intende di preciso.

Linux - Eseguire comandi al riavvio in Linux con crontab
Eseguire comandi al riavvio in Linux con crontab

Eseguire comandi al riavvio in Linux con crontab

Prima di Systemd era più facile eseguire comandi al riavvio su Linux, in quanto bastava usare il file /etc/rc.local. Adesso, da quanto ho capito, questo file non si usa più. Però possiamo comunque eseguire comandi al reboot in maniera facile con crontab!

Java - Parsing della riga di comando in Java con getopt4j
Parsing della riga di comando in Java con getopt4j

Parsing della riga di comando in Java con getopt4j

Al momento l'ultima libreria che conosco attualmente per il parsing della riga di comando in Java: getopt4j! Facile da usare, ma con l'inconveniente che il controllo sui parametri obbligatori è a carico nostro. Se usate Maven: <dependency> <groupId>org.realityforge.getopt4j</groupId> <artifactId>getopt4j</artifactId> <version>1.2</version> </dependency>

Linux - Parsing della riga di comando in Linux con argbash
Parsing della riga di comando in Linux con argbash

Parsing della riga di comando in Linux con argbash

Quando creiamo i nostri script per la shell, è molto facile che dobbiamo raccogliere l'input dell'utente. Se vogliamo usare una cosa più avanzata di quella standard della shell, possiamo usare argbash! Per installarlo su Arch Linux: $ yaourt -Sy argbash

Android - Caricare file su Android da Linux
Caricare file su Android da Linux

Caricare file su Android da Linux

Purtroppo Android e Linux hanno qualche problemino di connessione rispetto a macOS e Windows. Quando attaccate il dispositivo al pc, potete scegliere tra queste opzioni: ricarica MTP PTP MIDI

Software - Cercare su Amazon da riga di comando
Cercare su Amazon da riga di comando

Cercare su Amazon da riga di comando

Diciamo che non mi vengono in mente molti motivi per cui usare questo programma, a parte forse eseguire ricerche da un server che non ha un DE installato. Però lo trovo comunque interessante, in quanto permette di eseguire ricerche senza una Amazon API key: amzSear! L'ho testato solo su Linux, essendo scritto in Python ed installandosi tramite pip, penso sia disponibile anche su altri OS. Per installarlo: # pip install amzsear

PHP - Usare file YAML in PHP
Usare file YAML in PHP

Usare file YAML in PHP

Da quanto ho capito la libreria per la manipolazione dei file YAML per PHP è quella che fa parte di Symfony. Questo non vuol dire che dobbiamo installare tutto il framework; possiamo installare solo quella libreria. Per farlo usiamo composer: $ composer require symfony/yam

Linux - Visualizzare cosa fa un comando prima di lanciarlo su Linux
Visualizzare cosa fa un comando prima di lanciarlo su Linux

Visualizzare cosa fa un comando prima di lanciarlo su Linux

Spesso lanciamo comandi presi in giro per il web senza effettivamente sapere cosa fanno. Ma se siamo su Linux, possiamo usare un programma scritto in Python che ci spiega preventivamente cosa fa il comando, bloccandone l'esecuzione: maybe! Installiamo tramite pip: # pip install maybe

Python - Connessione a PostgreSQL con Python
Connessione a PostgreSQL con Python

Connessione a PostgreSQL con Python

La libreria che useremo per la connessione a PostgreSQL in Python è psycopg2-binary, che non ho capito se è compatibile anche con la versione 2 di Python. Noi qui useremo la versione 3 (come sempre del resto). Prima di tutto installiamo la libreria con pip: # pip install psycopg2-binary

C# - Asp.NET - Array multidimensionali in C#
Array multidimensionali in C#

Array multidimensionali in C#

L'altro giorno stavo giochicchiando con C#, e nello specifico con gli array multidimensionali. Ho visto che in effetti non avevo mai fatto un esempio, neanche banale. Quindi lo faccio oggi; partiamo dal presupposto che è, appunto, un esempio basico.

Mondo Web - Cli.Fy: Ottenere informazioni su IP, email, domini, emoji e molto altro
Cli.Fy: Ottenere informazioni su IP, email, domini, emoji e molto altro

Cli.Fy: Ottenere informazioni su IP, email, domini, emoji e molto altro

Girovagando mi sono imbattuto su un servizio online che restituisce parecchie informazioni, anche molto diverse tra loro: Cli.Fyi! Il servizio è gratuito, e lo trovo alquanto curioso, vista la diversità di informazioni che si possono ottenere. Al momento sono elencati questi servizi: Crypto Currency Prices Email Address Information IP Address Information Media/URL Information Client Information String Hash Values Domain Name Information Date/Time Information Programming Language Links Country Information Popular Emojis

Javascript - AJAX - Introduzione a Polymer
Introduzione a Polymer

Introduzione a Polymer

Devo essere sincero: ho provato Polymer, una libreria Javascript per la creazione di componenti custom o il loro riutillizzo, giusto per curiosità, perchè non ho ancora ben capito quale può essere l'utilità di creare componenti custom per le pagine web. Comunque, ero curioso (visto anche che si tratta di una libreria creata da Google), e quindi ho deciso di testare almeno le basi. Io non l'ho installato sul pc, ma ho usato le librerie remote; nel caso di produzione è una pratica sconsigliata.

Python - Impostare un evento su Button in Python Kivy
Impostare un evento su Button in Python Kivy

Impostare un evento su Button in Python Kivy

Aggiungiamo qualche cosa alla nostra finestra di test per Python Kivy. Nell specifico una Label e un Button. Al click sul Button cambieremo il testo alla Label.

Kotlin - Formattare le celle in una TableView in TornadoFX e Kotlin
Formattare le celle in una TableView in TornadoFX e Kotlin

Formattare le celle in una TableView in TornadoFX e Kotlin

In questo articolo abbiamo visto come le TableView in TornadoFX e Kotlin. Oggi aggiungiamo un pezzo, vedendo come formattare le celle usando cellFormat. Faremo un esempio basico, in cui controlleremo se l'età è maggiore o minore di 18. In base a quello visualizzeremo l'età in verde o in rosso.

Linux - Auto spegnimento ed auto accensione in Linux
Auto spegnimento ed auto accensione in Linux

Auto spegnimento ed auto accensione in Linux

Impostare l'auto spegnimento e l'auto accensione in Linux è una cosa fattibile e neanche troppo difficile. Cominciamo con lo spegnimento che è più semplice. In sostanza si tratta di impostare una regola in cron; ad esempio questo spegne il pc tutti i giorni alle 23: 00 23 * * * /sbin/shutdown -h now

Java - Creare API REST in Java con Javalin.io
Creare API REST in Java con Javalin.io

Creare API REST in Java con Javalin.io

In questo articolo avevamo visto una introduzione a Java Spark. Oggi vediamo Javalin.io, che nasce proprio come fork di Spark. Forse questo mi è piaciuto di più, anche perchè nasce sia per Java che per Kotlin (di cui prima o poi vedremo un esempio.

Database & Server - Visualizzare il nome del mese in MariaDB
Visualizzare il nome del mese in MariaDB

Visualizzare il nome del mese in MariaDB

MariaDB (e anche MySQL) ha una funzione che ci consente di visualizzare il nome del mese partendo da una data: MONTHNAME. Vediamo un paio di esempi: > SELECT MONTHNAME('2018-02-13'); February

HTML - CSS - Prendere la data selezionata nel datepicker in HTML 5
Prendere la data selezionata nel datepicker in HTML 5

Prendere la data selezionata nel datepicker in HTML 5

Per fortuna anche Firefox è compatibile con la input date di HTML 5! In questo modo sto abbandondando plugin specifici solo per il calendario. Personalmente lo reputo un pò uno spreco (a meno di cose molto particolari).

Progetti - MP3-edit
MP3-edit

MP3-edit

Ho caricato oggi su GitHub un programmino per Windows e Linux (versioni a 64bit) per l'editing dei tag degli MP3: MP3-edit! Ho caricato sia i sorgenti che due zip, uno per ogni piattaforma.

Linux - Cambiare il runlevel di default in systemd
Cambiare il runlevel di default in systemd

Cambiare il runlevel di default in systemd

Prima di systemd, per cambiare il runlevel di default su Linux, bastava agire sul file /etc/inittab. Adesso questo file non è più usato, e per fare questa operazione dobbiamo usare gli strumenti forniti da systemd; nello specifico usaremo systemctl.