Android Studio, Java e Stanley Kubrick: trova le differenze

web design umbria

All indirizzo https://it.wikipedia.org/wiki/Stanley_Kubrick facciamo conoscenza più da vicino con Stanley Kubrick, non è un caso che sia stato integrato come modello conoscitivo per spiegare chi è Android Studio e cosa fa. Sappiamo che oltre ad essere uno dei registi al top nella storia del cinema, Kubrick ha anche fatto numerosi mestieri, come lo scenografo, lo sceneggiatore, il montatore video etc etc, tutte attività che ruotano intorno al mondo del cinema. L’analogia é chiara: la IDE di Android studio fa tutti questi mestieri per costruire un App nativa con java o kotlin, ossia impacchettata e organizzata così bene il codice sotto ogni punto di vista che gli manca solo la funzionalità di raccogliere ordini vocali per far risparmiare la fatica all’ umano programmatore. La verità è che comunque iniziare a programmare per fare APP NATIVE con JAVA non é facile e conoscere la forma mentis di Android Studio richiede tempo, senza contare i problemi di hardware, vedere per esempio articolo https://umbriawayvendita.wordpress.com/2020/06/03/la-donna-che-programmo-due-volte-prima-in-java-e-poi-in-kotlin-perche-android-studio-e-piu-facile-da-inquadrare-di-un-film-di-hitchcock/ dove si chiarisce che per gestire tutto fluidamente servono almeno 16 di RAM, per esempio. La prima parte di configurazione dell’ ambiente è stata risolta con l’articolo citato da web design umbria (ad esempio i processori AMD inibiscono la funzionalità di studio android di poter disporre di un device virtuale), adesso bisogna sporcarsi le mani e costruire una APP concretamente per vedere che tipo di disagio si richiede al neofita che inizia a familiarizzare con l’ambiente. La prima difficoltà è palese: java che è che si è meritato il primo posto della lista come linguaggio di programmazione, perché sicuro e adatto al modello enterprise aziendale, ha una curva di apprendimento dispendiosa e non é certo javascript come approccio, accomodarsi alle sue grazie non si ottiene con uno schiocco di dita anche perchè è il RE del paradigma OOP. Imparare Java è la prima difficoltà da superare e non è semplicissimo, analizziamo il seguente codice:

package eu.umbriaway.greatkubrick;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void esaltami (View v)
{
EditText et= (EditText) findViewById(R.id.kubrick);
Toast.makeText (this, “Great cult movie ” +et.getText().toString(),Toast.LENGTH_LONG).show();
}
}

web design umbriaA un primo impatto è come per Champollion decodificare i geroglifici, si vedono delle cose già abbastanza complicate come un ogetto che viene esteso con una classe su un figlio (AppCompatActivity) che eredità tutti i metodi principali e che ha potere di sovrascriverli con un @ovverride; ci vorrebbe una stele che semplifica il lavoro di criptazione! Forse l’unica cosa che si capisce è che chi ha fatto questa prima applicazione mobile sta lavorando su Kubrick per esaltarne il suo genio creativo con un activity che prende in ingresso una informazione immessa dall’ utente per restituirla tale e quale con qualche modifica in mezzo a un componente TOAST che nel mondo android è un metodo che spedisce a video un messaggio istantaneo. In sostanza il lavoro per mettere in piedi una APP primordiale è la prima volta duplice e ricorda un atleta che fa sollevamento pesi e che carica il suo fardello in due fasi distinte: da un lato cerca di sollevare il tutto da terra prima dell’ ultimo sforzo, poi raccoglie le energie e sincronizza il respiro per sollevarsi in posizione eretta e portare il peso in verticale sopra la testa. web design umbriaAnche noi dobbiamo procedere con questa logica: prima installare quello che serve, poi configurare l’ambiente con SDK e ADV in modo da avere anche un telefonino grafico per vedere come reagisce il nostro codice scritto e infine aprire un progetto, aprire la prima interfaccia grafica che vedrà l’utente appunto inserendo una nuova activity empty, poi collegare anche a questa activity la parte di codice java, il tutto senza dimenticare alcune sfumature: ad esempio quando si crea l’activity bisogna ricordarsi di fleggare in MainActivity presente nel file AndroidManifest.xml che è responsabile dell’ inclusione dei layout poi in fase di visualizzazione. Alla fine la nostra applicazione che cosa deve fare di fatto: saluta all’ inizio e dice qualcosa, poi propone al regista di segnalare il suo film migliore dopodichè la sua risposta sarà catturata in un contenitore variabile e riutilizzata come valore per estrapolare una frase simbolica tramite un COMPONENTE TOAST che ha la particolarità di lanciare un messaggio a video TEMPORANEO che può essere breve o lungo (qui abbiamo utilizzato la seconda cioé il metodo Toast.LENGTH_LONG ), solo per vedere se questa prima finalizzazione andrà in porto l’onere di costruire la prima APP come fa l’atleta con i pesi arrivando sul podio. Quindi quali elementi abbiamo bisogno di materializzare come prima APP? Lasciamo parlare direttamente l’activity_main presente nelle risorse alla voce layout:

