Tag Archive for 'Tips & Tricks'

Speed Dial: come cambiarne immagini e titoli

Come già fatto notare in passato, una delle funzionalità di Opera più gradite dagli utenti è stata senza ombra di dubbio lo Speed Dial, al punto che ormai quasi tutti i concorrenti ne hanno preso ispirazione per trasformare la pagina bianca del browser in qualcosa di realmente utile.

E se la volta scorsa vi avevo mostrato come aumentarne gli slot in base alle vostre esigenze, oggi vorrei concentrarmi su come personalizzarne l’aspetto grafico attraverso la modifica delle miniature e dei titoli mostrati.

Cambiare le miniature

Ogni volta che un sito viene aggiunto ad uno slot Opera ne crea automaticamente una piccola miniatura. Ma a volte potrebbe venir voglia di sostiture queste immagini con qualcosa di più consono ai propri gusti o magari più efficace, come potrebbe esserlo ad esempio un logo.

Nulla di più facile:

  1. Per prima cosa create la vostra immagine e salvatela in formato PNG. Non esistono particolari limitazioni sulle dimensioni ma vi consiglio comunque di non andare oltre una risoluzione di 256×192 pixel.
  2. Aprite la cartella thumbnails contenuta nella directory del vostro profilo.
  3. Quindi sostituite l’immagine originale associata al sito di vostro interesse con quella da voi creata preoccupandovi di rinominarla usando lo stesso nome file.
  4. Impostate infine i permessi del file in sola lettura (click tasto destro > Proprietà > Sola lettura ) in modo che Opera non possa più sovrascriverla.

A questo punto avviando il browser dovreste ritrovare la vostra immagine in bella mostra.

Cambiare i titoli

Anche in questo caso il titolo impostato da Opera potrebbe non essere di proprio gradimento vista la spiacevole abitudine di molti webmaster di scambiare il titolo della pagina con la descrizione della stessa.

Ma anche stavolta porre rimedio alla cosa non è un’impresa impossibile:

  1. Aprite il sito che volete aggiungere ad uno slot
  2. Apritene il codice sorgente (Visualizza > Sorgenti della pagina)
  3. Cercate e sostituite il testo racchiuso fra i tag <title></title> con il quello che volete assegnare allo slot
  4. Cliccate su “Applica cambiamenti” nella barra in alto
  5. Trascinate quindi la scheda su uno slot
  6. Cliccate infine con il tasto destro sullo slot appena riempito, andate su Aggiorna ogni e selezionate Mai. Questo impedirà ad Opera di annullare la vostra modifica in futuro.

Per “dovere di cronaca” ricordo che Tamil ha sviluppato sul suo blog anche un altro metodo che permette di raggiungere l’obiettivo anche in quei pochi casi in cui il procedimentoo esposto sopra non dovesse funzionare. Ritenendolo tuttavia inutilmente lungo e complesso ho preferito non trattarlo qui. Per chi fosse interessato può sempre far riferimento al post originale. ;)

Evitare che Hiddy blocchi i commenti genuini

Qualche tempo fa, parlando degli inspiegabili problemi generati dal plugin Hiddy su molti blog che sono solito leggere, avevo deciso di disattivarlo su questo blog in attesa di capirne di più.

In questo periodo Insel der Engel’ si è quindi basato  unicamente sulla protezione offerta da Akismet che, seppur ottima, ha l’inconveniente di costringermi ogni giorno a verificare di persona la genuinità di un discreto numero di commenti. Ed è proprio in momenti come questi che ti rendi conto come ad Hiddy non si può rinunciare così facilmente. :P

Mettendo quindi insieme tutti i dati in mio possesso credo di essere riuscito a trovare una soluzione abbastanza soddisfacente.

Sapendo infatti che il problema si presenterà:

  • se l’utente durante l’inserimento del commento utilizza estensioni per Firefox o strumenti vari (fra cui anche il Wand di Opera) che compilano automaticamente i form;
  • in altre situazioni al momento non meglio definite,

