mercoledì 28 marzo 2018

Come creare una select con ricerca (html javascript)

Da purista vecchia scuola mi costa molto fare questo post, ma non sempre riscoprire l'acqua calda paga.
Il tema del giorno infatti riguarda le selectbox html troppo lunghe, quelle chilometriche per intenderci.
Quando infatti ci troviamo davanti ad una select con troppe voci, oltre a risultare difficoltoso scorrere tutti i nominativi, può risultare anche ostico trovare una voce con il vecchio trucco di digitarne le iniziali.

Vediamo quindi come il web di oggi ci consente di fare una ricercare in una select con il javascript, i fogli di stile e l'html.


Come creare una select box con ricerca in html/javascript


Per fare ciò che vi sto per andare a spiegare, un tempo avrei rimboccato le maniche e me la sarei giocata tranquillamente con il sacro js, il semplice html ed i fogli di stile.
Oggi però tutto ciò non serve più, dato che la pappa pronta arriva da una libreria javascript che si chiama select2.

Per poter usare questa libreria si può sia scaricarla in locale e richiamarla, o anche includere direttamente il codice da uno dei siti di servizio di google.
Ecco un esempio di funzionamento del secondo caso, senza dunque dover installare niente sulla propria macchina/sito web in locale:

<!DOCTYPE HTML>
<html>
<head>
<title>Select2 test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
</head>
<body>
<select class="js-example-basic-single" name="nomi">
<option value="AN">Antonio</option>
<option value="FR">Franco</option>
<option value="CA">Roberto</option>
</select>
<script type="text/javascript">
$(document).ready(function()
{
$('.js-example-basic-single').select2(
{
placeholder: "Select a state", allowClear: true
});
});
</script>
</body>
</html>


Il risultato sarà una cosa del genere:

Come creare una select con ricerca (html javascript)

Avremo così creato una select html con ricerca, ovvero una selectbox con un apposito box di ricerca con cui filtrare le varie option presenti in elenco.

Andando ad analizzare il codice usato, ecco cosa occorre includere per primo:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>


