UIImageView – pinch to zoom in iOS Swift 3+

Avete una UIImageView e volete dare la possibilità all’utente di ingrandire l’immagine e muoverla con un “pizzico”?

SOLUZIONE: aggiungere una scrollview e tre righe di codice 🙂

  • Aggiungiamo una ScrollView che conterrà la UIImageView

ScrollView > ImageView

  • Modifichiamo il ViewController in modo da implementare il protocol (o interfaccia) UIScrollViewDelegate e aggiungiamo queste righe di codice:

Finito. Non è necessario altro.

Happy coding… 🙂

SCP Resume

Non so voi, ma a me capita spesso di trasferire file con scp da e verso un server remoto. La cosa più frustrante succede quando stai trasferendo un file abbastanza grande e la connessione scp cade. Spesso mi son chiesto perché scp non supporti il resume.

La soluzione, comunque, è abbastanza semplice: usare rsync! ;)

Esempio:

Se per trasferire il file abbiamo utilizzato scp:

per ripristinare la connessione:

Ancora più semplice se creiamo un alias all’ultimo comando come scpresume

Test Driven Development – Primi passi

Eccoci al secondo articolo sul TDD. Spero di avervi incuriosito nell’introduzione precedente. É arrivata l’ora di passare agli aspetti pratici.

Premessa

La tecnica del TDD è applicabile con diversi linguaggi, tecnologie e Framework. In questa serie di articoli useremo principalmente il linguaggio di programmazione JAVA. Vedremo l’utilizzo del TDD con diversi Framework e paradigmi di programmazione (orientata agli oggetti, orientata agli aspetti).

Prerequisiti per la prima lezione

Conoscenza dei fondamenti di programmazione a oggetti.

Superficiale conoscenza del linguaggio di programmazione JAVA (versione 7).

Test Driven Development

Ciclo di sviluppo

Nel primo articolo, abbiamo indicato qual è il ciclo di sviluppo utilizzando la tecnica del TDD:

Ciclo sviluppo TDD
Ciclo sviluppo TDD

Leggi tutto “Test Driven Development – Primi passi”

Test Driven Development – Introduzione

 

Red Pill TDD

Questo articolo, sarà il primo di una lunga serie sul Test Driven Development (Sviluppo Guidato dai Test) o TDD.

Il processo di sviluppo TDD ha fatto il suo debutto circa 18 anni fa come parte integrante dell’Extreme Programming (XP) ed è ora adottato da tutti i team di sviluppo che fanno uso di metodi agili, e non solo. Io ne ho sentito parlare non più di 10 anni fa ed ero molto scettico al riguardo. All’inizio facevo delle prove per conto mio, mai in applicazioni che avrei dovuto sviluppare per lavoro. Prima il mio approccio era: analisi su carta, sviluppo, test completo, debug, correzione, test, analisi, debug, sbattimento di testa, debug, correzione, sviluppo, … e così via. Producendo software per soldi (ovvero per lavoro), non pensavo ci fosse tempo per scrivere degli Unit Test o, addirittura, partire dal test!

Adesso non rilascio una classe se prima non ci sono degli Unit Test che la coprono (torneremo in seguito sul Code Coverage) e, addirittura, non scrivo codice se prima non c’è un test che fallisce.

Ok per i test, ma non scrivere codice se non c’è un test che fallisce? Ma che significa?

Leggi tutto “Test Driven Development – Introduzione”

Archivio partite di scacchi The Week In Chess dal numero 1 al numero 1118

The Week in Chess è un importante sito per chi gioca a scacchi. Raccoglie news dal mondo e pubblica le partite in corso. Inoltre, ogni settimana pubblica un file PGN con le partite giocate durante la settimana nei vari tornei internazionali.

Ho raccolto in un archivio tutti i TWIC dal numero 1 (ringrazio chi mi ha provveduto le partite dal twic numero 1 al twic 210) al 1118, ossia tutte le partite raccolte da The Week in Chess dal 1994 alla data dell’articolo.

Leggi tutto “Archivio partite di scacchi The Week In Chess dal numero 1 al numero 1118”

Java 8 РParte 1 РPerch̩ abbiamo bisogno del Lambda calcolo in Java?

Questo è il primo di una serie di articoli su Java 8. In questa serie di articoli analizzeremo alcune nuove caratteristiche del linguaggio e come utilizzarle al meglio.

Per un programmatore che ha esperienza con Java, sarà ormai chiaro che Java si sta avvicinando al paradigma funzionale. L’elevata espressività di un paradigma funzionale ci consentirà di migliorare il nostro codice  e soprattutto approcciare in maniera differente alcune problematiche.

Espressioni Lambda – λ-calcolo

Esempio confronto con lambda calcolo in Java

Leggi tutto “Java 8 – Parte 1 – Perché abbiamo bisogno del Lambda calcolo in Java?”