e che in caso di errore verrà restituita una pagina html generata dal plugin, ho semplicemente pensato di andare a modificare quest’ultima per fornire all’utente tutte le informazioni necessarie ad aggirare l’ostacolo e, se ciò non fosse possibile, invitandolo a contattarmi.

Per chi fosse interessato basta modificare il file hiddy.php, presente all’interno della cartella del plugin, sostituendo il codice presente da linea 145 a 149 (versione 1.3 del plugin) con il seguente:

[sourcecode language='php']// showing error message
echo ‘‘;
echo ‘

Attenzione!

‘;
echo ‘

Il sistema ha rilevato tentativo di spam.

‘;
echo ‘

Se stai vedendo questo messaggio di errore probabilmente stai usando uno strumento di riempimento automatico dei form. Se così fosse torna alla pagina precedente e dopo averla ricaricata compila i campi del modulo manualmente.

‘;
echo ‘

Se il problema persiste contattami al seguente indirizzo email: admin@esempio,com

‘;
echo ‘Hiddy! for WordPress by Enrico Zogno and Merlinox
‘;
echo ‘‘;[/sourcecode]

Dove ovviamente dovrete modificare almeno l’indirizzo email da contattare. :lol:

Ad ogni modo questa modifica è ulteriormente migliorabile aggiungendo un modulo di contatto anzichè il solo indirizzo, così come si potrebbe integrare in php un sistema che invii una notifica all’amministratore ogni qualvolta un utente approda in quella pagina, ma non avevo nè il tempo nè la voglia di dedicarmi alla cosa.

Se qualcuno più volenteroso volesse cimentarsi sarebbe comunque cosa gradita. ;)

Eliminare "Fare clic per attivare ed utilizzare questo controllo" in Opera.

In questi ultimi giorni pare che la community di Opera sia estremamente viva ed arzilla.

Fra le decina di novità ed articoli vari, uno in particolare ha attirato la mia attenzione. A quanto pare infatti l’utente Rafal è riuscito a trovare il modo di aggirare il fastidioso behaviour tenuto da Opera per gli embedded object in seguito alla battaglia legale di Eolas.

Per chi non sapesse di cosa sto parlando, Eolas ha qualche anno fa registrato un brevetto sulla tecnologia impiegata per includere elementi come flash all’interno di una pagina web. A seguito di tale brevetto Opera, a differenza del ben più facoltoso colosso Microsoft che ha potuto pagarne i diritti d’uso, è stata quindi costretta ad adottare un workaround per non incappare in cappelle legali. Il problema non riguarda invece i software Mozilla o Webkit based in quanto è stato data da Eolas via libera ai software open source.

Ad ogni modo questo non è bastato a scoraggiare Rafal che si è quindi industriato per aggirare il problema costruendosi una build personalizzata di Opera.

Grazie a qualche ricerca all’interno delle DLL del programma è alla fine riuscito a trovare il codice incriminato, che per la cronaca agisce creando un elemento in overlay all’oggetto, e quindi sostituirlo.

Per chi fosse interessato ecco in breve come procedere:

  • Procuratevi UPX e XVI32
  • Decomprimete il file opera.dll con UPX
  • Apritelo quindi con XVI32
  • Cercate: F7 D8 1B C0 F7 D8 C2 04 00 FF 74
  • Sostituitelo con: F7 D8 1B C0 B0 01 C2 04 00 FF 74

Il procedimento è valido sia per Opera 9.63 che per Opera 10 alpha, ma in quest’ultima la stringa incriminata è presente due volte e va sostituita la seconda.

Per chi invece preferisse non metter mano a simili procedure può invece scaricare questo comodo tool che, una volta estratto nella directory di Opera ed eseguito, provvederà a fare il lavoro sporco per voi.

Aggiungere Web Mail provider in Opera 10

Attenzione: il procedimento descritto nell’articolo fa riferimento ad una funzionalità ancora in lavorazione che pertanto potrebbe subire modifiche anche sostanziali in un prossimo futuro.

Nell’articolo precedente abbiamo visto come le ultime build di Opera 10 siano in grado di gestire le Web Mail come client di posta predefinito e vi avevo anticipato che, qualora il vostro provider non fosse fra quelli disponibili, sarebbe stato comunque possibilie aggiungerlo manualmente. Vediamo quindi come aggiungere il nostro provider.