La prima inclusione riguarda il potentissimo jquery, senza il quale non si può usare la libreria select2 (cosa non propriamente esplicitata nel tutorial del sito di riferimento, e che mi ha fatto perdere un sacco di tempo per capire come mai la mia select non aveva il box di ricerca come nell'esempio online :p).

Poi bisogna creare la select semplicemente definendo una classe riconosciuta da questa libreria, che nel caso delle select singole è la js-example-basic-single.

Infine si usa la funzione ready, che agisce al caricamento completo della pagina, per inizializzare tutte le select in cui viene rilevata la classe indicata.
Il codice usato in questo caso è il seguente:
$(document).ready(function()
{
$('.js-example-basic-single').select2(
{
placeholder: "Select a state", allowClear: true
});
});


Dove ad esempio si può aggiungere l'attributo placeholder e specificare se si vuole consentire il tasto per svuotare la select (allowClear).
Ovviamente ci sono diversi altri attributi inseribili/inizializzabili, ma non sono argomento di questa guida (cit.).

Se si vuole inizializzare la select2 con valori di default già selezionati, basta usare il classico attributo selected (es: <option value="AN" selected>Antonio</option>).

Riporto qui sotto un altro esempio, con il quale è possibile creare select multiple con ricerca:

<select class="js-example-basic-multiple" name="nominativi[]" multiple="multiple">
<option value="AN">Antonio</option>
<option value="FR">Franco</option>
<option value="CA">Roberto</option>
</select>

<script type="text/javascript">
$(document).ready(function()
{
$('.js-example-basic-multiple').select2(
{
placeholder: "Select a state", allowClear: true
});
});
</script>


Select2 multipla

Quello che cambia sostanzialmente da una select singola, è il nome della classe (js-example-basic-multiple) e l'attributo multiple.

Tra l'altro la potentissima select2 consente di includere più select con ricerca in una sola pagina web, senza dover inizializzare ogni singolo oggetto nella ready.
Se ad esempio abbiamo 10 select di tipo singolo e 3 multiselect con ricerca, la parte del js potrebbe essere banalmente:
$(document).ready(function()
{
$('.js-example-basic-single').select2(
{
placeholder: "Select a state", allowClear: true
});
$('.js-example-basic-multiple').select2(
{
placeholder: "Select a state", allowClear: true
});
});


La libreria javascript select2 è molto potente e completa, infatti è anche possibile gestire select di tag, dove è anche possibile aggiungere le option tags mancanti dopo averle scritte nel box di ricerca.
Ecco un codice d'esempio:
<select class="js-example-tags" name="nominativi[]" multiple="multiple">
<option value="AN">Antonio</option>
<option value="FR" selected="selected">Franco</option>
<option value="CA">Roberto</option>
</select>

$(".js-example-tags").select2({
  tags: true
});


In questo caso quindi, quando si cerca una opzione che non esiste, cliccandoci sopra questa viene aggiunta alla select come nuova option, generando di fatto una select dinamica html.

Infine occorre precisare che è ovviamente possibile personalizzare la grafica delle select generate, usando i css.
La classe principale di riferimento è la .select2.
Avendo infatti scoperto che questa libreria stranamente di default non è responsive, sono andato a metterci una pezza modificando la classe css principale, con qualcosa del genere:
.select2 {max-width:100%;}

Bene, è tutto.
Le potenzialità della potentissima select2 sono davvero molte, ma la sua vera forza è sicuramente la semplicità e la rapidità d'utilizzo.
Per maggiori info ed eventuali download vi rimando al sito ufficiale.

martedì 27 marzo 2018

Come segnalare qualcuno su Tumblr

Non troppo tempo fa vi avevo spiegato come bloccare qualcuno su tumblr.
Se però questa procedura non vi sembra abbastanza, se la persona in questione vi ha offeso e volete che sia fatta giustizia, allora è il caso di imparare come segnalare su tumblr.

I motivi per segnalare qualcuno su questo social sono sostanzialmente gli stessi di tutte le altre community.
Se infatti una persona non rispetta la netiquette, spamma, offende, diffama, viola il copyright, e chi più ne ha più ne metta, allora è il caso che si prenda una vacanza da internet.
Vediamo subito come diventare netcop anche su tumblr :p


Come segnalare qualcuno su Tumblr


Contrariamente ad altre piattaforme web, segnalare persone su tumblr sembra essere un'operazione un po' più ostica del solito, o quantomeno non propriamente intuitiva.
Distinguiamo innanzitutto due tipologie di segnalazioni, lo spam dei messaggi, e la segnalazione di interi profili.

Per segnalare una email tumblr che ti sembra possa essere spam trovi l'apposito tasto sotto la conversazione, con una frase del tipo "ti sembra finto" e poi subito sotto il bottone Segnala come spam.

Come segnalare qualcuno su Tumblr

Se invece l'utente o il contenuto che ti da fastidio non è in diretto contatto con te, è possibile segnarlo agendo diversamente.
Per segnalare una persona su tumblr, bisogna infatti entrare nel suo profilo cliccando sul suo nome, poi basterà cliccare sull'icona dell'omino e poi sulla voce Segnala.

segnalare una persona su tumblr

Avrai sostanzialmente 3 opzioni di segnalazione:
  • Segnalare contenuti sensibili
  • Segnalare spam
  • Segnalare qualcos'altro 

La cosa un po' seccante di questo metodo è che... non è presente il tasto segnala nell'app di tumblr per cellulare, quindi vi toccherà passare sempre da pc per liberarvi degli scocciatori... a meno che non vi basti bloccarli con il metodo che vi ho spiegato tempo fa.

Bene, con questo tutorial direi che è tutto.
Nel caso trovassi dei metodi migliori per la segnalazione, soprattutto per app android, aggiornerò direttamente questo post... o se per caso li conoscete voi, scrivetemeli nei commenti così son tutti contenti (rima) :)

lunedì 26 marzo 2018

Leggi il post

MYSQL: scoprire se un campo è un numero

La desiderata del giorno riguarda il database mysql e consiste nel voler sapere se un determinato campo di una tabella è di tipo numerico.
Per scoprire se un campo è un numero in mysql non esiste in realtà una specifica funzione, tuttavia è possibile ottenere questa informazione usando l'ingegno, vediamo subito di scoprire come fare.


Come scoprire se un campo è un numero in MYSQL


Per capire se un determinato campo di una tabella di un database mysql è di tipo numerico, basta usare la seguente sintassi:

SELECT campo FROM tabella WHERE campo REGEXP '^[0-9]+$';

Con le espressioni regolari infatti (regexp), è possibile utilizzare una condizione where per pescare solo le righe con specifici campi di tipo numerico, grazie alla particolare sintassi delle regexp ^[0-9]+$.

E' possibile usare questo metodo anche nella selezione dei campi, come IF.
In questo caso si può assegnare un valore diverso al risultato della query, in base al fatto che il campo analizzato sia di tipo numerico o meno.

Quindi, ricapitolando is_numeric mysql non esiste, ma per fortuna grazie alle espressioni regolari si può ottenere lo stesso il risultato atteso :)

domenica 25 marzo 2018

Leggi il post

Barzelletta sulle mucche

Barzelletta sulle mucche e la curiosità dei bambini

Un contadino, mentre aiuta la sua vacca a partorire, si accorge che suo figlio di 6 anni che sta assistendo curioso alla scena.
- "Bene, così non dovrò spiegargli la storia della cicogna!"
Quando finalmente il vitellino è uscito, il contadino guarda suo figlio e gli domanda:
- "Hai capito tutto, o hai qualche domanda da farmi?"
Ed il figlio:
- "A che velocità andava il vitellino quando ha sbattuto contro la mucca?"

sabato 24 marzo 2018

Leggi il post

Freddure sui Nomi

Barzellette freddure sui nomi:

- Come si chiama il Santo protettore dei detenuti?
- San Quintino


- Come si chiama il più abile amante giapponese?
- SUDO MAGODO


- Come si chiama il più forte attaccante russo?
- PRITT BOSTIK

venerdì 23 marzo 2018

Come aggiornare il PHP su Wamp

Se usi wamp per windows per gestire i tuoi siti internet, sicuramente potrebbe capitare di voler aggiornare la versione del php installata di default.
In questi casi puoi agire sostanzialmente in due modi.
Il primo consiste in una brutale reinstallazione da zero di wamp, magari in una nuova cartella, il secondo metodo invece consente di aggiungere una nuova versione php al tuo wamp.

Visto che reinstallare wamp da zero può voler dire molto lavoro per replicare configurazioni di apache, mysql e php varie, la seconda soluzione è decisamente quella più comoda.


Come aggiornare la versione del PHP su Wamp


