Post con tag ricerca
BitSnoop: ricerca files Torrent pulita
15 ott
BitSnoop è un motore di ricerca di files Torrent che permette fra le altre cose di filtrare automaticamente la ricerca eliminando i file corrotti.
Il sistema è in grado di monitorare circa un milione mezzo di torrent attraverso un tracker che ricerca su server residenti in Russia. Da provare visto che non richiede nemmeno la registrazione e non ha pubblicità in home page.
non avete uncazzodafare? bene FlickrFight !
1 lug
Come da titolo: non avete un cazzo da fare e volete divertirvi un po?
Potreste provare l’eterna battaglia fra:
- pisellino vs fragolina (indovinate chi vince?)
- uomo vs donna
- ….
- ….
Come e dove? basta che andiate su FlickrFight e digitiate i due termini che volete mettere a confronto ed il gioco è fatto!
FlickrFight non fà altro che cercare i due termini su Flickr e dare il risultato numero delle due ricerche decretando al contempo il vincitore.
A cosa serve? a un cazzo! Però è divertente eh eh eh
Avete perso il manuale d’uso di….qualsiasi cosa?
28 mag

Ho scovato, alla ricerca del manuale utente del Sekonik L-28c (un esposimetro del 1964 di cui parlai molto tempo fà), un sito, esattamente Diplodocs che consente la ricerca di manuali di tutti i generi.
Basta andare sul sito, inserire la marca ed il modello di quello che stiamo cercando e….se siamo fortunati avremmo la possibilità di scaricare in pdf quando desiderato!
Ho fatto un po di prove e devo dire si esserne rimasto contento. Ho trovato il manuale della Nikon D300, della Nikon F801 e della F60.
Quindi se avete smarrito un manuale o semplicemente non vi và di cercarlo be…scaricatelo all’istante!
Macro Fotografia: pillole di…
1 mag
|
Introduzione
Gli spazi che ci circondano sono ricchi di particolari che ad occhio nudo spesso passano inosservati; la macrofotografia si pone, a tal proposito, come strumento ideale per la ricerca di un punto di vista insolito ed inaspettato nel quotidiano. |
|
|
Definizioni
Prima di esporre i principi ottici alla base di questa ricerca del particolare, è opportuno fare una distinzione tra le varie terminologie di uso corrente:
- Fotografia Close-Up, immagine che va da almeno 1:10 delle dimensioni effettive a circa 1:2 della grandezza naturale del soggetto; |
|
|
Principio fisico
Di solito gli obiettivi fotografici producono un’immagine ridotta della scena; tuttavia con un’estensione sufficientemente lunga fra l’obiettivo e il piano della pellicola (o il sensore) i soggetti vengono riprodotti a grandezza naturale e persino maggiore. Possiamo sintetizzare tutta l’arte dell’ingrandimento come la ricerca di un’estensione maggiore. Partendo da questa osservazione descriveremo ora tutte le apparecchiature classiche per la macrofotografia. |
|
|
Attrezzature
In questo articolo verranno presi in considerazione i seguenti strumenti
|
|
|
Opzione Macro
Presente in molte fotocamere, è tipicamente contrassegnata con un fiorellino. La sua funzione è quella di permettere di ridurre la distanza oggetto anche fino a 1-2 cm (ma varia molto a seconda della macchina). Rappresenta quindi un’utile opportunità per iniziare i primi esperimenti nel “mondo piccolo” senza dover spendere ulteriori soldi.
Per chi non si accontentasse delle prestazioni raggiunte solo con questa impostazione, risultano d’obbligo le seguenti apparecchiature. |
![]() |
|
Lenti Addizionali
Rappresentano il primo approccio alla macrofotografia; il loro utilizzo è particolarmente semplice infatti è sufficiente montarle sugli obiettivi delle reflex per ottenere immediatamente un incremento del fattore moltiplicativo.
Per le macchine digitali compatte è spesso richiesto l’acquisto di opportuni anelli adattatori. Il vantaggio di questo ausilio alla fotografia close up consiste nell’avere lenti che non assorbono luce e aumentano l’avvicinamento al soggetto. |
![]() |
|
|
|
|
A differenza delle lenti addizionali i tubi di estensione aumentano l’ingrandimento del soggetto andando ad incrementare la distanza obiettivo-pellicola (sensore).
E’ necessario precisare che, aumentando la lunghezza del tubo, si incide sulla quantità di luce in arrivo sulla pellicola; questo comporta una maggior difficoltà della messa a fuoco. L’uso del treppiede è suggerito anche perché a tali ingrandimenti si ha una forte riduzione della profondità di campo. |
![]() |
Esempio approssimato dell’aumento di “estensione” grazie a tubi aggiuntivi
|
|
|
Sono Ottiche dedicate alla fotografia ravvicinata; hanno tipicamente rapporti di ingrandimento di 0,5x.>
Gli obiettivi macro possono essere utilizzati anche su tubi di estensione e soffietti. Si segnala l’esistenza di obiettivi macro a zoom, ma questi non danno risultati soddisfacenti. |
![]() |
|
Perché molti fotografi montano l’obiettivo in posizione invertita?
Per rispondere è necessario osservare come gli obiettivi ordinari (persino quelli macro) siano calcolati e corretti per distanze obiettivo-soggetto più lunghe di quelle obiettivo-film. Quando si entra nel campo della fotografia ravvicinata la distanza obiettivo-soggetto diventa sempre più piccola e, d’altra parte, si tende ad aumentare l’estensione al fine di ottenere un ingrandimento desiderato. Capito questo risulta facile comprendere come, girando i nostri obiettivi, noi si vada a ricostruire le condizioni ottimali per il sistema ottico ma, attenzione, nel campo del ravvicinato! Ultima osservazione, con l’inversione dell’ottica si aumenta oltre la possibilità di avvicinarsi al soggetto, anche l’ingrandimento! |
|
|
La loro funzione è molto simile ai tubi d’estensione, tuttavia permettono grande versatilità grazie alle differenti regolazioni applicabili.
Il soffietto deve essere accoppiato a particolari obiettivi da macro oppure con l’inversione dell’ottica. L’uso a questo punto è molto semplice: fissato il rapporto d’ingrandimento allunghiamo l’estensione finché la nostra scena non appare nitida. |
![]() |
|
Macrofotografia con la digitale, alcuni consigli.
Regolazione della macchina
Come primo accorgimento che mi sento di suggerirvi: utilizzate sempre il manual focus.
Questo perché una volta bloccato il fuoco, è possibile fare delle piccole oscillazioni, in avanti ed in dietro, con la camera finché l’immagine sul monitor LCD non risulta perfetta. Per raggiungere una buona dimestichezza con questa tecnica sono necessari parecchi scatti, ma, appunto, anche questo è un vantaggio per chi possiede una digitale. Un secondo consiglio riguarda l’apertura: questa dovrebbe essere piccola (F grande) per aumentare la profondit� di campo e poter mettere a fuoco tutta la scena d’interesse. Si ricorda a tal proposito che con l’aumento dell’ingrandimento inevitabilmente si incorre in una diminuzione della profondità di campo. |
|
|
Flash ed Illuminazione
Punto di partenza è la luminosità della giornata:
ovviamente se il tempo è clemente e vi concede una buona luce, potrete scegliere delle alte velocità dell’otturatore e fissare meglio i piccoli soggetti in movimento. L’utilizzo del flash è comunque sempre consigliato in particolare con l’accorgimento della diffusione. Alle piccole distanze l’uso del flash diretto porterebbe alla sovraesposizione del soggetto, quindi è un buon trucco quello di mascherare la propria lampada con una pezza. Io personalmente ho fatto molte prove con dei fazzoletti bianchi di tela fino a trovare il numero giusto di strati che mi consentisse una buona illuminazione. Un altro metodo più professionale prevede di far giungere la luce attraverso un riflettore bianco esterno alla scena. |
![]() |
|
Treppiedi
Il vantaggio di una digitale per la macrofotografia è rappresentato dall’ottimo supporto dato dal monitor LCD; questo permette di avere tempestivamente un’idea della composizione e del controllo della profondità di campo.
In commercio esistono anche treppiedi che permetto lo spostamento in orizzontale della camera attraverso incrementi molto piccoli; grazie a queste apparecchiature, è possibile fissare il fuoco e variare con molta precisione la distanza della camera dalla scena. Per chi si affidasse alle proprie mani si ricorda che un buon appoggio per i gomiti e una presa salda sulla macchina possono scongiurare il mosso. |
|
Come fotografare I soggetti della macrofotografia sono molteplici… ma i più ricercati sono sicuramente gli insetti.
Penso tutti siano rimasti sbalorditi dal film “Microcosmos-Le peuple de l’herbe”… ebbene ora cercherò di darvi qualche consiglio per “catturare” qualche immagine da quel “piccolo mondo”. La cosa più importante è muoversi lentamente, senza fretta, senza arrecare nessun disturbo al soggetto. La seconda regola è avere MOLTA pazienza… aver paura di non riuscire a scattare la foto porta inevitabilmente a commettere qualche movimento brusco col risultato di far scappare l’insetto o di ottenere un brutto mosso. Detto questo analizziamo l’approccio all’insetto: una volta avvistato vi consiglio di regolare la vostra macchina in anticipo; questo perché spesso capita di aver a disposizione solo uno scatto. A questo punto avvicinatevi molto lentamente cercando di non far cadere la vostra ombra sulla scena. Man mano che acquistate confidenza con la tecnica vi risulterà naturale scegliere non solo il soggetto ma anche l’ambientazione e la composizione stessa della fotografia. |
|
|
Composizione della scena
Possiamo dire che le regole base sono quelle viste per la composizione in generale, ma non solo…
essendo la macrofotografia incentrata su profondità di campo molto piccole, è sempre un’ottima idea cercare di ritrarre i soggetti non frontalmente. Questa soluzione porta inesorabilmente ad un’appiattimento della fotografia! Cercate quindi di conferire alla scena tridimensionalità con una opportuna scelta dell’inquadratura. Con questo è tutto, buon viaggio nel “mondo piccolo”! |
|
Vunky Search: un motore di ricerca di tutorial e guide per Photoshop
4 mar
Un’altra segnalazione del nostro carissimo Acor3. Stavolta si tratta di Vunky Search, un motore di ricerca di tutorial e guide per Photoshop. Il suo motto è: “Fast and Furious Photoshop Tutorial Browser!“.
Ci sono tre modi per cercare quello che ti serve:
- il classico motore di ricerca, inserisci la descrizione di quello che cerchi ed ottieni (forse) un’elenco di immagini su cui è stato applicato il “metodo” che stavi cercando
- clicchi su uno dei tag presenti sulla home page ed ottieni anche li una serie di immagini
- sfogli la foto proposte in home page finchè non trovi quella che pensi faccia al caso tuo
Non c’è tantissimo materiale ma diamo tempo al tempo. Inoltre se avete realizzato quache cosa di bello e volete condividerla con noi quello potrebbe essere un bello strumento per farlo.
Prima che dimentico, qui c’è il blog di Vunky uno degli ideatori del motore di ricerca, magari vi và di dargli un’occhiata.
Nuova malattia professionale:prurito e dermatite da tastiera!
24 feb
Collo bloccato, mal di mouse
La mappa dei “tecno malanni”
di SARA FICOCELLI da Repubblica.it
Una ricerca dimostra che l’uso prolungato del computer provoca danni fin dall’adolescenza. Prevenirli non è impossibile ma la regola d’oro è sempre la stessa: fare una pausa ogni tanto.
TRASCORRERE dalle 10 alle 12 ore davanti al computer è qualcosa che accade a moltissime persone, dato che spesso lo si usa sia a lavoro che a casa. Secondo una ricerca della Stellenbosch University di Tygerberg, in Sud Africa, uno stile di vita di questo tipo provoca dolore al collo e alla testa, e l’aspetto più inquietante è che il disturbo non colpisce solo gli adulti ma anche i giovanissimi. Il team di ricerca sudafricano ha preso in esame 1073 studenti del liceo dell’età di circa 16 anni: il 48% di questi frequenta scuole dove si usa regolarmente il computer e di questi il 43% utilizza il computer per 8,5 ore a settimana o più. Stando ai dati raccolti, solo il 16% di chi passa meno di cinque ore davanti al pc soffre di disturbi al collo, contro il 48% di quelli che stanno al computer dalle 25 alle 30 ore a settimana, che invece lamentano dolori forti e mal di testa. Continua >
Firefox 3 & ICC Profiles
12 feb
Avete calibrato il monitor per la corretta visualizzazione dei profili di colore ICC e siete alla ricerca di un browser web che li supporti?
Be, Apple Safari li supporta ma essendo io innamorato di Firefox ho cercato cercato ed alla fine sono venuto a sapere che Firefox li supporta ma questa opzione è disabilitata epr default.
Fate cosi:
- digitate sulla barra degli indirizzi “about:config”
- cercate la stringa “gfx.color_management.enabled” e fateci doppio click sopra
- chiudete e riavviate Firefox
- Installate se vi và il plugin addons.mozilla.org/en-US/firefox/addon/6891
Fate il test a questo indirizzo ed avete finito:
www.color.org/version4html.xalter
Un reportage fotografico
5 feb
Vagavo alla ricerca di spunti perchè domani parto per Medjugorie e vorrei provare a fare “seriamente” un reportage fotografico della cosa.
Vado sul mio bravo google e cerco…cosa esce fuori? Questo bell’articolo di Alberto Amoroso. Continua >
Le espressioni regolari
20 ott
Le espressioni regolari
Avevo bisogno di chiarire a cosa zzo serviva il .+ o meglio la differenza con .* ed ho cercato la risposta sul mio motore di ricerca preferito. Be, ho trovato questa bellissima guida ( da http://www.kerouac3001.com/ ) introduttiva e ve la riporto para para.

INTRODUZIONE
Le espressioni regolari (regex) sono una manna dal cielo per chi si occupa di programmazione, infatti, tramite queste è possibile descrivere qualsiasi stringa che presenti al suo interno una certa regolarità.
Senza scendere in formalismi e evitando di parlare di linguaggi regolari o grammatiche regolari, scelgo di portarvi subito un esempio pratico che vi faccia capire l’utilità delle regex.
Supponiamo di avere una pagina web contenente un form con i seguenti campi:
- nome
- cognome
- numero di telefono
Una volta compilato il form ed inviati i dati allo script è importante eseguire un controllo che permetta di verificare la correttezza dei dati stessi.
Occorre, dunque, definire i vari campi:
- nome: è formato da una sola parola e può contenere solo lettere dell’alfabeto, sia normali che accentate. Nel nostro caso abbiamo deciso che questo campo non è obbligatorio.
- cognome: è formato da da una o più parole che possono contenere solo lettere dell’alfabeto (anche accentate) e può in più contenere apici. Questo campo è obbligatorio.
- email: è formata da 3 parti di cui la prima contenente caratteri alfanumerici, underscore (_) e punti (.) è seguita da una chiocciola (@), dopo di che c’è una seconda parte formata da caratteri alfanumerici e trattini (-), seguita sempre da un punto (.) che è sempre seguito da sole lettere dell’alfabeto di almeno 2 caratteri e al massimo 4. Questo campo è obbligatorio.
- numero di telefono: formato da 2 parti numeriche separate da un trattino (-). Questo campo è obbligatorio.
Come vedete è chiaro che i quattro campi posseggono una regolarità che li caratterizza, resta solo da vedere quali sono le espressioni regolari che li individuano. Vi do immediatamente la soluzione del quesito, passando successivamente alla descrizioni delle varie costanti e dei vari operatori utilizzati:
- nome: [a-zA-Zàòèéùì]*
- cognome: [a-zA-Zàòèéùì’ ]+
- email: [a-zA-Z0-9_\.]+@[a-zA-Z0-9-]+\.[a-zA-Z]{0,4}
- numero di telefono: [0-9]+\-[0-9]+
———
LE CLASSI
Partiamo descrivendo l’operatore [ ]. Questo metacarattere è formato da una coppia di parentesi quadre al cui interno possono essere inseriti vari caratteri o costanti. Tramite questo metacarattere è possibile individuare una singola occorrenza di uno dei caratteri presenti al suo interno, sia se inseriti come normali caratteri sia se descritti tramite l’uso di costanti: il set di caratteri definito tramite questo operatore prende il nome di classe. Per esempio la classe [a] rappresenta la singola occorrenza del carattere a e permette di verificare che esso sia presente all’interno di una stringa e in quel caso di eseguire alcune operazioni su di esso. Mentre la classe [abcd] rappresenta la singola occorrenza di uno dei quattro caratteri presenti al suo interno e permette di verificare se sono presenti all’interno di una stringa e in tal caso di eseguire operazioni su di essi.
———
L’OPERATORE RANGE
- invece è un operatore che permette di individuare un range, ad esempio:
- a-z individua tutte le lettere minuscole
- A-Z individua tutte le lettere maiuscole
- 0-9 individua tutte le cifre
Apparte a questi 3 range classici, se ne possono creare di personalizzati come a-f che individua tutte le lettere minuscole dalla a alla f e che è molto utile per esempio quando si deve individuare numeri esadecimali. La classe [a-fA-F0-9] infatti individua tutti le cifre e le lettere dalla a alla f (minuscole e maiuscole), ovvero tutti i caratteri che possono essere presenti in un numero esadecimale.
———
RIPETIZIONI DI CLASSI
Adesso passiamo a descrivere gli operatori che si occupano della ripetizione di classi.
Il primo operatore che analizzeremo è l’asterisco * il quale si occupa di verificare se una classe è ripetuta all’interno di una stringa zero o più volte e di selezionarne tutte le occorrenze consecutive. Per esempio la seguente espressione regolare [a-z]* seleziona all’interno di una stringa tutte le occorrenze consecutive di lettere dell’alfabeto, come mostrato qui di seguito (in grassetto):
Ho 7 numeri di telefono ma quello di casa è questo: 0004578907
Dato che questo operatore considera l’insieme vuoto come una soluzione positiva è stato usato per verificare la correttezza del nostro campo NOME, il quale può anche essere vuoto, ma se non lo è dev’essere formato unicamente da una parola. Tutto questo è stato detto tramite la seguente espressione regolare: [a-zA-Zàòèéùì]*
L’espressione sopra citata individua, dunque, tutte le lettere dell’alfabeto minuscole a-z, tutte le maiuscole A-Z, e le 6 lettere accentate inserite àòèéùì.
Un operatore molto simile all’asterisco è il più + che esegue la stessa funzione, ma che a differenza del precedente si occupa di verificare se una classe viene ripetuta all’interno di una stringa una o più volte. Per questo motivo lo abbiamo scelto per verificare il campo COGNOME, il quale può contenere una o più parole separate da spazi o apici. Questo è stato descritto tramite questa espressione regolare: [a-zA-Zàòèéùì’ ]+.
Un altro operatore che individua le ripetizioni consecutive di una classe è formato da 2 parentesi graffe { } al cui interno può essere presente un numero {3} o un range numerico {12,58}. Nel primo caso l’operatore individua tutte le ripetizioni di 3 caratteri che verificano la classe. Nel secondo caso l’operatore individua almeno 12 e al massimo 58 ripetizioni di caratteri che verificano la classe.
Per esempio [0-9]{3, 4}\-[0-9]{7} individua tutti i numeri telefonici con un prefisso composto da 3 o 4 cifre e un suffisso di esattamente 7 cifre.
———
LO SLASH
Nell’esempio precedente oltre all’operatore per le ripetizioni definite è stato usato un operatore di cui non vi avevo ancora parlato lo slash \. Questo semplice operatore se anteposto ad un carattere fa in modo se è un operatore che non venga considerato come un carattere, mentre in genere se viene anteposto ad una lettera la trasforma in una costante. Come avevamo visto infatti il trattino – è un operatore utilizzato per indicare un range e quindi se vogliamo utilizzarlo come carattere dobbiamo scriverlo nel seguente modo: \-
Adesso è totalmente chiara l’espressione regolare che abbiamo utilizzato per verificare l’email:
[a-zA-Z0-9_\.]+@[a-zA-Z0-9-]+\.[a-zA-Z]{0,4}
Ed è anche chiara l’espressione che abbiamo utilizzato per verificare il numero di telefono:
[0-9]+\-[0-9]+
———
PARTICOLARE CARATTERISTICA DEGLI OPERATORI DI RIPETIZIONE
Una caratteristica degli operatori di ripetizione è quella di selezionare tutto quello che verifica l’espressione, finché possono. Questa caratteristica però potrebbe rivelarsi controproducente in alcuni casi. Per esempio ipotizziamo di voler eliminare da una pagina html tutti i tag; la prima soluzione che può venirci in mente è la seguente espressione regolare:
<.+>
Questa regex seleziona una serie consecutiva di caratteri all’interno di una stringa, tali che il primo carattere è < seguiti da una serie di caratteri consecutivi diversi dall’accapo, seguiti da >. Quindi l’espressione regolare sopra descritta nella seguente stringa si comporterà in questo modo:
Praticamente all’interno di una riga seleziona tutto quello che è compreso tra la prima occorrenza del carattere < e l’ultima occorrenza del carattere >.
Questo non soddisfa la nostra richiesta e dunque è necessario utilizzare uno dei seguenti metodi:
- <.+?>
- <[^<>]+>
Il primo rende l’operatore di ripetizione meno forte e fa in modo che si fermi alla prima occorrenza del carattere di chiusura.
Il secondo, invece, specifica di voler individuare all’interno di una stringa tutte le serie di caratteri che cominciano per < a cui segue qualunque carattere diverso da < e da > a cui segue un >.
Praticamente all’interno della precedente stringa le due regex appena descritte avranno il seguente effetto:
Verranno, quindi, trovate le 8 occorrenze e sarà possibile operare su di esse in modo da eliminarle.
———
NEGARE UNA CLASSE
Analizziamo adesso un nuovo problema. Supponiamo di avere un racconto e di voler individuare tutte le frasi presenti al suo interno. Se all’interno di questo racconto il punto viene unicamente utilizzato per finire le frasi, un modo molto semplice di individuarne una è quello di definire una classe negativa, ovvero di negare una classe:
[^\.]+
L’operatore ^ se posto subito dopo la prima parentesi quadra di una classe, svolge la funzione di negarla. Quindi nel nostro caso viene individuata la ripetizione consecutiva di tutti quei caratteri che non sono il punto. Praticamente viene individuata una frase.
———
IL PUNTO
Come avete notato sia ora che nei precedenti esempi, abbiamo sempre slashato tutti i punti, questo perché il punto è una costante, che se inserita all’interno di una espressione regolare equivale a una classe contenente tutti i caratteri tranne l’accapo.
Un esempio per far capire la funzione del punto può essere il seguente:
c.s.
La precedente espressione regolare individua tutte le sequenze di 4 caratteri che cominciano per una c a cui segue qualsiasi carattere tranne l’accapo a cui segue una s a cui segue qualsiasi carattere tranne l’accapo. Possibili combinazioni di carattari che verificano la precedente regex sono le seguenti:
- casa
- cosa
- case
- cose
- c%s9
- c£sl
———
OPERATORE DI ALTERNANZA
Un altro operatore molto utile è il pipe | che equivale ad un OR. Per esempio l’espressione regolare giorgio|stuart individua all’interno di una stringa o l’occorrenza della parola giorgio o l’occorrenza della parola stuart, come nell’esempio seguente:
Sia giorgio che stuart sono due seo famosi, ma giorgio ha un forum, mentre stuart ha una web agency.
———
LE ANCORE
Un altro problema che potrebbe sorgere è quello di dover modificare uno o più elementi all’interno di un database CSV (comma-separated value), ovvero di un database testuale i cui campi sono separati tramite virgole e i cui records sono divisi tramite accapo. Un esempio pratico può essere il seguente database che rappresenta il guadagno giornaliero tramite adsense generato da tre amici:
12€,50€,70€
30€,46€,68€
15€,52€,73€
16€,30€,85€
Se un giorno uno dei tre amici venisse bannato da adsense, i suoi dati non servirebbero più e potrebbe essere necessario eliminarli. Nell’esempio sopra descritto i dati inseriti sono pochi, quindi, una modifica manuale potrebbe essere molto facile da eseguire. Ma se i dati fossero migliaia le espressioni regolari sarebbero una soluzione più veloce. Ammettiamo per esempio che i dati riguardanti l’amico bannato siano quelli inseriti nella terza colonna; una soluzione molto veloce per eliminarla sarebbe quella di eliminare tutte le occorrenze individuate dalla seguente espressione regolare:
,[0-9]*€$
Il carattere $ è una costante che non identifica nessun carattere, bensì identifica una posizione, ovvero il termine di una riga. Quindi la precedente regex trova tutte le serie consecutive di caratteri che cominciano con una virgola a cui seguono alcuni numeri, a cui segue il carattere €, a cui segue il termine di una riga.
Allo stesso modo è possibile individuare l’inizio di una riga tramite il carattere ^. Questo però va usato con cautela perché come vi ho già spiegato può anche essere usato all’interno di una classe per negare la stessa. Quindi ricordatevi di utilizzarlo sempre al di fuori di una classe. Lo stesso vale per l’operatore $ che se utilizzato all’interno di una classe ha valore di carattere.
———
GRUPPI
Potremmo, però, voler considerare una serie di caratteri o di classi come un gruppo unico, per poter poi agire su di esso tramite i vari operatori che formano le regex. Per esempio, potremmo voler cercare all’interno di un testo un codice di cui non conosciamo la lunghezza, ma che è composto da 5 numeri seguiti da una lettera a cui seguono 5 numeri a cui segue una lettera, e così via, fino a terminare con un accapo. Per trovare questo codice l’unica soluzione è quella di utilizzare un gruppo. Nel nostro caso il gruppo è formato da una classe che contiene solo numeri e che è ripetuta 5 volte, seguita da una classe che contiene solo lettere. Questo gruppo dev’essere ripetuto almeno una volta e deve terminare con un accapo. Tutto questo si scrive:
([0-9]{5}[a-zA-Z])+$
Un esempio pratico dell’effetto di questa espressione regolare è il seguente:
Il mio codice segreto è 12345T45345R12343F34567j
Il codice segreto di è 34526g54638j92725K63723H72829D12345l
12345T45345R12343F34567j non è il codice di
———
BACKREFERENCES
Uno dei problemi che potremmo incontrare è quello di voler modificare la posizione di diverse porzioni di testo all’interno di una stringa. Per esempio, ipotizziamo di avere un database csv composto da 5 colonne e 10000 righe che purtroppo contiene un errore: la colonna 2 è stata inserita al posto della colonna 4. Scambiare il posto a queste due colonne potrebbe richiedere ore di lavoro se fatto manualmente, ma le regex ci permetteranno di risolverlo in meno di 5 secondi.
Infatti, una delle proprietà dei gruppi è quella di memorizzare in una variabile il testo selezionato tramite di essi, in modo da poterlo successivamente utilizzare in fase di sostituizione. Per esempio nel caso precedentemente esposto potremmo voler creare 5 gruppi che selezionano i campi presenti all’interno di una riga del nostro csv. Ammettiamo che il database sia strutturato come segue:
1,45,589,,luigi
2,56,79,mario,luigi
3,57,89,,marco
..,..,..,..,..
Possiamo usare la seguente espressione regolare per selezionare ognuno dei singoli campi all’interno di una riga:
([^,]+),([^,]+),([^,]+),([^,]+),([^,]+)$
Tramite la precedente regex ognuno dei campi verrà memorizzato in una variabile, nella prima ci sarà il primo, nella seconda il secondo e così via. Quindi in generale ci basterà sostituire il testo selezionato con la nuova struttura (1,4,3,2,5) per poter ottenere il risultato desiderato.
Nasce però un problema. Infatti, ci sono diversi modi per richiamare le variabili.
htaccess, dreamweaver, PERL richiamano le variabili usando il carattere $. Esempio: $1 per richiamare la prima, $2 per richiamare la seconda. Inoltre $0 per richiamare il match dell’intera regex. Nel precedente esempio avremmo dovuto sostituire la nostra regex con quanto segue:
$1,$4,$3,$2,$5
EditPad Pro, PowerGREP richiamano le variabili usando il carattere \. Esempio: \1 per richiamare la prima, \2 per richiamare la seconda. Inoltre \0 per richiamare il match dell’intera regex. Nel precedente esempio avremmo dovuto sostituire la nostra regex con quanto segue:
\1,\4,\3,\2,\5
.NET, Javascript, PHP, etc.. richiamano le variabili ognuno con un metodo diverso e si consiglia di leggere le relative guide.
ATTENZIONE: se usate la ripetizione per ripetere interi gruppi, le variabili si riferiranno ognuna ad un singolo gruppo selezionato e non all’intero gruppo ripetuto. Esempio se usate l’espressione regolare ([0-9]{5}[a-zA-Z])+$ per selezionare i codici su questo testo
Il mio codice segreto è 12345T45345R12343F34567j
la variabile 1 corrisponderà solo alla porzione di testo selezionato e non a tutto il codice. Questo avviene perché la ripetizione è esterna alla backreference, quindi, per ovviare questo problema la soluzione è trasformare il gruppo da ripetere in un gruppo senza backreference (in modo che non venga salvato) e impostare una backreference sull’intera ripetizione:
((?:[0-9]{5}[a-zA-Z]?)+)$
Nella regex precedente noterete in particolare la presenza di questa struttura (?: ?) all’interno della quale sono state inserite le 2 classi. Questa struttura è un gruppo senza backreferences; in questo modo abbiamo potuto applicare una ripetizione e memorizzarla internamente. Infatti, adesso nella variabile 1 sarà presente il seguente codice (in grassetto):
Il mio codice segreto è 12345T45345R12343F34567j
———
IL PUNTO INTERROGATIVO
Abbiamo appena visto che all’interno dei gruppi il punto interrogativo può essere usato per evitare che venga memorizzato il match, mentre prima avevamo visto che il punto interrogativo può essere usato per limitare l’intrusività delle ripetizioni. Adesso vedremo come esistono molte funzioni per questo semplice carattere.
Una prima funzione è quella di rendere opzionale un gruppo, come nel seguente esempio:
( inzaghi)?
Nella precedente regex il gruppo ( inzaghi) è stato reso opzionale e dunque sarà possibile selezionare sia la semplice occorrenza della parola , sia l’occorrenza della coppia di parole inzaghi.
Una seconda funzione del punto interrogativo è quella di ancora. Come visto prima esistono operatori come ^ e $ che possono svolgere la funzione di ancore, ovvero individuano all’interno della stringa una posizione. Allo stesso modo il punto interrogativo può essere usato all’interno di un gruppo come ancora, per individuarlo come posizione all’interno del testo. Esempio:
(?= inzaghi)
La precedente regex seleziona la parola all’interno del testo solo se è seguita dal gruppo ( inzaghi) che però non verrà selezionato. Esempi:
Pippo Inzaghi
Pippo
Oggi inzaghi ha fatto un goal
Ieri inzaghi non ha segnato
Allo stesso modo si può usare il punto interrogativo per individuare l’assenza di una posizione. Per esempio la seguente funzione seleziona la parola solo se non è seguita dal gruppo ( inzaghi):
(?! inzaghi)
Esempi:
Pippo Inzaghi
Pippo
Oggi inzaghi ha fatto un goal
Ieri inzaghi non ha segnato
Le due proprietà appena descritte funzionano solo quando l’ancora segue il testo (o il gruppo o la classe) da selezionare. Mentre se l’ancora precede il testo da selezionare, vanno usate queste due altre strutture, la prima per verificare la presenza di un ancora, la seconda per verificarne l’assenza:
(?<=inzaghi)
(?
Praticamente viene inserito dopo il punto interrogativo anche il carattere <.
———
FINE?
Nonostante la smisurata lunghezza di questo post, questa può essere considerata solo una guida base alle espressioni regolari. Il mio scopo è quello di stuzzicare l’interesse dei programmatori, dei seo, dei sem e degli smanettoni verso un argomento che reputo interessantissimo e molto utile. Chi avrà poi voglia di continuare ad approfondirlo troverà su internet milioni di guide sulle espressioni regolari. Ciò che vi posso consigliare è di non buttarvi a capofitto su un argomento che a volte può risultare complesso. Applicate a situazioni pratiche le informazioni che vi ho dato in questa guida e poco per volta comincerete a capire l’importanza di questo magnifico strumento.
In ogni caso in futuro molto probabilmente realizzerò una guida avanzata, quindi ricordatevi di iscrivervi ai feed!
———
CONSIGLI

Trovo favoloso EditPad PRO e vi consiglio di scaricarlo: iniziate con la versione demo, così la potrete acquistare solo quando ne capirete i vantaggi. EditPad PRO è un notepad molto evoluto che supporta tra le caratteristiche più interessanti:
- l’uso dell’espressioni regolari nel Search & Replace
- un sistema di Search & Replace su più files
- possibilità di colorare il codice a seconda del tipo di linguaggio di programmazione (o di markup)
Una bella parmigiana di tarantole
4 giu
Ricercatori americani rilanciano i benefici dell’entomofagia
Molti insetti hanno pochi grassi e abbondano di proteine “Mangiate pure ragni e cavallette sono gustosi e molto nutrienti”
La Fao: “Ci vorr
Tag Galaxy: flickr in 3D
28 mag
Tag Galaxy: flickr in 3D
Oggi ho trovato un interessante modo per navigare fra le foto di Flickr.
Basta utilizzare le potenzialità offerte da Tag Galaxy che offre la possibilità di ricercare i vari tag visualizzandoli poi come dei pianeti, uno spettacolo.
Modella per un giorno.
22 apr
Modella per un giorno
Alla ricerca di una modella con la quale fare esperienza, visto che le mie amiche sono tutte nze, incontrai Daniela.
Ballerina di danza classica nonchè moderna che, sommersa di lusinghe, ha accettato di fare usa sessione fotografica con me (con suocera di guardia).
Sono in continua ricerca di modelli/e per fare esperienza ed ecco cosa potreste leggere nel mio profilo su flickr:
"Inoltre posso assicurarvi altre due cose di me, la prima è che come fotografo sono assai scarso mentre la seconda è che come modello sono ancora peggio. Però, visto che il mondo è pieno di matti voglio proporre a chiunque, meglio se donna per una questione di pilu, una permuta fra modelli. Semplice, oggi a me e domani a te. Prima fotografi tu e poi io oppure oggi io e domani tu. Ci si diverte, sono simpatichissimo, ed intanto facciamo e ci scambiamo esperienza. Ci state? (a fare le foto dico)."
Utente/Password da utilizzare un po ovunque
23 feb
Utente/Password da utilizzare un po ovunque
BugMeNot.com nasce nel 2005. Lo scopo che si era prefisso, nobile come sempre, è quello di garantire la nostra privacy. Come lo fà? Be, evitando di farci fare miliardi di registrazioni ai vari siti che offrono servizi di nostro interesse.
Basta digitare digitare l’indirizzo del sito e saranno mostrati, se disponibili, le user con le relative password da poter utilizzare. Tutto questo se siete fortunati altrimenti da bravi, registrate voi un account e condividetelo 
Ah…ovviamente visto che sono gli stessi utenti a condividere le login … si trova di tutto!
articolo ispirato da: WebVillage.it
Il Corriere apre ai lettori l’archivio storico
8 feb
Il Corriere apre ai lettori l’archivio storico
Penso sia una cosa molto positiva che un giornale come Il Corriere della Sera abbia deciso di dare la possibilità a TUTTI, in forma gratuita, di poter accedere all’archivio di tutti i suoi articoli a partire dal 1992!
Basta andare su questa pagina http://archiviostorico.corriere.it e dare libero sfogo alle proprie curiosità. Si possono ricercare articoli per contenuto degli articoli, autore ed ovviamente per date.
Buon divertimento ^_^
Adoro YouTube
1 feb
Adoro YouTube…
…e provo un sacco di invidia per chi sa fare cose.
Molto spesso mi "perdo" su YouTube alla ricerca di qualche cosa. Ceerco tutte quelle cose che non sono capace di fare e sogno. Ebbene si…a quasi 40anni sogno ancora di fare il cantante di successo e di suonare davanti a migliaia di persone con Vasco e Liga come gruppi spalla!
Come accadde più di un’anno con Tasha ho trovato uan ragazza favolosa (jaaaaaa) che suona e canta.
Morale della favola…la sera invece di guardare la TV che non c’è più uncazzo oramai…date una guardata a Youtube o smilari…c’è il rischio di divertirsi!









Come fotografare 



Commenti recenti