La Juventus ha perso la champions? Per forza i giocatori non si allenavano!

Allegri ha capito perchè ha perso champions, perchè tra un allenamento e l’altro qualcuno tagliava. Ma adesso per vincere il triplete prossimo anno ecco lo strumento che serve per monitorare la situazione: il nuovo potentissimo applicativo FWD traccia il potenziale campione, che consiste nel fare l’appello ogni mattina a Vinovo prima degli allenamenti! Bonucci c’è stamattina? Presente! Bernardeschi è di nuovo andato dalla ragazza? No, ce sta anche lui! De Sciglio si vede stamattina? SI non manca mai è uno di quelli che ha bisogno di allenarsi di più! Stavolta sono tutti sgamati e la champions non sfuggirà il prossimo anno. E dire che tutto ciò è stato reso possibile seguendo i tutorial di Umbriaway Consulting su PHP e MySQL. Quindi con un approccio pratico andiamo subito al sodo e diamo scacco matto in poche mosse ai problemi di Allegri.

Mossa numero 1: procurarsi un editor di testo, che sia Atom piuttosto che Visual Studio Code piuttosto che Sublime Tetx poco importa.

Mossa numero 2: scaricare XAMPP il server locale per testare l’applicazione

Mossa numero 3: iniziare a pensare alla struttura del progetto come file system e preoccuparsi di creare un file di configurazione per il nostro collegamento al DB, che chiameremo config.php

Mossa numero 4 scaricare dalla rete il noto framework bootstrap nella sua forma sintetica e inserire il nuovo file di nome inequivocabile bootstrap.min.css all’ interno di una cartella che chiameremo inc come inclusione, quindi il path completo del file sarà: inc\bootstrap.min.css ; per includere bootstrap nei nostri progetti serve anche il file JS che si può scaricare in rete quindi all’ interno della cartella INC troveremo alla fine anche inc\bootstrap.min.js

Mossa numero 5, includere JQuery nei nostri progetti, dalla rete scaricare il file jquery.min.js (il suo contenuto per fare copia e incolla in locale) e inserirlo nella stessa cartella di inclusione per cui avremo inc\jquery.min.js

Mossa numero 6, creare una nuova cartella che conterrà due nuovi file, Studenti.php e Database.php, il primo ci servirà per la gestione dei calciatori juventini e sul secondo avremo le coordinate di connessione al DB sfruttando le costanti presenti nel file di configurazione

Mossa N 7, creare nella root del file system appena creato il file primario definito come index.php e scrivere il codice strutturale tipico usando la semantica dei tag html, head, title, body, div includendo nell’ head anche il framework bootstrap con le sue classi da utilizzare nel body , quindi la parte superiore della ns pagina sarà:

/*
<?php include ‘inc/header.php’;
include ‘lib/Student.php’;
?>

Serial Student Student Roll Attendance
01 Rugani 10 P
A

03 Bernardeschi 11 P
A

04 De Sciglio 12 P
A

</div>

<?php include ‘inc/footer.php’ ?>

*/

Mossa numero otto, identificare la data degli allenamenti, questo si ottiene aggiungendo subito dopo la classe panel-body il seguente DIV con la classe predefinita di bootstrap:

/*

Date:

*/

Mossa numero 9, aggiungere il php dinamico con la funzione date per la stampa

/*

Date:

*/

Mossa numero dieci, aggiungere lo stile in linea per rendere esteticamente visibile la stampa video dell’ oggeto date:

/*

Date:

*/

A questo punto la parte statica del progetto é completata e non ci resta che dinamicizzare il tutto con il registro delle presenze dei calciatori in una delle prossime puntate. Buona champions a tutti!

Annunci

Dare scacco matto ai temi wordpress in 425 mosse, istruzioni per l’uso

web developer UmbriaNon ti piaccioni i temi wordpress tradizionali oppure costano troppo? Ne vuoi personalizzare uno a tuo uso e consumo? Vediamo come risolvere la questione in poche semplici mosse e guadagnare elo. Possono esserci varie soluzioni e diverse game per arrivare allo stesso obiettivo, quindi le mosse proposte qui vanno prese elasticamente in quanto nello sviluppo web si arriva allo stesso risultato seguendo diversi percorsi, quello proposto è solo una linea di sviluppo fra molte.

Mossa numero 1, creare una certella all’ interno del wp-content/themes con il nome del nuovo tema, in questo caso chess-themes

Mossa numero 2, creare nella root della cartella appena creata il file index.php responsabile della lettura del file, per gioco possiamo anche scrivere al suo interno dei tag di contenuto tipo <h1>Prima pagina in WP</h1>

Mossa numero 3, creare nella root del nuovo tema allo stesso livello di index.php il foglio di stile, quindo style.css

Mossa numero 4, digitare sul motore codex css e atterrare sulla pagina https://codex.wordpress.org/CSS andare dal menù di destra su design layout , cercare la voce theme development e fare il copia e incolla dell’ header proposto per personalizzarlo in base alle nostre esigenze, in questo caso l’originale proposto per il tema twentythirteen è:

/*
Theme Name: Twenty Thirteen
Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, flexible-width, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready
Text Domain: twentythirteen

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you’ve learned with others.
*/

Mossa numero 5, personalizzare queste informazioni in base alle proprie esigenze, questa parte verrà poi vista dalla preview dei temi dal pannello di controllo epr la selezione dalla dashboard, quindi nella nostra versione definitiva personalizzata, facendo attenzione a non dimenticare ilk blocco dei commenti per non interferire con il contenuto di css, il tutto diventa:

/*
Theme Name: Chess Theme
Theme URI: https://farwebdesign.com/chesstheme
Author: FWD & Umbriaway Consulting
Author URI: https://www.farwebdesign.com
Description: tema a topic scacchistico
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: bianco, nero. duale, aperture, campioni, finali, mediogioco
Text Domain: chesstheme
*/

Mossa numero 6, creo un file grafico rigorosamente di nome screenshot.png di dimensioni ottimizzate 1200 x 900 e la inserisco nella root della cartella chess-theme del nostro nuovo tema, in questo modo la preview del nostro template quando proporrà la selezione e la scelta del tema tramite l’attivazione avrò tutto quello che gli serve per proporsi in maniera corretta. A questo punto nonc i resta che lavorare sulla index.php

Mossa numero 7, creo la struttura base della pagina HTML, inserendo dentro il contenuto dimostrativo della mossa numero due:

/*
<!DOCTYPE html>
<html>
<body>

<h1>Prima pagina in WP</h1>

</body>
</html>
*/

Mossa numero 8, prendere le impostazioni generali del nostro sito, come TITOLO e descrizione sfruttando tutta la potenza della funzione predefinita bloginfo che accetta vari parametri come name, description e charset e le inserisco, iniziamo con il TITLE che non è altro il nome variabile del sito

/*
<!DOCTYPE html>
<html>
<head>
<title><?php bloginfo(‘name’);?></title>
</head>
<body>

<h1>Prima pagina in WP</h1>

</body>
</html>
*/

Mossa numero 9, inserisco la stessa informazione precedente in una intestazione header presente all’ interno del body:

/*
<!DOCTYPE html>
<html>
<head>
<title><?php bloginfo(‘name’);?></title>
</head>
<body>
<header>

</header>

<h1>Prima pagina in WP</h1>

</body>
</html>
*/

Con questo sistema una volta che andiamo dal menù generale impostazioni della dashboard di WP a cambiare il nome, tutte le modifiche verranno effettuate in automatico su tutte le pagine

Mossa numero 10, inserisco la descrizione sempre nell’ header, come si fa? Inserendo un parametro diverso:

/*
<!DOCTYPE html>
<html>
<head>
<title><?php bloginfo(‘name’);?></title>
</head>
<body>
<header>

<span><h4><?php bloginfo(‘description’);?><h4></span>
</header>
<h1>Prima pagina in WP</h1>
</body>
</html>
*/

Mossa numero 11, inseresco nell’ head il meta tag relativo al charset, con il parametro dedicato masticato sempre dalla funzione predefinita bloginfo():

/*
<!DOCTYPE html>
<html>
<head>
<meta charset=<?php bloginfo(‘charset’);?>
<title><?php bloginfo(‘name’);?></title>
</head>
<body>
<header>

<span><h4><?php bloginfo(‘description’);?><h4></span>
</header>
<h1>Prima pagina in WP</h1>
</body>
</html>
*/

A questo punto facendo tasto dx, ispezione da Chrome verrà visualizzato il charset UTF-8 inserito nella pagina dinamicamente

Mossa numero 12, completo la parte di intestazione inserendo una funzione predefina di WP che é wp_head(); che non fa altro che recuperare tutte le risorse indispensabili a questa sezione, come i collegamento ai link js e css per esempio, quindi il file index.php diventa:

/*
<!DOCTYPE html>
<html>
<head>
<meta charset=<?php bloginfo(‘charset’);?>
<title><?php bloginfo(‘name’);?></title>
<?php wp_head();?>
</head>
<body>
<header>

<span><h4><?php bloginfo(‘description’);?><h4></span>
</header>
<h1>Prima pagina in WP</h1>
</body>
</html>
*/

A questo punto se andiamo ad analizzare questa pagina costruita dinamicamente sempre dalla seziona ispeziona di Chrome ci acoorgiamo che la pagina statica ha quasi tutto ciò che gli serve, una volta che è stata parserizzata dal browser. Attenzione a non fare confusione tra HEAD e HEADER, la prima parola fa riferimento a una sezione strutturale della pagina che contiene tutta una serie di meta informazioni e i collegamento alle librerie esterne, la seconda a un tag semantico presente all’ interno del body.

Mossa numero 13, aggiungere un tag semantico footer per il copyright ad esempio, e curiamo meglio il nome delle classi, ad esempio è buona norma dare il nome alla scatola esterna di container e a quella interna main, dopodichè facciamo conoscenza di una nuova funzione di Wp, quella che setta il tempo the_time():

/*
<!DOCTYPE html>
<html>
<head>
<meta charset=<?php bloginfo(‘charset’);?>
<title><?php bloginfo(‘name’);?></title>
<?php wp_head();?>
</head>
<body>
<header>

<span><h4><?php bloginfo(‘description’);?><h4></span>
</header>
<h1>Prima pagina in WP</h1>
<footer>

&copy –

</footer>
</body>
</html>
*/

Mossa numero 14, inserisco una funzione che mi legge le risorse/librerie esterne come JQuery alla fine del body, perché come sappiamo i tempi di caricamento della pagina si riducono, funzione che é simile a <?php wp_head();?> e che si chiama wp_footer();

/*
<!DOCTYPE html>
<html>
<head>
<meta charset=<?php bloginfo(‘charset’);?>
<title><?php bloginfo(‘name’);?></title>
<?php wp_head();?>
</head>
<body>
<header>

<span><h4><?php bloginfo(‘description’);?><h4></span>
</header>
<h1>Prima pagina in WP</h1>
<footer>

&copy –

</footer>
<?php wp_footer();?>
</body>
</html>
*/

A questo punto se facessi tasto destro ispeziona da chrome vedrei che alla fine della pagina sono stati inseriti dei link di collegamento, quindi tutto funziona! A questo punto se visualizzassi a video mi ritroverei la barra di amministrazione in alto che prima non c’era, questa perchè la sidebar è richiamata quando abbiamo aggiunto l’istruzione <?php wp_footer();?>

Mossa numero 15, lavorare sui contenuti con i LOOP e i controlli condizionali, cioè il programma deve tradurre l’espressio “guardami se ci sono i contenuti e mostrali se non vedi nulla dammi un messaggio di avvertimento”, il tutto si traduce in materiale ciclabile, usiamo nel nostro script la sintassi STRINGA che prevede l’uso dei due punti alla fine delle incorporazioni php, toglierò quindi il mio codice di prova <h1>Prima pagina in WP</h1> e lo sostituisco:

/*
<!DOCTYPE html>
<html>
<head>
<meta charset=<?php bloginfo(‘charset’);?>
<title><?php bloginfo(‘name’);?></title>
<?php wp_head();?>
</head>
<body>
<header>

<span><h4><?php bloginfo(‘description’);?><h4></span>
</header>

“>

 

Articolo creato da |

<?php endif; ?>

<p><?php the_excerpt(); ?></p>

<a class=”btn” href=”<?php the_permalink(); ?>”>Leggi tutto…</a>

</article>

<?php endwhile; ?>

<?php else : ?>

<?php echo wpautop(‘ops…non ho trovato articoli!’); ?>

<?php endif; ?>

</div>

<footer>

&copy –

</footer>
<?php wp_footer();?>
</body>
</html>
*/