<?xml version=”1.0″ encoding=”utf-8″?>

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
android:padding=”20dp”>

<TextView android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:textSize=”20sp”
android:text=”@string/text”
android:layout_gravity=”center_horizontal” />

<EditText android:layout_width=”150dp”
android:layout_height=”wrap_content”
android:textSize=”20sp”
android:id=”@+id/kubrick”
android:layout_gravity=”center_horizontal” />

<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_gravity=”center_horizontal”
android:onClick=”esaltami”
android:text=”Frasi Mitiche!” />

</LinearLayout>

Abbiamo quindi un LinearLayout, un componente TextView, un altro che riceverà i dati da memorizzare che si chiama EditText e servirà anche un pulsante BUTTON che farà il lavoro sporco utilizzando un evento da intercettare con il metodo onClick che metterà in moto una funzione che si chiama “esaltami” che vista in dettaglio suona come vista prima così:

public void esaltami (View v)
{
EditText et= (EditText) findViewById(R.id.kubrick);
Toast.makeText (this, “Great cult movie ” +et.getText().toString(),Toast.LENGTH_LONG).show();
}

ossia c’è una funzione pubblica che con il metodo VOID che richiama la superclasse View come argomento e che ritorna un valore di ritorno che è composto dalla invocazione della casella di testo et, variabile presente nell’ activity agganciata tramite un ID che va a pescare nella classe R identificativo id la risorsa di nome kubrik che dall’ altra parte , sull’ interfaccia grafica è dichiarata come android:id=”@+id/kubrick”. Ok respira , respira pensò l’atletà! Dopodiché l’istruzione seguente non fa altro che utilizzare il valore memorizzato per formare una stinga composita che viene materializzata in un FUGACE post. Quindi in realtà la difficoltà di tutta questa APP a livello di interazione dinamica sta tutta qua, anche se non è facile districarsi sulla parte di codice presente sul componente LinearLayout che ha come caratteristica quella di disporre gli elementi in orizzontale e in verticale. Per esempio queste due istruzioni iniziali sono molto importanti oltre che indispensabili dove match_parent sta a significare attaccati al parente genitore, ossia adatta la cornice al parent:

android:layout_width=”match_parent”
android:layout_height=”match_parent”

dopodichè possiamo anche dare un orientamento alla nostra cornice esterna con:

android:orientation=”vertical”

e posso anche impostare dei padding per esempio in dp che si usa per i layout

android:padding=”20dp”

mentre per la grandezza del font come testo si usa prevalentemente come unità di misura più performante sp, per esempio nel nostro EditText si legge:

android:textSize=”20sp”

si noti poi la differenza tra le seguenti due espressioni:

android:text=”Frasi Mitiche!” /> e
<string name=”text”>il tuo film migliore?</string>