Innanzitutto localizziamo il file webmailproviders.ini che si trova nella cartella \defaults della directory di Opera. Questo contiene la lista di tutti i servizi disponibili nella forma seguente:

[Gmail]
ID=1
URL=https://mail.google.com/mail/?extsrc=mailto&url=%s
ICON=http://mail.google.com/favicon.ico

I meno smaliziati si chiederanno probabilmente cosa significhino esattamente queste stringhe e come usarle.

  • La prima riga indica il nome del provider che verrà visualizzato nel programma. Trattandosi di un file .ini ovviamente è necessario racchiudere il nome fra parentesi quadre.
  • ID indentifica in modo univoco il servizio. E’ necessario usare una numerazione progressiva per i vari servizi.
  • URL è l’indirizzo usato dal provider per gestire il protocollo mailto attraverso la web mail. “%s” è la parte variabile che verrà di volta in volta sostituita con i dati del link mailto che cliccherete (indirizzo, oggetto, ecc…).
    Attualmente sono permessi anche URL Data e Javascript.
  • Icon infine indica il percorso della favicon della web mail.

Alla luce di tutto ciò appare quindi evidente che per poter aggiungere il nostro servizio di posta è necessario conoscere l’indirizzo dell’handler mailto (URL).

Purtroppo però non tutti i provider hanno tale caratteristica, ma possono ugualmente compilare i vari campi automaticamente specificandoli con variabili separate, anzichè con la sola “%s”, secondo questo schema:

  • %t = il destinatario
  • %s = l’oggetto
  • %m = il corpo del messaggio
  • %c = CC’d recipients
  • %b = BCC’d recipients.

Per rendere meglio l’idea analizziamo quindi come dovrebbe essere modificato l’URL nel caso di Gmail:

"http://mail.google.com/mail/?view=cm&fs=1&to=%t&su=%s&body=%m&cc=%c&bcc=%b"

Ancora una volta però i problemi non mancano in quanto, almeno per il momento, Opera non è ancora in grado di gestire questo tipo di URL e bisogna prima trasfromarli in un Data o Javascript URL come nell’esempio seguente:

[Operamail.com]
ID=4
URL=javascript:(function(uri)%7B%0D%0Afunction%20decode(s)%7Btry%7Breturn%20decodeURIComponent(s).replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2C%22%5Cr%5Cn%22)%3B%7Dcatch(e)%7Breturn%20%22Opera%20percent-decode%20error%22%3B%7D%7D%0D%0Afunction%20encode(s)%7Btry%7Breturn%20encodeURIComponent(s)%3B%7Dcatch(e)%7Breturn%20%22Opera%2520percent-encode%2520error%22%3B%7D%7D%0D%0Afunction%20escapeInvalidHH(s)%7Breturn%20s.replace(%2F%25(%3F!%5B0-9A-F%5D%7B2%7D)%2Fgi%2Cfunction()%7Breturn%20%22%2525%22%3B%7D)%3B%7D%0D%0Afunction%20escapeUnsafeHH(s)%7Breturn%20s.replace(%2F%2500%7C%2501%7C%2502%7C%2503%7C%2504%7C%2505%7C%2506%7C%2507%7C%2508%7C%250B%7C%250C%7C%250E%7C%250F%7C%2510%7C%2511%7C%2512%7C%2513%7C%2514%7C%2515%7C%2516%7C%2517%7C%2518%7C%2519%7C%251A%7C%251B%7C%251C%7C%251D%7C%251E%7C%251F%2Fgi%2Cfunction(match)%7Breturn%20encode(match)%3B%7D)%3B%7D%0D%0Afunction%20filterSingleLine(s)%7Breturn%20s.replace(%2F%5Cr%7C%5Cn%2Fg%2C%22%22)%3B%7D%0D%0Afunction%20MailtoURIParser(s)%7Bthis.parse(escapeUnsafeHH(escapeInvalidHH(%22to%3D%22%2Buri.substr(7).replace(%2F%5C%3F%2F%2C%22%26%22))))%3B%7D%0D%0AMailtoURIParser.prototype%3D%7Bparse%3Afunction(dataset)%7Bthis.to%3Dthis.subject%3Dthis.body%3Dthis.cc%3Dthis.bcc%3D%22%22%3Bvar%20ref%3Dthis%3Bdataset.replace(%2F(%5B%5E%3D%26%5D%2B)%3D(%5B%5E%26%5D*)%2Fg%2Cfunction(match%2Chname%2Chvalue)%7Bhname%3Ddecode(hname).toLowerCase()%3Bif(hname%3D%3D%22to%22)%7Bif(hvalue!%3D%22%22)%7Bif(ref.to!%3D%22%22)%7Bref.to%2B%3D%22%252C%2520%22%3B%7Dref.to%2B%3Dhvalue%3B%7D%7Delse%20if(hname%3D%3D%22cc%22)%7Bif(hvalue!%3D%22%22)%7Bif(ref.cc!%3D%22%22)%7Bref.cc%2B%3D%22%252C%2520%22%3B%7Dref.cc%2B%3Dhvalue%3B%7D%7Delse%20if(hname%3D%3D%22bcc%22)%7Bif(hvalue!%3D%22%22)%7Bif(ref.bcc!%3D%22%22)%7Bref.bcc%2B%3D%22%252C%2520%22%3B%7Dref.bcc%2B%3Dhvalue%3B%7D%7Delse%20if(hname%3D%3D%22subject%22)%7Bref.subject%3Dhvalue%3B%7Delse%20if(hname%3D%3D%22body%22)%7Bif(!(hvalue%3D%3D%22%22%26%26ref.body%3D%3D%22%22))%7Bif(ref.body!%3D%22%22)%7Bref.body%2B%3D%22%250D%250A%22%3B%7Dref.body%2B%3Dhvalue%3B%7D%7D%7D)%3Bthis.to%3Dencode(filterSingleLine(decode(this.to)))%3Bthis.subject%3Dencode(filterSingleLine(decode(this.subject)))%3Bthis.body%3Dencode(decode(this.body))%3Bthis.cc%3Dencode(filterSingleLine(decode(this.cc)))%3Bthis.bcc%3Dencode(filterSingleLine(decode(this.bcc)))%3B%7D%2Cformat%3Afunction(s)%7Bvar%20ref%3Dthis%3Breturn%20s.replace(%2F(%25%25)%7C(%25T)%7C(%25S)%7C(%25M)%7C(%25C)%7C(%25B)%7C(%25w)%2Fg%2Cfunction(match%2Ca%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg)%7Bif(a)return%20%22%25%22%3Bif(b)return%20ref.to%3Bif(c)return%20ref.subject%3Bif(d)return%20ref.body%3Bif(e)return%20ref.cc%3Bif(f)return%20ref.bcc%3Bif(g)return%20encode(%22mailto%3A%22%2Bref.to%2B%22%3Fsubject%3D%22%2Bref.subject%2B%22%26body%3D%22%2Bref.body%2B%22%26cc%3D%22%2Bref.cc%2B%22%26bcc%3D%22%2Bref.bcc)%3B%7D)%3B%7D%7D%3B%0D%0Aif(uri.search(%2Fmailto%3A%2Fi)!%3D0)%7Bthrow%20%22Not%20a%20MailtoURI%22%3B%7D%0D%0Avar%20parser%3Dnew%20MailtoURIParser(uri)%3B%0D%0Avar%20compose%3Dparser.format(%22http%3A%2F%2Fmymail.operamail.com%2Fscripts%2Fmail%2FOutblaze.mail%3Fcompose%3D1%26did%3D1%26a%3D1%26to%3D%25T%26subject%3D%25S%26body%3D%25M%26cc%3D%25C%26bcc%3D%25B%22)%3B%0D%0Avar%20a%3Ddocument.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%2C%22a%22)%3Ba.href%3Dcompose%3Ba.click()%3B%0D%0A%7D)(%22%s%22)%3B
ICON=http://www.opera.com/favicon.ico