Le funzioni have_posts(), the_post(), the_permalink(), the_title(), the_author(), the_time(argomenti) con i parametri vari di formattazione, the_tags(), has_post_thumbnail(), the_post_thumbnail(‘thumbnail’), the_excerpt(), wpautop sono tutti metodi che stampano sulla pagina tutte quelle informazioni tipiche di un blog che ha delle news che hanno un titolo e che devono ciclare con il nome dell’ autore, una data di creazione, dei contenuti, una immagine piccola che lo identifica etc. La mossa numero 14 è quella che nel gergo scacchistico incasina tutto il piano di gioco, una fase complessa del mediogio che ha bisogno di articolare e pianificare tutta una serie di sottopiani per arrivare all’ obiettivo, quindi per ora il codice dinamico che cicla i contenuti non costituisce certo lo scacco matto finale che ci eravamo prefissi, ma solo una tappa intermedia prima di quella che viene definita in gergo scacchistico miniatura, il tutto verrà analizzato in uno dei prossimi articoli

Programmazione procedurale oppure OOP? This is the problem!

La programmazione ad oggetti ha sempre suscitato vere e proprie guerre concettuali, tra sostenitori delle due fazioni. C’è chi sostiene che senza OOP non si potrebbero mettere in piedi dei progetti complessi. E c’è chi sostiene che la procedurale basta e avanza per spedire una mail con gli allegati. Senza la programmazione procedurale non si potrebbe imparare l’Object Oriented Programming che è solo un approccio diverso per fare cose diverse. OOP non è un modo migliore per programmazre, è solo un modo diverso, dipende dal tipo di progetto che si vuole mettere in piedi. OOP è una filosofia di programmazione. Per fare OOP devi astrarre le cose. Casa, auto, stufa sono oggetti concreti con cui familiarizziamo ogni giorno. Per andare sulla luna ci sono decine di fasi e sottofasi in sequenza come per fare una torta o un semplice caffè. OOP richiede tutta una pianificazione anticipata a tavolino, se dico sedia devo definire le proprietà dell’ oggetto come colore e numero di gambe e i metodi o funzioni o azioni da mettere in atto: spostare la sedia, rovesciare la sedia etc, in base alla manipolazione dei dati che intendiamo operare. La programmazione procedurale è istintuale, la OOP è un paradigma, prima mi devo interrogare su cosa devo fare, poi devo identificare gli oggetti e poi decidere come sono definiti e quali azioni devono effettuare. Solo quando ho tutto chiaro e ho pensato i blocchi utili e necessari potrò mettere in pratica il mio cidce. OOP è una pianificazione fatta in anticipo. I problemi si risolvono con la tastiera sulla procedurale, mentre in OOP basta all’ inizio solo penna e foglio di carta. Su OOP dire classe indica la definizione della classe, mentre l’istanza della classa p il vero e proprio ogetto. Le proprietà sono le variabili con dei valori e i metodi sono funzioni interne alla definizione della classe. La classe è la ricetta di un budino , dove avremo la lista degli ingredienti e la somma delle operazioni da affettuare per arrivare al prodotto reale. Ad esempio la classe clienti nel nostro diagramma UML avrà un nome, un cognome, un indirizzo, una mail, un numero di telefono e dei metodi come recupero indirizzo o mail o cambio anagrafica. Le ricette sono tutte diverse, così come sono diversi gli ingredienti e le funzionalità. Definire le proprietà e le funzionalità è il core di una definizione di una classe. Con OOP posso scomporre un problema in tanti piccoli problemi e posso riutilizzare il codice per le stesse funzionalità. La manutenzione del codice viene semplificata e anche il debug è meno complesso. A questo punto la domanda è: come viene definita una classe in PHP? Ad esempio se abbiamo un libro come dobbiamo astrarre tutte le problematiche annesse? Un libro ha delle proprietà come titolo, quantità a magazzino, codice isbn, autore, costo, numero di pagine, immagine di copertina e ha anche dei metodi come sfogliare le pagine, la condizione delle pagine etc. Idem per una classe AUTO dove ho le proprietà dell’ oggetto da istanziare come colore interno, colore esterno numero di ruote e metodi come messa in moto etc. Anche nelle operazioni di shopping cart avrò accesso ai sistemi di login e di registrazione dei dati, a un carrello che memorizza le operazioni sugli articoli, l’invio per i pagamenti e ciascuno di questi blocchi può essere scomposto in sottoblocco per individuare le responsabilità che ogni oggetto deve avere tipo il cliente spedisce i dati, il cliente registra i dati. Ad esempio l’oggetto ordine deve specificare i dettagli effettuati, l’oggetto di verifica di spedizione sarà a carico dell’ oggetto mail e così via. Bisogna quindi stabilire le proprietà e le funzionalità per ogni oggetto. L’oggetto LOGIN deve avere tutta una serie di caratteristiche, un tipo di codifica per oscurare le pwd, un sistema di verifica per vedere se quella mail esiste e molto altro. Occorre definire quinti tutte le possibilità che il nostro oggetto ha a sua disposizione. Quindi si parte dal nome della classe, si definiscono le prorietà e infine i metodi. La definizione della classe non è l’oggetto che va istanziato. L’oggetto cliente ha una sua anagrafica per esempio. La classe libro per esempio potrà avere questo suo elenco di proprietà che possono anche essere inizializzate ma senza la creazione dell’ oggetto sarebbero inutili, senza i metodi che le leggono e le scrivono. Con public e private definisco il livello di riservatezza delle variabili, si parla di accessibilità rispetto alla visibilità interna o esterna, con delle variabili che in caso di private saranno consumabili solo all’ interno della classe:

/*
<?php
class Libro {
public $titolo;
public $autore;
public $codiceisbn;
public $prezzo;
private $quantita;
}
*/

classe inserita all’interno di una cartella arbitraria che verrà linkata sulla pagina di visualizzazione in questo modo, da notare l’uso della parola chiave NEW che crea l’oggetto vero e proprio:

/*
<?php
require_once “Classi/Libro.php”;
$nlibro = new Libro();
//echo $nlibro;
$nlibro -> titolo = ‘Le tigri di Mompracem’;
var_dump($nlibro);
*/