web design umbriala seconda espressione attinge all’ armadio risorse, in un cassetto chiamato stringhe con un valore identificato come name=”text” mentre la prima crea al volo un testo senza estrapolare nulla da nessuna parte. Inutile dire che a livello di organizzazione di codice bisogna sfruttare la seconda soluzione. Del resto Android Studio dal punto di vista della compattazione del codice è impeccabile, tutto il contenuto di APP ha le sue sezioni specifiche cok repository e bisogna sare che espressioni del tipo setContentView(R.layout.activity_main); di fatto non fanno altro che estrapolare dalla cartella res, identificata tramite la casse R nella sezione layout l’activity che prende il nome di activity_main. Questo perchè abbiamo un luogo dove poter prendere elementi grafici, altri per settare i vestiti con i css, altri per inserire valori stringa e cassetti che si occupano di gestire i layout, insomma un universo complesso che all’ inizio crea molti dubbi del tipo: ma non ho modo più facile per creare APP? In questo ambiente mi sembra di avere a che fare non con una trama di un film di Kubrick ma con tutta la sua produzione contemporaneamente! Senza contare che l’interfaccia grafica di suo è molto complessa e che cliccando inavvertitamente nel posto sbagliato si finirebbe per modificare la stessa IDE con disorientamenti acuti a corredo e perplessità non facilmente risanabili. Android Studio è un pachiderma ma ha il vantaggio di essere molto sicuro e affidabile soprattutto se supportato dalla RAM! Qui di seguito segue la gallery che testimonia gli sforzi progettuali del neofita di fronte la sua iniziazione e il prodotto finale (alla fine è il risultato che conta) dove la centralità dell’ opera di Kubrick non può essere messa in discussione. Naturalemente siamo di fronte a un punto di partenza, qui è stato agganciato un solo evento senza traumi. Ma che succederà quando le complicazioni nel codice aumenteranno di intensità? Non resta che scoprirlo, cimentandosi alla conquista di pesi maggiori da valorizzare!

Questo slideshow richiede JavaScript.

Focalizza e migliora le tue competenze in qualsiasi ambito con la libreria javascript DRAGDEALER!

web designer umbria

Analizziamo il progetto implementato all’ indirizzo https://www.farwebdesign.com/projectdragdealer/ dove un gruppo di indicatori ognuno personalizzato ad indicare una disciplina, una materia, una conoscenza da far propria e assimilare si muovono FACENDO SOLO TRE PASSI una volta afferrati e trascinati (IN ALTERNATIVA si può ANCHE CLICCARE SULLA PARTE CENTRALE O FINALE PER SPOSTARLI senza dover trascinare gli elementi afferrandoli). Siamo di nuovo nell’ area di esplorazione tecnica del DRAG and DROP quindi, del trascina e rilascia, un tema caldo per tutti i frontend developer che devono sapersi destreggiarsi sull’ interattività dell’utente a video tramite javascript e jquery. A volte si hanno già a disposizione delle librerie esterne che se implementate diventano l’equivalente del signor WOLF di Pulp Finction, ossia risolvono i problemi in maniera indipendente (è questa la principale differenza tra framework e libreria, la prima mette a disposizione un ambiente di sviluppo connaturato al progetto che si deve mettere in piedi, vedi per esempio metodi messi a disposizione per bootstrap sulla parte grafica di stilizzazione o codeigniter per la parte di sviluppo php, mentre l’implementazione di una semplice libreria come per esempio https://github.com/fzaninotto/Faker che serve a generare contenuti fittizi per riempire dei prototipi, che magari arriveranno in produzione solo in un secondo momento, ha il solo e semplice scopo di risolvere un problema specifico). Prendiamo ad esempio la libreria DRAGDEALER scaricabile all’ indirizzo https://github.com/skidding/dragdealer che assolve a diverse funzioni di trascinamento, come si conviene alla sua traduzione letterale che ha a che fare appunto con l’invocazione che suona come commerciante di trascimanto (attenzione a non confonderlo con drugdealer!). Qui ci sono tutti i metodi in javascript per muovere degli oggetti (certamente l’uso di JQUERY UI è sempre da mettere in primo piano quando si vuole droppare qualcosa perchè il motto di questa tecnologia è scrivere meno, fare di più!) e ne vediamo un esempio lampante, dove il sottoscritto simulando una serie di competenze che fanno un percorso verso l’eccellenza (ci sono tre stedi, come i tre scatti del mouse durante il DRAG and DROP) passando dalle materie che sono da acquisire nel proprio skill per completare il proprio ruolo (nel mio caso quello di frontend developer ma può variare in base ai settori di competenza, non esclusi quelli sportivi dove le aree di miglioramento su dove intervenire non sarebbero penalizzate in una visualizzazione grafica, anzi, ne otterrebbero solo un grande beneficio) come punto di partenza per arrivare alla fascia intermedia dell’ approfondimento e delle conoscenza della tecnologia specifica, per approdare allo stadio finale dove il bruco diventa farfalla e ha assimilato nel suo iter in working progress tutti i target focalizzati nella mission iniziale. I movimenti del cursore grazie a una facile personalizzazione, sono facilmente variabili a seconda delle proprie esigenze, in questo caso la scelta di camminare solo tre volte per il bottone iniziale che si sposta orizzontalmente era in sintonia con la cover di sfondo che appunto contrassegna tre aree diverse di lavoro. In ultimo è stato inserito anche un operatore di avanzamento con caratteristiche diverse, che segnala la percentuale lungo il suo percorso in maniera dinamica. Questo è molto utile per fare una fotografia dello stato dell’ arte e rendersi conto a quale priorità dare alle materie che necessitano di interventi di acquisizione rapida per arrivare a centrare prima l’obiettivo. Il consiglio è quello di fare largo uso degli indicatori di avanzamento e molto altro messi a disposizione dalla libreria DRAGDEALER in tutti gli ambiti e le discipline, perchè la visualizzazione grafica sugli interventi da fare nel proprio settore per migliorare magari delle aree difettose è molto produttiva in termini di energie canalizzate nel modo migliore. L’esperimento di Umbriaway Consulting per implementare la libreria esterna e vedere l’effetto che fa all’ indirizzo https://www.farwebdesign.com/projectdragdealer/ ha finito anche per essere utile dal punto di vista pratico (il difetto delle scienze informatiche è che se sono disgiunte dalla quotidianità delle cose concrete perdono un pò il loro fascino e diventano noiose oltre che inutili in termini di tempo speso per imparare a padroneggiare la tecnologia) e non solo dal punto di vista didattico.

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.