Per poter aggiornare wamp php più recente senza dover reinstallare tutto, procedere nel seguente modo:
  1. Scarica l'ultima versione del php per windows dal sito ufficiale (o la versione che più ti aggrada): https://windows.php.net/download
  2. Scompatta lo zip appena scaricato dentro la cartella bin/php di wamp, dandogli un nome sulla falsa riga degli altri, ovvero ad esempio:
    C:\wamp\bin\php\php7.2.3
  3. Entra nella versione più recente del php wamp (tra quelle installate in precedenza) e copia nella nuova cartella il file wampserver.conf
    In linea di massima questo file va bene così senza modifiche
  4. Sempre in una precedente cartella di un php funzionante (meglio se il più recente della versione che intendi aggiornare, ovvero la 5.qualcosa se vuoi aggiornare la 5, o la 7.qualcosa se vuoi aggiornare quest'ultima), prendi e copia nel nuovo php i seguenti file: php.ini e phpForApache.ini.
    Questi file vanno modificati con una breve ricerca, basta infatti ricercare il nome della versione precedente, con il nuovo numero.
    Ad esempio:
    extension_dir ="c:/wamp/bin/php/php7.0.10/ext/"
    con
    extension_dir ="c:/wamp/bin/php/php7.2.3/ext/"
  5. Chiudi e riapri wamp

Se avrai fatto tutto correttamente, l'icona di wamp tornerà verde, e cliccando con il tasto sinistro del mouse potrai cliccare su php->version, e da lì vedere e selezionare la nuova versione del php appena installata.

Come aggiornare il PHP su Wamp

Nella foto che ho allegato, la procedura non è filata liscia al 100%, in quanto in questo caso cliccando sul punto esclamativo vicino alla versione del php aggiornato, viene fuori un bel messaggio con scritto: "this php version doesn't seem to be compatible with your actual apache version".
Siccome viene indicata anche la dll mancante, ovvero la php7apache2_4.dll, mi è bastato prenderla dalla solita cartella php precedente ed incollarla nella nuova, e chiudendo e riaprendo wamp tutto ha funzionato... o meglio quasi.
Anche con la dll copiata apache non voleva girare, cercando poi su internet ho visto che è meglio installare la versione safe del php (nel mio caso la "VC15 x64 Thread Safe" e che mixare 32bit e 64bit è sempre il male, per cui attenzione!

php wamp aggiornato

Ovviamente questa procedura fila lisca, quanto più la versione del php da aggiornare è vicina all'ultima versione installata.
Se infatti c'è un abisso tra una versione ed un'altra, è molto probabile che copiare i vari php.ini possa non essere la via più semplice, in quanto potrebbero esserci parametri non più usati/compatibili.
Quindi in questi casi è meglio partire da un php.ini preso direttamente dalla versione che andiamo ad installare, magari aggiornato sulla falsa riga dell'ultimo php.ini funzionante.
Se poi anche la versione di apache o quella di mysql o phpmyadmin risultano incompatibili con il nuovo php, allora potrebbe proprio essere il caso di installare da zero una versione più recente di wamp.

giovedì 22 marzo 2018

Leggi il post

MYSQL: Query tra tabelle su server diversi

Un'esigenza che prima o poi può capitare nella vita per chi gestisce database mysql, è quella di dover fare delle query tra tabelle presenti non solo su database differenti, ma addirittura su server diversi.
In sql server si chiamavano linked server, qui invece su mysql il loro nome è federated tables.

Vediamo subito cosa bisogna fare per poter pesare i dati su server diversi in mysql.


Come fare query tra tabelle su server diversi su mysql


Se abbiamo una tabella mysql in locale ed un'altra presente su un database collocato su un server remoto, il modo tipico per poter pescare questi dati con un'unica query sql, è quella di usare le federated tables.

Una tabella federata, se così la si può tradurre dall'inglese, è una sorta di tabella virtuale, una tabella che pesca i suoi dati direttamente da un'altra tabella presente su un altro server (ed un altro db).

Vediamo dunque come creare una federated table.
La sintassi per la creazione di queste tabelle è identica a qualsiasi altra tabella, è il solito create table infatti.
Quello che cambia è la parte finale, in cui si dice a mysql dove andare a prendere i dati.
Ecco un semplice esempio:

CREATE TABLE `tabella_federata` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `nome` varchar(64) DEFAULT NULL,
  `cognome` varchar(64) DEFAULT NULL,
  `email` varchar(128) DEFAULT NULL,
  PRIMARY KEY (`id`)
 ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://utente:password@ip-server/nome-database/nome-tabella'


La parte cruciale di questo esempio è l'engine, il motore della tabella, che ha una sintassi del genere:
ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://utente:password@ip-server/nome-database/nome-tabella'

Penso che non ci sia bisogno di altre spiegazioni.

Quando si vuole creare quindi una tabella federata mysql, il mio consiglio è quello di esportare lo script di creazione della tabella presente sul server remoto, e poi di modificarlo nella sua parte finale, nel motore.

Una volta creata questa tabella virtuale, pescare i dati sarà un gioco da ragazzi.
Se infatti abbiamo creato una tabella federata sullo stesso database mysql della tabella da legare, la sintassi da usare sarà un classico:
SELECT tabella1.campo,tabella2.campo FROM tabella1,tabella2 WHERE idtabella1=idtabella2
Dove ovviamente una delle due tabelle in questione è la tabella federata creata poco prima.

Il limite di questo metodo per pescare dati da server diversi in mysql è abbastanza evidente.
Se si modifica la struttura della tabella remota, bisogna ricordarsi di modificare anche quella della tabella federata... particolare non da poco!

mercoledì 21 marzo 2018

Barry Seal - Una storia americana

Barry Seal - Una storia americana è un film biografico/drammatico del 2017 diretto da Doug Liman, con Tom Cruise, Domhnall Gleeson, Sarah Wright, Caleb Landry Jones, Jesse Plemons, Lola Kirke, Alejandro Edda, Mauricio Mejía, Fredy Yate Escobar.

Barry Seal - Una storia americana

Trama

Barry Seal è un giovane pilota americano a cui le regole della società sono sempre andate un po' strette.
Abile nel pilotare, Barry inizierà con semplice contrabbando, fino a trasportare sia grandi quantitativi di droga che armi.
Barry verrà dunque a contatto sia con grossi nomi della malavita, come Escobar, ma addirittura con alte cariche delle istituzioni governative, finendo a compiere missioni al limite della legalità anche per la CIA.


Recensione

"Barry Seal - Una storia americana" è il titolo di un interessantissimo film drammatico americano.
La cosa più bella di questa pellicola è il fatto che il tutto sia tratto da una storia vera.
In questi casi non si sa mai quanto sia reale e quanto sia romanzato, ma quel che è certo è, che se sono veri anche solo la metà dei fatti raccontati, il tutto ha dell'incredibile.
Il protagonista di questo film è il bravissimo Tom Cruise, ancora una volta nelle vesti di una parte che gli calza a pennello.
C'è poco altro da aggiungere su "Barry Seal - Una storia americana", se vi piace il genere non lasciatevelo scappare!

Link alla scheda del film su wikipedia

martedì 20 marzo 2018

Borg McEnroe (film tennis)

Borg McEnroe è un film sportivo/biografico del 2017 diretto da Janus Metz, con Sverrir Gudnason, Shia LaBeouf, Stellan Skarsgård, Tuva Novotny, Robert Emms, Jason Forbes, Björn Granath, Scott Arthur, Tom Datnow.

Borg McEnroe (film)
Trama

Björn Borg è un ragazzo molto particolare, poco più che ventenne è considerato il campione mondiale indiscusso del tennis.
Il record di Borg è quello di aver vinto il torneo di Wimbledon per ben quattro volte consecutive.
Questa volta però, il freddo ed impassibile, almeno all'apparenza, campione svedese, dovrà vedersela con un americano tutto pepe, il giovanissimo campione di tennis John McEnroe.

Recensione

Borg McEnroe è un film sportivo del 2017.
Il titolo già parla da solo su quella che è la sua trama, infatti in questa pellicola si parla della vita dei due campioni di tennis, Björn Borg e John McEnroe.
Il film tratta la rivalità dei due tennisti, due persone che all'apparenza hanno un carattere completamente diverso, ma che in realtà sono molto più simili di quanto si pensi.
McEnroe è infatti un giovane impulsivo ed irascibile, che va in escandescenza ad ogni minimo problema o avversità.
Borg è invece chiamato l'uomo di ghiaccio, perchè nulla sembra scalfirlo.
In realtà però, per Borg questa è solo una facciata, in quanto ha imparato da tempo a reprimere i suoi sentimenti in pubblico.
Se vi piace il tennis, non potrete che apprezzare "Borg McEnroe", un film commemorativo su due grandi campioni di questo sport.

Link alla scheda del film su wikipedia

lunedì 19 marzo 2018

Suburra (film)

Suburra è un film drammatico, thriller del 2015 diretto da Stefano Sollima, con Pierfrancesco Favino, Claudio Amendola, Alessandro Borghi, Elio Germano, Greta Scarano, Giulia Gorietti, Adamo Dionisi, Giacomo Ferrara, Antonello Fassari.

Suburra (film)

Trama

In una Roma del 2011 si svolgono le vicende di alcuni delinquenti.
C'è Samurai, un ex membro della banda della Magliana, un boss che ormai è arrivato ai vertici della malavita romana.
Poi c'è Numero 8, un giovane irrequieto che fa parte della nuova guardia della mafia, tutto azione e violenza, ed un po' meno strategia e ragione.
E poi ci sono alcuni personaggi che vengono a contatto un po' per caso con il mondo della malavita, un mondo che li risucchia senza scampo in un'escalation di violenza e guai.


Recensione

Suburra è un film drammatico italiano del 2015, un film ambientato a Roma.
Il film parla della malavita romana un po' a tutti i livelli, dai delinquenti di strada, ai vecchi capi famiglia, ai politici corrotti.
Questo film se vogliamo, è la risposta romana a Gomorra.
A mio avviso Gommora resta ad un livello superiore, tuttavia non ho potuto non apprezzare anche Suburra, una pellicola di tutto rispetto, da vedere assolutamente per tutti gli appassionati di film sui criminali.

Link alla scheda del film su wikipedia