Una volta che abbiamo la ricetta per realizzare la torta possiamo istanziare e accedere alle proprietà. SI crea quindi la definizione della classe e si istanzia per creare un oggetto reale con la parola chiave NEW. La sintassi é $oggetto=NEW nomeclasse(); che non ha ancora la definizione delle proprietà al suo interno. Per accedere alle proprietà della classe dall’ esterno posso puntare solo sulle variabili di tipo PUBLIC, come visto sopra, omettendo al simbolo del dollaro menzionando la variabile: $nlibro -> titolo = ‘Le tigri di Mompracem’; in questo modo vado a travasare il contenuto della variabile nel vaso corrispondente, perché le variabili sono zone di memoria che conservano i dati.

E se volessi inserire nella definizione della classe un metodo tipo leggoTitolo con visibilità pubblica quindi accessibile dall’ esterno? Dovrò inserire una funzione interna alla classe che mette in moto dei metodi o delle azioni che fanno delle cose, la sintassi sarà $oggetto -> metodo:

/*
<?php
class Libro {
public $titolo;
public $autore;
public $codiceisbn;
public $prezzo;
public $quantita;

public function leggoTitolo() {
// return $titolo;
return $this->titolo;
}

}
*/

A questo punto la spontanea domanda, che lo script risolve, come faccio ad accedere a una variabile interna di una classe, trova la sua risoluzione. Bisogna fare molta attenzione alla sintassi perché va introdotta un’ altra parola magica: THIS! Con this possiamo accedere alle variabili interne di una classe: return $this->titolo; e far riferimento alla proprietà dell’ oggetto corrente.

E sevolessi stampare a video titolo e autore dopo aver settato le proprietà grazie a this? Vediamo la definizione della classe e il suo file di lettura:

/*
<?php
class Libro {
public $titolo;
public $autore;
public $codiceisbn;
public $prezzo;
private $quantita;
public function leggoTitoloAutore() {
// return $titolo;
return $this->titolo . ‘-‘ . $this->autore;
}
}
*/

/*
<?php
require_once “classi/Libro.php”;

$nlibro = new Libro();
$nlibro->titolo = ‘Sandokan’; // con this posso dare un valore alla prorpietà
$nlibro->autore = ‘Salgari’;
echo $nlibro->leggoTitoloAutore();
*/

 

Il risultato finale sarà il seguente: https://www.farwebdesign.com/PHPOOP/5/

 

 

Event “CSP Inverno 2018/2019 – Girone 37”: Faraoni Enrico vs Mladamar, C36, miniatura detta l’immortale condominiale

[Site “Chess.com”]
[Date “2019.01.06”]
[White “enricof8”]
[Black “mlamdmar”]
[Result “1-0”]
[ECO “C36”]
[EndDate “2019.01.08”]

1.e4 e5 2.f4 d5 3.exd5 exf4 4.Nf3

C36: King’s Gambit Accepted: Modern Defense

4..Qxd5 5.Nc3 il nero a questo punto deve scegliere le sorti del suo destino

5..Qd8?!

(+0.13 → +0.74) Inaccuracy. A better move was 5… Qe6+ a cui segue 6 Rf2! Al bianco certamente non dispiace rivedere tornare un pezzo avversario sulla casa di partenza se vi é un motivo scientifico conosciuto come sviluppo dei pezzi un motivo ci sarà, anche se é pur vero che andare troppo in giro a volte potrebbe essere controproducente

6.d4 g5

(+0.79 → +2.36) Inaccuracy. A better move was 6… Bd6 7.Bc4 h6 8.Ne2 g5 9.h4 g4 10.Ne5 Bxe5 11.dxe5

7.Bc4 Be6?

Una novità teorica antiposizionale la teoria riconosce 7..Ag7 e 7..De7

8.Bxe6

Il Bianco può anche giocare 8 d5 seguita da De2+ per avere un vantaggio, ma la mossa del testo evidenzia la debolezza della diagonale e8-h5 oltre a lasciare una brutta debolezza in e6

8..fxe6 9.O-O

meglio l’energica 9 h4!

9..Nc6 10.Re1

(+2.37 → +1.14) Inaccuracy. A better move was 10. d5 exd5 11 De1! con attacco, l’idea è quella di andare in c3 con la donna

10…Qf6?

(+1.02 → +3.45) Mistake. The best move was 10… g4 a cui il bianco potrebbe seguire 11.Bxf4 con l’idea di sacrificare una torre con 11..gf3 12 Te6! Rf7 13 Df3 Re6 14 d5 e forte attacco, sembrerebbe meglio quindi 10 ..Rf7! con sostanziale equilibrio o squilibrio che dir si voglia

11.Nd5 chiaro vantaggio bianco

11..Qh6?

il bianco muove e vince con una architettura alla Renzo Piano

(+4.34 → +10.22) Mistake. The best move was 11… Qd8 12.Rxe6+ Rd7 (12..Rf7 13 Txc6! Dd5 14 Tc7+ con attacco; in questa variante anche 13 Cc7 con l’idea Cg5 é giocabile ma meno incisiva) 13 De2 con attacco

12.Rxe6+ e a seguire il doppio di cavallo in c7

1-0

CSS per aspiranti programmatori: C – modellazione del testo

Un riassunto sui CSS si trova all’ indirizzo https://umbriawaypotenzia.wordpress.com/2018/12/17/css-per-aspiranti-programmatori-b-font/ ; la proprietà text-align specifica l’allineamento orizzontale del testo in un elemento. Per impostazione predefinita, il testo sul tuo sito web è allineato a sinistra. Tuttavia, a volte potresti richiedere un allineamento diverso. i valori delle proprietà di allineamento del testo sono i seguenti: sinistra, destra, centro e giustificazione.

The HTML:

<code>
<p class=”left”>This paragraph is aligned to <strong>left.</strong></p>
<p class=”right”>This paragraph is aligned to <strong>right.</strong></p>
<p class=”center”>This paragraph is aligned to <strong>center.</strong></p>
</code>

The CSS:

<code>
p.left {
text-align: left;
}
p.right {
text-align: right;
}
p.center {
text-align: center;
}
</code>

Quando l’allineamento del testo è impostato su “giustificare”, ogni linea viene allungata in modo che ogni riga abbia larghezza uguale e i margini sinistro e destro siano diritti (come nelle riviste e nei giornali). La proprietà di allineamento verticale imposta l’allineamento verticale di un elemento. I valori comunemente utilizzati sono in alto, in mezzo e in basso. L’esempio seguente mostra come allineare verticalmente il testo tra la tabella.