Problemi con i vasetti di marmellata? Prova quella alle prugne suggerisce web design Umbria!

web design umbria

Con web design Umbria cerchiamo di entrare nei misteri del match di ritorno tra Tal e Botvinnik che consentì al secondo di riprendersi la corona mondiale malgrado alcune debacle come questa che andremo a vedere all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1032570 dove a un certo punto il nero prende fischi per fiaschi in una posizione critica. Stiamo parlando dell’ ottava partita una caro kann dove a un certo punto il nero gioca 17..a4? quando andava prima eliminato il pedone c4 nella linea con 17..dc4! 18 Tc4 a4! 19 Cbd4 (19 Txa4 Ae7!) Ac5 con il nero in vantaggio posizionale. Ma…ecco dopo 17..a4? comparire sulla scacchiera 18 c5 che non sembra difficile da vedere se non altro perché attacca la regina eh eh! Ora dopo 17..a4? 18 c5 Dc7 19 Cbd4 perché mail il nero non potrebbe giocare per esempio alfiere da casa f8 a casa c5? Bé questo é un compito a casa. Nella posizione finale dopo 29 Cd7 se 29..Ad7 30 Cd7 Td8 31 Tc8!! risolve in vista della sciabordata Ta8 mentre anche 29..Rc7 non va a causa di 30 b6 e 31 cb7. Perché con web design Umbria abbiamo citato questa partita? Perché é piena di varianti e conseguentemente anche di variabili con la mossa x o y che può valere in modi diversi e ci riferiamo evidentemente alla cappella del nero alla mossa dieciasette che fortunutamente per Botvinnik non gli ha ostacolato la riconquista del titolo come incidente. Che poi gli errori esistano anche in php é un fatto provate a scrivere una dichiarazione di stampa a video per visualizzare una stringa senza mettere le virgolette, fa notare web design Umbria! Che dire sulle variabili in php? Che sono contenitori vasetti di marmellata che contengono tipi diversi di marmellata e contenuti e che i tipi di dati suono diversi e che possono essere NULL, booleani true e false, stringhe, interi etc. PHP riconosce in automatico il tipo di dati ma volendo io potrei anche stampare a video un numero che però viene dichiarato con la parola chiave string diversamente. I nomi delle variabili sono costituiti da numeri e lettere e simboli come underscore e sono preceduti dal simbolo del dollaro. E’ buona norma usare spiegazioni chiare sul nome nel senso che già dalla dichiarazione che precede l’assegnazione si deve sapere di che cosa si sta parlando tipo $age per esempio che presumibilmente sarà un intero e che non può essere una costante dal momento che l’età cambia ogni anno. Con la funzione var_dump() stampo sia il tipo dei dati che il contenuto mentre per print_r() vale solo la seconda che abbiamo detto. Poi posso avere necessità di stampare all’ interno di una stringa il valore di una variabile e questo lo posso fare inserendo nell’ echo un blocco di graffe. Anche print() ha la stessa funzione di echo(). Le stringhe vanno racchiuse da virgolette singole o doppie anche se ci sono delle sfumature. In una delle prossime sessioni di allenamento con web design Umbria andremo a sviscerare meglio il tema delle costanti, a volte nei programmi esistono dei puntelli inamovibili che non sono soggetti a variazioni temporale come il codice fiscale per esempio che é immutabile. Per quanto riguarda la nomenclatura per scrivere le variabile il sistema a gobba di cammello per separare le parole e capirle meglio funziona tipo $nomeCognome o ancjhe &nome_cognome é molto utilizzato, l’idea di fondo é che una dichiarazione di variabile si deve capire in che contesto lavora in maniera inequivocabile senza lasciare spazi di ambiguità.