Chiaramente si tratta di una procedura non alla portata di tutti e che, si spera, presto non sarà più necessaria. Ma se nel frattempo volete cominciare a sperimentare nessuno potrà impedirvelo. ;)

Integrare Foxit Reader in Opera, Safari e Chrome

Attenzione: nell’articolo viene preso in considerazione prevalentemente Opera ma il procedimento è valido anche per Firefox, SeaMonkey, Flock, Safari, Google Chrome e qualsiasi altro browser NPAPI compatibile.

Uno dei software più interessanti scoperti in questi ultimi anni è stato, senza ombra di dubbio, Foxit Reader.

Francamente non credo abbia bisogno di presentazioni ma, per chi non lo conoscesse ancora, si tratta della più valida alternativa ad Adobe Reader non soltanto in grado di gestire alla perfezione qualsiasi file in formato PDF, ma risultando anche notevolmente più leggero e veloce del rivale e ricco di funzionalità aggiuntive.

Una delle poche pecche consisteva però nell’assenza di un plugin che ne permettesse l’integrazione all’interno del browser web per la visualizzazione dei documenti direttamente in quest’ultimo senza dover prima scaricarli e poi aprirli all’interno dell’applicazione. Fortunatamente con la versione 3, uscita qualche tempo fa, anche questo divario è stato colmato con il rilascio di un plugin compatibile con tutti i browser che usino lo standard Netscape’s Plugin API (NPAPI), ovvero tutti eccetto Internet Explorer.

Tuttavia, almeno per il momento, riuscire ad utilizzare questa nuova funzione in browser diversi da Firefox non è poi così immediato a causa di alcune “sviste” da parte degli sviluppatori che hanno preferito utilizzare un proprio metodo di installazione anzichè basarsi sul ben più collaudato e sicuro standard aperto. La cosa è stata già segnalata dagli sviluppatori di Opera ASA sul forum di Foxit Software e verrà probabilmente corretta nella prossima major release, ma, nel frattempo, ecco come procedere per poterne usufruire anche su browser diversi da Firefox.

Innanzitutto bisognerà procurarsi il plugin.

Se nel vostro sistema è installato anche Firefox (non valgono le varie versioni portable) ecco i passaggi da seguire, in caso contrario saltate (ovviamente) il primo punto:

  1. Assicuratevi che Firefox sia chiuso
  2. Aprite Foxit Reader
  3. Andate su Help > Check for Updates Now…
  4. Nella finesta che si aprirà selezionate nel box a sinistra “Firefox Plugin” e cliccate su Add
  5. Quindi cliccate su Install.

Partirà il download e l’installazione del plugin.

A questo punto, se Firefox era presente e tutto è andato a buon fine, avrete già finito in quanto Opera, per impostazione predefinita, userà anche i plugin installati all’interno della cartella di Firefox.

Se invece così non fosse dovrete copiare manualmente nella cartella dei plugin di Opera il file npFoxitReaderPlugin.dll che si trova (a meno non abbiate installato il programma in una diversa directory) in C:\Programmi\Foxit Software\Foxit Reader\plugins.

A questo punto, non appena vi imbatterete in un documento PDF, vi verrà richiesto se volete aprirlo direttamente in Opera usando il plugin di Foxit o preferite invece salvarlo.

Se invece non desiderate che vi venga richiesto ogni volta, basterà selezionare la casellina un basso o, se questa non fosse (come nel mio caso) attiva, andare su Strumenti > Preferenze… > Avanzate > Download, cercare l’estensione pdf, cliccare su Modifica… e selezionare l’ultima opzione (Usa plug-in).

Ed ecco infine il risultato ottenuto:

NB: Il procedimento descritto a volte sembra non dare buon esito causando il crash del browser. In questo caso è probabile che Foxit non abbia registrato correttamente il plugin. Per risolvere aprite la riga di comando e digitate:

regsvr32 /s "%ProgramFiles%\FOXITS~1\FOXITR~1\plugins\FOXITR~1 .OCX"

Ora dovreste essere in grado di usare correttamente il plugin. Se provate fatemi avere i vosti feedback. ;)