The HTML:

<code>
<table border=”1″ cellpadding=”2″ cellspacing=”0″ style=”height: 150px;”>
<tr>
<td class=”top”>Top</td>
<td class=”middle”>Middle</td>
<td class=”bottom”>Bottom</td>
</tr>
</table>
</code>

The CSS:

<code>
td.top {
vertical-align: top;
}
td.middle {
vertical-align: middle;
}
td.bottom {
vertical-align: bottom;
}
</code>

La proprietà vertical-align accetta anche i seguenti valori: baseline, sub, super,% e px (o pt, cm).
L’esempio seguente mostra la differenza tra loro.

HTML:

<code>
<p>This is an <span class=”baseline”>inline text</span> example.</p>
<p>This is a <span class=”sub”>sub line text</span> example.</p>
<p> This is a <span class=”super”>super line text</span> example.</p>
<p> This is a <span class=”pixel”>pixel</span> example.</p>
</code>

CSS:

<code>
span.baseline {
vertical-align: baseline;
}
span.sub {
vertical-align: sub;
}
span.super {
vertical-align: super;
}
span.pixel {
vertical-align: -10px;
}
</code>

La proprietà di allineamento verticale non agisce allo stesso modo per tutti gli elementi. Ad esempio, alcuni stili CSS aggiuntivi sono necessari per gli elementi div.

HTML:



This text is aligned to the middle


</div>

CSS:

.main {
height: 150px; width: 400px;
background-color: LightSkyBlue;
display: inline-table;
}
.paragraph {
display: table-cell;
vertical-align: middle;
}

display: inline-table; e display: table-cell; le regole di stile vengono applicate per far sì che la proprietà di allineamento verticale funzioni con le div. La proprietà text-decoration specifica come verrà decorato il testo. I valori comunemente usati sono:

none – Il valore predefinito, questo definisce un testo normale
inherit: eredita questa proprietà dall’elemento padre
overline – Disegna una linea orizzontale sopra il testo
underline – Disegna una linea orizzontale sotto il testo
line-through – disegna una linea orizzontale attraverso il testo (sostituisce il tag HTML <s>)

L’esempio seguente mostra la differenza tra ciascun valore.

HTML:

<code>
<p class=”none”>This is default style of the text (none).</p>
<p class=”inherit”>This text inherits the decoration of the parent.</p>
<p class=”overline”>This is overlined text.</p>
<p class=”underline”>This is underlined text.</p>
<p class=”line-through”>This is lined-through text.</p>
</code>

CSS:

<code>
p.none {
text-decoration: none;
}
p.inherit {
text-decoration: inherit;
}
p.overline {
text-decoration: overline;
}
p.underline {
text-decoration: underline;
}
p.line-through {
text-decoration: line-through;
}
</code>

È possibile combinare i valori di sottolineatura, overline o line-through in un elenco separato dallo spazio per aggiungere più linee di decorazione. Un altro valore della proprietà della decorazione del testo è lampeggiante che fa lampeggiare il testo. La sintassi CSS si presenta così: text-decoration: blink;
Questo valore è valido ma è deprecato e la maggior parte dei browser lo ignora. La proprietà text-indent specifica quanto spazio orizzontale deve essere lasciato prima dell’inizio della prima riga del testo. I valori delle proprietà sono la lunghezza (px, pt, cm, em, ecc.),% e inherit.

HTML:

<p>This is an example of <strong>text-indent </strong> property.
First line of our text is indented to the right in 60px. Besides pixels you can also use other measurement units, like pt, cm, em, etc. </p>

CSS:

p {
text-indent: 60px;
}

La proprietà text-shadow aggiunge ombra al testo. Prende quattro valori: il primo valore definisce la distanza dell’ombra nella direzione x (orizzontale), il secondo valore imposta la distanza nella direzione y (verticale), il terzo valore definisce la sfocatura dell’ombra e il quarto valore imposta il colore.

HTML:

<h1>Text-shadow example</h1>

The CSS:

h1 {
color: blue;
font-size: 30pt;
text-shadow: 5px 2px 4px grey;
}

In the example above, we created a shadow using the following parameters:

5px – the X-coordinate
2px – the Y-coordinate
4px – the blur radius
grey – the color of the shadow

Per aggiungere più di un’ombra al testo, aggiungi un elenco di ombre separate da virgole. Quando si lavora con le ombre, è possibile utilizzare qualsiasi formato di colore supportato da CSS. Per gli offset xey, è possibile utilizzare vari tipi di unità (come px, cm, mm, in, pc, pt, ecc.). Sono supportati anche i valori negativi. L’esempio seguente crea un’ombreggiatura blu, due pixel più in alto del testo principale, un pixel a sinistra e una sfocatura 0.5em, html:

<h1>Text-shadow with blur effect</h1>

CSS:

h1 {
font-size: 20pt;
text-shadow: rgba(0,0,255,1) -1px -2px 0.5em;
}

Internet Explorer 9 e versioni precedenti non supportano la proprietà text-shadow. La proprietà CSS di trasformazione del testo specifica come inserire in maiuscolo il testo di un elemento. Ad esempio, può essere usato per far apparire il testo con ogni parola in maiuscolo.

HTML:

<p class=”capitalize”>
The value capitalize transforms the first
character in each word to uppercase;
all other characters remain unaffected.
</p>

CSS:

p.capitalize {
text-transform: capitalize;
}

Usando la proprietà text-transform puoi far apparire il testo in lettere maiuscole o minuscole. Ecco un esempio:

HTML:

<p class=”uppercase”>This value transforms all characters to uppercase.</p>
<p class=”lowercase”>This value transforms all characters to lowercase.</p>

CSS:

p.uppercase {
text-transform: uppercase;
}
p.lowercase {
text-transform: lowercase;
}

Il valore none non produrrà alcun effetto. La proprietà letter-spacing specifica lo spazio tra i caratteri in un testo. I valori possono essere impostati come: – normal definisce lo stile predefinito senza spazi aggiuntivi tra i caratteri

– length definisce uno spazio aggiuntivo tra i caratteri usando unità di misura come px, pt, cm, mm, ecc .;
– inherit eredita la proprietà dal suo elemento padre;

HTML:

<code>
<p class=”normal”>This paragraph has no additional letter-spacing applied.</p>