Sai portare un lettore sull’ orlo di un abisso? La risposta da web design Umbria

Se sto scrivendo non voglio solo informare, voglio invitare chi legge a compiere una azione specifica con la famosa call to action. Stai scrivendo per un e-commerce? Per un sito di calcio? O per il sito che protegge la foca monaca? Tu puoi informare e spingere interesse e persuasione ma quello che serve nella maggior parte dei casi é una call to action. datemi una call to action e vi solleverò il mondo sentenzia web designer Umbria. Per spingere a una forzatura del genere devo creare un binario a una sola corsa avvincente. DEvi afferrare il lettore per i capelli e trascinarlo fino alla famosa call to action e non é una cosa semplice ricordando quella famosa soglia di attenzione. Il massimo poi é suggerire l’idea che il lettore senta come giusta e corretta la sua azione suggerita indirettamente dal copywriter. Con la parola scritta persuasiva e incisiva dovrai spingere il lettore fino sull’ orlo di un burrone, ricorda un pò letterariamente web design Umbria. alias Faraoni Enrico, ceo di Umbriaway Consulting. Allora devi diventare psicologo come copywriter. Che cosa infervora quel tipo di lettore appassionato di trenini elettrici? Che parli in maniera avvincente di trenini elettrici per costringerlo a comprare un modellino? Devo conoscere le passioni del mio gregge di acquirenti potenziali. Dare per scontato o tirare a indovinare su come colpire e fare il massimo danno con la parola scritta non é cos’ semplice. Devo fare delle scelte scriverò con il tuo o con il suo, in presa diretta o in terza persona? Devo entrare in empatia con il lettore? Certo meno si é secchioni é più coinvolgimento si crea, ricorda web designer Umbria nelle sue scorribande sul dominio network umbriaway consulting. E meglio scrivere che lo apprezzerai al posto di “i nostri clienti lo apprezzeranno”. Come sempre vale il motto del farla breve ed essere chiari, chiarezza e brevità vanno a braccetto. Ricordiamoci che la freccia per andare a Roma partendo da Torino non deve passare per Bruxelles. E poi può funzionare anche questa idea della promessa che si legge dietro le righe, il fatto che se continuerai a leggere caro lettore tu vedrai nel prossimo paragrafo cose inenarrabili. Diamo delle cose che possono servire e sono utili. Facciamo come wolf, risolviamo i problemi, tenendo sempre presente chi abbiamo sull’ altra sponda. Non andate a svelare tutto e subito ma date una caramellina di assaggio. Tu hai un problema caro lettore, sentenzia web design Umbria. Io copywriter te lo risolverò, non staccare seguimi, quello che vedrai é roba originale e contenuto di qualità. La mia storia non é sospesa nell’ aria, ha un inizio e anche una fine, appartiene al mondo reale, seguimi caro lettore. Fatti non fuffa, fatti che si incastrano nel telaio organizzato della storia. Usa termini fulminanti per la tua prosa come migliore originale comprovato fantasmagorico facilmente immediatamente bello colorato e simili. Stupisciti caro lettore. Infervora all’ azione: compra oggi! Offerta limitata nel tempo! Non essere banale riduzione dei costi del materiale può funzionare magari a San Marino ma a città del vaticano serve una frase più accattivante, fa notare web design Umbria. La scrittura include quasi sempre una calla to action. Che cosa vuoi che il tuo lettore faccia? BVuoi buttarlo di sotto da un cornicione? Allora compila il modulo per maggiori informazioni, oppure lascia il tuo commento al post. Clicca qui per acquistare, ti aspettiamo nel nostro show room! Una call to action deve essere unica, non puoi far fare mille cose al tuo spovveduto fedele lettore. Se non chiedete di fare qualcosa non faranno niente e cosa ne ricaverete? E pensi di fare tutto questo senza avere uno stile? Un tono? Ce l’avete una brand reputation chiede web design Umbria? Caro copywriter ti stai limitando solo a presentare delle informazioni in maniera meccanica senza coinvolgimento emotivo? Come pensi di griffare il tuo scritto? Ci metti del tuo? Usi una scrittura dura o formale morbida o casual? Lo stile che scegliere riflette il tono e la personalità della vostra azienda. Avete contenuti dandy o evergreen? Siete autoritari o trendy? Hai uno stile colloquiale? Scrivi come Dante nella divina commedia? Che ritmo hai che ritmo ci metti? Sei sempre serio o cim metti dentro qualche ossimoro umoristico in quella scrittura? DEVI IMBROCCARE LO STILE GIUSTO a seconda dell’ obiettivo che vuoi perseguire e del target di riferimento. Fai combaciare lo stile in trasparenza con la tua identità personale. Sdrammatizzare non vuol dire essere poco seri, a volte funziona. Fai combaciare lo stile con il contenuto, se parli di un noto logo che vende bare non puoi scrivere cose del tipo “era un peso morto”. E con la coerenza come la mettiamo chiede ancora web design Umbria? Scrivi in maniera professionale anche se fai lo zuzzerellone o fai solo il circo fuffa? Quando lo stile circo fuffa funziona? Devo sempre usare un tono professionale? Quando devo fare il piacione colloquiale? Dall’ altra parte chi ho la regina Vittoria? Io, noi, mi, nostro tutta la metrica crea un effetto coilloquaiale tipo le poesie di Quasimodo. Sei sincero quando scrivi? La trasmetti la tua esperienza personale, manifesti trasparenza fai capire come la pensi? La scrittura colloquiale é simile a una conversazione reale. Noi e voi, io ed essi. L’importante é non saltare di pane in frasca con una finta coerenza. Se poi scrivi per una azienda allora interrogati sulle tue responsabilità: non devi solo costringere a una call to action ma anche farti carico dello stile di quell’ azienda e portavoce di quel prodotto e servizio. E gli elementi visivi nella tua prosa idilliaca ce li inserisci? E delle belle clip art colorate le distribuisci? Sei bravo a creare infografiche o anche solo a spezzare i ritmi del lettore per rigenerarlo e divertitlo? Una immagine vale più di mille parole. Ce le hai delle belle foto per stupire con effetti speciali? E i grafici e le infoghrafiche e i video, insomma sei un tipo noioso capace solo di fare bla bla bla? Il mestiere di copywriter é sempre ricco di colpi di scena e di cura per i dettagli. Ad esempio i link esterni autorevoli li inserisci nei tuoi scritti? Sai riconoscere i siti autorevoli che possono migliorare la tua link building? Hai mai sentito parlare del famoso NO FOLLOW? E con quale frequenza devo aggiungere link nei miei scritti? Dipende sempre dalle circostanze a volte linkando ti fai un danno. Dovresti poi integrare contenuti di altri siti web? Le citazioni funzionano? Attenzione alle duplicazioni eh e anche ai diritti legali di materiale che integri per le tue affabulazioni. Certamente sei un pesce troppo piccolo per friggere nel padellone dei grandi quindi se ogni tanto ci scappa qualcosina di straforo nel proprio articoletto é solo per valorizzare il brand altrui (mettiamola così). Se stai scrivendo un post di Fiorella Mannoia é inevitabile che tu inserisca qualcosa che parli di Fiorella Mannoia, video, citazioni o altro…e comunque attenzione sempre ai diritti legali, oggi siete una sardina in un mare magnum, domani sarete dei pesci martello in un oceano che la concorrenza vorrà fare alla griglia, conclude con questa metafora coloria degna di un grande scrittore degli anni trenta, web design Umbria!