Python: filtrare le liste

Le liste, si sa, sono croce e delizia di ogni programmatore e saperle usare rende il lavoro di gestione dei dati nel codice molto più comodo e semplice. Tutto, in un certo senso, può essere logicamente ricondotto ad una lista e pertanto questo tipo di dato è molto utilizzato in tutti i listati.
La nostra attenzione questa volta si sofferma su python e sulla possibilità che il linguaggio offre di filtrare rapidamente le liste.
Immaginiamo di avere una lista di anni così strutturata:
anni = [1989, 1987, 1956, 1820, 1452, 1999, 2006, 1756]
e di voler filtrare solo gli anni che vengono dopo il 1900. Normalemente si opererebbe con una struttura sintattica simile alla seguente:
nuova_lista = []
for anno in anni:
    if anno > 1900:
        nuova_lista.append(anno)
        print 'Vecchia lista:', anni
        print 'Nuova lista:', nuova_lista
Come si può ben vedere il codice è semplice e pulito e svolge bene il suo lavoro ma è possibile minimizzare ed ottimizzare ancora un codice già così sintetico? La risposta ovviamente è si ed ora vedremo come trasformare il nostro snippet:
nuova_lista = [anno for anno in anni if anno > 1900]
print 'Vecchia lista:', anni
print 'Nuova lista:', nuova_lista
Si vede già da subito che il numero di righe è stato nettamente ridotto e tutta la struttura sintattica del precedente codice è stata ridotta grazie all’uso delle mappature di python unitamente al nostro filtro. In pratica la nostra nuova riga di codice si occupa di ciclare gli elementi nella lista (mediante il ciclo for) e di confrontare l’elemento ottenuto con il filtro desiderato (mediante if). Ovviamente se il confronto con il filtro risulta vero allora l’elemento viene mappato nella nuova lista con il risultato di ottenere un array contenente i dati voluti.
Scrivere del buon codice significa ottenere, alla fine del nostro lavoro, un listato più pulito e quindi più semplice da correggere in caso di errori. In questo caso abbiamo visto come sia semplice adoperare le liste in maniera molto più fluida e sicuramente più pulita.

Visualizziamo l’elenco delle pagine visitate su Chrome/Chromium

Chi utilizza Google Chrome o Chromium, avrà sicuramente notato che rispetto agli altri browser c’è un elemento in meno: il menu a tendina in cui sono elencate le ultime pagine visitate.

Chi è abituato a quel menu, come il sottoscritto che preferisce il mouse piuttosto che digitare gli URL con la tastiera, può ricorrere ad una comoda e utile estensione che sopperisce a questa mancanza: Dropdown List of Most Visited Links (il nome dice già tutto).

Andiamo sul menu (pulsante con il simbolo della chiave inglese) → Impostazioni → Estensioni e cerchiamo l’estensione indicata più sopra. Una volta installata, comparirà una freccetta nella parte destra della barra degli indirizzi


Da questo momento, le ultime pagine visitate saranno comodamente consultabili da questo menu a tendina, proprio come eravamo abituati con gli altri browser.

L’unica differenza è che, mentre con i browser in cui questa funzione è nativa possiamo cancellare le pagine presenti nell’elenco premendo il tasto CANC, per eliminare le pagine dobbiamo passarci sopra con il mouse e premere una piccola X posta sulla parte destra della pagina stessa.

Ciao ^__^

CSS3 – Effetto polaroid

  
L’idea di oggi era quella di trovare un metodo per presentare in modo carino ed affascinante le immagini all’interno di una pagina web. Stanco dei soliti sistemi troppo “potenti”, volevo qualcosa che fosse tanto semplice quanto d’impatto visto che un cliente aveva chiesto questo per il suo sito.
La prima idea che mi è balzata in mente è stata quella di creare un effetto polaroid sulle foto che mi erano state inviate ma questa volta non avrei usato GIMP come sono solito fare ma avrei creato il tutto con CSS3 in modo da applicare l’effetto a qualsiasi immagine in mio possesso. Visto il grande ritorno del vintage e il successo di Instagram, l’idea mi pareva molto bella per un sito moderno e giovane.
Partendo dal presupposto che una foto nel vecchio formato polaroid ha di per sè una base estetica molto semplice, vediamo come strutturare l’idea e come svilupparla in poche righe di CSS.
fonte: http://media.photobucket.com/image/recent/labelle_7/polaroid.jpg
Si vede facilmente come la struttura della foto sia composta dall’immagine principale (centrata in orizzontale), un contorno bianco che presenta, rispetto al bordo esterno, due distante diverse: una è data dalla distanza maggiore del lato inferiore rispetto al corpo centrale vero e proprio mentre gli altri tre lati hanno pari distanza.
Inoltre per rendere l’immagine più “dinamica” si potrebbe pensare di aggiungere una lieve ombra che da sicuramente un tocco più realistico alla composizione.
Vediamo il codice CSS usato per dare l’effetto voluto:
Il codice è molto semplice. Analizzando il tag della classe .polaroid, con le prime tre righe si crea il bordo bianco intorno all’immagine, le quattro che seguono creano una lieve ombra intorno al contenitore (cercando di mantenere la compatibilità con tutti i browser) che nel nostro caso rappresenta l’intera foto, mentre l’ultimo rigo serve a mantenere l’immagine vera e propria centrata nel bordo bianco. Per quanto riguarda il tag img, invece, si è semplicemente detto al css di fare in modo che l’immagine si adatti al contenitore in cui viene inserita.
Ora vediamo il codice HTML per creare la foto nelle nostre pagine web:
Sicuramente con poche righe di codice è possibile avere un effetto molto carino e di impatto senza dover ricorrere a programmi di fotoritocco o pesanti righe di codice javascript.
Per visualizzare un esempio potete visitare questa pagina.