<p class=”positive “>This paragraph is letter-spaced at 4px.</p>
</code>

CSS:

p.normal {
letter-spacing: normal;
}

p.positive {
letter-spacing: 4px;
}

Per definire uno spazio aggiuntivo tra i caratteri, sono ammessi anche valori negativi. Ecco un esempio che dimostra la differenza tra valori positivi e negativi:

HTML:

<code>
<p class=”positive”>This paragraph is letter-spaced at 4px.</p>
<p class=”negative”>This paragraph is letter-spaced at -1.5px</p>
</code>

CSS:

p.positive {
letter-spacing: 4px;
}
p.negative {
letter-spacing: -1.5px;
}

Verifica sempre i tuoi risultati, per assicurarti che il testo sia leggibile.La proprietà word-spacing specifica lo spazio tra le parole in un testo. Proprio come la proprietà letter-spacing, puoi impostare i valori di spaziatura delle parole come normali, length ed inherit.

HTML:

<code>
<p class=”normal”>This paragraph has no additional word-spacing applied.</p>
<p class=”px”>This paragraph is word-spaced at 30px.</p>
</code>

CSS:

p.normal {
word-spacing: normal;
}
p.px {
word-spacing: 30px;
}

Quando si utilizza una spaziatura strana ed è necessario mantenere il paragrafo selezionato con una normale spaziatura delle parole, viene solitamente utilizzata l’opzione normale. Per definire uno spazio aggiuntivo tra le parole, è possibile utilizzare valori di misurazione positivi come px, pt, pc, cm, mm, pollici, em ed ex.
Sono ammessi anche valori negativi. Ecco un esempio per mostrare la differenza:

HTML:

<code>
<p class=”positive”>This paragraph is word-spaced at 20px.</p>
<p class=”negative”>This paragraph is word-spaced at -5px.</p>
</code>

The CSS:

p.positive {
word-spacing: 20px;
}
p.negative {
word-spacing: -5px;
}

La proprietà white-space specifica come viene gestito lo spazio bianco all’interno di un elemento. I valori possono essere impostati come normali, inherit, nowrap, ecc. Il valore nowrap fa sì che il testo continui sulla stessa riga fino a quando non viene rilevato un tag <br> e comprime anche tutte le sequenze di spazi bianchi in un singolo spazio bianco.

HTML:

<code>
<p>
This paragraph has multiple spaces and
a line break, but it will be ignored, as we used the nowrap value.
</p>
</code>

CSS:

p {
white-space: nowrap;
}

Il testo continuerà sulla stessa riga fino a quando non viene rilevato un tag <br />.

La proprietà white-space supporta anche altri valori:

il pre-testo avvolge solo le interruzioni in linea e lo spazio bianco pre-riga: il testo si avvolgerà dove c’è un’interruzione nel codice, ma lo spazio bianco extra è ancora ignorato pre-wrap: il testo si avvolge quando necessario e le interruzioni di riga. Ecco un esempio in cui vengono utilizzati tutti e tre i valori:

HTML:

<p class=”pre”>
In the markup we have multiple spaces and a line break.
</p>
<p class=”preline”>
In the markup we have multiple spaces and a line break, but in the result multiple spaces are ignored.
</p>
<p class=”prewrap”>
In the markup we have multiple spaces and a line break.
</p>

CSS:

p.pre {
white-space: pre;
}
p.preline {
white-space: pre-line;
}
p.prewrap {
white-space: pre-wrap;
}

Il valore pre-wrap si comporta come il valore pre, tranne che aggiunge interruzioni di riga aggiuntive per impedire al testo di uscire dalla casella dell’elemento.

Nocera Ombrosa: location e cornice contestuale

Chi ha seguito qualche puntata di Blu Notte condotta dal singolare Lucarelli sa bene che dopo una analisi efferata sull’ ennesimo mistero di turno (o delitto), il caso ha bisogno di essere contestualizzato per inquadrare meglio i comportamenti della vittima e del suo aggressore. Dopo che all’interlocutore spettatore appare chiaro che nessuno sa perchè quella cosa lì inquietante è accaduta, non resta che cercare risposte impossibili nell’ ambiente e nella città che ha fatto da cornice al misfatto, scavando sotto la superfice del visibile. Come ha detto qualcuno c’è del marcio a Nocera Ombrosa (ma non era la Danimarca?!) e quindi non ci resta che focalizzare meglio questa bellissima cornice naturale che riversa sui suoi abitanti tanta bellezza e beatitudine celeste (non a tutti è concesso di svegliarsi senza la sveglia ma solo con il gallo sotto casa) per andare a cercare come fa Lucarelli l’antimateria dell’ anomalia criminale. Ma come se non è accaduto nulla a Nocera Ombrosa perchè iniziare il lavoro di Intelligence in anticipo? Mettiamola così se vivi a Nocera Ombrosa se non altro anche solo dalle suggestioni insite nel nome della località, qualcosa di oscuro e di strisciante aleggia a prescindere, altrimenti come facciamo noi autori a tirare su mirabolanti storie di noir locale? E quindi non ci resta che studiare e annusare la cornice contestuale in cui il detective privato Mauro Carpa è costretto a muoversi suo malgrado per risolvere contro la sua volontà casi inquietanti. A Nocera Ombrosa si continua ad andare avanti nonostante tutto, anche se si ha l’impressione di stare fermi e che l’abitacolo della coscienza collettiva si sia arenato di fronte alle sabbie mobili, con le ruote che girano a vuoto nel fango paludoso dell’ arretratezza di sviluppo. Del resto se Roma da sola supera abondantemente come numero di abitanti LA SOMMA DI TRE REGIONI come Molise, Umbria, Abruzzo un motivo ci sarà, nel senso che LOS ANGELES ha un’ altra latitudine e longitudine rispetto alle coordinate di NOCERA OMBROSA e nonagenzia web marketing è un caso che tra terremoto, anziani morenti, disoccupazione, spopolamento il territorio sia ineluttabilmente votato a una sorta di estinzione che di fantascientifico ha ben poco, perchè trattasi di processo in atto. In un contesto simile è in aumento il crescente fenomeno della rapina a sparute abitazioni dislocate in maniera isolata sul territorio, con le forze dell’ ordine sovraccariche come organico. Le lacerazioni a carattere politico che vedono da una parte ergersi i difensori dell’ integrità morale (i buonisti) che non è raro poi immortalare su qualche quotidiano locale perchè soggetto a reati e dall’ altra gli inesplosi di una tolleranza impossibile ormai tapirizzati dal fenomeno immigrazione contribuscono a creare un clima di tensione dove la barca sembra aver perso orientamento e coordinazione nella navigazione. Populismo, immigrazione irregolare, disoccupazione sono concime ideale per un disagio di sottofondo che favorisce l’atto criminale e non solo in zona Fontivegge a PG dove droga e prostituzione catalizzano l’attenzione di consumatori dediti all’ autodistruzione e alle pratiche di degenerazione. Così ai pochi imprenditori locali non resta che dormire accanto ai macchinari per evitare l’ennesimo furto organizzato (a Terni ad esempio non è stato rinnovato un porto d’armi a un gruppo di boscaioli costretti a vivere 4 mesi all’ anno in un deposito in mezzo ai boschi per esempio, sempre per restare in tema di felice commistione tra realtà vera della cronaca e quella immaginata nella finzione), mentre i giovani scapestrati senza arte nè parte e forse anche con qualche grillo per la testa gridano al populismo del reddito di inclusione. Poco distante da Nocera Ombrosa qualche cervello in avaria lancia da un viadotto una giovane figlia dopo aver ucciso la moglie, ma il disagio sociale è ovunque, si sente addirittura cavalcando in auto le strade locali piene di buche da asfaltare e potenzialmente pericolose. Ovviamente questa pittura poco idilliaca non deve ingannare perchè nel frattempo la filiera del turismo porta in tutta l’Umbria innovazione e sviluppo, con riqualificazione di aree dimesse e progettazione di itinerari culturali, l’unico possibile quando nell’ indotto di Valle Ombrosa chiudono aziende importanti come la Merloni (ops! Ma non era la finction? Forse caro autore dovresti chiamarla in un altro modo!) per esempio. E quindi? L’ossimoro bellezza primordiale implicita nella cornice naturale fa a pugni con titoli di giornale dove si leggono titoli come “artigiano ridotto sul lastrico”, Insomma troppo facile decantare le lodi di quei comuni che funzionano sotto i punti di vista: non solo della coltura ma anche quello della cultura con prevenzione e vigilanza adeguata sul territorio e risultati misurabili sullo sviluppo imprenditoriale che trasforma i problemi in opportunità. E’ più facile amare quei comuni melmosi come Nocera Ombrosa che fanno intravvedere, tra le varie chiazze di fango presenti nel mosaico, un potenziale di sviluppo autentico da disseppellire e da riportare a lustro. Troppo facile esaltare la pseudoperfezione di quelle organizzazioni che brillano di lacca patinata. Insomma per concluderla alla Lucarelli come abbiamo iniziato potremmo dire che Nocera Ombrosa non è come sembra e che sotto gli anfratti della quotidianità di questa bellissima località turistica si annidano labirinti simbolici e perversi che costringono gli abitanti locali a imprevedibili colpi di testa comportamentali (non è la norma, qualche volta!). Perchè l’ambiente preme sull’ individuo con tutto il peso delle sue politiche sociali (se ce ne sono!) e l’analisi delle sue presunte imprese (si fa per dire) passa inevitabilmente dentro gli scenari che influenzano e determinano le sue azioni.

Linux in 5 mosse, da NC a Superutente GM. Mossa 1: overview. Quella luce in fondo al tunnel è un tir?!

Va bene sei in profonda crisi esistenziale, non riesci a vedere la luce in fondo al tunnel, stai miagolando nel buio perchè equitalia ti ha mandato la tassa sui rifiuti che costa più di un Boing 747 e stravolgi dal punto di vista mentale l’assunto di Parmenide quando dice che TUTTO E’ UNO mentre per te la realtà sta diventando frammentaria come un quadro cubista che parla di guerre civili. Che fare? Andare in chiesa nei momenti di crisi e confessare che mentre si giocava a pallone in cortile al gatto in transito é saltata la testa perché ha ricevuto una pallonata contro la scala granitica risalente ai Signori di Firenze? No, niente medicinali e nienti moduli di autodistruzione con intossicazione da succo di mirtillo, la soluzione é che studiare LINUX risolve. Quella luce in fondo al tunnel non era un tir. Ma che cosa é LINUX e a cosa serve? Innanzitutto pensiamo a tutte quelle volte dove installando un aggiornamento windows sul proprio computer abbiamo avuto diffioltà sovraumane tipo Sisifo quando deve trascinare un pietrone in cima alla montagna. Che cosa è Linux? E’ un sistema operativo che certamente non metterà daccordo quelli di destra e di sinistra che sono esattamente la stessa cosa a colori invertiti nelle logiche BCE che cercano di tirare acqua la proprio mulino. Non a caso si accenna a questa idea possessiva di interesse personale sulle strategie del brand perché LINUX è esattamente la cosa opposta, democratico e imparziale e soprattutto dispensa cose buone sia al vegano che all’ onnivoro al di là delle tessere di appartenenza a una categoria. Mas possiamo definire LINUX anche un KERNEL ossia per dirla alla in maniera spartana é l’osso di prugna che offre tutte le risorse come nucleo centrale per amministrare e gestire tutta una serie di processi e di problematiche del computer, comprese le logiche dello SCHEDULING e del MULTITASKING. Certamente nel caso che un programmatore metta in circolo un software che non ha necessità di essere supportato da una entità che gestisce una serie di accessi sicuri (appunto il kernel) non si ha nessuna necessità di scomodare nessuno “core”. Linux è stato creato da Linus Torwalds nel 1991 e per l’approfondimento rimandiamo a https://it.wikipedia.org/wiki/Linux. La prima release risale al 1994. Linux è soprattutto FOSS: free open source software perché si appoggia al contributo di milioni di sviluppatori in tutto il mondo che danno il loro contributo gratuito senza fini di lucro. Linux è easy, piace ed è user friendly, soprattutto nelle sue ultime versioni dove le interfacce grafiche non hanno nulla da invidiare rispetto a auelle dei suoi competitors. Ogni Kerne può avere diverse distribuzioni che hanno un attenzione particolare su focus diversi. Esistono anche delle versioni server e commerciali ma i nomi più altisonanti e gli acronimi più performanti riguardano nomi tipo https://distrowatch.com/ (versioni enterprise per la gestione di dati corposi) , Red Hat, Fedora , Ubuntu, Debian, Sles, Suse e Suse Server insomma di tutto e di più per coprire una vasta scelta di esigenze. A questo punto compreso di un prodotto che assolve a tutta una serie di necessità tra le più varipinte sia che si parli di un moscerino cone entità fiscale sia che si parli di una grande multinazionale dobbiamo porci la prossima domanda: perchè LINUX? Verrebbe da rispondere istintivamente perché ad esempio corre su diverse piattaforme per esempio che non sarebbe eresia. E’ un sistema operativo Scalabile ossia migliorabile in terminid i performances e prestazione, ma anche una entità STABILE e SICURA. Parliamo di IMPATTO RIDOTTO, Small Footprint, quasi la volontà di dare fastidio il meno possibile e chi ha il piacere di avere a che fare con Windows può capirne il senso. Lato Server poi è altamente funzionale, offre infinite risorse. Linux perché parliamo di un ecosistema di applicazioni gratuite e anche perché questa filosofia di fruizione, la gratuità, rappresenta per il consumatore Linux uno stile di vita, dove sono possibili contributi e apporti per far crescere il brand. Nel Sandwich tra applicazioni e hardware LINUX sta nel mezzo, può essere usato come desktop o come server, propone una serie di suite variegate che soddisfano un vasto pubblico, sia che si tratti della piccola azienda, come della grande multinazionale grazie a un vasto numero di implementazioni e distrubuzioni. Come già specificato tra l’hardware e la distribuzione Linux che fornisce come risorse i programmi abbiamo il CORE, il KERNEL. Certamente una delle organizzazione più famose ed efficienti è https://www.redhat.com/it che grazie all’ esperienza condivisa e al contributo delle community, è in grado di fornire ottimi prodotti come Ubuntu. Redhat fornisce i suoi servizi a un numero considerevole di banche, compagnie di comunicazione ed aeree a livello mondiale con i suoi prodotti dedicati alle Grandi Aziende. Un ecosistema basato sul cloud è https://www.centos.org/ , che assorbe una grande quantità di utenze. La maggior parte dei nomi elencati in precedenza non sono adatti come distribuzioni per il business. I concetti di Linux sono universali per cui anche se ci sono minime differenze tra le varie distribuzioni, è veramente difficile commettere una scelta sbagliata, in quanto gli stessi GOAL, sono fattibili e flessibili su varie distribuzioni. Quindi semplificando una distribuzione fornisce sia il kernel che il software alla macchina. Per installare Linux su un sistema Windows si usa https://www.virtualbox.org/ un prodotto Oracle. Attualmente, VirtualBox gira su host Windows, Linux, Macintosh e Solaris e supporta un gran numero di sistemi operativi guest incluso ma non limitato a Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7, Windows 8, Windows 10 ), DOS / Windows 3.x, Linux (2.4, 2.6, 3.xe 4.x), Solaris e OpenSolaris, OS / 2 e OpenBSD. Un altro software utile è il formato per l’estrazione e la gestione di file compressi ma non solo: https://www.7-zip.org/. In questo modo ci siamo attrezzati per coabitare tranquillamente con più sistemi operativi sullo stesso computer senza disinstallare alcunchè. Per installare una versione completamente funzionale rasando via i vecchi SO si procede in questo modo: si va su https://www.ubuntu-it.org/download per scaricare il software open source con il download, poi si va su https://rufus.akeo.ie/ e si scarica il software per gestire l’installazione da chiavetta. Una volta azionato Rufus consente l’immagine iso di Ubuntu e una volta messo il tutto su chiavetta, l’immagine ISO vedere ad esempio https://www.aranzulla.it/creare-immagine-iso-916955.html, puntando a un download presente sulla cartella di scaricamento del PC basterà disabilitare il BIOS per cambiare l’ordine di puntamento dei dispositivi, in modo da far cercare al computer subito il contenuto USB prima che da CD piuttosto che da Hard disk. Fatto questo si segue una procedura che é abbastanza intuitiva e di facile utilizzo. Un interessante tutorial che spiega meglio queste dinamiche di installazione si trova all’ indirizzo https://www.aranzulla.it/come-installare-ubuntu-da-usb-35247.html mentre in rete esistono diverse guide utili come https://wiki.ubuntu-it.org/Documentazione per esempio. Per capirne di più sulla misteriosa espressione GNOME ad esempio recarsi su https://it.wikipedia.org/wiki/Ubuntu_GNOME . E per il problem solving? Quando sei in dubbio non ti rimane che risolvere tutto con un bel REBOOT! Per le grandi aziende di tipo enterprise che necessitano di web server performanti ricordiamo che sono vitali distribuzioni come https://www.centos.org/ che offrono tutta una serie di servizi integrati per risolvere questioni di solidità e sicurezza. Community Enterprise Operating System, abbreviato in CentOS, è una distribuzione Linux rilasciata a marzo 2004. Il progetto open source, sviluppato e supportato da un’enorme community, si basa sui pacchetti sorgente di Red Hat Enterprise Linux (RHEL), cioè una distribuzione commerciale che può essere utilizzata solo in combinazione con contratti di supporto a pagamento, ulteriori info per esempio su https://www.1and1.it/digitalguide/server/know-how/che-cose-centos-versioni-e-requisiti-di-sistema/ mentre se vogliamo approfondire un altra parolaccia misteriosa tipo DEBIA possiamo andare su https://www.1and1.it/digitalguide/server/know-how/debian-il-sistema-operativo-universale/ o https://www.debian.org/index.it.html che porta ad approfondimenti interessanti tipo http://www.gnu.org/ . A questo punto per le problematiche di connessione conviene vitare anche software client che lavorano su protocolli di sicurezza e non come SSH (secure shell), ad esempio https://www.putty.org/ con approfondimento presente all’ indirizzo https://it.wikipedia.org/wiki/PuTTY, trattasi di un emulatore di terminale dove mi collego in remoto presso altra macchina con le command line utility. L’idea di fondo è che posso connettermi anche a una Virtual Machine anche attraverso la rete. A questo punto c’è da fare un salto non da poco nella gerachia delle directory utilizzate da LINUX, ma come abbiamo specificato con il titolo qui lo scacco matto si ottiene contrariamente alle gesta eroiche del famoso barbiere con i suoi 4 tratti , solo in cinque mosse e il tema verrà analizzato in un prossimo articolo.